1. Telepath Tactics Liberated
  2. News

Telepath Tactics Liberated News

Version 1.0.52: Holiday Surprise Patch!

Salutations, SRPG fans! I know I titled that last update "the final improvements," but I've added some really nice stuff to the engine since then, and a few of you asked if I'd update TTL with it. It being the holidays and all, I said "What the heck--why not." (Besides: I did reserve the right to come back in and patch again if new bugs were discovered!)

Anyway, why am I spending so much time justifying more improvements to Telepath Tactics Liberated? Let's talk about what's changed! First, a little bit of new content as a winter holiday present for you all:

- I've added a new, super-secret recruitable character to the game. Who is it? Where do they appear? How do you get them? Shhhhhh...it's a mystery! 😉


We also have some nice quality-of-life improvements:

- 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 that Shove or Pull 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!



- added a little glinting animation to the "next set of options" buttons when dialogue and custom menus have multiple pages of options to make them harder to miss.


AI fixes:

- fixed: the "move again" AI-scoring bonus was being applied to Bow and Lance attacks against allied characters, not just enemies, which in some circumstances could result in the AI viewing it as a good move to use these skills against allies.

- fixed: when there was no good move other than staying still and using an item, the game would skip the character's turn instead of staying put and using that item.

- 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 for every character tied to their unique IDs.

- 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 would be scored identically to Immobilized.)

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

- fixed: the AI was incorrectly predicting the knockback destination for pull skills, leading it to (for example) using skills like Pull under circumstances where Shove would make sense.

- 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 could queue up another move where the unit used the now-destroyed item a second time, thereby producing a null error.

- fixed: Passive units could move to different locations as part of purely self-buffing moves.

- fixed: the AreaPreference tag could cause AI-controlled units to inappropriately value moves where they moved into the preferred area and then attacked allies.


Other fixes:

- fixed: user scores for downloadable campaigns were incorrectly scaled, leading to them appearing at 1/5th the value they should have.

- fixed: regular enemies were attacking the treasure chest in Battle with Gunther. (To compensate for the reduced early pressure this fix puts on the player, I moved up the appearance of the thief by 2 rounds and added a second chest to serve as an optional objective for those looking to really challenge themselves.)

- fixed a few scripting errors in randomizer versions of campaign maps.

- fixed: AI-controlled units within fog of war would not appear if they moved only a single space out of fog of war.

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

- 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: characters would not counterattack after blocking an incoming attack with Defensive Stance.

- fixed: self-focus skills (such as Soul Suck and Transfer) were inappropriately affecting maximum energy, not just current energy. This was caused by changes in the code allowing for rollover damage from sending a character into negative energy.

- fixed: Immobilized characters were able to use Move skills (like Leap or Swim).

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

- fixed: in rare circumstances, an attack sequence could end with a pending counterattack left unexecuted. The game now performs a separate check for any such attacks before ending a sequence of attacks and counterattacks.

- fixed: Emma and Sabrina were not appearing on the map in the cut scene after the Adelbrae fight.

- added MoveCam scripting to the door and switch tutorial in Rescuing Meridian.

- fixed: frame alignment on the Sword animation for Swordmasters and Blade Dancers was erratic.

- 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: in rare circumstances, the actions queue could remain uncleared when changing scenes, leading to the game refusing to process actions in the next scene under the belief that it was already in the middle of processing script actions.

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

- fixed: when right-clicking a space with both an object and an item sack, the game would show the object's character screen rather than the item sack's.

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

- fixed: clicking units in the deployment menu was not making a sound.

- fixed: the graphic for steel mail was missing.

- fixed: hair accessories in proc gen 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: choosing to proceed with a custom menu button selection in the face of a pop-up warning would not close the pop-up menu if proceeding meant staying within a custom menu.

- when a premade unit has a class name not corresponding to any class in Classes.xml (such as "Villager"), the game now provides them with an empty class that has the provided name.

- 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: 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: Stone Golems were not using the correct animation for Hurl.

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

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



Next, we've got a ton--a ton--of improvements to the campaign creator (and changes that may otherwise benefit custom campaigns)!

- cut scene backgrounds now support HDR colors, allowing for them to appear to properly glow in combination with the LightBackground script action.

- 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 in this context so you can still hear the auditioned music.

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

