While I looked for "unknown speakers" in an old version of the campaign,
in the meantime mattsc had changed the scenario to use a macro for the
enemy reinforcements (e5905f05).
Although I could use my spiffy new "whofield" magic comment here, Bruce
is the only general who speaks, so an old-fashioned "recognize" is more
appropriate.
While I tested my whofield feature, unfortunately it was on an
old version of the campaign in which all shamans were on side 1,
so the macros had no side field. Recently, it was decided that
the shamans in this scenario should start on side 3, and a side
field was inserted into the macros.
When it was time to commit, there was of course a conflict, but
I simply put my existing magic comments into the new version,
not considering that now the id field had been shifted to the
right by one, and didn't re-run wmllint.
The other choice dialogs in this scenario use "I" or "we", so
this brings it into conformity with them.
On the mailing list, I also spoke of a desire to have Camerin's
lines run before the choice is made, but looking at it, this
is a more complex change than I want to deal with right now.
The brackets are a relic from when I had a different conception of how the
"who ... is ..." comment would work. Although these comments still work,
because I now strip brackets from the macro name, I don't want UMC authors
getting the idea that this is the "right" way to do these comments.
In scenario 16, El'Isomithir's id uses a straight apostrophe, and in 18 a
slanted one. The maintainer can decide which to go with, or simply leave
it be.
The exception is Gryphon Mountain, where the magic comments are updated to
recognize the awakened ids.
This is not the only approach that could be used. wmllint could be upgraded
to recognize the transformed ids in [modify_unit]. This is more involved
than I want to do right now, for what I expect to be a corner case.
The other way would be to also filter the awakening events by type as well
as id, and not change the id at all. The original awakening code killed the
old unit and created a new one in its place, and the new id distinguished
the new unit from the old one. However, now that we are modifying an existing
unit, we do not need to change ids, especially since this is not seen by
the player.
For now, though, the easiest path is just to tweak the already existing
magic comments.
The "unknown speaker" warning shows its usefulness, as it turns up a busted
last breath event.
We also delete a few "# wmllint: recognize" magic comments that we don't
need now that ids in NAMED_GENERIC_UNIT are auto-recognized.
The main character macros now have "who is" pairings. This, along with the
advent of auto-recognition of NAMED_*UNIT ids, makes some "recognize" magic
comments unnecessary. Meanwhile, the new "unknown speaker" warning makes
adding others necessary.
The ally characters still trigger "unknown speaker" warnings. There are two
possible solutions: one, to add a set of four "recognize" mcs to several
scenarios. The second, which I lean towards, would be to create a macro
for the recall of the ally character, and pair it with a "who" mc. I will
leave the choice to the UtBS maintainer, however.
aggression=1 is the largest sensible value. For larger values, the AI
actually prefers attacks in which it receives more damage, leading to
it choosing the wrong attacks.
The attack CA is very aggressive and almost exclusively tries to deal
maximum damage, but will not execute an attack if therre's a chance of
dying for the attacker. The retreat CA is the same as that used in the
Experimental AI.
This moves the after the fall schedule into core to grant that the
debian package wesnoth-editor does not depend on wesnoth-utbs.
Also, the images now life in their own subdirectories.
Wmllint has been updated to take care about the changed paths.