1. Together in Battle
  2. News

Together in Battle News

Version 0.6.50: new investigation scenes, quality of life features, and more!

Greetings, tactics fans! Another month means another update. I've got some extremely cool things cooking behind the scenes, but this month's update is mostly focused on moving along the palace intrigue plot (alongside new quality-of-life features, optimizations, and general polish).

[h3]Without further ado, let's talk about the biggest new thing in the game:[/h3]
  • Created the next few palace intrigue scenes, introducing a new suspect and some new wrinkles. I could say more about it, but I think it's best encountered fresh. 😉



[h3]Next, we have some long-awaited interface improvements:[/h3]
  • during battle, you can now hit the 'Q' key to have the game auto-display every tile that can be reached and/or attacked by at least one enemy! (You can activate this in gamepad mode by pressing the Y button on a space empty of any units.)

  • during battle, you can now hold down the alt key to see every character's health bar onscreen at once:

  • added a dark outline around danger tiles so they remain visible over lava tiles:

  • when defeated in battle, a button to call up the main menu now appears in the bottom-right of the screen so you can double-check objectives, go to the title screen, or--if playing with manual saves--restart the entire battle (as opposed to restarting from the last save).


[h3]Third, we have some optimizations to the game:[/h3]
  • optimized the evening event-choosing process to avoid stack overflow issues that could result from excessive attempts to pick an event.
  • reduced the size of the game's installation footprint by lowering the resolution of cutscene backgrounds.
  • updated the project to a somewhat more recent version of Unity.


[h3]We have miscellaneous other improvements as well, including some AI improvements:[/h3]
  • AI improvement: the game can now string together multiple additional moves after Use Once skills (such as Sprint and Feint), causing higher level units (and swordsmen in particular) to take much more effective turns.
  • AI improvement: the game now takes into account whether a target is frozen, blinded, or immobilized when deciding whether to mind control them.
  • increased the rate of enemy level scaling a bit for the merchant side quest battles.
  • added team size and average level warnings to the Investigate daytime action.
  • increased the witness's durability a little bit for the witness protection battle.
  • cleaned up photokineticist walk animations a bit.
  • cleaned up assassin walk animations a bit.
  • the auto-objectives screen no longer appears until after any turn 0 dialogue occurring after the dismissal of the turn box.


[h3]We have numerous bug fixes:[/h3]
  • fixed: characters could use self-move skills like Charge while immobilized.
  • fixed: on maps with more deployment slots than allowable deployed characters, players could bypass maximum deployment restrictions merely by deploying every one of their available characters.
  • fixed: switching to gamepad controls mid-game (as opposed to doing so on the title screen) would not disable the mouse.
  • fixed: when auto-showing the shop tutorial, the tutorial wasn't pulling focus for the gamepad cursor.
  • fixed: upon clicking a skill, then opening the character screen and unequipping the item which grants the use of that skill, the skill's red attack tiles would remain present and clickable on the battlefield.
  • fixed: targeting an ally with a skill that does no damage and causes a negative status effect to which they are immune (e.g. targeting a non-flying ally with Gravity Spike) would provoke a friendly-fire reaction despite having no effect.
  • fixed: when changing a custom string for the name of an army during a battle, the game would not update the army's name in the new turn window (an issue appearing most noticeably during some of the league qualifier bouts).
  • fixed: due to a scripting error, a flag allowing the player to follow Malatose one week following her second interrogation was never set.
  • fixed: if a character did not have a stat listed among their growths and they gained a trait altering growth for that stat, the game would ignore the growth boost entirely instead of adding that stat to the unit's growths for modification.
  • fixed: the character generator was not interpreting traits with multi-operation growth effects and base stat effects correctly, causing the Sharp-Eyed trait not to work as intended.
  • fixed: physical traits imbued by a character's past life skills would not exclude the opposite trait from being selected during character creation (potentially leading to characters with, e.g., both muscular and skinny traits at once).
  • fixed: when selecting Restart Battle, the actions bar would reappear while fading out the scene.
  • fixed: if a text overlay was onscreen when selecting Restart Battle, it would reappear while fading out the scene.
  • fixed: when using Charge against a target, ending the charge on caltrops, and killing the target, the target wouldn't get knocked back and the combat sequence wouldn't conclude, causing the game to lock up.
  • AI fix: when scoring moves, the game was double-counting impact damage against a target when the target was shoved into another character even when the character they were being shoved into was an ally of the attacker, not a second enemy.
  • fixed: Burning status was not being ended by a character being submerged in water.
  • fixed: destroying a cosmetic bridge tile embedded in land via an explosive could result in a surviving unit standing on that space being "dropped" upward into the air and remaining suspended there.
  • fixed: you could lock up the game by blocking a character from moving at all during scripted movement.
  • fixed: a character spawning onto the battlefield on top of a trap would not trigger the trap.
  • fixed: if a character started its turn on a pressure trigger space, the game would ignore pressure triggers on the first adjacent space the character moved to.
  • fixed: when killing an enemy by shoving an ally into them, if the enemy had a counterattack available, the enemy could sometimes counterattack the character who was shoved into them even though they had taken lethal damage.
  • fixed: if a map had BeforeTurn dialogue marked as repeatable, the auto-objectives screen could cause it to re-trigger after the objectives faded, trapping the player in a loop.
  • fixed: text overlays could appear beneath the auto-objectives screen.
  • fixed: the space selector was inappropriately snapping to bridges and other objects that lay flat when mousing above them, as though they were characters with height.
  • fixed incorrect palette highlight coloration for pants in the photokineticist sprite.
  • fixed: the Mantis Rider card art was not loading correctly in Psy Clash.
  • fixed: the description text for laboring was out of date, stating that laboring takes only 30% of a character's remaining energy rather than the 50% it now takes.
  • fixed: a handful of random event day logs could be truncated due to a formatting mistake.
  • fixed: the day log summary for characters getting wounded was missing a period.
  • fixed a couple of typos: one in the Festival of the Ascendant Lights narration, one in Malatose's dialogue during her first interrogation.
  • fixed: there were missing spaces in certain variants of the cavosphere activity narration.


[h3]And lastly, we have a few improvements for campaign creators![/h3]
  • added support for terrain tiles with built-in status effects!
  • added two new cutscene backgrounds to the game: Dese Palace Garden and Dese Palace Study.

  • added the Overheat, Lava Burn, and Crowd Booing Muffled sound effects to the assets list for use in the campaign creator.
  • added the Cut, Place Caltrops 2, Place Brazier, Levitate Other, and Shockwave skill button graphics to the assets list for use in the campaign creator.


Next month's update is going to have some big-ticket items that folks have been asking for--things I spent time working to get in with this month's update, but which I couldn't quite squeeze through in time. Stay tuned--I know you're really going to like them! 😉


Yours in tactics,

Craig

Version 0.6.40: UI improvements, gamepad support improvements, and bug fixes!

Greetings, tactics fans! Some of you may know that I am but a single dude with a day job--and as it happens, that day job was quite busy this past month. I wasn't sure if I would have the time to add the ambitious new main-plot content I had planned (spoiler: I didn't), so I decided to spend what time I had on adding high-impact content like new conditions for proc gen battles, polishing the UI, fixing bugs, and giving gamepad support another pass.

Before we get to that stuff, though, I want to tell you about the one new feature I'm most excited about adding this month...

[h3]...Day Logs! [/h3]

For quite some time, I've been wanting to add something to the game that lets you look back on everything that's transpired during each day of your playthrough--and now, that very thing has arrived in-game!

  • in the calendar screen, you can now review the logs of all tracked events and choices that happened on every day of your run!



  • in last month's second, mini update, I started having the game track certain choices and events for use in day logs. That tracking has now expanded to cover more things like character recruitments, character deaths, characters recovering from being wounded, characters going off to train, the results of job board missions, and so on.

Next up, we have...


