mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-24 18:48:13 +00:00

When processing [effect]apply_to=movement, if apply_to_vision is 'yes' (which is the default) then the vision points will change by the same amount. Previously, it sometimes affected vision and sometimes didn't; for most cases where it makes a difference, I expect it to be a change from unanticipated behavior to expected behavior. Please refer to the new unit test added in this commit for more detailed docs; that test is also a rough draft for the Wiki update needed when this merges. The reason it sometimes affected vision was that the special value of -1 vision points was interpreted as "use the value of the max movement points instead". The special value of -1 is still supported and frequently used, and refactor that is out of scope for this commit - it's easy to check when the code path changed in this commit is used, however it's considerably more complex to find all routes that create a unit with vision set to -1. I'm expecting one add-on, Rebirth In Nature, to need a large update for this; as well as a trivial change needed to the Add Creature Pack. There are several mods that have their own handling for vision, recalculate the values frequently, and are expected to continue working as before, as they'll just overwrite any changes that the engine makes. * Proper Flying Mod / Proper Vision Mod * LotI * Blessed Altar Mod * Shards Era's `CALCULATE_WEAPONS_ONLY` macro * Castle of Evil Spirit Rebirth In Nature is an RPG-style campaign that expects the player's unit to have vision separated from movement along with right-click menus that change the character's movement, this will probably need `apply_to_vision=no` in many places. OTOH, its `item_id=mobility` uses `apply_to=movement` followed by `apply_to=vision` to implement in 1.14 what this change will make default behavior in 1.16. There are a few sharpshooter units which have vision better than their movement. If given a buff which boosts their movement, this will give them a buff to vision too; likely a change towards expected behavior. * Archaic Era's Royal Ranger * Ageless Era's Royal Ranger and Dwarvish Forest Sniper * Eastern Europe at War's Yacht and Great Yacht * Era of More Units's Lone Wolf * Southernerns has several sharpshooters * WWII Era has several sharpshooters * War of Dominions has some guard towers with very low movement Silver Age has abilities that modify vision based on time-of-day, but unlike the Proper Flying Mod and LotI these are done by adding and removing objects that add or subtract one vision point, these should be unaffected by this change. Unrelated to that, it declares values for `[unit_type]vision=` even when the value is the same as max moves - like the sharpshooters this means that buffs to their movement wouldn't have buffed their vision but now do. There are few units with vision less than movement. Generally these seem to be missile weapons that are represented as units, and they probably won't meet any apply_to=movement statements - even if a movement power-up is available, the player would probably choose a different unit. The Add Creature Pack has two creatures (the Cactose Elder and Carnivore Fatal Plant) that have reduced vision, along with AMLAs that increase those units' movement; these AMLAs will need to use `apply_to_vision=no`. These two creatures are used in Castle of Evil Spirit, but they won't get enough experience to get an AMLA there. Fixes #3356.