1. Together in Battle
  2. News
  3. Version 0.4.01: New palace intrigue mission, UI improvements, better AI!

Version 0.4.01: New palace intrigue mission, UI improvements, better AI!

Greetings, tactics fans! As predicted, this past month was friggin' nuts: I packed up my home, moved, unpacked, had to build myself a new computer desk, and then had Thanksgiving. (Also, the day job got very busy.)

Nevertheless, I persisted--and as a result, I have an update with one cool new handcrafted plot mission and lots of small improvements for you! Here's what I've got for November. First up, the new content:

- interrogating Prince Ajit now schedules an event where the player receives a letter with a lead.

- new palace intrigue mission with a viable (albeit non-mandatory) stealth route to completion!

- an interrogation scene that changes based on how you completed the mission beforehand!

- new skill added to the game: Unlock Door. Range 1; unlocks a locked door.

- Lockpicks now grant Unlock Door in addition to Pilfer, making lockpicks more versatile and opening up alternative strategies for completing certain maps.

- added a couple of greeting response lines for religious characters.



We've got a slew of AI improvements as well, some designed to make stealth missions more viable (but most just addressing edge cases where the AI behaved strangely):

- new AI tag supported: Inactive. This causes the AI to skip the unit's turn entirely each round while the tag remains. (The only action a character tagged Inactive will take is to swim back to land if in water or lava.)

- Passive units no longer move to different spaces when performing purely self-buffing moves.

- the AI now values the Enthralled status effect differently depending on the total level of the target, with higher-level targets deemed more valuable than lower-level targets.

- the AI now values Slowed status less. (Previously, it scored it identically to Immobilized.)

- refactored a bit of hacky AI code tracking whether the current AI-controlled unit had taken certain actions yet this turn and replaced it with a list that tracks this data for every character tied to their IDs.

- fixed: the AI was incorrectly predicting the knockback destination for pull skills, leading it to sometimes use skills like Pull under circumstances where doing so made little sense.

- fixed: the AI was valuing any kind of straight stat buff as though it were healing, leading to characters sometimes using skills like Douse on injured allies in lieu of better moves.

- fixed: the AreaPreference tag could cause AI-controlled units to inappropriately value moves where they move into the preferred area and then attack allies. (The AI now detects when that is going to happen and discards the attack portion of such moves.)


We've got some long-awaited interface improvements:

- the food buttons in the shop now actually display the amounts of food each represents!



- added a little glinting animation to the "next set of options" buttons in dialogue and in the town menu so they're much harder to miss.



- you can now always look ahead to the next month when in the calendar screen.

- when using repair kits (or any other consumable whose only function is to alter properties of equipment), the game now checks to confirm that a valid item is actually equipped before letting you use the item.

- when using repair kits, the game now checks to confirm that the equipped weapon is actually missing uses before letting you use the kit.

- created a new skill button graphic for Twirl distinct from the skill button graphic for Trade.


Balance improvements:

- further increased character tendency to interact with existing friends and romantic partners.

- increased the base chance for Stunned to take effect via Mind Shock to 75%, making mentalists more reliable at lower levels (and making the Thoughteater promotion option more appealing).

- buffed Disarm: the skill now costs 2 energy instead of 4 and allows the user to move after using.

- characters can now continue moving after using Twirl.

- boosted the strength of experience scaling when attacking a lower-level opponent by 5% per level of difference to help keep characters within the correct level range.

- the game now always produces at least one healer during the initial recruitment for a run.

- the player now has more breathing room after completing a league qualifier; the first league match in a new league is now scheduled for 5-7 days out (instead of 2-4 days out).

- winning a league qualifier now boosts team morale by 3 instead of 2.

- made paying bonuses to characters more cost-effective in terms of morale gain relative to money spent.

- increased pay from league battles.

- when hiring out team members as guards, pay now scales with how many in-game days have passed.

- greatly increased the generosity of Ishita Svaamee's buy-out offers to make the choice harder.

- the likelihood of receiving the letter in Nihal's bandit quest now increases with every passing day.

- improved the scripting in the battle in Nihal's bandit quest and wrote some new mid-battle dialogue.

- once the player is scheduled for the Monkey League Qualifier, the game now grants access to the team overview and calendar buttons in the arena entrance area.

- reduced the commonality of practice weapons and rusty swords as drops in the arena.

- increased the rate of enemy level scaling in caravan guard battles somewhat, as well as overall enemy aggressiveness.

- increased the rate of enemy level scaling in the merchant-related bandit battles.

- increased the rate of enemy level scaling in the Save Grandpa fight, but also scaled up grandpa's health over time.

- increased the commonality of events where a character asks for a raise.

- moved the first possible day for the golem attack event back by six days.

- jobs other than laboring no longer appear as options in the jobs board until the player has beaten at least two arena battles.


Bug fixes:

- fixed: the AI mode tracker logic was causing infinite loops when a character used a non-turn-ending skill and then queued up another move with a different skill.

- fixed: if an AI-controlled character used a consumable item, thereby destroying it, and then tried to move into a trap, if the game prevented the move from completing, it would queue up another move that could involve using the now-depleted item a second time, thereby producing a null error.

- fixed: the unit spawning algorithm for caravan defense battles was inappropriately counting caravan guard groups toward the group number for enemy groups, resulting in enemies consistently clustering near the edges of the map.