- proc gen item attributes are now moddable! (When you create a new campaign, the game will generate a file called ItemAttributes.xml; edit it in Notepad++ or a similar program to alter the properties of existing proc gen equipment modifiers, remove modifiers you don't like, or add your own.)

- items can now alter a character's base stats, allowing for permanent changes; added an explanation for how to alter base stats to the Guide's "Stats" page.

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

- fixed: the Edit Branch window in the dialogue editor was 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: 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 running dialogue navigation actions like GoTo.

- custom menus now support hidden buttons: buttons that are defined but not shown to the player unless unhidden via a script action.

- the "hidden" property of custom menu buttons may now be edited within the cut scene editor.

- the cut scene editor now supports an unlimited number of gray-outs and warnings for each custom menu button (with each delimited by |s).

- new unit tag supported: Inactive. Causes the AI to skip the unit's turn 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.) Useful for stealth missions!

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

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

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

- new script action: ShowMenuButton. Shows a hidden button within a custom menu. One parameter: button name.

- new script action: HideMenuButton. Hides a visible button within a custom menu. One parameter: button name.

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

- new stats supported by Stat script actions: Health % Left and Energy % Left. These return a number between 0 and 100 reflecting the percentage of a character's health or energy that remains.

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

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

- custom strings can now be used as the loadID for unit spawns in battle.

- custom integer values can now be used in place of victory aura, victory morale, and defeat morale effects for battles.

- new optional parameter for GenerateUnique and GenerateUniqueFromNPC script actions: Force Personality. This forces the character to be generated with one particular personality type that you specify.

- improved documentation for the generate inventory parameter for the GenerateUnit, GenerateUnique, and GenerateUniqueFromNPC script actions.

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

- fixed: the Regenerating sprite was missing from the campaign creator's TextSprite documentation.

- new special character supported in dialogue: -BASECLASS-. Like -CLASS-, but it gets swapped to the base version of the character's current class instead.

- new special characters: -CLASSID- and -CLASSID2-. These refer to class loadIDs, whereas the old -CLASS- and -CLASS2- special characters now refer to localized class names.

- added -CLASS2- documentation to the campaign editor's in-game reference.

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

- fixed incomplete Guide documentation for the AggroGroup script action.

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

- added parameter count checks and error logging to a bunch more script actions.

- the XML saving class in the campaign editor now gives specific feedback on the error when an xml file fails to save.

- proc gen battles now accept premade character types, not just proc gen characters. (Just use a loadID in place of the character class, with a : in place of the /.)

- proc gen battles now accept destructible object assignments to particular armies.

- the game now supports designated "spawn regions" for deployment spaces, groups of characters, and groups of objects within proc gen maps, forcing each to spawn within certain defined areas of the map. (Spawn regions are defined the same way as custom areas are.) This makes proc gen defend maps much more doable.

- 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: the game was not accounting for skills like Sprint and Engine Boost when calculating where enemies could reach for purposes of determining unit placement in proc gen maps.

- fixed: in proc gen battles with more than two armies, the unit spawning algorithm was inappropriately counting units from earlier armies toward the group number for a subsequent army's groups, resulting in those later groups consistently clustering near the edges of the map.

- fixed: predictive text results for the music input field in the map editor had gotten misaligned at some point.

- fixed: promoted characters who reclassed to a new base class would learn a slew of the new class's skills upon leveling up once, as if their true level had been spent in that class. The game now tracks the character's level at the moment of their last promotion, resets it to zero upon changing to a new class, and uses this level for skill progression purposes.

- fixed: characters who were reclassed to a base class post-promotion would promote again upon gaining a level in their new base class.

- fixed: reclassed characters could still sometimes end up learning duplicates of known skills.

- fixed: the game could silently reject available promotion options without logging a reason.

- fixed: the report screen was not hiding the dialogue menu as intended when the ShowReport script action was used in battle.

- fixed: the game would throw a range error if a zero-length string was passed as the parameter for the SetNextScene or NewScene script actions.

- fixed: calling the SetValByEvent script action without its optional fourth parameter would produce a range error.

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

- fixed: recruitment broke when asked to generate pre-promotes due to a faulty detection mechanism for level ranges versus open-ended minimum levels in class data.

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

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

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

- when the player uses a 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 the player use the item.


And now, one final surprise: Telepath Tactics Liberated now officially has localization support! Note that this doesn't mean I am actually going to get it professionally localized--sales need to actually justify the cost of hiring a localization firm, and so far they unfortunately haven't. However, full localization is now technically possible, which is a far sight more possible than it was before!

Other news: you might also notice that the version number jumped from 1.0.50 to 1.0.52 with this update. That's because 1.0.51 was the launch version for GOG! That's right: TTL is now available on two different storefronts. (Very exciting, I know.) Pushing 1.0.52 to both platforms is just a way for me to keep the version numbering consistent.

[h2]The End?[/h2]

Anyway, that's all I've got for you on TTL! Maybe I'll change my mind and push another update in the future, but as of right now, this is it: the finished game. I still have so many game ideas--and limited time in which to make them real.

For more tactics in the Telepath style, make sure to check out Together in Battle! That game has been in early access for eight months now, and it just keeps getting better and better. Early issues with economic difficulty balancing have now long since been smoothed out, and TIB is starting to attain some pretty insane levels of depth and variety. If you've been hesitating to give it a try, now's a pretty good time to come on over and give it a shot! I hope to see you there. 😉


Tactically yours,

Craig

Patch version 1.0.50: The final improvements!

Greetings, strategy RPG fans! Another month, another update containing improvements to the engine from my ongoing development of Together in Battle.

Let's talk about this month's improvements. First up, we have a few AI buffs and fixes!

- improved the AI's ability to intelligently target skills with buffs and debuffs to Strength and Psy.

- the game no longer values Move Bonus (i.e. the status effect granted by Sprint or Steam Engine) positively for characters who are Immobilized or tagged as Immobile.

- fixed: when the game calculated a move onto a trap as the best move, the AI would sometimes have the unit stand totally still even as they suffered the trap's effects.

- fixed: with particularly long character movement ending in a trap, the AI could outpace itself and queue up an attack before the game was ready to launch it.


Next, we have new and improved visual effects and other miscellaneous improvements to the main campaign! These include:



- I adapted the Pierce visual effect to create a dedicated visual effect for when a unit triggers a spike trap.

- the game's handling of AddCondition/Global Lighting during battle is now much better; it now transitions to the new global lighting over a few seconds instead of immediately applying the new lighting setup.

- when changing between weather types using the same particle (e.g. Rain to Heavy Rain or Snow to Blizzard) there is no longer a delay before the change takes effect.

- fixed visual issue with snow and ash particles being stretched horizontally; they now render as intended.

- increased minimum impact damage in combat from 5 to 6.

- added a fallback for those rare occasions where the actions bar fails to reappear after a round of combat: clicking to select a character who can still move or act now forces the actions bar to show back up.

- fixed: one-shot sound effects (most notably the battle victory fanfare) were abruptly cutting off upon transitioning to a new scene. The game now gracefully fades them out instead.

- fixed: when multiple dialogue trees were queued up at once, the game was not triggering them in succession due to a mistake in the dialogue formatting process assigning all dialogue the same convID.

- fixed: the game would not allow characters to push or pull item sacks off of other destructible objects due to item sacks always being treated as last for attack priority on a space. When an item sack is on top of another object that is not pushable or pullable, knockback now affects the position of the item sack instead of the object it's resting on.

- fixed: the DamageUnitAt script action had slightly different damage ordering priority rules than a regular attack.

- fixed: Crush Res. was not being applied to mitigate impact damage from units being smashed into each other (or objects, or the edges of the map).

- fixed: Falling Res. was not being applied to mitigate Falling damage, which resulted in item sacks inappropriately taking damage when falling from heights.

- fixed: a file with crucial scripts for in-game traps and space-swapping skills had accidentally been overwritten, causing the above-mentioned skills to stop working for a few days.

- fixed: if a character's Speed was chosen to increase upon level-up it would increase by 5, not 1.

- fixed a typo in a victory bark variant for proc gen characters with the "disciplined" personality trait.

- fixed: characters had begun saying their heal barks 100% of the time instead of the normal 25%.

- fixed: the game had begun to throw null errors upon right-clicking destructible objects.

- the game now keeps track of how many seconds it's been running across all play sessions.

- laid some groundwork for future, non-Steam versions of the game.


And finally, we have improvements for campaign makers:

- new sound effect: Card Shuffle.

- new weather types supported: PetalsRed and PetalsGold. These shower the scene in flower petals (red or yellowish orange).

- new weather types supported: LeavesGreen and LeavesBrown. Causes 3D leaves (green or brown) to gradually flutter down from the top of the screen. Battle-only for now.

- Fireflies weather type is now finally supported in battle, not just cut scenes! Causes fireflies to appear, flit about the battlefield seemingly at random, and disappear a few seconds later.

- new 2D particle effects supported: FlowerBurstRed and FlowerBurstGold.

- when characters hit promotion level via the LevelUp and LevelUpArmy script actions, the game will now quietly auto-promote them to an advanced class consistent with their base class (if one exists).

- if it doesn't find a loadID match first, the SpawnUnit script action now checks characters from prior scenes by name.

- fixed an inconsistency with the way that IfValGoTo and IfValRun treated custom integer values that had not yet been set. Both now treat custom values that have not been set as equal to 0. (Previously, only IfValRun did this).

- fixed: the cut scene editor would remember the last cut scene you loaded and load its data when creating a new cut scene, resulting in the previous cut scene's narration, background, and other data showing up by default.

- fixed: upon going to the campaign editor and then returning to the title screen without the title music changing, the music would abruptly stop.


And that's about all, folks!

[h2]What's next?[/h2]

I ran some calculations earlier: it's been 8 years, 4 months, and 30 days since I first released the original Telepath Tactics. One full remake and a year and a half of free patches and content updates, and I do believe it's time to call this a wrap!

As such, this is going to be the last regular monthly update. This won't prevent me from pushing fixes if there are any nasty new bugs discovered, of course--but barring that, it's time for me to move on. I have Together in Battle to finish, I want to look into releasing Telepath Tactics Liberated on other platforms, and I have other Secret Project Ideas rattling around the ole noggin.

Thanks for your continued support over all this time--it means the world to me. I do hope you'll join me as I continue this grand adventure! The next game in the series, Together in Battle, is already a blast and something I'm immensely proud of. I hope to see you there. 😉


Tactically yours,

Craig

Patch version 1.0.49: final battle talk, AI fixes, campaign creator bonuses!

Howdy, SRPG fans! As you may know, I released the new SRPG Together in Battle into early access in April and have been updating it ever since. TIB has received a slew of new improvements over this past month and half--and because TTL uses the same engine, that means TTL is now getting an update with many of those same improvements!

Among the improvements are AI fixes, new dialogue in the final battle, new portrait assets, and more! Without further ado:

- fixed: certain characters who had unique dialogue when attacking Tarion in the final battle were not having their lines triggered due to a scripting error.

- fixed: the AI was double-counting the back cover bonus for non-Shield skills, leading to it greatly over-preferring moves that put characters' backs up against things (especially the edge of the battlefield).

- fixed: the AI was reversing the value of healing moves used on enemies without first checking to make sure that the move already assessed as having a positive value. Under some circumstances, this could cause the AI to heal the player's characters.

- fixed: a couple of AI routines were set to be excluded at the wrong AI Handicap level.

- fixed: the AI could reapply Immobilized status to characters subject to a Hold multiple times when calculating moves.

- fixed: the AI treated Levitating characters as if they had an ordinary, permanent move type of Flying for purposes of determining which spaces were safe to move them to (which could lead to situations like the AI moving Levitating characters over lava or chasms only for them to drop in at the start of the next turn).

- fixed: changes to the level-up screen code were causing the game to throw a couple of null errors when characters promoted via a Book of Power.

- fixed: pushing an enemy with reflexes into a spiked object would cause the enemy to turn and face the object. (Even worse: if the enemy had counterattacks left, they would counterattack while their back remained turned to the attacker!)

- fixed: the game was double-counting status effects that impact accuracy when displaying the accuracy of skills in tooltips.

- fixed: the game could display accuracies below 100% for mental attacks and shield skills in tooltips.

- fixed: the Talkable status effect could "run out" after 9,999 turns and had a displayed duration within character screens.

- fixed: the game would say "Talkable wore off" when removing the Talkable icon from characters.

- fix: energy regen visuals no longer appear for units under fog of war.

- fix: particle effects no longer appear when units are destroyed under fog of war.

- fix: particle effects no longer accompany units newly spawned under fog of war.

- fixed: item sacks dropping on a space covered by fog of war were visible to the player.

- fixed: attack animations for characters under fog of war would sometimes play upon the character's tile being revealed.

- fixed: the sidestab and backstab bonus from gap-seeking weapons was only being applied to base weapon skills, not to advanced skills for that weapon.

- fixed: classes with multiple species-based sprite overrides were not registering sprite overrides for all species.

- fixed: the game wasn't compensating for promoted generic characters in a weapon-dependent class generated without an equipped weapon by boosting strength or granting their default weapon skill.

- fixed: when a character without a specific counterattack gained 1 or greater Counter Limit, the game could select a skill which did no damage but did impose a status effect (e.g. Throw Voice) as the character's counterattack.


And as usual, we have new improvements for campaign makers!

- new portrait elements for custom (and proc gen) human characters! Specifically, there are six new types of noses (for a total of 17), a new type of beard, and a new bird-wing hair clip. The new noses increase the total available nose variety by more than 50% and just generally allow for a greater variety of unique-looking faces. I painted these elements myself, and am overall pretty pleased with how they turned out.

- new cut scene backgrounds!

- new music track!

- the OnTalk dialogue trigger is now more robust! The game now allows custom variables in the trigger parameters, permitting the use of specific named characters based on prior events.

- new optional parameter for the SetStringByString script action: Strip Capitalization. By default, this parameter is false; if set to true, the resulting string will be in all lowercase letters for easier parsing (e.g. for checking passwords and player-created names and such).

- fixed: when calling the script action UnitsToList in battle during deployment, the game would not check undeployed characters in the roster for the specified army.

- new AI handicap level: 11. The AI will actively avoid using lethal attacks, preferring attacks that don't finish off enemies.

- new script action: RestartBattle. Forces the current battle to restart, even if the player is playing on Ironman mode.

- the LevelUp script action now works in cut scenes.

- new stat supported in GetValByStat: True Level. Returns the character's current level combined with any hidden, pre-promotion levels.

- added documentation for read-only stats True Level, Health Left, and Energy Left to the in-game reference.

- the game now checks ahead for the correct number of parameters when running IfStat-type actions, making it more forgiving of scripting errors.

- added a new optional boolean parameter to the LevelUpArmy script action: Affect Reinforcements. If set to true, the level-up effect will be applied prospectively to characters of the chosen army who haven't spawned yet.

- when proc gen maps are created with multiple hazard terrain types, the game will now select a hazard terrain type at random from those listed.

- fixed: automatic inventory generation for generic proc gen enemies placed via the map editor was not working.

- fixed: the game was missing data for straight street edge tiles where the street was elevated above surrounding terrain.

- fixed: the game wasn't replacing script IDs with the names of unique characters in script actions within battle when the relevant characters were not already saved from a previous scene.

- fixed: items that alter the properties of character equipment would be permanently stripped of their ability to alter other items upon transitioning scenes if kept in the reserve supplies.


That's all for now, folks! If you haven't yet, definitely head on over and check out Together in Battle--it's a pretty awesome SRPG set in the same world as TTL, and it really makes use of some of the engine's fancier elements (like proc gen characters, morale, and relationship-building).


Tactically yours,

Craig

Patch version 1.0.48: AI buffs, bug fixes, and creator tools!

Hey gang! As part of the ongoing development of Together in Battle, the Telepath Tactics Liberated engine has received a slew of AI improvements, bug fixes, and campaign creator improvements!

First, let's run through the AI buffs:

- the AI now actively avoids wandering through non-player-created fire and traps.

- AI-controlled characters who walk into pressure triggers and traps that do not freeze or stun them will now continue their turns afterwards if able.

- the AI now inherently values any move that results in a character moving off of a damage-dealing space, even if the move provides no other benefit. (Previously, the only mechanism for this was triggered by the game detecting a character submerged in water or lava.)

- reduced the weighting that the AI gives to ally-buffing moves by 80%.

- fixed: the AI was not evaluating energy-draining skills correctly, checking the energy lost against total health instead of energy.

- fixed: the AI was treating energy-draining skills as effective against inanimate objects.


Next, we have a balance tweak and lots of bug fixes:

- increased the energy cost of Fury and Stimulate from 5 to 6 and reduced the duration of Strengthened and Lucid from 4 rounds to 3.

- fixed: clicking on an Immobilized character would not show the character's attack range.

- fixed: Shield skills that didn't affect health or impart a status effect wouldn't grant experience unless the target was missing health.

- fixed: OnTurn and BeforeTurn dialogue had stopped being repeatable.

- fixed: level-ups and promotions produced by items used via a character screen from within reserve supplies menu would not "stick."

- fixed: the mentalist headband portrait accessory was misaligned on one of the male human head variants.

- fixed a range error produced when enemies applied a status effect under fog of war and were then revealed (manifesting primarily as fog tiles no longer being removed).

- fixed: cosmetic bridge connections spawning below ground level on solid terrain could override the space's ordinary elevation with a lower one.

- fixed: in situations where the AI evaluated potential knockback moves that would collide the target against a damaging object (e.g. a spiked barricade), the game would actually queue up the object's counterattack.

- fixed: the CombineLists script action did not work properly when combining more than two lists at once.

- fixed: the PICKFROMLIST{} special character would never pick the last entry in the list.

- fixed: in some circumstances, the game would remove script actions queued after a Wait action in dialogue initiated via a LoadConv action.

- fixed: the game's "check ahead for conversation-ending script actions within called scripts" functionality was not interacting correctly with conditional Run-type actions (e.g. IfValRun, IfStringRun, etc.)

- fixed in 1.0.48a: a LoadConv call to dialogue that either does not exist or which had been removed due to being already used and non-repeatable would lock up the game. (The game now simply ends the current dialogue when this happens.)

- fixed in 1.0.48a: campfire objects now lay flat.

- fixed in 1.0.48a: smoke from non-flat-lying objects (such as braziers and stoves) was no longer emitting at the correct angle.

- fixed in 1.0.48b: the "AI-controlled characters who walk into pressure triggers and traps that do not freeze or stun them will now continue their turns afterwards if able" change introduced a bug wherein in larger battles (i.e. those with more than 8 characters in the enemy army), if the first enemy to go wandered into a pressure trigger, it would cause the game to freeze.


And finally, we have some goodies specifically benefiting campaign creators:

- new skills supported: Fire Breath 3, Frost Breath 3, Dark Breath 3, and Light Breath 3. These all deal damage in a cone pattern.

- the map editor now supports loading and saving a discrete defeatScene attribute for battles, allowing you to easily set a next scene dependent on the player's defeat without using conditions.

- new script action: SetDefeatScene. Sets the defeatScene attribute to a different scene for the current battle.

- new script action: PairToList. Winnows down an existing list of characters to two who meet distinct, specified sets of attribute requirements, then send their names to a new list.

- new script action: WeaponBreakageRules. Changes the rules governing weapon breakage game-wide. If Rule Type is set to Destroy, broken weapons will disappear; if Rule Type is set to Reform, broken weapons will remain but will lose all stat benefits, status effects, tags, etc., will have a sell value of 0, and will impose Strength -4, but will allow the character to keep using weapon-dependent skills.

- when Damage or Drain is affected by a SetStat action in a cut scene, the game now automatically looks for the character's portrait and--if it finds it--animates the character's health/energy bar.

- when the GiveExp action is used in a cut scene, the game now automatically looks for the character's portrait and--if it finds it--animates the character's experience bar.

- updated in-game documentation to more clearly explain what each level of the AIHandicap script action does.


That's all for this month, folks. I hope you enjoy the improvements!


Tactically yours,

Craig

Patch version 1.0.47: Buffet of improvements!

Greetings, tactics fans! It's been another month, and you know what that means: it's time for another update!

This month sees a lot of bug fixes, controller improvements, new proc gen equipment variations, new tools for campaign creators, and more. Let's get into the changes:


- in gamepad controls, rather than duplicating the left trigger's zoom function, the right trigger is now an automatic "End Turn" button.

- the game now automatically repositions the gamepad cursor when auto-panning the camera during in-battle dialogue.

- a Stone Golem throwing a character onto a space occupied by an object with "flying" passability now produces a context-dependent effect: if the character is an ally, they are thrown on top of the object as normal; but if the character is not an ally, they will now be thrown into the object instead for collision damage (and--if the object is spiked--further spike damage as well)!

- helms can now get modifiers as part of the procedural generation process!

- boosted the heat and cold resistance modifiers from insulated armor from 15% to 25% each.

- boosted the light and shadow resistance modifiers from lead-lined armor from 15% to 25% each.

- doubled the morale effect of Beautiful weapons and armor from +1 to +2.

- new possible modifier for especially high-quality weapons and armor: Gorgeous. Grants the wearer morale +4 while equipped.

- new tag type supported: Immunity. Grants status effect immunity to the tagged unit.

- reduced aggression coefficient for the Greedy AI profile.

- the game now checks for duplicate tags when generating a new skill progression for a character upon promoting or reclassing, preventing characters from reacquiring tags they already possess.

- fixed: traps and holds were not interrupting self-move skills (like the cavalier's Charge attack) as intended.

- fixed: gamepad controls were no longer functioning properly in the shop tutorial.

- fixed: the gamepad would sometimes be locked out of movement during deployment due to an internal failure to clear dialogue triggered at the start of turn 0.

- fixed: music cross-fading was not reliably playing tracks at the correct volume.

- fixed: the game could sometimes throw a range error during character promotions.

- fixed: the game would throw a null error trying to store achievement stats if not connected to Steam.

- fixed: it was possible to click another character and select them mid-combat animation, thereby messing up the game's tracking of who the current character was and causing the original attacker to get another action.

- fixed: ranged attackers could sometimes counterattack after being shoved into water or lava.

- fixed: swimming onto a land tile with a trap would not trigger the trap.

- fixed: Unity's built-in lighting system would screw up when too many lights were casting on the same object (typically in maps with lava tiles).

- fixed: the game was awarding victory spoils twice for battles with a built-in aura reward.

- fixed: the game wasn't picking portraits for promoted generic units correctly.

- fixed: the status effect immunity popup text was misformatted.

- fixed: on lower AI settings, the game was actively valuing lethal blows lower than non-lethal blows (as opposed to merely not valuing them more highly).

- fixed: on lower settings, the AI would not consider lethal blows against destructible objects a viable move at all.

- fixed: lead-lined armor was providing heat and cold resistance instead of light and shadow resistance.

- fixed: skills like Overheat could drop a character's energy into the negatives.

- fixed: destroying fire did not remove its environmental damage effect from the space.

- fixed: when fire was spawned in front of elevated terrain, its smoke particles would aggressively clip through the terrain.

- fixed: flying characters who had been Gravity-Spiked into water or lava and then swam back onto land would reemerge at the wrong elevation.

- fixed: in rare instances, 2D particles could cause the game to throw a null error.

- fixed: the game was inappropriately failing to give stone golems the tag that reduces the cost for Shove 2, and was instead giving it to them as an invalid skill at level 2.

- fixed: skills, masteries, and other things learned at specific levels (such as Book of Power mastery or the Assassin's Leap skill) would get reintroduced into a character's skill progression upon promotion, leading to that character learning a duplicate of that thing upon reaching level 2 of their promoted class.

- fixed: characters' steps taken would be reset to 0 upon promoting mid-turn in battle.

- fixed: if the skills bar was set to a character's second page of skills and they were thrown into water or lava, the game would still display their second (now blank) page of skills upon selecting them, making it impossible to command them to swim.

- fixed: the game was not recognizing player-placed Caltrops as traps for purposes of warning the player about moving their own units into them.

- fixed: proc gen characters in classes that normally have two skills at level one would start off missing their second level-one skill if they had Motivate.

- fixed a typo in the class requirements for proc gen bowmen caused the game to only select characters with a positive psy growth for the class instead of a positive strength growth, leading to many proc gen bowmen developing very little strength.

- fixed: Trade, Twirl, and Juxtapose worked on objects, not just characters. The game now gives you a pop-up message explaining why it didn't work if you try this.

- fixed: Trade worked on enemies, not just teammates. The game now gives you a pop-up message explaining why it didn't work if you try this.

- fixed: if a character attempted to use a self-move skill like Stick-and-Drag or Pull while subject to a Hold effect, it would leave the attacker in place while telling the game they were in the process of moving, eventually freezing the game as it waited for expected character movement to complete.

- fixed: when using a Book of Power in a cut scene, the user's already-open character screen would not auto-update with their new stats, skills, or class name following the promotion.

- fixed: the game would cease to display the effects of morale in the character screen if morale-altering equipment temporarily pushed the total value above 10 or below -10.

- fixed in 1.047a: characters ending a battle while swimming would have their movement type appear as swimming during deployment for the next battle.

- fixed in 1.047a: - fixed an error in the way the game checked for level-specific skills in the progression which could cause a freeze upon promoting certain characters.

- fixed in 1.047a: cross-fading music during promotions was not behaving as intended, leaving two tracks playing simultaneously.

- fixed in 1.047a: cross-fading music was causing the new track to play too quietly.

- fixed in 1.047a: faded-out music could unexpectedly start playing again during scene transitions.

- fixed in 1.047a: the game was reconnecting and spawning a brand-new instance of the Steamworks manager class every time the player returned to the title screen.

- fixed in 1.047a: level-ups and promotions produced by items used via a character screen from within reserve supplies menu would not "stick."

- fixed in 1.047a: the game wasn't accounting for the dodge bonus granted by tall grass when displaying attack accuracy upon mousing over an attack tile.

- fixed in 1.047a: the AI wasn't accounting for the dodge bonus granted by tall grass when weighing different attack options.


And finally, loads of fixes and improvements for campaign creators!

- new skill added to the engine: Mind Domination. It's essentially Mind Control, except Enthralled has a base 100% chance to take effect.

- new skill added to the engine: Mega Charge. Covers one extra space of ground and has 2x 75% chance to stun. Cavaliers have a new, corresponding animation which matches the longer charge distance.

- new skill added to the engine: Grappler Stance. Creates a Hold on a single adjacent space.

- skills which create Holds can now be targeted on spaces occupied by other characters.

- new script action supported: AddStock. Programmatically adds stock to an existing shop in the scene. Lasts until the scene ends.

- objective reticles may now be placed and removed using a character name (or ID[] tag) instead of just x and y coordinates.

- RemoveSpawn may now take the loadID parameter "Deployment" in proc gen maps to remove procedurally generated deployment spots.

- the game now recognizes Health Left and Energy Left as stats for most stat-related script actions.

- new supported text sprite: Time.

- you can now assign a percentage spawn chance to all army and object groups for proc gen maps in the map editor.

- the game now takes minimum distance rules into account when randomly placing objects and characters via SpawnUnit using -1 , -1 coordinate parameters.

- characters created with the character creator now have an appropriate babble voice set assigned to them.

- new reply type supported, cut scene only: Next Frame. Ends the current dialogue and proceeds to the next frame of the cut scene.

- new AI tag: AreaPreference. Alters the AI's calculated value for moves in which the tagged character ends their move in the named Area. You can use to nudge particular AI characters toward choosing moves that place them in specific areas of the battlefield; or alternatively, to dissuade them from pursuing moves in certain areas.

- updated usable skill icons with the new Mind Domination and Mega Charge icons.

- fixed: "duplicate dialogue branch" functionality was not working correctly in the dialogue editor.

- fixed: moving a branch downward within a dialogue tree would produce a range error.

- fixed a null error in the map editor when loading a map with a global lighting condition as its first condition.

- fixed: the Protect Char condition was not working on destructible objects.

- fixed a range error when cycling through permitted integers using a number picker in wrap-around mode via the "previous" button.

- fixed: the game did not clear the New Roster scene tag when hitting New Scene in the cut scene editor, resulting in an already-open scene's new roster carrying over to the new scene as well.

- fixed: the character creator could roll up generic units with morale above zero (i.e. neutral).

- fixed a bug in the game's battlefield generation logic that was causing counterattack-possessing objects like Spiked Barricades and Fire to cluster within two spaces of the player's deployment spots.

- fixed: the game's battlefield generator could spawn enemies on top of traps.

- fixed: players could click on the main text box during character selection branches of dialogue and it would progress to the next branch of the tree with no character selected.

- fixed: it was still possible for the AI to make proc gen spearmen use Trade all the time.

- fixed: when renaming a proc gen character, the proc gen character's generated dialogue would have their old name baked in and left unchanged.

- fixed: a typo in the game's tile data meant that the game couldn't find tiles surrounded on three diagonal corners by cave tiles and would simply leave a hole in maps where such tiles appeared.

- fixed: the game would not recognize premade characters for purposes of the AddPortrait script actions if the game hadn't already saved loaded characters at least once.

- fixed: typing the letter 'L' in the cut scene editor would still trigger the game's "save log" functionality.

- new in 1.047a: updated in-game documentation to more clearly explain what each level of the AIHandicap script action does.

- new in 1.047a: the map editor now supports loading and saving a discrete defeatScene attribute for battles, allowing you to easily set a next scene dependent on the player's defeat without using conditions.

- new script action in 1.047a: SetDefeatScene. Sets the defeatScene attribute to a different scene for the current battle.

And that's about all for this month!


[h2]What's next?[/h2]

I've been continuing to work very hard on Together in Battle, adding content, improving balance, and fixing bugs. TIB is already garnering some very nice reactions from players--I'll just highlight this one, which I particularly love:



Pretty awesome, no?

As always, I remain incredibly grateful for your support. I'll see you in the next one, folks! ;)


Yours in tactics,

Craig