1. Together in Battle
  2. News

Together in Battle News

Version 0.6.10: Prison break mission, blacksmith, weapon mods, and more!

Greetings, tactics fans! After a minor surprise update one week into the month, I've spent the last three weeks working hard to pack in as many goodies as I could for this, the monthly update proper. (I won't recap the additions from the mini-update, but the gist is that I added in new events, skills, and items; you can find details on that here.)

As for this update I've just pushed, read on!

[h3]Let's start with the biggest changes and additions this month:[/h3]

  • new investigation scene: interrogation of the palace armorer!
  • new side investigation: find the blacksmith!
  • new prison rescue mission!



  • new daytime option: Blacksmith! If you can find him, the blacksmith will become available as a way to reliably repair your weapons. The blacksmith lets you rename your weapons, too! (He may even comment on your choice of names, depending on what you pick. 😉)
  • new battlefield object: puddles! Puddles visibly and audibly splash when characters walk through them, and drop dodge and cold resistance while slightly raising heat resistance for anyone standing in them. During battles with a rain weather effect, the game will now progressively spawn puddles randomly around the battlefield. (The harder it is raining, the more frequently puddles will appear.)



  • the game now has a bunch of new weapon-modifying items! These are consumables which permanently improve a weapon in one fashion or another. These include counterweights (permanent +5 accuracy), reinforcing spines (+5 to the weapon's maximum uses), poison sheaths (+1 poison damage and a chance to poison), and oil-filled sheaths (+1 heat damage and a chance to set an enemy on fire).
  • whetstones are now a weapon-modifying consumable: instead of providing a character +1 Strength for the rest of the battle, they permanently add +1 Strength to the user's current equipped weapon. To compensate for this buff, they can now only be used once and both rarer and more expensive than before.
  • the game now has built-in bug reporting! Simply press the Report an Issue button in the main menu during a battle or cut scene to open up a window where you can submit a report; the game will automatically generate a log and send it to me along with other relevant info so I can start tracking down the bug as soon as possible. (Special thanks to Ross Przybylski for his help troubleshooting the PHP back-end!)


[h3]We've got UI improvements and polish:[/h3]


  • added icons to the main daytime menu options in Kalkerapur.
  • added icons to the main evening menu options in Camp, and to the main dialogue options during a one-on-one.
  • reduced the height on the pop-up text animation to aid readability.
  • right-clicking rugs and other objects set to be treated as floor no longer opens the character screen.
  • you can now check your calendar and army overview during league match and qualifier scheduling scenes.
  • cleaned up the shop interface a bit: the text that notes when you've bought or sold something can no longer overlap with the page-swapping buttons, and is now far less likely to end up truncated.
  • when using the virtual keyboard, the game now displays a flashing caret in the associated input text box as if the box were actually selected.


[h3]Miscellaneous other additions and improvements:[/h3]
  • tall grasses now make rustling noises when characters walk onto or through them.
  • improved the weather visual effects for rain.
  • added a chance of Pocket Sand appearing for sale in the shop.
  • added a new skin tone that can appear in character portraits: Ruddy Brown.
  • added three new eye colors that can appear in character portraits: Aqua, Red, and Violet.
  • characters can now gossip about other teams in the arena when they talk in the evening.
  • reduced the likelihood that characters will talk about the weather when they talk at camp.
  • personality-specific rest narrations are now much more likely to be chosen when a character chooses to rest in the evening.
  • the jobs board now supports cooldown periods of more than just than 1 day before a taken job has a chance of appearing again. There is now a 2-day cooldown on the Caravan Guard job and a 5-day cooldown on Cavern Exploration.



  • added a brand-new visual effect for Overheat!
  • created a new sound effect for Overheat.
  • increased the power scaling on Overheat from 1.25 to 1.5 and gave it +50 default accuracy.
  • increased the power scaling on Drain from 1.5 to 1.75.
  • buffed the Specter promoted class a bit: they now get +5 power to Drain in addition to the range and cost improvements.
  • buffed the Sentinel class: they now gain a 75% chance to block with Defensive Stance instead of the normal 50% chance.
  • the Defending status effect can now stack in its power and is hard-coded to disappear when a unit gains a new turn or becomes Enthralled.
  • reworked Engine Boost: it is now usable only once per turn, increasing maximum movement by 67% (i.e. by 2 for most golems) at the cost of 5 energy.
  • toned down the power scaling on Self-Repair: it now restores health equal to 1.5x Strength instead of 2.5x Strength.
  • adjusted Battle in the Northern Stepwell so the rescuee's remaining health is never enough to survive more than 5 rounds of drowning.
  • added portrait animations to the Shadowling Grandpa event.
  • added auto-looting to the Save Grandpa battle.
  • the combat camera now pans over to attacks even if combat zoom is turned off, reducing graphical artifacts from visual effect layering.
  • new portraits for the blacksmith (and a second character whose identity I am not going to reveal here 😉.)
  • added a variant mood called "Heat Sick" with its own distinct narration to make it clear when a character is feeling sick due to working during a heat wave.
  • the game no longer counts it as friendly fire if a character attacks an ally while Enthralled.
  • dialogue branches now support an attribute called "show single replies." This forces the game to show reply buttons on this dialogue branch even if only a single reply remains--useful for moments when the player says or does one particular thing that someone will react to.
  • status effect tooltips now display the actual power of the status effect conferred, not just the default value for that status effect.
  • repositioned status effect tooltips within the character screen so the mouse cursor doesn't obscure any of the text.
  • wrote a little tutorial blurb about rain and puddles in Battle at the Dry Mounds.
  • updated Make Weapon camp activity narrations to make use of the new Blacksmith background.
  • wrote a second "you have no characters" camp narration variant.
  • reworded the bit in the introductory scene where the game asks if you want to enable manual saving so that people who think "roguelite" means "a game where you get a choice of 3 upgrades sometimes and also there's vertical progression" don't get confused.
  • refactored aspects of the game's movement code to make adding to (and changing things in) character movement much easier.
  • in version 0.6.10a: the game now warns you if you're about to embark on the Find the Blacksmith quest with a roster of less than 8 characters, or a roster with an average level below 17.
  • in version 0.6.10a: swapped the eye palette numbers for violet and red eyes.
  • in version 0.6.10a: characters will no longer be generated with creepy red eyes in recruitment; that option is now exclusive to the character creator in the campaign editor.



[h3]Bug fixes aplenty:[/h3]
  • fixed: loading a saved game mid-scene, stairs could end up counting themselves for purposes of determining base elevation, thereby raising themselves up higher than the terrain calls for (and potentially making themselves untraversable).
  • fixed: sometimes, the tooltip for an item's Give button wouldn't show up upon mousing over it.
  • fixed: under certain circumstances, dummy attack tiles shown upon mousing over an attack button could inappropriately vanish (or fail to appear at all).
  • fixed: if you beat Battle in the Northern Stepwell without ever having someone speak to the kidnapped character, they would never return to your roster.
  • fixed: you could trigger the Northern Stepwell event sequence more than once per playthrough.
  • fixed: hiring out a character as a laborer during a heat wave could throw a range error and cause the game to lock up.
  • fixed: a null error could occur in camp under very specific circumstances.
  • fixed: smashing an enemy up against the edge of the map could only ever deal a single tile's worth of collision damage even if using a skill with multiple tiles worth of extra knockback.
  • fixed: battle AI was not set to recalculate moves upon removing Inactive tags from a CPU-controlled units mid-turn.
  • fixed: battle AI could disregard a valid move onto an AreaPreference space if no valid skill targets existed within range of the destination.
  • fixed: due to an oversight when implementing the new move-tracking code, the computer could fail to clear its internal list of viable moves when an enemy's attack slew a character and triggered a death monologue, which in rare cases could result in the AI proceeding with the second-ranked move without recalculating based on the updated state of the battlefield.
  • fixed: if a new turn belongs to an army with no units remaining, the game would skip to the next turn without triggering any OnTurn or BeforeTurn dialogue set to trigger on that turn.
  • fixed: you could click an enemy to show their moveable spaces under fog of war.
  • fixed: if a character was moved via a Teleport-type skill (such as Shadowport or Juxtapose), the game would not check to see if it should drop them into water, lava, or a chasm upon reaching their new position.
  • fixed: the Blizzard weather effect was no longer displaying properly.
  • fixed: you could undo after using a Move skill that also moves a second character (like Trade or Juxtapose).
  • fixed: the tag granting the Kinetokurios the ability to inflict Weakened status via Kinetic Constriction was misformatted.
  • fixed mouseover zones for status effect icons in the character screen.
  • fixed: gamepad focus on the virtual keyboard would get overridden by the underlying dialogue tree when input text was enabled in the very first branch of dialogue.
  • fixed: the dialogue interface's virtual keyboard gamepad navigation was not working as intended when used in battles.
  • fixed: height was set incorrectly for the promoted cavalier lance and charge animations.
  • fixed a typo in the default CharAttributes file that would cause the character creator to throw a range error when trying to randomly generate character dialogue.
  • fixed: if a character had a camp activity and the character right after them in order fantasized about them, the first character's portrait would stick around inappropriately.
  • fixed: the logic to prevent the same job (other than laboring) from showing up multiple days in a row on the jobs board was faulty.
  • fixed: selecting Investigate when no more investigation scenes exist would kick the player straight to camp instead of returning them to the main menu in Kalkerapur.
  • fixed: Create skills would not function on spaces containing rugs or other objects with a true "treatAsFloor" attribute.
  • fixed: the "force name" feature for characters in proc gen map army groups was not being applied to units drawn from PremadeUnits.xml, only to units procedurally generated from scratch, resulting in the Dacoit Leader not being named as such in Caravan Defense maps.
  • fixed: camp music was not returning to normal after receiving Prince Ajit's letter.
  • fixed: the order of the Combat Zoom setting options was switched in the localization file, causing 'Attacks Only' to be interpreted as 'Off' and vice versa.
  • fixed: a character portrait added to the left edge of the screen and that same portrait walking to the left edge of the screen would end up in positions about 5 pixels off from each other, occasionally leading to awkward transitions in camp.
  • fixed: the game made the "weapon breaking" noise when non-weapon equipment (such as Pocket Sand, Snare Kit or a Satchel Charge) went to zero uses.
  • fixed: the in-battle pop up text showing experience gain from using a battle primer would scale the displayed experience against the resulting level rather than the level at the time of use, frequently resulting in it announcing less experience than was actually gained.
  • fixed: certain text sprites (such as Regenerating, Strength, or Talkable) had faint lines appear near the edges of the image due to trilinear filtering bleed from adjacent icons in the spritesheet.
  • fixed: certain messages in the shop interface were missing localization support.
  • fixed: the "no one is in camp" narration text was missing localization support.
  • fixed: one of the character responses to being renamed slightly exceeded the available space for text.
  • fixed: placing traps, bridges, and barricades had begun spawning spark particles after the last update.
  • fixed: the deployment window's starting text was being overwritten by default localization values.
  • fixed wording on a few personality-specific rest narrations.
  • fixed the wording on a bit of Prince Ajit's interrogation dialogue.
  • fixed in version 0.6.10a: losing the Blacksmith Rescue mission while playing on roguelike mode would be treated like an ironman loss and cause deletion of the save file.


[h3]New goodies for campaign creators:[/h3]


  • the character creator now allows you to manually set the clothing used by character portraits.
  • the character creator now allows you to manually set the scale for character portraits when they appear in dialogue (from 50% up to 125% of normal size).
  • improved click detection for portrait accessory and clothing buttons in their respective character creator submenus.
  • new AI tag type supported: Patrol. This works like AreaPreference, but acts upon a looping sequence of areas for the character to move toward. Once the character reaches the first area in the sequence, their preference shifts to the next one, and so on. Paired with a Passive tag, characters will simply walk through the sequence while ignoring enemies outside their move-and-attack range.
  • new script action: ShowBlacksmith. This calls up the shop interface in "blacksmith mode", displaying weapons possessed by the group which are below their maximum uses left. Clicking a weapon in this mode causes it to be repaired in exchange for the repair cost (equal to the proportion of max uses to be repaired times the weapon's original sale price).
  • new dialogue trigger supported: OnUnitAttacked. This works just like OnCharAttacked, except that the unit attacked does not have to be a character to trigger the dialogue. (Someone attacking a specified object, for instance, can trigger OnUnitAttacked dialogue.)
  • new script action: AddTagToGroup. This works just like AddTagToArmy, but instead of specifying an army number, you specify an AggroGroup number. Every unit in the specified AggroGroup will receive the new tag you provide.
  • new script action: RemoveTagFromGroup. This works just like RemoveTagFromArmy, but instead of specifying an army number, you specify an AggroGroup number. Every unit in the specified AggroGroup will lose whatever tag you provide.
  • added support for enabling "show single replies" in dialogue branches within the game's dialogue editor. The map and cut scene editors now load and save these attributes correctly.
  • new optional parameter in the Deployment battle condition: maximum characters. This allows additional deployment spots to be placed on the battlefield without increasing the maximum number of deployable characters for the battle.
  • new trigger type added to the game: Move Over. These behave like Pressure triggers, except that they don't interrupt unit movement or clear the undo stack upon triggering. As such, they are intended for small, non-mechanics-related effects (particle effects, audio cues, etc.) when walking over certain spaces.
  • new special character added to the game: -ATKMOVETYPE-. Lets you check whether the current skill's move type is Normal, Parabolic, Teleport, ToTarget, WithTarget, or Special.
  • new 3D particle effect supported: WaterSmall. A small splash for moving through shallow water (as opposed to the preexisting big splash used when falling into deep water).
  • new sound effect added to the game: Water Splash Light. A much lighter splash sound than the existing Water Splash.
  • new sound effect: Hammering.
  • new sound effect added: Plant Rustle.
  • new sound effect: Overheat.
  • new optional parameter added to the PlaySound script action: pitch range. Accepts a range of positive decimal values, where 1.0 is the sound's normal pitch, values below 1.0 deepen the pitch, and values above 1.0 raise the pitch. If the pitch range parameter is used, the game will randomly choose a pitch value from within the supplied range when playing the sound effect.



  • new cutscene background added to the game: Blacksmith.
  • new skill button graphic: Clothing.
  • added support for Max Uses, Name, and Tag as Attributes to Alter in the item editor within the campaign creation suite.
  • updated the item editor's built-in guides to include Max Uses and Tag (with added explanation on how to use the latter).
  • it is now possible to alter a piece of equipment's name via an equipment-altering consumable using Name as the attribute to alter.
  • received new clothing for female human portraits: RoyalDese.
  • received new clothing for male human portraits: Blacksmith.
  • updated the item editor's built-in guides to include Name.
  • new destructible object set added to the game: Sandstone castle walls.
  • renamed the StairsLimestone destructible object set to StairsSandstone for the sake of consistency.
  • fixed: in some circumstances, displaying dialogue in the cut scene editor could cause a null error due to the game attempting to call the gamepad menu navigator component.
  • fixed: in some circumstances, adding a row to a map could produce a null error.
  • fixed: the map editor was spawning Blank game objects whenever new units were placed on the map.
  • fixed: with the introduction of differing portrait scales for proc gen characters, the character creator could start to progressively shrink the preview portrait when cycling through different features.
  • fixed: deprecated palette code could sometimes cause null errors to pop up when adding certain accessories to portraits for certain characters in the character creator.
  • fixed: the Jwalaa item graphic was misnamed in AssetNames, and was therefore not showing up in the item graphics browser.
  • fixed: the character creator could list duplicates in the class selection window.
  • added in version 0.6.10a: new custom menu button gray-out/warning type: avgLvl. Calculates the average level of the characters in the current roster and grays out the button or pops up a warning if their average level falls outside the specified range.


And that about covers it for this update! As always, thanks for your support--making a game this complex as a solo developer is long, lonely, and difficult work, let alone doing it in my free time with no outside financing. Your support is what makes it possible for me to keep doing this.

If you're enjoying Together in Battle, I encourage you to leave a review; it matters a lot! What's more, I want to hear your feedback; come join us on the Sinister Design Discord and let me know what you're liking and what new things you'd like to see changed or added.

Until next month!


Tactically yours,

Craig

Version 0.6.01: Surprise update with new events, new items, better shop UI!

Greetings, tactics fans: I have another, surprise update for you! To be honest, I was planning to save this stuff for the next monthly update--but given that I just found and fixed a pretty bad bug, I decided that you're simply getting all of this right now! Two updates in one month; not too shabby, eh? 😉

Here are the changes, starting with new events, items, and skills:
  • new event: Clown For A Day.
  • new event: A Nice Bath.
  • new item: Anatomical Treatise. Permanently boosts the user's Accuracy stat by 5.
  • new item: Spring Shoes. Grants Jump. Limited to 3 uses.
  • new skill: Jump. Same as Leap, but has an after-attack behavior of Can Move instead of being unlimited. Conferred by Spring Shoes.
  • new item: Pocket Sand. Grants Pocket Sand. Limited to 1 use.
  • new skill: Pocket Sand. Has a 75% chance to cause Blinded for 2 rounds. Doesn't end the turn.


Other changes:
  • further improved the shop explanation for why characters want equipment: when the reason a character wants something is stat-related, the game now lists as many as 3 stats the equipment will improve (not just 1), making it easier to compare the benefits from upgraded armor at a glance.
  • camp activities can now affect the health of everyone present in camp.
  • revised the doctor's Treat Wounds activity so that it serves a purpose when not playing on Challenging or Challenging+ difficulty. In addition to its existing effect of curing 1 wound level for wounded characters, it now also restores 15% of missing health for all non-wounded characters in camp.
  • when a character first gets a crush on another character, their activity that evening will now always be to fantasize.
  • refactored the code for determining nighttime character activities to avoid unwanted behaviors when multiple characters have activities that reference (but do not include) a second character.
  • created ability, casting, hurt, and shove animations for Praetor Nero.
  • created ability, axe, hurt, shield bash, and shove animations for Manbir Raksha.


Bug fixes:
  • fixed: there were a few lines of code I had been using for testing that turned almost every character Sensitive (lines which I forgot to turn off afterwards).
  • fixed: height was set incorrectly for the promoted shadowling cast animation.
  • fixed: camp activities like Fantasize were still plucking the characters being thought about out of the activity order for free rein.
  • fixed for 0.6.01a: it was possible for characters chosen for the events A Crush or A Nice Bath to become romantically interested in characters they were already had a crush on (or were romantically involved with).
  • fixed for 0.6.01a: some of the scripting for Battle in the Dissident's Den was not working as intended.


New stuff usable in the campaign creator:
  • created new item graphic: Pouch.
  • created new skill button graphic: Pocket Sand.
  • created new sound effect: PoofCloud.
  • new sound effect: Boing.
  • created new item graphic: Book White.
  • created new item graphic: Spring Shoes.
  • new mood type: Embarrassed. Narrates that a character feels embarrassed.
  • new mood type: EmbarrassedAbout. Narrates that a character feels embarrassed about their interaction with a specified second character.
  • received sunset and nighttime variants of the new Riverbank cutscene background; added them into the game.
  • updated AssetNames.xml to make the most recent batch of cutscene backgrounds selectable in the cut scene editor.
  • new in 0.6.01a: IfGoneGoTo and IfGoneRun can now find objects by their load ID.
  • fixed for 0.6.01a: the in-game documentation for SocialUnitsToList was missing the last parameter (amount).


And that's about all for this one; see you in March!


Tactically yours,

Craig

Version 0.6.00: cavern puzzles, SteamDeck support, new skills and events!

Greetings, tactics enthusiasts! February may be the shortest month, but I sure didn't let that stop me from adding in a ton of cool stuff to the game.

[h3]The biggest changes this month:[/h3]

  • the game now has a virtual keyboard, allowing text input when playing with a gamepad! With this change, Together in Battle now fully supports gamepad--and along with it, SteamDeck. 🙂



  • in the shop, when mousing over equipment, the game now immediately clues you in to the biggest reason why each character who wants that piece of equipment wants it. If the reason is an increase in a particular stat, the game will display the stat change the new equipment would produce:



  • improved auto-move-and-attack behavior: when double-clicking or shift-clicking an enemy, the game now heavily favors skills for which the target is already in range. (If the character moves, it will generally be because there is no skill that's in range, or because there is a much more effective skill that requires the character to move.)
  • caverns now have a second floor with free exploration that can be accessed by finding the stairs down! (Characters don't regain energy or recover from being Stunned while in free exploration mode, making the navigation a bit of a puzzle.) Cavern depths are generated with one of three different puzzle types, each of which leads to a big treasure if solved.
  • the funeral scene is now complete, with new cutscene art to match!
  • new random event sequence that begins in the arena, has multiple cut scenes, capped off with a dramatic hand-designed battle.
  • new random event: Birthday Fan. This one can play out a variety of different ways depending on the personality of the character you select to participate in it.
  • new skill: Create Fire. Creates Fire on an open space within 2 tiles of the character. Pyrokineticists now learn Create Fire later on in their skill progression.



  • new skill: Create Ice. Creates Ice Spikes on an open space within 2 tiles of the character. Cryokineticists now learn Create Ice early on in their skill progression.
  • new skill: Quick Twirl. Behaves just like Twirl, but the character can both move and use other skills afterward. Costs 2 energy. Characters generated with the dancer background are now set to learn Quick Twirl when they reach high levels.
  • new item: Flower Garland. Worn on the neck; boosts morale by 1.


[h3]Miscellaneous improvements[/h3]

Next up, we have new dialogue, new portrait art, new NPC sprites, improvements to character generation, improvements to procedural battle map generation, combat UI improvements, and more!

  • incorporated new sprites for Dese civilians into the game, replacing the placeholder sprites used in Save the Travelers.



  • proc gen characters are now created with some natural variability in their portrait size--some larger and some smaller--with human women on average a bit smaller than human men.
  • increased the consistency of physical trait effects on character stat growths.
  • increased the maximum number of life skills and personality traits the game will track over the course of a playthrough to avoid duplicates from 12 to 18.
  • when tracking life skills with alternate names (e.g. author/novelist, farmer/gardener, lawyer/judge, etc.), the game now accounts for all variants, not just the variant chosen, thus foreclosing the other variant from being chosen by another character.
  • added a commonality attribute to various life skills so that ones with duplicative effects (like historians, professors, lawyers, and judges) are now collectively no more likely to be chosen than any other.
  • wrote new background dialogue for pickpockets, burglars, and bounty hunters. (Previously, they shared the same background dialogue as gamblers.)
  • it is now possible for a camp activity to involve a second character without that character physically showing up (or having their own activity used up).
  • characters who have a crush on someone now gain a potential camp activity where they spend the evening fantasizing about their crush.
  • artistic characters with a crush on another character can now sketch drawings of their crush at night.
  • reduced the daily chance of a character with -10 morale resigning from 35% to 25%.
  • updated the Mustebeast Tent event so you can now pick a bunkmate from among everyone else in the roster, not just a selection of 4 random characters.
  • the engine now supports changing character clothing within unit portraits (as well as disrobing).
  • new portrait added to the game: town crier.
  • new portrait added to the game: Specter.



  • UI improvement: for moves smashing an enemy up against the edge of the map, the collision damage preview now displays the collision just off the edge of the map instead of layering it under the ordinary damage reticle.
  • UI improvement: removed the "you have already done this today" warning from the Jobs Board button in Kalkerapur, as it is now commonplace to get multiple job opportunities in a given day.
  • you can now talk to Explorers while on a Cavern Exploration job.
  • you can now talk to Caravan Guards while on a Caravan Guarding job.
  • increased the difficulty of caravan guard battles slightly.
  • made Ice Spikes a bit more dangerous and durable, and made Fire a bit easier to extinguish.
  • if you choose to people watch during the Festival of the Ascendant Lights, Gurdeep now has a bit more dialogue and you will now have an opportunity to buy a Flower Garland for 5 aura.
  • you can now ask Rohit for a more in-depth explanation of the Psy Clash rules during the Festival of the Ascendant Lights if you opt to play games.
  • added some animated portraits to the narration before meeting Gurdeep during the Festival of the Ascendant Lights.
  • added Black as a battle background for dark spaces (like caverns and such).
  • new background art for camp activities involve a character discovering or going to a temple!
  • new background art for the riverbank!



  • new background art for the Dusht random event and the gambling camp activity!



  • did a bit of code optimization for when the game checks for whether spaces are solid land.
  • optimized the game's internal operate() function for increased performance.
  • the game's procedural map generator can now generate bridges across large stretches of hazard tiles, not just one-tile gaps.
  • the game's procedural map generator can now generate bridges across gaps between cliffs.
  • characters and objects can now be forced to spawn within a specific range of distances from the player in proc gen maps.
  • the game now properly supports stairs which appear to lead down below the map; there is a now a "StairsDown" variant of all existing stairs objects.
  • improved proc gen map logic for placing stairs (they can now only be placed at elevation 1, and not adjacent to environmental hazards).
  • status effect immunity messages now only pop up if the target is a character. (The player doesn't really need to hear about how boulders and trees are immune to, say, Blinded or Enthralled status.)
  • removed the log and one of the bushes from Battle at the Overgrown Garden to make movement around the map less restrictive.
  • wrote another variant for narration during rainstorms.
  • added a couple of kitten name variants.
  • added animations to the portraits of characters reacting to the player's choices during the Beggar event.
  • improved the sound effect made by floor buttons when they are stepped upon.
  • cleaned up the "Grab" sound effect a bit.
  • added the number of the current save slot to generated log files.


[h3]Bug fixes[/h3]
  • fixed: characters returning from cavern exploration would inappropriately remain on the cavern exploration roster going forward, allowing them to participate in cavern exploration while also remaining available for everything else.
  • fixed: clicking on a bridge or on stairs while moving in exploration mode would cause the selected character to move adjacent to (rather than onto) the clicked object.
  • fixed: when ending dialogue in exploration mode, the game would select the next character in the army rather than re-selecting the last selected character.
  • fixed: the land movement sprite had become misconfigured in movement tiles during Exploration Mode due to (what else) changes to the code made when adding localization support.
  • fixed: shoving an object while in exploration mode could result in the game displaying that object as the current selected unit in the actions bar.
  • fixed a null error that could occur when clicking to Use a triggerable object when in exploration mode.
  • fixed: in the deck viewer, you could accidentally click on cards by clicking in the empty area below them.
  • fixed: triggering an on-death attack for a destructible object (such as Explode) would not grant experience to the character who destroyed the object and triggered the attack.
  • fixed: due to a typo, the game was unable to grab the item template for Fur-Lined Cloaks.
  • fixed: the game was sometimes overwriting proc gen equipment materials values for Together in Battle with old placeholder values, resulting the game not loading material names correctly and therefore failing to generate the correct names for weapon and armor images.
  • fixed: when shown in battle, the info bar was layering on top of UI elements that should have taken priority over it.
  • fixed: AI-controlled characters would not open a closed door during their move onto the door's space if that space happened to be the last space in their move.
  • fixed: flyers who were dunked into water or lava by virtue of being Heavy would, upon swimming to an adjacent tile of liquid terrain after Heavy status wore off, immediately resume flying. Such units must now swim back to land (or a bridge tile) to recover Flying movement.
  • fixed: the AI could use Swim with characters suffering from Immobilized status when in water or lava.
  • fixed: when switching months in the calendar, the game ceased to display the current day correctly.
  • fixed: it was possible (albeit mathematically unlikely) for one or more of a character's NPCs to be generated sharing that character's same first name.
  • fixed: the Poltergeist promotion for the Spirit effectively nerfed Juxtapose by changing it from an after-attack behavior of Use Once to Can Move.
  • fixed: narrowing down a tag by its parameters for RemoveTag was only working in cut scenes, not battles.
  • fixed: when talking to Caravan Guards in a caravan battle, the game referred to them as Explorers.
  • fixed: on rare occasions, the proc gen map algorithm could generate more than one bridge tile on the same space.
  • fixed a range error that could occur when generating spawn positions for destructible objects in proc gen maps.
  • fixed: the gamepad navigator code could sometimes fail to enable navigation to some of the reply buttons in dialogue branches with multiple responses once the reply options finished fading in.
  • fixed: using the StopMusic script action and then resuming the track that was playing prior to StopMusic with PlayMusic would not work, as the game would think that track was already playing.
  • fixed: characters undergoing the second Lost Kitten event were not gaining the new Play with Kitten camp activity as intended due to a scripting error.
  • fixed: character dialogue would animate, with accompanying babble sounds, even as a report covered the dialogue menu onscreen. In a branch with a ShowReport action, the game now initiates dialogue animation and babble sounds only after the report is closed.
  • fixed: one of the "talk" camp activity variants for hot-tempered characters was not setting character facial expressions appropriately.
  • fixed alignment on the floor button object.
  • fixed: the Crickets and CricketsAlt loops were not looping cleanly.
  • fixed: localization-related changes to the code over the past few months caused the game to stop displaying the name of the status effect in "[Status effect] wore off" pop-up messages.
  • corrected an error in the description for Medicated Bandages.
  • fixed: Create skills with particle effects did not produce their particle effects as intended.
  • fixed a few awkwardly worded dialogue variants where characters talk about their life backgrounds.
  • fixed: when shown in battle, particle effect velocity for the info bar was not scaled properly.
  • fixed: one variant of one of the hot-tempered victory barks was ungrammatical.


[h3]Campaign creation suite improvements[/h3]

Finally, we have a ton of improvements to the campaign creation suite, including a brand-new tileset, improved battle map generation, support for editing proc gen equipment materials, multiple new script actions, and more!

  • new tileset added to the map editor: Castle Sandstone! It's the same as the Castle tileset, but sandstone-colored (and thus more appropriate to sandy or arid environs).
  • you can now edit the properties of different materials used in procedurally generating weapons and armor in a custom campaign! When creating a new custom campaign, the game now saves a copy of Materials.xml, which you can manually edit to alter the effects of different equipment being made of--for instance--Steel instead of Bronze, or Boiled Leather instead of Leather.
  • new script action: KnockbackUnit. Pushes the unit in a specified direction for a specified number of spaces, as if they'd been shoved or subjected to a kinetic gust. Three parameters: unit name, direction, and number of spaces.
  • new script action: ChangeClothing. This works like ChangeExpression, but instead of changing facial expression, it changes the body graphic being used in an existing character portrait. Supports all base classes usable by characters of that species. Optional third parameter: if set to true, this will permanently change the clothing used in the named character's portrait wherever it appears throughout the game.
  • commissioned new clothing for human proc gen character portraits, settable with ChangeClothing: Villager, VillagerDese, VillagerDese2, Merchant, MerchantDese, RoyalGuard, Slave, and None.
  • new script action: ReactToDeath. Causes all characters in the specified roster(s) to behave as though the named character died while in their roster. They will suffer a morale penalty based on the strength of their Friendship and Romance with the named unit, will gain a memory of the event, and may become depressed or go into mourning for a period of time. Two parameters: character name, roster number(s).
  • new script action: SetStringByClosestCharacter. This grabs characters based on how close they are in a relationship sense. Sets a string variable equal to the name of the character in the specified army (if used in battle) or roster (if used in a cut scene) who scores as "closest" with the named character: 1 pt per Familiarity level, 15 pts per Friendship level, 20 pts per Romance level. Parameters: Variable Name, Army or Roster Number, Character Name, Exclude Characters In List (optional).
  • when calling LoadConv, the new conversation now keeps the existing trigger character and secondary character of the prior dialogue or script by default for easier scripting.
  • you can now leave the name parameter blank in the AddNPC script action, and so long as the NPC being added is a relative of some kind, the game will auto-generate a name for them (as well as procedurally filling in all the other parameters you left blank).
  • new tag used to affect randomized battlefield placement: AvoidOwnArmy. This causes the game to weight placement of the tagged unit so that members of the unit's own army are treated as enemies, enforcing minimum distance rules.
  • new tag used to affect randomized battlefield placement: AvoidArmyObjects. This causes the game to weight placement of the tagged unit so that destructible objects belonging to various armies are treated as characters, including them when calculating minimum distances.
  • new sound effect: Button Click.
  • new sound effect loop: Running Water.
  • new combat visual effects: CryoCast and PyroCast (used in the new Create Ice and Create Fire skills and adapted from existing visual effects for Cryo Blast and Pyro Blast).
  • new text sprite symbols: Backspace, Confirm, and Arrow White L.
  • the map editor successfully loads and saves the "forced spawn distance from the player" attribute of army groups in proc gen maps.
  • reorganized the army group fields in the Generate Map window of the map editor, added fields for specifying forced spawn distance from the player.
  • within the Generate Map window of the map editor, shifted the player deployment options over to the leftmost column to make better use of space.
  • created a 5th set of object fields in the Generate Map window of the map editor.
  • the map editor will now let you select more than just 2 terrain tilesets, and more than just 1 hazard tileset. (It will still pick only 2 tilesets and 1 hazard set at a time when it generates an instance of the proc gen map, but those will be will pulled from every possible tileset you selected.)
  • added "force spawn distance from player" fields for destructible objects to the Generate Map window of the map editor.
  • the map editor successfully loads and saves the "forced spawn distance from the player" attribute of objects in proc gen maps.
  • improved the game's detection of premade unit load IDs (as opposed to actual class names) for army group units in proc gen maps.
  • added parameter count error-checking to a bunch more script actions.
  • improved in-game documentation of AddCampActivity and LearnCampActivity to better distinguish them.
  • the game now supports Species as an alternative to Race among string stats.
  • fixed: using RemoveTag to strip a unit of its scriptID would remove the tag, but not the associated scriptID marker used to find it by the game.
  • fixed: upon loading proc gen maps, the map editor would strip out colons from any premade unit load IDs within army groups.
  • fixed: the map editor was not setting terrain check boxes correctly within the Generate Map window of the map editor to match the sets used by existing proc gen maps upon loading them.


And that's about the size of it!

[h2]So where are we now?[/h2]

This update brings the game up to version 0.6.00, meaning that I now regard the game as being more than halfway done! I numbered our last update 0.4.500 mainly because the funeral scene wasn't complete yet--but with that now finished and everything else that's been added alongside, I feel comfortable saying that we're now 60% of the way to a version 1.0 release.

I'm very happy with how the game's systems have come together to create a rich and replayable core game loop. By my count, Together in Battle is now up to 176 character skills, 4 job types on the jobs board, and 57 random events (not counting guaranteed plot events, investigation scenes and battles, events exclusive to the arena, or systems-driven character activities and interactions in camp). This is already quite a lot of content--more than you'll find in many games at version 1.0!

Remaining tasks consist largely of adding plot scenes, hand-designed plot battles, and endings. I also have a wish list of new random events I want to write, time permitting. This is a self-financed game, so I've had to be very judicious about what art assets I invest in. I would dearly like to add proper rest animations and hair/skin palette swapping to character sprites, but this would involve a big financial outlay on my part. We'll see about that one.

In summary: the path to version 1.0 is clearer than ever. I want to thank everyone who has been here and walking this path with me: your feedback, bug reports, and general encouragement have been more helpful than you know!

[h2]Reviews and the Discord[/h2]

Leaving feedback isn't the only way you can help: if you're enjoying the game, I do hope you'll leave a review as well. That makes a huge difference to a solo developer like myself! Getting to 50 reviews, in particular, will really boost the game's discoverability. (You see, 50 reviews is the point where Steam stops describing a game's reception as just "Positive" and starts describing it as "Very Positive" or "Overwhelmingly Positive.")

In addition, make sure to come follow along on social media! The Sinister Design Discord is small but friendly, filled with the sort of people who love to discuss tactics, debate which classes are best, or just give helpful advice. If you're here, I'd love to have you as part of our community.

That's all I've got, friends. Until next month!


Tactically yours,

Craig

Version 0.4.50: rename characters, cave exploration, the first ending, and more!

Greetings, tactics fans! This month was a lot less hectic than the last two, and that means I was able to pack in a lot of improvements, content, and even a few long-awaited features!

To start, the single most-requested feature we've had since the launch of the game is now in: character renaming! To rename someone, hold a one-on-one with them in camp and tell them you want to change their name. As with most other choices in this game, they'll react to your decision!



Other big-ticket items include a new job type, multiple cut scenes, the game's first ending, a new random event, and more! Here are all of the biggies:

- created the first of the game's endings, complete with multiple new cut scenes!

- new job type added to the Jobs Board: Explorers! Send 4-5 characters away for 3 days to explore a dark and dangerous cavern in search of treasure. Beware traps, looters, derelict golems, and ghosts...

- added a new difficulty setting between Challenging and Brutal: Challenging+. It's identical to Challenging, but cranks the enemy AI up to maximum difficulty.

- created the next investigation cut scene, a branching behemoth with ~84 dialogue branches and replies that appear or vanish based on what you found in prior scenes.

- AI improvement: enemies can now path their way through closed doors, opening the doors as they move! (Previously, moments like this had to be scripted by hand.)



- added a new, two-part random event where one of your most hard-edged characters adopts a kitten (plus a new camp activity to go with it!)


On top of that, we have a slew of miscellaneous additions and improvements:

- the game now tracks which advanced classes you promote characters to.

- new achievement: Jack of all trades. Awarded for promoting characters to every advanced class in the game.

- new achievement for getting the game's first ending. (Between this and Jack of all trades, this brings the game to 75 achievements!)



- new destructible objects: trapped chests! These come in multiple varieties--but I'll let you figure out what those are for yourselves. 😉

- multiple new enemy types that can appear when exploring caverns.

- created the game's end credits.

- gave a buff to the Swordmaster and Marauder prestige classes: Marauders can now follow up Grappler Stance with other skills, and Swordmasters can now do the same with Preemptive Stance and Defensive Stance.

- rebalanced the game's salary calculations: for characters above level 1, stat increases beyond base now only factor in at 33% the strength of base stats when calculating salary, making higher-level characters much more competitive with level 1 recruits in terms of value.

- as a counterweight to the new salary formula, the "asking for a raise" event is now much more reliable, checking multiple characters to find one due for a raise and making it much less likely to get skipped. Additionally, giving a character only half their requested raise in this event now produces a -2 morale hit.

- the Psy Clash deck viewer now lets you deactivate cards you don't want to use in your deck (and/or reactivate cards you previously deactivated).



- added gamepad support for the View Deck button and the Deck Viewer screen.

- added a bit more gradation in how enemy decks improve over the course of a Psy Clash tourney. (The first deck will always be more basic, while the next two decks will now be a bit stronger.)

- received, incorporated new desert and forest battle backgrounds.

- received a new "dark alley" background, integrated it into the game.

- updated the fruit tree sprite so that it has a different silhouette from the regular tree, making it easier to spot (especially so for colorblind players).

- created an alternate fruit tree sprite with orange-yellow fruits, made it the sprite for mango trees.

- if Heavy status wears off while a flying character is dunked in water or lava, they no longer immediately return to flying movement--they must now swim to shore first.

- improved cut scene scrolling behavior. Instead of automatically skipping to the next scene, clicking now increases the scroll speed by 10x while the button is held down, then advances to the next scene when scrolling is completed.

- holding down the Escape button during a scrolling cut scene now mirrors the new behavior of left-clicking, speeding up the text scroll by a factor of 10 and only progressing to the next scene when scrolling has finished.

- added new backgrounds for certain camp activities.

- camp activities can now play associated sound effects.

- added a hammering sound effect to the "repair equipment" camp activity.

- AI improvement: CPU-controlled characters will no longer wander into campfires.

- massively decreased the amount of time the game spends reprocessing character dialogue upon renaming a unit.


We have bug fixes a-plenty:

- fixed: characters were still returning from the Infirmary one day early because I "fixed" it last time via adding a second mathematical operation to SetStat when SetStat did not yet support running multiple mathematical operations at once.

- AI fix: the game would consider 0-move destinations for Swim, which could potentially lock the game into an endless loop of an AI unit using Swim and not actually moving anywhere with it.

- fixed: in some circumstances, the animation for dropping a flyer into water or lava could play much too slowly.

- fixed: in some circumstances where a unit took a long time making a move on the battlefield that was destined to be interrupted by a trap, the game could start calculating the next move for that unit before the move was finished, effectively ignoring the trap's effects.

- fixed: the game was not calculating the difference between a character's current and calculated salary correctly in the "asking for a raise" event.

- fixed: the info bar was not visible during the "asking for a raise" event.

- fixed: players could hire out characters as caravan guards more than once per day.

- fixed: the game would not kick the player out if they went to hire out caravan guards without the minimum number of characters, potentially getting the player stuck in the scene until they clicked on the one character available.

- fixed: it was possible to get card tournaments multiple days in a row on the jobs board.

- fixed: the SetStat action was not working correctly when targeting the Salary or Appetite stats.

- fixed: the gamepad cursor logic could get confused when playing Psy Clash using the gamepad, resulting in the wrong card being deemed selected and leading to range errors.

- fixed: the game could freeze if character movement mid-combat sequence (e.g. with a skill like Charge) brought a character into an area of the map that triggers OnReachingArea dialogue.

- fixed: in some cases, the game running and then closing dialogue with an OnReachingArea trigger in the middle of an AI turn could cause the game to tell the AI that none of its characters had moved or acted yet, resulting in them taking multiple turns.

- fixed: the formula used to detect how many days away from payday the player is contained errors, leading to payday warnings appearing in town on inappropriate days.

- fixed a bug that was causing hair accessories in character portraits to display with incorrect scale and position.

- fixed: the investigation progress tracker wasn't being set upon completing the witness protection battle, letting the player go back to the palace and replay it ad infinitum.

- fixed: Battle with the Steel Bandits was still lacking a battle background.

- fixed a typo in the scene for hiring out characters as caravan guards.

- revised the text of the dissident's den letter so that it makes more sense in context.

- fixed: the game could lock up if the engineer from Battle in the Dissident's Den had his path from Hari to the desk blocked.

- fixed: during the battle in the dissident's den, if the engineer was tipped off due to the player wandering too close and the enemy getting the first attack, he would make his scripted moves during the player's turn instead of his own.

- fixed: during OnCharAttacked dialogue where the speaker's name was set via the -ATTACKER- special character, the game was leaving the resulting unique ID in place in lieu of the attacker's name.

- fixed: the game was leaving the "talking" symbol visible on the last speaker portrait when transitioning to a new dialogue branch with no speaker.

- fixed: the game was not updating data for the trigger character or the secondary character in dialogue after updating their stats via a SetStat action.

- fixed: the army overview button was missing from the Card Tourney scene.

- fixed: the team leader in the Monkey league Qualifier could start moving too early due to the AI detecting an item hidden in one of the bushes.

- fixed: in rare circumstances, the game could produce a range error trying to place an enemy with exceptionally long range on a proc gen battle map without enough space to get them outside of enemy range.

- fixed: when finishing deployment in a map with both a Fog of War condition and a Go First condition for any army other than the player, the game would reconfigure fog of war to reflect the perspective of whichever army went during the first turn, thereby inappropriately revealing hidden areas of the map to the player.

- fixed: missing-space typo due to localization implementation in the reserve supplies screen when asking the player if they want a character to automatically equip multiple new equippable items.

- fixed some awkward word combinations that could come up in evening dialogue discussing hobbies and objects that characters like.

- fixed: the wording of one variant of Pessimistic character practice narration could clash with character mood narration.

- fixed: the title screen news ticker would not reappear after returning to the title screen from playing the game.

- fixed an over-long delay between news items in the title screen news ticker.


And of course, we have changes and additions for the campaign creation suite:

- new, small jug variant made.

- new sound effects added to the game: Door Knock, Meow, and MeowKitten.

- new sound loop added to the game: Purring.

- added a bunch of newer sound and image assets to the AssetNames.xml file for use in the campaign creator.

- added several of the newer cut scene background images to the AssetNames.xml file for use in the campaign creator.

- proc gen maps now support setting a specific distance range from the player's army for other army groups to spawn. This can not only apply to enemies, but to allied armies as well! (Note that this is not yet represented in the map editor, but can be placed onto army groups manually in the XML file using the notation forcePlayerProximity="x-y", where x is the minimum distance and y is the maximum distance.)

- new after-attack type supported: "Can Attack." The character can continue using other skills, but can no longer move.

- new script action supported: NextFrame. Automatically ends any dialogue that may be open and advances to the next frame of the current cut scene.

- added multiple-operations support to the SetStat script action. (For instance, you can now call SetStat/Alan Basilleaf,Health,+:10,*:2,c:50 all in one go.)

- new operation type supported: abs. Sets the custom value equal to the absolute value of the operand.

- fixed: loading a dialogue tree containing a NewScene action in branch 0 within a frame of the cut scene editor would cause the game to actually load the new scene within the editor.

- fixed: the "force visual effect direction" parameter of skills was not being read by the game, ensuring that directional skill effects could never be locked in a given direction (or used at all by destructible objects).


That's all for this month's update, folks! For next month, I'm aiming to create a new interrogation scene, expand the cavern exploration jobs to feature multi-level caves, get some new art into the game, and add several new random events. We'll see how much of that comes to pass. Until next month!


Tactically yours,

Craig

Version 0.4.02: card tournaments, stat boosters, new UI, palace intrigue battle!

Greetings, SRPG fans! I was hoping that things might slow down a bit since the craziness of last month, but we all know how Decembers are. Still, I managed to get some really good new stuff into the game: multiple new random events, a new job type, a new hand-designed palace intrigue mission, new skills, new enemy types, some long-requested UI improvements, and more!

Let's start with the new content:

- a new job type has been added to the daily jobs board: Card Tourney. Pay an entry fee to participate in a Psy Clash tournament against a series of procedurally generated opponents; win the tournament to take home a cash prize! This brings the game up to three job types, two of them proc gen in nature.



- items can now alter a character's base stats, allowing for permanent changes!

- new rare item: Salubrious Draught. Permanently increases the user's maximum health by 3.

- new rare item: Protein Pellets. Permanently increases the user's Strength by 1.

- new rare item: Mycelium Drops. Permanently increases the user's Psy by 1.

- there is now a 1% chance of Salubrious Draught, Protein Pellets, or Mycelium Drops showing up in the shop during any given visit (and a 100% chance of one of these showing up in the wandering merchant's shop after saving him from the bandits).



- created the next investigation mission, with cut scene prelude and alternate endings depending on how events play out during the battle.

- created several new enemy types which appear during the second investigation battle.

- it is now possible to get random events at the start of the day, not just in the arena or in the evening.

- new event: Heat Wave. Drains most of remaining unit energy and risks making units sick if they are assigned physically demanding tasks during the day.

- new event: Dance Lessons. You can pay to send two characters off for dance lessons, improving their relationship and teaching them each Twirl.

- new skill: Kinetic Surge. 3 knockback, hits 3 spaces in a row.

- new skill exclusive to the royal guard: Shield Bash. Low crushing damage with knockback 1 and a chance of stunning.


We have a few nice UI improvements, including the long-requested knockback pre-visualization UI:

- when right-clicking on objects in battle, if there are move tiles or attack tiles present onscreen, that right-click is now treated as a "cancel move or attack" command rather than a command to call up the object's character screen.



- the game now previews knockback paths! See exactly where Shove, Pull, Kinetic Gust, etc. is going to land everyone right onscreen.



- the game now shows where knockback collisions are going to occur, displaying the predicted damage that the targeted unit will take!


We have a variety of other miscellaneous improvements and balance tweaks as well:

- at the start of the game, the initial qualifier bout is now skippable directly from the arena entryway if you've already played through the tutorial fights (or skipped them) in a prior run! If you skip the qualifier, the game will throw you right into the first fight (against the team with engineers).

- Psy Clash cards can now drop as loot during battles!

- when arriving at camp, the game now warns you if camp is messy.

- after the first two in-game months, the game now automatically adds negative events to the "random event hopper" every week in perpetuity, keeping random events from ever running out and putting pressure on the player to conclude the playthrough.

- reduced the familiarity requirements for certain dialogue variations, making more varied character dialogue available earlier on.

- reduced the friendship threshold for characters with certain personality traits to give other characters nicknames, share secrets, and teach skills.

- a character's background dialogue (where a character came from, what their family was like, etc.) now cannot repeat even if the particular character listening hasn't heard it before.

- characters now progress from sharing background and "like" dialogue to nicknaming each other, sharing secrets, and teaching each other skills faster.

- added a new negative Talk interaction for characters who have a bad relationship.

- improved awkward phrasing in some life skill-related dialogue variants.

- Blinded characters can now only see 1 space through fog of war regardless of their Perception stat.

- reduced the maximum health of thinner cave walls to 99 to make brute-force solutions to the optional objective in the Dissident's Den battle more feasible.

- made the dissident interrogation a little more flexible in how you can navigate the dialogue.

- if you ignore Manbir Raksha's letter after the Festival of the Ascendant Lights, it is now possible to visit the palace at a later time to initiate the palace intrigue plot line. (Getting kicked out of the palace will still close it off for the rest of the playthrough, however.)

- reduced the levels of several enemies in the Monkey League Qualifier (particularly the stone golem and axefighter) to make the fight less of a difficulty spike.

- improved Shadowling Grandpa's scaling to help keep up with enemy level scaling in the "save grandpa" random event.

- increased the spawn rate of special weapons like rapiers in the shop.

- increased Grape Shot energy cost from 7 to 9 and decreased its damage scaling from 120% to 100% of strength.

- buffed Lunge: it now has a range of 2 and move-to-target behavior; increased Lunge's damage output from 1.5x strength to 1.75x strength.

- buffed the kineticist promoted classes: (1) the Kinetokurios no longer gets an energy cost reduction on Kinetic Constriction, but now gets +5 damage on Kinetic Constriction and can impart Weakened status with it; (2) the Puppetmaster no longer gets an energy cost reduction on Kinetic Gust and Kinetic Pull, but now gets guaranteed access to Kinetic Wave and learns Kinetic Surge as well.

- buffed the the Thoughteater promoted class: replaced its flat +6 damage for Mind Shock with a 125% damage bonus, causing it to scale with Psy growth at the same rate as Mind Blast; and replaced the Thoughteater's -1 energy cost reduction for Mind Shock with a +50 accuracy bonus, giving the skill's Stunned status a base 100% chance of taking effect.

- buffed the Shadowling card for Psy Clash; it how has health 3 when first played.

- cards in Psy Clash can now affect a minion's stats with more than one operation.

- buffed most of the highest-cost Psy Clash cards.

- the level-up screen now has an animation for when characters learn new counterattacks.

- adjusted the positioning of the spike trap holes so they no longer hang over the edge on transition tiles.

- removed a substantially duplicative reply option from the cut scene with the maharaja.

- refactored some of the old portrait code to make it easier to modify the elements portraits are created from.

- non-scar, non-facial-hair accessories in character portraits now support a "glow" value independent of the rest of the portrait.

- got attack animations for Prince Ajit's battle sprite in-game.

- added portrait movement to the start of the Item Sale event.

- began laying groundwork for a new item usability type: Gift.


Next, we have bug fixes:

- fixed: hair accessories in character portraits were being tinted with lightness values intended for character hair itself, resulting in accessories in light-colored hair appearing much too bright.

- fixed: save slots for playthroughs on custom difficulty did not display the player's team name in the top-right.

- fixed an irritating visual glitch where a character's portrait would vanish for just a moment in between a camp narration and subsequent dialogue (e.g. when a character comes up to the player to ask if they'd like to give them money to gamble with).

- fixed: the Investigate button would not appear in the town menu during days with a league match scheduled.

- fixed: one of the snow-sand transition tiles was missing.

- fixed: the refactored activity-partner selection algorithm had broken instances where random events forced certain camp activity partners.

- fixed: the ModSkillPower and ModSkillAccuracy tags were affecting skills unrelated to those tagged.

- fixed: the ModSkillRange tag could increase the range of skills with a max range of 0 (such as Whirlwind), leading to strange outcomes (such as potentially hitting oneself with Whirlwind).

- fixed: certain Duoterre weapons still required "brittle" masteries that appeared in Telepath Tactics Liberated, but which are not used in Together in Battle.

- fixed: the player's chosen death rules were being ignored in the "golem attack" random event.

- fixed: it was possible to get the event with Sita and the card game more than once.

- fixed: it was possible (albeit unlikely) for golems and spirits to have a morale-based reaction to teammate deaths.

- fixed: Stone Golems were not using the correct animation for Hurl.

- fixed: status effect icon tooltips weren't being layered correctly.

- fixed: the area preference tag wasn't being applied to long-term moves that caused the character to stop within the named area on their way to a destination outside the area.

- fixed: AI-controlled units moving only a single space out of fog of war would not become visible.

- fixed: fog of war would not auto-update after equipping (or unequipping) a torch in battle.

- fixed: fog of war would not auto-update after using SetStat to change a character's Perception or Coords in battle.

- fixed: if a character's sibling appeared in an arena fight and they were killed without being recruited, the game would not save their data, leading to the character feeling depressed about "-MOODCHAR-" in subsequent scenes.

- fixed: wounded characters could still use items in their character screens.

- fixed: unequipping certain weapons (or having them forcibly unequipped via Disarmed status) could sometimes cause a dictionary error and freeze the game.

- fixed: the game ceased giving payday reminders after the first in-game month.

- fixed: the Cryokineticist minion in Psy Clash could send enemy power into the negatives, causing their attacks to heal him.

- fixed: the dialogue input screen would accept a reply containing no text.

- fixed: the deployment screen would show the option to switch to a second (empty) page of characters if the player's roster was exactly 18 units in size.

- fixed: the reserve supplies screen would show the option to switch to a second (empty) page of characters if the player's roster was exactly 18 units in size.

- fixed: it was possible for the game to trigger the top AI move twice if scripted character movement occurred at the start of the enemy turn.

- fixed: one of the replies during the Prince Ajit interrogation linked to the wrong dialogue branch.

- fixed: under circumstances where the AI was controlling more than 8 characters in the same army, if an AI-controlled character in that army died on its own turn (typically from an enemy counterattack), the AI would inappropriately skip the turn of the next character in order.

- fixed: units afflicted with the Frozen status effect could nonetheless regain energy on their turns.

- fixed: prior fixes had once again broken the game's ability to pick out the correct unit for displaying the talk symbol and producing unit babble in battle when multiple units shared its name (even when using a script ID in place of a name).

- fixed: the loadID for Grapple Pull contained a typo.

- fixed a typo in one of the Suave heal barks.

- fixed: much of Gurdeep and the maharaja's dialogue during the Festival of the Ascendant Lights was missing babble sounds.


And finally, we have new goodies for (and improvements to) the campaign creator!

- new destructible objects: Jug and Planter. Jug comes in two variants (empty and full of water), while Planter comes in four varieties (full of just dirt, or planted with arum lilies, ferns, or a palm tree).



- new destructible objects: modular Rugs! Variants of the Rug object that seamlessly connect together to create rugs of arbitrary size and shape; these are treated as part of the floor, laying flat and (unlike other destructible objects) appearing beneath movement tiles.



- right-clicking a destructible object present on the battlefield in the map editor now works like right-clicking open terrain, initiating a camera drag-pan.

- two new cut scene backgrounds added to the game.

- new sound effect added: Ceramic Breaking. Plays when destroying jugs and ceramic planters.

- new script action: AddBark. Dynamically adds a new combat bark to a character's stable of barks.

- new special character supported: -DATE-. Spells out the current date with the day of the month, the month name, and the current year.

- cut scene backgrounds now support HDR colors, allowing for them to appear to properly glow when tinted with values above 1.

- when used in battle, UnitsToList now adds generic characters by their unique ID instead of by name, allowing it to pinpoint specific instances of generic units sharing the same name.

- commas no longer break the text within letters and other documents displayed via the ShowReport script action.

- the runScripts attribute for items can now contain custom script parameters! (Just like with the Run script action, add a comma, a parameter name, a second comma, and then a parameter value to pass a parameter to the script that gets run.)

- new optional parameter for ClearPortraits; add any number of portrait reference names as parameters to have the game exempt them from being cleared.

- new mathematical operation supported for the SetVal script action: mod. This runs a modulo operation, dividing the current value by the operand and returning the remainder. (For instance: if a custom value is currently set to 7 and you use mod:4, the result will be 3 since that is the whole number remainder from dividing 7 by 4.)

- new special character supported: -PROJ:X-. In place of the 'X', type the name of an existing group project. Gets replaced with the numerical progress level of that group project (or zero, if no such project has been initiated).

- new tag supported: ForceGender. One parameter: gender. Forces the tagged instance of a premade generic unit with an 'Either' gender attribute to spawn with the gender specified.

- added an explanation for how to alter base stats to the Guide's Stats page.

- updated documentation in the Guide with explanation for how to make a ModSkill tag affect all skills.

- fixed: when cloning a unit in the campaign editor, the editor would add an attribute called "nodeCategory" to the cloned unit, thereby causing the engine to not be able to parse the XML file containing all of the custom campaign units and seeming to wipe out the units list.

- fixed: the "remove" button for armies within the map editor's army sub-editor inappropriately appeared above the tooltip explaining different AI profiles.

- fixed: the map editor was inappropriately replacing special characters within army values when loading a saved battle map, causing custom strings and the like to be wiped.


That's all for 2023, folks! In January, I'll be aiming to add a new investigation dialogue scene, create a fourth proc gen job type for the jobs board, get new battlefield background art into the game, and add a Psy Clash deck management interface into the game (among other things). See you then--and in the meantime, don't forget to leave a nice review if you're having fun with the game! Your support means the world to me. 🙂


Yours in tactics,

Craig