Welcome to the new Sinister Design forums!

Main Menu

Together in Battle Dev Log

Started by CraigStern, February 06, 2020, 05:37:30 PM

Previous topic - Next topic


- TargetPreference tags now support the use of custom string variables for their target name parameter.

- 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.

- 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.

- 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.


- new script action: StripItemsFromUnit. Removes all items from the named character's inventory and places them in a roster's reserve supplies.

- 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.


- created a second team sparring event.

- 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.

- 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.


- you can now create a mid-battle save on the first turn of a fight, right after deployment!

- created a second team sparring battle.

- created a new special arena fight condition: Skill Request. A fan requests that the player use a specific skill during the battle; if the player uses that skill a specified number of times and goes on to win the fight, they'll gain an extra reward!

- created a new special arena fight condition: Skill Avoid Request. A fan requests that the player avoid using a specific skill during the battle; if the player does not use that skill at all and still goes on to win the fight, they'll gain an extra reward!

- shifted the timing of the Brother Leader Revenge event chain; it can now no longer occur until Gharial League at the earliest.

- 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: 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.

- laid the groundwork for the engine to support looking at specific aspects of the skills that characters are using as parameters for dialogue triggers.

- 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.


Today is the one-year anniversary of Together in Battle being out in early access! To celebrate, I made a post (and also pushed version 0.6.20).

Changes for version 0.6.20a:

- the game now displays gameplay tips on the loading screen when transitioning scenes.

- wrote 34 loading screen tips specifically for Together in Battle.


- added default loading screen tips for campaigns other than Together in Battle.

- when playing with the gamepad, switching to the actions bar with 'X' now defaults to selecting the first available skill.

- fixed: on certain buttons, selecting them with the gamepad could double-invoke their methods, leading to errors (up to and including the game freezing).

- fixed: 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: actions bar button tooltips were displaying strangely in gamepad mode.

- fixed: the virtual cursor was not visible when choosing between yes or no in any in-battle warning pop-up windows.

Changes for version 0.6.20b:

- fixed: in some circumstances, the "avoid skill" arena battle condition would turn out blank.

- fixed: 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 would get stuck in an endless loop of character reactions.


Changes for version 0.6.20c:

- increased the number of loading screen tips to 43.

- the game now tracks the last 20 loading screen tips displayed to avoid having repeats too often.

- fixed a couple of typos in the loading screen tips.

- fixed: 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: 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: the blacksmith would show duplicates of weapons in reserve supplies when showing potential items to rename or repair.

- fixed: during the initial meeting with Manbir Raksha, his dialogue was still incorrectly referring to the attack "last night."

- fixed a visual issue with the spot where the necks meet the ears in most of the male "NPC" portrait clothing sets.


Changes for version 0.6.30:

- wrote new like/hobby dialogue for characters with the depressive personality trait.

- wrote new generic Talk narration.

- wrote new Talk narration for depressive and introverted characters.


- characters who clean together now gain friendship with one another.

- increased the positive morale effect of rainstorms on the characters who like them.

- updated the description of Feedback to make its self-healing effects less ambiguous.

- 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.

- new sound effect: Crowd Booing Muffled.

- new ending added: banned from the tournament.

- new achievement: Kicked out.

- fixed: the Challenger and Brutalist achievements would only trigger if starting a playthrough on roguelike mode.

- 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: the Sick status effect had started making skills cost 2,000% their normal energy cost instead of 200%.

- 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).

- 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.

- added minimum parameter checks to about a half-dozen portrait-related script actions that were missing them.


- wrote a new info response line for religious characters.

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

- if the avenger remains after the conclusion of the revenge quest event chain, their background and secret dialogue will now change to acknowledge what happened.

- 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 regardless of whether you win the tournament.

- unit tooltips can now display a different fourth stat besides counterattacks for their appearance in menus.

- unit tooltips will now display morale instead of counterattacks during selection for a one-on-one in camp.

- unit tooltips will now display strength instead of counterattacks during selection for laboring at the docks.

- 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: Religious characters' greeting responses were inappropriately referencing the god of their dialogue partner rather than themselves.

- 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 AddBark, 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 the secondary character in the conversation (if any), with 'X' being the bio detail type (region, hometown, hometownSize, raised by, siblings, worships, and religion).

- added missing documentation for the pitch range parameter in the PlaySound script action.


- item sacks now visually drop into place when fans throw items onto the battlefield in the arena.

- proc gen spriggats now have +3 base health across the board.

- proc gen cavaliers now either gain a lance counterattack or heavy armor mastery, not both. (They are guaranteed to learn heavy armor mastery if they promote to a Mantis Knight, however.)

- proc gen cavaliers now start with 20% lower base Energy.

- proc gen cavalier base salaries are now higher.

- training energy for cavaliers now costs 8 times as much as it does for every other class.

- fixed: after introduction of the new, more efficient parabolic arc code, objects chucked with skills like Toss and Throw were no longer getting parabolic arcs.

- AI fix: due to a quirk in how C# handles integer division, the AI was not applying any penalty to attacks against targets with non-lethal counterattacks.

- fixed: it was possible for inorganic destructible objects to get the Poisoned status despite having 100% Poison resistance, just so long as the skill conferring the status was not of the Poison element.

- 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.

- added missing in-game documentation for the Move Over unit trigger.


- 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.

- changed the Pocket Sand skill's element from Poison to Light so that it can affect golems.

- shuffled around the timing of certain random events.

- increased the rate of enemy level scaling in the Save Grandpa event battle slightly.

- added some safeguards to ensure that a fall into a chasm will always be an insta-K.O. (even if falling 10 levels of elevation might not otherwise cause enough damage).

- increased the energy cost of Place Charges and Place Timed Charges to 8 and 10, respectively.

- camp activity narrations can now be tagged with a reqsRomanticCompat attribute.

- characters no longer deliver flirty dialogue lines to characters with whom they are not fundamentally romantically compatible (i.e. correct gender and species, to who they are not related).

- fixed: the description for Place Timed Charges contained the wrong after-attack behavior.

- 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 a prior character portrait contained a hair accessory.

- 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).


- wrote the second interrogation of Malatose.

- added dialogue options to the initial meeting with Manbir Raksha where you can ask him for advice on how to conduct the interrogations.

- shields are now generated with higher base health bonuses.

- 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.

- fixed: equipment-modifying items (such as repair kits and whetstones) were not usable in camp.

- fixed: on certain occasions, item sacks on top of bridge tiles became non-interactable.


- wrote a new two-person sparring narration for Suave characters.

- changed out the 1-in-3 chance of spriggats learning Mind Blast as their miscellaneous psy skill for a 1-in-3 chance of learning Kinetic Gust.

- fixed a typo in one of the rest narrations for flirtatious characters.

- character tooltips in training now display each character's base strength, psy, and accuracy in lieu of counterattacks.

- when loading up a save file from the demo campaign in the full game, the game will now automatically convert it into a main campaign save file!


- wrote the cutscene portion of a new random event battle.

- when selecting characters for random events, their tooltips now show morale in lieu of counterattacks.

- lit battlefield objects (such as braziers, candelabras, campfires, and lamps) now create visible areas within fog of war maps.

- fixed: the "Black" cutscene background was not usable.

- fixed: the CastleSandstone tileset's transitions between other tilesets were not working.

- fixed: fog of war tiles would not update when unequipping a torch or other Perception-affecting item.