The Sinister Design Forums

Please login or register.

Login with username, password and session length
Advanced search  

News:

Welcome to the new Sinister Design forums!

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - CraigStern

Pages: [1] 2 3 ... 241
1
??? / Re: A new engine!
« on: Today at 01:40:26 PM »
-- mid-battle saving and loading are now working! :D While not trivial, this was easier to implement than I had feared (albeit almost entirely so because of some smart changes I made to how I save and track data in the new engine).

-- new script action: SortList. Has two parameters, the second of them optional: (1) the list name, and (2) whether the list should be sorted in descending order (true or false). If the second parameter is left blank, the game will treat it as false.

-- new script actions: IfListHasGoTo and IfListHasRun. Both have 3 parameters: (1) the list name, (2) the entry value, and (3) the branch number to go to / script to run if the specified entry value is found anywhere in the named list.

(To GoTo or Run based on the value of a specific place in a list, use the IfString or IfVal actions in combination with the LIST{X,Y} special character.)

-- got a new background: entrance to the arena! Integrated it into the arena entrance scene.

-- added mouseover tooltips to the "toggle generic" and "pick expression" buttons on the portrait editing screen in the character creator for greater comprehensibility.

-- fixed a bug in which the game would reset all damage, drain, and other "tracker" stats at the start of each battle.

2
??? / Re: A new engine!
« on: Yesterday at 03:32:26 PM »
After taking a couple of days off to deal with True Messiah shenanigans, we're back!

-- added in the warning for when you're about to attack an ally or heal an enemy; you can then proceed anyway, or cancel the move. It ignores "falling"-type moves like Shove, Pull, and Throw entirely. (Note that the warning also won't appear for skills aimed at mixed targets--the game assumes that you intend friendly fire in the name of hurting the enemy, and only checks to make sure you're not making a mistake if your targets are entirely of the wrong sort!)

-- characters with a wound level of 2 or greater now have a 1-in-5 chance of quietly not progressing in their recovery on any given evening, and a 1-in-5 chance of simply passing away. (The most likely occurrence, with a a 3-in-5 chance, is that the character will reduce their wound level by 1.)

-- if a unit passes away, everyone on the team loses 1 morale, plus 1 per point of friendship they had with that character. (Sensitive characters will have their morale loss doubled.)

-- began coding mid-battle saving!

3
??? / Re: A new engine!
« on: September 18, 2018, 12:44:41 PM »
-- fixed a bug that would very rarely produce incomplete characters in the procedural character generator.

-- fixed a variety of bugs that were messing up the operations of the Recruit and Dismiss actions.

-- fixed a bug that was preventing character portraits from appearing during the "approach" portion of character dialogue during nighttime.

4
??? / Re: A new engine!
« on: September 17, 2018, 12:19:19 PM »
-- added support for custom lists to the game! Much like the arrays of Telepath Tactics, these lists will take any sort of string as an entry (but entries from these lists can often be used as integers, since all integers used in the dialogue system are converted to ints from strings at runtime anyway).

-- new action: SetList. This creates a new, empty list variable (or clears an existing list variable of entries). One parameter: list name.

This, for instance, will create a new, empty list called Names:

