- Fix the rabbit AI
- Enable invoke_synced_command to also call (some) built-in commands
and give an error message in the case of an unknown command
- Remove some unnecessary implementation details
Objectives: note that the death of Galtrid is a losing condition
Reinforcements: In multiplayer, Landar's L3 troops that join on turn 9
now join his side, instead of trying to join side 13 (and ending up on
Kalenz' side).
Dialog: the following conversation happened on both turn 1 and turn 9.
Having 6 repeated messages in a row gave a strong sense of deja vu,
and I thought that a bug had repeated an event. This commit cuts the
repetition.
* Elf: "Kalenz! We come to fight beside you!"
* Kalenz: "Where is the rest of the elvish army? ...
* Elf: "The Great Council has decided it was too risky ...
* Landar: "That is well! If the Ka’lian is too fearful or blind ...
* Cleodil: "It is not well that we have become so divided as this."
* Kalenz: "No, it is not. But ...
- Grant Marauder the mountain movement+defense of the Raider
- Reduce Raider hills defense to match the Marauder
(avoiding reduction on level-up)
- Adjust Marauder resistances
* Initial pass at sun singer animations
* adding sun-shyde and generalizing fire animations
* sun-singer healing anim, and change of default image
* mystic healing animation, and move mystic images to sub-directory
* harmonized sprite file naming scheme for sun-shyde with sun-singer
For the record, the code I removed from screenshot_notification.cpp was
from an earlier iteration of the dialog, no longer necessary with current
design.
In particular, this allows the player to choose the filename before saving,
including the extension. If support for target format is present, Wesnoth
honors the extension and saves the screenshot in that format.
I also changed the default screenshot format back to PNG due to quality
issues JPEG has with pixel art. See discussion in pull request #2655.
This commit doesn't introduce any string changes. I used existing strings
for everything (sometimes having to take them from another textdomain).
fixes#1649 . ai.synced_command could easily be used to implement all types of
undeteced cheats so it was removed. As a replacement this commit adds a
[custom_command] synced command that just calls
wesnoth.game_events.on_synced_command which calls a lua handler that
must first be set.
[ci skip]
Fixes map borders drawing over certain editor overlays. Not sure why UMC editor overlays
weren't affected...
Should also preempt other such issues, since we always want borders to draw on top of
everything.
* Formatting cleanup
* Fixed copyright year
* Don't use copy-initialization of string_maps
* Tweaked the FOR_REMOVAL message. It's a little confusing to specify "next version", since
the version given may not necessarily be the next version.
The exact format is unimportant, what matters is that the nonce contains
enough entropy. Crypt64 was originally chosen because it was used elsewhere.
Raw bytes would also work, but would be less readable if inspected manually.
Base64 according to RFC4648.
Crypt64 is whatever crypt() does.
The two radix-64 encodings share less code than I would like,
because base64 is stream-oriented and therefore big-endian,
while crypt is little-endian.