The event has to use side 3 because side 2 is idle. Also remove the dollar sign because IF_VAR doesn't work with it.
(cherry picked from commit ae5b2f0da6)
* Add basic achievements functionality.
This reads the mainline achievements.cfg and then all the achievements of each installed add-on.
This is intentionally handled separately from other WML loading so that:
a) All achievements and their status are able to be displayed on the main menu right after Wesnoth starts and regardless of which add-ons are active.
b) Add-ons can add additional achievements to other content, whether UMC or mainline. For example, a modification that adds more achievements for mainline campaigns.
Marking something as achieved is handled by the new [set_achieved] tag and whether an achievement has been completed can be checked via [has_achievement].
There is no attempt to prevent people from manually editing which achievements they've accomplished.
NOTE: These are *not* in any way related to Steam achievements!
* Revise capitalisation as per https://wiki.wesnoth.org/ProseStyle
Capitalisation of race names was inconsistent in parts, even within the same scenario in some cases.
As per https://wiki.wesnoth.org/ProseStyle, race names are generally lower-case unless part of unit or place names, or a specific group (such as 'Quenoth Elves'):
* Elf/Elves/Elvish/Elven
* Drakes
* Dwarf/Dwarves/Dwarvish/Dwarven
* Goblins
* Gryphons
* Humans
* Mer/Merfolk
* Nagas
* Ogres
* Orcs
* Saurians
* Trolls
* Woses
I substitute 'human' for 'men' on occasion, not for PC-ness, but to make it clear it's a reference to the race, not males (non-humans sometimes say 'men' when speaking to fellow male soldiers, for example).
Capitalisation of titles is a little less straightforward. Clearly cases such as King Haldric, Queen Asheviere, Prince of Wesnoth, Great Chief, etc, are capitalised.
However, use of a title alone can be valid with or without capital, eg 'the king/King'. I try to be consistent and consider the context:
* Title is used in place of the name, eg compare 'by the King's order' with 'by Garard's order'
* Would the speaker show respect to the person concerned as their leader, or a foreign dignitary? Contrast, 'Asheviere, that vile queen'.
* Compare 'my king' with 'my father' (latter is not usually capitalised in everyday English)
* Occasionally, when the speaker may not otherwise know a character's name or the correct protocol to address, may say something like 'Sir Elf'.
I apologise if I run counter to previous revisions - removal of 'princess' as a direct address in Northern Rebirth, for example, also dealt with the capitalisation issue, if I recall correctly.
Miscellaneous changes:
* Magi, as plural of mage, is not usually capitalised.
* Council may be capitalised when referring to a specific instance, such as the Elvish High Council in the Ka'lian, but not in instances such as 'making council'.
The review focused solely on campaign prose - there may be cases in other data files where capitalisation needs revising too.
* Capitalise proper noun use of 'kingdom'.
Just as England may be referred to as such on its own, it was also known as the Kingdom of England.
In the same way, Wesnoth is usually referred to simply as Wesnoth, but it would be formally called the Kingdom of Wesnoth.
* Capitalise 'majesty' when used as an address.
For consistency with existing instances of 'Your Majesty'.
* Capitalise 'Land of the Dead'.
While we might not normally refer to such as a place as a proper noun, Delfador's Memoirs seems to establish this as a specific location in Wesnoth lore.
For consistency, also capitalise a few references to this place in Northern Rebirth and Son of the Black-Eye.
(Granted, this does make Iliah-Malal's line in DM S18 seem a bit awkward, contrasting with 'land of the living', but the precedent has been set throughout the rest of the campaign.)
* Capitalise instances of the Book of Crelanu.
I leave book as lower-case when it's not yet famously known as the Book of Crelanu, such as in Legend of Wesmere, as well as in DM S15, where it is simply described as a book belonging to the old mage Crelanu.
* Harbour of Tirigaz does not appear to be a formal (capitalised) name.
In S12, Tirigaz is only described as a 'harbour'. Other instances of Tirigaz describes it as (lower-case) a port city.
[ci skip]
Refactor special notes for abilities, attack types, movetypes and weapon specials
An easier way of setting special notes in the most common use-cases. Text given
in the following attributes will be collected and added to the special notes
for units and unit types (some of these were added in the previous commit):
* [ability tag name]special_note=
* [language]special_note_damage_type_TYPE=
* [movetype][special_note]note=
* [attack][specials][special tag name]special_note=
It's no longer necessary to put these notes in each unit_type's .cfg file, and
the macros for doing so are now deprecated.
C++ changes
-----
Simplify both unit_type::special_notes and unit::unit_special_notes. Add
utils::stable_unique, similar to std::unique but accepts non-ordered input and
preserves the order in the output.
Remove unit_type::has_special_notes() - callers can instead call
special_notes() and then check if the returned vector is empty, which removes
the need for duplicating code in unit_type.
Trade-off: the new [language]special_note_damage_type_TYPE is likely deprecated in 1.19.
-----
Adding [language]special_note_damage_type_TYPE= uses the same existing design
as [language]type_TYPE=, however both are hacks that don't fit the general
style of WML. It could be better to define a new [damage_type] tag that
supercedes both and also provides a place for specifying the damage icon;
however that won't be done in time for the API freeze for 1.16.
Doing it in the way that this commit does it is a hack, but it's one where
replacing it with the better solution in 1.18 will affect very few UMCs (only
those that define additional damage types). Even in the UMCs that would be
affected, it would likely only be a few changes in a single central file.
Trade-off: NOTE_DEFENSE_CAP is not auto-added
-----
It might be better to auto-add NOTE_DEFENSE_CAP when movetype.cpp detects that
the type has capped values. However as NOTE_SPIRIT already requires
[movetype][special_note], it's simple to use the same mechanism. If we decide
to change it to being auto-added, the current commit greatly reduces the number
of places that would need to change again, as it's now in the [movetype]
instead of the many [unit_type]s using that movetype.
* Fix month typo and add months to dictionary
* typo s/cuttle fish/cuttlefish/
The phrase "cuttle fish" is not in wiktionary.org. The unit id used in WML is left as-is ("Cuttle Fish").
* typo s/carvans/caravans/
* add spelling ol’; fix typo s/ol/ol’/
* fix typo s/alloting/allotting/
* Typo? s/movepoints/movement points/
* Typo s/critized/criticized/
* Typo: s/un-life/unlife/
* DW: typo: s/veterens/veterans/
* SoF: typo: s/fulfil/fulfill/
* SoF typo: s/Thursagen/Thursagan/
* SotA typo: s/permanantly/permanently/
* SotA: possible typo s/Rastaban/Ras-Tabahn/
* THoT: typo s/Aiglondor/Aiglondur/
* Use a typographic-style quotation mark
* Undo month name change
* Change spelling un-life -> unlife