- fixed: due to an error in logic when deserializing character rosters, the game would inappropriately reinsert the first-recruited character into the default team roster when the entire team had been sent away on a guard mission. This, in turn, allowed the player to undertake inappropriate daytime actions (such as visiting the arena when no one remained to field).

- fixed: if a character had multiple counterattack types to respond to an attack, they would queue up a counterattack with each of them instead of just one.

- fixed: the game was not taking weapon dependencies into account when determining viable skills to use for counterattacks (e.g. a character with a Bayonet counterattack would be able to use it even if not equipped with a crossbow).

- fixed: character names in camp interaction narrations would sometimes use the other character's nickname for that character instead of spelling out the character's full name.

- fixed: the game was using an incorrectly formatted parameter to reset the days passed in memory when starting a new campaign.

- fixed: the chests in the arena championship battle were empty.

- fixed: a typo in the class data for kineticists was causing them to generate with wildly off-kilter stat growths.

- fixed: using one's last time point for the day in Training would kick the player back to Kalkerapur with full time points.

- fixed: characters sent to recover at the infirmary were sometimes returning to camp one day earlier than intended.

- fixed: sending a character to recover at the infirmary was not removing them from the list of characters you could leave at the infirmary during that visit, making it possible to pay to leave the same character multiple times.

- fixed: the introductory voice-over narration would start to play twice at the beginning of the Introduction scene, making it sound like it had aggressive reverb for the first few words.

- fixed: shopkeeper portrait wasn't showing up when reacting to the restoration of steel weapons and armor to the shop.

- fixed: it was possible for the game to schedule a league match on the same day as the Manbir's Letter event, preventing that event from ever occurring.

- fixed: the "Leave" option on branch 0 at the Caravaneer's Guild simply reset the dialogue to branch 0 instead of returning the player to the middle of town.

- fixed a typo in the Skill Question evening event that would fail to exclude characters from the event who had only one skill remaining in their progression.

- fixed: if a map's music was changed mid-fight and a character promoted, the game would cross-fade back to the level's original music, not the track it was previously changed to.

- fixed: pushing enemies into lit campfires did not burn them unless it was specifically scripted for that map.

- fixed: town menu "next set of options" buttons were using an outdated arrow graphic.

- fixed: the "coins" sound effect did not play when paying money in certain random events.

- fixed: pure knockback attacks like Kinetic Gust and Shove were not triggering OnCharAttacked dialogue when used against enemies.

- fixed: characters would not counterattack after blocking an incoming attack with Defensive Stance.

- fixed: the game was displaying only half the actual pay from caravan guard battles.

- fixed: using Mind Control on an enemy could produce a null error.

- fixed: returning to camp after an evening event battle could trigger a second evening event.

- fixed: skipping the event-selection process upon returning to camp after a scene-changing evening event would cause the game not to show the army overview, calendar, or card deck buttons.

- fixed: upon returning to camp after a scene-changing evening event, the game would count down the days until training, working, and infirmary-bound units returned for a second time, resulting in those units returning one day earlier than scheduled.

- fixed: completing either of the merchant-related bandit battles would send the player to the calendar screen instead of returning them to camp.

- fixed: declining the recruitment duel would leave the player without enough time to throw a gathering.

- fixed: siblings and cousins of characters with region-specific names could have names not belonging to that same region.

- fixed: if the framerate dipped at the start of knockback or swap skills, the character(s) could appear to teleport onto their target squares.

- fixed a couple of typos: one in the level-up screen, and one in the arena pre-fighter area when at three wins in Tiger League.

- fixed a typo in one of the narration variations for when no one cleans camp but no mess is left behind.

- fixed: localization setup for bonus proficiency text upon level-up was causing the text to appear incorrectly.

- fixed a typo in equipment masteries introduced by adding localization support to the recruitment screen.

- fixed: the "Blocked!" pop-up from blocking an attack with Defensive Stance was missing localization support.

- fixed: localization support was missing from the scene transition screen ("Saving game").


And we have improvements to the campaign editor:

- new script action: EndUnitTurn. Lets you forcibly end the named character's turn.

- when auditioning music tracks within the map or cut scene editors, if music volume is set to 0, the game will now override this setting so you can hear the music in this one context.

- changing the operation for a bridge's Elev tag now updates its elevation in real-time in the editor.

- improved Guide documentation for the -NPC:Attribute Type|X- special character.

- fixed incomplete Guide documentation for the AggroGroup script action.

- fixed: the Edit Branch window in the dialogue editor was effectively maxing out at 6 actions due to failure to offer the player an option to turn to page 2 upon hitting that number of actions.

- fixed: particularly long topics in the Guide could overflow their text fields.

- fixed: when editing a branch in the dialogue editor, swapping action positions on the second page of actions was not functioning properly.

- fixed: in the dialogue editor, a range error could occur when changing the trigger for dialogue and then making further changes.

- fixed: when placing multiple characters onto the same space in the map editor, the Undo function would sometimes remove the wrong character from that space.

- fixed: summoning the console when in the middle of dialogue would not feed the console the dialogue context, potentially causing it to throw an error when using dialogue navigation actions like GoTo.


And that's about it! I didn't get quite as much done on the "new content" front this month as I wanted to, but I'm happy with the mission I did manage to crank out. Next month, I'll be aiming to finish the second palace intrigue battle, get at least one new interrogation scene, and create a third proc gen job type for the jobs board. Until next time!


Yours in tactics,

Craig