[h3]...a variety of other UI improvements![/h3]

  • combat objectives now auto-display at the start of each battle! No longer will you have to infer your victory and loss conditions from dialogue (or manually open the objectives menu)--the game now simply gives this information to you automatically.
  • in battle, the "I" key now serves as a hotkey to open the current selected character's inventory. (Of course, this just amounts to opening their character screen, since that is where the inventory resides--but this should still be an improvement for new players who missed that in the tutorials.)
  • move tiles, along with the step numbers and path arrows that appear within them, now have outlines to make them visible against snow and lava tiles!



  • I was dissatisfied with the aesthetics of the New Turn box in battle, so I redesigned it with new, hand-animated painted banners. (I seldom have time to paint much new art myself these days, but I'm quite happy I did so here--I think they look a whole lot nicer than before! 🙂)




[h3]Next, we have improvements to gamepad support! [/h3]

Ask any game dev and they'll tell you: anytime you fix something in a game, Fate performs a secret die roll to determine if the fix quietly broke another thing somewhere else in the code. Unfortunately, it seems that gamepad support suffered a critical failure on that roll sometime over the prior months.

On the plus side, however, I recently discovered these issues during testing, so I made sure to pack this month's update with a slew of gamepad/Steamdeck fixes (as well as some straight-up improvements)! Here's the list of those:

  • dramatically improved gamepad navigation on the recruitment screen (which was pretty haphazard before).
  • added gamepad support for the battle objectives screen.
  • added gamepad support for the new day log UI in the calendar screen.
  • added shoulder button support to the character inventory pop-up window within the reserve supplies screen when playing with a gamepad; the shoulder buttons now automatically switch to the next/previous character in the roster.
  • added shoulder button support to the shop screen when playing with a gamepad; the shoulder buttons now automatically switch to the next/previous item category.
  • added shoulder button support to the calendar screen when playing with a gamepad; the shoulder buttons now automatically switch the currently displayed month.
  • when switching item categories in the shop in gamepad mode, the game now jumps the selector over to the first item in the new category instead of leaving the cursor down among the category buttons.
  • fixed: at some point, the UI arrows had ceased appearing on reply buttons during dialogue when playing with gamepad.
  • fixed: gamepad support for the promotion screen was completely missing during non-combat scenes (such as camp).
  • fixed: when playing with gamepad and using the reserve supplies screen during deployment in battle, the game would inappropriately shift gamepad cursor focus to the battlefield when hitting "B" to back out of an individual character inventory.
  • fixed some more spots where gamepad support had broken in recruitment and in camp.
  • fixed: the UI arrows had become misaligned with various elements of the interface in the recruitment screen when playing with gamepad.
  • fixed: when playing with gamepad, physical traits were not inspectable in the recruitment UI.
  • fixed: when playing with gamepad, the next page / previous page buttons in the recruitment interface remained selectable with gamepad even when disabled.
  • fixed: when playing with gamepad, it was possible for the game to become "stuck" at the conclusion of evening camp activities.
  • fixed: the game was displaying character health bars when mousing over a character under an attack tile, thereby blocking the player's view of the hit chance text.
  • fixed: when playing with gamepad, visiting the jobs board would cause the gamepad cursor to jump up to the calendar button at the top of the screen.
  • fixed: when playing with gamepad, the "B" button would not exit out of the calendar screen.
  • fixed: when playing with gamepad, the UI arrows were no longer appearing in their intended spots on buttons within the reserve supplies screen during deployment in battle.
  • fixed: character tooltips could remain onscreen when dialogue was triggered mid-battle (particularly when playing with gamepad).
  • fixed: it was possible for character tooltips to pop up over the top of the promotion screen when a character promoted in battle when playing with the gamepad.
  • fixed in version 0.6.40b: the pop-up confirmation windows for custom menu buttons were missing gamepad support.
  • fixed in version 0.6.40b: when playing in gamepad mode, the game was pulling focus away from the confirmation window for auto-equipping newly grabbed equipment, essentially freezing the game.
  • fixed in version 0.6.40b: when playing in gamepad mode, the recruitment tutorial was not receiving gamepad focus when first entering recruitment..
  • fixed in version 0.6.40b: the recruitment tutorial was returning focus to the recruitment interface prematurely.

And that's that! Based on my testing, playing TIB on Steamdeck is now once again a downright pleasant experience--but please do let me know over in the forums if there's anything I've missed.


[h3]We have new content and miscellaneous improvements![/h3]

  • wrote a new, two-part random evening event for depressive characters.
  • a new unique arena event can occur in Tiger League: "Powerbot 5000."
  • the ash weather condition during Gharial League now has an actual effect, spawning additional fire around the arena every two rounds.
  • the snow weather condition during Snow Leopard League now has an actual effect, spawning a new battlefield object around the arena: ice patches! These positively wreck dodge and cold resistance for whatever unit stands on them, significantly reducing their accuracy as well. Worst of all, if a non-flying unit moves onto an ice patch, they will become Slowed until the next round.
  • new random caravan battle condition: numerous enemies. The caravan is attacked by an unusually large force of bandits.
  • when sending units to serve as caravan guards, the player is now much less likely to get a caravan defense battle without any complicating condition.
  • at last, gasuls now gain a distinct spriteset upon promotion! (Note that the Bonebreaker/Cripple/Stunner animation is still in progress.)
  • new swordsman skill: Cut. 1 energy, deals 50% of normal slash damage, doesn't end the turn (and therefore can be combined with other attacks, applying bonus damage from the user's weapon with every attack made).
  • swordsmen now always learn either Shove 2 or Pull 2, always learn Defiant Stance or Preemptive Stance, and always learn either Lunge or Cut in the later part of their skill progressions.
  • reduced the dodge gain upon promoting a barudit to Wyrm to make Drake stand out a bit more as an option.
  • new skill: Shockwave. Deals Crush damage to every unit adjacent and immediately diagonal, with a chance of stunning.
  • new visual effect: Shockwave.
  • updated the objectives on all in-game battles for greater clarity; objectives that count as victory conditions are now clearly labeled as such.
  • AI improvement: I capped the AI's space danger modifier at 3.0 for short-range moves to avoid situations where the AI chooses not to make optimal moves merely because the current unit is too low on health.
  • received a new Palace Gardens cutscene background (necessary for the next main plot scene, but not yet integrated into the game).
  • new in version 0.6.40b: implemented the finished Bonebreaker animation for promoted gasul!
  • new in version 0.6.40b: boosted the mental resistance debuff on Terror from 150% of the user's Psy to 180%.
  • new in version 0.6.40b: added an explicit "Doesn't end the turn" to the end of Aim's skill description.
  • new in version 0.6.40b: added "Requires light armor mastery" to the description for Fur-lined Cloak.



