1. Telepath Tactics Liberated
  2. News

Telepath Tactics Liberated News

Version 1.0.53: Quality of life improvements, bug fixes, campaign editor tools!

Greetings, tactics fans! Two further months of development on Together in Battle (and a few helpful bug reports from players like you!) have yielded some nice new improvements to the Telepath Tactics Liberated engine, along with a few campaign tweaks, lots of bug fixes, and a whole boatload of goodies for people working on their own custom campaigns. Without further ado, here is what's new and improved.

[h2]First up, we have interface and quality-of-life upgrades:[/h2]
  • improved auto-move-and-attack behavior: the game now heavily favors skills that do not require the character to move further to use. (That is: if the target is already in a skill's range when auto-move-and-attack is used, the character should now generally stay in place and use that skill instead of moving positions to use a different skill.)
  • in the shop, when mousing over equipment, the game now tells you the biggest reason why each character who wants that piece of equipment wants it--and if that reason happens to be an increase to a stat, the game shows you how much that stat would increase.


  • for moves smashing an enemy up against the edge of the map, the collision damage preview now displays the collision just off the edge of the map instead of layering it under the ordinary damage reticle.

[h2]There are also a variety of balance tweaks, optimizations, and other miscellaneous improvements:[/h2]
  • objective reticles are now placed around all of the fruit trees on the first turn of Out of Food Battle.
  • updated the fruit tree sprite so that it has a different silhouette from the regular tree, making it easier to spot (especially for colorblind players).
  • removed the turn 24 and 28 reinforcements from the Battle with Ebon Raban when playing on difficulties below Veteran.
  • added an "Unlocked!" pop-up message to the steel door when pulling the lever in the Coria Dogs Ground Floor battle.
  • implemented a virtual keyboard! The game now fully supports input text fields with gamepad (not used in the main campaign, but usable in player-created campaigns).
  • status effect immunity messages now only pop up if the target is a character. (The player doesn't really need to hear about how boulders and trees are immune to, say, Blinded or Enthralled status.)
  • AI improvement: enemies can now path their way through closed doors, opening the doors as they move!
  • AI improvement: CPU-controlled characters will no longer wander into campfires.
  • the level-up screen now has an animation for when characters learn new counterattacks.
  • switched the game's internal operate() function over from if-else statements to a switch statement for increased performance.
  • did a bit of code optimization for when the game checks for whether spaces are solid land.
  • improved end credits scrolling behavior. Instead of automatically skipping to the entire next scene, clicking now increases the scroll speed by nearly 10x while the button is held down, and advances to the next scene only when scrolling is completed.
  • added the number of the current save slot to generated log files.

[h2]There are a whole lot of bug fixes:[/h2]
  • FIXED: the gamepad navigator code could sometimes fail to enable navigation to some of the reply buttons in dialogue branches with multiple responses once the reply options finished fading in.
  • FIXED: the flashback cut scenes had ceased to advance to the next frame upon ending cut scene dialogue due to changes made to fix unintended behaviors in the engine for Together in Battle.
  • FIXED: clicking on a bridge or on stairs while moving in exploration mode would cause the selected character to move adjacent to (rather than onto) the clicked object.
  • FIXED: when ending dialogue in exploration mode, the game would select the next character in the army rather than re-selecting the last selected character.
  • FIXED: the land movement sprite had become misconfigured in movement tiles during Exploration Mode due to changes adding localization support to the game.
  • FIXED: shoving an object while in exploration mode could result in the game displaying that object as the current selected unit in the actions bar.
  • FIXED: null error that could occur when clicking to use a triggerable object when in exploration mode.
  • FIXED: in some circumstances, the animation for dropping a flyer into water or lava could play much too slowly.
  • FIXED: if Heavy status wore off while a flying character was dunked in water or lava, they would immediately return to flying movement. Now, they must instead swim to shore first.
  • FIXED: flyers who were dunked into water or lava by virtue of being Heavy would, upon swimming to an adjacent tile of liquid terrain after Heavy status wore off, immediately resume flying. Such units must now swim back to land (or a bridge tile) to recover Flying movement.
  • FIXED: the AI could have characters inflicted with Immobilized status use Swim when in water or lava.
  • FIXED: when shown in battle, the info bar was layering on top of UI elements that should have taken priority over it.
  • FIXED: when shown in battle, particle effect velocity for the info bar was not scaled properly.
  • FIXED: choosing a particular set of particle effects did nothing for Create skills.
  • FIXED: the game was leaving the "talking" symbol visible on the last speaker portrait when transitioning to a new dialogue branch with no speaker.
  • FIXED: character dialogue would animate, with accompanying babble sounds, even as a report covered the dialogue menu onscreen. In a branch with a ShowReport action, the game now initiates dialogue animation and babble sounds only after the report is closed.
  • FIXED: the game could sometimes overwrite proc gen equipment materials values with old placeholder values, resulting the game not loading material names correctly and therefore failing to generate the correct names for weapon and armor images.
  • FIXED: localization-related changes to the code over the past few months caused the game to stop displaying the name of the status effect in "[Status effect] wore off" pop-up messages.
  • FIXED: using the StopMusic script action and then resuming the track that was playing prior to StopMusic with PlayMusic would not work, as the game would think that track was already playing.
  • FIXED: in rare circumstances, the game could produce a range error trying to place an enemy with exceptionally long range on a proc gen battle map without enough space to get them outside of enemy range.
  • FIXED: when finishing deployment in a map with both a Fog of War condition and a Go First condition for any army other than the player, the game would reconfigure fog of war to reflect the perspective of whichever army went during the first turn, thereby inappropriately revealing hidden areas of the map to the player.
  • FIXED: in some cases, the game running and then closing dialogue with an OnReachingArea trigger in the middle of an AI turn could cause the game to tell the AI that none of its characters had moved or acted yet, resulting in them taking multiple turns.
  • FIXED: the game could freeze if character movement mid-combat sequence (e.g. with a skill like Charge) brought a character into an area of the map that triggers OnReachingArea dialogue.
  • FIXED: during OnCharAttacked dialogue where the speaker's name was set via the -ATTACKER- special character, the game was leaving the resulting unique ID in place in lieu of the attacker's name.
  • FIXED: in some circumstances where a unit took a long time making a move on the battlefield destined to be interrupted by a trap, the game would start calculating the next move for that unit before the move was finished, without taking the trap's effects into account.
  • FIXED: missing-space typo due to localization implementation in the reserve supplies screen when asking the player if they want a character to automatically equip multiple new equipable items.
  • FIXED: narrowing down a tag by its parameters for RemoveTag was only working in cut scenes, not battles.
  • FIXED: using RemoveTag to strip a unit of its scriptID would remove the tag, but not the associated scriptID marker used to find it by the game.
  • FIXED: binoculars had stopped working due to a bug fix from a prior update.
  • FIXED: the area preference tag wasn't being applied to long-term moves that caused the character to stop within the named area on their way to a destination outside the area.
  • FIXED: under circumstances where the AI was controlling more than 8 characters in the same army, if an AI-controlled character in that army died on its own turn (typically from an enemy counterattack), the AI would inappropriately skip the turn of the next character in order.
  • FIXED: it was possible for the game to trigger the top AI move twice if scripted character movement occurred at the start of the enemy turn.
  • FIXED: units afflicted with the Frozen status effect could nonetheless regain energy on their turns.
  • FIXED: prior fixes had once again broken the game's ability to pick out the correct unit for displaying the talk symbol and producing unit babble in battle when multiple units shared its name (even when using a script ID in place of a name).
  • FIXED: the deployment screen would show the option to switch to a second (empty) page of characters if the player's roster was exactly 18 units in size.
  • FIXED: the reserve supplies screen would show the option to switch to a second (empty) page of characters if the player's roster was exactly 18 units in size.
  • FIXED: the title screen news ticker would not reappear after returning to the title screen from playing the game.
  • FIXED: an over-long delay between news items in the title screen news ticker.
  • FIXED: alignment on the floor button destructible object.
  • FIXED: the Crickets and CricketsAlt loops were not looping cleanly.
  • cleaned up the "Grab" sound effect a bit.
  • FIXED in 1.0.53a: the game could freeze when calculating knockback attacks for the AI.
  • FIXED in 1.0.53b: stairs were having their elevation commands applied twice in battle and exploration scenes, causing them to float above the ground in some cases.
  • FIXED in 1.0.53b: AI-controlled characters would not open a closed door during their move onto the door's space if that space happened to be the last space in their move.
  • FIXED in 1.0.53b: triggering an on-death attack for a destructible object (such as Explode) would not grant experience to the character who destroyed the object and triggered the attack.
  • FIXED in 1.0.53c: the code to make sure enemies don't end their turns walking onto a closed door without opening that door could cause a range error during other enemy moves.
  • FIXED in 1.0.53d: objects and non-player armies were sometimes not appearing when procedurally generating maps in the map editor.

[h2]And for people working on their own campaigns in the campaign creation suite, I have a whole slew of new goodies to play with as well:[/h2]
  • new map tileset added to the game: Castle Sandstone! (It's the same as the Castle tileset, but sandstone-colored.)
  • a bunch of new cutscene backgrounds!

[h3]New destructible objects[/h3]

  • jugs and planters! These come in multiple varieties.
  • trapped chests! These come in two varieties: chests trapped with poison needles and chests trapped with explosives.
  • modular rugs! These are variants of the Rug object that lay flat on the floor, below move and attack tiles, and seamlessly connect together to create rugs of arbitrary size and shape.
  • new item button and skill button graphics!
  • new sound effects and sound loops!
  • when calling LoadConv, the new conversation keeps the existing trigger character and secondary character of the prior dialogue or script by default.
  • new script action: KnockbackUnit. Pushes the unit in a specified direction for a specified number of spaces, as if they'd been shoved or subjected to a kinetic gust. Three parameters: unit name, direction, and number of spaces.
  • new script action supported: NextFrame. Automatically ends any dialogue that may be open and advances to the next frame of the current cut scene.
  • new operation type supported for SetVal and its ilk: abs. Sets the custom value equal to the absolute value of the operand.
  • added multiple-operations support to the SetStat script action. (For instance, you can now call SetStat/Alan Basilleaf,Health,+:10,*:2,c:50 all in one go.)
  • added parameter count error-checking to a bunch more script actions.
  • new tag used to affect randomized battlefield placement: AvoidOwnArmy. This causes the game to weight placement of the tagged unit so that members of the unit's own army are treated as enemies, enforcing minimum distance rules.
  • new tag used to affect randomized battlefield placement: AvoidArmyObjects. This causes the game to weight placement of the tagged unit so that destructible objects belonging to various armies are treated as characters, including them when calculating minimum distances.
  • new after-attack type supported: "Can Attack." The character can continue using other skills, but can no longer move.
  • the runScripts attribute for items can now contain custom script parameters! Just like with the Run script action, add a comma, a parameter name, a second comma, and then a parameter value to pass a parameter to the script that gets run.
  • reworked the Generate Map window of the map editor to make better use of space and support more object groups per map.
  • the map editor will now let you select more than just 2 terrain tilesets and more than just 1 hazard tileset in the Generate Map window.
  • added "force spawn distance from player" support to characters and destructible objects in proc gen maps.
  • the map editor successfully loads and saves the "forced spawn distance from the player" attribute of army groups and objects in proc gen maps.
  • added "force spawn distance from player" fields for destructible objects to the Generate Map window of the map editor.
  • the game now properly supports stairs which appear to lead down below the map; there is a now a "StairsDown" variant of all existing stairs objects.
  • improved proc gen map logic for placing stairs (they can now only be placed at elevation 1, and not adjacent to environmental hazards).
  • the game's procedural map generator can now generate bridges across large stretches of hazard tiles, not just one-tile gaps.
  • the game's procedural map generator can now generate bridges across gaps between cliffs.
  • fixed: on rare occasions, the proc gen map algorithm could generate more than one bridge tile on the same space.
  • fixed a range error that could occur when generating spawn positions for destructible objects in proc gen maps.
  • improved the game's detection of premade unit load IDs (as opposed to actual class names) for army group units in proc gen maps.
  • fixed: upon loading proc gen maps, the map editor would strip out colons from any premade unit load IDs within army groups.
  • right-clicking a destructible object present on the battlefield in the map editor now works like right-clicking open terrain, initiating a camera drag-pan.
  • fixed: the map editor was not setting terrain check boxes correctly within the Generate Map window of the map editor to match the sets used by existing proc gen maps upon loading them.
  • fixed: loading a dialogue tree containing a NewScene action in branch 0 within a frame of the cut scene editor would cause the game to actually load the new scene within the editor.
  • fixed: when cloning a unit in the campaign editor, the editor would add an attribute called "nodeCategory" to the cloned unit, thereby causing the engine to not be able to parse the XML file containing all of the custom campaign units and seeming to wipe out the units list.


That's all for this update, folks! Thanks so much for your continued support. If you're enjoying the game, I do hope you'll leave a review--it means the world to a solo developer like myself.

Also, make sure to come follow along on social media! The Sinister Design Discord is small but friendly, filled with the sort of people who love to discuss tactics, debate which characters are best, or just give helpful advice. Until next time!


Tactically yours,

Craig

Telepath Tactics is part of Remote Play Together!

Hi everyone!

We're excited to share that Telepath Tactics is part of the Remote Play Together event on Steam!

Sync up with a friend and play games together while celebrating the Remote Play Together event from February 12th to the 19th. Check out the event page here to discover some other great couch co-op games you can play with friends anywhere!



Additionally, Telepath Tactics will be 40% off through the event so now is a great time to dive in with a friend!

If you've already got the game, we would love to see your honest thoughts on the game with a Steam review and have you join our Discord community. Reviews can make a huge different for indie games and we love seeing what you think!


https://store.steampowered.com/app/1849820/Telepath_Tactics_Liberated/

Official Publisher Announcement!

Great tidings, SRPG fans! I'm thrilled to share my latest news with you –

[hr][/hr]
[h3]Telepath Tactics Liberated is officially joining forces with Freedom Games![/h3]

[hr][/hr]
For those of you who may not know, having a game publisher like Freedom Games greatly help solo devs like myself focus on game development while they handle all the behind-the-scenes magic. From helping manage store pages to crafting marketing campaigns and even helping the game shine at both digital and live events, publishers help in all the aspects that indie developers often struggle with.

You may be concerned about horror stories of publishers ruining a developer's vision of a game or forcing arbitrary restrictions on the dev team. Luckily, Freedom Games has assured me complete creative control--they are only handling marketing and business development. (Which, let's be honest: those things have never been my strong suit.)

Between their experience publishing Dark Deity and Symphony of War, I'm confident that they'll do a good job getting this game in front of a larger audience.

[hr][/hr]
https://store.steampowered.com/app/1849820/Telepath_Tactics_Liberated/

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