In other news, I've just
added \ALLOW_NONWORKER_TARGETS tags to everything in DFHack4 which previously had \ALLOW_MULTIPLE_TARGETS tags. In theory that should get everything working that was working in r3. However there's a few things to note:
* In some cases, we may not want the \ALLOW_MULTIPLE_TARGETS tags anymore. DFHack r4 autosyndrome allows us to reliably apply a syndrome to a single creature, meaning we can armour a single animal, or transform a single changeling, rather than everything which is in the workshop. (Being able to armour your hundred dogs with a single reaction felt like an exploit.)
* In some cases, I'm not sure that the reactions will actually work at all. For example:
[INORGANIC:GOLEM_SPAWN_SPIRIT_S] produced in transmutation
[USE_MATERIAL_TEMPLATE:STONE_VAPOR_TEMPLATE]
[STATE_NAME_ADJ:ALL_SOLID:Activate golem]
[STATE_NAME_ADJ:LIQUID:Activate golem]
[STATE_NAME_ADJ:GAS:Activate golem]
[SYNDROME] [SYN_CLASS:\AUTO_SYNDROME][SYN_CLASS:\COMMAND] autosyndrome command begins here
[SYN_CLASS:\LOCATION] [SYN_CLASS:\ALLOW_MULTIPLE_TARGETS][SYN_CLASS:\ALLOW_NONWORKER_TARGETS]
[SYN_CLASS:\REACTION_INDEX] [SYN_NAME:animation]
[SYN_CONTACT][SYN_INHALED]
[SYN_AFFECTED_CREATURE:GOLEM_TRADE:MALE_SWORD]
[CE_BODY_TRANSFORMATION:START:0]
[CE:CREATURE:GOLEM_TRADE_ACTIVE:MALE_SWORD]
This is a \COMMAND, so according to
the docs, anything after the \COMMAND tag are treated as command names or special arguments, so \LOCATION, \ALLOW_MULTIPLE_TARGETS, \ALLOW_NONWORKER_TARGETS, and \REACTION_INDEX would all be treated as either command names (which won't exist) or as special arguments (which will be passed to a command which doesn't exist).
I'm assuming all this really wants (in both DFHack r3 and r4) is the CE_BODY_TRANSFORMATION code, and not the \COMMAND code at all. In the case of these permanent transforms (START:0, but no end) then in DFHack r4 we may wish to consider
True Transformations, but we can likely do that as a separate step. The new r4-flavoured reaction would look like:
[INORGANIC:GOLEM_SPAWN_SPIRIT_S]
[USE_MATERIAL_TEMPLATE:STONE_VAPOR_TEMPLATE]
[STATE_NAME_ADJ:ALL_SOLID:Activate golem]
[STATE_NAME_ADJ:LIQUID:Activate golem]
[STATE_NAME_ADJ:GAS:Activate golem]
[SYNDROME] [SYN_CLASS:\AUTO_SYNDROME]
[SYN_CLASS:\ALLOW_NONWORKER_TARGETS]
[SYN_NAME:animation]
[SYN_AFFECTED_CREATURE:GOLEM_TRADE:MALE_SWORD]
[CE_BODY_TRANSFORMATION:START:0]
[CE:CREATURE:GOLEM_TRADE_ACTIVE:MALE_SWORD]
If you're reading this and have any knowledge of how the transforms are supposed to work (Meph, Putnam, Billy Jack, you?), then I'd love feedback on my assessment. Removing \COMMAND components from CE_BODY_TRANSFORMATION reactions is probably something I can automated, but I don't want to change all the DFHack r4 flavoured raws without someone double-checking this is a good idea.
~ T