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


- received, incorporated a brand-new visual effect for Overheat!

- created a new sound effect for Overheat.

- increased the power scaling on Drain from 1.5 to 1.75.

- increased the power scaling on Overheat from 1.25 to 1.5 and gave it +50 default accuracy.

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

- fixed: the deployment window's starting text was being overwritten by default localization values.

- 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: a null error could occur in camp under very specific circumstances.

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


- finished the blacksmith rescue mission!

- reduced the height on the pop-up text animation to aid readability.

- 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 the dialogue with OnUnitAttacked.)

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

- right-clicking rugs and other objects set to be treated as floor no longer opens the character screen.

- fixed: Create skills would not function on spaces containing rugs or other objects with a true "treatAsFloor" attribute.

- 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: the AI was not set to recalculate moves upon removing Inactive tags from a CPU-controlled units mid-turn.

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


I've been sick for the past week, so unfortunately I haven't made any progress on the game. However, I made a couple of small changes for a version 0.6.10a hotfix:

- fixed: losing the Blacksmith Rescue mission while playing on roguelike mode would be treated like an ironman mode loss and delete the save file.

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

- swapped the eye palette numbers for violet and red eyes.

- new custom menu 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.

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


Changes for version 0.6.11:

- balance change: reduced the number of green allied caravan guards that spawn during caravan defense missions from 4 to 3.

- balance change: reduced the chance of a Whetstone appearing in the shop during a given visit from 33% to 10%.

- rewrote the way that the game times combat sequences to end after zooming out the combat camera so as to avoid issues arising from the slowdown in Unity animations on lower-end machines.

- fixed: the counterattacks icon did not display correctly when providing in-shop explanations for why characters wanted Vengeful weapons.


- completely overhauled the way the game deals with parabolic movement to improve performance on slower systems (and to thereby avoid weird issues with assassin Leap arcs visibly lagging behind everything else).

- cleaned up the timing on character "hop" animations when changing elevation.

- fixed: a range error occurred when a stone golem threw a flying character.


- received a revised smile for the blacksmith portrait. (The original was just too awkward to use.)

- fixed: the AI would get locked into an infinite loop when swimming with proc gen units generated with the Swimmer trait.

- fixed for 0.6.11a: due to recent changes in the AI code, the game would throw a null error if an enemy drowned to death at the start of the AI's turn.


- rewrote the game's dodge animations so that they, like the new parabola animations, are driven purely by code and math. With this, the movement of units on the battlefield is now completely untethered from Unity's Animator component.

- fixed for 0.6.11b: it was possible for an AI-controlled character with a preferred area tag and no viable moves to remain on the "calculate a move" list forever despite having no viable moves, thereby preventing the computer from ever ending its turn.


Changes for version 0.6.20:

- began working on a new random event battle.

- further boosted the likelihood of characters who are already friends or romantically interested in one another choosing to interact with each other over other characters.

- added portrait animations to the "ignore" options for the Ishita Svaamee events.

- added a portrait animation to the first traveling merchant event.