[h3]We have a variety of bug fixes:[/h3]

  • fixed: Snow Leopard and Tiger Leagues were missing checks to ensure that the vengeful brother scenario couldn't recur multiple times in the same playthrough.
  • fixed: the game could pick golems as team leaders in Tiger League, leading to situations where a golem was the team leader and the "brother in the stands" condition was picked, the combination of which would lock up the game as it tried and failed to generate a unique name for a male golem (which does not exist).
  • fixed: the game was not paying the player the second half of their commission for successfully defending caravans.
  • fixed: the player would be locked out from visiting the jobs board if no characters were available on the team, preventing the player from participating in card tournaments.
  • fixed: status effects would hang around on units after a battle if the scene was switched without the battle formally ending in a victory or defeat.
  • fixed: due to a scripting mistake, kidnapped characters with maximum health above 30 weren't having their current health reduced as intended at the start of Battle at the Northern Stepwell.
  • fixed: the Caltrops 2 skill description didn't match its AOE pattern.
  • fixed: non-flying, non-bridge units and objects created on chasm tiles would not immediately fall in.
  • fixed: the AI was not creating a move tracker for enemies it enthralled during its turn; thus, if the AI enthralled a unit and that unit's best move was a non-turn-ending attack, the game could get caught in a loop.
  • fixed: an off-by-one error in the game's experience staling tracker was effectively causing all skills to grant an additional, unintended 12.5% experience if they'd been previously used on a different target during the same fight.
  • AI fix: the scoring bonus for self-healing moves when very low on health was being applied to moves attacking allies, which in some circumstances could lead the AI to regain health on near-death units by attacking allies with Feedback.
  • AI fix: the scoring bonus for self-healing moves when very low on health was being applied even when the target was completely immune to Mental attacks, which in some circumstances could lead the AI to make some highly questionable targeting decisions when using Feedback.
  • fixed: template enemies in proc gen battles without specified names (e.g. the dacoits in caravan defense battles) were not being leveled up to the correct levels, making job board missions much easier than intended.
  • fixed: template enemies in proc gen battles without specified names (e.g. the dacoits in caravan defense battles) were having their names inappropriately changed to match their load IDs.
  • fixed: it was possible for combat winnings to go into the negatives with enough stalling during an arena fight.
  • fixed: the adult female Dese civilian's right-facing walk animation had gotten overwritten with an up-facing walk animation in the sprite sheet.
  • fixed: one of the wall chunks in the recruitment duel fight had become rotated incorrectly.
  • fixed: unpromoted swordsman sprites were using the wrong color for the brightest secondary highlights, resulting in the most highlighted portion of their helmet plumes appearing red even when their secondary army colors did not include red.
  • fixed: promoted spearman sprites were using the wrong color for secondary highlights, resulting in the glossy bits of the top half of their tower shields appearing red even when their secondary army colors did not include red.
  • fixed: promoted shadowling sprites were using the wrong color for secondary highlights, resulting in half of their mask appearing red even when their secondary army colors did not include red.
  • fixed: both promoted and unpromoted cavalier sprites were using the wrong color for the brightest secondary highlights, resulting in the most highlighted portions of their flags and of the designs on their shields appearing red even when their secondary army colors did not include red.
  • fixed: both promoted and unpromoted crossbowman sprites were using the wrong color for the brightest secondary highlights, resulting in the tops of the shoulders on their non-crossbow-holding arm appearing red even when their secondary army colors did not include red.
  • fixed in version 0.6.40a: the game was saving "was wounded" day logs for arena opponents and other characters not controlled by the player.
  • fixed in version 0.6.40b: spriggats could generate with an "I'm something of a red/golden/frost/dark spriggat myself" greeting response line when talking about their respective character classes.
  • fixed in version 0.6.40c: when spawning unique proc gen units in battle via a script, the game could produce units with no gender information and throw a range error upon reaching the name generation step.



[h3]And finally, we have improvements for the campaign creation suite:[/h3]

  • the character creator now automatically marks all equippable items as equipped when you save a character with a built-in inventory.
  • new object: Ice Patch! Ice patches reduce dodge by 75, accuracy by 25, and cold resistance by 50; non-flying characters who move onto them become Slowed (i.e. they immediately lose half their maximum movement and simply cannot dodge at all) for 1 round.
  • new special character: -SPECIES-. Gets replaced with the species of the character who triggered the dialogue.
  • new special character: -CHAR2SPECIES-. Gets replaced with the species of the secondary character in the dialogue.
  • you can now set one of a unit's coordinates to a valid integer number and the other to -1 to have the game try to spawn them on a random space within a specific row or column of the battlefield.
  • the SetWinAura script action now supports multiple operations in one call, delimited by commas.
  • fixed: the "Sex" field for procedurally generating units in the map editor did not actually force the resulting unit to be of the specified gender if the unit was a generic.
  • fixed: when generating a unique named character from a class not defined in Classes.xml using the GenerateUnique script action, if the unit's species was not specified, the game would pull a species of "ERROR," resulting in the character having no valid value for gender, which would in turn cause the game to be unable to generate a name and freeze.
  • fixed: the FindClosestCharacter script action could cause the game to throw a null error if used with a list of characters to exclude that didn't actually exist.
  • fixed: golems created in the character creator were not receiving the golem voice set for their babble sounds.
  • fixed: the SetStringByStat script action was not accepting First Name or Last Name as valid string stats.


That's all I have for you this month, folks. For next month, I'm aiming to create a new plot mission, write a new interrogation scene, create a new random event or two, and--time permitting--add support for creating custom characters that can show up in recruitment in-game. We'll see how things shake out. Until next month!


Tactically yours,

Craig

Version 0.6.31: bug fixes, new men's hair styles, and other improvements!

Just a small patch here to address one particularly bad bug, but it's necessarily going to have all the other improvements I've been adding along with it, so here's version 0.6.31!

[h3]First, the improvements:[/h3]

  • the game now keeps an internal log of the activities, events, and battles that occur each day! You can't actually see this log yet, but that will be coming in a future update. 😉
  • new skill: Place Caltrops 2! Range 1-2, tosses a row of caltrops onto the battlefield. Doesn't end the turn.
  • Architects now learn Place Caltrops 2.
  • the architect now gets +1 range on Build Wood Barricade 2.
  • Megaliths now get +6 energy and learn Hold.
  • Mantis Knights now gain the ability to continue acting after using the Halberd skill.
  • when a Mantis Knight uses Lance, it now blocks access to Halberd for the rest of the turn (since Halberd is just an alternate version of Lance)--and vice versa.
  • increased the maximum range on Create Fire and Create Ice from 2 to 3.
  • changed Jump's after-attack behavior from Can Move to Use Once.
  • rebalanced laboring to make it less effective as a substitute for fighting in the arena (particularly since there are multiple other options on the jobs board now). The energy cost to labor is now 50% instead of 30% and pay now scales more slowly with a character's base strength--past base strength 10, much more slowly.
  • cave exploration now takes characters 2 days to participate in instead of 3.
  • in Psy Clash, you can now pay 2 energy to draw another card once per turn!
  • in Psy Clash, abilities can no longer bring an opponent below -1 energy. (Previously, the lower bound for player energy was -6.)
  • in Psy Clash, the game now tells you how many cards your opponent has in their hand at any given time.
  • added a copy of Gasul to the player's starting deck in Psy Clash.
  • painted new human male hairstyle: balding.
  • painted new human male hairstyle: long and curly.
  • painted new human male hairstyle: neck-length and wavy.
  • new in 0.6.31b: decreased damage scaling on Trueshaft from 190% to 170% of strength.
  • new in 0.6.31b: increased the maximum range on the Photokineticist's Decoy skill to 3.
  • new in 0.6.31b: photokineticist decoys now have a tag that causes the AI to treat them as attack targets on par with other characters.
  • new in 0.6.31b: the bowmen in Battle in the Northern Stepwell will now all become aggressive once the player moves into the northern third of the map.


