The Sinister Design Forums

Games => Telepath Tactics => Topic started by: CraigStern on February 11, 2013, 06:19:44 PM

Title: Developer's Log
Post by: CraigStern on February 11, 2013, 06:19:44 PM
So! I've been keeping a developer's log over on the TIGSource forums (http://forums.tigsource.com/index.php?topic=14260.0) for quite some time now. While that's been useful to me in terms of getting the word out and getting feedback from other developers, I'd like to transition back to posting regular updates about development here on the Sinister Design forums instead.

To start with, I'll post this new video showing off the early days of character attack animations. In this video, we see the Bowman and Cryokineticist with attack animations (minus projectiles):

(http://i62.photobucket.com/albums/h96/craigstern/WIP%20Screenies/TTTeaser11_zpsee07d447.png) (http://youtu.be/VIYtZ3zQcHc?hd=1)
Title: Re: Developer's Log
Post by: CraigStern on February 12, 2013, 09:09:21 PM
More attacks are on the way soon! ;)
Title: Re: Developer's Log
Post by: CraigStern on February 13, 2013, 07:50:35 PM
The swordsman's melee and double strike attack animations are now in the game! More are on the way.

Meanwhile, I'm tinkering with the game's values to make the attack animations sync up better.
Title: Re: Developer's Log
Post by: CraigStern on February 14, 2013, 09:44:50 PM
The Cavalier's Lance animation and Psy Healer "cast" animation are now in the game. ;)
Title: Re: Developer's Log
Post by: CraigStern on February 16, 2013, 01:47:16 PM
I've finished adding a new dialog trigger into the game, OnCharAttacked. This one works just like OnCharDeath, but it triggers before an attack is launched. It specifically looks for a non-Shield attack launched by an opponent, so you shouldn't accidentally trigger it by healing a character. Good for boss taunts! I'll be adding some more variations on this in the future as needed.

Right now, I'm finishing up creating a promotional video for the Indie Megabooth. Suffice it to say that I'll be talking more about that soon. ;)
Title: Re: Developer's Log
Post by: CraigStern on February 17, 2013, 08:24:20 PM
Yesterday and much of today was devoted to capturing video for the Indie MegaBooth promo video. I'm not sure how much of it they're going to use, but I'll be posting the full thing here a little later.

The rest of today was devoted to bug fixing and interface tweaks to improve the overall experience of play. Among other things, I created a placeholder dialog box graphic, which you can see below. (I was sick of staring at that ugly beige box; I think it'll help the Kickstarter to have less obviously placeholder-y graphics in place throughout the demo.)

Title: Re: Developer's Log
Post by: CraigStern on February 18, 2013, 09:24:04 AM
So! I've been working on the interface for Telepath Tactics some more. The latest improvement is that the attacks bar is now draggable, and remembers the location you last left it onscreen. Another improvement: the bar's background is now "see through"--not just visually, but in terms of mouse interactions as well. You can now mouse over and click stuff being blocked by the bar, in other words, so long as it's a portion of the bar without a button.

I'm strongly considering changing the attack bar into a box and moving all of the action buttons into it. Put another way, I'm moving back toward something like the GUI window from Telepath RPG: Servants of God, albeit one that you can position more flexibly. It's weird to end up back with using the GUI window, but it seems to represent the best compromise between ease of use and minimal screen clutter that I've managed to find so far.
Title: Re: Developer's Log
Post by: CraigStern on February 19, 2013, 11:03:47 PM
The new GUI window is in-game and working; I created a quick video to show it off. Take a look!

(http://i62.photobucket.com/albums/h96/craigstern/WIP%20Screenies/Teaser12Thumb_zps46c8666c.png) (http://youtu.be/e0p5CvFy6Ig?hd=1)
Title: Re: Developer's Log
Post by: CraigStern on February 21, 2013, 09:34:42 AM
So! Artist Benn Marion has put some finishing touches on the game's title screen art (http://sinisterdesign.net/blog/wp-content/uploads/2012/04/Telepath-TacticsTitle-Screen-750_499.png), and I've updated the game with said art. It looks much improved, I think!

I'm currently in the middle of adding in a feature where you can display the current value of a custom variable within game dialog, which should prove pretty darn handy for giving the player information about the state of the game. I'll post more about that feature when it's done.

(http://sinisterdesign.net/blog/wp-content/uploads/2012/04/Telepath-TacticsTitle-Screen-750_499.png)
Title: Re: Developer's Log
Post by: CraigStern on February 21, 2013, 04:38:06 PM
Custom variable values displayed in dialog is now working. From the manual:

Quote
typing -VAL:Blah- will replace “Blah” with the value of a custom variable; obviously, you'll be typing the name of an actual custom variable there, not Blah (unless you created a variable named Blah for some reason). If you haven't set a variable by that name yet, the game will just display a 0 by default.

Usage example:  You have -VAL:Money- gold left will read as “You have X gold left,” where X is the value of the custom variable Money. If Money is currently 55, for instance, the dialog will read “You have 55 gold left.”
Title: Re: Developer's Log
Post by: CraigStern on February 22, 2013, 07:08:28 AM
I stayed up late last night reworking the code that sets the pan boundaries for maps; it now does not permit you to pan beyond the edge of the map when in fullscreen mode. If your screen is wider or taller than the map, it will center the map onscreen and not allow panning in that direction. This has done a lot to reduce the intrusive, empty black space at the edges of maps that people were complaining about.
Title: Re: Developer's Log
Post by: CraigStern on February 22, 2013, 04:45:14 PM
The 6' vinyl banner for the PAX East booth has arrived! I am inordinately excited about this. :D
Title: Re: Developer's Log
Post by: CraigStern on February 22, 2013, 05:53:25 PM
Telepath Tactics now supports the creation of ice bridges! Hit an empty water tile with a Cold element attack to create an ice bridge on that spot. Ice bridges are brittle, and will be destroyed instantly by Heat or Crush attacks; otherwise, however, they can be useful for traversing waterways if you don't have an Engineer handy.

Click below for a video!

(http://i62.photobucket.com/albums/h96/craigstern/WIP%20Screenies/IceBridges_zpsa2d541c7.png) (http://youtu.be/X0Vny1kssTc?hd=1)
Title: Re: Developer's Log
Post by: CraigStern on February 23, 2013, 07:26:20 PM
I fixed a few bugs this morning, but otherwise spent all day (and I do mean all day) recording and editing footage to put together an updated "What is Telepath Tactics?" trailer. This is the result: http://youtu.be/ZEpqPTRj4ao?hd=1 (http://youtu.be/ZEpqPTRj4ao?hd=1)  Time to go eat a brownie or something.

(Unrelated: I just went back and watched this (http://youtu.be/1SxruiVvelg). Holy cow--what a difference a year makes!)
Title: Re: Developer's Log
Post by: CraigStern on February 25, 2013, 11:58:16 AM
The February monthly update for Telepath Tactics is up on the main page (http://sinisterdesign.net/telepath-tactics-february-2013-update/)! Go ahead and check it out. ;)
Title: Re: Developer's Log
Post by: CraigStern on February 25, 2013, 06:05:12 PM
I've made some improvements to the Telepath Tactics undo stack:


The second one, being able to undo after you accidentally end a character's turn, makes me feel better about keeping the "Done" button in the game. (Before, there were way too many cases of people accidentally clicking it when they want to keep using a character.) I might still add a confirmation dialog after clicking on that, though.
Title: Re: Developer's Log
Post by: CraigStern on February 25, 2013, 10:30:59 PM
Finished up the Indie Megabooth press kit, and fixed a couple of bugs before going to bed. I am tired and have a headache, but at least today was productive! I'm hoping to get even more done tomorrow. We'll see how it goes...
Title: Re: Developer's Log
Post by: CraigStern on February 26, 2013, 03:01:47 PM
Update! Enemies now attack objects you've constructed if they don't have any other, higher priority targets to go after. The major takeaway from this is that you can no longer just wall yourself in with barricades and keep the computer at bay indefinitely--if there is no other way for the computer to get at you, it will bust down the barricades. ;)

Also: I believe I may have fixed the bug that occasionally caused the game to freeze when CPU-controlled characters used items. I'll have to test further to make sure.
Title: Re: Developer's Log
Post by: CraigStern on February 28, 2013, 12:15:26 PM
I didn't have too much free time yesterday, so most of what I got done concerned perparations for the upcoming Kickstarter campaign (including posting this (http://www.kickstarter.com/projects/1426761469/telepath-tactics/posts/415514?ref=SinisterDesignForums)).

Today, I just got the final draft of the fabulous, generic "use ability" animation for the Swordsman. Check it out!
Title: Re: Developer's Log
Post by: CraigStern on March 03, 2013, 09:59:25 AM
This weekend has mostly been devoted to finding and fixing bugs. I've just updated the public demo--it now has the new interface, and should hopefully have all of the AI freezing bugs addressed.
Title: Re: Developer's Log
Post by: CraigStern on March 03, 2013, 12:53:06 PM
Just added some wish list items into the scripting system:

GiveExp - Character Name , Amount - gives the named character experience points equal to the amount specified.
PlayAnim - Character Name , Animation - animate a character sprite.
SpawnParticlesAt - ParticleType , y , x - add particle effects to the battlefield.

I have two more I want to add:

ClearInv - Character Name - removes all items from the character's inventory.
ChangeSprite - Character Name , New Literal Class Name , New Unit Class Name - permanently change a character's class.
Title: Re: Developer's Log
Post by: CraigStern on March 03, 2013, 05:28:00 PM
ClearInv and ChangeCharClass are now in the game. 

ClearInv is for moments where a character's equipment has been stolen, or they've been gone for a long time, or--for whatever reason--you want to pull a do-over on their inventory.

ChangeCharClass (which I was previously calling ChangeSprite) actually changes a character's class. For the moment, this is a purely cosmetic thing that changes the way the game refers to the character's class and potentially changes the character's sprite as well. In the future, however, once I add in the ability to manipulate character stats through scripts, this will allow you to have characters promote to more advanced classes, or simply switch classes entirely.

Also: I've added in placeholder graphics for replies in dialog to match the placeholder dialog box graphic. ;)


Here's a video showing most of this stuff in action. (http://youtu.be/spqC8KKD5D0)
Title: Re: Developer's Log
Post by: CraigStern on March 04, 2013, 07:35:44 PM
Currently adding the ability to check and modify character stats via dialog script. ;)
Title: Re: Developer's Log
Post by: CraigStern on March 04, 2013, 08:28:20 PM
Okay--that was actually much less of a pain in the butt than I was afraid it would be. I just borrowed a lot of the methodology I used for the functions allowing you to check and modify custom variables, but linked the results to actual character stats.

IfStatGoTo - Character Name , Stat , Operation , Amount , Branch - checks a character's stat against an amount via an operation ( = , > , < , >= , <= ); if there's a match, it advances the conversation to the specified branch. Potential stats you can check in this way:

Level
Exp - experience points.
Damage - health lost.
Health - current health.
Max Health
Drain - energy below maximum.
Energy - current energy.
Max Energy
Strength
Psy Power
Psy Defense

Steps Left - steps remaining that character can move.
Speed
Accuracy
Dodge

Counter Limit - maximum number of counterattacks a character can perform per turn.
Perception - spaces the character can see through fog of war.
Pierce Res.
Slash Res.
Crush Res.
Mental Res.
Heat Res.
Cold Res.
Light Res.
Shadow Res.
Poison Res.

Done - 0 if a character can still act, 1 if it can't. (If it's another player's turn, then this is a legacy value from the character's owner's last turn.)
Attacked -0 if it hasn't launched an attack of type "EndTurn" or "CanMove", and 1 if it has. "Unlimited" attacks don't affect this.
Countered - number of counterattacks launched since start of character's last turn.

SetStat - Character Name , Stat , Operation , Amount - takes a character's stat and performs an operation on it ( = , + , - , -- , * , / , % ) using a specified amount. You can modify any of the stats above except for Health and Energy; use Dmg and Drain to affect a character's current health and energy stats.

Note that any modifications you make in this way are permanent, and will affect the character going forward in the campaign. (This does not apply to Dmg, Drain, Done, Attacked, Countered, or Steps Left.)
Title: Re: Developer's Log
Post by: CraigStern on March 04, 2013, 09:54:46 PM
And now, you can display character stats in dialog! ;) Just use this format: -STAT:Character Name,Stat-

So, for instance:

-STAT:Emma Strider,Strength-

will be displayed as whatever Emma Strider's current Strength is. (At the start of the game, that's currently 7.)
Title: Re: Developer's Log
Post by: CraigStern on March 05, 2013, 11:56:07 AM
I was getting a little frustrated with the uneven progression of character leveling in Telepath Tactics, so I made some changes. Sometimes a character would gain 2 Strength in a single level; other times, they'd gain 6% Dodge or something else not comparably useful. It occurred to me that progression in Fire Emblem is fairly even because characters never gain more than 1 pt in any given stat on level-up. So now I've implemented a similar limit: you still gain in two randomly-chosen stats on level-up, but now they will always be different stats.
Title: Re: Developer's Log
Post by: CraigStern on March 07, 2013, 09:14:53 PM
Sorry for going silent for a few days, folks; I've been very busy preparing for the Kickstarter campaign. It launches in just 7 days! I've just submitted the page to Kickstarter so they can approve the project--once that happens, I'll be free to launch it whenever I like. (That'll be March 14th.) ;)
Title: Re: Developer's Log
Post by: CraigStern on March 10, 2013, 05:28:20 PM
Updates! The project has been approved, and the Kickstarter page itself is 99% complete.

I managed to sandwich in some time today to redo the fog of war code; it's now simultaneously a lot more efficient and a lot less buggy. ;)
Title: Re: Developer's Log
Post by: CraigStern on March 12, 2013, 08:11:14 PM
Updates! Yesterday, I fixed a bug in the fog of war, but mostly spent the day on marketing and preparations for the Kickstarter and PAX East.

Today, I took some time to update the alpha demo in preparation for the Kickstarter launch. I've added in a mechanic where some enemies drop money. At a certain point in the demo, you'll encounter Mad Aziz--if you've collected enough money, you'll have the option to hire one of four mercenaries from him to join you in subsequent battles.
Title: Re: Developer's Log
Post by: CraigStern on March 13, 2013, 06:30:27 AM
The Mad Aziz encounter revealed a few bugs in the dialog system; those are now all fixed.

I don't know why I didn't realize this sooner, but it turns out I can't use greater-than or less-than symbols. It screws with the game's ability to parse XML tags (which are, of course, enclosed in < and > brackets). So I've changed the OnVal and OnStat triggers, as well as the IfValGoTo and IfStatGoTo actions, to use g instead of >, and l instead of < for greater than and less than, respectively. (Likewise, the game now takes g= instead of >= and l= instead of <=.)
Title: Re: Developer's Log
Post by: CraigStern on March 13, 2013, 08:48:04 PM
Items already support adding or ending multiple status effects by delimiting the different status effects with a forward slash. (endsStatus="Burning/Frozen", for example, would end both Burning and Frozen status effects.)

However, I had forgotten to add this same feature to the grantsAttack attribute. No longer! An item can now grant multiple attacks at once; just separate the attacks with a forward slash.


I've also created a new enemy type for the demo, the Bandit Sniper. Snipers are basically bowmen that use a long-range arched shot. 

The arched shot is meant to behave like artillery fire: it can hit up to 5 squares away (6 if the attacker is on the high ground), and is not constrained to the four cardinal directions. This creates zones of danger for an attacking player, to force him or her to deal with enemy snipers quickly rather than just hanging back.

The disadvantages to arched shot: it costs energy, it ends the turn after use, it cannot deal backstab damage, it has a built-in 40% chance to miss, and it can't hit anything within two squares of the attacker.

In short: it's purely for putting pressure on a player that refuses to advance quickly. It is no replacement for normal bow attacks.
Title: Re: Developer's Log
Post by: CraigStern on March 14, 2013, 04:27:56 AM
I've launched the Kickstarter (http://The Telepath Tactics Kickstarter has launched! Go go go! :D http://www.kickstarter.com/projects/1426761469/telepath-tactics-a-strategy-rpg?ref=SinisterDesignForums), and updated the public alpha demo! :D
Title: Re: Developer's Log
Post by: CraigStern on March 25, 2013, 09:55:25 PM
I've added in some new battle conditions I'd been itching to put in the game:

Title: Re: Developer's Log
Post by: CraigStern on April 07, 2013, 08:24:15 PM
I took some time over the past few days to add in some new things!


More to come!
Title: Re: Developer's Log
Post by: CraigStern on April 07, 2013, 09:03:19 PM
Just added: you can now create tiles that heal or restore energy to characters who stand on them. ;)
Title: Re: Developer's Log
Post by: CraigStern on April 09, 2013, 10:02:19 PM
When creating a new attack, if it isn't of the element Create, the game now takes whatever you put in the creates attribute as a sign of what you'd like to replace the attack's target with if it dies.

For instance: if you create an attack called Petrify and stick "Boulder" as the value for the creates attribute and "Objects" for the createdOnTeam attribute, any enemy killed with that attack will be replaced with a Boulder.

Another example: if you create an attack called Zombify and stick "Walking/Dead" as the value for the creates attribute and "MyTeam" for the createdOnTeam attribute, any enemy killed with that attack will be replaced with an instance of the enemy type named Walking/Dead, under the command of the attacking character's team. ;)

Note: you cannot have attacks that turn objects into things other than objects. If you destroy an object with the Zombify ability, for instance, it will not spawn Walking Dead. But you can Petrify a chair.

Note: if you put anything in createdOnTeam other than Objects or MyTeam, the game will spawn the replacement on the same team as the target that was just killed.
Title: Re: Developer's Log
Post by: CraigStern on April 10, 2013, 06:59:45 AM
A quick extension to the "create on death" feature above: rather than typing a particular class or character name for the creates attribute, you can now type "-CLONE-" to have the game instead create a a new copy of whatever the character originally was. (If you want that particular character to come under your command, for instance.)

Example: say that for Zombify, instead of sticking "Walking/Dead" in for the creates attribute, you put "-CLONE-"; any character that died from Zombify would respawn as the same character, but under your control (because createdOnTeam is set to "MyTeam".)
Title: Re: Developer's Log
Post by: CraigStern on April 15, 2013, 09:04:55 PM
Took some time this evening to add a feature that's been requested a few times: scoring player performance over the course of a battle.

Now, we all know that the previous Telepath titles kept track of casualties, and that this would impact the player's gold bonus after battle. I've decided to create something a little more sophisticated this time around, however. During each battle, the game now tracks all of the following for each player:


At the end of battle, it will assign you a score as follows:


So! Let's say you win a battle in 7 turns, kill 10 enemies, lose 1 character, grab 2 items, drop 3 items, and deal exactly as much damage as you take. That's 100 + 200 - 40 + 20 -30 - 63, for a final score of 187.

The computer opponent will get its own score as well for the battle. Assuming that its characters did not grab or drop any items, it ends up with 0 + 40 - 200 -63, for a final score of -223.
Title: Re: Developer's Log
Post by: CraigStern on April 16, 2013, 12:58:42 PM
I have added four new dialog actions to the game, two to supplement SetVal and two to supplement SetStat. Both SetVal and SetStat require you to specify both an operation and a specific number to use in the operation. The following actions allow you to specify either a custom variable value or a character stat value to use for the "amount" parameter instead:

Title: Re: Developer's Log
Post by: CraigStern on April 16, 2013, 09:13:28 PM
New script action: AddObjectiveReticle! This will stick a reticle onto a battlefield space that you specify for purposes of letting the player know where important location-related objectives are on the battlefield.

AddObjectiveReticle -- y coordinate , x coordinate , reticle color (in hexidecimal format)
Title: Re: Developer's Log
Post by: CraigStern on April 19, 2013, 10:34:56 PM
As I have some downtime waiting for Amazon Payments to finish doing its thing, I'm adding a new feature to Telepath Tactics: equipment! Equipment wasn't a necessary feature in multiplayer, but I have a hunch that folks are going to want it in single player.

Supported equipment slots: weapon hand, off hand, head, neck, torso, back (for cloaks /capes), feet, and one miscellaneous "accessory" slot.

You create equipment the same way you create ordinary items, but instead of making its useability type "triggered" you will instead use one of the following: "Weapon Hand" , "Off Hand" , "Head" , "Neck" , "Torso" , "Back" , "Feet" , "Accessory". When giving equipment to a character using the GiveItem script action, you can have the game auto-equip it by adding a third parameter, equip. For instance, this will give Emma Strider an Iron Sword and auto-equip it:

<Action>GiveItem/Emma Strider,Iron Sword,equip</Action>
Title: Re: Developer's Log
Post by: CraigStern on April 21, 2013, 03:35:03 PM
Within any given map, you can now use the -E- notation to have a character spawn with the associated item in its inventory equipped.

This is the ordinary map notation for spawning an enemy with an Iron Sword and Bandages in its inventory:

Code: [Select]
<Unit>0,1,Sabrina/Strider,1,6,Down,Iron Sword/Bandages</Unit>
And this is how you can now tell the game to have that character spawn with the Iron Sword already equipped:

Code: [Select]
<Unit>0,1,Sabrina/Strider,1,6,Down,Iron Sword-E-/Bandages</Unit>
Title: Re: Developer's Log
Post by: CraigStern on April 21, 2013, 07:46:06 PM
The game now remembers which items each character has equipped at the end of each battle, and auto-equips it at the start of the next battle.

When an item is unequipped, the game now automatically removes any attacks dependent on that item.

Attacks now have a new attribute called dependsUpon; this keeps characters from using weapon-dependent special moves when they don't have the appropriate weapon equipped. It works by telling the game when an advanced physical attack relies upon the character being able to execute the basic version of the attack first.

So, for instance: if a character knows Double Strike (an advanced sword attack with dependsUpon set to "Sword"), the game won't actually make Double Strike available to use unless the character is able to use Sword as well.

For attack dependency to work in this way, the character must not have the basic attack as a natural attack! Otherwise, the character will simply be able to execute (for example) Sword and all of its dependent attacks regardless of whether the character has the appropriate weapon equipped. If you want to make types of attacks dependent on equipment, make sure each of the basic physical attacks (Sword, Spear, Mace, Bow, etc.) is available only through the grantsAttack attribute of equippable items of the appropriate type.
Title: Re: Developer's Log
Post by: CraigStern on April 22, 2013, 05:14:50 AM
Items now have a new attribute: requirements. This tells the game which characters can use (or equip) this item. There are three requirement types: race, class, and level. An item may use any combination of the three.

To create race requirements, type r:RaceName1,RaceName2,etc.; this will tell the game that any of the named races (and only those races) may use the item. So, to create armor that may only be equipped by Humans and Lissit, you'd type the following in for the requirements attribute:

Code: [Select]
requirements="r:Human,Lizardman"
Class requirements work exactly like race requirements, but they use a 'c' instead of an 'r.' This will tell the game that only the Swordsman, Spearman and Warrior classes may use the item:

Code: [Select]
requirements="c:Swordsman,Spearman,Warrior"
Finally, you can impose level requirements on an item using 'l'--if the character is below the level named, the item won't be useable. For example:

Code: [Select]
requirements="l:3"
To bring all of this together: say you want to create a sword useable only by Humans and Spriggats belonging to the Swordsman class, and only those of level 6 or higher. This is how you'd define the requirements:

Code: [Select]
requirements="r:Human,Spriggat/c:Swordsman/l:6"
Only characters meeting every requirement would be able to equip the weapon.
Title: Re: Developer's Log
Post by: CraigStern on April 25, 2013, 08:58:36 AM
The past few days have been spent primarily on fixing bugs that had crept their way into the game; I've got them all worked out now, I believe, except for one particularly insidious one that seems to manifest when AI units are shoved onto a wall tile and fall. I'll try to figure that out by sometime tomorrow.

Also, a small thing: the "M" hotkey will now work to toggle between swimming and the actions menu if a character is in "swimming mode." (Previously, it only toggled between normal movement and the actions menu.)
Title: Re: Developer's Log
Post by: CraigStern on April 30, 2013, 08:56:49 AM
I've got the first shipment of new Castle tiles in from Lorne Whiting. Among other things, we now have lit windows and some nice stained-glass window tiles. You can see those in the attached screenshot below!

Meanwhile, Amazon payments has finally finished processing Kickstarter pledges and released the funds. They are now transferring to my business checking account (5-7 business days; blegh). On the plus side, I now have the backer lists available on KS, so I can start sending out backer rewards! :)
Title: Re: Developer's Log
Post by: CraigStern on May 01, 2013, 07:48:38 PM
I've just fixed a bug which was causing the game to occasionally glitch out when destructible objects were destroyed. The alpha build has been updated online; feel free to redownload, run and replace! ;)
Title: Re: Developer's Log
Post by: CraigStern on May 02, 2013, 04:32:56 AM
I've just fixed a bug where the game would default to a 3-second turn timer in local multiplayer matches if you didn't choose another setting. That has now been fixed, and the installers updated online.
Title: Re: Developer's Log
Post by: Nendrel on May 02, 2013, 12:14:50 PM
I've just fixed a bug where the game would default to a 3-second turn timer in local multiplayer matches if you didn't choose another setting. That has now been fixed, and the installers updated online.

That's right, I watched it, but after edit settings i wasn't able to replicate it. Thanks!
Title: Re: Developer's Log
Post by: CraigStern on May 02, 2013, 07:59:18 PM
Bug fixes!


The installers have now been updated with the fixes.
Title: Re: Developer's Log
Post by: CraigStern on May 04, 2013, 10:13:34 PM
Bug fixes!


The installers have now been updated; update as necessary.
Title: Re: Developer's Log
Post by: CraigStern on May 04, 2013, 10:29:41 PM
I've just added a hotkey for grabbing items: G. Its absence was annoying me. ;)
Title: Re: Developer's Log
Post by: CraigStern on May 05, 2013, 07:40:16 PM
I implemented a proper victory splash screen today! It shows the victor's stats and final score for the battle.

Also, I added a new action called BonusPoints that lets you add or subtract points from a player's score for the battle. (Useful for optional objectives!)

The installer has been updated.
Title: Re: Developer's Log
Post by: CraigStern on May 07, 2013, 12:23:13 PM
The game now allows you to change a character's name or movement type using the SetStat action. To do so, set the StatName parameter to Name or MoveType, then add a fifth parameter onto the end with the new name (with first and last name delimited by a forward slash) or movement type (land or flying).

(NOTE: It doesn't matter what you use for the operation or amount parameters when editing Name or MoveType.)
Title: Re: Developer's Log
Post by: CraigStern on May 09, 2013, 09:01:10 PM
Updates!

The actions menu now stays open even when characters are not selected, making Undo, End Turn and Rally easily accessible.

There is a new action: NewScene. It has just one parameter: the name of the scene to jump to.

I've also significantly updated the Telepath Tactics manual. (Among other things, it now walks you through the various aspects of modding in new character classes and destructible object classes.)
Title: Re: Developer's Log
Post by: CraigStern on May 09, 2013, 09:18:03 PM
Another update: the game now remembers your Options Menu settings (music volume, character walk speed, edge panning, etc.) if you close the game and reopen it.
Title: Re: Developer's Log
Post by: CraigStern on May 09, 2013, 09:49:15 PM
One final improvement: the Actions Menu now has a "Next Character" button. Not a huge deal, but its omission was bugging me.

The installers have been updated; download and update at will. ;)
Title: Re: Developer's Log
Post by: CraigStern on May 11, 2013, 05:48:44 AM
I've added a new operator to SetVal in Telepath Tactics: r. This generates a random integer between 1 and the chosen number, then makes the variable value equal to that integer. (Basically, it works like rolling a die with however many faces you specify.)

You can then use that variable with IfValGoTo and NewScene to produce randomly generated encounters; you can use it for SetStatByVal to increase character stats a random amount; or you can use it to augment other custom variables with SetValByVal. Lots of possibilities there. ;)
Title: Re: Developer's Log
Post by: CraigStern on May 11, 2013, 12:02:28 PM
New dialog action: IfValsGoTo.

This is exactly like IfValGoTo, but with one major difference: instead of putting in a numerical amount to compare to the custom variable, you instead put in the name of a second custom variable. The game will compare their values according to the operator you use, then jump to the dialog branch you specify if there's a match.

E.G. Suppose you have a variable called TrainingCost that you've calculated based on a character's stats, and you want to check a second custom variable--Money--against the TrainingCost variable. You'd use an action like this:

IfValsGoTo        TrainingCost,l=,Money,2

(That sends the conversation to branch 2 if TrainingCost is less than or equal to Money.)
Title: Re: Developer's Log
Post by: CraigStern on May 11, 2013, 01:28:41 PM
I just fixed a bug relating to the Actions Bar. (It was letting characters act when bringing the bar back up after attacking.)

The installers have been updated with all of the changes of the past couple of days; download at will!
Title: Re: Developer's Log
Post by: CraigStern on May 12, 2013, 08:13:00 AM
The game now prevents you from saving an army as totally empty when setting up a Local Match.
Title: Re: Developer's Log
Post by: CraigStern on May 14, 2013, 11:15:35 AM
I have now finished documenting every area of modding currently supported by the game.

The manual now has complete instructions covering everything from dialog to custom tilesets to creating new character animations. There's 24 pages worth of documentation in there now; check it out (http://www.sinisterdesign.net/Downloads/Telepath%20Tactics%20Manual.pdf)! :)
Title: Re: Developer's Log
Post by: CraigStern on May 15, 2013, 07:33:10 PM
I've been doing a lot of corresponding with artists over the past few days.

On the coding front, I'm thinking of ways to give folks more flexibility to create non-combat scenarios. To that end, I just added in a new condition called Kill-All Victory. It has only one parameter, which can be set to either true or false. (The game has this set to true by default.) If you set this to false, this will turn off the game's built-in behavior of granting victory to a player once it detects that the battlefield is absent of any of that player's enemies.

This could be used for a battle where the player has a few turns to prepare before the enemy arrives. (This could also be important to implementing a possible future exploration mode.)
Title: Re: Developer's Log
Post by: CraigStern on May 15, 2013, 08:32:08 PM
I thought this would be hard to add, but guess what? I figured out how to make a really simple exploration mode work in Telepath Tactics with just 10 minutes of tinkering. It's really darn basic, but it gets the job done.

Just like Kill-All Victory, Exploration Mode is a condition with only one parameter: true or false. Here's how you turn it on:

Code: [Select]
<Condition>Exploration Mode,true</Condition>
When exploration mode is turned on, it automatically turns off the Kill-All Victory setting, turns off features like undo, rotate and end turn, makes it so none of your characters lose steps while moving, and gives everyone a move range of 10. (It's kinda like this (http://youtu.be/xYHfedfKFog?t=13m56s), except without the limited move range and without ending your turn on you every three seconds.)

This is going to become a lot more robust once I add in player-triggered conversations and space-dependent dialog/script triggers--but for now, it's a start. :D
Title: Re: Developer's Log
Post by: CraigStern on May 16, 2013, 08:04:39 PM
Telepath Tactics has a new dialog trigger in-game: OnTalk. This lets the player trigger conversations between characters voluntarily by moving characters adjacent to each other and selecting "Talk" from the Actions Bar. (Think support conversations from Fire Emblem.)

OnTalk has only two parameters: the names of two characters. (These are the characters that can initiate the conversation by being adjacent and hitting Talk.)


The installers have been updated.
Title: Re: Developer's Log
Post by: CraigStern on May 17, 2013, 05:17:51 PM
I fixed the descriptions of Shove and Pull so they don't both use the word "back"; added a keyboard shortcut for Done (Shift + D).
Title: Re: Developer's Log
Post by: CraigStern on May 20, 2013, 07:36:37 PM
I've just tested it out, and the new trigger OnReachingSpace is now fully functional. It takes at least two parameters: Y coordinate and X coordinate. If you only use those two, it triggers the associated conversation as soon as any character moves onto that space.

Optionally, you can use two more parameters: character name and team number. If you use any String for the third parameter, it will make it so only a character with the name you type there can trigger the conversation on that space. If you use any number for the fourth parameter, it will make it so only a character from that team number can trigger the conversation on that space. (To use the fourth parameter and not the third, just leave the third blank.)

Documentation has been added to the manual; the installers have been updated online.
Title: Re: Developer's Log
Post by: CraigStern on May 22, 2013, 04:40:53 PM
Just fixed that annoying thing where it would flash the wrong image for a fraction of a second on the New Match screen; it now has a nice little loading animation that plays while it's fetching the correct image.
Title: Re: Developer's Log
Post by: CraigStern on May 23, 2013, 10:21:26 AM
There are two new conditions: Defeat Scene and Victory Scene.

By dfault, when you lose a battle, the battle restarts. Defeat Scene changes that: instead of restarting, it instead progresses to whatever scene you choose for the condition's one parameter. Thus, you can have the game continue when the player loses, possibly branching or even leading to a bad ending.

Victory Scene, in turn, is actually just duplicative of the nextBattle attribute set at the top of every map's XML file; it tells the game to go to a certain scene when the battle is won. It's included purely for use with the ChangeCondition dialog action to dynamically change the next scene during the course of battle.
Title: Re: Developer's Log
Post by: CraigStern on May 24, 2013, 12:58:29 PM
The victory screen now animates, tallying your score right before your very eyes! It's a neat effect, and very satisfying to watch. (I was inspired to add this by memories of the end level score tally in the original Sega Genesis Sonic the Hedgehog.)

I've also updated the score system slightly: a win now gives you 150 points by default, and the point penalty for each turn that passes before victory is reduced to 4. The manual has been updated to reflect the changes.

The installers have been updated as well!
Title: Re: Developer's Log
Post by: CraigStern on May 25, 2013, 12:39:16 PM
Yesterday was one of my infamous playtest parties, where I invite friends over and we play the game together over beer and pizza while I sit with a notepad and pen taking notes on bugs and suggestions. It was--as usual--really helpful. Among the changes which I've made since yesterday:

-- I've tweaked the victory score screen a bit so it's faster counting the damage numbers (which frequently go into the hundreds).
-- Clicking the victory tally screen before it's done counting now causes it to skip to the end and display all of the final numbers; a second click exits the battle.
-- Destructible objects which have been set on fire now actually burn. (They take damage at the end of every round, after every player has gone.)
-- Shield abilities no longer heal destructible objects.
-- Added support for looping background sound effects; fixed a bug that briefly broke the volume sliders in the options menu.
-- Added a new particle type: Coins.
Title: Re: Developer's Log
Post by: CraigStern on May 25, 2013, 02:14:54 PM
A couple more bug fixes:

-- The Impale animation had an opaque background; that has been fixed.
-- There was a bug that was causing the game to hang instead of displaying the Defeat screen; that's been fixed.
-- Bugs that crept in and were affecting Surrender and Quit Game have now been fixed.

I have a few more things I want to do to get this build ready for Indiecade, but I'm making good progress; I feel optimistic that everything will be ready by next Friday! :)
Title: Re: Developer's Log
Post by: CraigStern on May 26, 2013, 12:39:41 PM
Update! I have finally cast the much-disliked Right-Click Context Menu into the fires of Mount Doom. In its place, right-clicking an empty spot on the battlefield now deselects the current character.

To handle the functions that were previously in the right-click menu, there is a new menu accessible from the Actions window. Whenever no character is selected, click the "Gear" button that appears--it will open the new menu.

The installers have been updated.
Title: Re: Developer's Log
Post by: CraigStern on June 03, 2013, 04:29:21 PM
Last night, I added in the first batch of item icons into the game, then coded the inventory screen so it displays item icons whenever they are available (if they aren't, it displays the item's name instead).

The game has also been updated with attack animations for shadowlings and lizardmen.

The installers have been updated.
Title: Re: Developer's Log
Post by: CraigStern on June 04, 2013, 12:44:47 PM
Just added a new dialog script action: GoTo. It has one parameter: branch number. That's it. It lets you run actions, then jump to another branch when they're done; just make sure you put the GoTo action last.
Title: Re: Developer's Log
Post by: CraigStern on June 04, 2013, 12:52:41 PM
Oh, also, forgot to mention: last night, I fixed a couple of issues concerning the unequipping of attack-granting items from player inventory. You'll now lose the associated, granted attacks immediately upon unequip. (I had thought this was already working before, but if it was, I evidently broke it at some point.)
Title: Re: Developer's Log
Post by: CraigStern on June 04, 2013, 02:11:03 PM
There's been a bit of a change to the way the game handles alternate if statements in dialog scripts. The game now stops performing actions in the branch after successfully executing GoTo, IfGoneGoTo, IfValGoTo, IfValsGoTo, or IfStatGoTo.

What does this mean? Basically, it means that you can chain together a bunch of alternative "if" condition actions, and the game will stop with the first one it finds to be true and execute it. So, for example: let's say that we want to code a situation where the character Herman Bladesmith is given a new sword, but only if he's on the battlefield and only if he has a Strength stat of at least 7. We start by making if statements to cover alternative conditions, then cap it off with a GoTo.

Code: [Select]
IfGoneGoTo     Herman Bladesmith,2
IfStatGoTo     Herman Bladesmith,Strength,l,7,3
GoTo     4

So if he's not on the battlefield, the conversation will go to branch 2, where we can use EndConvImmediately or else put in some text about how it's a shame he's not there. The game simply won't run the other two actions if it finds that this is the case.

If he is on the battlefield, the game will now check the second if action, IfStatGoTo, to see if he's strong enough. If it finds that his strength is less than 7, we'll go to branch 3, where maybe we'll get some sort of explanation that he's not strong enough; the game won't check any of the actions below IfStatGoTo.

Only if these first two if actions don't get triggered will we reach the last action, GoTo, which is sort of our catch-all. That sends us to branch 4, where Herman gets the new sword.

It's a simple change, really, but it gives us a lot more power to script interesting and varied scenarios. ;)
Title: Re: Developer's Log
Post by: CraigStern on June 04, 2013, 04:47:01 PM
I have expanded the selection of music available to use in Telepath Tactics.

Please bear in mind that most of these tracks are still in-progress, and that they do not reflect final quality. Also, please bear in mind that Ryan Richko is working on quite a few more tracks for the game--these are just the ones that are currently complete enough to use in their rough form.

Now, with all those disclaimers out of the way, here is the new list of musical tracks available to use in the alpha:

BadOmen -- foreboding music (Ryan Richko)
DeviousSchemes -- dungeon music (Craig Stern)
DeviousSchemes2 -- dungeon music (Craig Stern)
EvilLurks -- sinister music (Ryan Richko)
MythicalCreatures -- mysterious, dramatic music (Ryan Richko)
LizardTribe -- relaxed, tribal music (Ryan Richko)
Onslaught -- battle music (Ryan Richko)
ScionOfEvil -- boss music (Ryan Richko)
TacticiansDuel -- battle music (Craig Stern)
TitleTheme -- Telepath Tactics theme music (Nick Perrin)
Title: Re: Developer's Log
Post by: CraigStern on June 04, 2013, 09:57:53 PM
I fixed a couple of bugs: one which prevented worn equipment from registering on characters who spawned after turn 0, and a second bug affecting the ability of items to change the value of custom variables.

In addition, I went ahead and added a text pop-up whenever an item does modify a custom variable. (Among other things, this should take care of any confusion about what is happening when a player picks up a sack with money in it.)

The installers have been updated online. Enjoy!
Title: Re: Developer's Log
Post by: CraigStern on June 06, 2013, 08:55:02 PM
The people cried out for nicer-looking edge tiles, and the gods of Telepath Tactics looked upon them and smiled! Behold: beautiful new Cave tiles, now in progress!
Title: Re: Developer's Log
Post by: CraigStern on June 09, 2013, 07:26:07 AM
I've begun initial work on what will be the official main campaign.

To help me test out dialog quickly and easily, I've made a few changes to the engine that allow you to load levels without any characters in them. Testing aside, this could be useful for doing establishing shots of locations in-game, or doing scenes where a discussion is overheard from the outside of a building.
Title: Re: Developer's Log
Post by: CraigStern on June 13, 2013, 08:51:48 AM
Lots of new stuff!

You can now access a character's army number (0 for the player, 1 for the enemy, etc.) by using Army as the Stat parameter in SetStat and IfStatGoTo. Among other things, because this is accessible in SetStat, this means recruiting characters mid-battle is now supported by the engine! (I suggest using SetStat in combination with the OnTalk trigger.)

You can now alter a character's leveling progression mid-game using SetStat as well. There are two aspects to this:


You can now clear all attacks that a character is set to learn on future level-ups using the new ClearLevelUpAttacks script action. It has only one parameter: character name. Basically, this is for use with character class changes that alter the skills a character is going to learn. (Changing from a Spearman to a Bowman? Better use this to ensure your character doesn't keep learning spear skills on level up!) You'll then want to follow this up by adding new attacks to be learned using the new method in SetStat explained above.

You can now define a character's starting inventory right in CharClasses.xml using the new <StartingInv> tag. This tag uses the exact same format as when you give characters items in individual maps: each item is separated by a forward slash, place -E- next to an item to tell the game that it starts equipped. (This is basically a way to ensure that playable characters start with the right equipment and items in inventory without forcing them to appear on a particular map first.)
Title: Re: Developer's Log
Post by: CraigStern on June 13, 2013, 09:02:11 AM
Oh, also, I forgot to mention this: I reworked the map editor with two important improvements.


Right now, I'm fixing the function that is supposed to label dialog branches with the correct branch numbers when the map editor saves maps to XML files.
Title: Re: Developer's Log
Post by: CraigStern on June 15, 2013, 01:15:48 PM
I just fixed a bug that was preventing the map editor from loading tiles correctly when loading a map. I've updated the map editor installer online with the fix; download, run and replace to fix your copy. ;)
Title: Re: Developer's Log
Post by: CraigStern on June 15, 2013, 04:54:31 PM
I've been doing a lot of work testing out the new Cave tiles, and we're making some really good progress; I expect the expanded tileset will be complete within the week.

Oh, also, in case you missed the tweets I sent out this morning: both male and female portraits are done for the Swordsman and Spearman! We're moving on to the Lizardman portraits next. (We're starting with "generic" character class portraits, then doing individualized ones for the campaign afterwards.)
Title: Re: Developer's Log
Post by: CraigStern on June 17, 2013, 04:56:37 AM
I now have the final set of item graphics from artist Julia Buge! I'll be assigning the graphics to all of the game's items today. :)

Unrelated: I fixed a bug where the game would not always show the correct damage for Feedback or Vengeance before using the attack.
Title: Re: Developer's Log
Post by: CraigStern on June 18, 2013, 07:50:56 AM
I've now integrated all of the new item graphics into the game!

I also fixed a couple of bugs, including the super-annoying one where "null 0" popped up every time you use an item. The installers have been updated online. ;)

(NOTE: there are a lot of new Cave tiles in this version, but they are not useable just yet; I still have to test them all for any needed revisions, and I need to finish updating the set's TileData. Just FYI!)
Title: Re: Developer's Log
Post by: CraigStern on June 21, 2013, 11:59:10 AM
Yesterday, I reformatted CharClasses.xml and ObjClasses.xml with a new portrait attribute. (This tells the game what the character's default portrait is, to be used on the character info screen.) I've coded this feature into the character info screen as well: it now loads the correct portrait, scales it and positions it when looking at the detailed info screen for a character.

I've made it so persistent dialog loads before custom dialog in any given battle.

Next, I'd like to add new dialog actions that let you load custom character portraits during conversations. That'll be my next task. ;)
Title: Re: Developer's Log
Post by: CraigStern on June 24, 2013, 09:47:17 AM
Okay! Displaying character portraits in dialog is now a thing. There are two new dialog script actions that govern this at the moment: AddPortrait and RemovePortrait.


This system still needs some work--in particular, I want to support custom positioning (e.g. setting x coordinates down to the pixel, or allowing you to layer the portraits as desired if there are more than two people in a conversation) and portrait movement (e.g. having characters smoothly "step forward" or "step back"). I also need to reposition the dialog screen so  portraits can spawn along the bottom edge of the screen, a la Fire Emblem.

Speaking of portraits: here are a couple of new ones from artist David Hammond, the male and female Lissit!
Title: Re: Developer's Log
Post by: CraigStern on June 25, 2013, 11:36:09 AM
New portrait actions!

ClearPortraits -- clears every portrait on the screen.

PlacePortrait -- places the portrait at a new spot on the screen relative to its current position. This action takes three parameters: Portrait Name, X Pixels and Y Pixels. The Portrait name refers to whatever name you picked for the portrait when you added it; and the latter two tell the game how many pixels to move the portrait. A positive X Pixels will move it to the right; a negative X Pixels will move it to the left. A positive Y Pixels will move it down; a negative Y Pixels will move it up.

New art! We've finished up the lizardman and shadowling animations now, and I think they look really terrific. I've attached a couple of them: the "generic special ability" animation for the lizardman, and the Shadowport animation for the shadowling.
Title: Re: Developer's Log
Post by: CraigStern on June 26, 2013, 12:42:05 PM
New portraits: the Cavaliers! ;)
Title: Re: Developer's Log
Post by: CraigStern on June 28, 2013, 09:08:50 PM
I've added three new (optional) parameters to AddPortrait: palette, Y and X. These swap the violet for whatever army color you designate, and offset the portrait's starting position by however many pixels you specify.

Also, I fixed some bugs last night, and we have new portraits: bowmen! :D
Title: Re: Developer's Log
Post by: CraigStern on June 28, 2013, 09:36:23 PM
I've ditched PlacePortrait (which is now covered with the new, optional variables in AddPortrait) and have replaced it with MovePortrait, which lets you move a portrait across the screen in any direction you like.

Three parameters: Y to move, X to move, and Frames to take moving the defined distance.
Title: Re: Developer's Log
Post by: CraigStern on July 03, 2013, 05:18:20 AM
I stayed up late last night reworking code in the combat engine to support animated movement abilities.

For most attacks, the game doesn't produce any character movement until the attack "hits" near the conclusion of the animation; this is to produce knockback effects and such. For movement abilities, however, the game now moves the character simultaneously with its movement animation.

Teleportation abilities are a special case; when teleporting, a character now moves instantly 8 animation frames short of the end of the animation. (Meaning that all teleportation animations need to be at least 9 frames long, with 8 frames reserved for the "reappear" portion.)

In the process, I integrated the assassin's Leap animation and the shadowling's Shadowport animation into the game; needless to say, they look awesome.

Crucially, I also fixed a bug that was causing the game to sometimes miscount the number of frames in an attack animation; so there should no longer be any problems with mistimed attacks or animations getting cut short.

Finally, I added portraits into most of the Kovit campaign to test them out. So far, so good!

The installers have been updated.
Title: Re: Developer's Log
Post by: CraigStern on July 04, 2013, 12:33:47 AM
I've now added support for Fire Emblem-style weapon degradation in Telepath Tactics! Just set an equippable weapon's consumedAfter attribute to any number above 0; the weapon will be useable for exactly that number of strikes before it breaks. (If you keep consumedAfter at 0, the weapon will not degrade with use.)

I won't be using this in multiplayer or in the Kovit mini-campaign, but you can bet your britches I'll be making this a thing in the official campaign. ;)
Title: Re: Developer's Log
Post by: CraigStern on July 07, 2013, 11:16:33 AM
I've added support for custom string variables to Telepath Tactics (as opposed to only supporting custom integer variables, which is what the game had before). This will let you more easily track non-numerical data, such as factional alliances and past dialog choices.

New actions:

SetString -- two parameters: variable name and string.
SetStringByString -- two parameters: variable name and second variable name. (The string contained in the second variable is copied to the first.)
IfStringGoTo -- three parameters: variable name, string and branch. (If the named variable contains the specified string, go to the specified dialog branch.)

The manual has been updated.
Title: Re: Developer's Log
Post by: CraigStern on July 07, 2013, 12:34:23 PM
Scripts are now in-game and working! ;)

A script is a bundle of script actions thrown together under a single name (for those of you who program, this is the Telepath Tactics equivalent of a function.)

Scripts can be be created anywhere that dialog can (i.e. PersistentDialog.xml and individual battles) using the <Script> tag. They're formatted like dialog, but instead of the speaker and dialog info, it just contains the name of the script and some nested actions.

Here are a couple of example scripts that I've placed into PersistentDialog.xml:

Code: [Select]
<Script>Nightfall
<Action>ChangeCondition/Global Lighting,Night</Action>
<Action>ChangeCondition/Fog of War,true</Action></Script>

 <Script>Daybreak
<Action>ChangeCondition/Global Lighting,Daylight</Action>
<Action>ChangeCondition/Fog of War,false</Action></Script>

So we have a Nightfall script that turns the battlefield dark and turns on fog of war; and a Daybreak script that turns the battlefield bright and turns off fog of war.

To run a script, just use the new action Run. Run takes only one parameter: the name of script to run. That's it! ;)
Title: Re: Developer's Log
Post by: CraigStern on July 07, 2013, 04:25:56 PM
I've just updated the game installer online; update to gain access to the new scripting / weapon degradation features. :)
Title: Re: Developer's Log
Post by: CraigStern on July 08, 2013, 09:07:05 AM
New action: IfItemGoTo. This action checks to see if a certain character (or any character on the player's team) has a certain item; if he/she/one of them does, then the conversation moves to the specified branch.

This action has four parameters: Character Name, Item Name, Equipped, and Branch Number. Character name is the name of the character to check for the item; if the name provided is Anyone, then the game checks all the player's characters on the battlefield instead of just one character. Item Name is the name of the item the game will check for. Equipped is either true or false; if true, it will specifically check to see if the named item is equipped, and will only count the item as "found" if it is in fact equipped. Branch number tells the game what branch to go to if the item is found.

So! If I want to see if anyone in the player's army has the Golden Orb equipped and move to branch 6 if they do, I'd use this:

Code: [Select]
IfItemGoTo/Anyone,Golden Orb,true,6
If I just want to see if Durango Hasslegourd has Bandages sitting around and go to branch 3 if he does, I'd use this:

Code: [Select]
IfItemGoTo/Durango Hasslegourd,Bandages,false,3
Title: Re: Developer's Log
Post by: CraigStern on July 08, 2013, 09:39:54 AM
New actions: IfStringRun, IfValRun, IfValsRun, IfStatRun, IfGoneRun, and IfItemRun. These are like their "GoTo" counterparts, except that instead of directing the dialog to a new branch, these run a script instead.

The two big differences:

(1) These have the exact same parameters as their GoTo counterparts, except that they require a script name instead of a dialog branch.

(2) Unlike the GoTo actions, these do not behave in an if / else if / else manner. So if you load up a branch with a whole bunch of IfXRun actions, you can conceivable trigger all of them at once (as opposed to only triggering the first one that returns true).
Title: Re: Developer's Log
Post by: CraigStern on July 08, 2013, 10:04:25 AM
The manual has been updated with all of the new info. ;)
Title: Re: Developer's Log
Post by: CraigStern on July 08, 2013, 10:51:22 AM
You can now have the game auto-display the contents of custom string variables--just use this format:

-STR:VariableName-

So let's say that the game has a custom string variable recorded with the player's chosen elemental affinity under the variable name Affinity; we can have it displayed in dialog like so:

"You've chosen -STR:Affinity-; are you sure?"

Suppose the player chose Shadow for her Affinity; the dialog will end up looking like this:

"You've chosen Shadow; are you sure?"
Title: Re: Developer's Log
Post by: CraigStern on July 08, 2013, 01:27:22 PM
In multiplayer, I've made a couple of changes to random item drops to further discourage turtling in your spawn area:

Title: Re: Developer's Log
Post by: CraigStern on July 08, 2013, 02:40:17 PM
You can now have the game auto-display the name of the character that triggered dialog, in dialog. This comes in 3 varieties:

-NAME-     first name
-LNAME-    last name
-FNAME-    full name

Suppose you have dialog triggered by OnMoveComplete or OnReachingSpace. You can use the name of the character that moved / reached the space automatically using those keys above.

For example: suppose that you have a conversation triggered by OnReachingSpace, and Emma Strider is the first character to reach the space and trigger the conversation. This dialog

Code: [Select]
-NAME-, look out--it's moving!
would instead be displayed as Emma, look out--it's moving!
Title: Re: Developer's Log
Post by: CraigStern on July 09, 2013, 10:13:36 AM
The OnStat dialog trigger is now in-game and working! This is the 10th (and most likely, final) type of dialog trigger I'll be putting in the game.

The OnStat trigger takes four parameters: Character Name, Stat Name, Mode of Comparison, and Amount. These parameters function exactly like the first 4 parameters of IfStatGoTo.

So let's say we use:

Code: [Select]
OnStat   Emma Strider,Level,=,2
This will trigger the conversation the moment the game detects that Emma is level 2.
Title: Re: Developer's Log
Post by: CraigStern on July 09, 2013, 11:07:28 AM
You can now use placeholder values within replies and dialog script actions! All of these will now be auto-converted into the appropriate text before the game runs them:

-VAL:-
-STR:-
-STAT:-
-NAME-
-LNAME-
-FNAME-


Also: you can now nest the -FNAME- placeholder text within the -VAL-, -STR- and (most importantly) -STAT- placeholders.

Why is this important? Basically, this opens up a ton of new possibilities. Here is a sample dialog I just tested out using nested placeholders and the -FNAME- placeholder within the SetStat action:

Code: [Select]
  <Dialog>OnReachingSpace/5,3//-FNAME- has reached the magic space! Strength increased by 20! -FNAME-'s Strength is now -STAT:-FNAME-,Strength-.
<Action>SetStat/-FNAME-,Strength,+,20</Action>
  <Reply>.../EndConv</Reply></Dialog>

Moving Emma Strider onto space 5,3 thus resulted in the following:

(http://i62.photobucket.com/albums/h96/craigstern/WIP%20Screenies/DialogPlaceholderReplacements1_zpsaae32885.png)

(http://i62.photobucket.com/albums/h96/craigstern/WIP%20Screenies/DialogPlaceholderReplacements2_zpsdf801d98.png)

Pretty sweet, eh? ;)
Title: Re: Developer's Log
Post by: CraigStern on July 09, 2013, 01:22:19 PM
After testing, I've made some further changes to random item drops in multiplayer. Instead of 40% (http://sinisterdesign.net/forum/index.php?topic=1224.msg46044#msg46044), the game now prohibits item drops in spaces closer than or equal to 30% of the map's averaged length and width away from spawn locations.

To make up for this increased leniency, the game now actually weights each space according to its average distance from all spawn locations, meaning that item drops are much more likely to occur in places more or less equidistant from all players.

In your typical map where players spawn around the edges, item drops will occur almost entirely in the center of the map; if the spawn points are shifted inwards a bit from the edges of the map, there may also be isolated spots around the outside of the map where items can drop as well, exactly between two of the players.

I've tested it and I can confirm that it is pretty cool. ;)
Title: Re: Developer's Log
Post by: CraigStern on July 09, 2013, 01:39:52 PM
The installers have been updated online; go to it, alpha backers!
Title: Re: Developer's Log
Post by: CraigStern on July 10, 2013, 08:51:57 AM
Another update: fixed a bug that was causing the game to freeze when using attacks that don't yet have animations. The installers have been updated online.
Title: Re: Developer's Log
Post by: CraigStern on July 10, 2013, 01:38:52 PM
I've done a fair bit of work beneath the hood to make the game more easily support different window resolutions; I changed the game's default window resolution from 768 x 640 to 800 x 640; and I used that extra width to change the positioning of the dialog screen and where character portraits appear inscreen. (Specifically, characters now appear at the bottom of the screen, with the dialog box now appearing roughly at mouth level.) Personally, I think this looks much much better than having the portraits sitting up on top of the dialog box.

I also fixed an issue that was preventing the dialog window from being centered on the screen, and made the game intelligently reposition all of the dialog box elements and portraits whenever the game is switched between fullscreen and windowed mode.

I'm currently working on a new cut scene type that uses click-to-continue text instead of scrolling text.
Title: Re: Developer's Log
Post by: CraigStern on July 11, 2013, 02:53:58 PM
The game now supports two separate types of cut scenes! The cut scene with scrolling text is now called Cut Scene: Scrolling--that is now joined by a new type of cut scene, Cut Scene: Static.

Static cut scenes show a linear progression of text blocks and require the user to click in order to proceed through them. Static cut scenes use a medium-sized font, positioned in the bottom quarter of the screen, and allow you to use a picture (or a series of pictures!) to accompany the text.

You can create static cut scenes in the exact same way you do scrolling ones, with a few differences:

Title: Re: Developer's Log
Post by: CraigStern on July 11, 2013, 03:35:08 PM
Fixed a bug I inadvertently introduced re: the game saving Emma Strider's info.

The installers have been updated.
Title: Re: Developer's Log
Post by: CraigStern on July 14, 2013, 06:58:28 AM
This took a lot of work to implement, but the game now supports dialog within static cut scenes! There's just one annoying little bug that's causing the dialog screen to load offscreen; as soon as that's fixed, I'll be ready to update the installers with the new feature. ;)
Title: Re: Developer's Log
Post by: CraigStern on July 14, 2013, 09:03:30 PM
Bug fixed! Create dialog in a static cut scene the same way you do in a normal map: with <Dialog> tags. (Conversations you create in the map editor will work just fine.)

To trigger a conversation in a static cut scene, use this special format: -DIA:OnTurn/0-, where "OnTurn/0" is whatever trigger your conversation is grouped under.

The dialog will be called in whichever text block you place that call in.

Many dialog actions won't work in a static cut scene (in particular, the ones that require a battlefield or access specific characters on the battlefield), but all of the following are working as of now:

--portrait manipulation actions
--actions to add or remove characters from the roster
--screen shake
--the Run action to run scripts

I'm going to work on getting more actions working in cut scene mode, particularly ones involving custom variables. Stay tuned!
Title: Re: Developer's Log
Post by: CraigStern on July 15, 2013, 09:14:27 AM
You can now use actions related to custom numerical variables and custom strings (e.g. IfValGoTo, SetVal, IfStringGoTo, SetString) within static cut scenes. This means that the game now supports dynamic cut scenes where consequential choices can be reflected (or made!) without the need to construct an entire battlefield to play host to the proceedings.
Title: Re: Developer's Log
Post by: CraigStern on July 15, 2013, 10:05:47 AM
I've fixed a couple of bugs in the map editor; the map editor installers have been updated online.
Title: Re: Developer's Log
Post by: CraigStern on July 15, 2013, 11:39:51 AM
New condition: Post-Battle Looting! Has one parameter: true or false.

If set to true in a given battle, if the player wins the battle and there are loose item sacks lying around the battlefield, the game will turn on exploration mode and allow the player to gather loose item sacks. It will also add a new button to the Actions Menu, "Leave Battlefield." The player can click this when he or she is done to move on to the next scene.
Title: Re: Developer's Log
Post by: CraigStern on July 15, 2013, 12:37:52 PM
Just fixed a bug where the game would freeze when a character attempted to swim out of water or lava.

Currently adding portraits to the remaining dialog in the Kovit mini-campaign.
Title: Re: Developer's Log
Post by: CraigStern on July 15, 2013, 02:10:47 PM
I've now added all of the portraits I currently have to every scene in the Kovit mini-campaign.

I also just spent a couple of hours playtesting and fixing random bugs; this build should be more stable than the last few. I've updated the installers online for early access backers.
Title: Re: Developer's Log
Post by: CraigStern on July 15, 2013, 02:53:13 PM
I've updated the manual online with documentation about creating cut scenes.
Title: Re: Developer's Log
Post by: CraigStern on July 16, 2013, 06:34:58 PM
It is now possible to turn on unit deployment at the very start of a single player campaign battle using the new <Deployment> condition. <Deployment> takes one parameter, true or false. If set to true, you'll have the opportunity to drag your characters around between possible spawn locations and swap them out with each other.

I'm about halfway through coding the deployment system itself: the game now shows you who is going to spawn where and lets you swap their positions around via drag-and-drop (see the screenshot below). Tomorrow I'll be coding the functionality that lets you drag unused characters from your roster onto the battlefield, giving you a choice of which characters you field in a given battle.
Title: Re: Developer's Log
Post by: CraigStern on July 17, 2013, 03:14:19 PM
I've finished adding support for troop deployment! You can both swap characters around on the battlefield and swap in characters from your reserves (if you happen to have more characters than you have available spawning locations). I've recorded a short video showing troop deployment (http://youtu.be/nYgPJYwOY9U) on the Ploutos Weapons Depot map.
Title: Re: Developer's Log
Post by: CraigStern on July 18, 2013, 07:17:47 AM
When centering the game's camera on characters during dialog, it now offsets vertically by about 100 pixels to make sure the character remains visible above the game's dialog box.
Title: Re: Developer's Log
Post by: CraigStern on July 18, 2013, 01:16:37 PM
I've officially made it so Falling element attacks with that cause Heavy all behave like Gravity Spike. (Which is to say, they will only damage characters that are currently flying.) The game's damage prediction routine has been updated to reflect the change.

I've fixed a bug that was causing the game to sometimes freeze when CPU-controlled characters used multiple inventory items in the same turn.

The game now has portraits for Cryokineticists, Mentalists and Psy Healers.
Title: Re: Developer's Log
Post by: CraigStern on July 18, 2013, 03:12:59 PM
I've made some nice little improvements to the AI in Telepath Tactics:

- CPU-controlled characters no longer bum rush enemies against whom they have no damaging attacks (I'm looking at you, Psy Healers!)

- CPU-controlled characters now continue to take actions after grabbing item sacks and using items from their inventory (as opposed to just immediately ending their turn).

- The game now times the pop-up messages correctly when CPU-controlled characters use multiple inventory items at once.

- Characters are now somewhat more effective at prioritizing the order of their actions during their turn.
Title: Re: Developer's Log
Post by: CraigStern on July 18, 2013, 03:26:34 PM
I've updated the online installers with the last three days' worth of improvements.

Early access backers: download and update at will! ;)
Title: Re: Developer's Log
Post by: CraigStern on July 19, 2013, 10:27:59 AM
I've finally replaced that ugly beige placeholder background on the "So-and-so's Turn" splash.
Title: Re: Developer's Log
Post by: CraigStern on July 19, 2013, 11:37:18 AM
The game now dynamically reads its version number out of the app data XML file and displays it on the title screen.
Title: Re: Developer's Log
Post by: CraigStern on July 19, 2013, 01:03:02 PM
Telepath Tactics now has an end turn confirmation window which pops up when you press the End Turn button in the Actions menu. (This should help prevent folks from clicking it by accident and ending their turns when they're still moving their characters.)
Title: Re: Developer's Log
Post by: CraigStern on July 19, 2013, 03:07:59 PM
When you click to leave the battlefield in loot grabbing mode, the game now prompts you with a confirmation window there as well.

I've fixed a bug in the enemy AI loop which was sometimes causing it to skip right to a second character before the first had finished its turn.

I've updated the installer online.
Title: Re: Developer's Log
Post by: CraigStern on July 20, 2013, 03:59:23 PM
Telepath Tactics now supports terrain effects! You can dynamically modify any of the following based on what space a character is standing on: Strength, Psy Power, Psy Defense, Dodge, Accuracy, and any of the various resistances. (For the resistances, you can lay them each out individually--Pierce Res., Slash Res., Crush Res. Mental Res. etc.--or else affect them all at once just using the catch-all word Resistance.)

To set up a space to alter a character's stats while they stand on it, go into TileData and add a special attribute right after element for the tile you want to do this. For each stat to effect, use two values delimited by a comma: the stat name and the amount that gets added to the stat (this can be a negative value if you want it to be a penalty instead of a bonus). To affect multiple stats, delimit each with a forward slash. For example:

<Tile fileName="tile0001.png" passability="all" dmg="0" element="" special="Strength,-1/Dodge,10/Resistance,10"></Tile>

This will cause the space to give whatever character stands on it a 1 point Strength penalty, but +10 to Dodge and Resistance percentages across the board.

Also, unrelated: swimming characters now always have their Dodge reduced to 0 until they emerge onto land.
Title: Re: Developer's Log
Post by: CraigStern on July 20, 2013, 09:14:51 PM
There is now a terrain effect for Perception as well (for maps with fog of war).
Title: Re: Developer's Log
Post by: CraigStern on July 20, 2013, 09:39:24 PM
New condition, Space Bonus, lets you pick a particular space on the battlefield and give it bonuses and/or penalties without having to muck around in TileData.

There are at least 2 parameters: specifically, Y and X coordinates for the space involved. If you leave it at that, the game will simply erase any bonuses or penalties from that space. Every 2 parameters you add on after that will specify an additional bonus or penalty. The third / fifth / seventh etc. parameter will be the name of the stat, and the fourth / sixth / eighth etc. will be the amount of the bonus / penalty.
Title: Re: Developer's Log
Post by: CraigStern on July 21, 2013, 12:34:00 AM
Stayed up late fixing bugs. Bugs fixed:


The installers have been updated online.
Title: Re: Developer's Log
Post by: CraigStern on July 22, 2013, 07:35:38 AM
A couple of changes to exploration mode:

Title: Re: Developer's Log
Post by: CraigStern on July 22, 2013, 07:54:54 AM
You can now set character starting Energy on a team-by-team basis using the new Fatigue condition.

Fatigue take two parameters: army number and starting fatigue level. Starting fatigue level is a number between 0 and 1, and represents the percentage of a character's energy that will be missing at the start of a battle. 0 is 0% fatigue; 1 is 100% fatigue; 0.5 is 50% fatigue; and so on.

So, for example, this would make the player (army 0)'s characters start off with no Energy:

Code: [Select]
<Condition>Fatigue,0,1</Condition>
This would make the enemy (army 1) start off with its characters at half Energy:

Code: [Select]
<Condition>Fatigue,1,0.5</Condition>
(By default, the game starts all armies with a fatigue of 0.65, meaning that characters spawn with 35% of their maximum energy.)
Title: Re: Developer's Log
Post by: CraigStern on July 22, 2013, 11:59:51 AM
Fixed a bug where the game wasn't parsing scripts defined in individual levels.

Fixed a bug where all script actions were getting lumped together as if they were a single action.

Fixed a bug where using SetStat to increase a character's damage or drain amounts would sometimes send their health or energy into the negatives.

Added scripting documentation to the manual.


The installers have been updated online.
Title: Re: Developer's Log
Post by: CraigStern on July 22, 2013, 03:08:18 PM
I've updated the map editor with a slew of bug fixes! There are no longer issues with loading or saving maps, and problems relating to loading the game's tilesets, objects and character classes have been resolved.

I've updated the map editor installers online; Map Editor Tier backers should download and replace their installs. (Note: you must also update your copy of the game itself if you want the updated map editor to work properly!)
Title: Re: Developer's Log
Post by: CraigStern on July 23, 2013, 03:51:39 PM
You can now hold down Shift and mouse around the battlefield to get a description of whatever tiles the mouse cursor passes over, including tile type, damage, element, space bonuses, and current elevation.

Tiles now have a desc attribute describing the type of tile it is (Water, Grass, Dirt, Rock, Lava, etc.) This is displayed in the tile description pop-up.

I've finished adding in all the attributes for the new Cave tiles, and have given every tile in the game a description!

I've given certain tiles bonus / penalty properties as well. Water tiles now give limited heat resistance, as do snow and ice tiles. Ice tiles reduce a character's dodge and accuracy stats.

Also: as sort of an experiment, I've changed the Dawbry battlefield a bit to see if people like it better. This one has elevation effects, and is a little bit trickier to navigate.

Finally, we now have a bunch of awesome new destructible object graphics from Lorne Whiting, but I haven't added them into the game just yet. That's on the to-do list for tomorrow!


The installers have been updated online.
Title: Re: Developer's Log
Post by: CraigStern on July 23, 2013, 03:55:03 PM
A couple of tweaks to the map editor:

  - the map editor now supports elevations from 0 to 99 (previously, it was 0 to 9);

  - the dialog editor now supports additional characters in its parameter text boxes.


The map editor installers have been updated.
Title: Re: Developer's Log
Post by: CraigStern on July 24, 2013, 09:13:01 PM
I've been integrating a ton of new destructible objects into the game. Here is a screenshot showing a sampling of the new goodies we'll soon have available to play with. :)
Title: Re: Developer's Log
Post by: CraigStern on July 25, 2013, 12:12:02 PM
I've just made it so you can trigger OnTalk dialog with enemies as well as allies.

I've just integrated a bunch of new door graphics into the game.

I've coded in support for opening and closing doors. Characters can move after opening or closing a door, but the action counts as an attack, so the character won't be able to attack afterwards.
Title: Re: Developer's Log
Post by: CraigStern on July 25, 2013, 01:56:59 PM
Here are some more of the new object graphics, as well as a shot in the middle of me testing door opening / closing. :)
Title: Re: Developer's Log
Post by: CraigStern on July 25, 2013, 02:48:22 PM
I've updated the installers online. ;)
Title: Re: Developer's Log
Post by: CraigStern on July 26, 2013, 08:30:20 PM
Doors now have a third state in addition to open and closed: locked! Locked doors cannot be opened without a key.

The game determines whether your character has a key in its inventory by looking for an item with useableWith="key"; if a character tries to open a locked door and the game finds a key in that character's inventory, the game will tell you that the door is locked and ask if you want to use a key. You can then use a key to open the door, or save your key for later.

If you have no key, the game simply won't let you open the door, and you'll have to either find a key or try bashing the door down.
Title: Re: Developer's Log
Post by: CraigStern on July 26, 2013, 09:00:11 PM
New dialog actions: Lock and Unlock.

Lock/6,0 will lock the door at coordinates 6 , 0.

Unlock/6,0 will unlock the door at coordinates 6 , 0.
Title: Re: Developer's Log
Post by: CraigStern on July 29, 2013, 04:19:20 PM
Well, I took care of a bunch of administrative nonsense today, as well as designing and ordering a standing banner (https://pbs.twimg.com/media/BQXWrERCUAAVjnG.png:large) for use at conventions.

I've also made some headway in drafting advanced "promotion" classes. My original plan was to give the player a choice of multiple promoted classes upon promotion, a la the GBA Fire Emblem games (http://img.photobucket.com/albums/v326/Scarey/fesschart.png), but it's becoming obvious that there's no way I can make that happen in a reasonable time frame. The sheer number of them would make balancing extremely difficult, and there are still too many character animations left for the regular classes as it is. So I'm going to handle this more like Shining Force / the more recent Fire Emblems: one promotion type per class (though I might consolidate a couple).

Here's what I have so far:

Whisper (Assassin Promotion) – Difficult to hit, incredibly mobile assassins. Can use Daggers and Throwing Knives. Gains +25% Dodge and +1 Speed.  Learns Vanish (for the rest of the turn, makes it so the Whisper simply escapes the battlefield unharmed if reduced to zero health).

Duelist (Swordsman Promotion) – Fast, good at going toe-to-toe with powerful physical enemies. Can use Swords, Main Gauches and Rapiers. Gains +15% Dodge, +10% Accuracy and +10% Pierce Resistance.  Learns Feint, Disarm.

Halberdier (Spearman Promotion) – A versatile soldier with multiple weapon masteries. Can wear heavy armor and use large shields; can use Axes, Spears. Gains +1 Strength and +5 Health.

Machinist (Engineer / Crossbowman Promotion) – A medium-tier fighter with Golem-specific support skills. Learns Oil, Repair and Engine Boost. Can use Wrenches, Crossbows. Gains +1 Strength, +3 Energy and +1 Health.

Caduceus (Psy Healer Promotion) – The caduceus is a master of shields. Learns Static Shield, Solid State Shield, Far Shield. Can use the Indigo Orb. Gains +1 Psy Defense and +4 Energy.

Deathspeaker (Skiakineticist Promotion) – The deathspeaker is skilled in all things concerning negative emotion. Learns Feedback, Dark Vortex and Vengeance. Gains +2 Psy Power.

Nightstalker (Shadowling Promotion) – The nightstalker is a devious fighter, able to teleport around the battlefield and delude enemies into seeing false copies of itself. Learns Shadowport, Hallucination. Gains +2 Health and +2 Energy.
Title: Re: Developer's Log
Post by: CraigStern on July 30, 2013, 12:33:55 PM
Frozen characters now appear visibly frozen on the battlefield.
Title: Re: Developer's Log
Post by: CraigStern on July 30, 2013, 12:59:28 PM
Similarly to how Frozen characters turn blue, Burning characters now turn reddish-orange.
Title: Re: Developer's Log
Post by: CraigStern on July 31, 2013, 09:11:50 AM
I'm now working on adding triggers to destructible objects.

There will be two types: Pressure and Switch. Objects with Pressure triggers will activate the moment a land-based character or other object occupies its same space; Switch triggers will require the character to deliberately activate the object.

In addition to a type parameter, object triggers will have a second parameter: the name of the script to run when the item is triggered. Nice and simple. ;)
Title: Re: Developer's Log
Post by: CraigStern on July 31, 2013, 02:50:51 PM
Woo! Pressure plates are now working. When a character walks onto a destructible object with a Pressure trigger, the character will stop moving and the associated script will run.

Triggers are added on a map-by-map basis by adding a trigger parameter in the <Unit> tag of the destructible object you want to use the trigger with. This, for instance, will add a Pressure trigger to a PressurePlate object and set it to trigger the script PressurePlateTrap:

<Unit trigger="Pressure,PressurePlateTrap">0,99,PressurePlate,0,9,None,None</Unit>

You can now specify the triggering character's coordinates using -Y- and -X-, useful for things like having particle effects on the space a script has been triggered.

New script action: DamageChar. Has three parameters: the name of the character to damage, the base damage to deal, and the element the damage belongs to (Pierce, Slash, Heat, etc.) Optionally, you can add a fourth parameter, which will serve like the affects parameter in an attack. (By default, DamageChar actions affect Health.)

This script will trigger a shower of smoke and sparks at the triggerer's location, and deal 8 base Heat damage to the triggerer:

Code: [Select]
  <Script>PressurePlateTrap
<Action>SpawnParticlesAt/Smoke,-Y-,-X-</Action>
<Action>SpawnParticlesAt/Sparks,-Y-,-X-</Action>
<Action>DamageChar/-FNAME-,8,Heat</Action>
  </Script>
Title: Re: Developer's Log
Post by: CraigStern on July 31, 2013, 07:03:49 PM
I've uploaded a video (http://youtu.be/9LlGduu_8Zk) showing traps in action!

Also, new script action: DamageCharAt. It's just like DamageChar above, but instead of one parameter with character name, it starts with two parameters: the target's Y and X coordinates.

The four parameters: the Y coordinate of the character to damage, the X coordinate of the character to damage, the base damage to deal, and the element the damage belongs to (Pierce, Slash, Heat, etc.) Optionally, you can add a fifth parameter, which will serve like the affects parameter in an attack. (By default, DamageCharAt actions affect Health.)

(This action is actually probably better suited for use with traps than DamageChar, since it can affect enemies without unique names identifying them who bumble into traps.)

The installers have been updated.
Title: Re: Developer's Log
Post by: CraigStern on August 02, 2013, 01:37:44 PM
Added new destructible object trigger type: Use. Unlike Pressure triggers, Use triggers simply give the player the option to trigger the object when a character is adjacent to it and has not yet attacked. This will then run the associated script, just like a Pressure triggered object.

There is now a third type as well, Use Once. This creates an object that can be used once and only once. (Recommended for treasure chests!)
Title: Re: Developer's Log
Post by: CraigStern on August 02, 2013, 02:41:32 PM
So, how do you code script for a Use trigger, since the player can keep activating it over and over? Here's an example:

Code: [Select]
<Unit trigger="Use,UseSwitch">0,99,Switch,7,11,None,None</Unit>

<Dialog>OnTurn/0//
<Action>SetVal/LightsAreOff,=,0</Action>
<Action>EndConvImmediately/</Action>
<Reply>.../EndConv</Reply></Dialog>
 
  <Script>UseSwitch
<Action>IfValRun/LightsAreOff,=,0,TurnLightsOff</Action>
<Action>IfValRun/LightsAreOff,=,1,TurnLightsOn</Action>
<Action>IfValRun/LightsAreOff,=,2,PrepLightsForTurningOn</Action>
  </Script>
 
  <Script>TurnLightsOff
<Action>ChangeCondition/Global Lighting,Night</Action>
<Action>SetVal/LightsAreOff,=,2</Action>
  </Script>
 
  <Script>TurnLightsOn
<Action>ChangeCondition/Global Lighting,Indoors</Action>
<Action>SetVal/LightsAreOff,=,0</Action>
  </Script>
 
  <Script>PrepLightsForTurningOn
<Action>SetVal/LightsAreOff,=,1</Action>
  </Script>

You'll notice we're doing a few things here. First, we've set up our Switch with a Use trigger that runs the script UseSwitch when it's activated. We've also set up our map so it sets a custom integer variable named LightsAreOff to 0 at the very start of the battle (that's what the OnTurn/0 dialog is for). So far so good!

Next, we have UseSwitch itself. UseSwitch simply checks the value of LightsAreOff to see what it should do next, then runs the appropriate script. If LightsAreOff = 0, then that means the lights are on and flicking the switch should turn them off; thus, it runs TurnLightsOff. If LightsAreOff = 1, then that means the lights are off and flicking the switch should turn them on; thus, it runs TurnLightsOn.

All simple so far, yes? The only thing that gets a little tricky is that IfXRun actions don't behave in an if/else manner; we can't just set LightsAreOff to 1 in TurnLightsOff, or else UseSwitch will detect that the value is 1 and turn them right back on in the very next line! We have to be a little tricky and set them to 2 in TurnLightsOff; then, once we've passed the second line in UseSwitch, we then change the value from 2 back to 1 using PrepLightsForTurningOn.

And now, just to prove that this actually works: here's a movie showing it in action!

http://youtu.be/Ru99YVUW5n8 (http://youtu.be/Ru99YVUW5n8)
Title: Re: Developer's Log
Post by: CraigStern on August 05, 2013, 02:19:55 PM
There's now an optional sixth parameter that can be used with the SpawnChar action: triggers. This works just like triggers added to the <Unit> tag in a map, except that the trigger type and script to run are delimited with a colon instead of a comma.

Fixed a bunch of bugs (version number wasn't showing up, game froze whenever SpawnChar was used, etc.) and updated the installers.

Did some work figuring out what size portraits we'll need for larger characters (golems and such), and did a test (http://www.youtube.com/watch?v=WIMInmGMd6M&feature=youtu.be) to determine the appropriate size for mouth variations in anticipation of possible support for talking animations.
Title: Re: Developer's Log
Post by: CraigStern on August 05, 2013, 03:05:29 PM
Aaaaand a second test: https://www.youtube.com/watch?v=GxriucwN-yI (https://www.youtube.com/watch?v=GxriucwN-yI)
Title: Re: Developer's Log
Post by: CraigStern on August 05, 2013, 03:16:13 PM
I've begin some preliminary work on random battlefield generation!

For a variety of reasons, I have decided to limit this feature to dungeons for now, since (a) dungeons are the environment with the greatest potential for interesting procedural configurations, and (b) making a generator that intelligently combined all of the various outdoor tilesets would be a nightmare. (And really, I'd like to get started working on the campaign itself again, so I'm limiting the feature to a scope that I know I can finish somewhat expeditiously.)

Right now, the plan is to create an algorithm that intelligently cobbles together dungeons out of 5 x 5 prefabricated chunks. (Below is a picture of one such chunk.) I haven't 100% decided on all of the details yet, but I imagine that hallways will mostly be 3 x 5 in size, some with destructible objects to form choke points. I'll post more about it tomorrow when I make more progress. :)
Title: Re: Developer's Log
Post by: CraigStern on August 06, 2013, 03:34:58 PM
Today was a dull day governed by business, administrative and marketing work. Blegh. I will return to coding tomorrow.
Title: Re: Developer's Log
Post by: CraigStern on August 06, 2013, 09:03:57 PM
Since we didn't have any super-exciting updates out of me today, how about some sweet new character portraits? :D

Here are the crossbowman and skiakineticist portraits:
Title: Re: Developer's Log
Post by: CraigStern on August 06, 2013, 09:16:21 PM
Oh, also: Tyvon finished up the spriggat breath attack animations! :D
Title: Re: Developer's Log
Post by: CraigStern on August 07, 2013, 02:44:31 PM
Fixed a bug that prevented OnReachingSpace from working when you specified a team but not a particular named character as required to trigger the dialog.

Laid more groundwork for random level generation. (This one's gonna take a while, folks.)
Title: Re: Developer's Log
Post by: CraigStern on August 08, 2013, 02:16:29 PM
Created an updated version of the "What is Telepath Tactics?" trailer showing off some of the game's new character animations and portrait art!

In the process of collecting the footage, I discovered a number of bugs that I'm in the process of fixing.
Title: Re: Developer's Log
Post by: CraigStern on August 09, 2013, 12:19:05 PM
Created new 4-player, multiplayer map: Tavern.

The Control key now allows you to examine space properties; Shift no longer has this function. (It was annoying me that the space info would pop up every time I used the Shift + E hotkey combo.)

I've finished updating the "What is Telepath Tactics?" trailer (http://youtu.be/2bpSkJxuOz0) with new footage.
Title: Re: Developer's Log
Post by: CraigStern on August 09, 2013, 12:37:18 PM
Here's a screenie from the Tavern map, making use of some new destructible object sprites (including new double doors that each occupy a single space!)
Title: Re: Developer's Log
Post by: CraigStern on August 09, 2013, 01:11:52 PM
Fixed a bug where the game would freeze if a Lock or Unlock action failed to find a door at the listed coordinates.

Also: the spriggat animations are now done. We're moving on to the Stone Golem now. :D

Title: Re: Developer's Log
Post by: CraigStern on August 09, 2013, 03:11:57 PM
I've updated the map editor: when loading or saving maps, it now automatically defaults to the Documents > My Games > Telepath Tactics folder, where the subfolders with user-created maps are stored. The map editor installers have been updated online.

Updated the game installers, too. :)
Title: Re: Developer's Log
Post by: CraigStern on August 11, 2013, 12:08:29 PM
Two new script actions: RemoveItem and RemoveItemByName.

RemoveItem takes two parameters: the name of the character, and the numerical position of the item to remove from that character's inventory. (You can see the numerical position of an item by looking at a character's inventory: the topleftmost item is at position 0; the item to its right is at position 1; and so on.) The game will unequip and remove that exact item from the character's inventory.

RemoveItemByName takes two parameters: the name of the character, and the name of the item to remove from that character's inventory. The game will then unequip and remove the first instance of an item with that name that it finds in the character's inventory.
Title: Re: Developer's Log
Post by: CraigStern on August 11, 2013, 02:00:38 PM
Made a couple of improvements to Exploration mode:

--Shove and other knockback abilities can now be used indefinitely without graying out a character
--The Actions Menu now remains onscreen while you move characters around

Also, I've updated the manual with documentation of the Fatigue condition and the new remove item actions.

I've updated the installers online, along with the online copy of the manual.
Title: Re: Developer's Log
Post by: CraigStern on August 12, 2013, 02:50:57 PM
Sooooo, today was mostly eaten up fixing some rather complicated bugs that I didn't catch back when I was coding in support for animations in Move abilities. Among the fixes:

-- you can once again undo after using a Move skill with an afterAtk of Unlimited
-- you can now use Teleport move skill animations of any length (as long as they're 12+ frames long)
Title: Re: Developer's Log
Post by: CraigStern on August 20, 2013, 09:17:16 PM
So! This past week was basically 100% dedicated to boring marketing and business stuff in preparation for PAX Prime. I spent today updating the public alpha demo; that should be updated online sometime tomorrow, once I've finished testing it and confirming that everything works as advertised. (Hopefully, I'll have some time tomorrow to get back to working on game features.)
Title: Re: Developer's Log
Post by: CraigStern on August 21, 2013, 11:50:06 AM
Alt is now the new key to view space info; Control was annoying me too much, as it would activate every time I hit Ctrl + F.

I've fixed some bugs, including one that would occasionally freeze the game.

I've finished making improvements to the public demo; I've updated it online. ;)
Title: Re: Developer's Log
Post by: CraigStern on August 21, 2013, 12:39:11 PM
I've received the dungeon tileset from Lorne Whiting; I've been testing them out, and so far they're just fantastic! Here's a screenshot from some of my playing around with them in the map editor. :)
Title: Re: Developer's Log
Post by: CraigStern on August 22, 2013, 11:38:04 AM
New dialog action: RemoveTrigger. Takes two parameters: y coordinate and x coordinate. Removes all triggers from objects at those coordinates.

New dialog action: AddStatus. Takes three parameters: character name, status effect, and element. "Character name" tells the game which character to give the status effect to; "status effect" tells the game which status effect to give him/her; and "element" tells the game what sort of elemental resistance applies for purposes of determining whether the character does, in fact, end up getting the status effect. (Note: You can use AutoAdd for the element parameter if you want the status effect to automatically apply without any chance of resisting it.)

New dialog action: AddStatusAt. Exactly like AddStatus, but in lieu of character name, there are two other parameters: y coordinate and x coordinate. This attempts to give a status effect to whatever character is at those coordinates.


Example: AddStatusAt          6,4,Burning,Heat will check for a character at the coordinates 6 , 4--if it finds one, it will use the character's Heat resistance to determine if he/she gains Burning status, just as if the character were hit with a Heat attack.
Title: Re: Developer's Log
Post by: CraigStern on August 22, 2013, 12:22:28 PM
Fixed a bug that was causing counterattacking objects (e.g. spiked barricades) to spawn a directional arrow upon dealing damage.

Fixed a bug that was causing certain Frozen or Burning destructible objects to visibly stretch onscreen.

Fixed a bug that was causing the Run action to not work.

Fixed a bug that was causing the game to not save custom string variables correctly between battles.

Fixed a bug that was causing the AI to pointlessly consume Adrenaline Pills.

Made the AI distinguish between triggered and equipped items; it no longer attempts to use equipped items.

You can no longer gain points for damaging or killing characters from allied armies.


The early access builds have been updated online. ;)
Title: Re: Developer's Log
Post by: CraigStern on August 23, 2013, 12:00:35 PM
You can now have dialog be triggered more than once in any given scene. To enable this feature, add an r attribute to branch 0 of whatever conversation you want to do this with (for now, this means opening up the XML file and doing it manually).

Next, set the r attribute to the number of repetitions you want the conversation to have. (By default, all conversations have an r value of 1.) If you set r to 3, the dialog will be capable of being repeated three times, after which point it can no longer be triggered. If you set r to any value less than 1, the dialog will become capable of being triggered an infinite number of times.

For example:

Code: [Select]
  <Dialog branch="0" r="-1">
    OnReachingSpace/6,0,,0//Exit the lissit camp?
    <Reply>Stay./EndConv</Reply>
    <Reply>Leave./NextScene</Reply>
  </Dialog>

This will trigger dialog with the option to progress to the next scene every time the player moves one of his or her characters onto space 6,0--and the dialog will continue to trigger no matter how many times the player moves onto the space and selects "Stay."
Title: Re: Developer's Log
Post by: CraigStern on August 23, 2013, 02:45:42 PM
New action: RemoveTriggerObj. Takes two parameters: Y Coordinate and X Coordinate. Finds all objects on that space with triggers and removes those objects from the battlefield. (Basically, this is for removing one-use traps and other scripted objects.)

Fixed a bug that was causing the game to crash with usage of condition script actions (IfValRun, etc.)
Title: Re: Developer's Log
Post by: CraigStern on August 23, 2013, 04:07:38 PM
The installers have been updated. ;)
Title: Re: Developer's Log
Post by: CraigStern on August 26, 2013, 01:26:14 PM
Fixed: a bug that was causing the game to not recognize the names of various characters in maps that allowed the player to deploy her own troops. (This resulted instant death if the map also required you to keep a named character alive.)

The installers have been updated.
Title: Re: Developer's Log
Post by: CraigStern on August 26, 2013, 02:56:57 PM
Fixed a few formatting errors in assigning graphics to different items.

Got the game's first oversized character portraits: the shadowlings! :D
Title: Re: Developer's Log
Post by: CraigStern on August 27, 2013, 09:29:42 PM
Much of today was spent packing and preparing for my flight to Seattle tomorrow afternoon. I did manage to get in a few improvements, though! Most notably, I made it so you can now use special characters in a conversation's trigger parameters (-VAL:- being perhaps the most important).

Also: I tested, found and fixed a few bugs today.

--character level-ups once again trigger properly after using Shield skills
--movement tiles now disappear when the Rally command is selected
--removed a stray pixel from the right-facing Spear attack animation
Title: Re: Developer's Log
Post by: CraigStern on August 28, 2013, 07:41:30 AM
Fixed: a bug where the game would fail to account for updated character numbering in the movement tiles after grabbing an item sack off the battlefield, resulting in the wrong character moving afterwards.
I've updated the demo and the alpha version online.

Also: this will likely be my last update until I return from PAX next Tuesday. See you all in about a week!
Title: Re: Developer's Log
Post by: CraigStern on August 29, 2013, 12:11:08 AM
Surprise! It turns out that long, boring plane rides are great for finding and fixing bugs. New fixes:

- volume settings now “sticking” when changed in battle
- character detail pop-ups once again load properly
- character portraits once again load properly in deployment tiles
- shadowling portrait now displays for Hartlis in Kovit campaign
- pressing Escape while in battlefield looting mode now deselects the current character
- “Menu” pop-up now disappears when the “Menu” button is pressed in battle
updated the game icon
- “Left-click to speed up.” textfield once again appears in fullscreen mode during scrolling text cut scenes
- updated installer / game icons

I've updated the installers and the demo online. ;)
Title: Re: Developer's Log
Post by: CraigStern on August 31, 2013, 06:38:08 PM
Demo bug fixes:

--you now once again have Bartleby and Lakshmi in lieu of Alvin for the Ploutos Weapons Depot battle

General bug fixes:

--Lakshmi and Astrid now start equipped with their default weapons and can once again launch attacks
--you can now quit the game during battlefield loot collection using hotkeys
--attempting to push a character off the battlefield no longer crashes the game

The installers (both demo and early backer) have been updated.
Title: Re: Developer's Log
Post by: CraigStern on September 04, 2013, 02:21:11 PM
I'm back! In fact, I got back last night, but was so busy / tired that I didn't get a chance to update this until today. (I'm still tired, actually, and a bit sick, but the show must go on!)

So, I made some changes based on feedback at PAX:

--the actions menu is now always visible alongside character movement tiles, resulting in far fewer clicks to get what you want done. You'll never see that "Actions" button again, and you'll seldom even see the Move button.
--the actions menu now stays onscreen after characters attack and after you hit Done.
--for those occasions where you don't want move tiles cluttering the screen, you can now right-click them to make them disappear.
--all of the action buttons with hotkeys now display their associated keyboard shortcuts on mouseover.

Also: there are now a bunch of new item graphics! A few are getting edited now, but most of them are done and ready for use. A few are for quest items (letter, package), a bunch are new weapons (rapier, main gauche, halberd, throwing knife, throwing axe), we've got decanters of wine, two varieties of boot graphics, and color variations on the gem graphic. Once edits are done, we'll have orb graphics available as well. :)
Title: Re: Developer's Log
Post by: CraigStern on September 05, 2013, 05:38:35 PM
Working on fixing a particularly irritating bug.

In the meantime, why not look at some new character portraits? We now have the male red spriggat and bronze golem portraits! :)
Title: Re: Developer's Log
Post by: CraigStern on September 05, 2013, 09:26:25 PM
OH THANK GOD, I FIXED IT.

The bug was super-dumb: basically, I rearranged the way that data was organized elsewhere in the code when adding in tile descriptions, and I forgot to make a commensurate change in the movement AI algorithm to determine whether a space was filled with water or lava. Really, really dumb.

Anyway! All you need to know is that the AI will now once again swim intelligently toward shore no matter how far away it is thrown into water or lava.

The installers have been updated.
Title: Re: Developer's Log
Post by: CraigStern on September 06, 2013, 04:28:18 PM
Finally got around to writing and posting the monthly update for August on the site's front page.

Tested the latest version of the Dungeon tileset; sent off requests for a few final tiles to fill a perceived need. Added /  tweaked existing Dungeon destructible objects to the game. Here is how the tileset is looking right now; pretty darn good, I think!
Title: Re: Developer's Log
Post by: CraigStern on September 09, 2013, 12:28:33 PM
Finished adding in the Dungeon tileset tile data. Spent some time giving artist feedback.
Title: Re: Developer's Log
Post by: CraigStern on September 09, 2013, 01:56:42 PM
Two new script actions: SpawnFloatingText and SpawnFloatingTextAt, both of which create your own little text pop-ups on the screen:

SpawnFloatingText – adds a short-lived animated text pop-up above a specified character. There are four parameters: the text to use, the name of the character to add it above, the color of the text in hexidecimal format, and the number of frames to delay the text. (The third and fourth parameters are optional; if not added, the game will assume that the text is yellow and that there is no delay.)

SpawnFloatingTextAt – adds a short-lived animated text pop-up above a specified character. There are five parameters: the text to use, the Y coordinate, the X coordinate, the color of the text in hexidecimal format, and the number of frames to delay the text. (The fourth and fifth parameters are optional; if not added, the game will assume that the text is yellow and that there is no delay.)


Note: do not use commas in the first parameter or bad things will happen.
Title: Re: Developer's Log
Post by: CraigStern on September 10, 2013, 08:22:58 AM
Remember how you could stick code within an item's tags in ItemClasses.xml to make it change an integer variable upon use? I've decided that it would be much more flexible to simply let it run a named script upon use (which can then change an integer value in addition to roughly a million other things).

I got that working yesterday, but it resulted in a bug: whenever the script changed a value such that it triggered a conversation via an OnVal trigger, the conversation would fail to open. I'm going to fix that today and get the build updated.
Title: Re: Developer's Log
Post by: CraigStern on September 10, 2013, 03:14:47 PM
All right! I fixed that bug, plus one that made the game freeze when enemies tried to move after being thrown into a body of water / lava from which there is no escape (e.g. the one in Donut Tower).

I also made the Actions Menu spawn at the top of the screen by default and changed some of the tutorial dialog during the Kovit campaign to make things less confusing for new players. The installers have been updated.
Title: Re: Developer's Log
Post by: CraigStern on September 11, 2013, 01:40:16 PM
Woo! I've received the final items graphics from Julia Buge. Among them are the orb graphics. Just look at these sexy things!
Title: Re: Developer's Log
Post by: CraigStern on September 11, 2013, 01:41:25 PM
(We also have green, yellow and gray varieties.)

On my end, I've been working some more on random dungeon generation. Things are progressing well; hopefully I'll have it working in some basic way by Friday. :)
Title: Re: Developer's Log
Post by: CraigStern on September 12, 2013, 11:35:41 AM
Work continues on procedural level generation. In the meantime, we now have a stone golem portrait. :)
Title: Re: Developer's Log
Post by: CraigStern on September 19, 2013, 11:47:49 AM
As expected, procedural level generation continues to be a difficult slog. I just now got a level to both (1) generate and (2) actually load for the first time. As you can see from the screenshot below, there is still a lot of work left to do (both from a coding perspective and a design perspective), but this is a start.

Although progress on this feature has been painfully slow, I'm pleased to announce that we've now completed all of the basic 22 character class portraits, and have moved on to NPC portraits. From there, we'll begin doing character portraits for the campaign's unique characters.

The first NPC portrait is already complete: a portrait for the cavalier's giant mantis mount! :D
Title: Re: Developer's Log
Post by: CraigStern on September 19, 2013, 05:41:20 PM
I'm continuing to make steady progress on procedural level generation. (See the latest below.)

Also, a small fix: manipulating doors, buttons and switches no longer prevents a character from acting again afterwards in exploration mode. :)
Title: Re: Developer's Log
Post by: CraigStern on September 23, 2013, 10:48:33 AM
I'm reasonably happy with the way the game now randomly selects, places, and connects rooms! The next two steps:

Title: Re: Developer's Log
Post by: CraigStern on September 23, 2013, 11:14:50 AM
Boom! You can now have the game randomly select an item to place in a character / object's inventory by using -R- instead of the item name in the character / object's inventory. Like so:

Quote
<Unit>0,99,Chest,17,20,None,-R-</Unit>

That is an actual line I'm now using to make one of the treasure chests in the multiplayer Tavern map spawn with a random item. Random item selection is weighted just like the item selection for random item drops, so if you decide to use this, make sure you pay attention to the commonality attribute in ItemClasses.xml! ;)
Title: Re: Developer's Log
Post by: CraigStern on September 23, 2013, 11:41:31 AM
Fixed: Siripent not spawning with a mace, Lakshmi Bana getting two crossbows, and characters / objects spawning on water not producing splashing particle effects.
Title: Re: Developer's Log
Post by: CraigStern on September 23, 2013, 03:09:20 PM
I've further extended the functionality for randomized items in character / object inventories: you can now specify a commonality range instead of having the game pick blindly from the entire weighted item list. To have it pick randomly from within a commonality range, use this format:

R[X-Y]

In place of X, use the lowest commonality value to allow; and in place of Y, use the highest commonality value to allow. So, for instance, this will only allow items with a commonality value between 0 and 4 (i.e. really rare items):

Code: [Select]
<Unit>0,99,Chest,2,20,None,R[0-4]</Unit>
In any event, the game will still pick from the weighted item list; it will simply discard choices which fall outside the allowed range.
Title: Re: Developer's Log
Post by: CraigStern on September 23, 2013, 05:05:19 PM
Dungeons now spawn enemies! Spawn locations are chosen at random from a selection of possible spots designated within each room. The enemies themselves are picked from a list of potential enemies that can spawn within the particular dungeon. ;)
Title: Re: Developer's Log
Post by: CraigStern on September 23, 2013, 05:17:01 PM
I've updated the installers online.

There is still a fair bit of work left to do, though. Currently, dungeon generation parameters (dungeon size, number of enemies, and list of enemy types) are all hard-coded; tomorrow, I will work on making them editable in XML as part of the GENERATE_RANDOM_LEVEL String.

Also, I am aware of some bugs in the dungeon generation algorithm. (In particular, it has a bad habit of sometimes placing floor tiles over segments that should be wall.) I'll be working on that going forward as well.
Title: Re: Developer's Log
Post by: CraigStern on September 24, 2013, 09:05:11 AM
We have new stuff on the art front! I've just received mock-ups of the first of the individualized attack buttons from Julia Buge, and I think they look pretty swell.

The Photokineticist's casting animation has been completed, and might I say that it looks pretty grand! His cape flaps up and down in a most satisfying manner. We have newcomer Lan Giniewski to thank for this one; he's going to be helping Tyvon Thomas out with completing the game's mammoth load of character animations going forward.

Lorne Whiting has gotten me an initial draft of the expanded Grass tileset, and it's looking quite nice! Very soon, we'll have outdoor elevation tiles, chasm tiles, and angled shore tiles to play with.

We've also got a couple of new character portraits that I forgot to mention: the female spriggat and the male villager. You can see those below.
Title: Re: Developer's Log
Post by: CraigStern on September 24, 2013, 12:40:55 PM
I just sent out a mammoth email to Julia with all 105 of the attack icons we need for the game, complete with descriptions and references. It took a few hours just to come up with everything and write it all out. This is the kind of thing it would be useful to have an art director to handle. Oh well! Back to coding, now.
Title: Re: Developer's Log
Post by: CraigStern on September 24, 2013, 01:52:59 PM
All right! You can now change the properties of a dungeon to be generated within the nextLevel string itself. Use the following format when telling the game to randomly generate a level:

Code: [Select]
GENERATE_RANDOM_LEVEL[Mines,DeviousSchemes2,1,28,10-16,Bandit/Swordsman:Bandit/Bowman:Bandit/Healer]
We'll go through this step by step. First, name the level GENERATE_RANDOM_LEVEL, then add a couple of square brackets after it.

Within the square brackets, we're going to have six parameters delimited by commas: next scene, music track, number of floors, number of tiles along one full side of a floor, numerical range of enemies the level can spawn, and the types of enemies that can spawn.

So in this example, the parameters are:

Mines,DeviousSchemes2,1,28,10-16,Bandit/Swordsman:Bandit/Bowman:Bandit/Healer

Meaning that the game will generate a dungeon that loads Mines after completion; that it will play the music track DeviousSchemes2; that it will be a single floored dungeon; that each floor will be 28 by 28 tiles in size; that each floor will have between 10 and 16 enemies; and that the enemies will be some combination of Bandit Swordsmen, Bandit Bowmen, and/or Bandit Healers. Notice that each type of enemy is listed in slash notation, and that the types are each delimited by a colon. It's important that you get this right, or enemies will not spawn on the level correctly!

Note: as of right now, the game supports only single-level dungeons.
Title: Re: Developer's Log
Post by: CraigStern on September 26, 2013, 11:28:40 PM
Update! I've fixed a couple of bugs relating to falling characters:

(1) when a flying character hovering over the side of a cliff pulls another character off said cliff, the game will no longer freeze when the characters collide; instead, the flying character will take crushing damage from the falling character (the amount depending on how far the falling character has fallen at the moment of collision), and the falling character will continue to fall.

(2) when one character falls and lands on a space occupied by another character, the second character will take crushing damage and the falling character will be pushed onto the first available adjacent space.

Also, I've gone through all of the new grass tiles and added their tileset data.

Tomorrow, I playtest to ensure that we're not missing any tiles; if we aren't, I will update the build online.
Title: Re: Developer's Log
Post by: CraigStern on September 27, 2013, 11:05:08 AM
Fixed a thing that was annoying me: during movement mode, mousing over a space containing an item sack now causes the item sack's info to pop up even though it's covered by a movement tile. ;)
Title: Re: Developer's Log
Post by: CraigStern on September 27, 2013, 02:06:35 PM
Another UI improvement: next character and rally buttons no longer appear on the actions menu unless you have more than 1 character under your command.
Title: Re: Developer's Log
Post by: CraigStern on September 27, 2013, 04:56:10 PM
Bug fix: you can no longer throw characters through walls or closed doors!

Feature addition: throwing a character or object into another character or object will now cause Crush damage to the character or object it was thrown into. The base amount of damage dealt varies depending on the maximum hit points of the thing thrown (calculated as 1/3 the max HP of an object, or 1/4 the max HP of a character).

The base damage from having something thrown into you can never be less than 5. That's just base damage, though: Crush resistance can reduce it below 5.

Here's a video showing this in action. (http://youtu.be/euyQqxgO2Ds) :)
Title: Re: Developer's Log
Post by: CraigStern on September 27, 2013, 05:03:25 PM
Oh, also: we have the female villager portrait now. :D
Title: Re: Developer's Log
Post by: CraigStern on September 29, 2013, 04:06:29 PM
Spent some time giving artist feedback today.

Fixed: a bug that was causing the AI to freeze up. Also, the little bar that displays the name of selected attacks is now positioned properly at the top of the screen when fullscreen mode is on.

We now have a Pyrokineticist attack animation!

Currently putting the Grass tileset through its final paces so we can get any necessary revisions.
Title: Re: Developer's Log
Post by: CraigStern on September 30, 2013, 01:37:35 PM
Finished testing and sending out revisions for the expanded Grass tileset.

Fixed a couple of bugs related to character portraits (in particular: one where portraits would get misplaced if you swapped between windowed mode and fullscreen on a branch with multiple replies).

Title: Re: Developer's Log
Post by: CraigStern on September 30, 2013, 03:05:52 PM
I've put the first, rough version of an animated experience bar into the game. I'll be tweaking it tomorrow and most likely updating the build then as well. :)
Title: Re: Developer's Log
Post by: CraigStern on October 01, 2013, 09:43:33 AM
Fixed a bug with the "Done" button in the character deployment menu.

Added in all the remaining unit portraits.

Stone Golem's Fist animation is done! Added that into the game.

Finished up adding the animated experience point bar; added a sweet little glow animation to it when it hits 100 experience points and the character levels up. :)

The early access installers have been updated online.
Title: Re: Developer's Log
Post by: CraigStern on October 01, 2013, 08:50:59 PM
Fixed a bug where CPU-controlled characters that can move after attacking (like bowmen) would interrupt a character's death monologue by moving after striking the final blow.

I've updated the alpha installers online.
Title: Re: Developer's Log
Post by: CraigStern on October 07, 2013, 10:43:02 PM
Aaaaand I'm back home after a week in LA for Indiecade. Development continues tomorrow!
Title: Re: Developer's Log
Post by: CraigStern on October 09, 2013, 11:38:34 AM
Okay! Spent a bunch more time giving artist feedback. We now have a basic attack animation for the Mentalist, and finished NPC portraits for male and female villager children; we should have a Kinetic Pull animation and an expanded Grass tileset very soon as well.
Title: Re: Developer's Log
Post by: CraigStern on October 09, 2013, 12:01:48 PM
I've been trying to pinpoint the cause of a particular glitch that's causing attacks to sometimes damage unrelated targets and shake the screen. So far, I've only noticed it happening when the CPU launches attacks, but it seems pretty inconsistent. I'll see if I can figure it out today.
Title: Re: Developer's Log
Post by: CraigStern on October 09, 2013, 01:17:04 PM
Okay! I seem to have found and fixed the issue with attacks damaging other targets for no reason. Also, I fixed a few other bugs: swimming no longer triggers inappropriate animations; lighting no longer cuts off partway through right-facing character attack animations; and mousing off of an action button no longer acts as if you've selected Swim for characters stuck in water or lava.

The early access installers have been updated online.
Title: Re: Developer's Log
Post by: CraigStern on October 10, 2013, 12:22:59 PM
Lan Giniewski has sent me finished Kinetic Pull animations for the Mentalist! I also got Lorne to send me the 7-frame prototype animation he started last year for the Mentalist's Levitate animation; I spent about an hour expanding it into a full 16-frame animation, and I'm quite pleased with the results. As of right now, the Mentalist is fully animated.
Title: Re: Developer's Log
Post by: CraigStern on October 11, 2013, 09:32:51 AM
We now have a complete expanded Grass tileset! I plan to update the TileData XML file for this tileset today so it becomes fully useable.
Title: Re: Developer's Log
Post by: CraigStern on October 11, 2013, 01:51:29 PM
I've now entered data for all of the expanded Grass tileset's 362 tiles. Super boring, but it had to be done!

I've also added in a portrait for Lakshmi Bana in the Kovit campaign, and added portraits to all of the various character death monologues.

I've updated the installers online.
Title: Re: Developer's Log
Post by: CraigStern on October 14, 2013, 01:11:45 PM
I've now added a feature to the game where it informs you if you're about to use a damaging attack on an allied character and has you confirm the attack.

This is primarily designed for new players who might not notice when they attack their own characters--the confirmation window won't trigger when you use AOE abilities that also hit enemies, or when you use attacks with the "Falling" element (i.e. Shove or Throw). That might sound like a waste of time, but you would be amazed how often I've seen new players just casually nail their own allies with Sword and Bow attacks without even realizing they were doing it.
Title: Re: Developer's Log
Post by: CraigStern on October 14, 2013, 02:10:43 PM
Fixed a few snafus in the game's code determining when certain things could be moved onto a space. In particular: you can now shove and pull characters onto a space with an open door, and you can no longer throw destructible objects (other than item sacks) onto a space with another destructible object (unless the second object is a bridge). Oh, and multiple item sacks can't share the same space either. :D
Title: Re: Developer's Log
Post by: CraigStern on October 14, 2013, 11:18:46 PM
Redid the feature preventing the player from accidentally targeting attacks on an empty space so it doesn't dump the player back to the actions menu afterwards; it now feels consistent with the "don't accidentally attack an ally" feature.
Title: Re: Developer's Log
Post by: CraigStern on October 16, 2013, 04:50:33 PM
I've created a video showing off the latest character animations in Telepath Tactics: http://www.youtube.com/watch?v=ZLEp28KCCJk (http://www.youtube.com/watch?v=ZLEp28KCCJk)

I've also added in support for a common inventory. The game now shuttles the contents of all uncollected item sacks into the common inventory automatically at the end of a battle instead of entering loot collection mode. The common inventory saves and loads properly; the next step is to add an interface to allow items in the common inventory to be doled out to characters (and to allow characters to send items to the common inventory).
Title: Re: Developer's Log
Post by: hotmitts on October 17, 2013, 05:24:20 AM
animations are looking really nice!
Title: Re: Developer's Log
Post by: CraigStern on October 17, 2013, 11:07:26 AM
As a prelude to coding the common inventory, I'm fixing up some of the rough edges in the existing character inventory code; in particular, I'm adding support for larger character inventories.

animations are looking really nice!

Thanks!
Title: Re: Developer's Log
Post by: CraigStern on October 17, 2013, 11:54:10 AM
Update: character inventories can now hold up to 54 items. The inventory screen now matches the size of the inventory more precisely; there's now code to keep it from going offscreen if it grows large. The game now enforces a 54-item inventory limit for each character; items beyond that number cannot be grabbed, and will remain in their item sacks.
Title: Re: Developer's Log
Post by: CraigStern on October 18, 2013, 02:28:15 PM
I've coded the basic common inventory screen UI. It accommodates up to 130 items.

As of right now, you can inspect the things in your common inventory, but that's about it. Next, I'm going to work on making it so you can take items from the common inventory and give them to characters--and vice versa.
Title: Re: Developer's Log
Post by: CraigStern on October 21, 2013, 06:28:58 AM
The Stone Golem Throw animations have been added to the game!

Fixed a bug that was causing the game to freeze when using the Throw ability.
Title: Re: Developer's Log
Post by: CraigStern on October 21, 2013, 12:07:55 PM
Work continues on the common inventory system. (You can see the current version as of early this morning by using Shift + I in battle. I've updated the installers for purposes of pushing out the bug fix mentioned in the last post.)
Title: Re: Developer's Log
Post by: CraigStern on October 21, 2013, 01:46:26 PM
New dialog action:

OpenInv – this opens the Common Inventory menu. It has one parameter: the name of the character currently accessing the Common Inventory. (If you want to display the entire team for purposes of swapping items into and out of the Common Inventory, use WHOLE_TEAM for the parameter value.)

Also, you can now use Common Inventory for the first parameter with GiveItem to have an item spawn in the common inventory.
Title: Re: Developer's Log
Post by: CraigStern on October 21, 2013, 03:34:18 PM
You can now use Common Inventory for the first parameter with RemoveItem and RemoveItemByName to remove an from the common inventory instead of removing it from a particular character.

You can now successfully open the common inventory in both a regular battle and a static cut scene.
Title: Re: Developer's Log
Post by: CraigStern on October 21, 2013, 03:44:25 PM
I now have the beginnings of a bar that shows everyone on your team and will allow you to drag items from the common inventory onto your characters to give them things.
Title: Re: Developer's Log
Post by: hotmitts on October 22, 2013, 12:54:25 AM
The Stone Golem Throw animations have been added to the game!



Those are great, beautiful!
Title: Re: Developer's Log
Post by: CraigStern on October 23, 2013, 11:13:04 AM
Work is continuing apace on the common inventory screen. Things are complicated a bit by the fact that it needs to work in both battles and narrative cut scenes (which work very differently in terms of how they access character inventory data), so that's slowing things down somewhat, but progress is continuing.

In other news, I've received the first drafts of the Eingeer's skill animations from Lan; those should hopefully be finished and in-game sooner rather than later.
Title: Re: Developer's Log
Post by: CraigStern on October 23, 2013, 09:04:03 PM
Okay! Engineer animations are now complete and in the game. ;)

Also, the system that lets you drag items into character inventories from the common inventory is working smoothly. Tomorrow, I'll add a system to let you drag items out of character inventories and into the common inventory.

Added new instructions re: common inventory dialog actions to the manual.

Fixed a bug that was causing the game to hang when using an AOE attack that both hits an ally and a destructible object, but no enemies (this had to do with changes to the code I made while adding in a confirmation dialog for attacks on allies).

And finally: I've updated the installers online!
Title: Re: Developer's Log
Post by: CraigStern on October 24, 2013, 04:20:30 PM
All right! You can now click a character portrait within the common inventory menu to open up that individual character's inventory. From there, you can Drop the item down into the common inventory. ;)

There's one last piece of functionality to add before all of this inventory management stuff is done with: allowing characters to equip and unequip items while in the common inventory menu. I'll tackle that tomorrow.
Title: Re: Developer's Log
Post by: CraigStern on October 28, 2013, 04:43:20 PM
Okay! Equipping and unequipping now works in the common inventory menu in both battles and cut scenes. That was much more of a pain than I was hoping it would be, but it's done now. I've also finished polishing up the common inventory menu and fixing bugs now, so I dare say it's good to go!

Also: Tyvon has completed the Stone Golem's Smash animation, meaning that the Stone Golem animations are now finally complete! Work is now proceeding on the Bronze Golem's attack animations.

One last thing: I've added some new functionality to IfStatGoTo and IfStatRun. For most stats, you can now stick the word BASE in front of it in the second parameter to have the game ignore temporary modifiers and just check the base stat. For instance: let's say that Emma Strider has a Strength of 7, but she's used a Whet Stone in this particular battle, so her Strength is effectively 9 for the rest of the battle. IfStatRun     Emma Strider,Strength,g,8,MeetsStrengthReq will trigger the MeetsStrengthReq script, whereas IfStatRun     Emma Strider,BASE Strength,g,8,MeetsStrengthReq will not.
Title: Re: Developer's Log
Post by: CraigStern on October 29, 2013, 10:50:22 AM
I'm fixing up a few final things with procedural level generation, then I'm going to add in a function to the computer AI that has it rotate characters to avoid being backstabbed after moving.
Title: Re: Developer's Log
Post by: CraigStern on October 29, 2013, 01:52:28 PM
Procedural generation; fixed! Working on some rotation routines right now.
Title: Re: Developer's Log
Post by: CraigStern on October 30, 2013, 03:17:06 PM
The AI now intelligently rotates characters to face an appropriate direction after moving!

The AI will turn the character's back to a wall or the edge of the screen if it can; if it can't, it'll try to face what direction the closest enemies are predominantly in.

The installers have been updated online; alpha backers are encouraged to update their installs and try it out! ;)
Title: Re: Developer's Log
Post by: CraigStern on October 30, 2013, 04:02:50 PM
I've been wanting to make it so you can create custom AOE configurations in the game for some time now; I've started work on making that happen. ;)
Title: Re: Developer's Log
Post by: CraigStern on October 30, 2013, 05:12:55 PM
Well! That was much easier than expected. Once I update the game again, you'll be able to customize the game's AOE reticle patterns and add your own by editing the new AOEPatterns.xml file. Each pattern looks kinda like this:

Code: [Select]
<Pattern name="single">
  <Reticles>0,0,0,0,0,0,0</Reticles>
  <Reticles>0,0,0,0,0,0,0</Reticles>
  <Reticles>0,0,0,0,0,0,0</Reticles>
  <Reticles>0,0,0,1,0,0,0</Reticles>
  <Reticles>0,0,0,0,0,0,0</Reticles>
  <Reticles>0,0,0,0,0,0,0</Reticles>
  <Reticles>0,0,0,0,0,0,0</Reticles>
</Pattern>

This is basically meant to represent a top-down view of the spaces surrounding a red attack tile. (The center of the array is the spot where the attack tile is.) The 0s denote spaces where no reticle is placed; the 1s denote spaces where reticles are placed. As you can see, the "single" AOE pattern simply places a single reticle atop the attack tile.

Here's another one:

Code: [Select]
<Pattern name="row_split">
  <Reticles>0,0,0,0,0,0,0</Reticles>
  <Reticles>0,0,0,0,0,0,0</Reticles>
  <Reticles>0,0,0,0,0,0,0</Reticles>
  <Reticles>0,0,1,0,1,0,0</Reticles>
  <Reticles>0,0,0,0,0,0,0</Reticles>
  <Reticles>0,0,0,0,0,0,0</Reticles>
  <Reticles>0,0,0,0,0,0,0</Reticles>
</Pattern>

The "row_split" pattern is used by Split Shot; it places two reticles, one on either side of the red attack tile.

Get the idea? Go through AOEPatterns.xml and experiment!

A COUPLE OF BIG, IMPORTANT CAVEATS:

(1) you should never edit or delete the "single" pattern. The game is hard-coded to use that pattern for things like giving items, opening doors and activating switches. Screw with that, and you risk making the game unplayable!

(2) if you're making your own campaign, make sure you copy-paste AOEPatterns.xml into your campaign folder, or your campaign's scenes won't load anymore!

In fact, I'm going to delay updating the installers with this feature so I can make sure to get the word out to everyone about that second caveat--I don't want a ton of people updating and having no idea why their custom campaigns suddenly don't work. ;)
Title: Re: Developer's Log
Post by: CraigStern on November 01, 2013, 11:54:07 AM
Now working on adding sound effects to attacks. :)

Creating a "Dodge" sound effect.
Title: Re: Developer's Log
Post by: CraigStern on November 01, 2013, 01:56:46 PM
Attack sound effects are now supported! I'm adding some into the game right now.

Also: fixed a bug where trying to grab an item sack from on top of a bridge tile would result in the character grabbing the bridge tile instead of the item sack. (Whoops.)
Title: Re: Developer's Log
Post by: CraigStern on November 02, 2013, 04:33:10 PM
Added more sound effects; fixed a few bugs.
Title: Re: Developer's Log
Post by: CraigStern on November 03, 2013, 11:50:43 PM
Bug fixes: bridges now allow characters to move between spaces of drastically varying elevations. Also, bridges built across a wall will now stop a falling character that crosses their path.
Title: Re: Developer's Log
Post by: CraigStern on November 04, 2013, 03:26:15 PM
I posted the monthly update (http://sinisterdesign.net/telepath-tactics-october-2013-update/) today, and recorded a video showing the common inventory system in action for inclusion there. I also sent out some emails hitting up RPG websites about the game's progress.

Lorne emailed me the expanded Snow tileset earlier; I'll need to take some time to go through it and make sure we're not missing anything. Currently, however, I'm sitting down to sketch out the game's cast of unique characters in greater detail.
Title: Re: Developer's Log
Post by: CraigStern on November 05, 2013, 12:42:19 PM
Created and added: sound effects for Stone Golem, Engineer and Lizardman skills.
Title: Re: Developer's Log
Post by: CraigStern on November 06, 2013, 11:03:30 PM
Tested and gave artist feedback for the Snow tileset.
Title: Re: Developer's Log
Post by: CraigStern on November 07, 2013, 01:56:54 PM
Working on a proper stand-alone, in-game Tutorial for Telepath Tactics. ;)
Title: Re: Developer's Log
Post by: CraigStern on November 07, 2013, 08:05:43 PM
The tutorial is coming along.

Fixed a bug that was causing characters' turns to end after using non-turn-ending attacks if they were then counterattacked with a turn-ending counterattack.
Title: Re: Developer's Log
Post by: CraigStern on November 07, 2013, 08:45:09 PM
So, I thiiiiiiink I might have just simultaneously fixed a whole bunch of those really irritating bugs where the AI will suddenly freeze up or do weird things for seemingly no reason, particularly where it only has one character left on the field. We'll have to test it to make sure, though. :)
Title: Re: Developer's Log
Post by: CraigStern on November 07, 2013, 09:56:52 PM
Work is continuing apace on the tutorial!

While working, I discovered that I neglected to finish adding in the ClearObjectiveReticle action before, and that I'd forgotten to document the GoTo action in the manual. That's now fixed.

Also, that brings us to 69 script actions in the game. (Heh.)
Title: Re: Developer's Log
Post by: CraigStern on November 08, 2013, 12:09:34 PM
A new script trigger is in-game and working: OnGrab. There are four parameters:

Character Name (including spaces; leave blank if it doesn't matter which character grabs the item sack), Team number (leave blank if it doesn't matter which army the grabbing character belongs to), the Y Coordinate of the item sack, and the X Coordinate of the item sack. The last two parameters are optional, and don't need to be included if you don't want to specify a location for the triggering item sack.

So

Code: [Select]
OnGrab     ,-1
will trigger the conversation as soon as any character from any army grabs an item sack from anywhere on the battlefield, whereas

Code: [Select]
OnGrab     Jimmy Smitts,0,7,9
will trigger the conversation as soon as a character named Jimmy Smitts from Army 0 grabs an item sack from the coordinates (7,9).
Title: Re: Developer's Log
Post by: CraigStern on November 08, 2013, 01:59:38 PM
Two new special character types are now supported in dialog: -TURN- and -FULLTURN-!

-TURN- gives you the total number of player turns passed, counting each and every player turn. So if there are three armies and all of them have gone once, -TURN- will be 3. This number corresponds to the parameter used with the OnTurn trigger.

-FULLTURN- counts the number of times that every army has had a turn. So if there are three armies and all of them have gone once, -FULLTURN- will be 1. This number corresponds to the number of turns that any given player has had control of their army.
Title: Re: Developer's Log
Post by: CraigStern on November 08, 2013, 03:01:32 PM
Fixed a bug that would cause dialog to not be triggered if it was embedded in the very first chunk of a static cut scene.
Title: Re: Developer's Log
Post by: CraigStern on November 10, 2013, 09:45:53 PM
Placed an additional hook in the code so it also checks for OnStat dialog immediately after attacks are concluded (mostly for dialog dependent on more changeable stats like health and energy).

Fixed a bug that caused the game to sometimes disregard OnStat and OnVal conversation triggers if another, later conversation also had that trigger.
Title: Re: Developer's Log
Post by: CraigStern on November 11, 2013, 10:46:11 PM
New dialog actions I've created to help as I continue crafting the main tutorial:

ShowActionsMenu -- shows the actions menu above the dialog window (usually, this is hidden during dialog).

SelectChar -- highlights and selects the named character; to be used in combination with ShowActionsMenu to show character-specific buttons (i.e. attacks and skills).

RemoveCurrConv -- removes the current conversation from the list of conversations that can be triggered in this battle. Useful for conversations that you want to be dependent on several variables (and which thus need to have a repetition value of -1 until all are met), but which you want to keep from triggering again later.
Title: Re: Developer's Log
Post by: CraigStern on November 19, 2013, 04:32:58 PM
Gah! I've been sadly remiss about updating the devlog this week. It's been difficult for me to adjust to returning to my day job, and I'm having to find my way back to something like a work schedule that will allow me to make progress on the game. Despite everything, though, I have made some progress over the past week:


Quote
RemoveConv     OnReachingSpace,4,4

Easy as pie!
Title: Re: Developer's Log
Post by: CraigStern on November 20, 2013, 10:04:56 PM
Working with David Hammond to get the portraits for Emma Strider, Sabrina Strider and Tarn Strider (their father) done.

Created one of the game's bad guys: feared mercenary Ebon Raban. ;)
Title: Re: Developer's Log
Post by: CraigStern on November 24, 2013, 03:27:29 PM
Portraits of Emma and her father are now done. :)
Title: Re: Developer's Log
Post by: CraigStern on November 25, 2013, 02:32:23 PM
We now have the expanded Snow tileset finished! :)
Title: Re: Developer's Log
Post by: CraigStern on November 30, 2013, 08:15:00 AM
Sabrina Strider's portrait is done! Work continues on other portraits.

We're making progress on finishing up attack animations for the Spirit and the Bronze Golem; and with the tile art all done, we're just about ready to move on to creating the game's remaining character sprites: gender variants of the base classes, NPCs, promoted units, etc.

On my end, I've been fleshing out the cast of characters, both allies and villains. It's a slow process, and not one amenable to sharing (since I like to go back and revise and change things, and it's much easier to do that when that stuff isn't all online already). Thus, the lack of updates posted here. Rest assured that I'm working, though. :)
Title: Re: Developer's Log
Post by: CraigStern on December 09, 2013, 03:43:29 PM
So! Things!

--I've finished inputting the tile data for the expanded Snow tileset; it's now useable and ready to roll
--the Bronze Golem now has its attacks fully animated, and the Spirit is almost done as well. That leaves only the Skiakineticist before it's time to move on to alternate gender sprites and promoted versions
--speaking of which: work is now underway on the game's alternate gender character sprites
--portraits of Emma and Sabrina as children are now done, as is an alternate portrait for their father
--Julia Buge emailed me recently to tell me that she won't be carrying on with the job of pixeling the game's attack icons. Annoyingly, I have now had to find someone else to get started from scratch pixeling icons for the game's 121 unique Skill and Action buttons
Title: Re: Developer's Log
Post by: CraigStern on December 09, 2013, 11:07:08 PM
You can now use R[n1-n2] syntax as placeholder text for a randomly generated number within a given range for dialog, triggers and scripts. Which is to say--this doesn't just work for randomly spawning items anymore. ;)

(Basically, this is a way to create a random number generation method that is easier and more flexible than the r operator in SetVal.)

So, example:

Code: [Select]
<Dialog>OnTurn/0/Gambler/Let's roll some dice! D6: R[1-6]  D10: R[1-10]  2D12: R[2-24]  5D20: R[5-100]
<Reply>.../NewBranch/1</Reply></Dialog>

This will cause the game to display randomly generated numbers within the displayed ranges.

Another example:

Quote
SetVal     DieValue,=,R[13-62]

That's right--you can now use this placeholder to set a value randomly within a specific range in a single step! (As you can see, this is more flexible and powerful than using the r operator in SetVal.) ;)
Title: Re: Developer's Log
Post by: CraigStern on December 10, 2013, 09:26:44 PM
Base camps are now working in the game! Next, I'll need to make sure it's possible to "Talk" to them and accomplish things like accessing the common inventory. ;)

Worth noting: camps work a bit like flags, in that they belong to a team but are treated like destructible objects. As with flags, you assign them to a team by giving the Camp a team number of 100 plus the number of the army it belongs to. So this is code for the base camp belonging to team 0 in the screenie below:

Code: [Select]
<Unit>0,100,TentTrim,6,0,None,None</Unit>
Likewise, team 1's camp will be on team 101, and so on.
Title: Re: Developer's Log
Post by: CraigStern on December 13, 2013, 01:43:38 PM
Two new portraits are done, and I have a draft for a new attack animation. I've also hired someone to get to work on the game's unique attack icons; they should be done by the end of February.

I also fixed a rather nasty bug that was causing the game to not resume dialog after characters moved onscreen; I'll upload a fixed version tonight or tomorrow, once I've had a chance to sit down and test it thoroughly.
Title: Re: Developer's Log
Post by: CraigStern on December 14, 2013, 01:44:32 PM
Boom! I've hired someone to work on the game's button art. So far, he's doing a bang-up job. Here are initial drafts of the Grab and Open / Close Door button icons. :D
Title: Re: Developer's Log
Post by: CraigStern on December 14, 2013, 07:07:50 PM
Bronze Golem and Spirit animations are now complete and in the game. :)

Aaaaand here's a video showing them off (http://youtu.be/Z9CYR3OfEl8)! :D
Title: Re: Developer's Log
Post by: CraigStern on December 17, 2013, 10:49:14 AM
Not only do we have the Spirit's and Bronze Golem's attack animations done, Tyvon just finished up the Skiakineticist's "casting" animations. Frankly, I think the Skiakineticist looks slick as all hell. The new animations are attached below. :)

With that animation done, we now have complete attack animations for every one of the game's default 22 character types! So far, that adds up to 65 distinct animations, the vast majority of them in 4 directions.

We'll begin working on attack effect animations soon, then get working on attacks for for the gender variants.
Title: Re: Developer's Log
Post by: CraigStern on December 18, 2013, 10:21:14 PM
I've fixed a number of rather serious bugs, finished incorporating all of the new character animations into the game, and given the Bronze Golem's attack animations matching sound effects.

You can see a livestream I did with Sean Baptiste of Fire Hose Games earlier today using this build right here (http://www.twitch.tv/firehosegames/b/488483175). It was pretty fun. :)

Oh, and speaking of this build: the alpha build of Telepath Tactics has been updated online. Go to it, early access backers!
Title: Re: Developer's Log
Post by: CraigStern on December 21, 2013, 12:13:26 AM
Wrote out dialog for the scene where Emma and Sabrina meet Harynx.

Received first drafts of button icons; tested, gave feedback.

Received remaining alternate gender sprites; tested, gave feedback.

Received several character potraits; gave feedback. (I'm no longer sure if i'll be posting these, since the unique character portraits are arguably a wee little bit spoiler-y.)

Oh, also: I'm now renaming the sprites to distinguish between male and female for the 19 base classes that have gender variations. I'm doing this by giving each an _F or _M appellation on the end of their current file names. Anyone working on their own campaign is going to need to rename their spritetype attributes accordingly after the next update!

e.g. Emma Strider is going from spritetype="Swordsman" to spritetype="Swordsman_F"
Title: Re: Developer's Log
Post by: CraigStern on December 22, 2013, 12:56:08 AM
I've gotten customizable attack hit animations coded and working in the game engine! Attack hit animations are contained in sprite sheets, and can be created / modified just like anything else in the game. Assign them to attacks and determine their timing using the new VFX tag within the soundAndFX attribute. it works similarly to the SFX tag; here's an example:

soundAndFX="SFX[Swoosh Sword:0],VFX[Slash:OnTargets:18]"

The part of that code that concerns us here is "VFX[Slash:OnTargets:18]"--this tells the game to use the animation contained in the Slash.png sprite sheet in Data > Characters > Attacks > _VFX; to spawn a copy of the animation on every space where someone or something is targeted by the attack; and to spawn those hit animations exactly 18 in-game frames into the attacker's attack animation.

As of right now, "OnTargets" is the only location supported for spawning attack hit animations, though I'd expect other locations to join it sooner or later. ;)
Title: Re: Developer's Log
Post by: CraigStern on December 22, 2013, 03:30:51 PM
I've now assigned physical attack hit effects to all physical attacks in multiplayer. I must say; it looks really good. I feel like it definitely adds a little something to the game.

Next, we'll be coming up with some "spell" effects for psy abilities. :D
Title: Re: Developer's Log
Post by: CraigStern on December 22, 2013, 10:02:14 PM
I've uploaded a video (http://youtu.be/tcHOVCevuaw) showing the attack hit effects in action! Check it out! (http://youtu.be/tcHOVCevuaw) :D
Title: Re: Developer's Log
Post by: CraigStern on December 30, 2013, 10:34:34 AM
We now have attack effects for Mind Blast and Mind Shield!

I've added a second type of VFX spawn location: OnSelf. While OnTargets will spawn the visual effect on every character targeted by a skill, OnSelf will only spawn the effect over the character using the skill. This is meant for skills which originate with the user and reach as far as one adjacent space (see e.g. Mind Blast), as well as to enhance the "casting" animations for longer-range abilities.

I've modified the code governing the placement of visual effects as well; characters further down the battlefield will obscure part of the animation if it extends down that far, and the attacker will obscure part of the visual effect him or herself for OnSelf visual effects directed upward.

Work continues on character creation, portraits, and alternate character sprites.
Title: Re: Developer's Log
Post by: CraigStern on January 04, 2014, 11:06:48 PM
Phew! Lots of corresponding with the artists over the prior week; a fair bit of writing as well. I've summed up the current state of the game on the front page of the website.

I've now finally coded it so you can use Tents in campaign battles to access the common inventory, though I've found myself squashing a number of bugs to get everything working the way I want it.

Among the bug fixes:

--the game no longer brings up the actions menu over the inventory screen when you summon the common inventory menu via a triggered script
--the game no longer unpauses when you summon the common inventory menu via a triggered script
--fixed a lame, hacky shortcut I was apparently using in the game's pathfinding routine which treated tents as if they were flags (and thus, allowed characters to walk through them and stand on them regardless of their passability value)
--the game once again displays targeting tiles properly after pressing the use, talk, or open / close door buttons
--the game no longer deselects the current character after canceling a talk, use, or open/close door action
--extended the range of Rally so it no longer fails when clicking in the far corners of the map
--made it so characters rallied in exploration mode now move all the way to the destination rather than abiding by their ordinary combat step limits
Title: Re: Developer's Log
Post by: CraigStern on January 08, 2014, 01:58:49 PM
Change: casualties no longer count for twice as many points as enemy kills do in multiplayer. (They still count for twice as much in single player, though.)

I've been writing more scenes.

I've also been working on rewriting some of the combat system code so you can customize the exact frame on which screen shake and damage occur during an attack. This should avoid the current situation where an attack animation has to fully complete before the game will register it, giving every attack the appearance of a sort of weird lag.
Title: Re: Developer's Log
Post by: CraigStern on January 08, 2014, 11:30:22 PM
Every attack now has an impactFrame attribute that tells the game exactly when to perform screenshake and pop up the health bar animation. This has eliminated the lag between the attack striking the target and the game actually shaking the screen and reducing the target's health.

Due to a quirk of programming, impactFrame is almost always a negative value (typically between -9 and -15 for most short animations, -21 or higher for long ones). The best way to find the right value is to experiment.

Also, a kind of bonus: I've tweaked the algorithm for screenshake so it's a little more smooth / less jarring. At some point, I'll be going through and adding extra screen shake magnitude to many attacks to give them a better game feel.
Title: Re: Developer's Log
Post by: CraigStern on January 12, 2014, 05:53:18 PM
We now have the first of the villain portraits complete, and are one class away from having all of the alternate gender sprites with walk animations.

I've received the first shipment of 30 button icons, and have recoded the game so that it loads the button graphics dynamically. This means that the game now supports individualized attack icons, and button graphics are now moddable! :)
Title: Re: Developer's Log
Post by: CraigStern on January 13, 2014, 10:56:51 AM
We now have a second villain portrait complete; this one's for the main villain in Telepath Tactics. Who could it be? It's a mystery! ;)
Title: Re: Developer's Log
Post by: CraigStern on January 13, 2014, 09:42:57 PM
Fixed some bugs with the new buttons, tweaked the screen shake formula a bit, added some screen shake to some lizardman attacks.

The alpha installers have been updated online!
Title: Re: Developer's Log
Post by: CraigStern on January 18, 2014, 01:07:35 PM
I've now written up most of the early game missions in detail.

Fixed an annoying bug that would cause the cancel button to show up during counterattacks for no good reason.

Also, we now have another villain portrait--say hello to Archos the Corrupt!
Title: Re: Developer's Log
Post by: CraigStern on January 23, 2014, 05:37:13 PM
New stuff! New portrait, for the villain Pathos; progress on elemental blast effect animations; alternate gender sprites now all have complete rest and walk animations; work is underway on overhauling certain placeholder UI assets; and, of course, writing work continues!



Title: Re: Developer's Log
Post by: CraigStern on January 23, 2014, 07:46:51 PM
Here's the current draft of the new Actions Menu graphics, still in progress. :)
Title: Re: Developer's Log
Post by: CraigStern on January 28, 2014, 08:25:40 AM
Work continues on creating characters and writing out the scenes in the main campaign.

We recorded live instruments for the game's soundtrack recently; ideally, the soundtrack should be wrapped up within the next month or so.

Also:

- We now have a finished Actions Menu graphic (see below).

- We now have rest sprites for a new character class: the Bandit! ;)
Title: Re: Developer's Log
Post by: CraigStern on January 31, 2014, 03:15:59 PM
I've been writing more dialog and scenarios for the campaign, including what is probably my favorite character interaction in the game so far.

Also, new character portraits! Here are Medomai, the shadowling spy; and Igor Bloodbeard, the bandit warlord. ;)
Title: Re: Developer's Log
Post by: CraigStern on February 01, 2014, 12:50:52 PM
I stayed up late last night creating the first few scenes in what will be the official campaign.

In the process, I fixed a nasty bug that would cause the game to freeze in single player battles where the New Army condition was used. Work on the main campaign continues!

Oh, also, Tyvon Thomas is doing some awesome graphical effects for the game's elemental blast attacks. Check out the Cryo Blast and Pyro Blast (in-progress) below!

Title: Re: Developer's Log
Post by: CraigStern on February 03, 2014, 02:28:30 PM
A new monthly update has been posted on the front page! It includes a new video, and animated gifs of the light blast and shadow blast animations. ;)

Last night, I coded in support for a third VFX spawn location: TowardTargets, which is basically used to create animated projectiles like fireballs and arrows.

While OnTargets will spawn the visual effect on every character targeted by a skill, and OnSelf will spawn the effect over the character using the skill, TowardTargets essentially blends the two: it spawns the effect on the user, then moves it toward its targets over the course of the animation.
Title: Re: Developer's Log
Post by: CraigStern on February 03, 2014, 11:12:37 PM
The game now has the elemental blast attacks that are properly animated with spell effects and synced up sound effects! Not gonna lie, they look pretty awesome. :D

Oh, also, we now have the first 50 button icons in-game. Just another 75 or so to go!
Title: Re: Developer's Log
Post by: CraigStern on February 04, 2014, 11:46:04 PM
As part of our efforts to renovate the game's UI, David Hammond has overhauled the game's Dialog box and Message box graphics. Pics below! :D
Title: Re: Developer's Log
Post by: CraigStern on February 08, 2014, 02:05:15 PM
All of the game's various UI boxes have now been overhauled other than the new turn box. (You can see the updated victory splash below.)

The bandit sprites now have walk animations.

I've created crossbow bolt and arrow projectiles and added them as projectile animations to the bow and crossbow attacks. I've also added an explosion animation to the Explode and Powder Bolt attacks.
Title: Re: Developer's Log
Post by: CraigStern on February 08, 2014, 07:36:32 PM
Fixed a bug where equipping items via the GiveItem dialog action would not result in the character undergoing associated stat changes or learning any attacks.

Fixed a bug where items granted by GiveItem would sometimes end up linked to every other item of the same type.

Title: Re: Developer's Log
Post by: CraigStern on February 08, 2014, 07:38:33 PM
The game now keeps music playing continuously if you transition from one scene to another that both use the same music.
Title: Re: Developer's Log
Post by: CraigStern on February 10, 2014, 07:43:33 PM
Spent more time working on the campaign's introductory sequence; I'm really pleased with how it's coming together right now! :)

Also, we now have a special new graphic for the splash screen whenever a player's turn starts--it has elements that get palette swapped to match the army color of the current player (which should make it way the heck easier for people to remember which army is which during local multiplayer).
Title: Re: Developer's Log
Post by: CraigStern on February 10, 2014, 08:58:00 PM
New dialog action: RemoveGlow. This removes the selection glow from whatever character has it at that time. This is basically to keep characters who have selection glow from dialog from glowing on into the next character's turn.
Title: Re: Developer's Log
Post by: CraigStern on February 12, 2014, 05:56:44 PM
The official campaign's first few scenes are now in-game! :D

We've created some swanky new custom cursors to be used in place of the default mouse cursor (see below).

I've coded in support for visual effect animations with frames of any size, not just 128 x 128. The only caveat is that the width and height of each frame must still be the same (64 x 64 is okay, 64 x 96 is not; 48 x48 is okay, 48 x 52 is not).

The bandit sprites are now being used in the single player campaign (albeit currently using a placeholder attack animation that doesn't really match the sprite).

Fixed a bug where if you moved multiple characters at the same time in dialog using the MoveChar action, the dialog box would appear as soon as the first character stopped moving (instead of waiting for all of them to finish).
Title: Re: Developer's Log
Post by: CraigStern on February 12, 2014, 08:22:48 PM
Whenever you have a dialog branch with multiple actions in it that include MoveChar, the game now runs all of the MoveChar actions first, and then runs the other actions after all of the characters have completed moving.

The game no longer freezes if you try to move a character to an inaccessible space using MoveChar.

New script action: IfOnCoordsRun. This action has four parameters: (1) character name, (2) y coordinate, (3) x coordinate, and (4) script name. It checks to see if the named character is at the battlefield coordinates you specified--if so, then the named script is run. You can also specify "NO_ONE" for the first parameter, in which case the game checks to see if the space is entirely empty--if it is, then the named script is run.

"Why create IfOnCoordsRun when we already have pressure triggers and OnReachingSpace?" you ask. Simple! I created IfOnCoordsRun as a way of checking to see if characters are blocking scripted movement via MoveChar during a conversation, and moving them out of the way if they are. You can't use OnReachingSpace or pressure triggers in this way, since they can't check character positions in the middle of dialog. Hence, the reason for IfOnCoordsRun.
Title: Re: Developer's Log
Post by: CraigStern on February 12, 2014, 11:24:03 PM
Fixed a bug where you could advance dialog even while the dialog menu was invisible during character movement simply by using hotkeys.

Fixed a weird bug where CPU characters would sometimes overlap each others' turns if there were counterattacks happening.

Fixed an issue where the turn wouldn't end if the last character to attack used a turn-ending attack and leveled up off of it.
Title: Re: Developer's Log
Post by: CraigStern on February 13, 2014, 08:14:34 PM
Fixed the bug where characters with a counterattack would nonetheless fail to counterattack after dodging an enemy attack.
Title: Re: Developer's Log
Post by: CraigStern on February 13, 2014, 09:21:40 PM
New character attribute added to CharClasses.xml and ObjClasses.xml: lighting.

The lighting attribute can be left blank--if you leave it blank, the character will accept ambient global lighting, just as normal.

If you want a certain character or object to always have its own lighting color, however, stick in three parameters delimited by commas: Red, Green and Blue values. Just as with Global Lighting parameters, these are decimal numbers that can be anywhere from 0 to 2.0, with 1.0 being 100% color value.

E.G.

Code: [Select]
<Obj charname="none" spritetype="CampfireLit"...shadowType="Small" shadowY="36" lighting="1.6,1.2,0.7"...
Here, lighting="1.6,1.2,0.7" tells the game to increase the red value by 60%, the green value by 20%, and reduce the blue by 30%, no matter what the global lighting for the level is.

Another example:

Code: [Select]
<Char charname="Shadow/Emma" spritetype="Swordsman_F"...shadowType="Small" shadowY="32" lighting="0,0,0"...
Here, lighting="0,0,0" tells the game to turn the sprite completely black. We've just created a shadow version of one of our normal sprites!

You can see examples of this new attribute in action below.

NOTE: if you are working on a campaign, then once I update the build again, you're going to need to update your CharClasses.xml and ObjClasses.xml files; just add lighting="" in between the shadowY and ctr attributes for each character and object, and you'll be set. Suggestion: use ctrl + H (find and replace all) to make this process easier. Specifically, replace ctr=" with lighting="" ctr=" and you'll be good to go!
Title: Re: Developer's Log
Post by: CraigStern on February 15, 2014, 03:10:22 PM
There is now an objectives window supported in Telepath Tactics, so players can easily see their win and loss conditions for each battle!
Use Shift + O to toggle the objectives window on and off.

Relatedly, there is a new tag supported in battles: <Objective>!

Whatever your battle's objectives happen to be, just write each one in between an <Objective></Objective> tag in the map file, and the game will make them appear as a bulleted list in the objectives window. So this:

Code: [Select]
<Objective>Defeat all enemies</Objective>
<Objective>Emma and Sabrina must both survive</Objective>
<Objective>Eat your veggies</Objective>
<Objective>Be nice to your momma</Objective>
<Objective>Say hi to your aunt Sadie for me</Objective>

...becomes this:
Title: Re: Developer's Log
Post by: CraigStern on February 15, 2014, 05:28:13 PM
The map editor has been updated to support battle objectives; it will now load and save objectives correctly, and will give new maps two default objectives:

Title: Re: Developer's Log
Post by: CraigStern on February 15, 2014, 10:48:20 PM
I finally figured out and implemented a simple, elegant solution to tall objects blocking the characters behind them: whenever you left-click an object, it acts as if you clicked the space behind it for purposes of character selection. No more difficulties trying to select characters behind trees! ;)
Title: Re: Developer's Log
Post by: CraigStern on February 16, 2014, 10:09:12 AM
Fixed a bug where attacks launched after ending an OnCharAttacking conversation didn't animate.

Fixed a bug which caused attacks to duplicate themselves after each battle.
Title: Re: Developer's Log
Post by: CraigStern on February 20, 2014, 11:35:52 AM
Created some new item icon variants for "practice weapons."

Updated the game manual with all of the new features, attributes and script actions I've added to the game recently.
Title: Re: Developer's Log
Post by: CraigStern on February 21, 2014, 11:39:03 PM
Got a load of new attack icons in! We're now up to 85 completed.

New portrait: Governor Schmendrick.

Fixed a slew of bugs relating to the actions menu popping up at unwanted times after closing dialog triggered by attacks and character deaths.

Fixed a bug that prevented characters that hit 100+ experience from leveling up if they reached that point by killing an enemy who gave a death monologue.
Title: Re: Developer's Log
Post by: CraigStern on March 01, 2014, 11:14:34 AM
More stuff! First: I purchased Pyxel Edit last night, and this morning I produced my first-ever pixel animation: a "Power Up" effect for character buffs in Telepath Tactics. I've now tested it in-game, and I have to say, it actually looks pretty darn cool. So that's now being used for abilities like Sprint, Motivate and Levitate.

New character portraits!

All alternate gender attack animations are finished! :D
Title: Re: Developer's Log
Post by: CraigStern on March 01, 2014, 01:54:23 PM
For characters without unique names and with gender set to "Either", the game now automatically appends _M or _F to the character's spriteType and portrait attributes based on the gender it selects.

What this means from a practical perspective: both men and women are now equally represented in multiplayer. :)
Title: Re: Developer's Log
Post by: CraigStern on March 01, 2014, 04:28:48 PM
Filled the female spriggat name database with over 100 names; added the Power Up visual effect animation to Levitate, motivate, Sprint, and Defensive Stance; extended the Defensive Stance animation by 7 frames to better line up with the effect animation; made some edits to character portraits to make character colorations match their sprites.
Title: Re: Developer's Log
Post by: CraigStern on March 02, 2014, 01:13:24 PM
New portrait: Fera!

We also have the first set of NPC sprites: villagers! (A few of which are shown below.)
Title: Re: Developer's Log
Post by: CraigStern on March 04, 2014, 12:30:57 PM
Posted the monthly update yesterday!

Also, I replaced the ugly beige boxes the game was using for tool tips and mouseover info on characters with a really slick bitmap graphic that can dynamically resize itself to fit the text it contains. It's a big visual upgrade, lemme tell ya! ;)
Title: Re: Developer's Log
Post by: CraigStern on March 05, 2014, 06:44:23 AM
The game now has a little "equipped" symbol to let you know which items are equipped when you're in your inventory.

Also, here are some screenies of the new info box graphics.
Title: Re: Developer's Log
Post by: CraigStern on March 06, 2014, 02:14:45 PM
Fixed a bug where you could skip past dialog branches while character attacks were still playing, causing syncing problems (and in some cases, making it so the attacker's turn would not end).
Title: Re: Developer's Log
Post by: CraigStern on March 06, 2014, 06:10:13 PM
Added a new dialog script option: PlayLoop. This plays a sound loop seamlessly in the background of the level; to be used for ambiance. This action takes one parameter: the name of the loop. Right now there are only two loops available: Crickets and Crowd. To silence a loop that is already playing, run PlayLoop with the parameter None.

Fixed a bug where the game wouldn't consider a team defeated if they lost one of multiple characters they had to protect during the battle. (To wit: where you have multiple characters to protect via Protect Char conditions, losing any one of them will now lose you the battle, as intended.)
Title: Re: Developer's Log
Post by: CraigStern on March 06, 2014, 09:15:29 PM
New interface nicety: we now have custom cursors in-game! Aside from looking swank, the fact that I can swap these out at will means that I'll be able to make it super intuitive when things can be grabbed and dragged, or else just clicked. (This is kinda important for newer players, but I could see it being helpful for veterans as well.)
Title: Re: Developer's Log
Post by: CraigStern on March 06, 2014, 09:44:59 PM
I've now added hooks into the code governing when the cursor changes into a hand versus an arrow; it's working quite well, I must say. :)

Just for fun, here is another pic showing off some of the latest interface goodies.
Title: Re: Developer's Log
Post by: CraigStern on March 08, 2014, 02:52:35 PM
A small update to the map editor--it now formats XML files better so it's easier to distinguish between different map elements. It now also puts spaces in between different conversations so it's easier to edit them by hand (if you ever have the need to do so).

I've updated the map editor build online.
Title: Re: Developer's Log
Post by: CraigStern on March 18, 2014, 11:16:08 AM
Updates!

--New portraits!

--Wrote new scenes and characters!

--We've finalized a bunch of the music for the game. There are less than half a dozen tracks left to compose at this point.

--Attack icon revisions are now complete.

--The Deployment screen now has a button that open the Common Inventory so you can manage your army's inventory before the battle starts.

--Extended cursor logic so it turns into an arrow during dialog, and when mousing over interactive tiles (move tiles, attack tiles, use tiles, give item tiles, etc.)

--Fixed a bug that would cause the character to start animating its attack before the effect animation loaded if the attack animation loaded first.
Title: Re: Developer's Log
Post by: CraigStern on March 18, 2014, 01:22:32 PM
--Walk animations are in for 5 NPC sprites (all of the villagers except for the little girl).

--We now have an effect animation for Big Shield!
Title: Re: Developer's Log
Post by: CraigStern on March 18, 2014, 09:37:02 PM
--Fixed a bug that caused effect animations with frames not sized at 128 x 128 to be misaligned when they played on the battlefield.
Title: Re: Developer's Log
Post by: CraigStern on March 20, 2014, 02:05:43 PM
--Created a new battle in-game.

--New portrait: Gavrielle Hashmal.
Title: Re: Developer's Log
Post by: CraigStern on March 21, 2014, 09:15:20 AM
Telepath Tactics now supports two more VFX spawn locations: OnCenter, which is basically for large area-of-effect animations (e.g. Dark Vortex, Pyro Hail, etc.); and TowardCenter, which is for projectiles that will end in an OnCenter effect (e.g. Light Bomb).

While OnTargets will spawn a copy of the visual effect on every character targeted by a skill, and OnSelf will spawn a single copy of the effect over the character using the skill, OnCenter will spawn a single copy of the effect centered over the attack tile the player clicked when launching the attack.

TowardCenter, in turn, spawns the effect at the OnSelf location and moves it to the OnCenter location over time.
Title: Re: Developer's Log
Post by: CraigStern on March 21, 2014, 10:31:03 AM
I was feeling the need to come up with some new, purely mental skills, so here's a new shadowling attack: Decoy. The shadowling causes the enemy to hallucinate a false copy of itself. ;)

(This one is going to be purely for single player, since the decoy will "fool" the AI in a way that it would presumably not fool an actual player.)

New Photokineticist attack: Blinding Cloak. This blankets the target in blinding light, making them harder to hit. (Raises Dodge.)

Two other new attacks have been created for the Bandit class: Throw Axe and Armor Rend. Throw Axe is basically a ranged attack that you get when you equip throwing axes, while Armor Rend has a chance to make the target Softened (substantially reducing physical attack resistance).
Title: Re: Developer's Log
Post by: CraigStern on March 21, 2014, 10:46:49 AM
New thing: when an attack with an unusual atkAffects attribute hits, it'll now name the stat being affected in the little "damage" pop-up.

So, for instance: Blindng Cloak does not affect Health or Energy; it affects Dodge (because atkAffects = "Dodge" in its entry in Attacks.xml). So now the numerical pop-up will say, for instance, "+9 Dodge" instead of just "+9" when the attack lands.
Title: Re: Developer's Log
Post by: CraigStern on March 22, 2014, 01:03:00 AM
--putting "Either" for a character's gender will now randomize the character's gender even if that character has a non-random name. (Basically, this allows the game to now randomize the gender of enemies in single player.)

--created an Axe attack sound effect.

--continuing work on the battle at Adelbrae and the scenes leading up to it (see screenshot below).
Title: Re: Developer's Log
Post by: CraigStern on March 23, 2014, 08:55:17 PM
I had a playtesting party last night, which resulted in us finding about two dozen bugs (some of them rather serious). I spent all day today fixing as many as I could. Among other things, I fixed the following:

--satchel charges now explode properly once more
--the Tutorial is now fixed and working once again
--alliances now work properly again
--movement bonuses weren't ending when they were supposed to; that's now fixed
--the turn timer no longer interferes with your ability to select stuff beneath it in multiplayer
--characters no longer end up with 4.22 million movement points after scripted movement during dialog
--the game no longer freezes when trying to start a new campaign or local match after playing the Tutorial
--the game no longer freezes when hitting the cancel button on the confirmation screen for attacking an ally
--the game now plays the right animation for Powder Bolt with the male crossbowman
--it is no longer mathematically possible to be killed while sparring with Silithis during the single player training battle

Also, I haven't confirmed this one yet, but the computer should no longer continue moving and attacking during a level-up sequence (as was happening when one of your characters leveled up from a counterattack during the CPU player's turn in single player mode).
--female lizardmen can now receive randomly generated names
Title: Re: Developer's Log
Post by: CraigStern on March 23, 2014, 09:02:34 PM
--The game now has a Feedback visual effect in-game and implemented!

--NPC villager sprites now all have walk animations, and are useable in-game.

I've updated the game's installer online.

(Note: parts of the official single player campaign, The Vengeance of Emma Strider, are playable in this build. They are not by any means in their final form! Among other things, the scene in the town of Adelbrae is currently incomplete, as is the subsequent battle with Gunther Lathe. I'll be working on all of that over the coming week or two.)
Title: Re: Developer's Log
Post by: CraigStern on March 26, 2014, 12:39:49 PM
I've created little numerical icons corresponding to hotkeys 0-9 for the game's attacks; these icons are now loaded into the game's attack buttons.
Title: Re: Developer's Log
Post by: CraigStern on March 26, 2014, 09:10:26 PM
I've added one final attribute to characters and objects: tags. This doesn't do anything just yet, but the plan is to let you add special modifiers to specific characters that can affect their behavior in the game. You'll be seeing a use of this new feature very shortly. ;)
Title: Re: Developer's Log
Post by: CraigStern on March 26, 2014, 10:26:52 PM
I've extended the female Pyrokineticist "cast" animation from 13 frames to 20. This makes it so they attack animation no longer cuts weirdly short of the impact of the attack. (I'll take care of the male variant tomorrow.)

Also, here's a screenshot of the new attack button hotkey icons in action!
Title: Re: Developer's Log
Post by: CraigStern on March 28, 2014, 12:57:46 PM
All right! New tag functionality is here. This is a two-parter:


So, for example, let's say that in a particular battle, you want to give a particular character the Passive tag and remove a second tag called SomethingOrOther. Here is how you'd do that. Open up the map file for the appropriate battle in a text editor, then add the following to the character's <Unit> tag:

<Unit tag="Add,Passive/Remove,SomethingOrOther">0,1,Gunther/Lathe,0,16,Down,None</Unit>

That'll do it!

I will be adding in support for more tags as needed as I proceed with development. :)
Title: Re: Developer's Log
Post by: CraigStern on March 29, 2014, 02:15:30 PM
You know that new lighting attribute (http://sinisterdesign.net/forum/index.php?topic=1224.msg46763#msg46763) I added into CharClasses.xml last month? You can now assign lighting on a per-character basis within battles in the exact same way you assign triggers and tags--by placing a lighting="" attribute within the character or object's <Unit> tag, then filling it in with RGB values delimited by commas. This should be especially useful for lighting different destructible objects around the map differently.

We now have a sweet-looking Dark Vortex sprite effect animation.

The male Bandit's Axe attack animation is completed in all four directions.
Title: Re: Developer's Log
Post by: CraigStern on March 29, 2014, 02:39:49 PM
Oh, also: we have two new portraits, for characters Phoebe Wittler and Rebecca Flare. ;)
Title: Re: Developer's Log
Post by: CraigStern on March 30, 2014, 08:27:41 PM
Fixed some bugs.

Added missing documentation about the -Y-, -X-, -NAME-, -LNAME-, and -FNAME- placeholders to the manual.

New dialog action: KillCharAt. It works just like KillChar, but it affects whatever character happens to be at the specified coordinates (i.e. it doesn't require a unique named character to work). Two parameters: Y coordinate and X coordinate.

Used all of this in concert with the new Passive tag to create the battle where the player first meets Gunther Lathe. Gunther hangs out at the top of the map with a posse of protectors, then retreats from the battle once the player kills four bandits.
Title: Re: Developer's Log
Post by: CraigStern on March 30, 2014, 09:25:47 PM
New Condition: Go First. Takes one parameter, army number: this army goes first in this battle.

Single-player only.
Title: Re: Developer's Log
Post by: CraigStern on April 02, 2014, 07:00:31 PM
Okay! More stuff.

--The first fight with Gunther Lathe is now finished, pending a couple of tweaks for polish later on.
--Fixed a bug that was preventing certain actions from behaving properly when triggered by an OnCharDeath trigger.
--Split the Dark Vortex effect animation into three sheets and extended its length by almost 50% in order to make it match the attack's traditional length from the previous games.
--Corresponded with artists
--Fixed a bug where the item sacks from random item drops showed up lit pitch black
Title: Re: Developer's Log
Post by: CraigStern on April 02, 2014, 07:44:13 PM
Made a little promo video showing off the new, tweaked Dark Vortex animation: http://youtu.be/9xc6URRJjxE (http://youtu.be/9xc6URRJjxE)
Title: Re: Developer's Log
Post by: CraigStern on April 02, 2014, 10:07:45 PM
--Map editor updated so it now preserves triggers, tags and lighting attributes within <Unit> tags in maps.
--I've added in some failsafes so the game no longer freezes if you accidentally use a MoveChar script action with a character that doesn't exist on the battlefield.

The game installers and the map editor installers have both been updated online.
Title: Re: Developer's Log
Post by: CraigStern on April 04, 2014, 09:16:34 AM
--elongated male pyrokineticist cast animation from 13 frames to 20 to match the female pyrokineticist (whose animation I extended a little over a week ago.)
--new character portrait: Meridian the black spriggat.
Title: Re: Developer's Log
Post by: CraigStern on April 04, 2014, 10:41:06 AM
--new optional attribute added to VFX: forward/back and left/right offsets. These are integers delimited by one of these things: |

The first tells the game how many pixels in front of the attacker to offset the effect animation; the second tells the game how many pixels to the right of the attacker to offset the effect animation. (A negative front offset value results in it being offset toward the rear of the attacker; a negative right offset results in it being offset to the attacker's left.)

How is this useful? Well, let's say that you don't want the Pyro Blast animation beginning right on top of the character; let's say you want it to begin about 20 pixels in front of the caster instead. You can now change this

     VFX[PyroBlast_1:OnSelf:12],VFX[PyroBlast_2:TowardTargets:60],VFX[PyroBlast_3:OnTargets:75]

to this!

     VFX[PyroBlast_1:OnSelf:12:20|0],VFX[PyroBlast_2:TowardTargets:60:20|0],VFX[PyroBlast_3:OnTargets:75]
Title: Re: Developer's Log
Post by: CraigStern on April 04, 2014, 01:19:41 PM
Fixed up the cast animation some more; the down-facing part, in particular, looks much nicer now!
Title: Re: Developer's Log
Post by: CraigStern on April 06, 2014, 10:07:58 AM
--fixed a couple of bugs with the implementation of the forward/back and left/right offsets
--added in offsets for all of the blast attacks, Dark Vortex
--added some temporary sound and visual effects for Pyro Hail
--tried adding in camera easing, but couldn't get it working properly in a reasonable amount of time; I may return to this again later
Title: Re: Developer's Log
Post by: CraigStern on April 09, 2014, 09:33:40 PM
I've been out of commission for the past couple of days due to food poisoning, but I did manage to program the visual effects for Fire Gate into the game! (And in the process, fixed a couple more bugs relating to the x and y offsets for visual effects).
Title: Re: Developer's Log
Post by: CraigStern on April 11, 2014, 09:19:28 AM
Light Bomb now has its own, totally awesome animation in-game! It's broken into parts, so I can't just attach an animated gif of the whole thing, but I'll record a move soon so you can see it all. For now, here's a gif of the explosion part.

Also: Cryo Cross is done, and boy does it ever look awesome! That's now in-game too. ;)
Title: Re: Developer's Log
Post by: CraigStern on April 11, 2014, 11:28:22 AM
--grass transitions in the Town and Castle tilesets have been edited to match the newer, more muted color palette of the grass in the Grass tileset.

--created 4 new wood floor-grass transitions for Town that were missing.

--fixed a small graphical glitch in the down-facing walk animation for the female Photokineticist sprite.
Title: Re: Developer's Log
Post by: CraigStern on April 11, 2014, 01:17:26 PM
--new script actions: AddTag and RemoveTag. Each has two parameters: character name and tag name. AddTag will add the named tag to the named character; RemoveTag will remove it. (For RemoveTag, you can also just use ALL as the tag name parameter if you want to clear all tags from the named character.)

--new script actions: AddTagToArmy and RemoveTagFromArmy. Exactly like AddTag and RemoveTag above, except that the first parameter takes the number of an army on the map instead of a character name, and performs the operation on the entire army.

--you can now use -1 as the team number parameter in the Fatigue condition to set the same starting fatigue level for every army
Title: Re: Developer's Log
Post by: CraigStern on April 12, 2014, 05:34:46 PM
--created a video (https://www.youtube.com/watch?v=SU9PhJ-AZSc) showing off Light Bomb!

--gave Douse and Melt to Cryokineticists and Pyrokineticists in multiplayer (skills which counteract the effects of Burning and Frozen statuses, respectively)

--fixed a bug where the cancel button would show up offscreen on zero-range attacks (i.e. Cryo Cross or Big Shield) when they were initiated on the lowest row of the battlefield

--fixed some of the tiles in Adelbrae

--fixed some improper use of tags in the campaign
Title: Re: Developer's Log
Post by: CraigStern on April 17, 2014, 01:57:40 PM
--fixed and improved the Fire Gate animation

--created new character: Scarlet Etoile the cavalier

--finished up coding the tavern dialog where the player first meets Louise Legerdemain and Madeleine Strongarm
Title: Re: Developer's Log
Post by: CraigStern on April 18, 2014, 11:12:47 AM
--door shadows are now hidden when the doors are opened and reappear when they are closed

--created a new variation on the pop-up menu for detailed information on destructible objects (the previous window not being large enough to fit everything)
Title: Re: Developer's Log
Post by: CraigStern on April 18, 2014, 11:19:29 PM
--created a rough draft of a new battle in which you can recruit up to two new characters through in-battle dialog :)

--fixed some bugs that would leave UI elements onscreen when triggering an OnTalk conversation

--fixed a bug where the game would not change a character's team surrounder (colored circle / triangle / other shape) after switching the character's army allegiance

--you can now open up the objectives splash from the Settings menu in battle

--fixed a bug where recruited characters would remain on your team if you quit the battle and then reloaded, allowing you to recruit multiple copies of the same character
Title: Re: Developer's Log
Post by: CraigStern on April 20, 2014, 11:25:29 AM
--updated the manual with documentation on the RemoveConv and RemoveCurrConv script actions

--improved visual effects for Blinding Cloak

--got Fury working properly

--new, bigger character detail screen now centers onscreen, behaves more like a menu
Title: Re: Developer's Log
Post by: CraigStern on April 20, 2014, 03:24:06 PM
--improving the look and functionality of the detailed character screen; it now shows the character's attacks
--you can now cycle through all of the characters on a team within the detailed character screen using the mouse wheel
Title: Re: Developer's Log
Post by: CraigStern on April 20, 2014, 04:25:13 PM
--fixed the long-standing bug where drop-down menus did not resize to match the width of the text they contained
--fixed a bug where the game would simply keep an hourglass cursor if the battle ended during an enemy turn
Title: Re: Developer's Log
Post by: CraigStern on April 20, 2014, 08:50:45 PM
--fixed a rather nasty bug that was sometimes causing characters to not spawn properly after being placed via Deployment Mode
--added in recruitment dialog for both Lakshmi Bana and Scarlet Etoile
--updated Lakshmi's portrait in-game
--worked out some kinks in the code that lets you switch a character's team mid-battle
--tweaked the properties of the Rubble object

I've updated the early access installers online!
Title: Re: Developer's Log
Post by: CraigStern on April 23, 2014, 09:38:33 PM
I've added accuracy to the damage preview for attacks. It'll usually be 100%, but this way there won't be any crazy surprises if your character is on ice (or is blinded, or is attacking someone with a dodge percentage, or is using an attack that has base accuracy less than 100%, or...) ;)
Title: Re: Developer's Log
Post by: CraigStern on April 24, 2014, 05:59:13 AM
Added documentation for DamageChar and DamageCharAt to the manual.

Made it so you get hurt if you wander into the campfire in the Zash and Red battle.
Title: Re: Developer's Log
Post by: CraigStern on April 24, 2014, 01:19:26 PM
--added one final attribute to CharClasses.xml and ObjClasses.xml: charY. This one goes right after shadowY, and governs the vertical placement of the character/object sprite onscreen. I wanted to avoid adding any more attributes, but this one was necessary to deal with the wonky placement of fences relative to other destructible objects.

On the plus side, this means I've finally replaced the hacky method I was using to align everything before (hard-coding it all in ridiculous fashion), and can now adjust each individual graphic as needed. This should be especially useful for people modding in their own custom graphics.
Title: Re: Developer's Log
Post by: CraigStern on April 24, 2014, 10:47:12 PM
--fixed a bug that was preventing pressure triggers from working properly
--new destructible object: well! (See below.)
--fixed the placement of fences and their shadows, especially vis-a-vis gates
--tweaked some destructible object stats (in particular, made treasure chests easier to destroy)
--made Sabrina Strider start off with slightly more Strength
Title: Re: Developer's Log
Post by: CraigStern on April 28, 2014, 08:55:55 PM
--I've added graphical icon support to the game's pop-up info windows
--detailed character screen background cleaned up
--the detailed character screen now allows you to mouse over the character's attack buttons for detailed info on his or her attacks, just as if that character were selected (see below)
Title: Re: Developer's Log
Post by: CraigStern on May 01, 2014, 09:37:39 PM
--fixed some bad placeholder values (the shadow for the vertical stone fence object, the values for the Thaw and Melt abilities, etc.)
--got some finalized UI graphics for character information into the game
--fixed some bad values for where to display UI icons under certain circumstances
--added new battlefield object to the game: caravan wagons! ;)
Title: Re: Developer's Log
Post by: CraigStern on May 02, 2014, 01:18:22 PM
--added new shadow type for the caravan wagon
--fixed some more icon placement bugs
--fixed a bug that would cause the icons to pop in before the rest of the window had finished loading
--added a new cut scene to the game
--new Dialog Action: FlipPortrait. This currently has one parameter: the name of an existing portrait. The game flips the facing direction of the portrait. I'll probably add another parameter to it (X Offset), though, as the effect currently doesn't keep the portrait in the exact same place
Title: Re: Developer's Log
Post by: CraigStern on May 03, 2014, 03:26:36 PM
I finally took a bunch of time to dig into the game's code and fix some rather nasty AI bugs that had been cropping up:

  --fixed a bug that was causing enemy turns to get out of sync, with character sometimes acting before the previous character had finished its turn

  --fixed a bug that was causing the game to sometimes select follow-up actions for the wrong character after a CPU-controlled character did something that destroyed another character or object on the battlefield (e.g. grabbing an item sack)

  --fixed a bug that was causing the game to sometimes select follow-up actions for the wrong character after a CPU-controlled character used items from its inventory

Also, just for fun, here's a screenshot of the newest in-game battle, in which you attempt to save some of the outnumbered guards in a bandit attack on a caravan. ;)
I've updated the game's installers online.
Title: Re: Developer's Log
Post by: CraigStern on May 04, 2014, 11:32:35 AM
--fixed another issue with AI timing

--made it so the game displays a star next to the names of characters whose deaths will cause their army to lose the battle (see below)
Title: Re: Developer's Log
Post by: CraigStern on May 04, 2014, 08:56:11 PM
--created a Gravity Spike sound effect

--created a video showing off Fire Gate: http://youtu.be/HS9qaOUt8PY (http://youtu.be/HS9qaOUt8PY)

--spent some time working on a new trailer with up-to-date game footage
Title: Re: Developer's Log
Post by: CraigStern on May 05, 2014, 09:52:14 PM
--The static "slide show" style narration box now has text that tells the user to click to advance to the next "slide" (you would be amazed how many people just sit there waiting for the text to change on its own without this notification there)

--Enemy AI tweak--the CPU now takes enemy counterattack potential into account when choosing potential targets outside of a character's immediate vicinity

--Recoded tags to support tags with variable parameters attached; existing tags in maps and such should not be affected

--New tag! TreatAsArmy   
   Use it on a battlefield object with an army number as a parameter. This will cause the AI interact with it as if it were a character of that army. For instance, to have the enemy armies treat a bush as if it were one of the player's characters, you'd do this:

     <Unit tag="Add,TreatAsArmy,0">0,99,Bush,17,19,None,None</Unit>

--New tag! TargetValue   
   Use it on a character or battlefield object with a Number as a parameter--whatever number you pick, the AI will use it as a multiplier when deciding its value as a target during the battle. For instance, if you wanted to increase the bush's value as a target to 250% of its normal value, you'd do this:

     <Unit tag="Add,TreatAsArmy,0/Add,TargetValue,2.5">0,99,Bush,17,19,None,None</Unit>

--used the above tags to effectively give the AI a secondary objective in one of the battles of hacking a shortcut through the underbrush if the player tries to hide a vulnerable character back there ;)
Title: Re: Developer's Log
Post by: CraigStern on May 06, 2014, 09:49:04 AM
--reduced the AI target value bonus multiplier for generals from x3 to x2.2 to reduce the single-mindedness with which the AI was pursuing just the hero characters in combat

--updated the manual with documentation on tags, as well as documentation on assigning custom lighting directly within <Unit> in maps
Title: Re: Developer's Log
Post by: CraigStern on May 06, 2014, 11:43:21 AM
--added a second parameter to the FlipPortrait action: xOffset. An integer value that tells the game how many pixels to move the portrait when flipping it. A negative value repositions it to the left; positive, to the right.
Title: Re: Developer's Log
Post by: CraigStern on May 06, 2014, 12:59:16 PM
--updated manual with documentation for Fatigue; added documentation for FlipPortrait, AddTag, AddTagToArmy, RemoveTag, and RemoveTagFromArmy.
Title: Re: Developer's Log
Post by: CraigStern on May 06, 2014, 02:44:47 PM
--updated manual with documentation for OnCenter and TowardCenter VFX spawn rules, as well as the optional front/back and right/left offset parameter
Title: Re: Developer's Log
Post by: CraigStern on May 06, 2014, 03:06:03 PM
--added an optional second parameter to the Deployment condition that lets you specify a music track to play during deployment, separate from the main battle track. (The main battle track will start as soon as deployment is over.)

--updated the manual with this new Deployment parameter. ;)
Title: Re: Developer's Log
Post by: CraigStern on May 07, 2014, 02:43:08 PM
--updated the tutorial's CharClasses.xml and ObjClasses.xml so characters have a charY attribute

--worked on the third and final part of the tutorial
Title: Re: Developer's Log
Post by: CraigStern on May 07, 2014, 05:40:39 PM
--fixed a bug that was preventing DamageChar from behaving like a normal shield when used to heal a character (i.e. damage with a Shield element)
--finished the tutorial!
Title: Re: Developer's Log
Post by: CraigStern on May 07, 2014, 10:00:33 PM
--new in-game objects: slain bodies from 12 of the game's classes. (And yeah, that sounds a little morbid, but look at how much more intense this battle looks with them there!)
Title: Re: Developer's Log
Post by: CraigStern on May 07, 2014, 10:49:22 PM
--went back and fixed an issue with the Generals game type where graphics were no longer loading for the generals
--added in star icons for generals in multiplayer, and added in star icons for both generals in multiplayer and characters to be protected in both multi- and single player in the detailed character window
Title: Re: Developer's Log
Post by: CraigStern on May 08, 2014, 07:23:08 AM
--I've updated the map editor so that it now properly displays and saves the repetitions attribute attached to various dialog branches. I've also made it so you can easily edit the repetitions attribute using the dialog editor.

The map editor has been updated online.
Title: Re: Developer's Log
Post by: CraigStern on May 08, 2014, 01:25:56 PM
--fixed a bug in the map editor where the new explanatory text boxes extended down invisibly to cover up input text boxes, thus preventing clicking in portions of those boxes
--added a new cut scene between Silithis and Ambuur Sang
--trimmed down the dialog in the scene introducing Farasat Hashmal, Gavrielle Hashmal, Louise Legerdemain, and Madeleine Strongarm
--mocked up a new battle in which you must rescue a black spriggat from a camp full of bandits
Title: Re: Developer's Log
Post by: CraigStern on May 08, 2014, 10:16:10 PM
--made it so the game properly runs scripts from automatic use items that it auto-loots via Post-Battle Looting (this allows the use of SetVal to count money and other collectibles as a numerical variable even when the item sack isn't grabbed during battle)
--added coin sacks to the items list for The Vengeance of Emma Strider
--added money drops to enemies in the Battle at Adelbrae
--made it so the game delays moving on to the next character when a CPU character moves after attacking
--fixed a scripting issue in the Battle at Adelbrae
--made it so Run can be used properly in dialog within static cut scenes
Title: Re: Developer's Log
Post by: CraigStern on May 08, 2014, 10:29:22 PM
--fixed a map editor bug that was sometimes preventing it from saving maps if new destructible objects were added during editing

The game and map editor installers have both been updated online!
Title: Re: Developer's Log
Post by: CraigStern on May 11, 2014, 02:42:11 PM
--fixed AI mistiming bugs
--fixed bug that preventing AI for continuing a character's turn after grabbing an item sack
--fixed a bug that was sometimes causing the game to freeze when characters initiated an attack
--fixed a bug that was preventing the game from advancing character dialog with the Escape key
--tweaked character stat and attack progressions
--tweaked caravan battle
--created new cut scenes before and after the caravan battle
--new character portrait
Title: Re: Developer's Log
Post by: CraigStern on May 11, 2014, 07:04:04 PM
--improved AI algorithm for actions undertaken after using or grabbing items
--added proper support for loading and saving Scripts with maps into the map editor (I have no idea how I managed to forget to add this, but it's in there now!)
--fixed a bug in the dialog editor that concerned the Duplicate Branch function


I've updated the map editor installers online! :)
Title: Re: Developer's Log
Post by: CraigStern on May 12, 2014, 05:50:21 AM
--floating text pop-ups no longer spawn before you click to begin your turn; instead, they now wait for your turn to start and only then appear
--updated Cone of Cold multiplayer map; got rid of Archipelago (which was decidedly not very fun to play on)
--fixed a few random bugs
--did some cut scene polishing
--balanced the Caravan Battle for difficulty
Title: Re: Developer's Log
Post by: CraigStern on May 13, 2014, 09:45:59 AM
--fixed a bug in the RemoveTag and RemoveTagFromArmy actions
--new script action: GoToLastBranch. It's just like GoTo, but it has no parameters; it simply moves the dialog back to whatever branch the conversation was on before the current branch. Good for conversational "dead ends" that can be reached from multiple different points in the dialog tree (e.g. "I'm sorry, but it looks like you don't have enough money to buy that.")
--two new Reply types: LastBranch and LastLastBranch. These behave the same way as NewBranch, but take no parameters, and instead move the conversation back one (or two, in the case of LastLastBranch) branches previous to the current branch.

E.G. Let's say a player is on branch 7, then clicks a reply that takes him to branch 10, and then clicks a reply that takes him to branch 15. Clicking a LastBranch reply would return him to Branch 10; clicking a LastLastBranch reply would return him to branch 7.
Title: Re: Developer's Log
Post by: CraigStern on May 15, 2014, 10:22:29 PM
--working on the merchant dialog tree some more.
--fixed bug where LastBranch and LastLastBranch reply types weren't working properly
--fixed bug where dialog with special -VAL:- and -STR:- placeholders would not update to reflect new values as they were updated via dialog
--added new LastLastLastBranch reply type (because why not)
--oh, and I submitted the game to Indiecade :)

--fixed a bug where items weren't being properly unequipped within the inventory screen when equipping a different item to the same slot, leading to multiple items showing an "equipped" symbol
Title: Re: Developer's Log
Post by: CraigStern on May 16, 2014, 01:29:24 PM
--fixed a couple of bugs in the merchant dialog tree; it's now fully functional! :D
--swapped out the placeholder character sprites from the intro; Emma and Sabrina are now actually depicted as children when they should be children
--I've implemented experience scaling into the game; the game now scales the experience characters get from attacking or slaying enemies based on the differences between their levels (you get more experience for enemies that are higher-level than your character, less experience for enemies that are lower level). Each level gap increases or decreases the experience award by 10%, to a maximum of 250% or a minimum of 10% of the base experience amount.
Title: Re: Developer's Log
Post by: CraigStern on May 17, 2014, 10:39:37 AM
--to complement the new experience scaling system, I've added a new tag to the game that you can use to silently level up generic enemies to a specific level as soon as they spawn: LevelUp. The LevelUp tag takes one parameter: a positive integer that tells the game how many levels the tagged character should gain.

For example: the main campaign has a generic level 1 enemy named Bloodbeard's Bandit. But suppose I want the player to face a slightly tougher version, one that will give him or her more experience points? I can use the LevelUp tag for that. This will level up the bandit twice, causing the player to face a level 3 bandit:

<Unit tag="Add,LevelUp,2">0,1,Bloodbeard's/Bandit,1,17,Down,25 Coins</Unit>

There are two big things that distinguish this from leveling up via the GiveExp script action: (1) it goes right in the Unit tag, so you can apply it to characters that don't have unique names; and (2) it levels them up quietly, meaning you aren't going to see a bunch of experience bars and pop-up text over the enemies at the start of every battle.
Title: Re: Developer's Log
Post by: CraigStern on May 18, 2014, 01:03:54 PM
--added an optional parameter to the LastBranch reply type specifying the number of branches back in the conversation history to travel (if the parameter is not entered, it'll just go back one by default)
--added an optional parameter to the GoToLastBranch script action specifying the number of branches back in the conversation history to travel (if the parameter is not entered, it'll just go back one by default)
Title: Re: Developer's Log
Post by: CraigStern on May 18, 2014, 09:27:48 PM
--fixed a bug in the map editor where characters weren't getting removed from the map if their row or column was deleted
Title: Re: Developer's Log
Post by: CraigStern on May 19, 2014, 09:35:21 PM
--added a new feature to the game's dialog editor: you can now move dialog branches around! Specifically, the dialog map now displays little arrow buttons that you can use to move dialog branches up or down within their given conversations. This lets you change the order of dialog on the fly; very handy, and something I've been wanting in the dialog editor for quite some time.

--new reply type: NextBranch. It's less flexible than NewBranch, in that it only ever goes to the next branch of the dialog tree in strict numerical order, but it also makes things wayyyyyyy easier when editing the dialog in cut scenes and other linear conversations, since you won't have to go and update all of the branch parameters every single time you add or remove a branch from the middle of the conversation.

--the mouse-over character window now shows enemy level number and class type in single player (seeing as it's now relevant to know with the additions of the last couple of days)


I've updated the map editor and game installers online. ;)
Title: Re: Developer's Log
Post by: CraigStern on May 20, 2014, 02:22:31 PM
--fixed a bug where pressure triggers would remain after the object they were tied to is destroyed.

--created a reference XML with all of the game's current 83 script actions and short descriptions of their parameters. I'll be using this to provide some assistance with scripting in the dialog editor. ;)
Title: Re: Developer's Log
Post by: CraigStern on May 22, 2014, 11:19:27 AM
--I've created the game's first legendary weapon: Aravel. Aravel is an extremely durable and well-crafted rapier. As a rapier, Aravel gives the user access to piercing as well as slashing attacks. In addition, the weapon is so light and well-balanced that it gives the user extra energy and dodge, plus an extra counterattack. You can use Aravel to perform a series of quick thrusts over the course of a turn, each costing only a little energy. Aravel is currently wielded by Fera, a fearsome swordsman who serves as Igor Bloodbeard's second in command.

--I've programmed the dialog editor with code hints! When you type in a new action, it checks what you've typed against a list of all supported actions. If it finds a match, the editor then fills in the parameters box with a code hint setting out the action's parameters. For instance: if you type IfStatRun into the action field, it'll automatically detect it as an action and stick this in the parameters field right next to it:

Character Name, Stat Name, Mode of Comparison ( = / g / l / etc), Amount, Script Name

This should make scripting in the dialog editor wayyyyy easier. I'm going to test it this evening, and hopefully update the map editor sometime tonight. :)
Title: Re: Developer's Log
Post by: CraigStern on May 24, 2014, 03:58:42 PM
--I've now tested the code hints and they're working! Here's a video showing code hints and dialog swapping in action: http://youtu.be/Rm2c0IY9ydY (http://youtu.be/Rm2c0IY9ydY)

--Tyvon has gotten me the Throwing Axe animation for the bandits; I've now added throwing axes to the game!


I've updated the map editor installers and regular game installers online.
Title: Re: Developer's Log
Post by: CraigStern on May 26, 2014, 10:56:29 AM
--new script action: MoveDialogBox. This repositions the dialog box vertically onscreen. It takes one parameter--the number of pixels to move the dialog box.

--used MoveDialogBox to get the dialog window out of the way of the blue swordsman in the standalone tutorial and in the public demo training level when telling the player to click her.

--added documentation of ShowActionsWindow and MoveDialogBox to the manual.
Title: Re: Developer's Log
Post by: CraigStern on May 28, 2014, 07:41:01 AM
--Hardened status effect now increases all physical resistances by 50%, and lasts 3-5 turns

--Hardened now cancels any preexisting Softened status, and Softened cancels any preexisting Hardened status

--new special character for dialog: -PLAYERTURN-. This references the army number of the player whose turn it currently is.

--laid some of the design groundwork for making status effects moddable (which would allow you to change the parameters of existing status effects and create your own)
Title: Re: Developer's Log
Post by: CraigStern on May 28, 2014, 09:47:36 AM
--fixed a bug where the game would sometimes cut off the Victory screen and strand you in battle if you won using  turn-ending attack from the last remaining character on your team

--fixed the bug where the mouse cursor would not show up during narrative cut scenes

--fixed the bug where characters you recruited would remain in your roster upon reloading after defeat in battle

--fixed the bug where LastBranch doesn't work if you follow it with a forward slash and don't specify a numerical parameter afterward

--fixed a bug where you could advance dialog by clicking even if the common inventory was open during a conversation

--fixed a bug where character names weren't displaying upon mousing over them in the common inventory

--fixed a bug where the computer would continue to take its turn rather than pausing during a character's death monologue

--T is now the hotkey for "Talk"; toggle timer is now Shift + T

--fixed a really significant map editor bug that was causing it to fail when loading maps


Map editor installer has been updated online.
Title: Re: Developer's Log
Post by: CraigStern on May 29, 2014, 09:56:32 PM
--created new battle: the fight with Gunther Lathe

--added nextscene field to save map in map editor

--began work on making tags, triggers, and character / object inventory editable in the map editor
Title: Re: Developer's Log
Post by: CraigStern on May 31, 2014, 08:13:39 AM
--new script action: RemoveTagFromCharAt. Allows you to remove "passive" tags from generic enemies on the battlefield at specific coordinates.

--fixed a bug that was causing armies to be passed over in single player if they had reinforcements due and no characters left on the field

--programmed a thief into the Gunther Lathe battle that appears mid-battle and loots a treasure chest sitting on the battlefield, then runs away!
Title: Re: Developer's Log
Post by: CraigStern on June 03, 2014, 07:24:20 AM
--We now have a Whirlwind attack animation for the bandit class!

--The AI now accounts for an attack's chance to hit when deciding whom to attack, and with which skill. (This represented one of the few remaining hold-outs from when the game was 100% deterministic without exceptions.)

--Items can now modify a character's accuracy stat. (I've added the accPlus attribute right before counterPlus in ItemClasses.xml; you can copy-paste accPlus="0" there to update your own item classes in any custom campaign you're working on.)

--created new variations on the Bow item graphic.

--created new item: Long Bow. It's a bow that only support the Arched Shot attack, but it deals a bit more damage and boosts the attacker's base accuracy with Arched Shot from 60% to 85%.
Title: Re: Developer's Log
Post by: CraigStern on June 03, 2014, 09:13:07 PM
--bug fix: for AOE attacks that trigger multiple counterattacks simultaneously, the game now once again goes through all of the counterattacks before ending the exchange. (This also means that explosion chains (http://youtu.be/EQE9eemFAoo) are now a thing again.)

--bug fix: you can now once again target empty spaces of water with Cold attacks to freeze them, even if no other targets are present.

--bug fix: TowardTargets and OnTargets VFX will now act on all spaces targeted by the attack, even if no characters or objects occupy those spaces.
Title: Re: Developer's Log
Post by: CraigStern on June 04, 2014, 05:08:30 PM
--David Hammond is working on sprite variations for some of the game's characters (see below).

--I've created a new cut scene introducing Igor Bloodbeard and Tarion.
Title: Re: Developer's Log
Post by: CraigStern on June 05, 2014, 09:11:22 AM
--equipped items can now add tags to characters, and those same tags will be removed when the item is unequipped
Title: Re: Developer's Log
Post by: CraigStern on June 05, 2014, 06:02:27 PM
--fixed a bug that was preventing the remove tag function from working in situations where it needed to match specific tag parameters
Title: Re: Developer's Log
Post by: CraigStern on June 06, 2014, 09:37:45 AM
--added four new tags: ModDmgForClass, ModDmgForMoveType, ModDmgForRace, and ModDmgForTag. These allow you to modify a character's attack damage based on the attack target's class, movement type, race, or whether the target has a particular type of tag. For example:

Code: [Select]
ModDmgForMoveType,*:2:flying

will double the character's damage against flying characters.

What's more, because items now have an addsTags attribute, this means the game now supports weapons that are more or less effective against flying, swimming, or land-based characters; against characters of particular classes or races; and against characters with particular tags.

--added documentation of the accPlus and addsTags ItemClass attributes to the manual; expanded documentation on the commonality attribute to discuss how it relates to the -R- and R[] placeholder symbols for randomized items within character and object inventories; expanded documentation on tags to clarify the proper formatting for using them, as well as including the new tags.
Title: Re: Developer's Log
Post by: CraigStern on June 08, 2014, 10:53:47 PM
--updated the game's AI algorithms to take account of the new ModDmg tags

--improved AI for ranged units; they now account for ranged damage falloff and elevation bonuses and penalties when choosing where to shoot from

--significantly improved the algorithm that tells enemy units which direction to rotate after moving in order to keep themselves from getting backstabbed

--fixed bug where game was showing move tiles for enemies after they attacked

--fixed bug where Bowman's down-facing Split Shot animation was not being palette swapped correctly

--I've found a bug where game freezes after enemies grab item sacks, but after hours fo digging, I still have no idea why it's happening. I'll resume the hunt tomorrow
Title: Re: Developer's Log
Post by: CraigStern on June 09, 2014, 06:10:19 AM
--aaaaand I've fixed the item sack grab bug

Installers updated online.
Title: Re: Developer's Log
Post by: CraigStern on June 13, 2014, 12:14:18 PM
Okay! So, I've been working on a silly little one-off campaign for the IndiE3 jam the past few days, in which you play a Guard Llama named Lorenzo Llamas. (No relation to this guy (http://en.wikipedia.org/wiki/Lorenzo_Lamas).) It's incredibly silly, but I've been having fun with it. I've also been using it to practice my pixel animating skills. I'll be finishing this one up this weekend, then releasing it as a free one-off campaign for you all to enjoy. :)

Oh, also, some things:

--I fixed a bug where the MoveDialogBox action wasn't working in static cut scenes

--added a new music track to the game: VillageTheme
Title: Re: Developer's Log
Post by: CraigStern on June 13, 2014, 02:46:27 PM
--fixed a bug where characters could only use skills once in exploration mode

--fixed a bug where the reticles and cancel button would remain onscreen after interacting with a door
Title: Re: Developer's Log
Post by: CraigStern on June 14, 2014, 01:05:48 AM
--fixed a bug where RecruitChar had ceased to work in static cut scenes

--fixed bug where triggers, lighting and tags placed within <Unit> tags would sometimes adhere to the wrong character or object if there were character spawn points left empty

--bug fix: you can now trigger pressure triggers by moving other characters or objects onto them with Shove or other knockback skills

--fixed male assassin Knife animation not palette swapping properly

--aesthetic fixes to lit braziers

--using MoveDialogBox to move the dialog box upwards now keeps the character portraits down at the bottom of the screen
Title: Re: Developer's Log
Post by: CraigStern on June 14, 2014, 09:42:55 AM
--bug fix: attacks now line up properly in the actions menu in exploration mode

--attack hotkeys now always match the number displayed in the actions menu in exploration mode
Title: Re: Developer's Log
Post by: CraigStern on June 14, 2014, 04:59:55 PM
--fixed a bug where characters with multiple counterattacks were still only counterattacking one time maximum

--fixed a timing issue where chars leveled up after counterattacking during an enemy turn, where the game would just sit there for 2 seconds after the leveling up sequence ended

--fixed a bug where changes to the character roster occurring during narrative cut scenes did not save properly at the end of the cut scene

--fixed a bug where character graphics would sometimes glitch out when being desaturated at the end of their turn
Title: Re: Developer's Log
Post by: CraigStern on June 15, 2014, 03:58:50 PM
--you can now use -Any- as a parameter in lieu of a character name with OnTalk dialog triggers; for those occasions where it doesn't matter which character initiates the conversation!

--fixed a bug where the game would freeze during the enemy's turn if it tried to move and couldn't find a viable move option.

--fixed bug where the LevelUp tag sometimes resulted in enemies getting level up pop-ups at the start of the battle.

--fixed a bug where attack reticles (the things that show you the attack's eventual damage) would sometimes show up beneath enemies, where you couldn't really read them.

--fixed a few bugs where the FlushCharDeathQueue action would sometimes cause extra characters to be killed when they should not have been.

--fixed a bug where a character would lose the ability to equip and unequip items in slots where the character had nothing equipped if he or she started out the battle with nothing equipped there.

--fixed a bug that was preventing MoveDialogBox  from adjusting everything properly in fullscreen mode.

--I now have a two-level dungeon in the Guard Llama mini-campaign. :)
Title: Re: Developer's Log
Post by: CraigStern on June 15, 2014, 10:08:48 PM
--AI characters that can't do anything useful now pass their turns and let the other characters go before moving.

--new dialog trigger type: OnOpeningDoor. This takes two parameters--the door's X and Y coordinates.

--bug fix: the game now actually listens when you define the types of enemies you want to appear in a randomly generated dungeon map.

--you can now specify a range of levels for enemies to spawn at (e.g. 3-5 will spawn level 3, level 4 and level 5 versions of the enemies) in randomly generated dungeons.

--you can now define battle conditions when creating randomly generated dungeons (global lighting, deployment, etc.)

--randomly generated levels now render the <Light> tags contained within their component generator chunks (see below).
Title: Re: Developer's Log
Post by: CraigStern on June 16, 2014, 09:05:18 AM
--random dungeon generation now supports different dungeon types! Within the Maps > Generator Chunks Folder, you can now create subfolders with their own sets of rooms. You now name the subfolder you want to use when you create a randomly generated level, which tells the game which folder full of room chunks to pull from. (See below.)

--I've changed the formatting of GENERATE_RANDOM_LEVEL[] somewhat to keep things consistent with the use of conditions. This is how it now works:

Quote
Within the square brackets of GENERATE_RANDOM_LEVEL[], delimited by forward slashes, include the following parameters:

1. dungeon type – tells the game which rooms to use when building the level; specifically, which subfolder within Maps > Generator Chunks to use. (If, for instance, you've created a folder within Generator Chunks called Forest with a bunch of rooms that are just grass and trees and bushes and such, and you want the game to generate a level using those chunks, you'd use Forest for this parameter.)

2. nextbattle – the name of the scene to go to once the level is successfully completed.

3. musictrack – the music to play for this level.

4. number of floors – how many levels the generated dungeon should contain. (Leave this at 1 for now.)

5. level size – a number representing both the width and height of each level (e.g. 15 will produce 15x15 square floors).

6. number of enemies – a range of enemies, with the lower bound and upper bound delimited by a hyphen (e.g. 8-12 will cause the level to spawn between 8 and 12 enemies).

7. level of enemies – a range of enemy levels, with the lower bound and upper bound delimited by a hyphen (e.g. 1-3 will result in all enemies spawned being between level 1 and level 3).

8. types of enemies – the names of all possible enemies that can spawn, with a comma between first and last names, with each individual enemy delimited by a colon (e.g. Bloodbeard's,Bandit:Bloodbeard's,Bowman:
Bloodbeard's,Healer
will tell the game to choose from these three types of enemies when populating the level).

9. conditions – all Conditions you want the level to have, from global lighting to deployment. Delimit each condition's parameters using commas, as usual; the conditions should each be separated by a colon (e.g. Global Lighting,Cave:Protect Char,0,Lorenzo Llamas will set the level's lighting and make it so the player has to keep the character Lorenzo Llamas alive).

Usage example: GENERATE_RANDOM_LEVEL[Ancient Dungeon/Exit Cut Scene/Dungeon/1/30/10-14/2-6/Ancient,Ghost:Ruins,Bandit,:Ruins,Swordsman/Global Lighting,Cave] will cause the game to generate a single 30 x 30-tile level using room chunks from the “Ancient Dungeon” subfolder, lit with the “Cave” global lighting condition, playing the “Dungeon” music track, containing between 10 and 14 enemies (a mix of Ancient Ghosts, Ruins Bandits and Ruins Swordsmen) ranging in level from 2 to 6, and proceeding to the scene Exit Cut Scene.xml upon completion.

--manual updated with documentation on how to randomly generate levels.
Title: Re: Developer's Log
Post by: CraigStern on June 16, 2014, 12:39:35 PM
--dialog and scripts contained within room chunks are now incorporated into any randomly generated level that uses them!

--in randomly generated levels, the coordinate parameters for OnReachingSpace and OnOpeningDoor dialog triggers are now auto-corrected to account for the room's position.

--in randomly generated levels, all dialog actions that have coordinate parameters now have those parameters auto-corrected to account for the room's position.
Title: Re: Developer's Log
Post by: CraigStern on June 16, 2014, 10:17:31 PM
--tweaked existing dungeon room chunks to look nicer and work better

--created new sound effects for attacks
Title: Re: Developer's Log
Post by: CraigStern on June 19, 2014, 06:44:47 AM
--finished the Guard Llama campaign!

--created a new "hole" tile to stick beneath wells and such; placed it beneath the well in Adelbrae.

--created a couple of dungeon-water transition tiles so dungeons can have nice-looking pools and water channels in them.

--the game now shows character class and level when mousing over someone in deployment mode, as well as in the common inventory.

--created a draft of the game's credits.

--fixed a bug where your team wouldn't show up when managing the common inventory in deployment mode.

--made it so you cannot press ctrl + E to glitch out the game during deployment mode.

--fixed a few typos.


I'll be releasing the Guard Llama campaign just as soon as I have the chance to fix a few more bugs that came up in last night's playtest session.
Title: Re: Developer's Log
Post by: CraigStern on June 20, 2014, 06:27:02 PM
--new tag: IgnoreArmy. Tells a character's AI to have it ignore characters from the designated army; the character will not attack characters from that army. One parameter: army number to avoid attacking.

--added Ryan Richko's victory music to the game; now used in the ending to Guard Llama!

--fixed a number of bugs in the common inventory, the biggest being:

     --dragging an item onto a character when another character's inventory screen was open would cause the item to appear in the currently open character inventory screen
     --dropping an unequipped weapon would cause the character to unequip the weapon that he or she did have equipped

--fixed an issue where single player battles with AI-controlled allies would continue after you died without bringing up a defeat screen.

--fixed thief AI issue in Battle with Gunther, where the thief would get distracted by Gunther's characters and attack them if they wandered into range.

--fixed an issue where equipped weapon bonuses weren't registering at the start of battle for non-player characters if deployment mode was enabled.

--fixed an issue where AOE attacks that killed multiple characters at once would leave some of the dead characters on the battlefield.

--fixed a bug where MovePortrait actions for portraits weren't getting removed along with the portraits themselves, leading to the MovePortrait  commands sometimes getting applied to other portraits afterwards.


I've updated the installers online, and Guard Llama is included! ;)
Title: Re: Developer's Log
Post by: CraigStern on June 23, 2014, 06:18:50 AM
--fixed a bug where the dungeon generator was failing to properly import the last room in any given generator chunks subfolder

--fixed a bug in the process for updating script coordinate parameters in the random dungeon generator which was causing problems upon script activation

--fixed a bug in the process for updating script coordinate parameters in the random dungeon generator which was causing the new coordinates to be mushed together like a string instead of added together properly

--fixed a bug in the SpawnChar action that was sometimes preventing destructible objects from spawning properly
Title: Re: Developer's Log
Post by: CraigStern on June 23, 2014, 01:27:43 PM
--testing out the new capabilities of the procedural dungeon generator a bit; created a room with a prison cell, a switch to open the door, and a randomly selected recruitable character inside :)
Title: Re: Developer's Log
Post by: CraigStern on June 25, 2014, 01:39:05 PM
--the first promoted character sprites have arrived! We now have rest sprites for the promoted Bandit and Cavalry units. :D

--now that promoted unit graphics are underway, I've resumed my work creating a chart of class promotions.

--I've now written death monologues for all the characters currently in the main campaign.

--Louise now leaves the party after the Caravan battle if Madeleine has died.
Title: Re: Developer's Log
Post by: CraigStern on June 25, 2014, 11:36:37 PM
--fixed a bug where the game saved characters' tags and pushability setting in the wrong spots, causing problems with each during single player campaigns

--fixed a bug where the ChangeCondition action would not work properly in combination with the New Army condition

--fixed a bug in the scoring system that occurred in battles that used the New Army condition

--fixed a bug in the scoring system that was preventing the game from ever awarding bonus points for optional objectives achieved in battle


The installers have been updated online.
Title: Re: Developer's Log
Post by: CraigStern on June 27, 2014, 03:05:18 PM
--created new status effect, Disarm; causes the target to drop whatever item is equipped to the Weapon Hand slot.

--created new Disarm, Poison Bolt, Build Wood Bridge 2, Build Wood Barricade 2 attacks.

--increased the maximum range of the Crossbow attack from 3 to 4 to increase its usefulness via-a-vis Bow.

--reduced the energy cost of Bonebreaker and Cripple (now each 3 Energy) relative to Stunner (4 Energy) to make them more useful.

--new atkEffects setting: just using Psy for the atkEffects attribute now allows a skill to affect the target's Psy Power and Psy Defense simultaneously.

--wrote up several more promoted versions of existing classes.
Title: Re: Developer's Log
Post by: CraigStern on June 29, 2014, 09:39:31 PM
--fixed: certain character portraits not being the right color in death monologues

--in exploration mode, the game no longer shows all 0-damage attacks. Now, it only shows skills that have non-zero knockback, or which are Move or Create element skills

--I've now outlined the promoted class info for every class other than the spriggats

--new tag: RangeBonus. One parameter: the number of spaces by which to expand the character's maximum range for ranged skills.

e.g. setting a character's tags="RangeBonus,1" in CharClasses.xml will result in that character having +1 range on all ranged abilities. (Melee abilities will remain at 1 range.)
Title: Re: Developer's Log
Post by: CraigStern on July 01, 2014, 01:30:36 PM
--every Generator Chunks subfolder now has a file called _Settings.xml with instructions about how to put together the room chunks contained in the subfolder. As of right now, the _Settings file defines four properties:


Those last two properties, in particular, mean that you can now generate procedural levels using any tileset, not just Dungeon. This means that you can now create forest levels, cave levels, castle levels, etc.
Title: Re: Developer's Log
Post by: CraigStern on July 07, 2014, 11:11:24 PM
After a week of vacation, I'm back!

--fixed a bug where the game wouldn't apply the effects of multiple tags of the same type; it'd only apply the first of a given type. (This prevented things like multiple TargetValue or RangeBonus tags from affecting a single character.)

--new script action: AddSpeakerPortrait. The game looks for the character that is currently speaking and just automatically figures out the correct portrait name, filename, and team color to use. One parameter: facing (right or left.) The portrait name will automatically be the character's full name if you use this action.

--new battle: Rescuing Meridian! I'll be testing and tweaking this one over the new few days.
Title: Re: Developer's Log
Post by: CraigStern on July 13, 2014, 07:14:17 PM
--made an important performance improvement to the Telepath Tactics AI; the game now wastes way less time processing potential moves for passive characters if it finds that there are no enemies within attack range (important for characters with long-range attacks on large maps)

--AI improvement: healers now have long-range AI planning capabilities; they'll now move around with the aim of healing allies that aren't within immediate move-and-attack range.

--AI improvement: CPU-controlled characters with empty equipment slots will now equip items in their possession to empty slots.

--new tag: ID. Allows you to give a character a unique identifying number.

--new special character: ID[]. You can use this for any script action parameter wherever you'd ordinarily use a character's name. Instead of grabbing the character by name, the script action will target the particular character who's been tagged with the ID number within the square brackets. (e.g. MoveChar      ID[12],6,6 will move whatever character has been given the ID 12 tag to the coordinates 6 , 6).

--fixed a bug that was preventing the OnMoveComplete trigger from working with CPU-controlled characters.
Title: Re: Developer's Log
Post by: CraigStern on July 19, 2014, 02:58:43 PM
Okay! Where were we?

--mocked up the basics of a battle outside the walls of the bandit fortress

--created a rough draft of a battle where you have to defend the camp at night against waves of attackers (see pic below)

--made it so you can use the Protect Char condition with a character ID instead of just using a character's name. This can be used to have battles where the player must protect particular generic units or destructible objects. (Needless to say, I am using this for the protect the camp battle!)

--fixed a graphical glitch in the down-facing walk cycle for the male pyrokineticist

--fixed a bug that would sometimes make the game hang when running a script

--fixed a couple of bugs that would glitch out the game if accessing the common inventory via a script in the middle of combat
Title: Re: Developer's Log
Post by: CraigStern on July 21, 2014, 11:57:34 AM
--new script action: RotateCharTowardPoint. This rotates the named character to automatically face a particular set of coordinates on the battlefield. Three parameters: character name, y coordinate of spot to face, and x coordinate of spot to face.
Title: Re: Developer's Log
Post by: CraigStern on July 21, 2014, 02:20:15 PM
--I've added support for three strings to the IfStatGoTo and IfStatRun actions:


Title: Re: Developer's Log
Post by: CraigStern on July 21, 2014, 04:49:09 PM
--fixed an AI bug that was causing the CPU to select attacks improperly when targeting objects tagged with TreatAsArmy.
Title: Re: Developer's Log
Post by: CraigStern on July 22, 2014, 03:24:56 AM
--fixed a bug where StartingInv and OnLevelUp data taken from CharClasses.xml were sometimes applied to the wrong character in battle
Title: Re: Developer's Log
Post by: CraigStern on July 24, 2014, 05:47:05 AM
--new tag DisplayInfo: makes player-owned objects on teams above team 99 now display health or energy if tagged. Good for letting players keep track of the health of objects they need to protect or destroy to win a battle!

--fixed a bug where clicking a target with Use did not get rid of the targeting square and cancel button

--got a bunch of new promoted unit drafts, and they look awesoooooooome
Title: Re: Developer's Log
Post by: CraigStern on July 25, 2014, 12:02:45 PM
--new SetStat stat type supported: Class. This lets you change a character's class name.
Title: Re: Developer's Log
Post by: CraigStern on July 26, 2014, 03:11:13 PM
--updated the manual with documentation on the ID tag and the usage of the ID[] special character, as well as better directions on size and placement limitations for new character sprites

--fixed a map editor bug where the map editor would not spawn the new object or new character menu if it did not detect the User Campaigns directory. Now if the map editor doesn't detect the User Campaigns directory, it simply creates it.

--created a graphic showing the current state of promoted unit graphics (see below)
Title: Re: Developer's Log
Post by: CraigStern on July 27, 2014, 02:42:45 PM
--updated the map editor with the capability to add triggers, tags, and inventories when placing objects and characters! ;)

--you can now edit a character's default portrait using SetStat.

--updated documentation on dialog replies and reply types within the manual.

The map editor installers and manual (http://www.sinisterdesign.net/Downloads/Telepath%20Tactics%20Manual.pdf) have been updated online.
Title: Re: Developer's Log
Post by: CraigStern on July 30, 2014, 08:08:45 AM
--big map editor update: the "Edit Character" function finally works! When in Edit Character mode, you can left-click any character on the map to open a window where you can edit everything from the character's class to its map coordinates to its tags and inventory.

I still need to pretty it up a bit, but it's working, and that's what counts! I should have the map editor updated with it shortly. You can see how the Edit Character window looks right now in the screenshot below. ;)
Title: Re: Developer's Log
Post by: CraigStern on July 30, 2014, 06:45:26 PM
--I've cleaned up the edit character window and made it load the default portrait of whatever character is being edited ;)

Oh, also, the map editor installer has been updated online!
Title: Re: Developer's Log
Post by: CraigStern on July 31, 2014, 10:48:32 AM
--you can now edit objects in the same way as characters in the map editor! (It loads the object's image in lieu of a character portrait.)

--assigned hotkeys to Character Editing (Shift + C) and Object Editing (Shift + B) modes in the map editor.

--fixed a bug where the map editor would sometimes not highlight the button showing what editing mode it is in.
Title: Re: Developer's Log
Post by: CraigStern on July 31, 2014, 09:42:57 PM
--fixed a few more map editor bugs

I've updated the map editor installers again. Go ahead and update!
Title: Re: Developer's Log
Post by: CraigStern on August 03, 2014, 06:07:08 PM
--added tutorial hints about recruiting enemies to the boss battle with Gunther.

--made adjustments to the caravan battle to make Lakshmi easier to save.

--fixed a nasty little map editor bug that snuck into the last build which prevented one from placing new characters on the map.

--bug fix: the game now lets you shove characters into spaces where there are item sacks; item sacks no longer keep a character from being considered "swimming" when in water or lava.

--bug fix: the game no longer freezes at the end of battles where it auto-loots items that are auto-used (i.e. money).

--renamed Arched Shot to Arced Shot.


I've updated the map editor installer online.
Title: Re: Developer's Log
Post by: CraigStern on August 04, 2014, 02:28:29 PM
--created a short tutorial within the merchant dialog screen to help new players figure out how to manage their items and figure out what to buy

--it turns out that the game needed to provide more of a breather after the first big boss battle, and so I decided to throw in some character development at that point. To that end, I've written up six short conversations with recruitable characters for that the player can engage in while at camp. I have a few more to write, then I'll be adding them into the game! ;)
Title: Re: Developer's Log
Post by: CraigStern on August 04, 2014, 02:32:47 PM
--I've created a variant on the Throwing Axes weapon, Gold-tipped Throwing Axes. They deal more damage and have +10 accuracy, but are much more expensive than the usual kind. For those special occasions where you really need Madeleine to hit--and hit hard--from two spaces away. ;)
Title: Re: Developer's Log
Post by: CraigStern on August 05, 2014, 07:13:32 AM
--I now have optional campground conversations with Sabrina, Gavrielle, Farasat, Louise, Madeleine, Scarlet and Lakshmi written up. I need to write two more: one with Zimmer, and one with Meridian. The conversations with Sabrina, Gavrielle, Farasat, and Louise are in-game; I'm adding the others as we speak!
Title: Re: Developer's Log
Post by: CraigStern on August 05, 2014, 08:49:00 AM
--put instructions for viewing individual character inventories within the common inventory

--created new item, the Novice Battle Primer. This book can be used once in battle to give the reader 50 experience points (100 experience points if the reader is level 4 or lower). Created Intermediate and Expert Battle Primers as well; created a new Yellow Book graphic for the intermediate primer.
Title: Re: Developer's Log
Post by: CraigStern on August 05, 2014, 11:20:20 AM
--I now have optional conversations with all characters except for Zimmer Thrawn, Meridian, and Rebecca Flare in-game.

--New script action: RemoveReply. This allows you to selectively remove a reply option from a specified branch of dialog. Two parameters: Reply Text and Branch Number. Why RemoveReply? Basically, this permits you to vary the available replies dynamically instead of having to create a variant branch for each single possible combination of replies. (Needless to say, I am making heavy use of this new action in the camp scene where you can select which of your recruited characters to talk to.)

One thing to note about RemoveReply: it uses a double-colon (that is, ::) to delimit its parameters instead of commas. This is so because commas are likely to appear in reply text; if this action used a comma delimiter on a reply with commas in it, it would fail to work.

Code: [Select]
RemoveReply     Want to buy my sword?::12
will look for the reply in branch 12 of the current conversation using the text “Want to buy my sword?” If it finds this reply in branch 12, it will remove it from that branch.
Title: Re: Developer's Log
Post by: CraigStern on August 05, 2014, 01:18:32 PM
--atkAffects can now affect Accuracy.

--added a new, optional seventh parameter to SpawnChar: tags. Delimit each tag with a double colon, and set off the Add/Remove, tag name, and tag parameters within each tag with single colons. Like so:

Code: [Select]
SpawnChar     1,Bandit:Swordsman,3,5,Down,,Add:Passive::Add:LevelUp:2
This will spawn a level 3 Bandit Swordsman with Passive AI.

--twenty new tags! No seriously: Health, Energy, Max Health, Max Energy, Speed, Dodge, Strength, Perception, Psy Power, Psy Defense, Pierce Res., Slash Res., Crush Res., Mental Res., Heat Res., Cold Res., Light Res., Shadow Res., Poison Res., and Accuracy are now available tags. Each of these tags has a single parameter: a positive or negative integer value to be quietly added to the tagged character's corresponding stat as soon as the character spawns.

These will allow you to adjust the stats of individual instances of generic enemies and destructible objects within a given battle.
Title: Re: Developer's Log
Post by: CraigStern on August 06, 2014, 05:11:04 AM
--fixed a bug where SpawnChar was causing characters with a sex attribute of Either to spawn invisible.
Title: Re: Developer's Log
Post by: CraigStern on August 06, 2014, 12:30:38 PM
--I've now written the optional campground chats with Zimmer Thrawn, Meridian, and Rebecca Flare, and added them into the game.
Title: Re: Developer's Log
Post by: CraigStern on August 06, 2014, 01:55:21 PM
--new tag: Promoted. The Promoted tag takes one parameter: the character's levels gained prior to getting promoted. The game takes this value and uses it to affect experience scaling going forward, both for its own experience gained from attacking enemies, and for the experience other characters get from attacking it.

For example: let's say that Charles Brisbane the Cavalier reaches level 20 and promotes, becoming a level 1 Mantis Knight. Without a Promoted tag, he'll suddenly start getting loads of experience for attacking and killing level 5 (or 10, or 15) characters, even though they're technically much less experienced than he is. So we need to add the tag Promoted,19 so that he's treated as the level 20 character he effectively is.

Another example: let's say that the player has to fight Igor Bloodbeard, a level 5 Marauder. The Marauder is the promoted version of the Bandit, so Igor is effectively level 24. If we don't give Igor the Promoted tag, and the player slays Igor using a level 10 character, that character will get very, very little experience for the task, since the game will treat him as slaying an enemy half his level!
Title: Re: Developer's Log
Post by: CraigStern on August 09, 2014, 10:50:46 AM
--fixed a few bugs that were preventing procedural level generation from working properly after the support I added for custom random level types. After a bit of testing, I got the game to generate a random forest level. :)

The parameters that generated the battle shown below:

Code: [Select]
nextbattle="GENERATE_RANDOM_LEVEL[Forest/Camp 1/Dungeon/1/21/16-22/2-6/Bloodbeard's,Bandit:Bloodbeard's,Bowman/Global Lighting,Daylight:Protect Char,0,Emma Strider]"
Title: Re: Developer's Log
Post by: CraigStern on August 09, 2014, 03:25:54 PM
--fixed bug where the actions menu does not reappear after you click to close the detailed character info screen

I've updated the game's installers online. Early access backers, update away! ;)
Title: Re: Developer's Log
Post by: CraigStern on August 10, 2014, 09:08:01 AM
-fixed a bug that was causing battle primers to remain the character's inventory after use, thus permitting unrestricted leveling

-fixed a bug that was causing characters' turns to end after leveling up even when the attack that leveled them up would not have ordinarily ended the character's turn
Title: Re: Developer's Log
Post by: CraigStern on August 10, 2014, 10:10:21 PM
--new feature: the main campaign now supports "casual mode," in which characters that die simply come back in the next battle with -1 max health instead of remaining dead.

--whenever a character is selected, the actions window now displays the name of the currently selected character whose available actions it contains.

--fixed a bug where changes to character stats wouldn't stick if the character wasn't still on the battlefield at the end of a battle.
Title: Re: Developer's Log
Post by: CraigStern on August 11, 2014, 06:25:20 AM
--fixed a bug where static cut scenes would not load (or therefore, run) scripts.

--made some balance changes so that the Caravan Battle is a bit easier.

The installers have been updated online! :D
Title: Re: Developer's Log
Post by: CraigStern on August 11, 2014, 09:15:14 AM
--cut scenes now load scripts and dialog from PersistentDialog.xml

--additional tutorial tip added to caravan battle urging players to left- and right-click on boss characters to formulate a strategy
Title: Re: Developer's Log
Post by: CraigStern on August 11, 2014, 06:20:37 PM
--updated the manual with documentation on the portrait attribute, as well as updated documentation on sex and spritetype

--fixed deployment bug: character levels and classes would not follow the character when swapping positions

--fixed deployment bug: character level and class would not load properly if the character had not been used in a previous battle

The installers have been updated online.
Title: Re: Developer's Log
Post by: CraigStern on August 12, 2014, 10:18:37 AM
--new script actions: IfTagGoTo and IfTagRun. These go to a dialog branch or run a script if a named character has a particular tag.

There are four parameters to the IfTagGoTo / IfTagRun actions: Character Name with spaces, Tag Name, Tag Parameters (if any), and Branch (IfTagGoTo) / Script Name (IfTagRun). The tag name can be anything the game supports, or even custom tags you've created yourself.

--added documentation to the manual on creating your own Procedural Level Generator Room Sets.

--added smoke particle effects when characters are wounded and removed in Casual Mode.

--the OnStat trigger now accepts -ANY- as a character name parameter, which makes it so that any character reaching the prescribed stat value will trigger the dialog.

Also, just for fun, here's a pic of the Actions Window telling us who's currently selected. :)
Title: Re: Developer's Log
Post by: CraigStern on August 12, 2014, 02:26:46 PM
--created the basic script framework for character class promotions! :)

To assist with that, I further extended some of the game's scripting support:

--added Race and Sex support to SetStat and IfStatGoTo / IfStatRun, plus Portrait support to IfStatGoTo / IfStatRun.

--added string stat support to the special dialog character -STAT:- (i.e. you can now invoke a character's Name, Class, Sprite, Direction, Race, Sex, and MoveType as part of dialog text and in script code).
Title: Re: Developer's Log
Post by: CraigStern on August 13, 2014, 02:22:00 PM
--wrote up backgrounds for a couple of new recruitable characters :)

--new ModDmg tag: ModDmgForAttack modifies the damage a character does when using a particular named attack. Takes three parameters: operator type, amount, and attack name. For example:

Code: [Select]
ModDmgForAttack,+:1:Mind Blast will increase the character's damage by 1 whenever he/she attacks with Mind Blast.

--two new attack mod tags that deal with things other than damage: ModCostForAttack and ModRngForAttack.

ModCostForAttack tells the game to modify the energy cost to use the named attack for the tagged character. Takes three parameters: operator type, amount, and attack name.

Code: [Select]
ModCostForAttack,%:75:Cryo Blast will decrease the cost to use Cryo Blast to 75% of its normal amount for the tagged character.

ModRngForAttack tells the game to modify the maximum range for the tagged character when using the named attack. Takes three parameters: operator type, amount, and attack name.

--corrected an inconsistency in the code: ModDmg tags are now universally applied before elemental resistance in attack damage calculations

--updated the computer AI to account for range and cost modifying tags (including the previously implemented RangeBonus tag)
Title: Re: Developer's Log
Post by: CraigStern on August 14, 2014, 12:31:32 PM
--updated the manual with documentation on the RangeBonus tag

--all preliminary names and stat bonuses for promoted classes are now in the game! The current state of things (subject to change later):

Quote
Hero >
Champion – A strong, durable fighter that becomes even more resilient and capable, able to inspire allies to great feats. Can use Swords, Main Gauches and Rapiers. Gains +6 Health, +6 Energy, +2 Strength. Learns Inspire.

Assassin >
Whisper – Difficult to hit, incredibly mobile assassins. Can use Daggers and Throwing Knives. Gains +2 Energy, +1 Strength, +25% Dodge, and Stealth (tag: TargetValue,0.3).

Swordsman >
Fencer – Fast, good at going toe-to-toe with powerful physical enemies. Can use Swords, Main Gauches and Rapiers. Gains +2 Health, +2 Energy, +10% Dodge, +1 Counterattack, +20% Accuracy.  Learns Feint, Disarm.

Bandit >
Marauder – Strong damage dealer with expanded access to armor and shields. Can use Axes, Halberds, small shields and Leather Armor or Chain Mail. Gains +4 Strength and +5 Health.

Spearman >
Pikeman – Specializes in drawing (and weathering) enemy attacks. Can wear heavy armor and use large shields, Spears, Halberds. Gains +7 Health, +20% Slash Resistance, +10% Pierce Resistance, and Prominence (tag: TargetValue,1.5).

Cavalier >
Mantis Knight – Tougher, with expanded options for close-range combat on the front lines. Can wear heavy armor and use large shields, Lances, Halberds. Gains +4 Health, +2 Strength, +5% Slash Resistance, +5% Pierce Resistance, and +1 Counterattack. Learns Charge.

Lizardman >
Drake – Stronger, faster, greater endurance, with access to basic armor. Can use Maces and Flails, small shields and Leather Armor. Gains +2 Health, +4 Energy, +2 Strength and +5% Dodge.

Bowman >
Bowmaster – Faster, more accurate; better at long-range harrassment, both with Bow and Arched Shot. Can use Bows and Longbows. Gains +20% Accuracy and +2 Speed.

Crossbowman >
Arbalist – Trained to modify and shoot different types of crossbow bolts. Can use Crossbows. Gains +3 Health, +2 Strength, Range Bonus of 1. Learns Poison Bolt and Piercing Shot.

Engineer >
Machinist – A more efficient builder with Golem-specific support skills and access to Leather Armor. Learns Engine Boost, Build Wood Barricade 2, Build Wood Bridge 2. Gains +1 Health, +8 Energy.

Psy Healer >
Caduceus – The caduceus is a master of shields. Learns Static Shield, Solid State Shield. Gains +2 Psy Defense and +6 Energy, +1 Mind Shield range.

Mentalist >
Puppetmaster – a powerful manipulator. Learns Kinetic Gale, Kinetic Wave, Levitate. Gains +2 Psy Power, +5 Energy, +1 Mind Control range, 50% cost for Kinetic Gust and Kinetic Pull.

Pyrokineticist >
Pyrokurios – A master of pyrokinesis.  Learns Fire Gate. Gains +1 Health, +4 Energy, +3 Psy Power, +1 Pyro Blast range and 50% Pyro Blast cost.

Cryokineticist >
Cryokurios – A master of pyrokinesis.  Learns Frost Armor and Cryo Cross. Gains +1 Health, +4 Energy, +3 Psy Power, +1 Cryo Blast range and 50% Cryo Blast cost.

Skiakineticist >
Skiakurios – A master of manipulating negative emotion. Learns Fury and Dark Vortex. Gains +1 Health, +4 Energy, +3 Psy Power, +1 Shadow Blast range and 50% Shadow Blast cost.

Photokineticist >
Photokurios – A master of photokinesis. Learns Light Bomb. Gains +1 Health, +4 Energy, +3 Psy Power, +1 Light Blast range and 50% Light Blast cost.

Shadowling >
Shadowheart – A devious fighter, able to teleport around the battlefield and prey on the mental weaknesses of its enemies. Learns Terror, Decoy. Gains +3 Health and +5 Energy. +1 Shadowport range and -1 Shadowport cost.

Spriggat >
Greater Spriggat – A mature spriggat in full command of its abilities is a deadly foe indeed. Gains +3 Health, +4 Energy, +1 Strength, +1 Psy Power and +1 Speed. -1 cost for its basic breath attack.

Spirit >
Specter – A spirit that has gained greater control over itself, and thereby possesses greater psy manipulation powers. Gains +16 Energy. Learns Transfer 2, Drain, Stimulate.

Stone Golem >
Megalith – A Stone Golem with combat experience is a terrifying opponent indeed. Learns Smash, Engine Boost. Gains +3 Health, +3 Strength, +20% Slash Resistance, +20% Pierce Resistance.

Bronze Golem >
Titan – Gains +12 Health, +2 Strength. Learns Spin Saw 2, Engine Boost.
Title: Re: Developer's Log
Post by: CraigStern on August 14, 2014, 02:06:27 PM
--new afterAttack type supported: UseOnce. This is like Unlimited, except that the particular attack you've used cannot be used again. (Other attacks can be used, however.)

--Sprint is now a UseOnce attack, meaning that you can attack after using it! You just can't keep using Sprint over and over again in the same turn, as you could if it were Unlimited.
Title: Re: Developer's Log
Post by: CraigStern on August 15, 2014, 09:58:30 AM
--powerful new mental attack created for promoted shadowlings: Terror. It reduces the target's mental resistance by 1.5 times the attacker's psy power. In addition, Terror has a chance to do any or all of the following: Stun, Slow, Weaken, and Blind, as well as strip the target of up to 2 counterattacks.

In short, the Telepath series finally has in-game attack that properly represents the shadowling ability to get inside of one's head. You can see the button icon I designed for it below. :)
Title: Re: Developer's Log
Post by: CraigStern on August 15, 2014, 01:54:27 PM
--the mysterious hooded lissit from the intro now has a walk animation :)
Title: Re: Developer's Log
Post by: CraigStern on August 16, 2014, 03:42:05 PM
--fixed a bug that was causing the game to freeze upon player character death monologue occurring during the enemy's turn.

--fixed a bug that was causing glitches when killing "Bloodbeard's Pyrokineticist" characters.

--fixed a bug where equipped items would not unequip when given to other characters.

--fixed a bug where unequipping Runner's Cleats would fail to remove the speed bonus.

--fixed the battle objectives in Guard Llama so you know that you need to keep Lorenzo alive.


I've updated the installers online!
Title: Re: Developer's Log
Post by: CraigStern on August 18, 2014, 03:10:25 PM
--Pathos now has her own walk animation! ;)

--And now so does Tarion!
Title: Re: Developer's Log
Post by: CraigStern on August 19, 2014, 08:19:57 AM
--I'm now adding support for multiple army rosters to the game, so we can have multiple different persistent armies each going through their own separate battles and scenarios within the same campaign. To this end, I've made a few adjustments to the game's code concerning army rosters:

     --new optional attribute for the NewRoster, RemoveFromRoster and AddToRoster tags within cut scenes: num.
     This is an integer telling the game which roster to add the characters to or remove them from. (By default, all changes are made to roster 0.)

     --new optional parameter for the RecruitChar and DismissChar script actions; an integer telling the game which roster
     to add the characters to or remove them from. (If this parameter is not employed, all changes will be made to roster 0 by default.)

I've had to muck around under the hood a fair bit to add this feature, so I'll need to test it out over the next few days before I'll be confident that everything is working properly.
Title: Re: Developer's Log
Post by: CraigStern on August 20, 2014, 01:05:59 PM
--still working on implementing support for multiple single player army rosters. To that end:

     --new condition: Roster Number. This changes the roster the game pulls characters from for Army 0.
     By default, Roster Number is 0, but it can be changed to any number to which you've added characters
     using <NewRoster>, <AddToRoster>, or RecruitChar.

--wrote up several new playable characters: Teresa Dayo, Lord Dakarai, and Edwin Gabbergast.
Title: Re: Developer's Log
Post by: CraigStern on August 20, 2014, 02:04:12 PM
--the game now recognizes special characters in Conditions parameters! This mostly just means that you can use -VAL:-, R[], and -STR:-.

(NOTE: There aren't any triggering characters with Conditions, so -NAME-, -FNAME-, -LNAME-, -Y- and -X- won't get you anywhere--and since characters don't spawn until Conditions have been parsed and applied, you won't get anywhere using -STAT:- either.)
Title: Re: Developer's Log
Post by: CraigStern on August 20, 2014, 10:56:36 PM
Phew! It took some work, but I now seem to have gotten the game playing nice with multiple rosters, at least at the most basic level with the <NewRoster> tag.

This will create two separate army rosters--roster 0 consisting of Emma Strider and Sabrina Strider, and roster 1 consisting of Silithis Predat and Siripent:

Code: [Select]
<NewRoster>Emma/Strider,Sabrina/Strider</NewRoster>
<NewRoster Num="1">Silithis/Predat,Siripent/</NewRoster>

Then, using this condition in a battle...

Code: [Select]
Roster Number,1
...will tell the game to populate Army 0's FromPlayerRoster spawns from Roster 1 instead of Roster 0!

...hm. That sounds really basic now that I'm typing it out, but you guys: that took me hours of wrangling with the engine to make work properly. I hope you all appreciate it! ;)
Title: Re: Developer's Log
Post by: CraigStern on August 20, 2014, 11:03:46 PM
--fixed a couple of bugs with the R[] special character. It now works in static cut scenes, and now always produces numbers within the correct range.
Title: Re: Developer's Log
Post by: CraigStern on August 20, 2014, 11:07:50 PM
Fun fact: you can now use Conditions like Roster Number,R[0-1] to have the game randomly select from one of multiple army rosters for the player to use for a battle. I know, because I just tested it. :D
Title: Re: Developer's Log
Post by: CraigStern on August 21, 2014, 06:21:55 AM
--got RecruitChar and DismissChar working properly with multiple army rosters! :)
Title: Re: Developer's Log
Post by: CraigStern on August 22, 2014, 06:04:46 AM
--fixed a bug that was causing the game to freeze whenever AI-controlled characters equip items

--fixed a bug where the common inventory would not update upon equipping or unequipping items from characters

--created a new character, Harriet Lansing the spearman!

--made a few edits to existing character stats for balance purposes

I've updated the game installers online. ;)
Title: Re: Developer's Log
Post by: CraigStern on August 22, 2014, 05:29:44 PM
--made it so Lakshmi Bana starts with the Bayonet attack, thus making her more useful right out of the gate.

--the detailed character screen now lists up to 15 items in a character's inventory! (Previously, it had capped out at a mere 4.)

--created two new lizardman characters, both of whom will be playable under Silithis's command in an upcoming subplot! :)

--fixed a bug wherein the game would fail to show character portraits for characters in Violet-colored armies.

--fixed a bug wherein you could get the actions menu to show up during deployment mode by right-clicking an enemy and then closing the detailed character screen.
Title: Re: Developer's Log
Post by: CraigStern on August 23, 2014, 09:18:31 AM
--fixed a bug that was causing the RecruitChar action to freeze the game when used in a static cut scene (most notably when meeting Anu Partymember in the Guard Llama campaign).

--changed the wording on the victory screen to make it sound less weird when used with a plural army name; it now reads "Victory Belongs to So-and-So!" instead of "So-and-So has won!"


Due to the seriousness of the first bug, I've updated the installers online again. Note that if you're updating from a version from before 0.455.467, you'll need to uninstall the game entirely and delete the Telepath Tactics folder, then install the game anew. (Your saved game should be safe.) The reasons are explained here (http://sinisterdesign.net/forum/index.php?topic=1229.msg47065#msg47065).
Title: Re: Developer's Log
Post by: CraigStern on August 25, 2014, 07:13:14 AM
--new script action: MoveCharBy. It's just like MoveChar, except that it moves the character relative to its current position instead of moving it to a set of specific coordinates.

Instead of having Y Coordinate and X Coordinate parameters, it has Move By Y and Move By X. A negative value for Move By Y signifies upward movement; positive signifies downward. A negative value for Move By X signifies leftward movement; positive signifies rightward.

For example: MoveCharBy     Emma Strider,-3,-1 will cause her to move three spaces up and one space left.

--made progress on a couple of cut scenes.

--fixed a bug where the game would not apply the Space Bonus condition properly.

--fixed a bug where the dialog editor's action parameter fields would not accept apostrophes.
Title: Re: Developer's Log
Post by: CraigStern on August 25, 2014, 01:33:47 PM
--when you're panning around the map and you mouse over the Actions Menu, it now immediately concludes map panning instead of bugging out as soon as you mouse back onto the map.

--fixed a map editor bug with objects and characters edited using the Edit Character and Edit Object functionality.

--fixed eyedropper functionality for objects and characters in the map editor.

--right-clicking a character tile when in Edit Character mode or Edit Object mode will now "eyedrop" that character or object for painting with the left mouse button. (Previously, this only worked when in Place or Delete Character / Object modes.)

--surrendering in the tutorial is no longer possible.
Title: Re: Developer's Log
Post by: CraigStern on August 25, 2014, 10:59:41 PM
--repositioned the Actions Window so it always shows up by default in the bottom-right (unless you reposition it, in which case it'll remember the new spot)

--made it so the actions window shifts accordingly toward the bottom-right when going into fullscreen mode from windowed mode so as to remain in the bottom-right corner
Title: Re: Developer's Log
Post by: CraigStern on August 26, 2014, 11:57:43 AM
--you can now use special characters in the Speaker Name portion of dialog trees (allowing you to reference -FNAME- or a -STR- for the speaker's name).

--fixed some typos in the Rescuing Meridian battle that caused certain scripted events (such as recruiting Meridian) to not work correctly.
Title: Re: Developer's Log
Post by: CraigStern on August 26, 2014, 08:31:04 PM
--fixed: AddSpeakerPortrait was not working with -FNAME-; now it does! ;)

I've updated installers for both the game and the map editor online. You'll need to completely uninstall, delete the install folder for, and then reinstall the map editor just like you did with the main game--again, because of the expired certificate thing. (Sorry about that.)
Title: Re: Developer's Log
Post by: CraigStern on August 27, 2014, 09:38:27 PM
--fixed a a particularly tricky bug that was causing dialog triggered in the first slide of a Static Cut Scene to be triggered twice (resulting in weird bugs like two copies of character portraits spawning right on top of each other).
Title: Re: Developer's Log
Post by: CraigStern on August 28, 2014, 08:35:35 AM
--three new character portraits are done, with more en route! Here are Silas Harrowbeak, Teresa Dayo and Lord Dakarai.
Title: Re: Developer's Log
Post by: CraigStern on August 30, 2014, 08:05:45 AM
--optimized the game's rain particles to eliminate slowdown during rainy scenes
Title: Re: Developer's Log
Post by: CraigStern on August 31, 2014, 09:35:42 AM
--made the loading screen more attractive, gave it an animation so you know if it's frozen

--fixed some unappealing artifacts in the Telepath Tactics logo on the title screen when in full screen mode

--altered the title screen art to improve the legibility of the main menu

--added a new font to the game that's more in keeping with the setting; I've been going through and replacing the old Arial and Arial Black text with it in most instances. You can see how it looks on the title screen in the screenshot below.
Title: Re: Developer's Log
Post by: CraigStern on August 31, 2014, 10:51:43 AM
--reduced the cost of Pyro Blast, Cryo Blast, Light Blast and Shadow Blast to 4 in order to make psy fighters more consistently useful in battle

--we now have Stunner, Bonebreaker, Cripple and Ability animations for the mysterious hooded lissit character ;)
Title: Re: Developer's Log
Post by: CraigStern on August 31, 2014, 02:08:20 PM
--new script actions: AddObjective and RemoveObjective. These add and remove objectives fro the current battle (naturally).
Title: Re: Developer's Log
Post by: CraigStern on September 02, 2014, 03:21:43 PM
--new UI improvement: attack reticles now show the relevant current stat (health / energy / other stat) being affected by a prospective attack / ability.
Title: Re: Developer's Log
Post by: CraigStern on September 03, 2014, 04:26:53 PM
--I've further refined the new info display in attack reticles; it is now easier to read / distinguish from the attack's primary effect
Title: Re: Developer's Log
Post by: CraigStern on September 03, 2014, 04:27:40 PM
--more UI prettiness. I've just redone the Settings menu; see below!

(Also, just for fun, here's another pic of the new reticles.)
Title: Re: Developer's Log
Post by: CraigStern on September 03, 2014, 05:01:24 PM
--Bandit Shove animations are finally complete! ;)
Title: Re: Developer's Log
Post by: CraigStern on September 03, 2014, 05:17:21 PM
--the current attack name now remains at the top of the screen for as long as you take targeting it; it vanishes a couple seconds after the attack is launched (or when the attack is canceled), but not before.
Title: Re: Developer's Log
Post by: CraigStern on September 07, 2014, 09:28:45 PM
--got the two new cut scenes I was working on finished!

--create a couple of new castle stairwell tiles, added them to the tileset

--am working on explorable areas within the bandit fortress ;)
Title: Re: Developer's Log
Post by: CraigStern on September 09, 2014, 06:31:49 AM
--Bandit pull animations, completed! ;)
Title: Re: Developer's Log
Post by: CraigStern on September 09, 2014, 07:22:45 AM
--new promoted unit graphics! Here are the latest drafts of the pyrokineticist, swordsman, mentalist and engineer.
Title: Re: Developer's Log
Post by: CraigStern on September 09, 2014, 09:22:56 PM
--improved game behavior during exploration mode. It is no longer possible to not have a character selected when in exploration mode, and the game no longer displays blue movement tiles. Moreover, when in exploration mode, the arrow keys now move the selected character one space in the appropriate direction in lieu of panning the battlefield.

--the game now displays the hotkey for "Talk" when mousing over the Talk button

--the first room of Bloodbeard's Fortress is now complete, missing only the triggers to take the player to other rooms. ;)
Title: Re: Developer's Log
Post by: CraigStern on September 10, 2014, 01:41:19 PM
--new special character for scripts, conditions, and dialog: -SCENE-. The -SCENE- character will automatically be replaced by the name of the current battle or cut scene, as defined by the level's mapname attribute (i.e. not its file name).

--new optional parameter for AddTextOverlay: Number of Frames to keep the text overlay onscreen before making it automatically disappear. (Most self-disappearing text overlays in the game remain onscreen for 90 frames.)

--new stats that can be modified by SetStat: Y Coord and X Coord. These instantly place the affected character onto the new, modified coordinates. (Y Coord and X Coord can now also be used as parameters in IfStatGoTo, IfStatRun, and SetValByStat.) I am using this new functionality to place the character at the correct entrance when exploring a multi-screen area with different entrances, though it could also be used for teleporters or other things.

--updated the Actions and Replies parameter text fields in the dialog editor so they accept square brackets and hyphens
Title: Re: Developer's Log
Post by: CraigStern on September 10, 2014, 05:29:43 PM
--created new room in the fortress with a bandit that you can gamble your money with! (And playing the exact same dice game as you played with Gamblin' Jack in Telepath RPG Chapter 1, no less.)

--you can now move seamlessly between the entrance area and the second floor.

--created a variant on the table destructible object graphic for games of dice.

--created a new sound effect for rolling dice.


I've updated the map editor installers online.
Title: Re: Developer's Log
Post by: CraigStern on September 11, 2014, 09:14:08 AM
--new draft promoted unit sprites! ;)
Title: Re: Developer's Log
Post by: CraigStern on September 12, 2014, 01:46:52 PM
--created the beginnings of the basement / dungeon area in the bandit fortress

--WASD now behaves like the arrow keys in exploration mode; they move you around instead of panning the map

--you can now hold down arrow keys / WASD to keep moving when in exploration mode

--the "Player's Turn" notification no longer pops up when you load a scene in exploration mode

--when selecting Talk, Door, or Use, if there is only one thing adjacent to the character that can be interacted with in this way, the game now automatically interacts with it instead of making you click it
Title: Re: Developer's Log
Post by: CraigStern on September 13, 2014, 09:08:32 AM
--fixed a map editor bug that was causing it to spawn all destructible objects with null triggers

--added a mezzanine to the first room of the fortress, accessible from the second floor

--gave feedback on another draft of the final boss music(!)
Title: Re: Developer's Log
Post by: CraigStern on September 14, 2014, 09:27:34 PM
--created Fera's room
Title: Re: Developer's Log
Post by: CraigStern on September 15, 2014, 07:42:53 AM
--new optional second parameter for AddSpeakerPortrait: character name. This lets you override the name of the speaker with a name of your choosing; this allows you to specify an individual generic character using an ID[] tag.
Title: Re: Developer's Log
Post by: CraigStern on September 15, 2014, 10:45:59 AM
--new castle tile: wall with candle alcove

--new room created: barracks

--working on Fera's dialog tree now
Title: Re: Developer's Log
Post by: CraigStern on September 15, 2014, 02:20:38 PM
--new dialog triggers: OnLockedDoor and OnUsing. The first is just like OnOpeningDoor, except that it's triggered by trying to open a locked door without having the necessary key; the second is triggered by using an object with a Use or UseOnce trigger on it. Both of these have two parameters, the Y Coordinate and X Coordinate of the door/object at issue.

--new reply type: LoseBattle. Causes the battle to end as soon as the player clicks, with army 1 victorious.

--new useableWith type for ItemClasses.xml: quest. Quest items are not useable in battle, and can only be dropped when within the common inventory. You can't permnantly get rid of them except through scripts; they're things you carry around with you for plot reasons, essentially.
Title: Re: Developer's Log
Post by: CraigStern on September 15, 2014, 10:30:12 PM
--Fera's dialog tree in the fortress is now complete! ;)

Due to some frustrations around the game's inability to handle scenes where you can talk to multiple different characters who have identical names, I've added ID[] support to more aspects of the dialog system:

  --you can now use ID[] special characters for OnTalk trigger parameters. This was much trickier and more time-consuming to program than I was hoping, unfortunately--but on the plus side, this now means that player-triggered conversations with generic characters are now much easier to accomplish!

  --you can now use an ID[] special character in lieu of the speaker name in dialog. This will not only use the correct name for the character, it will also cause the game to automatically highlight and focus the camera on the correct character even when the scene has multiple characters of the same name! (This eschews the need to rely on AssignSpeakerAtCoords, which obviously doesn't work very well if your characters move around during the scene.)
Title: Re: Developer's Log
Post by: CraigStern on September 16, 2014, 10:15:01 PM
--further progress made on the bandit fortress area; I'm fitting in some actual role-playing stuff there, which is nice. ;)

--new hotkey: 'O' is short for "open/close door"

--after opening, unlocking, or closing a door, or after using an object on the battlefield, the game now automatically reselects the current character for continued movement instead of making you click them again. (Just addressing a common annoyance there.)
Title: Re: Developer's Log
Post by: CraigStern on September 17, 2014, 06:32:39 AM
--new dialog trigger: OnLoaded. Runs the dialog just as soon as the level loads, right before the loading screen is removed. This lets you make changes to the level via scripts before the player is able to see them happening onscreen.
Title: Re: Developer's Log
Post by: CraigStern on September 18, 2014, 01:48:03 PM
--new script action: TransferChar. This removes a character from any existing army rosters where it may appear, then if the character was found and removed successfully, adds that character to a specific army roster. In short, this lets you switch characters between armies while keeping characters who have suffered permadeath dead.

There are two parameters: the name of the character to transfer, with a colon delimiting the first and last name; and the roster number for the army to transfer that character to if the character is found alive.

For example: 

Code: [Select]
TransferChar     Jennifer:Faust,1
will cause the character named Jennifer Faust to be removed from any existing army rosters in which she appears, then—if the game found her in an army roster and removed her—add her to army roster 1.
Title: Re: Developer's Log
Post by: CraigStern on September 18, 2014, 02:44:58 PM
--created new cut scene between Emma and Sabrina before Emma leaves to infiltrate the bandit stronghold

--added recruitable characters to the game: Tremolo Phalanges, Harriet Glaive, Lord Dakarai, Phoebe Wittler, Teresa Dayo, and Harynx.

--Lord Dakarai's recruitment dialog is now complete.

--the dialog box now dynamically rearranges itself to use the extra room at the top if there's no speaker in a dialog branch.

Title: Re: Developer's Log
Post by: CraigStern on September 18, 2014, 10:00:46 PM
--modified the layout of the area outside the bandit fortress in anticipation of a battle to occur there

--did a bit of balancing and tweaking to the prison area of the bandit fortress

--made is so that SpawnChar actions no longer create smoke puffs over spawned characters and objects when they are run via dialog triggered with OnLoaded

--all of a character's attacks now show in the detailed character screen in exploration mode, even if they can't actually use them while in exploration mode

--fixed a bug with RemoveItem and RemoveItemByName that would sometimes cause the game to think characters were equipped with the wrong items

--fixed a typo in the manual with SetStat which says to use "Dmg" instead of the correct "Damage" when quietly adjusting a character's current health
Title: Re: Developer's Log
Post by: CraigStern on September 19, 2014, 01:11:02 PM
--created recruitment conversations for Harynx and Tremolo Phalanges.

--new weapon type: the shiv. Shivs are basically the dagger version of Practice Swords and Practice Maces, in that they're a step below the more durable and effective iron version of that weapon type.
Title: Re: Developer's Log
Post by: CraigStern on September 19, 2014, 11:48:29 PM
--created recruitment conversation for Harriet Glaive.

--created a bunch of short NPC conversations in the fortress barracks.

--added Roster Number condition documentation to the manual.

--fixed a few bugs (the game would freeze upon loading a battle which called for placing characters from a roster that had not yet been created; the game was carrying over extra army rosters that weren't expressly overwritten in Introduction.xml when starting a new campaign after playing an old one; and the game wasn't clearing the necessary UI elements from the screen after giving an item to another character)

--lots of testing and polishing of things in the bandit fortress.
Title: Re: Developer's Log
Post by: CraigStern on September 20, 2014, 12:31:30 AM
--fixed a bug in which the OnLoaded trigger would cause the battle to end immediately if the player had a Protect Char condition and was in deployment mode when EndConvImmediately was called.
Title: Re: Developer's Log
Post by: CraigStern on September 22, 2014, 02:26:02 PM
--created the first of the bandit fortress escape battles

--roughed out the beginnings of the second bandit fortress escape battle

--created new cut scenes further developing the relationship between Emma and Sabrina, and between Sabrina and Scarlet Etoile; plus introducing the characters Teresa Dayo and Phoebe Wittler
Title: Re: Developer's Log
Post by: CraigStern on September 23, 2014, 12:35:34 PM
--created a complete rough draft of the second bandit fortress escape battle

--fixed a bug where it displayed the wrong portrait during Silas Harrowbeak's death monologue
Title: Re: Developer's Log
Post by: CraigStern on September 23, 2014, 01:55:20 PM
--new script action: RemoveSpawn. This removes a character's spawn info before it ever has a chance to enter the battlefield. For occasions where particular characters are specified by name among the <Unit> tags of a map, but they won't be there on turn 0 and you don't want them to spawn on the turn they're scheduled to show up.

One parameter: character name, with first and last names delimited by a colon. There are three additional, optional parameters: Y Coord, X Coord, and Spawn Turn. These can be used to drill down to a particular character if the character shares a name with others among the <Unit> tags.

For example:

Code: [Select]
RemoveSpawn     Lord:Dakarai
will look for Lord Dakarai among the <Unit> tags on the current  map. If he's found, and hasn't spawned yet, he'll be removed from the characters due to spawn.
Title: Re: Developer's Log
Post by: CraigStern on September 25, 2014, 05:51:16 AM
--balanced the second bandit fortress escape battle

--created a rain sound effect loop, thunder one-shot sound effect

--added a rain sound loop to the Donut Tower multiplayer map and the second bandit fortress escape battle
Title: Re: Developer's Log
Post by: CraigStern on September 25, 2014, 09:13:58 PM
--in an effort to save some money, I modified the default shadowling cast animation myself to conform to the sprite for Pathos. 1.5 hours of work, and saved something like $150. Not bad. Something tells me I'm going to be doing more of this as time goes on.

--trimmed the width of the frames in character rest poses to optimize a bit and save on memory

--some minor bug fixes
Title: Re: Developer's Log
Post by: CraigStern on September 26, 2014, 11:05:28 AM
--I modified the default shadowling cast animation to conform to the sprite for Tarion.
Title: Re: Developer's Log
Post by: CraigStern on September 26, 2014, 02:24:41 PM
More sprite work:

--created modified versions of the crossbowman sprites and animations for Lakshmi Bana to reflect her darker complexion.
--created modified versions of the engineer sprites and animations for Teresa Dayo to reflect her darker complexion and afro hairdo.
Title: Re: Developer's Log
Post by: CraigStern on September 27, 2014, 07:09:56 AM
--created modified versions of the spearman sprites and animations for Harriet Glaive to reflect her darker complexion.

--updated item classes in The Vengeance of Emma Strider campaign to account for promotion classes
Title: Re: Developer's Log
Post by: CraigStern on September 29, 2014, 07:51:28 AM
--new character portraits completed: Harriet Glaive, Des Serret, Hee'la, and Malcolm Forchan.
Title: Re: Developer's Log
Post by: CraigStern on September 29, 2014, 08:56:34 PM
--created new, more powerful versions of existing equipment

--created new graphics for the Duoterre Axe, Duoterre Lance and Duoterre Spear
Title: Re: Developer's Log
Post by: CraigStern on September 30, 2014, 10:48:12 PM
--new attacks added to the game for promoted Cavaliers (i.e. Mantis Knights); Halberd and Charge. I made a video showing Charge in action (http://youtu.be/qe0_2Y3cIc4), and created some unique animations for the attack as well (attached below).

--because Charge involves both moving the attacker and damaging / knocking back a second target, I couldn't just rely on the Move element to make the attacker move here; I had to code some new functionality into the combat engine. Luckily, this proved easier to accomplish than I had feared it would.

To create an attack where the attack moves toward the target, you may now give the attack a moveType of ToTarget:X, where X is the number of frames by which to delay moving toward the target. Charge, for example, has moveType="ToTarget:18" because the Charge animation has 6 animation frames of wind-up (and thus, it takes 6 x 3 = 18 in-game frames before the character ought to start moving toward the enemy). Note that you won't see the delay represented in the video, as I created the video before coding the delay feature.
Title: Re: Developer's Log
Post by: CraigStern on October 01, 2014, 08:46:55 AM
The monthly update (http://sinisterdesign.net/telepath-tactics-september-2014-update/) has been posted! ;)


--new script action, ItemDrop. This drops a single item sack onto a randomly chosen space on the battlefield. This action is primarily for use with OnLoaded triggers for purposes of helping to randomize the battlefield (although it can obviously be used partway through single player battles, if you don't mind the sudden, nonsensical appearance of item sacks from out of nowhere).

Has one or more parameters: the Name(s) of the Item(s) contained within the item sack.

Just as with item drops which occur in multiplayer, the game will be more likely to choose spaces that are closer to being midway between the armies' spawn locations, and will not use spaces within a certain minimum distance of any character's spawn point. If no suitable spaces exist, the item drop will not occur.
Title: Re: Developer's Log
Post by: CraigStern on October 02, 2014, 12:42:45 PM
--new optional fifth parameter for the OnGrab dialog trigger: Item Name. This makes it so that the dialog is triggered only if the item sack contained the item named.

Thus:

Code: [Select]
OnGrab/-ANY-,0,-1,-1
will trigger the associated dialog as soon as any unit from army 0 grabs an item sack located anywhere on the battlefield, while

Code: [Select]
OnGrab/-ANY-,0,-1,-1,Sword of Light
will trigger the associated dialog only when a unit from army 0 grabs an item sack containing the Sword of Light.

--updated the manual with documentation on the OnGrab dialog trigger.
Title: Re: Developer's Log
Post by: CraigStern on October 02, 2014, 09:56:03 PM
--the game now has a procedurally generated battle in the woods to gather supplies and ward off starvation when your group starts running low on food. You have to gather a certain number of apples to win the battle. Monthly battles progress: 1 out of 10 complete!

--new destructible object: the apple tree. Chop it down, and it drops apples! ;)

--new special character meant to be used in concert with the OnGrab trigger: -GRABBEDNUM-. This is a stand-in for the number of items that you grabbed which matched the item name parameter in the OnGrab trigger. Thus, if you want to collect a certain number of a certain type of item, you can use -GRABBEDNUM- to keep track of the actual number of that item you've collected. (Needless to say, I use this during the apple-gathering mission; it's particularly important there since certain item sacks drop with multiple apples in them.)

--fixed a bug in the common inventory that displayed one character portrait too many in the first row of character at the bottom of the screen.

--the random level generator now accepts a CorridorWidth setting of 0, in case you don't want it to generate connecting corridors on your level. (Note: if you do this, you need to set the RoomsDensity high enough to ensure that all rooms connect, or else you're likely to end up with unreachable rooms!)
Title: Re: Developer's Log
Post by: CraigStern on October 03, 2014, 08:31:45 AM
--fixed a few gaps in the Grass tileset; there are now both grass and dirt transition versions of 1-square chasm and water tiles.

--polished the cut scene where you meet Teresa and Phoebe a bit
Title: Re: Developer's Log
Post by: CraigStern on October 03, 2014, 12:22:07 PM
--drafted a rough version of a battle against a pyrokineticist, cryokineticist, skiakineticist, photokineticist, and a psy healer with her stone golem servant, guarding a pass that Emma and the gang need to pass through. Not gonna lie--I'm looking forward to playtesting this one. ;)
Title: Re: Developer's Log
Post by: CraigStern on October 03, 2014, 04:20:37 PM
--Create attacks now earn the creator 18 experience per usage. (This will make leveling up Engineers way the heck easier.)
Title: Re: Developer's Log
Post by: CraigStern on October 04, 2014, 11:39:28 AM
--attacks that move other characters around now give the attacker 10 experience points even if they don't deal damage

--created a new merchant scene where he sells a steamthopter as his special deal of the day ;)
Title: Re: Developer's Log
Post by: CraigStern on October 04, 2014, 02:24:20 PM
--you now get experience for healing any allied unit, not just characters on the same team.

--experience points now get a boost based on the cost of the attack used to garner the experience. An attack costing 4 energy will get a +4 to experience points gained; attack costing 12 energy will get a +12 to experience points gained; an attack costing 0 will get +0; and so on. (Note: these bonuses apply after scaling, not before.)

This should help characters with very energy-intensive attacks (e.g. psy fighters) to keep up in the leveling with non psy user characters (e.g. swordsmen).
Title: Re: Developer's Log
Post by: CraigStern on October 05, 2014, 09:44:44 PM
Bug fixes:

--you can now launch melee attacks across large elevation differences if the attacker is standing on a bridge tile. (This prevents weird situations where you have bridges spanning chasms and characters at the bottom edge of the bridge can't attack downward.)

--the game no longer plays "dunking" sound effects or spawns splash particles when a character is pushed onto a water or lava tile that is covered by a bridge.

--fixed a bug where swimming characters could swim onto wall or cliff tiles rising out of the water / lava.

--fixed a bug where character sprites did not display properly while swimming.

--fixed a bug where the pop-up info over the Swim button did not display properly, and would causing flickering of the preview reticles onscreen.
Title: Re: Developer's Log
Post by: CraigStern on October 05, 2014, 10:22:33 PM
--created a rough draft of an new battle: the Hills of Coria ;)

--fixed the bug in Fera's room reported here (http://sinisterdesign.net/forum/index.php?topic=1315.msg47155#msg47155)

I've updated the game's installers online! :D
Title: Re: Developer's Log
Post by: CraigStern on October 06, 2014, 12:25:52 PM
--further refined The Hills of Coria. I think it's good to go for now, pending further changes after playtesting later in the month. That's 3 out of 10 battles created; on to number 4!
Title: Re: Developer's Log
Post by: CraigStern on October 06, 2014, 10:11:26 PM
--fixed a bug

--tweaked The Hills of Coria a bit

--tweaked the Telepath Tactics AI to encourage it to shove your characters into water more often

--added some expository character dialog to the last couple of battles

--fixed a bug where an item sack dropping on the same space as a character would cause the game to temporarily think that that character could be walked through by other characters

--animated the promoted variation of the cryokineticist cast animation
Title: Re: Developer's Log
Post by: CraigStern on October 07, 2014, 07:56:29 AM
--added treasure chests, an enemy stone golem to the Hills of Coria battle

--new advanced weapon type created: the Steam Crossbow
Title: Re: Developer's Log
Post by: CraigStern on October 07, 2014, 12:24:34 PM
--I've coded new functionality into Telepath Tactics! When the game runs, it automatically compares its version number to the latest version number online, then opens your browser with a download of the latest version's installer if the version numbers don't match.

This should make it much, much easier to keep the game updated; no having to constantly check for my announcements about installer updates to know when a new one is online, and no having to go digging around for the download URL when you find out there's a new version. ;)
Title: Re: Developer's Log
Post by: CraigStern on October 08, 2014, 01:53:27 PM
--animated the promoted variation of the Bowman Bow animation. ;)
Title: Re: Developer's Log
Post by: CraigStern on October 09, 2014, 01:49:02 PM
--animated the promoted variation of the Cavalry Lance animation!

--began working on battle 4 for the month, Hills of Coria 2. I do believe this will mark the first battle in the game where you have to face enemy cavalry.
Title: Re: Developer's Log
Post by: CraigStern on October 09, 2014, 09:47:59 PM
--fixed an annoying map editor bug in which it would not correctly display a character's facing direction in the edit character window.

--created a new destructible object: the snare trap! I couple it with a pressure trigger that causes whatever character wanders into it to become stunned. The code looks like this:

Code: [Select]
<Unit trigger="Pressure,Snare Trap">0,99,Snare,11,26,None,None</Unit>

<Script>Snare Trap
<Action>AddStatusAt/-Y-,-X-,Stunned,AutoAdd</Action>
<Action>RemoveTriggerObj/-Y-,-X-</Action>
<Action>SpawnFloatingText/Snare Trap!,-FNAME-,0xFFFF00</Action>
</Script>

--fixed a bug that allowed characters to keep moving after rendered Stunned or Frozen by a script if the script was triggered mid-movement by an object trigger.

The map editor and game installers are updated online. :)
Title: Re: Developer's Log
Post by: CraigStern on October 12, 2014, 05:34:49 PM
--scrapped the first draft of Hills of Coria 2 entirely, replaced it with a way better map in which you fight on a long, crumbling bridge over the water. Not gonna lie--I'm pretty excited about this one.

--as the screenshot below shows, I made some variant stone bridge objects so that you can make bridges with chunks missing that still look good. ;)

--cropped all of the promoted unit rest sprites to the new, correct size
Title: Re: Developer's Log
Post by: CraigStern on October 12, 2014, 06:09:09 PM
--the ranged damage falloff penalty now caps out at 75%; it is no longer possible to have attacks with a range so long that they heal the target.

--increased the number of characters allowed in the actions bar within the dialog editor.
Title: Re: Developer's Log
Post by: CraigStern on October 13, 2014, 05:15:28 AM
--further optimized the game's rain particles to reduce slowdown during rainy battles.

--added new death monologues so all of the game's characters now have one (though many have only placeholder dialog for the moment).

--character death monologues no longer appear in casual mode.

--the game now displays an attack's ModDmgForAttack value as (+X) next to its Base Damage when you mouse over it in the Actions Menu.
Title: Re: Developer's Log
Post by: CraigStern on October 13, 2014, 05:55:38 AM
Game installer updated! I'd suggest updating, as it will auto-detect future updates from now on. ;)
Title: Re: Developer's Log
Post by: CraigStern on October 13, 2014, 02:13:44 PM
--fixed a bug where the game would freeze when the thief speaks in the battle with Gunther.

--added a thief to the first Hills of Coria battle.

--finished the remaining death monologues for current playable characters.
Title: Re: Developer's Log
Post by: CraigStern on October 13, 2014, 11:19:32 PM
--we've completed the first cut scene background!

--fixed some really annoying issues with getting the cut scene background to display in the right spot, and to remain there when switching between fullscreen and windowed modes
Title: Re: Developer's Log
Post by: CraigStern on October 14, 2014, 02:08:03 PM
--added the outdoor cut scene background to all cut scenes taking place out-of-doors

--created new scene between Emma and Sabrina occurring immediately after the final escape from the bandit fortress

--new script action: LightPortrait. This lets you apply a global lighting filter to a character portrait in dialog. Two parameters: Portrait Name and Global Lighting Preset. If you leave the second parameter blank (or use "Custom" for it), you can use optional third, fourth, and fifth parameters: Red, Green, and Blue values for custom lighting. This all works just the same as the Global Lighting condition.
Title: Re: Developer's Log
Post by: CraigStern on October 14, 2014, 02:44:58 PM
--new script action: LightBackground. This lets you apply a global lighting filter to the background in a static cut scene. One parameter: Global Lighting Preset. If you leave this parameter blank (or use "Custom" for it), you can use optional second, third, and fourth parameters: Red, Green, and Blue values for custom lighting. This all works just the same as the Global Lighting condition.

LightBackground does nothing if used outside the context of a static cut scene with a -PIC:- present.

--updated manual, map editor list of script actions
Title: Re: Developer's Log
Post by: CraigStern on October 14, 2014, 07:04:41 PM
--fixed the Victory screen not using the correct font

--adjusted the time you have until Gulch begins attacking with the whole army in the Rescuing Meridian battle
Title: Re: Developer's Log
Post by: CraigStern on October 14, 2014, 08:32:26 PM
--fixed bug where giving another character an item in exploration mode would glitch out the game.

--fixed a bug whereby the Defending the Camp Battle was rendered unwinnable.

--increased the maximum range of Split Shot and Split Shot 2 to 4 for the main campaign.

--the game now automatically closes itself when you decide to update it.

--added two short optional conversations in the final battle escaping the bandit fortress: one between Teresa Dayo and Lord Dakarai, and one between Phoebe Wittler and Lord Dakarai.


Game installers updated online!
Title: Re: Developer's Log
Post by: CraigStern on October 15, 2014, 10:40:32 AM
--coded a new class that generates a log of what the game engine is doing as you play. If there's an error, it puts the last 1000 lines of the log into a txt file, then saves it at Documents >  My Games > Telepath Tactics > Logs with the version number, the date, and the time.

This is going to make it much, much easier for me to diagnose and fix problems when players encounter bugs while playing!

Annnnnnd after a few hours of reworking the thing and fixing issues with it, it's working! Woohoo!
Title: Re: Developer's Log
Post by: CraigStern on October 15, 2014, 02:46:26 PM
--Create skills now gain the character 12 experience instead of 18.

--updated the manual with a more thorough explanation of experience and leveling. (The documentation was a bit out of date there, and did not include an explanation of either experience scaling or the more recent additions to the experience system.)

--the map editor now has a little box that sits in the corner and tells you what coordinates you're moused over on the map at all times
Title: Re: Developer's Log
Post by: CraigStern on October 15, 2014, 09:13:32 PM
--fixed a few issues with the cut scene lighting code, and now we are go with that as well! ;)

--fixed a bug where characters using Create skills would not level up from them until the end of the turn


The game installers have been updated online! I highly suggest updating, as the new logging feature is going to make it way, way easier for me to figure out the nature of bugs you may encounter from this point on.
Title: Re: Developer's Log
Post by: CraigStern on October 16, 2014, 02:20:38 PM
--new cut scene background: Castle interior! ;)

--fixed another couple of bugs re: the cut scene lighting code
Title: Re: Developer's Log
Post by: CraigStern on October 17, 2014, 12:06:20 PM
--created some new object graphics: the bar top. (I did this because I was tired of using tables to stand in for the bar in the game's taverns; it just looks janky.)

--also: some tables with beer on them. (For authenticity's sake.)
Title: Re: Developer's Log
Post by: CraigStern on October 17, 2014, 02:41:04 PM
Some balance changes:

--upon reaching level 5, Farasat Hashmal, Rebecca Flare, and Phoebe Wittler now each get +1 max range to their elemental blast attacks.

--Gavrielle Hashmal's starting strength reduced by 1.
Title: Re: Developer's Log
Post by: CraigStern on October 17, 2014, 05:37:39 PM
--updated The Bramblebriar in Adelbrae with the new bar graphics. Now, to create a new tavern for the port city of Coria! :)
Title: Re: Developer's Log
Post by: CraigStern on October 18, 2014, 02:20:26 PM
--new script action: FadePortrait. Causes a portrait to fade out over a certain number of frames. Two parameters: the portrait name, and the number of frames over which the portrait should fade out. There is an optional third parameter as well: delay. This tells the game to delay fading the portrait out for a certain number of frames--as where, for instance, the portrait is moving and you want to show it moving before it starts fading out.

--fixed a bug where the map editor wouldn't let you use hyphens in map names

--fixed a small bug in the cut scene class
Title: Re: Developer's Log
Post by: CraigStern on October 19, 2014, 02:05:51 PM
--fixed a bug where enemies would attack player-created bridges even when they were occupied by item sacks (which are indestructible), leading to enemies dog-piling onto bridges and all dealing 0-damage
Title: Re: Developer's Log
Post by: CraigStern on October 20, 2014, 02:01:16 PM
--new item: Wine! This reduces your Accuracy and Dodge by 20, but also increases your Slash, Pierce and Crush resistance by 20. Effects last for the whole battle. ;)

--drafted a new battle: the Coria Tavern fight. This is only battle 5 for the month, which means I'm behind, but it took me a while to think of a battlefield layout that I was actually happy with for this one. Hopefully, I'll be able to crank out the next two battles fairly quickly over the next two days to get back on track.

--created some new side-facing stairwell tiles for the Town tileset (visible in the screenshot below)
Title: Re: Developer's Log
Post by: CraigStern on October 20, 2014, 09:42:59 PM
--some playtesting plus a few new tiles later, and we have an updated draft of the tavern brawl :)
Title: Re: Developer's Log
Post by: CraigStern on October 20, 2014, 10:38:58 PM
--fixed a bug where OnStat-triggered conversations could end up overlapping OnTurn/0-triggered conversations and freezing the game

--fixed a bug wherein psy fighters would get the range bonus message over and over so long as they remained level 5

--fixed a bug wherein ranged damage falloff modifiers were being applied incorrectly (and inconsistently)

--new are optional fourth and fifth parameters for the OnCharDeath trigger: killer name (if you want the conversation to only trigger if a certain character killed the target); and non-killer names delimited by colons (the names of characters who will ensure this dialog won't trigger if they are the ones to kill the target).
Title: Re: Developer's Log
Post by: CraigStern on October 21, 2014, 02:13:40 PM
--new cut scene showing what happens immediately after the battle at Adelbrae, prior to the group leaving town and encountering the caravan.

--fixed map editor bug where deleted objects would sometimes reappear when the tile was painted onto with a second character or object.

--fixed map editor bug where the drop-down list for alternative classes while editing objects would show their in-game class name rather than their full class name.

--fixed the map editor bug where it sometimes shows the wrong tile coordinates when mousing over a tile.

--fixed the (super annoying) map editor bug where sometimes panning the map or dragging the mouse cursor around wouldn't work properly.


I've updated the map editor installer online! :)
Title: Re: Developer's Log
Post by: CraigStern on October 21, 2014, 07:36:11 PM
--fixed a really stupid bug where the game would immediately remove text overlays created with the AddTextOverlay dialog action if they included any commas. In related news, the second parameter in the AddTextOverlay dialog action is now delimited with a double-colon instead of a comma.

--fixed a game-crashing bug in the Five Guardians map :)
Title: Re: Developer's Log
Post by: CraigStern on October 21, 2014, 09:23:28 PM
--added a section to the Telepath Tactics manual on reporting bugs with instructions on retrieving the error log


Also, I've updated the game's installers online. ;)
Title: Re: Developer's Log
Post by: CraigStern on October 21, 2014, 10:27:15 PM
--created some new town tiles to fill in gaps in the tileset

--created new pressure-based trap type: the spike trap!

--updated the Coria Tavern battle. I now feel pretty good about it; I think I can move on to battle 6 for the month. (I am obviously really behind, but I'll see if i can make five more battles happen in the next little-more-than-a-week.)
Title: Re: Developer's Log
Post by: CraigStern on October 22, 2014, 05:51:53 AM
--fixed a bug wherein the game had stopped displaying text overlays for the appropriate amount of time whenever AI characters used items
Title: Re: Developer's Log
Post by: CraigStern on October 22, 2014, 08:27:22 PM
--the Coria Bridge battle is now completable! There's also a little scripted event where an enemy engineer lays explosive charges on the bridge, which her allies then detonate to take a chunk out of the battlefield. Or at least, there's supposed to be--it's not working quite right just yet. I'll try to get it working tomorrow night.

--new script action: IfPathClearRun. This checks to see if a particular character has a clear movement path to a particular space; if so, the game runs a script. This action has four parameters: Character Name, Y coordinate, X coordinate, and Script Name. If the named character has a path to the battlefield coordinates you specified, the named script is run.

--fixed a bug where the game would freeze if you tried to move a character to a space using the MoveChar action and the character could not actually move there

--fixed a bug where if you accidentally clicked on weather particles while trying to click-and-drag the battlefield, the battlefield would not be dragged
Title: Re: Developer's Log
Post by: CraigStern on October 23, 2014, 09:45:15 PM
--finished the Coria Bridge Battle. This one was a little tougher to balance than I first thought, scripting that part where the engineer lays the explosive charges was way harder than I thought it would be. Well, no matter--it's done!

--wrote a cut scene introduction to the apple-picking forest battle.

--the game now handles the character sprite loading process more efficiently; hopefully this should reduce memory leakage and lead to better performance over long play sessions.

--the game no longer makes water splash particles when objects or characters spawn on a bridge atop water or lava.
Title: Re: Developer's Log
Post by: CraigStern on October 24, 2014, 03:02:06 PM
--balanced the apple-gathering battle to make it a bit easier (gave the player 8 characters to work with instead of 7; each tree gives 4 apples instead of 3, and you have to collect 11 apples instead of 9)

--balanced the "five guardians" battle to make it slightly easier (removed the bandages from all the enemies but Vitalia Spring)

--new cut scene following the apple battle and providing context for the second visit with Goniff Bastid

--new dialog in the second scene with Goniff Bastid providing context for the "five guardians" fight

--blocked out the geometry and some basic features of the port city of Coria. There is going to be a really epic battle here, folks. :)
Title: Re: Developer's Log
Post by: CraigStern on October 25, 2014, 10:09:46 AM
--made more progress on Coria :)

--fixed a bug where campaign roster changes made in cut scenes would not stick if you quit and reloaded the game before beating the next battle
Title: Re: Developer's Log
Post by: CraigStern on October 26, 2014, 09:32:28 PM
--created some concave water-grass and water-dirt transition tiles; I'd been badly wanting these, but they weren't in the default Grass tileset. (The dirt ones are shown below.)

--created a 3-minute gameplay video (http://youtu.be/SPBiBwmjeJ0) showing off the Hills of Coria battle :)
Title: Re: Developer's Log
Post by: CraigStern on October 27, 2014, 02:00:59 PM
--drafted the battle with Ebon Raban in the streets of Coria! (That's 6 battles drafted; I'll aim to draft two more in the next two days. 8 new battles with attendant character dialog and cut scenes in a month is pretty respectable, right? I'd say that's at least comparable to 10 battles with no new cut scenes or dialog.)

--new dialog with Meridian when meeting Goniff Bastid for the second time; she receives Art Materials that improve her perception, psy defense, and psy power by 1, and her accuracy by 10%. :)

--you can now use -ANY- for the second parameter in an OnCharDeath or OnCharAttacked trigger. In combination with a specific character named in the fourth parameter, this'll let you trigger dialog based solely on the attacker rather than on the character attacked. (I'm taking advantage of this to have Ebon Raban issue a little quip when he first attacks someone.)

--you can now use ID[] tags with any of the character name parameters in OnCharDeath or OnCharAttacked triggers.
Title: Re: Developer's Log
Post by: CraigStern on October 27, 2014, 05:11:41 PM
--new item: wing armor. Makes spriggats less vulnerable to piercing weapons--and thus, more viable as front-line fighters. :)
Title: Re: Developer's Log
Post by: CraigStern on October 27, 2014, 07:54:49 PM
--game now automatically detects characters who must be protected and auto-deploys them at the start of deployment mode, even if the character is really far back in your roster
Title: Re: Developer's Log
Post by: CraigStern on October 28, 2014, 02:48:43 PM
--created a draft of a new battle: the fight against Umber Gnawbone in the basement of the Coria Dogs headquarters!

--created two new recruitable characters: Naila Hashmal and Oliver Spenks. ;)
Title: Re: Developer's Log
Post by: CraigStern on October 29, 2014, 12:10:30 PM
--animated the cast animation for the male and female Photokurios (promoted Photokineticist)
Title: Re: Developer's Log
Post by: CraigStern on October 30, 2014, 06:04:40 AM
--created an initial draft of a stealth battle with the lissit where they must infiltrate a camp and assassinate someone under cover of night

--created new unique weapon: Fangiss Ka, Silithis's mace!

--the Promoted tag is now taken into account for purposes of character level requirements for equipping items
Title: Re: Developer's Log
Post by: CraigStern on October 30, 2014, 10:40:19 AM
--added some character dialog to the new Gulch battle

--new character tag: Trigger. This lets you associate a trigger with a destructible object right in ObjClasses.xml. I'll be using this for traps, since they'll always be triggering the same scripts from PersistentDialog.xml no matter what scene they appear in.
Title: Re: Developer's Log
Post by: CraigStern on October 30, 2014, 09:03:52 PM
--new attack: Place Snare Trap. Lets you place a snare trap on the battlefield. Here's a video (https://www.youtube.com/watch?v=ksDJlSWD0PI)!

--fixed a bug where computer-controlled enemies would simply continue their turn after wandering right onto a trap that froze or stunned them

--fixed a bug where you could get yourself killed in the training battle with Silithis by attacking Sabrina

--fixed a bug where the game would overwrite Trigger tags with null triggers when spawning characters via Create attacks

--fixed an issue where some of the game's items still used "Lizardman" as race and class requirements even though I'd long since renamed the race and class to "Lissit"

--fixed a bug in which equipping a new item to an occupied slot would result in the game popping up text displaying both the stat changes from unequipping the old item and the stat changes from equipping the new item simultaneously


Updated the game's installers online! ;)
Title: Re: Developer's Log
Post by: CraigStern on October 31, 2014, 08:35:45 AM
--new cut scene background: tent interior! :D
Title: Re: Developer's Log
Post by: CraigStern on October 31, 2014, 04:54:49 PM
--new script action: WhoCanUse. Takes one parameter: the name of an item. This then checks every character you've recruited to see who meets all the requirements to use the item, then compiles their names into a string and saves it as the custom string variable _WhoCanUse.

This, for instance, will save the names of every character you have who can use an Iron Sword under the string variable _WhoCanUse:

Code: [Select]
<Action>WhoCanUse/Iron Sword</Action>
Because the string is saved to a custom string variaqble, you can then display it and use it as you would any other custom string variable. This, for instance, will display the names in dialog:

Code: [Select]
OnTurn/0/Goniff Bastid/Who can use an Iron Sword?  -STR:_WhoCanUse-
--I've updated the merchant encounters in the game with the ability to ask Goniff Bastid who can use the item you're currently looking at buying
Title: Re: Developer's Log
Post by: CraigStern on November 03, 2014, 11:11:42 AM
--posted a new monthly update (http://sinisterdesign.net/telepath-tactics-october-2014-update/)!

--increased the power of Blinded: it now reduces attack accuracy by 80% instead of 75%, and lasts 5-7 turns instead of 3-5 turns.

--increased the psy power damage multiplier for the elemental blast attacks from 1.2 to 1.3, essentially making them do an extra point of damage for every three points of psy power the attacker has.

(These last two changes are intended to make Farasat and the other psy fighters more viable in the early-to-mid game.)
Title: Re: Developer's Log
Post by: CraigStern on November 04, 2014, 02:43:41 PM
--new cut scenes: flashback to the mines, and an optional relationship-building scene between Emma and Lakshmi
Title: Re: Developer's Log
Post by: CraigStern on November 05, 2014, 10:54:14 AM
--fixed a bug where the game would cut off any dialog using forward slashes in the middle of the sentence.
Title: Re: Developer's Log
Post by: CraigStern on November 05, 2014, 07:26:16 PM
--fine-tuned the mines / relationship-building scene

--fixed the bug in which characters who had shields equipped would start battle with less than full health. Characters that equip items which raise max health now remain at full health if they were at full health when they equipped it.

--mantis knights, photokurioses, and greater spriggats now have walk animations!
Title: Re: Developer's Log
Post by: CraigStern on November 06, 2014, 08:09:41 AM
--fixed a bug (most noticeable in the battle with Ebon Raban in Coria) where passive enemies would take a really, really long time to decide they didn't have any targets in range on maps with lots of destructible objects. Relatedly: destructible objects with a TreatAsArmy tag will no longer draw passive enemies to attack if they're in range; the enemy must be taken off of passive mode first.
Title: Re: Developer's Log
Post by: CraigStern on November 07, 2014, 10:21:49 AM
--created the Pyrokurios cast animation!

--fixed a bug where the game would not run all conversations separately when multiple OnStat dialogs were triggered at once
Title: Re: Developer's Log
Post by: CraigStern on November 07, 2014, 03:22:44 PM
--reduced the cost of Place Snare Trap from 5 to 3.

--created the Arbalist crossbow animation ;)
Title: Re: Developer's Log
Post by: CraigStern on November 09, 2014, 02:45:06 PM
--new script action: AddAttackerPortrait. This adds the default character portrait of the current attacking character to the screen. One parameter: facing (right or left).
This action only works when a character is in the middle of attacking (as in, with dialog triggered by OnCharDeath or OnCharAttacked). If no attacking character is found, no portrait will be shown.

--new special character: -ATTACKER- will substitute the name of the current attacking character.

--new cut scene with the lissit leading into their battle with Gulch.

--tested, balanced, added more content to the lissit's battle with Gulch.
Title: Re: Developer's Log
Post by: CraigStern on November 12, 2014, 03:02:03 PM
--new cut scene in Coria

--new character portraits!

--added verbs "to take," "to give," and "to choke" to lissit, as well as words for "this," "coward," "honor," "ghost," "happily," and "willingly"

--death monologues for Meridian, Silithis, Des Serret, and Hee'la added
Title: Re: Developer's Log
Post by: CraigStern on November 14, 2014, 02:12:11 PM
--finished the Arbalist attack animations.

--received a bunch of promoted unit walk animations (Caduceus, Skiakurios, Greater Spriggat, Photokurios, Mantis Knight, and the female Fencer).

--received portrait for Vitalia Spring.
Title: Re: Developer's Log
Post by: CraigStern on November 16, 2014, 04:39:52 PM
--new character portrait, Oliver Spenks!

--new animation finished: the Puppetmaster's Cast animation
Title: Re: Developer's Log
Post by: CraigStern on November 18, 2014, 12:59:06 PM
--new merchant scene in Coria rough draft completed

--new dialog attribute name; a unique string that allows you to identify the branch of dialog by name instead of by branch number.

--new reply type NamedBranch; instead of taking branch number as a parameter, it takes a branch name, then goes to the dialog branch with a name that matches it.

--new special character BNAME[]. Allows you to put a branch name in between the brackets; the game will automatically replace the special character with the number of the branch that has that name. (If there is none, it'll display -1.) This will let you navigate to branches by name instead of number using the game's GoTo script actions.

Much like the NextBranch reply type, these will make it much easier for me to create complex dialog trees--in particular, it means that I can go back and add in new branches in particular spots in conversations without having to redo the branch number references in every NewBranch reply and GoTo action everywhere else in the dialog.
Title: Re: Developer's Log
Post by: CraigStern on November 20, 2014, 10:26:24 AM
--expanded the list of items the merchant in Coria sells considerably

--permanently changed the elemental blast range from 2 to 2-3, and ditched the thing where it would only increase at level 5. (Psy fighters were just not useful/survivable enough in the early game with the more limited blast range.)

--added Edwin Gabbergast to the game

--received a revised character portrait for Edwin Gabbergast (I decided to switch him from a spearman to a cavalier, which necessitated changing the armor in his character portrait).
Title: Re: Developer's Log
Post by: CraigStern on November 21, 2014, 04:12:19 PM
--created the nighttime Coria tavern scene in anticipation of a cut scene there

--got some graphics for the save and load game interface screen! ;)
Title: Re: Developer's Log
Post by: CraigStern on November 22, 2014, 09:42:58 AM
--fixed a pretty nasty bug that was affecting frozen and burning characters

--poisoned characters now turn green
Title: Re: Developer's Log
Post by: CraigStern on November 25, 2014, 03:16:57 PM
--wrote a new cut scene explaining why Teresa and Phoebe and Lord Dakarai continue to travel with Emma, and explaining a bit more of their backstory (the dialog changes depending on which of them is left alive)
Title: Re: Developer's Log
Post by: CraigStern on November 28, 2014, 11:25:35 AM
--received the last of the promoted unit walk cycles! :)

--finished the Puppetmaster's kinetic pull animation
Title: Re: Developer's Log
Post by: CraigStern on November 28, 2014, 01:14:52 PM
--finished the Puppetmaster's Levitate animation. The Puppetmaster's attack animations are now complete!
Title: Re: Developer's Log
Post by: CraigStern on November 29, 2014, 12:30:10 PM
--fixed a bug in which the game would accidentally set character sprite width to some unreasonably large number, thereby preventing the game from scrolling the camera properly during cut scenes

--fixed a bug that was making the apple-picking battle unbeatable
Title: Re: Developer's Log
Post by: CraigStern on December 01, 2014, 09:37:40 AM
--finished animating attacks for the Shadowheart and Skiakurios classes!

--created a couple of new cut scenes
Title: Re: Developer's Log
Post by: CraigStern on December 01, 2014, 02:28:10 PM
New monthly update (http://sinisterdesign.net/telepath-tactics-november-2014-update/) posted!
Title: Re: Developer's Log
Post by: CraigStern on December 03, 2014, 12:03:13 PM
--the spriggat Claw attack has been changed so that the attacker can keep moving afterwards, a la Lance and Bow. This should help improve spriggat survivability in combat pretty dramatically, and make Meridian easier to use in advance of acquiring wing armor

--created enemy classes for procedurally generated dungeon exploration: ghosts, spooks, apparitions, decrepit stone golems, and decrepit bronze golems
Title: Re: Developer's Log
Post by: CraigStern on December 04, 2014, 01:43:58 PM
--created a cut scene leading into an optional, procedurally generated dungeon-delving side mission
Title: Re: Developer's Log
Post by: CraigStern on December 04, 2014, 04:10:29 PM
--made a change to the ItemDrop script action. If you provide parameters that do not match existing item names, the game will just select items at random from the full list of all available items, weighted by their commonality parameters.

--created a rough draft of the dungeon-delving mission
Title: Re: Developer's Log
Post by: CraigStern on December 05, 2014, 01:28:00 PM
--new script action: SpawnRandomly. Allows you to dynamically spawn a character or destructible object on a free space on the battlefield, chosen randomly by the game. The game will pick a space that is passable by non-flying characters, unoccupied by other characters, and free of any non-bridge destructible objects. Unlike with the ItemDrop action, SpawnRandomly will not enforce a minimum spawn distance away from other characters, so beware!

The parameters are the same as with SpawnChar, but minus the X and Y coordinate parameters: team number; the name of the character to spawn, with a colon delimiting the first and last name; the direction to face upon spawning; trigger (optional); and tags (optional).
Title: Re: Developer's Log
Post by: CraigStern on December 05, 2014, 02:09:45 PM
--replaced the placeholder background for the game's settings menus with a proper bitmap background

--added a new section to the Telepath Tactics manual detailing the vocabulary and grammar of the lissit language (for those players who want to have fun figuring out what the lissit characters are actually saying when they speak their native tongue in the campaign)
Title: Re: Developer's Log
Post by: CraigStern on December 05, 2014, 02:27:43 PM
--completed rough drafts of the animations for the Specter promotional class.
Title: Re: Developer's Log
Post by: CraigStern on December 07, 2014, 04:47:57 PM
--created sea and beach sounds, to be added to the game as loops

--fixed a bug which prevented me from linking to procedurally generated levels using the NewScene reply type

--fixed a bug where character portraits were appearing in the wrong spot during dialog branches with multiple reply options
Title: Re: Developer's Log
Post by: CraigStern on December 07, 2014, 08:41:06 PM
--fixed a bug in which swapping the positions of a mandatory character with a non-mandatory character during deployment mode would allow you to then swap the mandatory character off the battlefield entirely
Title: Re: Developer's Log
Post by: CraigStern on December 08, 2014, 01:42:56 PM
--finished new flashback cut scene

--did more work on the optional, procedurally generated crypt mission
Title: Re: Developer's Log
Post by: CraigStern on December 10, 2014, 05:49:52 PM
--recoded the attack damage algorithm so that both predicted damage and actual, final attack damage use the exact same code to eliminate discrepancies

--added the Iron lance to Goniff Bastid's selection the second time you meet him

--updated Zimmer Thrawn's starting stats to bring him more in line with Gavrielle

--fixed a typo in the stores that listed the Iron Helm's price as 110 aura instead of 90
Title: Re: Developer's Log
Post by: CraigStern on December 10, 2014, 09:59:39 PM
--got a debuff attack effect animation from Tyvon Thomas

--got mace attack animations for the male and female Drake
Title: Re: Developer's Log
Post by: CraigStern on December 11, 2014, 10:42:38 AM
--assigned the new debuff effect to Drain and Gravity Spike animations

--created 79 snow-dirt-chasm transition tiles

--updated the Settings menu with a new background image
Title: Re: Developer's Log
Post by: CraigStern on December 12, 2014, 10:50:14 AM
--further expanded the snow chasm portion of the Snow tileset

--created Mechanic units for use in late-game battles

--created a rough draft of the battle at the entrance to the vibra mines!
Title: Re: Developer's Log
Post by: CraigStern on December 12, 2014, 01:54:36 PM
--finally got a visual attack effect for the grapple pull attack! It's now been added to the game. :D
Title: Re: Developer's Log
Post by: CraigStern on December 13, 2014, 09:45:58 PM
--fixed a ridiculous oversight in which Teresa and Phebe weren't getting recruited into your party at the moment they should

--tweaked Scarlet Etoile's level progression so she learns Charge at level 8
Title: Re: Developer's Log
Post by: CraigStern on December 14, 2014, 08:28:52 PM
--fixed some problems with the OnStat dialog trigger (and with the promotion scripts) that were preventing characters from promoting properly upon reaching level 20. Promotions now once again work as advertised! ;)

--fixed the ChangeCharClass script action; it now changes the character's sprite properly. I also swapped the position of the second and third parameters; class name now comes second, and sprite name third.

--added descriptions for the bonuses characters get upon promotion.

--added Accuracy to the detailed character stats screen.
Title: Re: Developer's Log
Post by: CraigStern on December 15, 2014, 09:03:42 AM
--got Axe and Pull animations for the Marauder!
Title: Re: Developer's Log
Post by: CraigStern on December 15, 2014, 09:15:12 AM
--new cut scene background; the galleon!
Title: Re: Developer's Log
Post by: CraigStern on December 16, 2014, 04:56:33 PM
--fixed two bugs that would occur when snare traps were triggered atop bridge tiles (the game would remove the bridge tile along with the snare trap, and would then freeze to boot)

--received shove animations for the marauder!
Title: Re: Developer's Log
Post by: CraigStern on December 17, 2014, 01:37:27 PM
--improved the function for determining to-hit percentages so that it takes account of more situations where accuracy is automatically 100% (when the attack is Mental, Shield, or Move element; or when the attack targets someone on the same team).
Title: Re: Developer's Log
Post by: CraigStern on December 17, 2014, 08:50:34 PM
--I've been working on overhauling the remaining placeholder UI. The New Campaign, Local Match, and Settings menus all have backgrounds now. Also, campaigns now load their own unique header images when you select them from the list. The menus are not done--I still have make the fonts the same colors with the same drop shadows, for instance--but they're getting there bit by bit.
Title: Re: Developer's Log
Post by: CraigStern on December 17, 2014, 09:05:08 PM
--added an option to the inventory screen to have the game spell out an item's race, class, and level requirements on demand
Title: Re: Developer's Log
Post by: CraigStern on December 17, 2014, 09:17:12 PM
--fixed a particularly odd bug in which pushing a character down a bridge that just so happens to be on top of a cliff face would cause the character to "fall" across the bridge as if he were falling down the side of the cliff beneath it
Title: Re: Developer's Log
Post by: CraigStern on December 18, 2014, 09:02:34 AM
--new character portraits! :)
Title: Re: Developer's Log
Post by: CraigStern on December 18, 2014, 09:15:36 PM
--finished writing a new cut scene with Emma and Harriet Glaive

--incorporated Dale Spenks's portrait into the game

--removed Pyro Hail from the Hill Pyrokineticist unit to avoid a huge difficulty spike at the end of the Hills of Coria battle

--gave all sniper-type enemy characters Bow in addition to Arced Shot
Title: Re: Developer's Log
Post by: CraigStern on December 19, 2014, 02:54:00 PM
--created a new cut scene immediately following the Ebon Raban battle
Title: Re: Developer's Log
Post by: CraigStern on December 19, 2014, 02:54:56 PM
--whirlwind animation for the marauder is done!
Title: Re: Developer's Log
Post by: CraigStern on December 20, 2014, 10:56:28 AM
Some balance tweaks:

--updated Fera's sprite to a Fencer, updated her stats to more appropriately reflect her level (i.e. way too high for the player to be messing with).

--changed it so you can still counterattack while you have Defending status.

--decreased the energy cost for Stab from 5 to 3.

--new status effect: Back Guarded. Makes it so the character isn't subject to the 50% backstab damage bonus (or to any sidestab bonuses).

--new skill for assassins: Awareness. Gives the user Back Guarded status until next turn.
Title: Re: Developer's Log
Post by: CraigStern on December 21, 2014, 10:37:55 PM
--fixed a bug in which the game wouldn't properly display all of the experience a character gained for AOE attacks in the little animated experience bar. For attacks that hit (and/or kill) multiple targets at once, the animated experience bar now represents all of the experience that the attacker received.

--finished programming the cut scene after the battle with Ebon Raban to account for which characters are left alive
Title: Re: Developer's Log
Post by: CraigStern on December 22, 2014, 04:45:28 PM
--finally fixed the bugs that were affecting character death monologues during AOE attacks that killed multiple characters at once; characters are now removed properly in such situations, and the game no longer hangs when such death dialog involves NewBranch replies
Title: Re: Developer's Log
Post by: CraigStern on December 23, 2014, 01:17:41 PM
--created a rough draft of a new defend the camp battle on the isle of Kovit
Title: Re: Developer's Log
Post by: CraigStern on December 24, 2014, 01:40:38 PM
--added new environmental sound loops: beach and open sea.

--updated some of the game's tracks with new, final mastered versions; added final boss music to the game.

--added the character Malcolm Eichan to the game.

--reduced the price of kite shields from 320 aura to 250.

--gave longbows their own variant on Arced Shot: Longbow. This gets around the issue with Arced Shot being dependent on having Bow. Because longbows don't give the character Bow, this was causing longbows to not give the equipped character any attacks at all!

--increased the base strength bonus of the iron longbow from 7 to 9, and boosted the strength bonus of the recurve longbow to 13.
Title: Re: Developer's Log
Post by: CraigStern on December 24, 2014, 10:58:29 PM
--updated the game's sound and music code to support multiple different swfs holding ambient sound loops and music, then split the game's existing loops into two separate swf files. (I had reached the limit on how many ambient sound loops and music tracks Flash would let me stuff into a single swf file, and would've had to make do without adding in the final boss music and new environmental loops otherwise.)

--wrote a new cut scene, spruced up and completed two other cut scenes that were in rough draft form.
Title: Re: Developer's Log
Post by: CraigStern on December 26, 2014, 11:14:50 AM
--reduced the psy power of the five guardians of Coria Pass to account for the increased damage level of the elemental blasts

--added Archos into the game; created new enemies

--created rough draft of the battle with Archos

--reduced the energy cost of Motivate from 5 to 2; created new attack, Inspire, an AOE version of Motivate that Emma can learn. :)
Title: Re: Developer's Log
Post by: CraigStern on December 26, 2014, 05:39:18 PM
--you can now use the TeachAttack script action in static cut scenes, provided you delimit the affected character's first and last name with a colon. (This will only work on characters who have already appeared in at least one battle on the side of army 0.)

--added an optional parameter to FadePortrait that allows you to have portraits go transparent and then fade in instead of having them fade out.

--fixed a bug that would sometimes cause the SpawnRandomly script action to not work properly.

--ItemDrop now has a mandatory first parameter; a number between 0 and 1 that determines the minimum distance from character spawn points that the item will be forced to drop. (Higher means farther away.)

--updated the manual with documentation on FadePortrait, as well as a new lissit word.

--Charge now does 150% the amount of damage that Lance does, instead of 140%.

--updated Emma and Sabrina so they eventually learn Feint and Double Strike.

--refined draft of the Battle with Cloch, adjusted its difficulty downward somewhat.

--created new cut scene with Emma and Sabrina on the ship after Tarion appears to Emma, in which Emma learns the ability Inspire.
Title: Re: Developer's Log
Post by: CraigStern on December 27, 2014, 03:44:14 PM
--integrated new mastered mixes of various musical tracks into the game

--fixed a bug that was preventing the tutorial from running

--fixed a bug that caused the tutorial to be incapable of completion

--improved the tutorials a bit with better explanations
Title: Re: Developer's Log
Post by: CraigStern on December 28, 2014, 01:22:59 PM
--created new cut scene with the lissit stowing away aboard the ship :)

--went back and tied up some loose ends with the game's character progression; scheduled learning of advanced abilities for characters who didn't have that programmed in yet, and added the Promotable tag to certain recruitable characters who didn't yet have it.

--created NPCs for $300+ Kickstarter backers; Doran Chamberlain and Annel Stormhunter.
Title: Re: Developer's Log
Post by: CraigStern on December 28, 2014, 07:59:37 PM
--added the character Siripent into the game

--added Siriprent and Sarn Kamina as computer-controlled allies to be rescued in the defense battle with Cloch

--created a rough draft of Harriet Glaive's solo side quest
Title: Re: Developer's Log
Post by: CraigStern on December 29, 2014, 02:47:03 PM
--put in placeholder death monologues for Naila Hashmal, Oliver Spenks, Edwin Gabbergast, Sarn Kamina, and Siripent.

--increased the effectiveness of Weakened status; it now subtracts 4 from a character's strength instead of 2.

--did some work on finalizing the defensive battle to rescue Sarn Kamina; took Cloch out of the battle so that I might give him his own battle in the mines.
Title: Re: Developer's Log
Post by: CraigStern on December 29, 2014, 06:24:05 PM
Battles currently in the game:

Spoiler
1--Training
2--Zash and Red
3--Adelbrae
4--Caravan
5--Rescuing Meridian
6--Battle with Gunther
7--Battle with the Prison Guard
8--Bandit Fortress Entrance
9--Bandit Fortress Exterior
10-Out of Food
11-Battle with Gulch
12-Five Guardians
13-Hills of Coria
14-Coria Bridge Battle
15-Coria Dogs Entrance
16-Coria Dogs Basement
17-Battle with Ebon Raban
18-Crypt Delving
19-Rescuing Sarn Kamina
20-Battle with Archos
21-Mine Entrance
22-Battle with Malcolm

So by my count, we're now up to 22; that means I have three more battles to design!

--I just created a rough draft of battle 23.
Title: Re: Developer's Log
Post by: CraigStern on December 29, 2014, 09:01:45 PM
--fixed a bug in which enemy healers would skip their turns if set to Passive and no enemies were within maximum attack range; they now check for allies to heal as normal, regardless of how far away enemies are
Title: Re: Developer's Log
Post by: CraigStern on December 31, 2014, 12:03:08 PM
--finished the first complete draft of battle 19.

--created a bunch of new lava tiles for use in the mines.

--created new enemies that appear in the mines.

--finished the first complete draft of the final battle!
Title: Re: Developer's Log
Post by: CraigStern on December 31, 2014, 06:05:01 PM
--finished up the rough draft of battle 23!

--fixed a bug in which a character portrait in the deployment screen would appear beneath the manage inventory button if you had more than 10 characters in reserve.

--fixed bugs in the Coria Dogs basement battle, battle 23, and in the final battle which would prevent the script that spawns enemy reinforcements from running more than once.

--the game is now playable from beginning to end! Granted, there's one more battle I would like to add, and there's about a half dozen cut scenes that need adding in order to clarify and advance the plot, and I need to create the game's actual ending, but: it's now possible to actually play through to the final battle and beat it, thus beating the game. This is what I was hoping to have done by the end of December, and I'm pretty proud of myself for hitting the goal. :)
Title: Re: Developer's Log
Post by: CraigStern on January 02, 2015, 09:16:34 AM
--added the recruitment of Edwin Gabbergast to the game (you only get him if Louise is still alive).

--made it so Meridian learns Dark Breath 2 at level 7.

--changed the element of Charge from pierce to crush so that it is more effective against armored opponents.
Title: Re: Developer's Log
Post by: CraigStern on January 04, 2015, 05:25:01 PM
--posted the monthly update

--added in a new cut scene further developing Lakshmi Bana
Title: Re: Developer's Log
Post by: CraigStern on January 06, 2015, 09:37:00 AM
--worked on the third flashback cut scene

--fixed a bug affecting the Give item action in battles
Title: Re: Developer's Log
Post by: CraigStern on January 06, 2015, 07:44:14 PM
--fixed a bug in which using the Give item function would sometimes mess up a character's equipped items.

--fixed a bug in which a character's turn would not end normally after their weapon breaks in an attack.
Title: Re: Developer's Log
Post by: CraigStern on January 07, 2015, 02:46:53 PM
--added two new cut scenes showing Silithis getting discovered, and then resolving her plot arc vis-a-vis Emma.

--fixed a bug which caused the game to simply end after the procedurally generated battle exploring the crypts.
Title: Re: Developer's Log
Post by: CraigStern on January 07, 2015, 08:37:22 PM
--finished up the scripting in the battle against Ebon Raban to make enemies more proactive, and put treasures in the empty chests.

--created new status effect: Shining. This increases the target's Dodge by a flat 25% for 5-7 turns. This replaces the previous effect of Blinding Cloak.

--fixed an issue whereby the effects of Hardened would stack (even though they weren't supposed to).
Title: Re: Developer's Log
Post by: CraigStern on January 08, 2015, 09:46:28 PM
--fixed a handful of bugs where the game would dead-end, or send you to the wrong scene

--made it so the game's AI now handles the Charge attack appropriately by checking to make sure the path to the target is actually clear first
Title: Re: Developer's Log
Post by: CraigStern on January 08, 2015, 11:38:11 PM
--new script action: NextScene. Works the same as NewScene, but takes no parameters--it just immediately goes to whatever scene is specified in the current scene's nextbattle attribute.

--fixed the losing condition in the Battle with Malcolm;
Spoiler
if Harriet dies, she remains dead and the game continues without her.

--made some changes to the battle with Archos; scripting improvements, added reinforcements
Title: Re: Developer's Log
Post by: CraigStern on January 09, 2015, 10:00:36 AM
--completed the attack animations for the Caduceus; updated Vitalia Spring with the proper sprite
Title: Re: Developer's Log
Post by: CraigStern on January 09, 2015, 05:27:42 PM
--fixed a bug in which the game would flip out if it couldn't connect to the internet on start-up and spawn an error window
Title: Re: Developer's Log
Post by: CraigStern on January 10, 2015, 12:50:49 PM
--fixed a problem with the first Coria Dogs battle which required you to kill the bartender to beat it.

--added a new item to the game: Winged Helm.

--added a visit to a merchant before the battle with Archos.
Title: Re: Developer's Log
Post by: CraigStern on January 11, 2015, 12:12:51 PM
--fixed a bug which was causing the Trigger tag to not work properly

--fixed a bug in which Gravity Spike was dealing 0 damage to flying targets

--new victory condition: Defeat Army. Two parameters: the number of the army whose victory condition it is, and the army they can defeat to win. If the army to be defeated is wiped out, then the army named in the first parameter will be immediately victorious even if there remain other, non-allied armies on the battlefield.
Title: Re: Developer's Log
Post by: CraigStern on January 11, 2015, 01:01:22 PM
--added Defeat Army condition to the first battle after leaving Coria so as to avoid the need to kill neutral characters to win.

--increased the damage on Gravity Spike from Psy Power to 1.2 times Psy Power; increased its range from 2 to 2-3; reduced its cost to 4.

--new attacked: Gravity Well. It's basically Gravity Spike, but deals slightly less damage and it hits in a 3x3 area.

--tweaked attack learning progression for the mentalists.
Title: Re: Developer's Log
Post by: CraigStern on January 12, 2015, 12:46:54 PM
--completed the attack animations for the Titan (promoted Bronze Golem)!
Title: Re: Developer's Log
Post by: CraigStern on January 13, 2015, 06:20:59 PM
--fixed two bugs that were keeping the "delete last column" function in the map editor from working properly
Title: Re: Developer's Log
Post by: CraigStern on January 14, 2015, 09:35:42 AM
--redid the map for the Coria Tavern cut scene; this seems to have fixed the freezing issue that kept occurring
Title: Re: Developer's Log
Post by: CraigStern on January 14, 2015, 10:04:53 AM
--in the map editor, adding / deleting columns on the left side of a map or adding / deleting rows at the top of a map now adjusts the coordinates of point lights on the battlefield so they remain in the same spot relative to everything else on the map.

--fixed a map editor bug in which changing the class of an existing character or object on the battlefield via the edit character or edit object window would add the new character or object onto the space without removing the old one, resulting in two of the same thing on that space.
Title: Re: Developer's Log
Post by: CraigStern on January 14, 2015, 10:43:14 AM
--fixed a bug that I stupidly introduced three days ago, one which was causing the training battle (and presumably others) to end in instant defeat
Title: Re: Developer's Log
Post by: CraigStern on January 15, 2015, 05:47:23 PM
--the game's title screen now shows a message that I can customize, which will link to a site of my choice when clicked

--fixed a bug in which characters in the way of the drawbridge during the bandit fortress escape would be permanently killed even if the game was in casual mode

--fixed a bug that was preventing the player from leaving the crypt mission at will
Title: Re: Developer's Log
Post by: CraigStern on January 16, 2015, 01:54:35 PM
--fixed a bug in which the game's log handler class would always treat the month as being one numeral behind (0 instead of 1 for January, 1 instead of 2 for February, and so on).

--fixed a bug in which Louise could show up in the Coria Tavern cut scene even if she'd left your group earlier in the game

--fiiiiiiiinally, definitively fixed that stupid bug that was causing the Coria Tavern cut scene to freeze unpredictably!
Title: Re: Developer's Log
Post by: CraigStern on January 18, 2015, 02:56:36 PM
--fixed a bug which would cause the game to suddenly skip past scrolling cut scenes if the narration text was too long

--created the game's end credits
Title: Re: Developer's Log
Post by: CraigStern on January 19, 2015, 03:35:13 PM
--added QA people to the end credits

--added the last two portions of the game's third (and final) flashback cut scene showing Medomai and Sarn Kamina's roles
Title: Re: Developer's Log
Post by: CraigStern on January 19, 2015, 05:49:34 PM
--the game now removes the LevelUp tag from a character as soon as it levels him or her up, so as to avoid persistent characters who have the tag gaining levels at the start of every single battle
Title: Re: Developer's Log
Post by: CraigStern on January 19, 2015, 06:49:26 PM
--fixed a bug in which the characters area at the bottom of the common inventory would not resize properly when displaying characters in multiples of 12

--fixed a bug in which enemies could backstab your tent in the battle right after you arrive on Kovit, or the battle with Archos

--fixed a bug in which you could not recruit Siripent with Emma or Sabrina

--the current campaign header image in the New Campaign menu now disappears if you select another campaign that has no header image

--the game's item requirements pop-up now accommodates items with very long lists of things that meet their requirements (e.g. leather armor)
Title: Re: Developer's Log
Post by: CraigStern on January 20, 2015, 07:51:30 AM
--replaced a number of musical tracks in the game with final, mastered versions
Title: Re: Developer's Log
Post by: CraigStern on January 20, 2015, 09:30:02 AM
This thread is solely for me to post updates in; please post problems you are having in the bug thread.
Title: Re: Developer's Log
Post by: CraigStern on January 20, 2015, 08:22:22 PM
--created two new non-flashback cut scenes in the mines

--updated the final battle with more character dialog
Title: Re: Developer's Log
Post by: CraigStern on January 21, 2015, 07:58:28 AM
--added new early-game tutorial text explaining damage fall-off on ranged attacks and encouraging the player to use Sprint to get to far-off locations

--the scene leading to Harriet Glaive's showdown with Malcolm Eichan now no longer triggers if she died earlier in the game
Title: Re: Developer's Log
Post by: CraigStern on January 21, 2015, 08:15:59 AM
--created a new, looping "howling wind" sound effect and added it to the game. It can be employed via the action PlayLoop/Wind

--updated one of the game's cut scenes with the wind loop
Title: Re: Developer's Log
Post by: CraigStern on January 21, 2015, 02:29:20 PM
--wrote the ending to the game! :D

--the game now tracks your total score across all battles in a given campaign. (Unfortunately, I had to make some changes to the game's save code to do this, which means that old save game files will most likely become unusable once I update the game to version 0.455.552.)

--added documentation on the Defeat Army condition to the manual.

--new script action, FadePortraits – causes all portraits to fade out or fade in. Has one parameter: Number of Frames; Number of Frames tells the game how many frames to take fading the portraits in or out. There are two additional optional parameters: Delay and Mode. Delay is the number of frames to wait before beginning to fade the portraits in or out. Mode is either out or in; this specifies whether to fade the portraits out or fade them in. (By default, portraits fade out with 0 frames of delay.)
Title: Re: Developer's Log
Post by: CraigStern on January 21, 2015, 03:58:50 PM
--wrote five more character death monologues; there are no longer any placeholder death monologues in the game.
Title: Re: Developer's Log
Post by: CraigStern on January 22, 2015, 08:25:55 AM
--the game now loads the player's current total score for a campaign when he or she enters a new scene; you can access that score using the new special character -SCORE-

--tidied up the game's end credits a bit, fixed some overflow lines
Title: Re: Developer's Log
Post by: CraigStern on January 22, 2015, 11:27:12 AM
--made some necessary changes to the fourth merchant scene, and added a fifth (and final) merchant scene right before entering the mines

--added endings for Meridian, Oliver, Medomai, Goniff, Umber, and Fera to the game's conclusion.
Title: Re: Developer's Log
Post by: CraigStern on January 22, 2015, 10:30:37 PM
--implemented an optimization for the enemy AI routine: the game no longer pans over to every character before checking to see if it can go. If a character is in Passive mode and there are no targets within its max range, the game skips over it immediately, leading to drastically shorter enemy turns on maps with lots of passive enemies.

--fixed issue where Defending characters wouldn't counterattack after blocking an attack

--fixed bug where characters with Defending status would nonetheless block attacks from Blinded characters, and characters with a Dodge of 0 would never dodge attacks even if those attacks had an accuracy level below 100%

--fixed a bug in which the game had ceased letting the player grab bridges and objects in order to pan around the battlefield

--fixed a bug in which the experience gain bar would display during death monologues rather than waiting for the character to finish speaking and die first

--fixed a bug where the title screen text box would sometimes show up during the loading screen  between scenes
Title: Re: Developer's Log
Post by: CraigStern on January 23, 2015, 10:34:02 AM
--created a rough map of the islands where the main campaign takes place, with key locations marked

Missions matched up to the map:

Spoiler
--the zaris is where the training mission occurs
--just west of it is the fight with Zash and Red
--the first fight with Gunther is in Adelbrae
--you find the caravan en route north from Adelbrae to the Mud Hills
--the fight with Gulch is just at the beginning of the Mud Hills in the southwest, near the edge of the forest
--the fight with Gunther is in the Mud Hills
--the fight to defend the camp happens in the forested area just south of the bandit fortress
--the bandit fortress battles occur in the bandit fortress and immediately outside the fortress's south wall
--the foraging mission and the lissit stealth mission both occur in the forest southwest of the fortress, between the Mud Hills and Coria Pass
--the battle with the five guardians occurs at the entrance to Coria Pass
--the battle atop the cliffs and the long bridge battle each occur in the Teeth, with the latter battle occurring in the westernmost part of the Teeth
--the battles with the Coria Dogs and Ebon Raban occur in Coria
--the group sails southwest from Coria, loops south of Koerdt's Key, and lands in Gilmore Bay
--the crypt that Teresa and Phoebe want to explore is on Gilmore Bay
--the battle where you find Sarn Kamina and Siripent occurs in the Wetlands, northwest of Gilmore Bay
--the battle with Archos occurs at the westernmost edge of the Wetlands as they transition into the snowy foothills leading of the mountains
--all the remaining battles occur either right outside the mines, or within the mines
Title: Re: Developer's Log
Post by: CraigStern on January 24, 2015, 10:27:37 AM
--I've spiffied up the map

--started working on giving bridges elevation independent of the tiles they're situated over, so as to fix weird inconsistencies on maps where bridges connect cliffs or other elevated areas across areas with much lower elevation
Title: Re: Developer's Log
Post by: CraigStern on January 24, 2015, 01:19:16 PM
--bridges can now have their own elevation independent of the tile below them! To accomplish this, use the new Elev tag on a bridge object that you want to have a particular elevation. One parameter: the elevation for the bridge to adopt. This not only fixes issues with characters getting inappropriate elevation bonuses and penalties while fighting on bridges, it also fixes the long-standing issue of characters being able to swim onto bridges from water way, way, way below where the game should consider the bridge to be.
Title: Re: Developer's Log
Post by: CraigStern on January 24, 2015, 06:19:57 PM
--fixed a bug in which a character that is pushed and falls down a wall, when landing on another character, could bounce onto an adjacent space that is a wall and then just stay there without falling.
Title: Re: Developer's Log
Post by: CraigStern on January 25, 2015, 09:52:07 PM
--created a checkbox toggle UI element

--added a Fullscreen Mode toggle to the game's Settings menu

--changed the game's windowed mode resolution to 1280 x 720 (a Youtube-friendly 16:9 aspect ratio that will record nicely in HD)
Title: Re: Developer's Log
Post by: CraigStern on January 26, 2015, 06:48:03 AM
--fixed a bug caused by yesterday's windowed resolution change, in which cut scene backgrounds were showing up noticebly offset to the right
Title: Re: Developer's Log
Post by: CraigStern on January 26, 2015, 03:47:18 PM
--wrote a short cut scene after the first battle on Kovit explaining why a certain character is coming with you

--wrote some preliminary code allowing the player to select from alternate rulesets (i.e. different CharClasses.xml, Attacks.xml, and other baseline stuff defining what the player can select) in multiplayer
Title: Re: Developer's Log
Post by: CraigStern on January 26, 2015, 11:30:58 PM
--finished the player-selected rulesets code! It now appears in the New Match menu as "Rules Set"; changing it changes the CharClasses.xml file from which the match's unit classes will be drawn, as well as the Attacks.xml file that defines their attacks, the ObjClasses.xml file that determines the properties of battlefield destructible objects, and the ItemClasses.xml that defines the items that can appear on the map or drop during matches.

In short: it's a quick and way of easily swapping between different variations on the default multiplayer formula, and will make it easy to create and share your own modded multiplayer variations with others. ;)
Title: Re: Developer's Log
Post by: CraigStern on January 27, 2015, 02:22:43 PM
--new attack: Pilfer. This attack is granted by lockpicks (see below).

--created new Item: Lockpicks. These can be equipped by assassins to gain the attack Pilfer, which deals exactly 50 damage to locked chests.

--some merchants now sell lockpicks.

--new status effect: Strengthened. Increases a character's strength by 2 for 5-7 turns.

--new status effect: Lucid. Increases a character's psy power and psy defense each by 2 for 5-7 turns.

--replaced the battle-long boosts from Fury and Stimulate with the Strengthened and Lucid status effects.

--made it so that Louise and Oliver learn Fury and Stimulate, respectively. Eliminated a bit more of their skill overlap to specialize them more: Louise is now more specialized in anti - flyer abilities, Oliver in push / pull abilities.

--created new trap type: the Iron Jaw trap. Deals 6 Pierce damage, as well as stunning and slowing whoever walks into it.

--Sabrina now learns Place Iron Jaw Trap, which does exactly what it sounds like it does.

--swapped the special deals for the fourth and fifth merchant scenes; the blue orb is now sold in the fourth scene, and the energy orb in the fifth.

--updated the knife-holding stick guy in the Stab icon with a more active pose so it's clearer that he's stabbing someone; took the knife out of the guy's hand in the Leap icon to keep people (myself included) from accidentally confusing it with Stab.
Title: Re: Developer's Log
Post by: CraigStern on January 27, 2015, 03:51:50 PM
--updated the manual with documentation on Strengthened and Lucid status effects, as well as more information on how to get started modding
Title: Re: Developer's Log
Post by: CraigStern on January 27, 2015, 10:40:51 PM
--added Elev tags to the bridges in the Coria Bridge battle and the Mines Entrance battle

--fixed a bug in which bridges built across steep elevation changes would not allow characters to cross them; bridges are now built at the elevation of the character that created them.

--fixed a bug in which local multiplayer matches wouldn't start until you actively selected a rules set from the dropdown menu
Title: Re: Developer's Log
Post by: CraigStern on January 28, 2015, 09:56:20 AM
--added in some promoted unit attack animations that I'd overlooked (Split Shot, Powder Bolt, etc.)

--fixed an issue with promoted unit attack animations not palette swapping properly to the unit's army color palette

--fixed an issue in which the Mantis Knight sprites would not appear in the Promoted rule set for multiplayer

--fixed typos in the Meridian rescue battle, the outer wall bandit fortress escape battle, and the item description for the Power Orb
Title: Re: Developer's Log
Post by: CraigStern on January 28, 2015, 12:09:57 PM
--added the bandit to multiplayer as a selectable class!

--in multiplayer, changed the shadowling's default attacks from Mind Blast, Shadowport, and Feedback to Mind Blast, Shadowport, and Terror.

--fixed an issue in which the game would display both of Silithis's endings in succession rather than just one at the end of the game.

--fixed an issue in which a sound loop would not terminate under certain circumstances following Emma's waking up after her first flashback to the mines.

--fixed wrong portrait appearing during the introductory dialog to the Coria Dogs basement fight.

--updated the item description of plated boots to mention the -5 Dodge effect.
Title: Re: Developer's Log
Post by: CraigStern on January 28, 2015, 01:53:59 PM
--renamed the "Lissit" class to "Barudit" (which is lissit for "mace-wielder") to eliminate confusion about "Lissit" simultaneously meaning a race, a class, and a language.

--created a guide to the game's 23 base character classes in the manual

--created a guide to some of the game's most common consumable items in the manual

--it is no longer possible for enemies to backstab your tent in the Mines Entrance battle
Title: Re: Developer's Log
Post by: CraigStern on January 28, 2015, 05:35:37 PM
--wine now reduces psy power and psy defense by 2 when used, so that it isn't totally overpowered for characters that rely mostly on Mental attacks
Title: Re: Developer's Log
Post by: CraigStern on January 29, 2015, 10:16:36 AM
--the frost spriggat Frost Breath attack animation is now in the game and finalized! The other breath attack animations are forthcoming. ;)
Title: Re: Developer's Log
Post by: CraigStern on January 29, 2015, 12:17:07 PM
--replaced the placeholder "Promoted" multiplayer ruleset with a new, experimental ruleset: Bases for Generals. When this ruleset is selected and you play in Generals mode, the players get bases for generals--bases which can recruit a single, relatively weak character for their team each turn.

--new attacks for the bases in the Bases for Generals ruleset: Recruit Bandit, Recruit Swordsman, Recruit Spearman, Recruit Bowman, Recruit Engineer and Recruit Psy Healer. :D
Title: Re: Developer's Log
Post by: CraigStern on January 29, 2015, 02:30:58 PM
--added error logging to the new campaign and new local match menus (which I'd previously neglected to put in for some reason)

--cleaned up a stray pixel in the male greater frost spriggat's left-facing walk animation

--fixed a bug in which Create attacks that spawn characters, when used by characters whose direction is None, would fail to create the character
Title: Re: Developer's Log
Post by: CraigStern on January 29, 2015, 08:42:58 PM
--fixed a bug that kept Iron Jaws from working and kept the Place Iron Jaw Trap ability from working

--fixed a typo that was preventing Meridian from learning Dark Breath 2

--fixed a bug in which allies could end up dodging shield abilities used by allies

--fixed some elevation settings on the battle with Leon Hart

--added dialog warning the player when reinforcements are about to arrive in the battle with Leon Hart
Title: Re: Developer's Log
Post by: CraigStern on January 29, 2015, 10:53:26 PM
--balance fix: Terror no longer causes blindness

--Gavrielle and Zimmer now learn Trueshaft one level earlier

--removed a stray pixel from the right-facing female Pikeman walk animation
Title: Re: Developer's Log
Post by: CraigStern on January 30, 2015, 09:14:52 AM
--edited some of the tiles in the battle with Leon Hart to give a visual cue as to where the first wave of reinforcements is likely to appear

--the Megalith's Fist and Smash animations are complete! :)
Title: Re: Developer's Log
Post by: CraigStern on January 30, 2015, 03:46:12 PM
--Lord Dakarai (or any golem, provided I ever add in more of them) can now use Golem Parts to permanently increase its Strength by 1 and Energy by 4
Title: Re: Developer's Log
Post by: CraigStern on February 01, 2015, 04:12:16 PM
--the common inventory now supports item sorting! Watch it here: https://www.youtube.com/watch?v=viQq1IMh4Nc (https://www.youtube.com/watch?v=viQq1IMh4Nc)

--new item: Shadow Cloak. Useable only by assassins; while it does nothing to boost the wearer's resistance, it does make that character somewhat less likely to be targeted by the enemy AI (especially if alternative targets are in range).
Title: Re: Developer's Log
Post by: CraigStern on February 01, 2015, 08:20:17 PM
--fixed a particularly infuriating bug that was causing the multiplayer army class pool not to update when changing to a rule set with entirely different unit classes, as well as a second bug that forced you to manually select the ruleset every single time you wanted to play a local multiplayer match.

--fixed a bug in which the game would not properly load user multiplayer rule sets contained in the directory Documents > My Games > Telepath Tactics > User Multiplayer Rule Sets.

--fixed a stray pixel in the right-facing male Marauder walk animation.

--fixed a bug in which it had become possible to surrender in the tutorials.

--fixed the bug that was rendering it impossible to progress beyond a certain point in the second tutorial.
Title: Re: Developer's Log
Post by: CraigStern on February 02, 2015, 06:49:27 PM
--wrote the monthly update, to be posted tomorrow
Title: Re: Developer's Log
Post by: CraigStern on February 02, 2015, 08:19:56 PM
--updated the mix of Onslaught to the version with live strings; it sounds even cooler now than it did before :)

--increased the compression quality on the game's music from "Fast" 128 kbps to "Best" 160 kbps. It's an extra 10-15 MB, but the music sounds much cleaner and nicer that way.
Title: Re: Developer's Log
Post by: CraigStern on February 02, 2015, 09:11:48 PM
--added support for AOE patterns larger than 5 x 5.

--discovered, to my shock and horror, that all of the sound effect and visual effects data for the Cryo Cross attack somehow got deleted from the game's Attacks.xml files! I went and recreated them.

--fixed typos that were preventing certain classes of characters from getting the correct sprites upon promotion.
Title: Re: Developer's Log
Post by: CraigStern on February 03, 2015, 10:00:07 AM
--got the Knife and Stab animations for the Whisper from David Hamond! :)
Title: Re: Developer's Log
Post by: CraigStern on February 03, 2015, 09:34:38 PM
--fixed a bug in which Use Once attacks like Thrust would not count as having been used if the target counterattacked, allowing further uses in the same turn.

--increased Thrust's damage to 80% of strength (from 50%).

--added visual effects to Dark Breath and Dark Breath 2, Fire Breath and Fire Breath 2, Light Breath and Light Breath 2.

--created a light breath sound effect; recalibrated the sound effects for the other breath types to better match the timing of the effect animations. Added an "inhale" sound into each sound effect sequence.

--fixed the bug that was keeping the Recruit Psy Healer skill from working in the Bases for Generals ruleset.

--cleaned up certain geographical features on the world map and fixed an embarrassing typo.
Title: Re: Developer's Log
Post by: CraigStern on February 04, 2015, 03:10:48 PM
--experimented with prettying up the map some more using art materials in anticipation of including it in the manual
Title: Re: Developer's Log
Post by: CraigStern on February 04, 2015, 06:47:08 PM
--added an exchange between Harynx and Meridian during the Coria Tavern cut scene
Title: Re: Developer's Log
Post by: CraigStern on February 05, 2015, 10:33:04 AM
--added a listener to the game's destructible objects so that the game won't get "stuck" when clicking on them to pan the battlefield.

--in reviewing some of the game's code this morning, I realized that I had put the code removing listeners from dead characters and objects in the wrong part of the code, meaning that listeners were not getting removed from the stage as characters died during battles. Whoops.

I strongly suspect that this was at least partially responsible for the slowdown that happens during longer battles with lots of enemies; I've fixed the listener removal process now, and am going to test out the game and see if it helps with performance.
Title: Re: Developer's Log
Post by: CraigStern on February 05, 2015, 07:19:51 PM
--introduced some optimizations to free up memory after characters and objects are destroyed

--eliminated that annoying little pause that used to happen after every character move
Title: Re: Developer's Log
Post by: CraigStern on February 06, 2015, 11:51:38 AM
--got three new character portraits from David Hammond! Annel Stormhunter and Doran Chamberlain (both Kickstarter backer portraits), and Samir Hashmal.

--Samir Hashmal's portrait has been added to the ending.

--added Doran Chamberlain to the Battle with Archos as a recruitable character.

--gave Archos a death monologue.

--gave Doran a death monologue.
Title: Re: Developer's Log
Post by: CraigStern on February 06, 2015, 01:19:17 PM
--fixed a bug in which the RemoveTriggerObj action would still remove bridge tiles below triggered traps, but only if the player was the one that had created the bridge tile.
Title: Re: Developer's Log
Post by: CraigStern on February 06, 2015, 09:08:20 PM
--fixed a bug in which the AI would not calculate the location of targets correctly with attacks that use an AOE patten design on a non-7X7 field

--added Annel Stormhunter into the battle with Ebon Raban.
Title: Re: Developer's Log
Post by: CraigStern on February 07, 2015, 11:24:14 AM
--added tutorial text to the battle to rescue Meridian explaining that you can speed up enemy turns by changing the Character Move Speed setting in the Settings menu
Title: Re: Developer's Log
Post by: CraigStern on February 07, 2015, 02:26:11 PM
--made it so the enemies in the Rescuing meridian battle lose their passive status one turn later than they used to, just to make the battle a little more forgiving

--in the first campground scene, added some code that makes it so Scarlet doesn't comment on characters who are dead or not recruited

--changed Sabrina's dialog in the Defend the Camp battle slightly to tip the player off that enemies are going to be coming from all directions

--added a couple of extras bushes and a boulder to the battlefield to make it a little easier to form choke points
Title: Re: Developer's Log
Post by: CraigStern on February 07, 2015, 07:17:58 PM
--new script action: Tweet. Opens the browser to Twitter.com. One parameter: the URL to visit on Twitter.com, but using |s in lieu of forward slashes.

For example:

Code: [Select]
<Action>Tweet/share?text=I%20beat%20Telepath%20Tactics!%20Can%20you%20top%20my%20final%20score%20of%20-SCORE-?&url=http:||sinisterdesign.net|products|telepath-tactics|</Action>
will send the player to http://www.twitter.com/share?text=I%20beat%20Telepath%20Tactics!%20Can%20you%20top%20my%20final%20score%20of%20999?&url=http://sinisterdesign.net/products/telepath-tactics/ (http://www.twitter.com/share?text=I%20beat%20Telepath%20Tactics!%20Can%20you%20top%20my%20final%20score%20of%20999?&url=http://sinisterdesign.net/products/telepath-tactics/).

--fixed the width on the portion of the common inventory screen which shows your team

--made the last wave in the Defend the Camp battle spawn one turn later to give the player a little more breathing room

--fixed a bug in which you could undo after going to the space where you rescue Meridian
Title: Re: Developer's Log
Post by: CraigStern on February 08, 2015, 08:39:26 AM
--updated the objectives in the battle with Gunther Lathe to be more accurate.

--added a thief that shows up during the Mines Entrance battle with Leon Hart.

--rearranged some things in the Mines Entrance battle so that a solo assassin could conceivably slip in and get to the chest.

--replaced a bad tile in the first Coria Dogs fight
Title: Re: Developer's Log
Post by: CraigStern on February 08, 2015, 09:33:46 AM
--fixed an annoying bug where assassins would remain deselected after using Leap

--added a bit of extra scripting to the ground level Coria Dogs battle, toughened up a few enemies to make it more challenging
Title: Re: Developer's Log
Post by: CraigStern on February 08, 2015, 08:51:37 PM
--made Powder Bolt depend upon Crossbow

--tweaked the level at which Coria Dogs Thugs learn Mega Stab, for balance

--fixed two inventory bugs, including the major one that was periodically scrambling what items the character was equipped with (and even sometimes rendering the game completely unplayable) when players dropped character-held items in the common inventory during the deployment phase of battles! This took me several hours to hunt down and fix, but it had been plaguing me for weeks, so I'm super glad to have finally killed it. :D
Title: Re: Developer's Log
Post by: CraigStern on February 08, 2015, 10:19:37 PM
--Lord Dakarai now starts with 12 strength instead of 11; he now learns Spin Saw 2 at level 6 instead of level 7; he learns Engine Boost at level 9 instead of level 10; and he now learns Self Repair at level 12.

--cleaned up some of the scripting in the battle with Umber Gnawbone.
Title: Re: Developer's Log
Post by: CraigStern on February 09, 2015, 02:33:15 PM
--added Naila to Farasat and Gavrielle's endings

--added some code to efficiently dispose of bitmapdata from commonly appearing UI elements and free up memory as one plays
Title: Re: Developer's Log
Post by: CraigStern on February 10, 2015, 09:29:27 AM
--worked some more on clearing UI graphics from memory to improve performance.

--changed the space info box from something you need to hold down Alt to see to an element that persists onscreen and can be toggled on/off by tapping Alt.
Title: Re: Developer's Log
Post by: CraigStern on February 10, 2015, 10:54:22 PM
--I've received the last of the promoted unit animations; the Machinist and Whisper are now fully animated!
Title: Re: Developer's Log
Post by: CraigStern on February 11, 2015, 12:36:40 PM
--added tutorial text encouraging players to tap Alt and use the space inspector to determine elevation and other space properties.

--the space info box no longer shows the properties of spaces concealed by fog of war.

--the space info box is now configurable from the settings menu.
Title: Re: Developer's Log
Post by: CraigStern on February 12, 2015, 08:55:18 AM
--fixed a bug in which a character that falls down a wall and bounces off another character at the bottom could land on a space of much, much higher elevation than the one it bounced off of (sometimes resulting in the character ending up on the same elevation it had just been pushed off of)

--all of the spriggat breath attacks now have complete effect animations. This was the last of the art I was waiting for; there is no more art left to add! :D
Title: Re: Developer's Log
Post by: CraigStern on February 12, 2015, 05:57:11 PM
--created Grapple Pull sound effects, added them to the game, synced up to the Grapple Pull attack
Title: Re: Developer's Log
Post by: CraigStern on February 14, 2015, 05:44:04 PM
--added a bit of extra dialog to the Umber Gnawbone battle in which he explicitly comments on the assassins that are going to start spawning on the stairs.

--added a little bit of extra scripting in which Umber Gnawbone ceases to be in passive AI mode after he first attacks. However, I've also removed the Focus Pills from his inventory so he only gets two Light Bomb shots before he has to rest.

--fixed an inventory duplication bug in which characters that drop items into the common inventory would still retain a copy of the item.
Title: Re: Developer's Log
Post by: CraigStern on February 15, 2015, 01:35:10 PM
--changed the contents of one of the chests in the final battle to something more useful in the context of that fight.

--changed the spawn location of Annel Stormhunter and his pursuers in the battle with Ebon Raban.

--added Eye Drops and Caffeine Pills to Sarn Kamina's merchant screen selection.
Title: Re: Developer's Log
Post by: CraigStern on February 15, 2015, 05:27:16 PM
--fixed a bug in which, under very particular circumstances, the game would just continue creating hundreds and hundreds of logs every few seconds until the player quits.

--fixed a bug in which the AI would sometimes decide that Cavaliers could charge through spaces that they most definitely cannot charge through. (Among other things, the algorithm that checks to see if a charge path is clear now treats barricades and walls with windows as walls, as it ought to.)
Title: Re: Developer's Log
Post by: CraigStern on February 15, 2015, 06:44:50 PM
--made victory by killing all enemies in the Rescuing Meridian battle dramatically more difficult

--if you do somehow manage to take down Gulch in that battle, the game will now treat you as having rescued Meridian afterwards ;)

--added some dialog if you try to go to the third floor in the bandit's fortress explaining why you can't go up there
Title: Re: Developer's Log
Post by: CraigStern on February 17, 2015, 08:07:11 AM
--posted about the game's release date

--took care of a bunch of business stuff (got organized as an LLC, obtained a federal tax ID number for the business, began the process of getting a business checking account)
Title: Re: Developer's Log
Post by: CraigStern on February 17, 2015, 02:23:21 PM
--fixed an oversight in the game's AI code wherein the IgnoreArmy tag would cause an AI character to ignore members of an army, but still target objects belonging to them (as denoted with an army number 100 above the number of the army to ignore) as enemies.

Spoiler
(Right now, this most prominently manifests in Annel Stormhunter attacking the player's tent in the battle with Ebon Raban.)

--fixed a few triggered scripts in the battle with Ebon Raban showing dialog when they shouldn't.
Title: Re: Developer's Log
Post by: CraigStern on February 17, 2015, 09:11:01 PM
--Pilfer now allows the user to move afterwards

--fixed a bug in which Edwin Gabbergast would not appear in the reserve supply menu in the battle after he's recruited

--fixed a bug in which an item sack that spawns on a space already occupied by a character would cause the game to disregard that character for purposes of other characters' movement
Title: Re: Developer's Log
Post by: CraigStern on February 18, 2015, 11:19:14 AM
--new item: Fur-Lined Cloak. Gives the wearer 15% cold resistance.

--made it so cloaks are equipped to the back rather than the torso (so they can be worn concurrently with armor)

--fixed a bug in which items that ostensibly altered a character's counter limit would do no such thing

--I believe I fixed a bug in which the game would not properly save all of a character's tags between battles; I'll have to test it later, though
Title: Re: Developer's Log
Post by: CraigStern on February 18, 2015, 03:20:19 PM
--tweaked how the AI deals with the IgnoreArmy tag so that armies set to ignore the player will also ignore objects (bridges, barricades, etc.) created by the player.

--confirmed: I finally fixed that stupid tag-saving bug! I hadn't noticed it earlier because the bug only affects tags with more than 1 parameter, and I haven't used many of those in the main campaign. (In the campaign, the bug manifests with assassin characters who had lockpicks left equipped from a previous battle; these characters would not get the normal 50 damage against chests from using Pilfer until they unequipped and then re-equipped the lockpicks. That's fixed now!)

--fixed a mistyped variable in the game's "clearPathCheck()" routine, one which I suspect was causing the game to freeze under certain circumstances (in particular when enemy cavaliers used the Charge attack).
Title: Re: Developer's Log
Post by: CraigStern on February 18, 2015, 04:25:39 PM
--fixed a bug in which characters were no longer getting experience for using Create abilities

--fixed a bug in which characters were no longer getting experience for using non-damaging abilities that move other characters around (Shove, Pull, Kinetic Gust, etc.)
Title: Re: Developer's Log
Post by: CraigStern on February 18, 2015, 06:05:56 PM
--fixed a bug in which the experience gain from reading primers would not be applied immediately

--fixed a bug in which characters would no longer level up from striking a battle-winning blow until the next battle
Title: Re: Developer's Log
Post by: CraigStern on February 18, 2015, 09:10:47 PM
--found and fixed an incompatibility in the code with my solution to the tag-saving bug, one that would result in characters (and thus, battles) not loading properly after saving from the previous completed battle. (I'm not 100% sure, but this might invalidate saved games from earlier versions.)

--made it so you can talk to Annel with either Emma or Sabrina, and doing so now gives you control over him for the remainder of the battle
Title: Re: Developer's Log
Post by: CraigStern on February 21, 2015, 09:47:29 PM
--designed "box art" for use in promoting the game

--took care of more business stuff; created a business checking account for the LLC, advanced the Steam sign-up process further
Title: Re: Developer's Log
Post by: CraigStern on February 22, 2015, 12:35:25 PM
--fixed a bug in which the game would not "remember" changes you made to characters' inventories in the reserve supplies screen if those characters were not then used in the subsequent battle.

--the game now remembers any all changes you make to the reserve supply inventory (and individual character inventories) during the deployment phase before a battle starts. Even if you quit during the battle and restart, all the work you did shuffling and arranging items among your team members during the deployment phase will be saved.

--fixed a couple of bugs where the game would try to alter the stats of a character not currently on the battlefield if you had someone drop an equipped item during deployment.
Title: Re: Developer's Log
Post by: CraigStern on February 22, 2015, 08:33:33 PM
--started working on functionality for a PAX demo version of the game. First on the agenda was support for email registration, since there is se;dom any internet to speak of at these conventions. To this end, the game now allows you to type in your email, which is then saved locally so I can use it later to send out emails to everyone who tried the game. :)
Title: Re: Developer's Log
Post by: CraigStern on February 22, 2015, 08:46:22 PM
--added documentation of the OnLoaded dialog trigger type to the manual.
Title: Re: Developer's Log
Post by: CraigStern on February 24, 2015, 10:09:32 AM
--I believe I fixed a bug where an item sack lying in the water would prevent a bridge tile from being built on that space; I have to test this, though
Title: Re: Developer's Log
Post by: CraigStern on February 24, 2015, 02:16:23 PM
--tweaked some of the strength values for late-game weapons.

--added weapon strength to the description for all weapons.
Title: Re: Developer's Log
Post by: CraigStern on February 24, 2015, 10:26:45 PM
--fixed a bug that would sometimes occur when grabbing an item sack off of a bridge
Title: Re: Developer's Log
Post by: CraigStern on February 26, 2015, 09:43:33 PM
--I've been writing Telepath Tactics campaign creation tutorials in anticipation of the game (and map editor) becoming widely available for everyone to use! So far I've posted parts 1 through 5, with more to follow:
     Part 1 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-1/)
     Part 2 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-2/)
     Part 3 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-3/)
     Part 4 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-4/)
     Part 5 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-5/)

--fixed a couple of annoying bugs that remained in the map editor. Redownloading and replacing the install is advised!
Title: Re: Developer's Log
Post by: CraigStern on February 27, 2015, 11:48:02 AM
--new tutorial part completed!

     Part 6 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-6/)
Title: Re: Developer's Log
Post by: CraigStern on February 28, 2015, 02:33:42 PM
--the reserve supplies screen now supports multiple pages of items, in case you somehow manage to amass more than 168 unused items in your reserves
Title: Re: Developer's Log
Post by: CraigStern on March 02, 2015, 10:05:52 AM
--I wrote up and posted the last of the Telepath Tactics monthly updates (http://sinisterdesign.net/telepath-tactics-february-2015-update/).
Title: Re: Developer's Log
Post by: CraigStern on March 10, 2015, 08:26:49 AM
--back from PAX East! I gave out more than 1,000 business cards, got dozens and dozens of people to play the game, made new fans, talked to the press, and talked myself hoarse interacting with hundreds of people. The reaction was really positive, and will hopefully build some decent buzz / anticipation in advance of the game's release. I feel like this was a good use of my time.

Also, just for fun, here's a picture of me getting snare trapped by Courtney Jacobson, cosplaying as Sabrina Strider. :D
Title: Re: Developer's Log
Post by: CraigStern on March 10, 2015, 09:48:45 AM
--added documentation of the BNAME[] special character, NamedBranch reply type, and name dialog attribute to the manual.
Title: Re: Developer's Log
Post by: CraigStern on March 10, 2015, 11:45:39 AM
--added some extra tutorial text to the caravan battle assuring the player that talking to other characters is a good idea. (I saw way too many players at PAX East forego the opportunity to recruit Scarlet and Lakshmi.)

--added the ability to edit the name attribute for a dialog branch to the map editor.
Title: Re: Developer's Log
Post by: CraigStern on March 10, 2015, 09:04:51 PM
--fixed still more inventory bugs. I really think I (maybe, hopefully) finally killed them all this time. *crosses fingers*

--fixed an ugly graphical artifact in the male spearman's upward-facing Defensive Stance animation.

--added Recruit Mentalist and Recruit Assassin to the Bases for Generals multiplayer ruleset.
Title: Re: Developer's Log
Post by: CraigStern on March 10, 2015, 09:59:48 PM
--altered the dimensions of the dialog editing window to better accommodate the use of NamedBranch replies.
Title: Re: Developer's Log
Post by: CraigStern on March 11, 2015, 10:51:47 AM
--did a bunch of boring paperwork itemizing my expenses from attending PAX East so I can cite them as business expenses on next year's taxes.

--compiled a spreadsheet of more than 2,000 fan emails in preparation for emailing everyone when the game is out.

--coded a new script action: ForgetAttacks. It takes one parameter: character name. This causes the named character to permanently lose all natural (i.e. not directly granted by an item) attacks that he or she has. I just have to test it out later and make sure it's working properly.

--split up the supplies screen in late-game merchant dialog to keep everything onscreen.
Title: Re: Developer's Log
Post by: CraigStern on March 11, 2015, 03:20:59 PM
--experimenting with a new dialog trigger, OnCharLevel. The game will only check for this one when a character levels up. Two parameters: Character Name and Level. If you want this to trigger for any character, use -ANY- for the character name parameter; and if you want it to trigger at any level, use -1 for the level parameter.

In theory, this should provide a much cleaner way to implement alternative leveling schemes within the game than OnStat can provide.
Title: Re: Developer's Log
Post by: CraigStern on March 11, 2015, 07:49:30 PM
--fixed a bug in the dialog editor (specifically, a bug in which it would freak out if it loaded a conversation with a script action whose parameters were null).

--you can now swap the positions of script actions in the dialog editor! For the longest time, it super annoyed me that you couldn't do this, but now you can. :)
Title: Re: Developer's Log
Post by: CraigStern on March 13, 2015, 07:55:03 AM
--save slots are now in-game! I have some bugs in the save/load system to work out before I can really call them fully implemented, but things are looking good. Soon, you'll be able to have multiple campaigns in progress at a time! ;)
Title: Re: Developer's Log
Post by: CraigStern on March 13, 2015, 12:30:02 PM
--finished part 8 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-8/) of the tutorial for making a Telepath Tactics campaign. :)
Title: Re: Developer's Log
Post by: CraigStern on March 13, 2015, 08:20:16 PM
--aaaaaaand saving and loading slots are now 100% working! :D

--fixed a bug that was causing narrative cut scenes to display 40 pixels too low onscreen, which in turn caused the bottom 40 pixels of backgrounds and character portraits to be cut off.
Title: Re: Developer's Log
Post by: CraigStern on March 14, 2015, 03:51:31 PM
--fixed a bug that was causing the game to not refer to the correct save slot when reloading saved character attributes between scenes.

--fixed a bug in which the save menu kept forever updating the "Begun" time on your saved games to the time last saved rather than leaving them as the time you actually began the playthrough.

--fixed a bug in which the game would replace your character roster with a different roster if you started a new campaign in one save slot, then went and reloaded a campaign in another save slot.

--went through the Guard Llama sprite sheets and improved the down-facing face for the llama. He looks way less terri-bad now. :)
Title: Re: Developer's Log
Post by: CraigStern on March 14, 2015, 04:01:42 PM
--fixed an exploit in which characters could just endlessly gain experience while using abilities in exploration mode
Title: Re: Developer's Log
Post by: CraigStern on March 15, 2015, 09:54:54 AM
--gave the OnAttackSelect trigger two additional, optional parameters: character name and attack name.
Title: Re: Developer's Log
Post by: CraigStern on March 15, 2015, 10:10:01 AM
--finished part 9 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-9/) of the tutorial for making a Telepath Tactics campaign.
Title: Re: Developer's Log
Post by: CraigStern on March 15, 2015, 09:29:43 PM
--fixed a bug in which the final battle would not load due to certain enemies trying to learn an attack (Regenerate) that was removed from the game.

--fixed a bug in which running the DamageCharAt action on a space where no character exists would freeze the game (which, in turn, made the second battle to escape the bandit fortress unplayable)

--fixed a typo in which merchants would refer to the steel lance as a steel spear.
Title: Re: Developer's Log
Post by: CraigStern on March 16, 2015, 05:46:42 AM
--fixed a bug in which multiplayer matches would start both players with no army after a fresh install, effectively freezing the game

--fixed a bug in which the game would refuse to show the new campaign menu after the player went through the tutorial
Title: Re: Developer's Log
Post by: CraigStern on March 17, 2015, 11:18:02 AM
--added documentation of the IgnoreArmy tag to the manual.

--finished part 10 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-10/) of the tutorial for making a Telepath Tactics campaign.
Title: Re: Developer's Log
Post by: CraigStern on March 17, 2015, 06:04:24 PM
--created subforums for user-created campaigns (http://sinisterdesign.net/forum/index.php?board=38.0) and user-created multiplayer maps (http://sinisterdesign.net/forum/index.php?board=39.0). These will be the official home for user-created content until such time as I can conjure up something better! :)
Title: Re: Developer's Log
Post by: CraigStern on March 18, 2015, 10:16:52 AM
--made some final arrangements with Ryan Richko re: the release of the game's original soundtrack, discussed the possibility of him putting together a remix album with other artists
Title: Re: Developer's Log
Post by: CraigStern on March 19, 2015, 05:55:33 AM
--got the tax thing with Steam resolved

--created all of the content (art, text descriptions, etc.) needed for my Steam storefront

--fixed a bug that could sometimes occur when detonating explosive charges on top of a bridge using an explosive attack that simultaneously destroyed the bridge tile beneath the charges.
Title: Re: Developer's Log
Post by: CraigStern on March 23, 2015, 02:42:03 PM
--finished part 11 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-11/) of the tutorial for making a Telepath Tactics campaign.

--the game now has 99 saved game slots for you to use!

--fixed a bug in which promoted characters would relearn attacks they already knew upon reaching the levels they learned them at prior to promotion! (As a consequence of fixing this bug, characters can now learn new attacks after promoting; just set the level at which they learn the attack to the amount of their Promoted tag plus their level. For instance: a character who promotes at level 20 and learns a new attack at level 2 of their promoted class should be set to learn the new attack at level 21 in <OnLevelUp>.)

--fixed a bug in which the game would end a character's turn after they leveled up from using a battle primer.
Title: Re: Developer's Log
Post by: CraigStern on March 24, 2015, 01:01:32 PM
--fixed a quirk of the engine that made armies added with the New Army condition get added to the battlefield in reverse order.

--fixed a bug that would cause characters to keep on triggering the promotion scripts a second or third time after reaching level 20.

--made it so the OnCharLevel trigger takes the value of Promoted tags into account.
Title: Re: Developer's Log
Post by: CraigStern on March 24, 2015, 02:27:37 PM
--finished part 12 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-12/) of the tutorial for making a Telepath Tactics campaign.
Title: Re: Developer's Log
Post by: CraigStern on March 25, 2015, 02:51:05 PM
--in multiplayer rulesets, all CharClasses.xml classes that players can select from when building their armies must now be tagged Selectable (no parameters). This gives you more flexibility to add character types that would be unbalanced if selectable in the army-building screen, but which would nonetheless be cool to have in multiplayer maps in one capacity or another. ;)
Title: Re: Developer's Log
Post by: CraigStern on March 25, 2015, 09:07:06 PM
--fixed a bug that was preventing the ForgetAttacks script action from working

--changed the formatting on the army composition screen in multiplayer so it accommodates longer class names without extending past the bottom of the window
Title: Re: Developer's Log
Post by: CraigStern on March 27, 2015, 09:38:01 AM
--finished part 13 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-13/) of the tutorial for making a Telepath Tactics campaign.
Title: Re: Developer's Log
Post by: CraigStern on March 29, 2015, 04:32:43 PM
--fixed a bug in which he game would sometimes get stuck in an infinite loop and freeze without creating a log if you left characters two spaces offshore over water near an enemy with Charge.

--fixed a bug in which the game would sometimes drop item sacks on the wrong space if the character dropping the sack was on a bridge.
Title: Re: Developer's Log
Post by: CraigStern on March 30, 2015, 02:08:49 PM
--finished part 14 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-14/) of the tutorial for making a Telepath Tactics campaign! :3

--added documentation of the Selectable character tag to the manual.
Title: Re: Developer's Log
Post by: CraigStern on March 31, 2015, 12:47:22 PM
--changed the delimiter for first and last name when changing the Name stat with SetStat to a colon from a forward slash.

--added Y Coord and X Coord to the manual as documented stats useable with SetStat and IfStatGoTo / IfStatRun.

--finished part 15 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-15/) of the tutorial for making a Telepath Tactics campaign.
Title: Re: Developer's Log
Post by: CraigStern on April 01, 2015, 08:54:07 AM
--new monthly update up (http://sinisterdesign.net/telepath-tactics-march-2015-update/)! ;)
Title: Re: Developer's Log
Post by: CraigStern on April 03, 2015, 12:52:20 PM
--so, I understand that inventory bugs remain in Telepath Tactics, but I'm at a total loss as to what could still be causing them. There's a kind of a hacky fix I added in to prevent the game from trying to equip items that no longer exist; this causes characters' items to sometimes come unequipped, but it beats making the entire game unplayable. I just now added a second hacky fix where, if the game detects itself trying to equip an item that no longer exists, it'll try to equip the item in the slot below it instead. (In every instance I've seen of this happening, it's trying to equip an item from one slot above the last slot in the character's inventory.) Hopefully this will make the unequipping phenomenon less frequent / annoying while I work to track down the source of the bug.
Title: Re: Developer's Log
Post by: CraigStern on April 05, 2015, 03:41:52 PM
--fixed a bug in which characters who reach or exceed 100 experience points would not level up after attack- or death-triggered dialogue.

--fixed a bug in which the game would sometimes check for the team number of a character that had already been destroyed, causing the game to freeze.

--fixed a particularly gruesome bug which would cause the game forget what items characters had equipped after they grabbed an item sack off the battlefield. (This one took me hours to track down.)

--replaced the gray background of the reserve item screen with a black one; it looks decidedly classier.

--repositioned the dialogue box during a few early scenes to keep talking characters from being covered over.
Title: Re: Developer's Log
Post by: CraigStern on April 09, 2015, 04:10:30 PM
--fixed a bug in which saved games that were saved at times in the single digits would not precede the minute number with a 0 (for e.g., showing (9:5 instead of 9:05).

--fixed a bug in the game's AI that was preventing the CPU from using Charge even when it determined Charge to be the optimal attack to use.

--fixed a bug in which the game could glitch out of a character attempted to push or throw an enemy off the edge of the battlefield.

--fixed multiple bugs that occurred with the game specifically when compiled in newer versions of AIR.

--created a final release trailer!

--created a Windows build of the game that does not require the player to separately install AIR first.
Title: Re: Developer's Log
Post by: CraigStern on April 09, 2015, 08:43:47 PM
--created a Mac build of the game that does not require the player to separately install AIR first.
Title: Re: Developer's Log
Post by: CraigStern on April 14, 2015, 11:23:06 AM
--I've been stuck in a quagmire of trying to make the game play nice with Steam. After days of frustration, however, I think I'm finally close to having it!

--fixed a couple of typos that were causing scripting errors in the Coria Tavern cut scene.

--changed Throw Axe from range 1-2 to range 2. (It's really only ever used at range anyway, and this takes out the damage fall-off factor.)

--put in a new item I wanted to add: Javelins! 6 uses, gives spearmen range +2 on the Spear attack. :)
Title: Re: Developer's Log
Post by: CraigStern on April 15, 2015, 11:51:02 AM
--recreated all of the installers with the new changes, uploaded them all to the proper Sinister Design and GOG FTP servers.

--completed and published the Steam page (http://store.steampowered.com/app/357940) for Telepath Tactics (where you can follow the game and review it once it's released!)

--added a EULA to the Steam release of the game.
Title: Re: Developer's Log
Post by: CraigStern on April 15, 2015, 10:03:28 PM
--ended up having to rebuild the installers for Steam yet again, but this time they work! Currently losing sleep for the third night in a row while the Mac installer transfers via FTP (Mac OS won't let me just put the thing on a USB stick) so that I can then download it and upload it to Steam. (I really hope Steam sales are good, because supporting it has been a truly titanic pain in the butt so far.)

--updated the manual with a summary of the game's setting.
Title: Re: Developer's Log
Post by: CraigStern on April 16, 2015, 07:57:54 AM
--sigh. The Mac build on Steam still doesn't work. Mac OSX now thinks that the game is built for PowerPC (which it totally isn't) after a Steam install. I'm going to call uncle temporarily and make the Steam release Windows-only for now.

--the game's release trailer (https://youtu.be/05WkVa4vT7M) is up! I'll be spamming the internet with it when the game releases in about 2 hours. :)
Title: Re: Developer's Log
Post by: CraigStern on April 19, 2015, 08:49:45 AM
Phew! That was a whirlwind of a launch. :-X

Release post: http://sinisterdesign.net/telepath-tactics-has-been-released/ (http://sinisterdesign.net/telepath-tactics-has-been-released/)
Steam page: http://store.steampowered.com/app/357940 (http://store.steampowered.com/app/357940)
GOG page: http://www.gog.com/game/telepath_tactics (http://www.gog.com/game/telepath_tactics)

I've been answering a ton of backer and press emails over the past couple of days, but it's time to start hunkering down and fixing bugs! So far I've gotten to the following:

--fixed a show-stopper bug on Linux due to inconsistent capitalization (turns out Linux is very sensitive to that sort of thing)
--fixed a bug in which barudit in multiplayer all had "null" for names

More to come!
Title: Re: Developer's Log
Post by: CraigStern on April 20, 2015, 05:54:16 AM
--fixed incorrect Objectives description during the apple-gathering battle
--fixed incorrect coloration of Silithis's portrait during her visit to Adelbrae
--fixed a bug in which the game could sometimes freeze when a character moved over and triggered a trap, if that character happened to appear on the battlefield after the trap did
Title: Re: Developer's Log
Post by: CraigStern on April 20, 2015, 08:39:44 AM
--figured out the cause of the problems being produced by the "Who can use this?" button in the merchant screens; fixed it!
Title: Re: Developer's Log
Post by: CraigStern on April 20, 2015, 11:17:30 AM
--added an additional visit to the merchant in Coria, right after the battle with Umber Gnawbone.
--added a confirmation box to notify the player when he/she's about to overwrite an existing save file.
--hopefully (fingers crossed!) fixed the issue that was causing some Steam users to experience an install error that required separately updating their Adobe AIR installation.
Title: Re: Developer's Log
Post by: CraigStern on April 21, 2015, 10:43:32 AM
--pushed version 1.01 with the changes above!

Continuing on with fixes and changes for the next update...

--fixed a bug that prevented you from recruiting Meridian if you somehow managed to kill every enemy during her rescue mission. You now auto-recruit her if you kill every enemy.
--I noticed a couple of conditions that I'd forgotten to document in the manual: Defeat Scene and Victory Scene. Added them. Also added documentation for the WhoCanUse script action.
--new script action: EnemiesLeft. Counts the enemies remaining on the battlefield for a particular army, then automatically sets a custom val named _EnemiesLeft equal to that number. One parameter: army number (the number denoting the army whose enemies the game must count). Optional second parameter: enemy army number (will limit the counting to only characters belonging to that specific enemy army).
--new script actions: EndBattle and LoseBattle. These do the same thing as their associated reply types, but they act instantly, without waiting for the player to click.
Title: Re: Developer's Log
Post by: CraigStern on April 21, 2015, 01:15:30 PM
--crossbowmen can now wear leather armor, chain mail, and iron helms.
--arbalists can now wear those things, plus partial plate.
--fixed some outdated information in the manual which stated that the text between <Item> and </Item> in ItemClasses.xml would behave like SetVal. This has not been the case for some time! It has been changed to reflect its new function, which is running scripts whenever the item is used.
--finished Part 16 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-16/) of the tutorial for making a Telepath Tactics campaign, explaining how to mod new items into the game.
Title: Re: Developer's Log
Post by: CraigStern on April 21, 2015, 02:58:35 PM
--increased the size of the text in drop lists somewhat (from font size 11 to 12).
--created untextured versions (http://sinisterdesign.net/forum/index.php?topic=1419.0) of all of the game's UI, for people who find the marbled background difficult to read against.
Title: Re: Developer's Log
Post by: CraigStern on April 22, 2015, 07:44:28 AM
--once they reach 4 counterattacks, characters no longer get more counterattacks from leveling up.
Title: Re: Developer's Log
Post by: CraigStern on April 22, 2015, 01:04:26 PM
--moved existing mod work from around the forums into the Misc. Mods category (http://sinisterdesign.net/forum/index.php?board=40.0).
--put in a failsafe to keep the game from freezing during the computer's turn when the only enemies remaining in the computer's army cannot move due to being frozen or stunned.
--put in a failsafe to keep the game from freezing when the last enemy dies at the start of the computer's turn (as from burning or drowning).
--fixed a bug in which characters killed by the DamageChar and DamageCharAt script actions (such as those caught in the drawbridge during the bandit fortress escape) would not be removed from the battle, and would instead continue wandering around with negative health.
Title: Re: Developer's Log
Post by: CraigStern on April 22, 2015, 09:53:47 PM
--fixed a bug that would sometimes occur when a trap killed a character in the middle of his or her move.
--fixed typos in the Rescuing Meridian battle that unintentionally rendered the battle much easier to beat by killing all enemies than intended. (Which explains why so many people were beating it that way!)
--fixed a bug in which battle primers would not give characters who used them experience points during free exploration mode.
Title: Re: Developer's Log
Post by: CraigStern on April 23, 2015, 07:47:29 AM
--created a How to create a campaign thread (http://sinisterdesign.net/forum/index.php?topic=1434.0) in the Telepath Tactics Campaigns forum with chapter-by-chapter links to the modding tutorials.
--fixed misalignment of certain UI elements in the New Match menu when selecting a Capture the Flag match.
Title: Re: Developer's Log
Post by: CraigStern on April 23, 2015, 09:38:08 AM
--changed the fxLast attribute in items (which was not actually being used in the engine) to itemValue.
--assigned itemValues to all items in the main campaign.
--new script action: GetItemValue. Finds the itemValue of the named item, then sets a custom val named _ItemValue equal to that number. One parameter: item name.
--new special character: -ITEMVAL:X-. Is replaced by the value of a new instance of the named item in dialogue, where X is the name of said item.
Title: Re: Developer's Log
Post by: CraigStern on April 23, 2015, 02:11:53 PM
--you can now open the Save Game menu and manually save your game in a different save slot during deployment at the start of each mission.
--fixed an annoying UI thing where the cursor would remain a hand after mousing onto the common inventory or deployment screens; it now turns into an arrow for more precise clicking.
--changed the after-attack effects of Awareness, Levitate and Hover from Unlimited to Use Once so as to avoid over-exploitation of these abilities for experience points. (All of them are really only useful once per turn anyway.)
Title: Re: Developer's Log
Post by: CraigStern on April 25, 2015, 10:21:13 AM
--fixed a bug in which player-built bridge tiles with characters standing on them would not be removed from the path of the drawbridge before the stone bridge was spawned in the bandit escape mission, leading to bugs in which the AI characters would target the old bridge as if it were still there

--new script action: RemoveObjsAt. Like RemoveCharAt, but it specifically removes every destructible object found at a set of coordinates (including bridges).

--the save file for procedurally generated levels now displays the type of procedurally generated level instead of the crazy string of words, numbers, and symbols that the game uses to generate the level.

Title: Re: Developer's Log
Post by: CraigStern on April 25, 2015, 02:37:41 PM
--fixed a bug in which the player could open up the settings menu during the enemy turn and surrender on the enemy's behalf, then get the Victory screen.

--fixed a bug in which the attacks the game would load for each character were artificially capped at 7.
Title: Re: Developer's Log
Post by: CraigStern on April 25, 2015, 05:51:41 PM
--you can now right-click character portraits during deployment and on the common inventory screen to bring up character details! This was a surprisingly difficult thing to code, since the game usually pulls all of this info out of characters only after they've spawned on the battlefield, but enough of you asked for it that i decided to spend my Saturday programming it in. :)
Title: Re: Developer's Log
Post by: CraigStern on April 25, 2015, 07:41:07 PM
--fixed a bug in which the actions window would sometimes spawn offscreen if you started a battle while in windowed mode.

--fixed a bug in which the Map to the Mines remained in Emma's inventory even after it should have been gone.
Title: Re: Developer's Log
Post by: CraigStern on April 25, 2015, 10:17:57 PM
--changed the contents of the treasure chests in the Defending the Camp battle to things that are more useful and interesting. (Bandages and focus pills? For both of them? What was I thinking?)
Title: Re: Developer's Log
Post by: CraigStern on April 27, 2015, 02:49:20 PM
I started playing around with scripting the foundation for a campaign structured around recruiting generic characters. I had to make a few changes to make things work, however! To wit:

--fixed a bug where the SpawnChar script action would not correctly assign a sex to a character with sex "Either" that had been spawned by class name rather than by character name.

--fixed a bug where the SpawnChar script action would not correctly assign a name to a character with name "random" that had been spawned by class name rather than by character name.

--new script action: SetStringByStat. This sets a string equal to a character's string stat. Three parameters: string name, character name, and string stat name.

--added Name, FirstName and LastName to the list of useable IfStatGoTo string stat name parameters; can be used in combination with the ID tag and SetStringByStat to return a character's full name (using spaces), first name, or last name, respectively.

--you can now use ID tags with the RecruitChar and DismissChar actions--this makes it so you don't have to know the assigned name for a "random" character in advance prior to recruiting them.


I'll be posting the scene I scripted for recruiting characters once the next update goes out. :)
Title: Re: Developer's Log
Post by: CraigStern on April 27, 2015, 07:29:15 PM
--fixed a bug in which Harriet Glaive would give a death monologue and permanently die if killed in casual mode
Title: Re: Developer's Log
Post by: CraigStern on April 28, 2015, 05:18:58 AM
--fixed the bugs preventing characters from promoting upon reaching level 20 as they were supposed to; they involved the game not treating IfTagGoTo as an "else if" action when followed by GoTo, and the game not cycling characters out of an array tracking who was leveling up as it was supposed to.

--reduced the levels of the two crossbowmen who pursue Annel Stormhunter to level 3, making them a bit weaker and easier to respond to when they appear.

--fixed a bug in which the game would freeze when the drawbridge lowered in the second battle escaping the bandit fortress.
Title: Re: Developer's Log
Post by: CraigStern on April 28, 2015, 01:23:27 PM
Version 1.026 pushed (http://sinisterdesign.net/telepath-tactics-v-1-026-patch/)! Going forward:

--fixed: game didn't save the assigned sex of recruited "Either" characters. Now it does.
--fixed: level up data was not transferring over to new scenes with generic, randomly named characters. Now it does.
Title: Re: Developer's Log
Post by: CraigStern on April 28, 2015, 03:08:26 PM
Made some headway on the inventory-swapping bug. I finally managed to reproduce it; on first glance, it seems to happen if you swap out characters in a way that the characters on the battlefield represent a gap in your roster. I'm going to investigate this further and see if I can nail down the cause in the code...
Title: Re: Developer's Log
Post by: CraigStern on April 29, 2015, 02:40:22 PM
Loads of stories/reviews/interviews of Telepath Tactics unexpectedly dropped all at once today from IndieGames.com (http://indiegames.com/2015/04/sinister_design_launches_telep.html), Rock Paper Shotgun (http://www.rockpapershotgun.com/2015/04/29/telepath-tactics-review/), Polygon (http://www.polygon.com/2015/4/29/8514995/telepath-tactics-gameplay-overview-lets-play), and Indie Haven (http://indiehaven.com/telepath-tactics-review/), so today ended up being a marketing-heavy day (sharing the stories on social media stuff, updating links and press clippings, etc). Work on fixing the inventory swapping resumes tomorrow!
Title: Re: Developer's Log
Post by: CraigStern on April 30, 2015, 01:03:14 PM
--fixed bug in which characters would get to keep acting after leveling up from what should have been a turn-ending attack.
--recoded the game's handling of animated character health and experience bars; it's now cleaner and more optimized. (I doubt that that was the cause of the slowdown, but hey--every little bit helps!)
Title: Re: Developer's Log
Post by: CraigStern on April 30, 2015, 02:55:02 PM
--split off the intro dialogue to the Meridian rescue battle into its own scene so you don't have to go through it every time you lose the battle.
--fixed a bug that was causing the game to screw up when using the RecruitChar script action during a static cut scene (as in the cut scene right after picking apples).
Title: Re: Developer's Log
Post by: CraigStern on April 30, 2015, 09:29:02 PM
--fixed a bug in which Shadow Blast's range somehow became set to 2 instead of 2-3.
--bumped up the money Gonif Bastid gives you after the caravan battle from 350 to 480, to make things easier for players who've taken losses (or who haven't yet figured out how to conserve supplies).

I also spent an inordinate amount of time today--literally hours on end--trying to reproduce the inventory swapping bug again so I could determine its mechanism, but for some reason I could not get it to happen again. Very frustrating.
Title: Re: Developer's Log
Post by: CraigStern on May 02, 2015, 06:40:34 AM
--fixed a typo that was causing the game to freeze during the drawbridge battle if the player had built bridge tiles where the drawbridge was to appear, when the drawbridge appeared.

--I think I mayyyyyyyyy (fingers crossed really hard) have fixed the inventory swapping bug! We will see shortly.

Uploaded version 1.028! (Note: GOG users will have to wait for GOG staff to manually update the file, probably on Monday.)
Title: Re: Developer's Log
Post by: CraigStern on May 02, 2015, 01:48:53 PM
--annoyed by the reuse of images for the iron and steel versions of most melee weapons, I've pixeled new sword, lance, spear, and axe variants to be used for the steel versions of these weapons.
Title: Re: Developer's Log
Post by: CraigStern on May 02, 2015, 04:08:26 PM
--the game now allows you to right-click character portraits for detailed info when managing reserve supplies in merchant scenes or during battle (not just during character deployment).
Title: Re: Developer's Log
Post by: CraigStern on May 02, 2015, 04:35:43 PM
--fixed a bug in which the game could freeze at a certain point during the bridge battle if you have characters in the water, taking drowning damage right after the conversation where the enemy engineer lays explosive charges onto the bridge ends.
Title: Re: Developer's Log
Post by: CraigStern on May 03, 2015, 08:46:48 AM
--fixed a bug where visual attack effects would show up below enemies when the attacker is facing down.

--began work on a free demo version of the main campaign to release next week.
Title: Re: Developer's Log
Post by: CraigStern on May 04, 2015, 02:01:33 PM
--finished Part 17 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-17/) of the tutorial series on creating your own campaigns

--new condition: Attack Bridges. Can be true or false (true by default). Tells the AI whether to treat player-built bridges as an attack target.

--set Attack bridges to false in the battle escaping the bandit fortress.

--added monologues to Gulch and Fera if you take them out during the battle escaping the bandit fortress.

--added score bonuses to the game for prematurely eliminating Gulch and Fera during battles they're supposed to be all but untouchable in. ;)

--the game now creates a human-readable document with a .TTsav file extension whenever it saves the game, then saves that document in Documents > My Games > Telepath Tactics > Saved Games. The document contains all of the same data that goes into the actual saved game file. For now, this is going to help me fix bugs--but eventually, I'd like for these to entirely replace the .sol files that the game currently uses for its saved game files.
Title: Re: Developer's Log
Post by: CraigStern on May 05, 2015, 11:00:52 AM
--got the demo working! Windows version is built; I'll be building the Mac version later this evening.

--switched the order of the two cut scenes following the battle at Adelbrae; I think the story flows more naturally that way.
Title: Re: Developer's Log
Post by: CraigStern on May 06, 2015, 09:58:21 AM
--fixed a bug in which characters whose strength, psy power or psy defense went into the negatives would have those stats wrap around to some absurdly high number.
Title: Re: Developer's Log
Post by: CraigStern on May 06, 2015, 11:38:22 AM
--applied missing lighting to lit braziers, candelabras, and lamps in multiplayer.

--created a new 6-player map: Ring Fortress. Haven't tried it yet, but I think this one will be more fun than the others were. ;)

(http://www.sinisterdesign.net/Screenshots/Ring%20Fortress.png)
Title: Re: Developer's Log
Post by: CraigStern on May 06, 2015, 12:09:28 PM
--just put in an algorithm to make the AI take into account the damage a character will take from killing an enemy with a suicide attack (such as explosive charges placed by the player).
Title: Re: Developer's Log
Post by: CraigStern on May 06, 2015, 01:26:56 PM
--the game now gives you visual feedback that item sacks are getting looted at the end of battles that have Post-Battle Looting enabled.
Title: Re: Developer's Log
Post by: CraigStern on May 06, 2015, 03:31:13 PM
--fixed erroneous placement of player info boxes in the New Match menu when playing maps meant for more than 4 players.

--fixed a sorting issue on the View Army menu that placed the "Remove Unit" text above the Add Character drop-down.

--fixed a bug that was causing the game to lock up when capturing the flag in a free-for-all Capture the Flag match.
Title: Re: Developer's Log
Post by: CraigStern on May 07, 2015, 08:18:27 AM
--fixed bug: the decoy was not appearing on the battlefield when using Harynx's Decoy ability.

--removed exploit: characters can no longer unequip speed-boosting items after they have moved. (If you undo the character's move back to where they have taken 0 steps, you'll be allowed to unequip the item.) In addition to plugging an exploit, this also sidesteps some bugs that performing this action was causing.

--fixed a bug where the game would freeze if you tried to move characters whose speed had dropped below 0.

--put in some extra code to automatically stop sound effect loops playing in the background when a local multiplayer match ends.

--added some appropriate sound effect loops to certain maps that were missing them.

--tightened up a bit of the dialogue before the Coria Pass battle.

--renamed Ring Fortress to Sunken Fortress (it sounds cooler and does a better job evoking the context of the map, I think).
Title: Re: Developer's Log
Post by: CraigStern on May 07, 2015, 01:11:33 PM
--fixed a bug where the game would sometimes try to degrade a weapon that wasn't actually equipped and freeze.

--made it so "Instant" walk speed is now actually instantaneous; the character just immediately blips to its ultimate destination when it goes to move. :)
Title: Re: Developer's Log
Post by: CraigStern on May 07, 2015, 05:52:13 PM
--put a 7-turn time limit on the battle at Adelbrae so you can't exploit it endlessly for experience (or spend absurd amounts of time trying to loot every chest). Updated the objectives text on that map to more accurately reflect its win conditions.

--loaded up more of the enemies in the outdoor bandit fortress escape battle with coins so the player will be in a better position to reequip when Gonif Bastid shows up two battles later.
Title: Re: Developer's Log
Post by: CraigStern on May 07, 2015, 09:15:00 PM
--fixed bugs wherein dropping a character's item in the reserve supplies screen could cause other items belonging to that character to spontaneously come unequipped, or even momentarily disappear from the character's inventory.

--just spent hours scrutinizing and cleaning up inventory code. As of right now, I can no longer reproduce the inventory swapping bug using the steps reported here (http://sinisterdesign.net/forum/index.php?topic=1451.msg48172#msg48172) or here (http://sinisterdesign.net/forum/index.php?topic=1451.msg48212#msg48212), which makes me think I mayyybe fixed it. But I'm not convinced--this bug has proven remarkably resilient. I've thought I fixed it like half a dozen times now, only for it to pop up elsewhere. Still, I'm going to push a new build tomorrow and cross my fingers that it's actually gone this time.
Title: Re: Developer's Log
Post by: CraigStern on May 08, 2015, 09:21:29 AM
--added a sound effect to the game so it's really apparent when a character's weapon breaks.
Title: Re: Developer's Log
Post by: CraigStern on May 08, 2015, 06:08:36 PM
Version 1.029 is locked in and uploading. :)

Going forward:

--updated the scripting in the pick-pocketing scene so the map is removed from the common inventory if you dropped it there.
Title: Re: Developer's Log
Post by: CraigStern on May 11, 2015, 07:29:56 AM
Phew. I think I might've been pushing myself too hard over the past couple of weeks! I seem to have gotten sick. I'm going to dial back the pace a bit as I continue working to improve the game.

--created a Telepath Tactics demo for Power of Play (http://powerofplay.us/indie-expo/), which I will be attending this weekend as a selection.
Title: Re: Developer's Log
Post by: CraigStern on May 11, 2015, 08:21:13 AM
--fixed a bug in which characters who take fatal damage from being shoved into a trap would remain on the battlefield with 0 (or negative) health.

--added a Defeat Army condition to the battle with Gunther Lathe, the battle in The Teeth, and the battle with Leon Hart so the battle will end upon defeating the main enemy army even if you beat the thieves to the chests and left them alive to wander the battlefield.
Title: Re: Developer's Log
Post by: CraigStern on May 11, 2015, 10:23:37 AM
--fixed a bug in the save game code where dead characters weren't getting clipped out of the current character roster until after the roster had already been saved.

--cleaned up the roster-saving code to ensure that it wasn't getting inappropriately entangled with the army roster array used in the main game (which could have resulted in character deaths getting saved--or recruitments getting saved--even if the player restarted the battle before completing it). I suspect that one or both of these may have been responsible for the issues with characters getting duplicated or removed from the player's army roster inappropriately.
Title: Re: Developer's Log
Post by: CraigStern on May 11, 2015, 11:30:55 AM
--there's now a grab bar that lets you drag the deployment window around. This lets you move it out of your way on those rare occasions where your army spawns at the top of the map.
Title: Re: Developer's Log
Post by: CraigStern on May 11, 2015, 02:21:22 PM
--fixed a bug where, if the player selected a campaign other than The Vengeance of Emma Strider, then loaded a save slot featuring a different campaign, then quit and returned to the Campaign menu and hit the New Campaign button, the game would start the campaign they'd most recently loaded instead of the campaign that remained selected on the drop-down menu.
Title: Re: Developer's Log
Post by: CraigStern on May 11, 2015, 07:54:50 PM
--fixed a bug where the game would freeze if the last enemy on the map to die, died from burning.

--fixed a bug where you could undo scripted character movement in cut scenes by pressing Z afterwards.
Title: Re: Developer's Log
Post by: CraigStern on May 12, 2015, 04:19:39 AM
--added an extra check to the function that adds characters to army rosters to prevent the adding of duplicates
Title: Re: Developer's Log
Post by: CraigStern on May 12, 2015, 05:37:16 AM
--addressed exploit where the player could use the same "Unlimited" ability over and over in the same turn to grind experience. Abilities now only grant experience no more than once per turn, no matter how often they are used.
Title: Re: Developer's Log
Post by: CraigStern on May 12, 2015, 12:38:51 PM
--added what used to be the Instant walk speed (i.e. skipping super-fast between spaces without doing the walk animation) back into the game as a fourth character movement speed option, "Turbo." Instant remains as it is now: instantaneous.

--suspecting that lingering bitmap data loaders might be the culprit behind slowdown on larger battles, I put in some code to systematically clear them out of memory the second character sprite sheets load. Testing it out, I noticed an immediate, palpable boost in the game's speed. I think this might have been the cause of our slowdown--I'm going to test it out some more this evening, and if it turns out that this fixed the slowdown, I'll be pushing the version 1.03 update ASAP. :)
Title: Re: Developer's Log
Post by: CraigStern on May 12, 2015, 02:08:15 PM
Tried my hand at some code to make the game camera zoom in during attacks! Unfortunately, as with pretty much all of my attempts at improving the game's camera code, it failed spectacularly. Best to leave well enough alone, I guess.
Title: Re: Developer's Log
Post by: CraigStern on May 12, 2015, 07:21:41 PM
--repeated the process of clearing loaders out of memory for the game's bevy of bitmap data attack effect animations.

--fixed a few chasm tiles on the Mines Entrance map that had the incorrect elevation.

--fixed the description of Kinetic Wave.

--fixed a bug where a character could use an item, the player could undo, and the item's benefits would be erased while the item did not get its use back. Using an item now simply prevents the player from undoing back to before the item was used.

--bumped up the base damage on Poison Bolt.

--added a second chance to inflict Stunned status to Charge.

--fixed bug with unequipping items in the reserve supplies screen.
Title: Re: Developer's Log
Post by: CraigStern on May 13, 2015, 09:59:37 AM
Version 1.03 is out (http://sinisterdesign.net/telepath-tactics-v-1-03-patch/)! :D
Title: Re: Developer's Log
Post by: CraigStern on May 13, 2015, 01:33:04 PM
--added flails to late-game stores.

--pulling the lever on the ground-floor Coria Dogs battle now spawns a chest with a special treasure inside. ;)

--expanded the range for psy user buff abilities from 1 to 0-2.
Title: Re: Developer's Log
Post by: CraigStern on May 14, 2015, 10:46:53 AM
--newly spawned reinforcements can no longer attack on the same turn they spawn (though they can still move).
Title: Re: Developer's Log
Post by: CraigStern on May 14, 2015, 12:28:08 PM
Posted an article (http://sinisterdesign.net/6-reasons-to-pay-attention-to-telepath-tactics/) giving press folks extra reasons to pay attention to Telepath Tactics.
Title: Re: Developer's Log
Post by: CraigStern on May 17, 2015, 08:51:19 PM
At long last, I have returned from Seattle! (I was there this weekend showing off the game at Power of Play.) I managed to take care of a few things while I was there:

--you can now increase the size of the font in those little pop-up info boxes that show up when you mouse over characters, objects and interface buttons. Hopefully this should help improve things for folks with crazy-huge monitors!
--info boxes now dynamically resize vertically (they already did that horizontally) to accommodate the larger supported font sizes.
--increased the font size in the detailed character screen from 11 to 12.
--the game now supports a new type of custom variable: arrays! There are three new script actions relating to the creation, pruning, and just general usage of arrays: SetArr, GetArr, and DelArr.

SetArr adds a new entry to an array, or changes the contents of an existing array entry. It has three parameters: array name (a string with the name of the array you want to add a string or a numerical value to), add at position (front, end, or a specific position integer), and the string or value to add. Note that if the named array doesn't already exist, SetArr will create it before adding the new entry.

GetArr retrieves a string or a value from an existing array entry. It has three parameters: array name (a string with the name of the array to get a string or a numerical value from), get from position (front, end, or a specific position integer), and get as ("STR" or "VAL"). If you set the get as parameter, to STR, it'll return the array entry as the custom string _ArrStr; by contrast, if it's VAL, it'll return the array entry as a custom numerical value called _ArrVal.

DelArr deletes an array entry, causing all of the entries after it to collapse forward one position. Two parameters: array name (a string with the name of the array to delete an entry from), and delete from position (front, end, or a specific position integer).
Title: Re: Developer's Log
Post by: CraigStern on May 18, 2015, 11:45:18 AM
More work on inventory swapping:

--I've come to suspect that the cause of the game's remaining inventory and equipment bugs originates from the function that saves updated character inventories upon closing the common inventory menu. Up till now, it's saved character inventories based upon character position within the saved character info array as it existed on first loading up the battle. I've now rewritten it so it specifically assigns changes to the correct character by name rather than array position.

--rewrote the process for gathering item and equipment info from the reserve supplies screen so as to avoid any possible issues with array entanglement or with items / equipment information getting assigned to the wrong character.

--updated character inventory arrangements are now only saved when the common inventory is managed during deployment, not during the battle.
Title: Re: Developer's Log
Post by: CraigStern on May 18, 2015, 03:23:51 PM
I was forced to spend time on boring business stuff today: renewing my trademark with the USPTO and signing up to participate in the Steam summer sale. This means I didn't get to as much as I wanted. Still, I expect I'll push another update soon to see if the changes above resolved the inventory swapping bug.

--added a sound effect for Hover.
Title: Re: Developer's Log
Post by: CraigStern on May 19, 2015, 10:51:44 AM
Lots of new stuff with custom arrays! If you know how to program with arrays, then you should find these features extremely valuable:

--added a new "get as" setting for the GetArr script action: auto. This will make the game attempt to figure out on its own whether the array entry it's grabbing is a string or a numerical value. (If the entry contains letters, hyphens, asterisks, underscores, or spaces, then the game will assume that it is a string. If it doesn't find any of those, the game will then check for numerical characters. If it finds numerals, it'll assume that the entry is a value; if it doesn't, it'll assume that the entry is a string.) In addition, the Get As parameter is now optional; if you don't supply a setting, it'll choose auto by default.

--added a new special character, -ARR:Array Name,Get From,Get As-. If the game finds this special character, it'll replace it with the entry it finds at the "Get From" spot in the named array. (Get As is optional; if you leave it out, it will automatically detect whether the entry is a string or a numerical value.)

--added a new "delete from" setting for the DelArr script action: all. This completely clears the named array of all entries.

--new script action: ShuffleArr. Randomizes the order of a custom array's entries.

--new script action: ForArr. Runs a for loop with regard to a range of entries within a single named array--in each step of the loop, it will automatically run GetArr for the current position in the array, then run a named script. Parameters are (1) array name; (2) start position (front, end, or a specific position integer); (3) end position (front, end, or a specific position integer); (4) increment by (an integer value to increment the current position by at each step of the loop); and (5) script name (the name of the script to run at the end of each step in the loop).



So, in the likely event that you're wondering just how the heck you actually use all of this, here's an example! Suppose that we've used SetArr to populate an array named Sale Items with a selection of the name of every item that could possibly be for sale in a given town. Suppose that the Sale Items array has the following entries:

  Iron Sword
  Steel Sword
  Iron Axe
  Steel Axe
  Iron Bow
  Steel Bow
  Bandages
  Focus Pills
  Whet Stone
  Wine

That's an array with 10 entries spanning positions 0 through 9. (Array positions count up from 0, not from 1.) Now suppose that we have a second array for the particular items that are actually currently on sale in town, called On Sale. We can now draw a random selection of items from Sale Items, put them into On Sale, then use On Sale to populate our merchant dialogue.

To do this, we clear the contents of On Sale, randomize the order of the items in Sale Items using ShuffleArr, and then use ForArr to select the top 5 entries (that is, entries at positions 0 to 4) of our newly shuffled Sale Items array:

Code: [Select]
DelArr   On Sale,all
ShuffleArr   Sale Items
ForArr   Sale Items,0,4,1,Get Sale Item

The Get Sale Item script, in turn, is what we use to actually set the entries in On Sale. At each step of the loop, it'll add the the name of the current item to the end of On Sale:

Code: [Select]
<Script>Get Sale Item
   <Action>SetArr/On Sale,end,-STR:_ArrStr-</Action>
</Script>

With that process completed, we can then use -ARR:On Sale,0- , -ARR:On Sale,1- , -ARR:On Sale,2- , and so on to supply item names in our merchant dialogue, and use -ITEMVAL:- (http://sinisterdesign.net/forum/index.php?topic=1224.msg47846#msg47846) to supply the cost of each.
Title: Re: Developer's Log
Post by: CraigStern on May 19, 2015, 02:30:13 PM
--you can now right-click the portraits of characters who've been recruited but haven't appeared on the battlefield yet (like Meridian right after you rescue her) during deployment / in the common inventory.
Title: Re: Developer's Log
Post by: CraigStern on May 20, 2015, 09:04:37 AM
Currently testing out the new array functions to ensure that everything is hunky-dory. In the meantime...

--added a new legendary weapon to the game: the bow Lyrio. Strength 11, Accuracy +100, gives Range +1 to all ranged attacks.
Title: Re: Developer's Log
Post by: CraigStern on May 20, 2015, 12:16:06 PM
--changed ITEMVAL format from -ITEMVAL:X- to ITEMVAL[X] to make it easier to nest the -STR:- and -ARR:- special characters inside it.

--fixed a bug where ForArr would malfunction whenever one used a negative integer for the increment by parameter.

--created a store with randomized items in it in the Recruitable Chars test campaign using the scripting techniques I discussed yesterday. :)
Title: Re: Developer's Log
Post by: CraigStern on May 20, 2015, 02:52:09 PM
--fixed some more edge cases where it could end up glitching out the game if an enemy was killed by wandering into a trap.

--fixed a bug in which Louise could show up in the ending even if she died or left the group earlier on.

--fixed the scripting in the chat immediately preceding the caravan battle so characters who may have died at Adelbrae don't talk.
Title: Re: Developer's Log
Post by: CraigStern on May 21, 2015, 08:10:55 AM
Updated the game to version 1.031 (http://sinisterdesign.net/telepath-tactics-v-1-031-patch/).
Title: Re: Developer's Log
Post by: CraigStern on May 21, 2015, 10:42:26 AM
--new script action: GetCharsDist. Finds the distance in spaces between two named characters, sets the custom value _Dist to that number. Two parameters: the name of the first character, and the name of the second character.

--new script action: GetCharSpaceDist. Finds the distance in spaces between a named character and a given space on the battlefield, then sets the custom value _Dist to that number. Three parameters: the name of the character, the space's y coordinate, and the space's x coordinate.

--added a script to the training battle with Emma and Silithis so that if the _Dist between them is 1, it skips the instruction "To attack, move Emma right next to Silithis."

--added documentation of all the new array script actions to the manual.

--updated script actions list in map editor with helper info on all the newer actions.
Title: Re: Developer's Log
Post by: CraigStern on May 22, 2015, 04:32:52 AM
--found and fixed a game-breaking save game bug in version 1.031 that was causing the game to not save any info on your characters between battles.

Super sorry about that, guys--I'll have 1.032 up today. Until you can update from 1.031, I advise sticking to local multiplayer.
Title: Re: Developer's Log
Post by: CraigStern on May 22, 2015, 06:47:24 AM
Updated the game to version 1.032 (http://sinisterdesign.net/telepath-tactics-v-1-032-patch/).
Title: Re: Developer's Log
Post by: CraigStern on May 24, 2015, 08:30:12 AM
--fixed a bug in which doors which are set to Locked with an OnLoading-triggered script action would sometimes glitch out and become impassable.
Title: Re: Developer's Log
Post by: CraigStern on May 24, 2015, 09:33:17 AM
--fixed a bug in which it was possible to move between spaces with large elevation differences using Swim.
Title: Re: Developer's Log
Post by: CraigStern on May 26, 2015, 02:00:19 PM
Heads-up: my parents are visiting me, and I'm moving on Sunday. The pace of development will return to its normal frenzy starting next week, once real life stops being a bother. :)
Title: Re: Developer's Log
Post by: CraigStern on May 27, 2015, 11:43:18 AM
Posted Part 18 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-18/) and Part 19 (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-19/) of the tutorial for making a Telepath Tactics campaign, explaining how to create new destructible objects and how to assign script triggers to them, respectively.
Title: Re: Developer's Log
Post by: CraigStern on May 30, 2015, 11:06:26 AM
--I was able to steal some time away from moving nonsense this morning to test out a longer battle using a profiler to see what's causing slowdown. From my end, it looks a lot like it's caused by AIR constantly calling the garbage collector with greater frequency as the battle progresses. I've added in some code to force garbage collection whenever a player's turn starts (while that "Player's Turn" splash is displayed onscreen), and whenever an attack sequence ends.
Title: Re: Developer's Log
Post by: CraigStern on June 01, 2015, 09:09:06 AM
I moved to a new apartment yesterday--and so did my girlfriend. I basically had to move two apartments' worth of furniture into one, and I feel a bit like collapsing into a ball and not moving for a week. Regardless, I am now going to resume plugging away at to-do items for Telepath Tactics!

First up:

--fixed a bug in which the game would get stuck in a loop in the conversation preceding the caravan battle if Louise Legerdemain is dead.

--fixed a bug in which the game was not applying the tag to reduce the Energy cost for certain attacks (as with the promoted psy classes in the main campaign).

--Annel Stormhunter now has a bit of dialogue when he leaves the group after the battle in Coria's streets (assuming you talked to him and he survived the battle).

--removed the "Promotable" tag from Sarn Kamina (as there is no promotion class for Gasul).

--fixed a bug in which Oliver Spenks would not be added to the player's roster of useable characters after landing on Kovit.
Title: Re: Developer's Log
Post by: CraigStern on June 01, 2015, 02:43:42 PM
--fixed a showstopper bug in the game that would occur if playing in Windows and you had no audio device enabled for playing sounds on your machine.
Title: Re: Developer's Log
Post by: CraigStern on June 02, 2015, 08:04:06 AM
I spent some more time analyzing telemetry data for Telepath Tactics. A frankly ridiculous portion of the game's processing power (we're talking upwards of 33%) seems to be wasted on hit testing for button objects--objects which I don't even use in the game!

Based on some quick Googling (https://forums.adobe.com/thread/1113764), this seems to be an issue with Flash itself once the game has a certain number of objects onscreen, and not something I can actually fix short of reducing the number of characters and destructible objects onscreen. I have some ideas to help with the issue, but suffice it to say that I am very, very displeased about having to do this, as having a large number of independent, interactive objects and large-scale battles are a core part of the appeal of Telepath Tactics.
Title: Re: Developer's Log
Post by: CraigStern on June 02, 2015, 01:28:32 PM
--fixed a bug in the basement of the bandit fortress that permitted players to advance before recovering the map to the mines.
Title: Re: Developer's Log
Post by: CraigStern on June 03, 2015, 09:27:25 AM
--fixed a bug wherein Siripent had the wrong class name (Lizardman instead of Barudit), which in turn glitched out his class promotion.

--fixed a bug where Malcolm Eichan's name and portrait were mistakenly shown instead of Harriet Glaive's during the final line of Malcolm Eichan's death scene.
Title: Re: Developer's Log
Post by: CraigStern on June 03, 2015, 01:18:28 PM
I've begun work on allowing modders to nest custom assets right within a custom campaign folder, such that end users don't need to place them within the Data subfolder of the install directory.

--you can now include custom character portraits within a custom campaign folder: stick them in the subdirectory Data/Characters/_Portraits, just as if it were an asset in the install directory.

--you can now include custom character sprites and animations within a custom campaign folder: stick them in the subdirectory Data/Characters/Whatever The Animation is Called, just as if it were an asset in the install directory.

(Note: nesting custom animations is all-or-nothing. If you make custom animations for a character and you put them in your custom campaign folder, you need to put all of the character's animations in there. When a character is loaded, the game will autodetect whether a character's rest sprite resides in Data/Characters/Rest of your custom campaign folder. If it doesn't find that there--or if it finds an identically named rest sprite in the game's normal install directory--it'll assume that all of this character's sprites reside in the normal install directory instead of your custom campaign folder!)
Title: Re: Developer's Log
Post by: CraigStern on June 03, 2015, 01:27:07 PM
--in the single player campaign, dropped the backstab multiplier for Knife from 2.25X to 2X, for Stab from 3X to 2.25X, and Mega Stab from 3X to 2.5X. Increased the sidestab multiplier for Mega Stab from 1.5X to 1.75X.
Title: Re: Developer's Log
Post by: CraigStern on June 04, 2015, 07:13:11 AM
--you can now include custom objects within a custom campaign folder: stick them in the subdirectory Data/Objects, just as if it were an asset in the install directory.
Title: Re: Developer's Log
Post by: CraigStern on June 04, 2015, 10:38:30 AM
--put in a process to clear listeners from inventory slot boxes after they load, which should help optimize the game a smidge.

--you can now include custom item graphics within a custom campaign folder: stick each one in the subdirectory Data/UI/Item Icons, just as if it were an asset in the install directory.

--you can now include custom attack icons within a custom campaign folder: stick each one in the subdirectory Data/UI/Button Icons, just as if it were an asset in the install directory.
Title: Re: Developer's Log
Post by: CraigStern on June 04, 2015, 03:57:40 PM
Released version 1.033 (http://sinisterdesign.net/telepath-tactics-v-1-033-patch/).
Title: Re: Developer's Log
Post by: CraigStern on June 05, 2015, 01:37:19 PM
--caught and fixed a bug unique to version 1.033 that made character portraits not show up on the battlefield during deployment.

--put in a check during the process of loading a saved game for detecting when the wrong campaign has been saved to a slot, then finding the right one and automatically correcting the issue.
Title: Re: Developer's Log
Post by: CraigStern on June 06, 2015, 09:53:47 AM
- released version 1.034 http://sinisterdesign.net/telepath-tactics-v-1-034-patch/
Title: Re: Developer's Log
Post by: CraigStern on June 08, 2015, 06:21:38 AM
--fixed portraits not appearing in the reserve supplies screen

--fixed portraits not appearing in the detailed info screen when right-clicking deployment tiles
Title: Re: Developer's Log
Post by: CraigStern on June 08, 2015, 09:38:28 AM
--you can now include custom sound effects within a custom campaign folder: stick each one in the subdirectory Data/Sounds, just as if it were an asset in the install directory.
Title: Re: Developer's Log
Post by: CraigStern on June 08, 2015, 11:13:31 AM
--put in a procedure to have the game dynamically check for sound files before it tries to play them, thus preventing errors where the game freezes due to attempts at playing a nonexistent sound file.
Title: Re: Developer's Log
Post by: CraigStern on June 08, 2015, 01:27:25 PM
--fixed a bug in which certain newly recruited characters (ones who weren't under your control in a previous battle) would not show up in the Reserve Supplies screen during deployment.

--recoded the function for generating the common inventory screen so it loads your characters in roster order rather than in order of appearance in the save file.

--updated the code for saving changes to the common inventory so as to prevent unintentional array coupling.

--fixed the properties for a few chasm tiles that the game was erroneously treating as regular dirt ground tiles.
Title: Re: Developer's Log
Post by: CraigStern on June 08, 2015, 02:54:42 PM
--fixed a bug in which the game would not load Header.png from custom campaign directories

--added documentation for how to package up a custom campaign to the game manual
Title: Re: Developer's Log
Post by: CraigStern on June 08, 2015, 03:27:54 PM
--fixed another bug that was preventing tags reducing the cost and range improvements for promoted character attacks from affixing properly.
Title: Re: Developer's Log
Post by: CraigStern on June 09, 2015, 01:39:52 PM
released version 1.035 (http://sinisterdesign.net/telepath-tactics-v-1-035-patch/)

--recompiling and uploading the version 1.035 Windows installers, as users reported getting an AIR-related error message for some reason
Title: Re: Developer's Log
Post by: CraigStern on June 10, 2015, 11:00:09 AM
--fixed a bug in which the GiveItem script action would not "stick" if a character's personal inventory screen was open at the time the script action was run.
Title: Re: Developer's Log
Post by: CraigStern on June 11, 2015, 12:43:55 PM
--did some more work on implementing a custom save file system for Telepath Tactics; this should hopefully address (or at least allow me to more easily detect and fix) problems brought on with saved inventories getting swapped, duplicated, or overwritten inappropriately in the current .sol file system.
Title: Re: Developer's Log
Post by: CraigStern on June 11, 2015, 02:07:17 PM
--suspicious that array entanglement may be occurring during the game saving process, I created a new copyArray() function to detect how dimensions an array contains, break down the array to its smallest component parts, and push those parts to a new array with the same number of dimensions, then return the new array.
Title: Re: Developer's Log
Post by: CraigStern on June 11, 2015, 03:21:49 PM
--abstracted the copyArray() and shuffleArray() functions into a general purpose ArrayManipulator class so I can use these functions anywhere I need to in my code, then implemented in the game's saving and inventory-building functions.
Title: Re: Developer's Log
Post by: CraigStern on June 15, 2015, 08:29:40 AM
--fixed a bug in which the the game would freeze at the conclusion of Annel Stormhunter's goodbye speech

--fixed a bug in which character portraits would sometimes get mixed up when swapping deployment tiles around a lot.
Title: Re: Developer's Log
Post by: CraigStern on June 15, 2015, 09:44:38 AM
--fixed a bug in which a key with durability 0 (i.e. no use limit) would show uses left degrading into the negatives instead of just remaining at 0 after being used to unlock doors.

--fixed a bug in which non-equippable "triggered" items with durability 0 (i.e. no use limit) would show their uses left degrading into the negatives instead of just remaining at 0 when used in a character's inventory.
Title: Re: Developer's Log
Post by: CraigStern on June 15, 2015, 10:50:42 AM
--fixed that annoying bug where you inexplicably couldn't drag a character out of the Characters in Reserve window and directly onto a certain deployment tile on the map.

--fixed an issue where hit detection was slightly off for deployment tiles dragged out of the Characters in Reserve window and dropped onto the battlefield.
Title: Re: Developer's Log
Post by: CraigStern on June 15, 2015, 03:07:39 PM
--to improve performance, the game now automatically removes all listeners from all characters and objects on the battlefield at the start of a CPU player's turn. (It returns them to the battlefield when a human player's turn arrives.)
Title: Re: Developer's Log
Post by: CraigStern on June 16, 2015, 11:35:04 AM
released version 1.036 (http://sinisterdesign.net/telepath-tactics-v-1-036-patch/)
Title: Re: Developer's Log
Post by: CraigStern on June 17, 2015, 09:29:35 AM
After further investigation, I've decided that custom TTsav files are not the way to go, as parsing them would be complicated and prone to errors; I'm instead adapting the existing code for generating these files and formatting them as XML files instead. I'm also going to be incorporating the data from the various save slots into each saved game (they are currently kept separate from one another). More to come soon...
Title: Re: Developer's Log
Post by: CraigStern on June 17, 2015, 03:20:50 PM
--the game now produces nicely formatted XML save game files! :)

(I've attached an example save file generated near the very beginning of the game.)
Title: Re: Developer's Log
Post by: CraigStern on June 18, 2015, 09:40:45 AM
--fixed a bug in which the game would not save changes to individual character inventories on the reserve supplies screen.

--recoded a bunch of inventory management functions with copyArray() to prevent array entanglement.
Title: Re: Developer's Log
Post by: CraigStern on June 19, 2015, 09:27:05 AM
--fixed a bug in which the rightmost door on the ground-level coria tavern map was impassable due to improperly set elevation.
Title: Re: Developer's Log
Post by: CraigStern on June 19, 2015, 09:35:37 AM
--the game now explicitly destroys old saved games when overwriting them with a new campaign to avoid any possibility of old data infiltrating the new game.
Title: Re: Developer's Log
Post by: CraigStern on June 22, 2015, 08:22:48 AM
Sigh; Adobe has decided to spontaneously drop support for Mac OS versions older than 10.9, and the laptop I've been borrowing to push the Mac updates has OSX version 10.8.5. (The owner doesn't want to update, as every OS update slows his machine down further.)

This means that I can't push any further updates until the situation is addressed. I've basically zeroed out my checking account to order a Mac Mini, which should be arriving in about a week; I'll set it up and push an update ASAP once it arrives. In the meantime, I'm going to keep fixing bugs...
Title: Re: Developer's Log
Post by: CraigStern on June 22, 2015, 08:26:01 AM
--fixed an issue in which the software I use to make the game decided to wipe the saved location of its icons. They'll be back in the next update.
Title: Re: Developer's Log
Post by: CraigStern on June 22, 2015, 08:52:47 AM
--fixed a bug where the game glitched out when you tried to save manually during deployment.
Title: Re: Developer's Log
Post by: CraigStern on June 24, 2015, 10:33:32 AM
--added a new property to one-shot sounds wherein they can be tagged with a string.

--added an optional second parameter to the PlaySound script action: sound tag. This assigns a string to a one-shot sound effect to serve as the sound's tag.

--new script action: StopSound. One parameter: a string, the tag of the one-shot sound to stop playing. (If multiple one-shot sounds have the same tag, then if you use that tag with StopSound, all of them will stop playing.)
Title: Re: Developer's Log
Post by: CraigStern on June 24, 2015, 10:41:03 AM
--added text about damage fall-off to the third part of the game tutorial if the player takes too long figuring out how to destroy the altar
Title: Re: Developer's Log
Post by: CraigStern on June 29, 2015, 11:58:30 AM
Thank goodness, my Mac Mini finally arrived! I've gotten it set up and loaded with the necessary software--I should be able to push a new build of the game tonight. :)
Title: Re: Developer's Log
Post by: CraigStern on June 29, 2015, 12:53:10 PM
--good news: I think I've pinpointed to the source of the game's memory leak! Bad news: it's somewhere in the third-party particle engine, which is rather obtusely coded. It might take me a while to figure out how to fix it--so much so that I wonder whether it could actually be better for me to simply write a brand-new particle engine myself... Annnnnnd I figured out a fix for it! Holy crap--the game runs blazing fast now. I am so very pleased. I'll be pushing version 1.038 shortly. :D

Title: Re: Developer's Log
Post by: CraigStern on June 29, 2015, 05:06:35 PM
released version 1.038 (http://sinisterdesign.net/telepath-tactics-v-1-038-patch/)
Title: Re: Developer's Log
Post by: CraigStern on July 02, 2015, 02:20:23 PM
- fixed a bug in which one could not add +, -, * or / operators in the Tags field of the Edit Character window in the map editor.
Title: Re: Developer's Log
Post by: CraigStern on July 07, 2015, 07:57:30 AM
--new script action: Log. Takes one parameter: a string to print to the game's log.
Title: Re: Developer's Log
Post by: CraigStern on July 07, 2015, 05:32:51 PM
--put in a check so the game doesn't try to unequip an item at a position that no longer exists in the character's inventory array; captured a bunch of log info to determine the underlying cause of the mismatch (though I can now say with some certainty that it happens when an item is used up and equipped items exist after the used-up item in the character's inventory).
Title: Re: Developer's Log
Post by: CraigStern on July 08, 2015, 05:47:12 AM
--fixed a bug where using up an item will cause subsequent items in the characters inventory to unequip, and become un-equippable.
Title: Re: Developer's Log
Post by: CraigStern on July 16, 2015, 06:03:34 AM
released version 1.039 (http://sinisterdesign.net/telepath-tactics-v-1-039-patch/)

I stayed up until after 3 AM this morning overhauling the way the game displays when in fullscreen mode:

- when in fullscreen mode, the game now actively scales so that everything visible on the screen is as large as it would be if you were playing with 1280 x 720 screen resolution. Bitmaps now have smoothing applied to them so that they don't look terrible when scaled in this way.
- the fullscreen title screen graphics are now smoothed as well so that they are longer jagged and janky looking when stretched to fit monitor dimensions in fullscreen.

There are a few visual hiccups I have left to fix here and there, but for the most part, this should address criticisms about the game being too "zoomed out" for players with big, high-resolution monitors.
Title: Re: Developer's Log
Post by: CraigStern on July 16, 2015, 10:12:16 AM
- fixed a visual glitch where the accuracy line on attack reticle squares would sometimes extend down an extra line in the new fullscreen mode.

- talking, interacting with doors, giving inventory items, and using objects with a Use trigger now require the interacting character to either be flying, or have an elevation difference no greater than 1 with the target.
Title: Re: Developer's Log
Post by: CraigStern on July 17, 2015, 11:13:45 AM
- fixed tutorial message not displaying midway through the Meridian rescue mission.
Title: Re: Developer's Log
Post by: CraigStern on July 17, 2015, 02:13:43 PM
- rewrote the code for saving the game after a cut scene to bring it more in line with the process used to save the game after a battle. (This is pretty much essential for switching over to XML-based save files.)

- rewrote the code for copying a saved game to another slot.

- implemented XML-based saving and loading in place of SOL files. Still a few snags to work out, but so far it's mostly working! :)
Title: Re: Developer's Log
Post by: CraigStern on July 21, 2015, 12:04:43 PM
- fixed a bunch of small parsing and variable typing issues that were preventing the new XML save and load system from performing flawlessly. Things are looking pretty solid now, but I'm going to test it out some more over the next few days to make sure it's 100% free of issues before I push it in an update.
Title: Re: Developer's Log
Post by: CraigStern on August 03, 2015, 02:06:34 PM
- fixed a bug in which one could not swap reserve characters onto the battlefield after moving the Characters in Reserve window around.
Title: Re: Developer's Log
Post by: CraigStern on August 03, 2015, 02:33:56 PM
- fixed a bug in which weather effects would simply stop animating at the beginning of battles.
Title: Re: Developer's Log
Post by: CraigStern on August 03, 2015, 03:20:09 PM
- the game now scales up the size of its graphics and text to fit the screen when in fullscreen mode, meaning that sprites, tiles, and text are all larger in direct relation to how big your display resolution is. (This functionality assumes you're using a 16:9 resolution.)

- replaced custom font size functionality with an option to toggle fullscreen scaling on or off (it's on by default).
Title: Re: Developer's Log
Post by: CraigStern on August 05, 2015, 03:53:11 PM
released version 1.04 (http://sinisterdesign.net/telepath-tactics-v-1-04-patch/)
Title: Re: Developer's Log
Post by: CraigStern on August 06, 2015, 07:11:35 AM
- fixed a bug in which starting a game in a new, never-before-used slot would cause an error
Title: Re: Developer's Log
Post by: CraigStern on August 06, 2015, 08:33:55 AM
- fixed a bug in which the game would sometimes mistakenly load "null" items into what should be an empty character inventory.

- fixed a bug in which the game would freeze upon closing the Reserve Supplies screen after making changes.

- temporarily removed the feature where the game would save changes made to your common inventory and individual character inventories made during the deployment phase before battles. (I'm going to put it back in, but I need to rewrite this feature and test it thoroughly first.)
Title: Re: Developer's Log
Post by: CraigStern on August 06, 2015, 12:06:27 PM
- fixed a bug in which the game would incorrectly parse items with multiple types of requirements (e.g. both race and class requirements) when loading from a saved game, which made it so the game didn't read them properly.

- fixed a bug where dragging-and-dropping was somewhat inaccurate when swapping characters out of reserves and onto the battlefield.
Title: Re: Developer's Log
Post by: CraigStern on August 06, 2015, 12:24:46 PM
- re-added the feature where the game saves changes to your common inventory and individual character inventories made during the deployment phase before battles. Apparently, coding the new system was super easy, and it seems to be working pretty flawlessly. (Luckily, due to the new XML save feature, we can actually see in real-time if it isn't, and pinpoint exactly what the problem is!)
Title: Re: Developer's Log
Post by: CraigStern on August 07, 2015, 10:48:11 AM
released version 1.041 (http://sinisterdesign.net/telepath-tactics-v-1-041-patch/)

- fixed a parsing issue with items that add tags.

- removed commas from certain items' descriptions to avoid parsing errors.
Title: Re: Developer's Log
Post by: CraigStern on August 07, 2015, 12:07:46 PM
- fixed incorrect description on Caffeine Pills.

- new tag: StatFXIgnoreRes. Makes it so status effects' chance to hit is not impacted by the target's resistance to the attack element.

- added StatFXIgnoreRes as a tag characters receive upon equipping axes or a halberd, thus making Armor Rend (and, for Mantis Knights with access to a halberd, Charge) dramatically more effective.

- gave +1 range to Place Charges for Engineers who promote to Machinist.

- made it so characters with a base Dodge of 80 or higher no longer gain Dodge upon leveling up.

- updated scripting in the final battle to make Tarion and his escorts more proactive / aggressive when approached by the player; buffed the snipers on the rock pillars in the lava.

- fixed a bug that would sometimes cause the wrong character to get grayed out if an enemy character's turn ended with that character dying from an attack or a trap.
Title: Re: Developer's Log
Post by: CraigStern on August 07, 2015, 12:24:21 PM
- fixed a typo that prevented Armor Rend from ever succeeding in softening the target.
Title: Re: Developer's Log
Post by: CraigStern on August 07, 2015, 12:58:27 PM
- fixed a bug that prevented Caffeine Pills from successfully removing the effects of Slowed status, Eyedrops from successfully removing the effects of Blinded status, etc.
Title: Re: Developer's Log
Post by: CraigStern on August 10, 2015, 12:56:38 PM
- fixed a bug where the game was not correctly saving the name of procedurally generated levels when saving the game using the new system.
Title: Re: Developer's Log
Post by: CraigStern on August 10, 2015, 01:09:29 PM
- fixed a bug where Louise's portrait could remain onscreen inappropriately after the Adelbrae battle if Farasat was killed in the fight.
Title: Re: Developer's Log
Post by: CraigStern on August 10, 2015, 01:17:43 PM
- fixed a bug in which the game would turn fullscreen scaling off after every battle.
Title: Re: Developer's Log
Post by: CraigStern on August 12, 2015, 11:18:36 AM
- fixed a bug where the game would scale inappropriately on monitors without standard widescreen dimensions, leading to important parts of the visual field getting cut off.

- fixed a bug in which Scarlet Etoile could end up having dialogue after the caravan battle if she was both recruited and killed during the fight on Normal mode.
Title: Re: Developer's Log
Post by: CraigStern on August 13, 2015, 11:22:31 AM
released version 1.042 (http://sinisterdesign.net/telepath-tactics-v-1-042-patch/)
Title: Re: Developer's Log
Post by: CraigStern on August 17, 2015, 02:26:53 PM
- Goniff Bastid now sells Caffeine Pills when you encounter him in the woods after fleeing Igor's fortress.

- rewrote the code for StatFXIgnoreRes to make it work more reliably.

- fixed a minor typo in the Coria Tavern cut scene.
Title: Re: Developer's Log
Post by: CraigStern on August 17, 2015, 02:54:08 PM
- fixed a bug in which a weapon breaking would not result in the weapon's stat modifiers being removed from the wielder
Title: Re: Developer's Log
Post by: CraigStern on August 19, 2015, 11:40:13 AM
- fixed typo in shop descriptions of the rapier.

- fixed AI quirk where computer would treat potential targets that were stunned or frozen as if they could counterattack.
Title: Re: Developer's Log
Post by: CraigStern on August 19, 2015, 12:39:43 PM
- fixed weather effects freezing after concluding turn 0 dialogue.

- fixed bug in which the game would sometimes freeze if an enemy was killed with an iron jaw trap.
Title: Re: Developer's Log
Post by: CraigStern on August 19, 2015, 01:28:28 PM
- fixed a bug in which custom character lighting set for a given scene could get saved to a save file going forward, then get parsed incorrectly, thereby turning a character into a black silhouette.
Title: Re: Developer's Log
Post by: CraigStern on August 19, 2015, 02:12:35 PM
- fixed a bug where saving in a new slot at the start of a procedurally generated battle would produce a save file from which you could not load the procedurally generated battle.

- fixed a parsing issue in which the game would interpret a sequence of numbers delimited by commas as a single number.
Title: Re: Developer's Log
Post by: CraigStern on August 20, 2015, 01:45:13 PM
- fixed the bug where characters killed in Casual Mode would duplicate in the saved game files (along with their attacks and inventory) going forward into subsequent battles.
Title: Re: Developer's Log
Post by: CraigStern on August 20, 2015, 01:56:20 PM
- fixed a typo which caused apples to restore energy when used.
Title: Re: Developer's Log
Post by: CraigStern on August 20, 2015, 07:27:38 PM
released version 1.043 (http://sinisterdesign.net/telepath-tactics-v-1-043-patch/)
Title: Re: Developer's Log
Post by: CraigStern on August 21, 2015, 11:03:02 AM
- fixed screen being off-center when game starts up in fullscreen scaled mode.

- buffed up the Mechanic Captain at the start of the Tarion battle, gave Tarion a wall of three Greater Red Spriggats to keep him from being KO'd on turn 1 via the adrenaline pill exploit (and to make the final approach to his location somewhat more challenging).
Title: Re: Developer's Log
Post by: CraigStern on August 21, 2015, 01:44:46 PM
I've just laid the groundwork for persistent, procedural dungeons (i.e. where the game remembers each floor and recreates it when you traverse up and down levels). Here's what we've got:

- procedural level generation now takes a seed parameter, meaning that it can now consistently reproduce a generated level! The new, tenth parameter is seed, a number. Feed it the exact same parameters 1-9 and then the same seed, and it'll remake the level exactly. (Leave the seed parameter blank if you want the game to supply its own seed.)

- game now saves and loads the current seed at the start of a scene! This two immediate consequences: first, you can no longer juke the RNG, getting different results out of the same set of actions merely by reloading a battle; and second, reloading a procedurally generated battle will now produce the same exact battlefield no matter how many times you do it, as the seed will remain consistent between reloads.

- new dialogue action: SetSeed. This has one parameter: a number. When this action is run, the seed is set to your chosen number.

- new special character: -SEED-. The game will automatically replace this character with whatever the current seed value is. (Note that the seed value changes every time the game generates a random number, so you'll need this to find out the current seed even if you'd set the seed to something specific at the start of the battle!)

- new special character: -STARTSEED-. The game will automatically replace this with whatever the seed value was when the scene first loaded.

- updated the manual with documentation on seeds.
Title: Re: Developer's Log
Post by: CraigStern on August 22, 2015, 10:57:24 AM
- fixed bug where an incorrect Silithis ending shows up if you end the game with Silithis dead and Sarn Kamina alive.
Title: Re: Developer's Log
Post by: CraigStern on August 24, 2015, 10:35:02 AM
- added in a check to make sure the game doesn't accept non-numbers when loading up a saved seed. (If something that's not a number erroneously gets saved as the starting seed, the game will now just generate a new one.)

- added in code to have the game's menus adjust position to remain mid-screen when the game is scaling up its graphics.
Title: Re: Developer's Log
Post by: CraigStern on August 25, 2015, 09:40:27 AM
- fixed a bug in which the first character in the <CharacterData> section of the saved game file would mistakenly be saved as the starting seed, causing the game to behave as if they'd been wiped from the saved game entirely.
Title: Re: Developer's Log
Post by: CraigStern on August 26, 2015, 08:49:42 AM
released version 1.044 (http://sinisterdesign.net/telepath-tactics-v-1-044-patch/)
Title: Re: Developer's Log
Post by: CraigStern on September 02, 2015, 07:23:01 AM
Made a change to help me figure out what's going on with the display issues some people are having:

- You can now generate a log anywhere, not just when you're in battles.
Title: Re: Developer's Log
Post by: CraigStern on September 09, 2015, 02:43:43 PM
I've been experimenting with reworking the procedural level generation algorithm so that it doesn't require rooms of uniform size; I've got it mostly working pretty well now, though I expect that I'll be saving the improved algorithm for a different game, as it would likely break existing procedural levels in Telepath Tactics if I were to introduce it in an update.

Meanwhile, in proper Telepath Tactics news:

- added a check to the isAttackGrantedByEquipment method to prevent errors.
Title: Re: Developer's Log
Post by: CraigStern on September 10, 2015, 10:47:32 AM
- turned on logging during save file creation to help me catch bugs.
Title: Re: Developer's Log
Post by: CraigStern on September 10, 2015, 02:58:49 PM
- fixed a bug in which saving a game in a new slot would cause the game to freeze if the save in question did not contain a value for the starting seed.
Title: Re: Developer's Log
Post by: CraigStern on September 12, 2015, 10:32:43 AM
- fixed some issues with the game's camera behaviors related to scaled / unscaled fullscreen modes.
Title: Re: Developer's Log
Post by: CraigStern on September 12, 2015, 10:36:09 AM
released version 1.045 (http://sinisterdesign.net/telepath-tactics-v-1-045-patch/)
Title: Re: Developer's Log
Post by: CraigStern on September 15, 2015, 02:41:51 PM
- due to my apparent inability to make screen scaling work properly with all displays, I'm taking it out of the game. Sorry, gang--my next game will be in a framework that properly supports fixed display resolutions. (Which is to say: not Flash.)
Title: Re: Developer's Log
Post by: CraigStern on September 16, 2015, 10:32:15 AM
- fixed a bug relating to the way the game delimited individual class, race, or level requirements for items within saved game files which caused item restrictions to not apply in-game.
Title: Re: Developer's Log
Post by: CraigStern on September 17, 2015, 08:36:29 AM
released version 1.047 (http://sinisterdesign.net/telepath-tactics-v-1-047-patch/)
Title: Re: Developer's Log
Post by: CraigStern on September 21, 2015, 02:03:39 PM
- made it so apples restore 4 energy once again, but this time actually went ahead and updated the apple item description and description in shops so this wouldn't look like a bug
Title: Re: Developer's Log
Post by: CraigStern on September 25, 2015, 10:48:30 AM
- fixed a bug in which the game would sometimes fail to recognize the designated scene to go to when loading a saved game.
Title: Re: Developer's Log
Post by: CraigStern on September 25, 2015, 11:17:37 AM
- fixed a bug in which character labels would use incorrect numbering in save files, starting from -1 instead of 1
Title: Re: Developer's Log
Post by: CraigStern on September 26, 2015, 07:14:30 AM
released version 1.048 (http://sinisterdesign.net/telepath-tactics-v-1-048-patch/)
Title: Re: Developer's Log
Post by: CraigStern on September 26, 2015, 08:18:43 AM
- fixed a typo which was preventing Rebecca's Pyro Blast from getting its 50% cost adjustment upon her promotion to Pyrokurios.

- updated breath attack descriptions to reflect their status effects instead of describing their AOE.
Title: Re: Developer's Log
Post by: CraigStern on September 29, 2015, 08:56:19 AM
- fixed a typo in the code that was causing the game not to remove particles properly, leading to unnecessary slowdown
Title: Re: Developer's Log
Post by: CraigStern on September 29, 2015, 10:09:57 AM
- fixed a bug in which the game would sometimes not get the target's name or coordinates for use with special characters (-FNAME-, -Y-, -X-, etc.) during dialogue triggered by OnCharAttacked or OnCharDeath.
Title: Re: Developer's Log
Post by: CraigStern on September 29, 2015, 02:26:18 PM
- fixed a bug in which tags added by equipped items would persist after a battle and get added a second time in the next battle, and the third time the battle after that, etc.
Title: Re: Developer's Log
Post by: CraigStern on September 29, 2015, 03:15:11 PM
- fixed a bug in which the game gratuitously decided that all pushable characters were, in fact, not pushable.
Title: Re: Developer's Log
Post by: CraigStern on September 29, 2015, 08:37:14 PM
- fixed a bug in which the game would mess up the nextBattle attribute for saved games upon closing the Reserve Supplies screen on procedurally generated map.

- restored the appearance of the title screen to its pre-scaling state.
Title: Re: Developer's Log
Post by: CraigStern on September 30, 2015, 07:04:46 AM
released version 1.049 (http://sinisterdesign.net/telepath-tactics-v-1-049-patch/)
Title: Re: Developer's Log
Post by: CraigStern on October 01, 2015, 02:44:36 PM
posted tutorial part 20 - Making new attacks (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-20/)
Title: Re: Developer's Log
Post by: CraigStern on October 04, 2015, 11:30:27 AM
- the game will now successfully load saved game files from slots which you haven't yet created a game in. (If, for example, you download someone else's saved game.)
Title: Re: Developer's Log
Post by: CraigStern on October 04, 2015, 12:54:23 PM
- fixed a typo where the game treated the Flail item as increasing a character's health by 250 points (and decreasing it a corresponding amount upon unequipping).
Title: Re: Developer's Log
Post by: CraigStern on October 04, 2015, 08:27:01 PM
- fixed a bug in which the game would sometimes throw a null reference error if the first turn of a battle ended without any particles being rendered
Title: Re: Developer's Log
Post by: CraigStern on October 06, 2015, 09:40:43 AM
posted tutorial part 21 - Creating a campaign that’s challenging, interesting, and fun (http://sinisterdesign.net/tutorial-making-a-telepath-tactics-campaign-part-21/)
Title: Re: Developer's Log
Post by: CraigStern on October 10, 2015, 06:29:41 PM
- fixed a bug in which the game's shadowling bosses would not spawn with flying.
Title: Re: Developer's Log
Post by: CraigStern on October 10, 2015, 07:48:07 PM
- fixed a typo where the game treated the Steam Crossbow item as increasing a character's health by 320 points (and decreasing it a corresponding amount upon unequipping).

- increased the strength of the Steam Crossbow from 12 to 14.
Title: Re: Developer's Log
Post by: CraigStern on October 10, 2015, 11:49:04 PM
- fixed scripting error in final battle which caused enemy reinforcements to cut off after turn 7
Title: Re: Developer's Log
Post by: CraigStern on October 11, 2015, 03:47:26 PM
- reorganized particle rendering code to avoid remaining situations where particles would stick around the battlefield.

- moved one of the spike traps in the final battle to keep newly spawned units from flying into it each time.
Title: Re: Developer's Log
Post by: CraigStern on October 12, 2015, 07:40:04 AM
released version 1.050 (http://sinisterdesign.net/telepath-tactics-v-1-050-patch/)
Title: Re: Developer's Log
Post by: CraigStern on October 12, 2015, 07:58:38 AM
- added in extra dialogue in the fight outside the bandit fortress giving the player additional prior warning before the enemy lowers the drawbridge.

- added a chance of both Stunned and Burning status to the "Explode" attack from the destruction of Teresa's charges.
Title: Re: Developer's Log
Post by: CraigStern on October 12, 2015, 04:00:34 PM
- fixed a bug in which the game would freeze upon starting a new game if the game did not detect an already-existing Documents > My Games > Telepath Tactics > Saved Games directory.
Title: Re: Developer's Log
Post by: CraigStern on October 13, 2015, 05:47:09 AM
released version 1.051 (http://sinisterdesign.net/telepath-tactics-v-1-051-patch/)
Title: Re: Developer's Log
Post by: CraigStern on October 20, 2015, 08:24:29 AM
- attempted to remedy the Linux-specific issue with certain folders being incorrectly capitalized upon installation by removing and then manually re-adding the folders to the list of directories to be included in the installer. Rebuilt and reuploaded version 1.051 for Linux with this change.