Inform is object-oriented to the extent of having a class hierarchy featuring single inheritance. So you could do…
a thing can be damned.
a damned-thing is a kind of thing.
a damned-thing is always damned.
But this doesn’t help you much if you want damned supporters or vehicles or people.
[[ Edited to add: I should have included
a damned-thing has a number called the damned strength.
in the example, 'cause that was at the heart of the point. If we’ve asserted a thing can be damned, then of course any given supporter or vehicle or person could be damned because they’re all things. The trouble is that they wouldn’t have a damned strength property. Only things created as a damned-thing initially would have the property. ]]
You can hang all the properties on Object and just ignore them for things that aren’t supposed to be damned. If so, remember to test damned appropriately. You can write phrases like:
To smite (d - damned object): [...]
And start rulebooks with something that either reports an error for your use in development so you can make sure you’re not calling that rulebook with undamned things, or reports something appropriate to the user.
first exorcise an object (called the wicked):
if the wicked is not damned [...]
rule fails;
Or you could do something like all this:
lab is room.
Condemnation relates one person (called the damner) to various things.
definition: a thing is damned rather than righteous if a person relates to it by the condemnation relation.
Unholy-strength relates various numbers to one thing.
Body-count relates various numbers to one thing.
To (p - person) condemns (t - righteous thing):
now condemnation relation relates p to t;
now unholy-strength relation relates 0 to t;
now body-count relation relates 0 to t;
To bless (t - damned thing):
now unholy-strength relation does not relate the damn strength of t to t;
now body-count relation does not relate the damned count of t to t;
[ this must be last, because it makes t definitively righteous,
hence it would no longer qualify for the previous phrases ]
now condemnation relation does not relate the damner of t to t;
To decide what number is the damned count of a/an/-- (o - damned thing):
decide on the number that relates to o by the body-count relation;
To decide what number is the damned strength of a/an/-- (o - damned thing):
decide on the number that relates to o by the unholy-strength relation;
To set the/-- damned count of a/an/-- (o - damned thing) to a/an/-- (n - number):
now the body-count relation relates n to o;
To decide what number is the damn strength of a/an/-- (o - damned thing):
decide on the number that relates to o by the unholy-strength relation;
To set the/-- damn strength of a/an/-- (o - damned thing) to a/an/-- (n - number):
now the unholy-strength relation relates n to o;
Alice is a person.
The little tugboat is a thing.
To spout the/-- damnation of (o - damned object):
say "Behold [the o] and see!";
say "That [the damner of o] damned it to hell!";
say "That its terrible damn strength is [damn strength of o]!";
say "Yay, even that its cursed damned count is [damned count of o].";
when play begins:
Alice condemns the little tugboat;
set damn strength of the tugboat to 11;
if the little tugboat is damned begin, spout the damnation of the little tugboat;
bless tugboat;
unless the tugboat is damned, say "The tugboat is saved!";
but (for no good reason that I see) you’re not allowed to create relations applying to all objects so you’d be in for a lot of repetition if you wanted it to apply to non-things. However, I think it’s about as good as it’s going to get.
A fundamental premise of Inform is that objects and properties are predefined and static. There was a Dynamic Objects extension that hasn’t worked for a few releases that did a lot of low-level hacking to create objects on the fly. I assume something like it could be made to work again, but no one has taken it on.
There is a working Dynamic Rooms extension that applies a strategy that could be made to work here: it creates a number of anonymous rooms and doles them out when the author asks for “a new room to be created”. So you could create a kind called the damnation and hang the damnation properties on it. When someone becomes damned, you relate a damnation to them. Then you’d want accessor phrases to get to the properties directly via the person rather than at a remove via the damnation.