[h3]Next, the bug fixes:[/h3]

  • fixed: on certain occasions, the game could throw a key-not-found error when silently promoting an enemy in the arena, causing the game to freeze.
  • fixed: the deck viewer would throw a range error and refuse to open if the player had more than 40 cards.
  • fixed: page-flipping buttons in the deck viewer hadn't been connected to the function that updates the cards.
  • fixed: the promoted bronze golem's stomp animation wouldn't play on accompanying skills if they weren't facing downwards.
  • fixed: the game would display novice battle primers instead of weapon repair kits during the item sale event if weapon repair kits were the items chosen to be on sale.
  • fixed: a hotfix from the last week had caused the Babble script action to stop working on dialogue tree branches past 0.
  • fixed: sometimes, Psy Clash AI opponents would take their turn before registering that they'd drawn a new card.
  • fixed: there was no defeat scene set for the Save Grandpa, Strikebreaking, or Duel in the Streets event battles.
  • fixed: dacoit pyrokineticists of level 5 or higher had an invalid skill because they were using the deprecated name "Melt" instead of Defrost.
  • fixed: in Psy Clash, certain minions could block the minions behind them from being clicked.
  • fixed: in Psy Clash, the Gasul's sprite did not display correctly.
  • fixed a typo in Manbir Raksha's dialogue when reporting findings to him.
  • fixed in version 0.6.31a: there was a formatting mistake in the new script defining how much aura characters earn while laboring which caused the game to treat everyone as possessing a base strength of 0.
  • fixed in version 0.6.31b: the game could lock up when using a loud skill in the blacksmith rescue battle due to a scripting mistake.
  • fixed in version 0.6.31b: completing Battle in the Northern Stepwell without talking to the bound character would result in that character remaining immobilized and heavy in perpetuity.
  • AI fix in version 0.6.31b: characters who were both immobilized and drowning in water or lava would nonetheless use items and skills.
  • AI fix in version 0.6.31b: the game was not recognizing chasm tiles as instant-death spaces when calculating the value of knocking enemies in (and the danger of parking a character on top of them), leading to situations where the AI--one its highest settings--would nonetheless choose moves that damage a character in lieu of simply offing them.
  • fixed in version 0.6.31b: upon promotion, the game was overwriting the levels for any existing skills in the character skill progression, resulting in that character learning all remaining skills at once.
  • fixed in version 0.6.31b: the Drain card in Psy Clash stated that minimum energy was -6 (when in fact minimum energy is now -1).
  • fixed in version 0.6.31c: the recruitment interface fix from version 0.6.30d was only functioning for the first page of recruits.
  • fixed in version 0.6.31c: the skill progression fix from 0.6.31b, as implemented, was causing characters to not receive tags relating to skills already in their skill progression upon promotion.
  • fixed in version 0.6.31c: swapping positions via the SwapUnitPositions script action (used in skills like Twirl) wouldn't work properly if one of the units was in a position that would ordinarily be unmovable to the other.
  • fixed in version 0.6.31c: non-flying characters could Twirl or Trade with targets with an elevation difference of 2 or greater.
  • fixed in version 0.6.31c: swapping positions via the SwapUnitPositions script action (used in skills like Twirl) wouldn't work properly if one of the units was in a position that would ordinarily be unmovable to the other.
  • fixed in version 0.6.31c: in the blacksmith rescue mission, even though the map was flagged not to award the player a victory by killing all enemies, the prisoner (who belongs to his own army) was being awarded a victory under those conditions instead.
  • fixed in version 0.6.31c: when in Kalkerapur during the day of a scheduled league fight, the Find Blacksmith option would be visible whether it was supposed to be hidden or not.


[h3]Finally, a new script action for the creation suite:[/h3]

  • new script action: AddDayLog. Creates a log entry memorializing an activity, event, or battle occurring that day. Three parameters: log entry category, log entry body, and (optional) number of days passed (in case you want the log entry to reflect an occurrence on a day other than the current one).



That's it for now. Until next time!

--Craig

Version 0.6.30: new interrogation, new events, balance buffs and UI niceties!

Greetings, tactics fans! You may have noticed that I pushed this month's update two weeks early--the reason being, I wanted everything nice and updated for Steam Endless Replayability Fest (which, of course, Together in Battle has been selected to participate in!)

Despite this month's update coming after only 14 days of work, rest assured: those 14 days were packed. This update contains the game's second ending, a new interrogation scene, two new random events, a new handcrafted battle, new skills, new dialogue, UI improvements, and approximately one ton of balance tweaks.

[h3]Let's start with the marquee new content:[/h3]

  • new random event with associated battle: Smuggler's Den!
  • new random event: Catchphrase! (This one literally lets you write a new victory bark for one of your characters, which I think is pretty neat.)

  • new investigation scene: the second interrogation of Malatose!
  • wrote the event that occurs after the second Malatose interrogation as well as new palace narration.
  • the game's second ending has now been added!


[h3]We've got balance changes![/h3]

As mentioned above, I spent a lot of time improving balance for this update. One my goals here was to make the late game less focused on overwhelming offense by making defensive builds more viable. As an experiment, I tried boosting the default health gain from level-up increases from 2 points to 3; however, I found that once character levels got into the teens, the cumulative impact of this change was too strong, with too many enemies feeling like health sponges. Instead, I opted for a handful of more focused changes (with particular attention paid to melee classes):

  • promotions now increase character health across the board, but especially so for the melee combat classes (including the spriggat "claw" classes).
  • equippable shields now provide higher base health bonuses. (Note that this change is prospective only--shields you already possess from before this update will keep the same stats they had before.)
  • spriggat base health (i.e. at level 1) has been bumped upward 3 points, and spriggats now always gain Health Proficiency somewhere between levels 7 and 12 as part of their skill progression.


[h3]But those changes are far from the only balance changes...[/h3]

  • reduced the influence that speed has on salary levels by 40%, rendering shadowlings and assassins more cost-competitive.
  • boosted the base level of enemy arena teams in the latter three leagues (especially for Snow Leopard and Tiger leagues).
  • arena team leader enemy level scaling increased from an additional 20% per match to an additional 25% per match once the player reaches Monkey League.
  • once the player gets to Snow Leopard League, the shop now has a 75% chance of having 1-2 medicated bandages in stock per visit.
  • increased the per-day rate of enemy level scaling in the Save Grandpa and Treasure Thicket event battles a bit to help keep the challenge level up later in a playthrough.
  • boosted the effect of strength and psy on the maximum health of an engineer's barricades: the barricades now receive added max health equal to 133% of the creator's combined strength and psy. (Previously, it was only 100%.)
  • the power of explosive charges now scales upward with the strength and psy of the engineer who places them, ensuring that they remain potent into the late game.
  • increased the energy cost of Place Charges and Place Timed Charges to 8 and 10, respectively.
  • proc gen cavaliers now either gain a lance counterattack or heavy armor mastery, not both. (They are still guaranteed to learn heavy armor mastery if they promote to a Mantis Knight, and still guaranteed a lance counterattack if they promote to Mant Lancer.)
  • proc gen cavaliers now start with 20% lower base Energy.
  • training energy for cavaliers now costs 8 times as much as it does for every other class.
  • proc gen cavalier base salaries are now higher.
  • spriggats no longer have a 1-in-3 chance of spriggats learning Mind Blast as their miscellaneous psy skill, and instead have a 1-in-3 chance of learning Kinetic Gust.
  • whenever you register for a Psy Clash tournament, you now receive two random, complimentary Psy Clash cards before the tournament starts. You can use these in the tournament, and will keep them going forward regardless of whether you win the tournament.
  • the Psy Clash card Leap now lets you draw another card after using it.
  • changed the Pocket Sand skill's element from Poison to Light so that it can affect golems.
  • further increased Ansh's health for the witness protection battle when playing on Relaxed difficulty.
  • new in version 0.6.30b: the blacksmith rescue mission now explicitly warns you about the time limit at the start.
  • new in version 0.6.30b: using particularly loud skills during the blacksmith rescue mission (Explode, Powder Bolt, Pyro Blast, Light Blast, etc.) now attracts guard attention, as does letting the guards on the northwest platform get in an attack.
  • new in version 0.6.30b: units on the raised platform in the northwest in the blacksmith rescue mission will now raise the alarm if they get a chance to attack you.
  • new in version 0.6.30b: added a bowman to the raised platform in the northwest in the blacksmith rescue mission when playing on challenging difficulty or higher.
  • new in version 0.6.30c: reduced the damage scaling on the elemental blast skills from 1.3 to 1.2.
  • new in version 0.6.30c: reduced the damage scaling on Mega Charge from 1.5 to 1.4.
  • new in version 0.6.30c: reduced the cost of Place Stone Barricade from 8 to 6.
  • new in version 0.6.30d: granting a character only half their requested raise now inflicts morale -3 instead of morale -2.
  • new in version 0.6.30d: refusing a character's request for a raise now keeps the "asking for a raise event" in the hopper, letting the event potentially recur thereafter.