Code: [Select]
SetList/Names
-- new action: AddToList. This adds a new entry to a list variable. (If the named list doesn't exist, the game will create it before adding the new entry). Three parameters: list name, the entry to be added, and (optionally) a boolean stating whether to add it to the beginning of the list. (If the last parameter is left blank, the entry will be added to the end of the list.)

These will add the values "Bertha" and "Ned" to the end of the Names list. Lists always count upwards from zero--thus, Bertha will end up at position 0 and Ned at position 1:

Code: [Select]
AddToList/Names,Bertha
AddToList/Names,Ned

-- new action: RemoveFromList. This removes one or more entries from a list variable. Two parameters: list name, and either (a) the integer position of a single entry to remove, or (b) a string value to cull from the list wherever it appears.

-- new action: ShuffleList. This reorders all of the entries within a list variable at random. One parameter: list name.

-- new special character LIST{}, which takes two parameters--the name of the list and the position in the list to display, like so:

Quote
You want to talk to LIST{Names,0}, eh?

If we don't remove from or shuffle the example list above, this will end up displaying "You want to talk to Bertha, eh?"

-- new special character LASTINLIST[], which the game automatically replaces with the number of the last position in the list containing an entry. (If there are no entries in the list, this will display as -1.) Takes one variable: the name of the list.

If we don't remove anything from the example list above, this will be replaced with a 1:

Code: [Select]
LASTINLIST[Names]
This can be used in a SetVal action to obtain a random position in a given list, like so...

Code: [Select]
SetVal/RandomPosition,r:LASTINLIST[Names]
...and then the val can be used as part of a LIST{} special character to display the randomly chosen entry!

Code: [Select]
LIST{Names,-VAL:RandomPosition-}
(See the image attached to this post for a more full-featured example.)

-- the r operation now produces an integer number between 0 and the chosen number (before, it produced an integer between 1 and the chosen number).

-- added a new, optional third parameter to the Teach action; a boolean variable which, if set to true, causes the game to pop up the leveling screen with a summary of what the learning character just learned. (If not used or set to false, the game will stay quiet about the event.)

5
??? / Re: A new engine!
« on: September 14, 2018, 02:32:25 PM »
-- new script action: Teach. This causes the game to select a skill that one character knows and the other does not, but has the ability to learn; the second character then learns it. (The game will prioritize lower-cost skills that meet the criteria over higher-cost ones.) If no such skill exists, the game instead finds a stat the first character has that is higher than it is for the second character; the second character gains proficiency in it. Two parameters: the teaching character's name, and the learning character's name.

-- characters who have grown very close to one another can now get dialogue at night in which they teach one another a skill or proficiency using Teach.

6
??? / Re: A new engine!
« on: September 13, 2018, 01:26:11 PM »
Continued improvements to the deployment system today, along with a host of new skills:

-- deployment tiles now have their own material distinct from the move tiles, one whose shape works better in conjunction with the character portraits.

-- the deployment screen now displays instructions and error messages during the deployment process to guide players.

-- you can no longer finish deployment when 0 units are deployed.

-- you can no longer finish deployment when you haven't deployed units named in the deploying army's Protect Char conditions.

-- mousing over a destructible object covering a deployment tile now displays the info for the unit held in the deployment tile instead of the object.

-- created a new Light skill: Dazzle! Dazzle is essentially the photokineticist's answer to Terror. Though it deals no Health damage, it drops the target's light resistance and has a chance to blind the target 1-2 times and distract them 1-3 times. Range 1-3 spaces, free targeting, cost 6.

-- created a new Shadow skill: Miasma! Miasma is a fairly weak attack with a chance to Immobilize and Soften that can be followed up with movement and a different attack on the same turn. Any generated unit who learns Miasma will subsequently learn to counterattack with it as well. Range 1-2 spaces, constrained targeting, cost 2.

-- created a new Heat skill: Overheat! This damages the Energy of targets in a 3x3 area by 120% of the user's Psy. (If this would drop a target's Energy below 0, any roll-over is translated into Health damage, making it very effective against low-energy units like golems and cavalry). Range 2-4 spaces, free targeting, cost 18.

-- created a new Cold skill: Frost Army! This is the game's first mass buff, granting Hardened status in a 3x3 area. Range 0-2 spaces, free targeting, cost 18.

-- created a new Shield skill: Far Shield! Exactly the same as Mind Shield, but it has a range of 2-4 instead of 0-2.

-- created the icon for Throw Knife (an as-yet unimplemented skill, as it would require new character sprite animations).