- new option for the IfInArea script actions: you can now use an army in the Character Name parameter (e.g. "Army 0", Army 1", and so on) and the game will check for any character belonging to that specific army.

- fixed: bridges below the level of the terrain could cause the game to use the bridge's elevation instead of the ground's for purposes of calculating movement and elevation bonuses.

- fixed: bridges below the level of the terrain would cause the map editor to set the cursor elevation (and the elevation of further objects placed on the space) to the bridge's elevation instead of the ground's.

- fixed: if any of an AI-controlled unit's skills could affect a target worth affecting, all of that unit's skills would be marked as worth using as part of short-range moves toward a preferred area, leading to the unit potentially inappropriately attacking scenery.


- wrote two new "life background" dialogue variants.

- character dialogue can now be made available (or excluded) for a character based on their family's socioeconomic class.

- particular proc gen character lines can now be assigned greater likelihood of selection.


- wrote new tutorial text about fruit trees, explaining why AI-controlled enemies sometimes attack them.

- you can now have the recruiter auto-generate a starting team for you on Day 0.

- fixed: the "force species" attribute could be used to create proc gen characters of a species not compatible with the chosen class, resulting in issues like missing portraits and sprites.


Updated the Together in Battle Steam demo (last updated in August 2023 😅).

- improved recruitment UI behavior when mousing over other recruits with a different recruit selected: you can mouse over other recruits normally, but the selected recruit will pop back up upon mousing off of them for ease of comparison.

-fixed: door-affecting script actions such as Lock could trigger OnDoor dialogue when used in OnLoaded dialogue.


- created a new thief attack late event.

- reduced the odds of a late event occurring on any given night.

- AI improvement: the AI now does a much better job of appropriately balancing the value of reaching a preferred area versus the value of moving toward a character it would like to attack (but cannot yet reach).

- AI improvement: the AI now imposes a scoring penalty for any move that would take a character who is already inside their preferred area outside of that area.

- the LevelUpArmy script action now works in cut scenes.

- new condition: Drop Items On Death. Lets you set a particular army to not drop items when a character in that army dies. Parameters: army number, drops items (boolean value--true by default).

- fixed: a misformatted script action parameter in the event where a character asks the player for money to gamble with resulted in the event proceeding even if the player lacked the minimum amount of money to gamble with.


- added the missing army palettes from the original Telepath Tactics (Orange and Pink) into the engine.

- the game now accounts for characters temporarily off working, training, in the infirmary, or on vacation when spawning the number of tents in the thief attack battles.

- updated the "tent looted" conversation in the thief attack battles so the game shows you the info bar with the money being lost.

- updated the Strikebreaking event so the game shows you the info bar with the money being added if you complete the job.

- completing Jiti Sone's job now has a downside: spriggats will refuse to appear in recruitment, and any spriggats actively on the team when the job is done will suffer a huge morale hit.


- wrote a new event: Revenge Quest 1.

- wrote a new event: Revenge Quest 2.

- wrote a new event: Revenge Quest 3.

- wrote a new event: Revenge Quest Results.

- new mood added to the game: Determined.


- created a new battle for the revenge quest event sequence.

- the revenge quest sequence can now begin at any time after advancing to Gharial League.

- fixed: if an army in a battle was completely neutral by way of being allied to every other army, the game would treat them as having vanquished all enemies and immediately end the battle with them as the victor.

- AI fix: the retreat AI algorithm was not accounting for area preference or patrol tags, causing characters with no usable skills to retreat without regard for the areas they were supposed to be moving towards.

- the game can now process custom strings used as part of a scene's display name.

- new script action: AddNickname. Gives a character a new nickname to be used by a second character in dialogue. (To make it a nickname everyone uses, leave the Second Character Name parameter blank.) Parameters: Character Name, New Nickname, Second Character Name.

- new script action: HideDialogueBox. Allows you to manually hide the dialogue box during dialogue.

- new script action: ShowDialogueBox. Causes a hidden dialogue box to reappear.

- three new special string stats are supported for SetStringByStat: First Name, Last Name, and Nickname. (These are read-only, so don't try using them as a parameter with SetStat.)

- added last name as a supported attribute value for the SetStringByNPC script action.

- changed the runScript attribute in CampActivities.xml to runScripts to make it consistent with the rest of the game.

- updated in-game documentation for the IfBioDetail-type script actions and the -BIO:X- special character with the default bio detail types.

- fixed: in-game documentation for the AddNPC script action was missing the tenth parameter, Blood Relative.

- fixed: in-game documentation for the SetStringByNPC script action was missing blood relative among the supported attribute values listed.

- fixed: getting a unit's load ID via the SetStringByStat script action would return an empty string for proc gen characters. (It now returns the unit's name, which can stand in for its load ID in virtually every use case.)