[h3]We have visual and UI improvements![/h3]

  • darkened the background strip behind camp activity narrations to make the text easier to read against lighter backgrounds.



  • item sacks now visually drop into place when fans throw items onto the battlefield in the arena!
  • when grabbing an item sack with equipment in it in battle, if the grabber can use the equipment and they have nothing equipped in that slot, the game will now prompt the player if they want to auto-equip the thing they grabbed.
  • constrained the pop-up text animation in combat a bit more to make it easier to follow (and easier to tell which character it belongs to in the event of an AOE effect).
  • character tooltips can now display a different fourth stat besides counterattacks when appearing in menus.
  • character tooltips now display morale instead of counterattacks during selection for a one-on-one in camp.



  • character tooltips now display strength instead of counterattacks during selection for laboring at the docks.
  • while selecting a character in training, character tooltips now display each character's base strength, psy, and accuracy in lieu of counterattacks.
  • while selecting characters for random events, character tooltips now show morale in lieu of counterattacks.


[h3]We have a wide variety of miscellaneous improvements![/h3]

  • when loading up your save file from the demo campaign in the full game, the game now automatically converts it into a main campaign save file so you can continue where you left off in the demo!
  • lit battlefield objects (such as braziers, candelabras, campfires, and lamps) now visibly poke holes within fog of war, letting you see enemies within their light radius! (Needless to say, the effect goes away if these objects are destroyed.)



  • new Kineticist skill: Levitate Other. Levitate another character for one turn.
  • new Engineer skill: Place Brazier. Creates a lit brazier on the battlefield that reveals fog of war in a 2-tile radius around it (and burns enemies who attack it in melee).
  • increased the positive morale effect of rainstorms on the characters who like them.
  • characters who clean together now gain friendship with one another.
  • characters are now generated with a response line for when they receive a nickname from another character.
  • characters' friendship now mutually increases when they respond to a nicknaming event.
  • wrote some alternate dialogue for the second crush event for cases where the characters are mutually romantically interested.
  • wrote a new campsite Talk variation for characters who have a crush on their talk partner.
  • wrote new like/hobby dialogue for characters with the depressive personality trait.
  • wrote new Talk narration for depressive and introverted characters.
  • wrote new generic campsite Talk narration.
  • wrote a new two-person sparring narration for Suave characters.
  • wrote a new info response line for religious characters.
  • flirtatious characters now only deliver flirty lines to characters with whom they are fundamentally romantically compatible (i.e. they only flirt with characters of a gender and species to which they are attracted, and no longer have any chance to flirt with characters they are related to).
  • painted a 19th human female hairstyle.



  • if you reach a day with a scheduled league match and you have no one left in your roster to fight, the game now detects it and queues up a scene where the arena manager chews you out.
  • if the avenger remains after the conclusion of the revenge quest event chain, their background and secret dialogue now change to acknowledge what happened.
  • added dialogue options to the initial meeting with Manbir Raksha where you can ask him for advice on how to conduct the interrogations.
  • updated scripting in Battle in the Dissident's Den to activate Hari and his group if the player strays too close to the west door in his office.
  • updated scripting in Battle at the Northern Stepwell in case the kidnappee is a golem or spirit and, simultaneously, a golem or spirit is the one to reach them.
  • added some safeguards to ensure that a fall into a chasm will always be an insta-K.O. (Previously, the game would apply damage equivalent to falling 10 levels of elevation under the assumption that this would always be enough damage to K.O. a character).
  • created new sound effect that plays when a character takes environmental damage from being in lava.
  • added portrait animations to all of the advice events.
  • the "asking for advice" events will no longer end with a character saying "never mind"--if that's about to happen, the game will now simply find a different event to run instead.
  • shuffled around the timing of certain random events.
  • wrote 44th and 45th loading screen tips.
  • new in version 0.6.30a: reduced the greed constant for arena AI, reducing the score the computer assigns to moves that involve destroying chests and fruit trees. AI units will now only sometimes attack chests and fruit trees when out of attack range of the player's units.
  • new in version 0.6.30a: AI improvement: the game now scores the destination-and-facing back cover factor for a move relative to how dangerous the destination space is, preventing situations where the game overvalues a move because it protects the unit's back in a spot where no enemy is near enough to reach it.
  • new in version 0.6.30a: the two enemies playing Psy Clash at the start of the dissident's den battle now actually drop Psy Clash cards when defeated.
  • new in version 0.6.30b: added a safeguard to prevent duplicates of the same character from ever appearing in a roster.
  • new in version 0.6.30c: updated the description of Place Stone Barricade to make its utility clear (it can stop flyers).


