After the Storm 0.9.9

Version 0.9.9 is out, just in time for the holidays!

Since I have tested and developed this campaign primarily on Wesnoth 1.11.x since the 0.9.0 release, this version promotes support for Wesnoth 1.11.8 to official status. Because most of the campaign makes use of 1.11.x-specific features (both from me and other mainline developers) when available, it is quite possible that I will entirely drop support for Wesnoth 1.10.x in a future release even before the first Wesnoth 1.12 beta arrives. I still intend to make sure certain additions and changes for episodes II and III land before the last AtS version supporting 1.10.x, if time permits.

This 0.9.9 release primarily deals with prose corrections and improvements, and various other ‘cosmetic’ changes. There are also various fixes for some instances of dysfunctional AI recruitment on Wesnoth 1.11.7 and 1.11.8 resulting from the recruitment_save_gold aspect being enabled by default in those versions (but not 1.11.9 and later).

There isn’t much in terms of new graphics since the prose and code changes (plus some mainline stuff) have kept me far too busy to do much more than some doodles. On the other hand, this release contains various animation fixes and improvements to the Aragwaithi units ported from Era of Chaos. There are also a handful of balancing changes affecting both Aragwaith and non-Aragwaith units.

Also featuring in this release are a number of WML optimizations intended to reduce campaign load times — especially on 1.10.x, which has a slightly slower tokenizer implementation than 1.11.x. Since the affected bits of code have been completely rewritten in Lua, it is possible that I accidentally introduced new bugs in the process that I may have missed during my playthrough, extensive as it was.

There is also a new secret feature that is not mentioned in the changelog. What is it, you ask? Well, if I told you, that would ruin the surprise. Think of it as a Christmas present!

Finally, from this release onwards, After the Storm is no longer part of the Wesnoth-UMC-Dev Project, and will be hosted on GitHub instead. Ever since development of the campaign started, Wesnoth-UMC-Dev provided SVN repository hosting for both After the Storm and Invasion from the Unknown, but over time that has proved to be an inefficient solution due to technical and organizational concerns. Although the conversion process was not easy in the least, I believe that this move will make things easier for me in the long-term, since I had been using git-svn to work on IftU and AtS since late 2008 anyway.

Release tarballs will continue to be hosted by Wesnoth-UMC-Dev for the time being, until I decide to phase them out entirely in favor of GitHub’s Releases page. If anyone is using them because they cannot normally download AtS or AtS_Music from the add-ons server, I’d appreciate it if you let me know so I can make a more informed decision in the future (or point you to, that works too). For the time being, the tarball compression format has changed from Bzip2 (.tar.bz2) to xz (.tar.xz).

Special thanks to vultraz and 8680 for their proofreading assistance, without which this release would be about 1% less awesome. Also thanks to the current and past Wesnoth-UMC-Dev admins, AI/AI0867 and Espreon, for their continued support all these years — IftU and AtS simply wouldn’t be the same without Wesnoth-UMC-Dev.

The complete changelog for this version follows:

Version 0.9.9:
* General:
* Removed Wesnoth development versions warning from the campaign menu entries
as support for 1.11.8 and later is now mature.
* New complete algorithm for calculating the relative direction between two
hex grid locations, handling all six intrinsic facing directions instead
of only SW and SE.
* Updated Aragwaith faction from Era of Chaos 1.3.1+dev up to commit
* Stripped optional whitespace from terrain map and mask files, decreasing
uncompressed directory size by about 62%.
* Graphics:
* New or updated unit graphics: Blood Core, multiple Aragwaith units, Demon
* Assigned a more dignified generic portrait to Cron (1.11.x only).
* Music and sound effects:
* Mitigated `[fade_out_music]` causing a portion of the previous track to be
heard at full volume at the end of the fade-out sequence. It still won't
help in all cases.
* Scenarios:
* Fixed additional bugs with hero ellipses on Wesnoth 1.11.6 and later
affecting Anya on every scenario and Durvan on scenario E3S7B and later.
* Use STARTING_VILLAGES_ALL instead of STARTING_VILLAGES with large numbers
to assign all villages to sides.
* Skip inclusion of death events for characters that are not present during
the first few scenarios of E1.
* E1S3 - Civil War in the North:
* Fixed the first defined on-map unit (usually Galas) becoming permanently
* Minor prose tweaks.
* E1S4 - Terror at Dusk:
* Balancing changes to make the scenario easier on Wesnoth 1.11.7 and
later, possibly connected to the new AI recruitment gold saving aspect
introduced in Wesnoth 1.11.7 and enabled by default.
* Minor prose tweaks.
* E1S5 - Bay of Tirigaz:
* Made it so Mal Keshar speaks for bat units when investigating shipwrecks.
* Minor map tweaks.
* Minor prose tweaks.
* E1S6.1 - Quenoth Isle:
* Fixed Elynia's ellipse reverting to a generic unit ellipse on 1.11.x
during the faerie fire cutscene.
* Not-so-minor prose tweaks.
* E1S6.2 - Elves of a Different Land:
* Not-so-minor prose tweaks.
* Extended map for large screens.
* E1S7 - The Search for the Past:
* Improved ending cutscene transition.
* Minor AI adjustments to make the undead minions recruit correctly on
Wesnoth 1.11.7 and later.
* Not-so-minor prose tweaks.
* E1S7x - Resolutions:
* Minor map tweaks.
* Not-so-minor prose tweaks.
* E1S8 - Fear:
* Not-so-minor prose tweaks.
* E1S9.1, E1S9.2, E1S9.3 - The Triad:
* Not-so-minor prose tweaks.
* Various cutscene improvements and changes.
* E1S10 - Tears:
* Minor prose tweaks.
* E1S11.1 - Return to Wesmere, part 1:
* Not-so-minor prose tweaks.
* E1S11.2 - Return to Wesmere, part 2:
* Fixed story text not appearing because of a missing macro inclusion
(long-standing bug that's existed ever since the scenario was first
* Minor map tweaks.
* Minor prose tweaks.
* E1S12 - The Queen:
* Balancing changes.
* Excluded time area for the E1S11.2 starting area on Wesnoth 1.11.7 and
earlier (including 1.10.x) due to a bug with time area ids not being
saved, resulting in a time area with local lighting that interfers with a
cutscene sequence after reloading from a non-start-of-scenario save.
* Fixed long-standing offset-by-one bug with a terrain mask applied near
the end.
* Minor map tweaks.
* Not-so-minor prose tweaks.
* Various cutscene improvements and changes.
* E1S13 - Death and Rebirth:
* Minor cutscene improvements and changes.
* E2S1 - By the Moonlight:
* Minor AI adjustments for Wesnoth 1.11.7 and later.
* Not-so-minor prose tweaks.
* Now the scenario lives up to its name.
* E2S2 - The Heart Forest:
* Fixed fog not being cleared correctly when Allyna first appears.
* Made it so Allyna introduces herself once three of the five bandits have
been killed rather than all of them.
* Minor AI adjustments for Wesnoth 1.11.7 and later.
* Minor prose tweaks.
* E2S3.1 - Unrest in Raelthyn:
* Minor prose tweaks.
* E2S3.2 - Revelations:
* Minor prose tweaks.
* E2S4 - Shifting Allegiances:
* Minor prose tweaks.
* E2S5 - The Eastern Front:
* Minor prose tweaks.
* E2S6 - The Voyage Home:
* Not-so-minor prose tweaks.
* E2S7 - The Voyage Home:
* Minor prose tweaks.
* E2S8 - And then there was Chaos:
* Minor AI adjustments for Wesnoth 1.11.7 and later.
* Not-so-minor prose tweaks.
* E2S9 - New Hive:
* Minor prose tweaks.
* E2S10 - The Betrayal:
* Minor prose tweaks.
* E2S11 - A Final Confrontation:
* Maybe-minor prose tweaks.
* Minor cutscene tweaks and improvements.
* E2S12 - Fate:
* Minor cutscene tweaks and improvements.
* E3S0 - Opening (Within):
* Minor cutscene tweaks and improvements.
* E3S1 - Beyond her Smile (A Light in the Darkness):
* Minor map tweaks.
* Various cutscene improvements and changes.
* E3S2.1 - Return to Raelthyn:
* Minor map tweaks.
* Increased initial gold supply for the second human player side.
* E3S2.2 - Reckoning:
* Minor prose tweaks.
* E3S3 - Amidst the Ruins of Glamdrol:
* Minor prose tweaks.
* E3S4.1 - Outpost of Hell:
* Minor prose tweaks.
* E3S4.2 - Gateway:
* Minor prose tweaks.
* E3S5 - Pass of Sorrows:
* Minor map tweaks.
* Minor prose tweaks.
* Minor ending cutscene improvements.
* E3S6 - Divergence:
* Minor prose tweaks.
* E3S7A - Dark Fire:
* Prevent crashing Wesnoth 1.11.8 due to a missing initial time of day
(part 1 only).
* Minor AI adjustments for Wesnoth 1.11.7 and later.
* Minor map tweaks.
* Minor prose tweaks.
* E3S7B - Dark Sea:
* Minor AI adjustments for Wesnoth 1.11.7 and later.
* Minor prose tweaks.
* E3S8A - Interim:
* Prevent crashing Wesnoth 1.11.8 due to a missing initial time of day.
* Minor cutscene improvements nobody could possibly notice.
* Minor prose tweaks.
* E3S8B - Destiny, part 1:
* Minor aesthetic changes nobody could possibly notice.
* Fixed parts of the map being unintentionally uncovered upon entering
Hemérilyel's chamber.
* Made Hemérilyel more aggressive towards the player on Wesnoth 1.11.2 and
* E3S8C - Breakdown:
* Minor AI adjustments for Wesnoth 1.11.7 and later.
* Minor prose tweaks.
* E3S8D - Destiny, part 2:
* Minor prose tweaks.
* E3S9 - Dark Depths:
* Minor prose tweaks.
* E3S10 - Blood:
* Minor prose tweaks.
* E3S11 - After the Storm:
* Minor prose tweaks.
* E3S12 - Destiny, part 3:
* Minor prose tweaks.
* E3S13 - Epilogue:
* Minor prose tweaks.
* Units:
* Balancing changes:
* Imps are now immune to the plague weapon special.
* The Protection ability affects own units of any lower level again instead
of only level 0 and 1.
* Affected units: Demoness Hellbent Tide, Aragwaith Shield Guard,
Aragwaith Ancient Banner.
* Physical endurance no longer resets statuses (poisoned, slowed, etc.).
* Decreased Lumeril Glyph Mistress' arcane damage resistance from -10% to
* Decreased Fallen Faerie's cold ranged attack strength from 11-3 to 10-3.
* New or improved unit animations: Verlissh Matrix Core, Shaxthal Custodian
Drone, Shaxthal Queen, Verlissh Matrix Flow System, Verlissh Control Spire,
multiple Aragwaith units, Dusk Faerie line.
* Made it so the Falcon unit type and the lightfly movetype are only defined
if the mainline Khalifate faction is not present, by testing the existence
of core/units/khalifate/Falcon.cfg.
* Fixed a minor inaccuracy at the beginning of the Terror ability
* The spawn controller code (used e.g. in Shaxthal hives) has been completely
rewritten in Lua. No behavior changes expected.

Merry Christmas/Happy Holidays, everyone!