-- skills now have an img attribute separate from their names, which the game now looks to (instead of the skill's name) to determine the image to use for the skill. This permits the creation of skills with new names that reuse existing icons.

-- got a new background: the Dese shop! Implemented it in the shop scene.

-- added the new shop and tavern backgrounds to the cut scene editor list of available backgrounds.

7
??? / Re: A new engine!
« on: September 12, 2018, 01:43:02 PM »
-- basic deployment is now functioning! The game lays down deployment tiles on the battlefield, a deployment screen shows your roster, you click a unit to select, and then you click a deployment tile to set them to spawn there. When you're done, you click the "Done" button and everyone spawns right where they were deployed.

8
??? / Re: A new engine!
« on: September 11, 2018, 03:07:20 PM »
-- reworked the dialogue screen layout a bit to avoid unwanted overlap between character dialogue portraits in the corners of the screen and reply options dropping down from the dialogue window.

-- did more work implementing army deployment; laid the groundwork to support deployment of multiple armies in the same battle.

-- changed the parameters for the Deployment condition a bit. The condition parameters are now: army number, roster number, and deployment music (optional).

This, for example, will enable manual deployment for army 0 using the troops contained in roster 0, and will play the music track Battle Prep while the player deploys:

Code: [Select]
<Condition>Deployment,0,0,Battle Prep</Condition>
-- expanded the Arena intro with a bit of branching dialogue.

-- changed the special character -BRANCH:- to BRANCH[], as the former formatting did not play nice with the use of -STR:- and -VAL:- variables.

9
??? / Re: A new engine!
« on: September 10, 2018, 02:34:17 PM »
-- new script actions: IfTagGoTo and IfTagRun. These check to see if a specific character or army possesses a tag type--if the game finds that they do, it then goes to the specified branch/runs the named script. Parameters: (1) character name (or ID[] tag), or army number; (2) tag type; (3) branch number/script name; and optionally, (4) the tag's first parameter, if one exists and you want to use it to narrow things down.

-- items now support mastery requirements that can be met by several different masteries! (To have an item that can be used by units with one of several masteries, delimit the masteries in masteriesReq with a forward slash.)

-- extended the range of possible quality levels up to 10 for generated items (thereby supporting values of 0 through 10).

-- new script action: GiveItem. Gives a character an item, or else spawns it in a particular roster's reserve supplies. Parameters: (1) character name (or ID[] tag), or roster number; (2) item name; (3) material; (4) quality level; and (5) auto-equip. The last 3 parameters are optional, with 3 and 4 being specifically for generated equipment. (Note that if this is used for a named character in battle, it won't work unless the named character is present on the battlefield.)

-- new script actions: IfItemGoTo and IfItemRun. These check to see if a specific character or army possesses a named item--if the game finds that they do, it then goes to the specified branch/runs the named script. (This action actually checks for whether there is an item name containing the search term, so searching for Iron Boots will return true if the character has, for example, "Superb Iron Boots.")

Parameters: (1) character name (or ID[] tag), or army number; (2) item name; (3) branch number/script name; and optionally, (4) if the item must be equipped for it to count (true or false). If the fourth parameter is left blank, the game will treat it as false.

-- fixed a bug in the game's script action queueing-and-execution system in which it would fail to execute actions queued up after switching to a new dialogue branch mid-queue.

-- fixed a small but crucial typo in the ActionsReplies parameters guide for SetVal.

-- added missing ActionsReplies documentation for the AddTag action.

10
??? / Re: A new engine!
« on: September 07, 2018, 01:27:38 PM »
-- created a proper Arena scene to mediate between visiting the Arena and fighting an appropriate battle.

-- embellished the introduction with more detail and appropriate background transitions.

11
??? / Re: A new engine!
« on: September 06, 2018, 03:03:25 PM »
-- I finally added in support for onDeath skills! These are the skills a unit automatically uses upon death, centered on itself (such as the Explode skill which Charges unleash on reaching 0 health). However, new to this engine: units can have more than one onDeath skill! (Just delimit each onDeath skill with a forward slash.)

-- got 6 new portraits from Matt Pichette for villagers native to the isle of Dese.

-- got 3 new female human hairstyles: side ponytails, a face-framing bob, and layered mid-length wavy hair!

-- got 4 new male human mouth types, each sporting a new style of mustache!

-- generated positional portrait data for the new villagers, hair styles, and mouths.

