Previously `synced_context::undo_blocked()` sometimes returned the worng result, leading to OOS because `synced_context::undo_blocked()` was used to determine whether we can send action to the other clients.
With this patch `synced_context::undo_blocked()` not doesn't always return true when its called during "local choices".
I am curently not even sure whether that line is needed at all since using the rng should always set is_simultaneous_ to true.
Even tests that don't have "_bug" in the name shouldn't prevent
intentional changes to behavior, I've added a paragraph about that.
Rewrite the non-reservation of "break" and "error" for clarity.
* Eastern Invasion
* fixed Gweddry having the wrong HP values
* fixed the king being neutral instead of lawful
* fixed "Dark Shape" being neutral instead of chaotic
* the king can no longer wield the plague staff
* the king and generals can no longer recall undead veterans
In EI S11, the player encounters an orcish warlord named Dra-Nak. If not killed in S11, he continues pursuing the player in S12, but the current S12 gives him different traits and a different portrait. This PR fixes the issue.
EI's S17b has a gold refund mechanic, allowing enemies to build up large gold reserves in certain situations.
When gold gets high, enemies are supposed to start recruiting higher-level units so they can spend it faster. The former implementation had some inconsistent issues; this should restore the intended behavior.
In EI's S99, you gain gold from defeating and capturing hostile drakes. The drakes are physically moved to prison cells in the middle of the map.
Previously, the player could continue capturing drakes even if the prison cells were captured by enemies. This made it a strong strategy to abandon the center and turtle up in a corner of the map. Additionally, the prison cells stayed locked with prisoners inside.
This PR fixes this issue. This also adds 2 new strings; I'm planning to backport to 1.18.2, as this is arguably a bugfix.
EI's S11 and S99 have prison cells, one of which has an unintended backdoor entrance via an unwalkable deep water river. Flying units are involved in these scenarios, and can possibly fly into the cells through this unintended backdoor.
This PR changes the map hexes from unwalkable to impassable.
Game_title_background can be a comma separted list of backgrounds.
if multiple backgrounds are present, one of them will be chosen at random when the UI reloaded.
Behavior should be generally as in 1.18 except for interpreting relative paths
normally instead of under $HOME. The latter was warned about for quite a few
versions now.
Also make sure normalize_path does not cause the path to become empty.
Avoid discarding the entire copyrights.csv when running the update on Windows, and force slashes in file path strings if adding new files.
* Also rename hash object to avoid collision with built-in hash function.
* Clarified file object is representing a file path string as opposed to an actual open file object.