Version 0.2.08: campaign downloading and AI improvements!
Greetings, tactics fans! I'm back with another update to Together in Battle. Today's update includes the ability to download custom campaigns, some requested AI improvements, new spriggat abilities, new inter-character arguments, and more!
Let's start with the AI. I'm usually loathe to touch the game's AI, as the systems involved are quite complicated and risky to mess around with--however, the AI's difficulty navigating fire on Gharial League maps was annoying enough that I decided to just dive in and make changes. After many hours of AI hell, I emerged victorious with a number of fixes and improvements!
- the AI now actively avoids wandering through non-player-created fire and traps when making "long range" moves (i.e. moves that won't bring it into range to immediately use a skill on anyone). This won't prevent you from baiting nearby enemies into preexisting fire and traps, but enemies should no longer randomly wander into fire or traps when they're nowhere near you.
- reduced the weighting that the AI gives to ally-buffing moves by 80%, meaning that the AI should now pretty much always favor direct attacks against characters within move-and-attack range when given the choice.
- fixed: in situations where the AI evaluated potential knockback moves that would collide the target against a damaging object (e.g. a spiked barricade) or character with a counterattack, the game would actually queue up the object or character's counterattack as though the knockback move had already been chosen and executed. This resulted in phantom counterattacks sometimes going off seemingly at random during the enemy turn.
- fixed: in some circumstances, AI-controlled characters who walked into fire would not continue their turns afterwards.
- fixed: the AI was not evaluating energy-draining skills correctly. It was checking the energy drain against total health instead of total energy for purposes of gauging efficacy, and did not account for overflow damage from energy-draining skills dropping the target's energy below zero.
- fixed: the AI was treating energy-draining skills as though they would be effective against inanimate objects (which they are not).
- fixed: the AI wasn't accounting for the dodge bonus granted by tall grass when weighing different attack options.
Those are the AI improvements, but wait--there's more! We also have new features, skills, event variations, and more. Let's start with the big marquee feature--browsing player-made campaigns!
- in-game browsing and downloading of player-made campaigns is now working! Click the blue flag button in the New Game menu to browse campaigns that other players have uploaded.
- new advanced spriggat skills: Fire Breath 3, Frost Breath 3, Dark Breath 3, and Light Breath 3. These all deal damage in a cone pattern that covers nine spaces.
- spriggats now learn their third-tier breath attack if they promote to greater spriggats, or else learn the multi-target hit-and-run melee skill Claws if they promote to an elemental claw class.
- doubled the psy buff for promoting to a greater spriggat and doubled the strength buff for promoting to an elemental claw. This should make these classes stronger and help to further differentiate their roles.
- reduced the amount that Strength contributes to a spriggat's base salary by about 33%.
- increased the floor (i.e. lowest allowable value) for starting energy on spirits and the major psy classes to 12. (This should prevent the game from generating psy healers, kineticists, and other primary psy users with 5 maximum energy.)
- increased the energy cost of Light Bomb from 18 to 20.
- increased the energy cost of Fury and Stimulate from 5 to 6 and reduced the duration of Strengthened and Lucid from 4 rounds to 3.
- in the shop, reduced the spawn chance of Runner's Cleats to 4% and Binoculars to 8%.
- fixed: the PICKFROMLIST{} special character would never pick the last entry in the list. This was causing the game to ignore the second "generic" argument in the argument event, all but ensuring that only one argument ("unwanted advice") was ever chosen unless the game happened to randomly draw two participants with clashing personality traits.

- re-scripted the camp "argument" event so the game will always choose characters with clashing personality traits to participate if available. (This will cause unique arguments tailored to each character's personality to show up much, much more often.) Moreover, personality-conflict arguments between two characters in the argument event will now always trump other arguments.
- wrote two new personality-conflict argument variants for religious and empirical characters, bringing the total number of unique arguments that can be chosen for this event up from 12 to 14.
- when a camp activity affects more than one social stat (familiarity, friendship, or romance) at once, the game now staggers the pop-ups a bit to make everything easier to see.
- fixed: level-ups and promotions produced by items used via a character screen from within reserve supplies menu would not "stick."
- fixed a range error produced when enemies applied a status effect under fog of war and were then revealed (manifesting primarily as fog tiles no longer being removed).
- fixed: cosmetic bridge connections spawning below ground level on solid terrain could override the space's ordinary elevation with a lower one.
- fixed: the game wasn't accounting for the dodge bonus granted by tall grass when displaying attack accuracy upon mousing over an attack tile.
- fixed: it was possible to stall until after the Festival of the Ascendant Lights to trigger the surprise camp visitation plot event.
- fixed: players with OSes set to countries that habitually use a comma to denote a decimal point would have their machine parse certain numbers incorrectly (which I suspect was responsible for messing up the timing of certain actions in combat for European players).
- fixed: the mentalist headband portrait accessory was misaligned on one of the male human head variants.
- fixed: the game's "check ahead for conversation-ending script actions within called scripts" functionality was not interacting correctly with conditional Run-type actions (e.g. IfValRun, IfStringRun, etc.)
And as usual, we have some goodies for people using the campaign creation suite:

- I created and uploaded a short example campaign to Steam Workshop demonstrating how to make use of the Together in Battle engine's most unique features (like recruitment, the calendar, and camp interactions). Open it up in the campaign creator to see how these things are done!
- new script action: PairToList. Winnows down an existing list of characters to two who meet distinct, specified sets of attribute requirements, then send their names to a new list.
- scripting improvement: you can now specify the name of a list for purposes of LASTINLIST[] special character using a custom string variable.
- scripting improvement: you can now use a custom integer value within an ID[] special character.
- fixed: the CombineLists script action did not work properly when combining more than two lists at once.
That's all for now--I have more things planned for the next update. Until next time!
Tactically yours,
Craig
Let's start with the AI. I'm usually loathe to touch the game's AI, as the systems involved are quite complicated and risky to mess around with--however, the AI's difficulty navigating fire on Gharial League maps was annoying enough that I decided to just dive in and make changes. After many hours of AI hell, I emerged victorious with a number of fixes and improvements!
- the AI now actively avoids wandering through non-player-created fire and traps when making "long range" moves (i.e. moves that won't bring it into range to immediately use a skill on anyone). This won't prevent you from baiting nearby enemies into preexisting fire and traps, but enemies should no longer randomly wander into fire or traps when they're nowhere near you.
- reduced the weighting that the AI gives to ally-buffing moves by 80%, meaning that the AI should now pretty much always favor direct attacks against characters within move-and-attack range when given the choice.
- fixed: in situations where the AI evaluated potential knockback moves that would collide the target against a damaging object (e.g. a spiked barricade) or character with a counterattack, the game would actually queue up the object or character's counterattack as though the knockback move had already been chosen and executed. This resulted in phantom counterattacks sometimes going off seemingly at random during the enemy turn.
- fixed: in some circumstances, AI-controlled characters who walked into fire would not continue their turns afterwards.
- fixed: the AI was not evaluating energy-draining skills correctly. It was checking the energy drain against total health instead of total energy for purposes of gauging efficacy, and did not account for overflow damage from energy-draining skills dropping the target's energy below zero.
- fixed: the AI was treating energy-draining skills as though they would be effective against inanimate objects (which they are not).
- fixed: the AI wasn't accounting for the dodge bonus granted by tall grass when weighing different attack options.
Those are the AI improvements, but wait--there's more! We also have new features, skills, event variations, and more. Let's start with the big marquee feature--browsing player-made campaigns!
- in-game browsing and downloading of player-made campaigns is now working! Click the blue flag button in the New Game menu to browse campaigns that other players have uploaded.
- new advanced spriggat skills: Fire Breath 3, Frost Breath 3, Dark Breath 3, and Light Breath 3. These all deal damage in a cone pattern that covers nine spaces.
- spriggats now learn their third-tier breath attack if they promote to greater spriggats, or else learn the multi-target hit-and-run melee skill Claws if they promote to an elemental claw class.
- doubled the psy buff for promoting to a greater spriggat and doubled the strength buff for promoting to an elemental claw. This should make these classes stronger and help to further differentiate their roles.
- reduced the amount that Strength contributes to a spriggat's base salary by about 33%.
- increased the floor (i.e. lowest allowable value) for starting energy on spirits and the major psy classes to 12. (This should prevent the game from generating psy healers, kineticists, and other primary psy users with 5 maximum energy.)
- increased the energy cost of Light Bomb from 18 to 20.
- increased the energy cost of Fury and Stimulate from 5 to 6 and reduced the duration of Strengthened and Lucid from 4 rounds to 3.
- in the shop, reduced the spawn chance of Runner's Cleats to 4% and Binoculars to 8%.
- fixed: the PICKFROMLIST{} special character would never pick the last entry in the list. This was causing the game to ignore the second "generic" argument in the argument event, all but ensuring that only one argument ("unwanted advice") was ever chosen unless the game happened to randomly draw two participants with clashing personality traits.

- re-scripted the camp "argument" event so the game will always choose characters with clashing personality traits to participate if available. (This will cause unique arguments tailored to each character's personality to show up much, much more often.) Moreover, personality-conflict arguments between two characters in the argument event will now always trump other arguments.
- wrote two new personality-conflict argument variants for religious and empirical characters, bringing the total number of unique arguments that can be chosen for this event up from 12 to 14.
- when a camp activity affects more than one social stat (familiarity, friendship, or romance) at once, the game now staggers the pop-ups a bit to make everything easier to see.
- fixed: level-ups and promotions produced by items used via a character screen from within reserve supplies menu would not "stick."
- fixed a range error produced when enemies applied a status effect under fog of war and were then revealed (manifesting primarily as fog tiles no longer being removed).
- fixed: cosmetic bridge connections spawning below ground level on solid terrain could override the space's ordinary elevation with a lower one.
- fixed: the game wasn't accounting for the dodge bonus granted by tall grass when displaying attack accuracy upon mousing over an attack tile.
- fixed: it was possible to stall until after the Festival of the Ascendant Lights to trigger the surprise camp visitation plot event.
- fixed: players with OSes set to countries that habitually use a comma to denote a decimal point would have their machine parse certain numbers incorrectly (which I suspect was responsible for messing up the timing of certain actions in combat for European players).
- fixed: the mentalist headband portrait accessory was misaligned on one of the male human head variants.
- fixed: the game's "check ahead for conversation-ending script actions within called scripts" functionality was not interacting correctly with conditional Run-type actions (e.g. IfValRun, IfStringRun, etc.)
And as usual, we have some goodies for people using the campaign creation suite:

- I created and uploaded a short example campaign to Steam Workshop demonstrating how to make use of the Together in Battle engine's most unique features (like recruitment, the calendar, and camp interactions). Open it up in the campaign creator to see how these things are done!
- new script action: PairToList. Winnows down an existing list of characters to two who meet distinct, specified sets of attribute requirements, then send their names to a new list.
- scripting improvement: you can now specify the name of a list for purposes of LASTINLIST[] special character using a custom string variable.
- scripting improvement: you can now use a custom integer value within an ID[] special character.
- fixed: the CombineLists script action did not work properly when combining more than two lists at once.
That's all for now--I have more things planned for the next update. Until next time!
Tactically yours,
Craig