-- fixed a bug in which particle effects would sometimes render behind things that are actually behind them on the battlefield.

-- fixed a bug which caused created objects to spawn on the battlefield with a facing direction other than None.

-- fixed a bug in which the game would try to save objects the player created on the battlefield at the conclusion of a battle.

-- fixed some minor UI display issues in the Character Creator and the recruitment scene.

12
??? / Re: A new engine!
« on: September 05, 2018, 03:03:13 PM »
Gave artist feedback. Also:

-- new mechanic: when skills force a character's Energy below 0, the excess drain gets rolled over into regular Health damage. (For instance: a spirit with a psy stat of 10 uses Drain, dropping Bob's Energy by 20 points. Let's say that Bob had 10 Energy beforehand--it goes from 10 to -10. Since energy can't go below 0, he takes the 10 rollover points as damage to his Health.)

-- fixed a bug in the character creator wherein certain fields wouldn't be reset properly when hitting New Character after loading an existing character.

-- fixed a null error in the dialogue editor that occurred when editing a new script action that you'd just created.

-- fixed a bug in the dialogue editor in which the predictive text and parameter autocomplete feature would disregard actions with identically named analogues among the game's triggers or replies (most prominently, Run).

-- got a new background!

13
??? / Re: A new engine!
« on: September 04, 2018, 03:16:04 PM »
-- new script action: AddMemory. This lets you give a character a custom memory. Six parameters: (1) character name (or ID[] tag), (2) what the memory is of, (3) what emotion the character feels when recalling the memory, (4) where the remembered event occurred, (5) who the memory concerns, and (6) the days passed relative to the campaign start date when the remembered event occurred. Parameters (3-6) are optional.

So, for example, if you want to give the character Jenny McDougal a memory of being attacked by wolves in the woods outside her home exactly two months before the start of the campaign:

Code: [Select]
AddMemory/Jenny McDougal,was attacked,anxious,the woods outside her home,a pack of wolves,-56
("What is even the point of this?" you might ask. Baaaaasically, it's gonna tie into a system that I'm hoping to add in later!)

-- spent hours replacing all of the item tooltips in the game yet again--this time, to accommodate 3x longer item descriptions!

-- fixed a bug in which the reserve supplies would not update to reflect items newly bought or sold while shopping.

-- fixed a thing where I accidentally deleted all instances of the character screen and level-up screen from every part of the game. (Oops.)

14
??? / Re: A new engine!
« on: August 31, 2018, 10:29:29 AM »
-- added support for memories on characters. (A memory records an event that the character considers significant; when and where it happened; with whom; and an emotion the character associates with the memory, like happiness or sadness.)

-- proc gen characters now automatically get a memory of the day they're recruited.

-- all characters now automatically get a memory when they first meet an ally, when they give or receive a nickname, when they fall in battle, when they accidentally injure an ally with an attack, and when they defeat an enemy who is more than 5 levels higher than them.

-- when editing the background for a frame in the cut scene editor, if the background wasn't set in the current frame but there's one carrying over from an earlier frame, it now shows the carry-over background in the "current background" swatch, but partially faded out.

-- added in the remaining completed backgrounds to the cut scene editor.

-- wrote a bit more character dialogue.

15
??? / Re: A new engine!
« on: August 30, 2018, 02:22:09 PM »
-- created some nice, smooth appear and disappear animations for the darkener behind narration text.

-- the game now smoothly transitions between backgrounds when they change during cut scene narrations, fading from one into the other.

-- new action: NewBackground. Initiates a cut scene background transition independent of any narration. It takes one parameter: the name of the background to shift to. (If no valid background name is used, the background will shift to darkness instead.)

-- implemented access to the reserve inventory screen in cut scenes.

-- fixed a bug in which certain UI animations would start to loop before transitioning to a new state.


All in all, I'm feeling quite good about the integration of shops into cut scenes; the combination of cut scene dialogue and background-setting functionality in concert with the new shop UI results in a very solid experience.

Pages: [1] 2 3 ... 241