Adding this is issue 2 of #4177, changing the behavior when [find_path]
is given a SLF which matches multiple hexes.
The map and tests here should be easy enough for manually editing them. It
duplicates some of the functionality of the existing characterize_pathfinding
tests, however those tests need their expected values to be calculated and
can't be changed by hand.
'''nearest_by''': {DevFeature1.15|2} possible values "movement_cost"
(default), "steps", "hexes". If the [destination] SLF matches multiple hexes,
the one that would need the least movement points to reach may not be the one
that's closest as measured by '''hexes''', or closest as measured by steps,
from the starting point.
Behavior in 1.14 depended on which hex was checked first.
The feature was never added, a deprecation message saying that it's been
removed is the closest option to the situation. While terrain.cpp itself
supports vision_alias, it was never added to the calculations in movetype.cpp,
therefore it never affected units' vision. It's also not shown in the help
about the terrain.
This doesn't affect the features of units having vision costs different to
movement costs, or of units having a different number of vision points to
movement points, both of which are still supported.
While I'd encourage anyone who wants to implement vision_alias to do so, at the
moment I feel that the still-supported features in the same area haven't been
explored yet, and that vision_alias isn't going to developed before 1.16.0 is
released.
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.