Assume we have an assembly defined in an extension: “A nose is a kind of thing. A nose is part of every person.”
In the game code, we have a special kind of person, and we would like to give them a specific kind of nose.
"An ork is a kind of person. A snout is a kind of nose.
If I say “A snout is part of every ork.”, then each ork will have two noses - one normal nose, and one snout.
Is there any way of saying “When building the person-nose assembly for orks, use snouts?”
Edit: Alternatively, is there a way of saying “Don’t create the person-nose assembly defined by the extension.” - I could then create separate assemblies for orks and non-orks.
No. You’d have to split ‘person’ into ‘orc’ and ‘non-orc’, then say ‘a nose is part of every non-orc.’
(Or else get rid of the snout kind, and make the behaviour of the nose kind depend on whether it was part of an orc or not.)
See my edit - I’d still have to get rid of the extension’s nose-person assembly (without editing the extension, which I’d rather not do).
That’s what I’m doing currently, but it’s rather awkward in places and having a specific kind would be so much easier.
Would it work to remove all noses from orks with a When play begins rule? Then you’d have a lot of useless ork noses hanging out off-stage, but at least they’d be out of your way.
(I think the syntax would be something like: When play begins: now every nose that is part of an ork is off-stage.)
EDIT: I suppose you’d have to include some logic to make sure that you only remove noses that aren’t snouts, but that should be workable?