[h3]We have a ton of bug fixes![/h3]

  • fixed: the Sick status effect had started making skills cost 2,000% their normal energy cost instead of 200%.
  • fixed: after introduction of the new, more efficient parabolic arc code, objects thrown via skills like Toss and Throw were no longer getting parabolic arcs (and consequently, could end up lodged inside the ground and invisible to the player).
  • fixed: the game was not allowing Stone Golems to throw objects over other objects of the same category. (They would simply smash into them instead.)
  • fixed: it was possible for inorganic destructible objects to get the Poisoned status despite having 100% Poison resistance if the skill conferring the status was not itself of the Poison element.
  • AI fix: due to a quirk in how C# handles integer division, the AI was not applying any scoring penalty at all to attacks that would draw a non-lethal counterattack--even if the counterattack would leave the attacker with 1 health.
  • AI fix: due to a quirk in how C# handles integer division, the AI was not applying a penalty to attacks against targets with non-lethal on-death attacks (such as explosive charges), meaning that enemies could still sometimes decide to attack--and detonate--explosive charges while in range of the blast.
  • fixed: golems and spirits could acquire moods of types that made no sense for them (e.g. Starving or Sick).
  • fixed: if movement speed was set to instant, doors that AI-controlled characters moved through would not be opened and scripts triggered mid-move via the MoveOver trigger would not be triggered.
  • fixed: equipment-modifying items (such as repair kits and whetstones) were not usable in camp.
  • fixed: the game was freezing whenever a player-controlled (non-AI) character used Defensive Stance.
  • fixed: attempting to use an item in a character screen during deployment at the start of battle would fail without providing a pop-up message.
  • fixed: the rear horn in a spriggat's portrait would appear incorrectly scaled, positioned, and colored if the prior displayed character portrait possessed a hair accessory.
  • fixed: on certain occasions, item sacks on top of bridge tiles became non-interactable.
  • fixed: due to a formatting error in the new, modifiable item attributes table, poisoned and blazing weapons were bugged and could freeze the game upon being equipped.
  • fixed: with equipment that would replace a filled slot, the shop interface was still only showing a comparison of one stat maximum (rather than the intended 1-3), and could display a stat penalty as a reason for wanting the equipment.
  • fixed: on-death attacks were being applied twice, resulting in double damage (and double application of status effects) from explosive charges.
  • fixed: adding support for finding characters by load ID in a past update broke the Unlock Door skill, causing the game to think the character was attempting to unlock whichever proc gen character was first recruited because they happened to have a blank load ID.
  • fixed: the game was still showing the actions bar and portrait when AI-controlled characters hidden in fog of war moved.
  • fixed: the game could show incorrect actions bar information for AI-controlled characters who acted after an ally hidden by fog of war.
  • fixed: characters using Light attacks and Staggering weapons could attack spiked barricades and fires without taking damage.
  • fixed: if an AI-controlled character blinded a player-controlled character in a fog of war map, the game would suddenly treat the AI army as if it were player-controlled for purposes of updating the fog of war, thereby revealing most of the map.
  • fixed: fog of war tiles would not update when unequipping a torch or other Perception-affecting item.
  • fixed: the bathing event did not add a follow-up event where one character asks the other on a date to the hopper.
  • fixed: in the witness protection battle, even if the kineticist on the stage was already dead, he would still give his "close the fist" dialogue.
  • fixed: due to a scripting oversight, it was still possible to get the information from the documents in the dissident den raid even if they were destroyed.
  • fixed: the AddStatus script action was no longer announcing the applied status effect.
  • fixed: the Challenger and Brutalist achievements would only trigger if starting a playthrough on roguelike mode.
  • fixed: when multiple scripts were attached to the same skill or item, the second script would have its first action run out of order.
  • fixed: if OnVictory dialogue was spawned for the enemy army, using a WinBattle action or reply to change it to a player victory would not prevent the game from showing a "Defeated" pop-up regardless.
  • fixed: the game would still show the dialogue menu in the very first branch of dialogue even if that branch contained a HideDialogueBox action.
  • fixed: the "Black" cutscene background was not usable.
  • fixed: the CastleSandstone tileset's transitions between other tilesets were not working.
  • fixed: in games of Psy Clash, no sound was playing when minions switched lanes as part of their built-in abilities.
  • fixed: Religious characters' greeting responses were inappropriately referencing the god of their dialogue partner rather than themselves.
  • fixed: you could visit the trainer with 0 characters in your roster.
  • fixed: the game would throw an error if the player reached the Festival of the Ascendant Lights with no characters in their roster.
  • fixed: the game would get caught in a loop if the player received Manbir Raksha's summons after the festival with no characters in their roster.
  • fixed: the game was skipping over the "alone in camp" narration on evenings where no one remained in the roster.
  • fixed: the game could still display buttons in custom menus twice if they were preceded by hidden buttons.
  • fixed: the game wasn't counting the Festival of the Ascendant Lights toward the days that characters were out training, working, vacationing, or in the infirmary, resulting in them all returning a day late.
  • fixed: it was sometimes possible for characters involved in a Talk activity to have their own, independent activity later in the same evening.
  • fixed: the camp activity generator's infinite loop break code was incrementing the iteration number in the wrong scope, and so was not working correctly.
  • fixed: strings typed in by the player during dialogue could end up not displaying properly (or at all) if they used commas or quotation marks.
  • fixed: the text sprite for Drowning Res. was missing (most noticeable in shop interface explanations for why certain characters want aquatic armor).
  • fixed: with Vindictive and Vengeful equipment that would replace a filled slot, the shop interface was still failing to display the sprite for additional counterattacks granted by the equipment.
  • fixed a typo in the dialogue when deciding whether to report to Prince Ajit after the witness protection battle.
  • fixed a typo in the armorer interrogation.
  • fixed a typo in the extended Architect class description.
  • fixed a typo in one of the rest narrations for flirtatious characters.
  • fixed: the description for Place Timed Charges contained the wrong after-attack behavior.
  • fixed: the description of Feedback was ambiguous in relating the skill's self-healing effects.
  • fixed: the romantic compatibility check function hadn't been updated since the game gained the ability to generate NPCs as full characters (meaning that blood relatives were not being automatically excluded from romantic compatibility).
  • fixed in version 0.6.30a: the game could spawn a pop-up asking to auto-equip weapons or armor during the enemy's turn too, not just the player's.
  • fixed in version 0.6.30a: in some rare cases, a counterattack could be processed twice (causing double damage).
  • fixed in version 0.6.30a: the Transfer and Transfer 2 skills were causing screen shake.
  • fixed in version 0.6.30b: the game was displaying narration about Wailling inappropriately during the investigation due to a scripting mistake.
  • fixed in version 0.6.30b: if the Babble script action ran after dialogue text had finished animating (or after its animation was manually skipped by the player), then the babble sound effect would continue without end until the player continued to the next branch of the dialogue.
  • fixed in version 0.6.30b: the Halberd skill was using a "pierce" visual effect to accompany the attack hitting instead of a slashing one.
  • fixed in version 0.6.30b: it was possible for a heatwave event to trigger midway through the day, not just upon first arriving in the city.
  • fixed in version 0.6.30c: in some battles, the game could spawn two copies of the same character if a teammate was out wounded.
  • fixed in version 0.6.30c: characters learned alternate skills from earlier on in their base class skill progressions upon promoting, resulting in characters having too many skills (and reducing diversity among promoted members of the same class).
  • fixed in version 0.6.30c: the character screen always displayed 100 as the experience characters needed to level up even when characters had traits (such as Eidetic Memory) which reduce that number.
  • fixed in version 0.6.30c: the game was not letting Stone Golems throw item sacks over spaces containing other item sacks.
  • fixed in version 0.6.30c: item sacks would not collide with other units.
  • fixed in version 0.6.30d: the AI could throw a range error when processing swim-back-to-land moves under certain circumstances.
  • fixed in version 0.6.30d: sometimes in recruitment, the game would not revert to the current selected character's information upon mousing over to the left half of the screen if the selected character was from the right column.
  • fixed in version 0.6.30d: the Birthday Fan event did not remove itself from the hopper after running, but rather removed the Enthusiastic Fan event instead.
  • fixed in version 0.6.30d: due to a formatting mistake, a few two-character random events could proceed even if a second character wasn't available to appear in them, causing errors.
  • fixed in version 0.6.30d: the maharaja funeral event could trigger twice in the same day.
  • fixed in version 0.6.30d: a typo appeared in Ishita Svaamee's dialogue in her second visit event.


[h3]And of course, we have additions and improvements for the campaign creation suite:[/h3]

  • new script action: AddCharDialogue. Adds a line of non-combat dialogue (i.e. one used during camp activities) to the character's repertoire. Parameters: Character Name,Dialogue Type,Dialogue String,Facial Expression (optional),Response Type (optional). Supports an arbitrary number of miscellaneous properties after Response Type as well--anything used in CharAttributes.xml will work (in the format mor1=1, hp2=-10, etc.)
  • new script action: RemoveCharDialogue. Behaves much like RemoveBark, but is intended to remove non-combat lines of dialogue (i.e. those which are used during camp activities) instead of combat barks, and the "All" parameter will only affect those camp lines. Has one additional, optional parameter which, if set to true, will make the character "forget" having spoken dialogue of this sort before in camp.
  • new special character supported: -GOD2-. Gets changed to the name of the deity worshipped by the secondary character in the conversation (if any), or to "no one" if they are atheist.
  • new special character supported: -BIO2:X-. Gets changed to the appropriate bio detail of the secondary character in the conversation (if any), with 'X' being the bio detail type (region, hometown, hometownSize, raised by, siblings, worships, and religion).
  • new sound effects: Crowd Booing Muffled and Lava Burn.
  • new, optional third parameter for the OnTalk dialogue trigger: Enforce Positions. If set to true, this specifically requires the triggering character to be as described in the first trigger parameter (rather than letting the second talk partner take on the role of triggerer).
  • new optional parameter added to SpawnUnit and the Generate-Unit-type script actions: Drop Unit. If set to true, causes the unit to drop onto their space from somewhere above the battlefield when they spawn, a la an item drop.
  • added minimum parameter checks to about a half-dozen portrait-related script actions that were missing them.
  • added minimum parameter checks to the game's unit-spawning, unit-generating, door manipulation, change dialogue character, and roster manipulation script actions.
  • camp activity narrations can now be tagged with a reqsRomanticCompat attribute.
  • fixed: the "Neutralized" status effect was missing from the localization file and causing the game to throw a null error when applied.
  • added documentation for ShowDeckButton and HideDeckButton to the in-game reference.
  • added missing in-game documentation for the Move Over unit trigger.
  • added missing documentation for the pitch range parameter in the PlaySound script action.


Phew! That was a lot of stuff. Not gonna lie, I am pretty exhausted from getting all that done in in two weeks of development time--so rather than continuing to yap at you here, I am going to go to sleep. I hope you enjoy all the changes! I'll see you in the next one. (Or, you know, on Discord.)


