At the end of S09, the heroes have four ships. The narrative is that all the
elves are on the ships, but the in-game visuals were that the ships move while
all the player's units are standing on the shore.
The heal=yes isn't needed since 74c2398f6, but adding it here avoids
a possible bug if this commit is backported to 1.14.
Fixes#4253.
The schema's validation of ranges now rejects negative numbers, because the C++
code doesn't support them (both before and after this commit):
* utils::parse_range("-7") will return {0,0}, because std::stoi("") throws invalid_argument.
* src/map/location.cpp will parse it as -7, but that will never match an on-map coordinate
Remove unnecessary blank lines and debugging comments
- Adds a preferences entry in the multiplayer/alerts menu so sounds and desktop notifications can be toggled.
Reformat a few points for consistency
Have desktop notification show name and scenario of new game
Have desktop notification show name and scenario of new game
Update desktop notifications to use VGETTEXT for translations
(cherry picked from commit af71dbf1b1caec0ac654180cca9c037955602301)
(cherry picked from commit a2d994328669499549a614753781ba9cabcfa41d)
since the recent changes to overlays= in particular 1a7724e5472,
e71033374c35 and b2cd1cf6c [unit]overlays= is no longer the
recommended way to add an overlay and the use of the
apply_to=overlay effect is reccomended instead, so adding it
to the [trait] is the most natural option here.
this in particular fixes#4058 . Also people simply forgetting the
IS_LOYAL macro was a not-so-uncommon cause of bugs.
In some cases people want to give the LOYAL trait without giving the
loyal overlays for those cases i added a optional OVERLAY parameter to
the {TRAIT_LOYAL} macro, also heroes should now use {TRAIT_LOYAL_HERO}
instead which uses the hero overlay. The IS_LOYAL and IS_HERO macros are
no longer needed in combination with those traits.
this just prevents the units wml from getting cuttered with many [objects]
(generated by the [unit_overlay] implementation) that cancel each other out.
(in the cases here it shouldn't really be a problem though, i still did it
because it feels clener this way)
this in particular makes it compatible the umc code that uses [remove_object]
It also makes the implementation a bit easier since we don't have to compute
things manually anymore, also duration=scenario takes care of cleanup at
scenario end.
now wesnoth.require is able to detect when the same file is
required two times using different names (like a/../a/b.lua
a/b.lua) and will only execute it once.
for this a new function wesnoth.canonical_path was added