The idea of using multiples of 5 seems like a way to avoid having to change
multiple campaigns' ranks at once, because it leaves space to rearrange a
mainline campaign between two other campaigns.
But enforcing "it must be a multiple of 5, even if that means changing other
campaigns" loses the advantage of using multiples. For example, WoF currently
has rank=152, which triggers the warning, which has caused a PR to be opened
that changes WoF, SoF, LoW and SotA - because keeping them in order requires
four campaigns to change.
Since wmllint gets confused if a side's contained [ai] block comes after any of its contained [unit] blocks. This refactor should make the side 2 code block more human readable too.
This version uses SDL_GetTicks() as a monotonic source to avoid the
previous version's pitfalls, namely the fact that the game's framerate
may not necessarily be a constant, and in particular, the old code
assumed a completely different framerate than what we ended up with
after the texture-based rendering changes in 1.17.x, resulting in an
almost-unnoticeable text fade due to the update() function being
called WAY more often than before.
Note that the reliance on SDL_GetTicks() means the timings break
at some point after 49 days of game runtime, exactly once. This
should result in a visible "jitter" effect if the 32-bits ticks value
wraps around in the middle of a fade sequence, but other than that
it's not that big of a deal to warrant requiring SDL 2.0.18+ for the
64-bit version.
I for one hope players wouldn't be running Wesnoth for that long
anyway. The game isn't exciting enough to justify it.
These functions are not used anywhere, and they have other issues besides the one fixed in this commit – they're implied to return all moves, but they only return one move for each possibly destination hex. However, this will make them at least be minimally usable.
Just some debris embellishments to suggest that the towers at the
end of the bridges were hit with siege weapons. The defense stats
are still the same and there's no dialogue change to go with this.
(cherry picked from commit b9cb577bac)
No translated text yet, just template .po files.
The po files are generated assuming that PR 8433 will merge, removing
the new translatable text from the multiline_text and spinner widgets.
Adjust Fighter line to allow for easier early leveling and more late game staying power. Add parry to secondary melee attacks in order to incentivise their use.
Has a few updates to S04a, S04b, S09 and S99 too.
Lore: this declares Khrakrahs (dragon seen in SoF) to be male.
He's been in many versions of Wesnoth that only had male drakes,
thus will surely already be male in any translation where the
gender has an effect on the wording.
There's a few "TODO for 1.19" comments added:
* In S12, the left behind units say "we must ride ... to save Wesnoth",
but it should be "you must ride".
* The intro of S13 is confusing, there's little indication of why you
only have one unit, or what mission he failed.
* In S16, Gweddry says "night approaches" on turn 1 (morning)
* wc: fix#6513 Bezoar artifact
The item now applies the effects directly instead of using [trait]s,
The lua code that added traits in the wc lua files didn't work, but the main reason why i preferred this solution instead of changing the lua files is that it makes it possible to simply remove the artifact via for example [remove_object] (which wouldn't work for artifacts using traits as those are separate modifications)
The code now also adds a dummy ability so that players know that this unit has the benefits of the healthy fearless and undead traits.
S16 (Hasty Alliance) uses more rocks and bridges, including
bridges over lava.
S19a (Snow Plains) gets some dirt roads without snow on, and the
edge of the map gets some ice and water.
S19b (Swamp of Dread) gets a wide variant of swamp terrains
instead of sand.
S22 gets more variety in the forests and grasslands.
Cherry-picked from the branch in PR #8243.
HttT S17 map height +5
According to several hundred test runs, Konrad's castle seems to be produced between y=59 and y=71 when the center of the chamber is set at y=65 as it currently is.
Because map_height=75 means that the playable map size is y=73 due to the border hexes at the top and bottom, this change probably guarantees that Konrad's castle is fully within the playable map.
Fixes the following bugs :
Stop scroll_text from growing infinitely and instead show the
scrollbars when the text dimensions exceed the default size of
the underlying multiline_text in some dialogs (such as edit_pbl,
the pbl publishing editor).
Allow horizontal_grow/vertical_grow to work correctly. Currently,
the widget stops vertically growing due to absence of
max_height=0, again in some specific dialogs.
EI - dra_nak_dead branch bugfix. Fixes#8414.
* S18 conditionally forwards the player to the bonus scenario, S99. One of the required conditions is that dra_nak_dead is not yes. The victory event of S12 unconditionally cleared dra_nak_dead, meaning that that test in S18 would always pass.
* S12 tests dra_nak_dead to see if he was killed in S11, and if he wasn't then it renames "Varrak-Klar" to "Chief Dra-Nak", as if Dra-Nak was pursuing the heroes. However, S12 didn't set the dra_nak_dead variable if the renamed Varrak-Klar died.
EI - S12 bugfix flying undead being drowned/trapped
* In EI S12, units were killed/lost when a bridge is destroyed.
* Flying units shouldn't be killed/lost, as they can fly.
Instead of copy-pasting the multiplayer turns over advantage function, just use that function directly.
This required making some changes to the function to better support this specific use-case,
but I think it's still better than copy-pasting it.
I split the primary functionality out into two separate pieces – calculation and display.
Thus, the main function is technically unchanged, while WoF can avoid the weird things it does
and just calculate and display how it wants.
This fixes#8368.
When Terraent was created, the mainline paladin had no standing anim. When that was added, it conflicted with Terraent's. This fixes that issue.
This also updates Terraent's other stats to match the mainline paladin's rebalanced stats.