Welcome to the new Sinister Design forums!

Main Menu

Developer's Log

Started by CraigStern, February 11, 2013, 07:19:44 PM

Previous topic - Next topic


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


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.


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


--aaaaand I've fixed the item sack grab bug

Installers updated online.


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


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


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


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


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


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


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


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

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


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


--tweaked existing dungeon room chunks to look nicer and work better

--created new sound effects for attacks


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


--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! ;)