Tactically yours,

Craig

Early Access-versary! Version 0.6.20: new battles, events, and arena conditions!

Greetings, tactics fans! Today is the one-year anniversary of Together in Battle being out in Early Access. What a difference a year makes!



[h2]What Changed Over This Year[/h2]

I went through and counted: over the past 11 months, I pushed 19 updates to Together in Battle (21, if you want to count the hotfixes). These updates included:

  • a flexible time points system for daytime actions;
  • loads of balance improvements (including much more forgiving rules surrounding broken weapons, payroll shortfalls, and camp cleaning);
  • two new arena leagues (Snow Leopard and Tiger Leagues), each with their own "biomes" and hand-made qualifier battles;
  • the arena championship fight (with its own accompanying events);
  • a variety of new arena battle conditions (such as 4-on-4 and Defend the Idol);
  • twenty new random events (most with multiple outcomes and many with associated hand-designed battles);
  • eight more "palace intrigue" main plot events, including five witness interrogations and three hand-designed plot battles;
  • the first of the game's endings;
  • numerous user interface improvements (such as pre-visualizing knockback effects and previewing the benefits of each piece of equipment for characters within the shop);
  • countless improvements to the AI;
  • two new difficulty levels, including a custom difficulty mode;
  • full gamepad and SteamDeck support;
  • a card-collecting mini-game (Psy Clash!) with a dedicated deck management screen;
  • a jobs board with four types of jobs (manual labor, proc gen caravan guarding missions, proc gen cavern exploration missions, and proc gen card tournaments);
  • an infirmary where you can send wounded characters to recover;
  • a blacksmith where you can repair items;
  • character renaming;
  • weapon renaming;
  • the ability to give characters bonuses or send them on vacation for a morale boost;
  • a variety of new skills (including Create Fire, Create Ice, Quick Twirl, Kinetic Surge, Mega Charge, Shield Bash, Fire Breath 3, Frost Breath 3, Dark Breath 3, and Light Breath 3);
  • a ton of new items, including weapon-modifying consumables, permanent stat boosters, and weapon repair kits;
  • new equipment modifiers (such as Stylish, Beautiful, Gorgeous, Visored, and Calming);
  • new environmental conditions, such as heat waves and rain storms that spawn puddles around the battlefield;
  • new weather effects (such as fireflies, falling leaves, and flower petals);
  • new skill visual effects (such as overheat and spike trap);
  • new battlefield objects like ice spikes, exploding trees, puddles, trapped chests, rugs, jugs, and planters;
  • additional character portrait variety;
  • lots of additional character dialogue;
  • additional narrated character camp activities;
  • the ability to make characters' relatives appear in-game as full-fledged characters themselves;
  • new character sprites;
  • new battlefield backgrounds;
  • new cut scene backgrounds;
  • gorgeous new music (such as "Drawing Blades" and "Contest of Blood");
  • tons of new features, functionality, and assets for the campaign creation suite;
  • the ability to download and play other players' custom campaigns right in-game;
  • approximately one zillion bug fixes; and
  • more stuff I probably missed.

And that's only 11 months worth of changes--I haven't even talked about the changes I made for this month's update yet! So let's get to that now...

[h2]Update #20: Version 0.6.20![/h2]

This month's update includes new random events, new battles, new special conditions that can appear during matches in the arena, a long-requested new feature in the mid-battle save system, the ability to auto-generate your starting team, and more! Let's get right into it.

[h3]More battle variety![/h3]

The primary focus of this month's update has been adding yet more to the game's battle variety, with four new hand-designed, scripted battles tied to random events and two new "fan request" conditions for the game's arena battles:

  • new event: a second nighttime thief attack battle (much larger in scale than the first)!
  • two new "inter-team sparring" events, each with an associated battle sporting a special (and unusual) victory condition!
  • a new "revenge quest" event chain, plus a new associated battle!



  • new arena fight condition: Skill Request. A fan requests that you use a specific skill (known by at least one of your deployed characters) during the battle; if you use that skill a certain number of times and go on to win the fight, you'll gain an extra reward! (This condition can appear beginning in Monkey League.)
  • new arena fight condition: Skill Avoid Request. A fan requests that you avoid using a specific skill (known by at least one of your deployed characters) during the battle; if you do not use that skill at all and still go on to win the fight, you'll gain an extra reward! (This condition can appear beginning in Monkey League.)

By my count, this brings the game to 22 hand-designed fights accompanying the bevy of proc gen battles--and with more still to come!

[h3]We have a variety of other improvements as well![/h3]

  • a much-requested feature is now in-game: when playing with manual saves, you can now create a mid-battle save right after deployment but before taking your first turn!
  • you can now have the recruiter auto-generate a balanced starting team for you on Day 0! This lets players jump into the game quickly without having to make sense of the recruitment screen (especially helpful for new players who haven't experienced combat yet).



  • improved recruitment UI behavior when mousing over other recruits with a different recruit selected: you can mouse over other recruits normally, but the selected recruit will pop back up upon mousing off of them for ease of comparison.
  • AI improvement: the AI now does a much better job of appropriately balancing the value of reaching a preferred area versus the value of moving toward a character it would like to attack (but cannot yet reach).
  • AI improvement: the AI now imposes an internal scoring penalty for any move that would take a character who is already inside their preferred area outside of said area.
  • AI improvement: reduced the minimum calculated value of usage before enemies will use items, avoiding situations where enemies won't use bandages even though it's optimal to do so.
  • AI improvement: AI-controlled units now value Defending status proportionally more as they become more injured, and more based on their ability to counterattack.
  • wrote new tutorial text about fruit trees, explaining why AI-controlled enemies sometimes attack them. (Because they drop health-restoring fruit when destroyed.)
  • reduced the odds of a late event occurring on any given night.
  • further boosted the likelihood of characters who are already friends or romantically interested in one another choosing to interact with each other over other characters.
  • added two new "life background" dialogue variants.
  • character dialogue can now be made available (or excluded) for a character based on their family's socioeconomic class.
  • new mood added to the game: Determined.
  • particular proc gen character lines can now be assigned greater likelihood of selection.
  • the game now accounts for characters temporarily off working, training, in the infirmary, or on vacation when spawning the number of tents in the thief attack battles.
  • shifted the timing of the Brother Leader Revenge event chain; it can now no longer occur until Gharial League at the earliest.
  • updated the "tent looted" conversation in the thief attack battles so the game shows you the info bar with the money being lost.
  • updated the Strikebreaking event so the game shows you the info bar with the money being added if you complete the job.
  • completing Jiti Sone's job now has a downside: spriggats will refuse to appear in recruitment, and any spriggats actively on the team when the job is done will suffer a huge morale hit.
  • added portrait animations to the "ignore" options for the Ishita Svaamee events.
  • added a portrait animation to the first traveling merchant event.
  • the game can now process custom strings used as part of a scene's display name.
  • laid the groundwork for the engine to support looking at specific aspects of the skills that characters are using as parameters for dialogue triggers.
  • the Together in Battle Steam demo has been updated! (The demo was last updated in August 2023, so this was long overdue.)
  • added in version 0.6.20a: the game now displays gameplay tips on the loading screen when transitioning scenes.
  • added in version 0.6.20a: when playing with the gamepad, switching to the actions bar with 'X' now defaults to selecting the first available skill.
  • added in version 0.6.20c: increased the number of loading screen tips to 43.
  • added in version 0.6.20c: the game now tracks the last 20 loading screen tips displayed to avoid having repeats too often.

[h3]A whole bunch of bug fixes![/h3]
  • I pushed a small "hotfix" update at the start of the month, so part of my bug-fixing progress for April is chronicled there. As for the rest...
  • fixed: bridges below the level of the terrain could cause the game to use the bridge's elevation instead of the ground's for purposes of calculating movement and elevation bonuses.
  • fixed: bridges below the level of the terrain could cause the game to use the bridge's elevation instead of the ground's for purposes of calculating which spaces are moveable for a non-flying unit.
  • fixed: under some circumstances where the AI had a character move and use a non-turn-ending skill, the AI could queue up further actions for the character where they moved and used a skill, but then fail to execute the "actually moving" part, resulting in the character attacking outside their normal range.
  • fixed: if an army in a battle was completely neutral by way of being allied to every other army, the game would treat them as having vanquished all enemies and immediately end the battle with them as the victor.
  • AI fix: the retreat AI algorithm was not accounting for area preference or patrol tags, causing characters with no usable skills to retreat without regard for the areas they were supposed to be moving towards.
  • fixed: if any of an AI-controlled unit's skills could affect a target worth affecting, all of that unit's skills would be marked as worth using as part of short-range moves toward a preferred area, leading to the unit potentially inappropriately attacking scenery.
  • fixed: changes to the code made it so generalized character death barks could again get queued in addition to specific OnCharDeath dialogue for the same character upon falling in battle.
  • fixed: proc gen battle map names were not being saved in the "battle start" save files used when restarting a battle, resulting in the map's internal file name displaying instead.
  • fixed: the "force species" attribute could be used to create proc gen characters of a species not compatible with the chosen class, resulting in issues like missing portraits and sprites.
  • fixed: door-affecting script actions such as Lock could trigger OnDoor dialogue when used in OnLoaded dialogue.
  • fixed: mousing over a unit and then immediately mousing over the deployment window thereafter without ever mousing off the unit could cause the unit's mouseover tooltip to become "stuck" onscreen for a time.
  • fixed: it was possible for cavaliers to charge across a path with an elevation difference of 2 or greater, just so long as they effectively charged off of the cliff rather than up it.
  • fixed: in some circumstances, the game could save (and reload) past instances of generic templated units in a way that would reintroduce tags placed onto those unit types in past battles.
  • fixed: a misformatted script action parameter in the event where a character asks the player for money to gamble with resulted in the event proceeding even if the player lacked the minimum amount of money to gamble with.
  • fixed in version 0.6.20a: on certain buttons, selecting them with the gamepad could double-invoke their methods, leading to errors (up to and including the game freezing).
  • fixed in version 0.6.20a: when playing with gamepad, at the very start of battle, the selector was spawning in the very top-left of the map instead of over someone in the player's army.
  • fixed in version 0.6.20a: actions bar button tooltips were displaying strangely in gamepad mode.
  • fixed in version 0.6.20a: the virtual cursor was not visible when choosing between yes or no in any in-battle warning pop-up windows.
  • fixed in version 0.6.20b: in some circumstances, the "avoid skill" arena battle condition would turn out blank.
  • fixed in version 0.6.20b: if you got the bad ending while having a character possessing the "serious" personality trait among the first 7 units of your team, the scene on the docks would get stuck in an endless loop of character reactions.
  • fixed in version 0.6.20c: a couple of typos were present in the loading screen tips.
  • fixed in version 0.6.20c: if you managed to kill every enemy on the blacksmith rescue map, the battle would end prematurely and not give you the blacksmith option going forward.
  • fixed in version 0.6.20c: the blacksmith would show duplicates of weapons in reserve supplies when showing potential items to rename or repair.
  • fixed in version 0.6.20c: when shoving a unit onto a space with an ornamental bridge tile below the terrain, the game would use the bridge for the destination elevation instead of the terrain, sometimes inappropriately causing the target to take damage and/or become stunned.
  • fixed in version 0.6.20c: during the initial meeting with Manbir Raksha, his dialogue was still incorrectly referring to the attack "last night."
  • fixed in version 0.6.20c: a visual issue with the spot where the necks meet the ears in most of the male "NPC" portrait clothing sets.

[h3]Improvements to the campaign creation suite![/h3]

This month, we have no fewer than 7 new script actions(!), a new dialogue trigger type, a new tag type, and fixes to bugs in the map editor that had been bugging me for years now--and more! The details:

  • the final two army palettes that were supported in the original Telepath Tactics (Orange and Pink) have now been added to the engine!
  • new script action: AddNickname. Gives a character a new nickname to be used by a second character (or by every other character) in dialogue.
  • new script action: HideDialogueBox. Allows you to manually hide the dialogue box during dialogue.
  • new script action: ShowDialogueBox. Causes a hidden dialogue box to reappear.
  • new script action: HideActionsMenu. Allows you to manually hide the actions bar during battle.
  • new script action: ShowActionsMenu. Causes a hidden actions bar to reappear.
  • new script action: StripItemsFromUnit. Removes all items from the named character's inventory and places them directly into a roster's reserve supplies.
  • new script action: AddTriggerCharPortrait. Adds the portrait of whatever character triggered the dialogue, without regard to whether their name is used as speaker for the current branch. Has the same parameters as AddSpeakerPortrait.
  • new dialogue trigger type: OnSkillUsed. Triggers dialogue when a given skill is used. To satisfy the trigger, the skill usage must be effective in some way (i.e. not just attacking an ally or healing an enemy). Parameters: skill name, user army, and user name.
  • new tag: RemoveAll. This tells the game to remove all existing tags from the unit.
  • new condition: Drop Items On Death. Lets you set a particular army to not drop items when a character in that army dies. Parameters: army number, drops items (boolean value--true by default).
  • three new special string stats are supported for SetStringByStat: First Name, Last Name, and Nickname. (These are read-only, so don't try using them as a parameter with SetStat.)
  • added last name as a supported attribute value for the SetStringByNPC script action.
  • the LevelUpArmy script action now works in cut scenes.
  • new option for the IfInArea script actions: you can now use an army in the Character Name parameter (e.g. "Army 0", Army 1", and so on) and the game will check for any character belonging to that specific army.
  • TargetPreference tags now support the use of custom string variables for their target name parameter.
  • changed the runScript attribute in CampActivities.xml to runScripts to make it consistent with the rest of the game.
  • updated in-game documentation for the IfBioDetail-type script actions and the -BIO:X- special character with the default bio detail types.
  • fixed: the Delete Row and Delete Column algorithms in the Map Editor were faulty, with their use potentially causing the game to lose track of where units should be until the map was reloaded.
  • fixed: in the Map Editor, adding a new column to the very rightmost edge of a map would secretly cause the game to add a second column, invisibly offsetting mouseover coordinates and making the selector appear in the wrong spot when mousing over units.
  • fixed: in-game documentation for the AddNPC script action was missing the tenth parameter, Blood Relative.
  • fixed: in-game documentation for the SetStringByNPC script action was missing blood relative among the supported attribute values listed.
  • fixed: getting a unit's load ID via the SetStringByStat script action would return an empty string for proc gen characters. (It now returns the unit's name, which can stand in for its load ID in virtually every use case.)
  • fixed: bridges below the level of the terrain would cause the map editor to set the cursor elevation (and the elevation of further objects placed on the space) to the bridge's elevation instead of the ground's.

And that wraps up everything new and improved in this month's update. For next month's update, I'm going to be focused on main plot stuff: at a minimum, one more interrogation scene and one more main plot battle. More to come!

[h2]How can you help?[/h2]

As I continue to move the game toward completion, here's a little reminder that if you're enjoying Together in Battle, leaving a nice review would do a lot to help the game out! More reviews means Steam's algorithm shows Together in Battle to more people; more people seeing Together in Battle means more sales; and more sales mean more of a budget for me to commission new art.

Also: if you happen to follow any cool streamers who enjoy SRPGs and tactics games, feel free to suggest Together in Battle to them! Anything that helps spread the word about this game, really, would be most helpful.

All right, enough of that. I'll be back with our next update in May! 😉


Yours in tactics,

Craig