News:

Welcome to the new Sinister Design forums!

Main Menu

A new engine!

Started by CraigStern, June 05, 2016, 05:39:11 PM

Previous topic - Next topic

CraigStern

-- new script action: SelectUnit. One parameter: (1) character name. Behaves as though the player had left-clicked the character in question.

-- new script action: RemoveUnitAt. Four parameters: (1) Y coordinate, (2) X coordinate, (3) treat removal as unit death? (boolean), and (4) specify category of unit to remove from space (character, object, bridge). If the category parameter is left blank, the game will simply remove the top unit on the space (characters first, then objects, then bridge tiles).

-- new script action: RemovePortrait. One parameter: (1) portrait name. Looks for the portrait assigned that portrait name and removes it.

-- new condition and script action: Recover. In any case, three parameters: (1) army number; (2) health recovery as a proportion of each unit's max health (decimal between 0 and 1); (3) energy recovery as a proportion of each unit's max energy (decimal between 0 and 1).

-- Recover and Fatigue conditions both now work in cut scenes, but they affect by roster instead of by army.

-- the AddCondition script now works with Recover and Fatigue conditions (including in Cut Scenes).

-- fixed: because the action runner now pauses while waiting for scripted character movement and would only unpause if a character stopped moving and no one else was still moving, it resulted in the action runner never unpausing its action execution if two or more units both underwent scripted movement and reached their destinations simultaneously.

-- fixed: setting a mover's animation state to Rest in the direction they were last facing should have happened immediately upon finishing moving, but instead it happened after running any unpaused actions, effectively overwriting any FaceUnit actions that were queued up to occur after MoveUnit.

-- cleaned up a bunch of scripting in some of the earliest scenes of Telepath Tactics to fit changes made in the new engine. The old campaign is now playable through to the end of the battle with Zash and Red.

CraigStern

-- when trying to load a scene that doesn't exist, the game now returns to the title screen instead of getting stuck on the current scene.

-- the dialogue editor now checks for duplicate Conv IDs and Script names when exiting the dialogue editor; if it finds any, it now pops up a warning and gives you a chance to go fix the issue.

CraigStern

-- reduced the default character recovery rate while resting in camp from 25% to 20%.

-- in the main campaign, every non-Wounded character now recovers 5% of their Health and Energy per night whether they rest or not.

-- the Recovery script and condition now ensure that when the recovery value is greater than 0, each character gains a minimum of 1 point in the chosen stat (or, alternatively, when the recovery value is less than 0, that each character loses at least 1 point in the chosen stat). This will keep characters with low maximum health or energy from recovering nothing at all at low recovery percentages.

-- tweaked the AI algorithm to give somewhat greater priority to moves that involve backstabbing targets who could otherwise counterattack.

-- fixed an annoying formatting issue that caused the range text for multi-range attacks to cut off within skill tooltips.

-- fixed a dumb bug in which the game would momentarily overshoot while tallying up the player's score in the Victory screen at the end of battle.

-- fixed a particularly annoying bug in which the game would outright ignore it when you clicked the mouse on a unit if the cursor were positioned within a narrow area situated at the character's feet.

CraigStern

-- big UI feature added: move-and-attack! If one of your characters is selected and you shift-click a character not belonging to your army (or a destructible object), the game will now check to see if the unit you shift-clicked is within move-and-attack range for your character using their 1-slot skill (the one furthest to the left on the Actions Bar). If it is, then the game will choose a spot your character can attack from with that skill, then move the character there, auto-select the skill, and display the skill's reticles.

-- the game now displays the Sword cursor when you've got Shift held down and are mousing over a unit, indicating that you can click to initiate a move-and-attack command.

-- fixed a pretty nasty bug with mid-battle saves. The game was saving all units present on the battlefield as well as all the units who were not present; but upon reloading a mid-battle save, the game would only reload those characters who were present on the battlefield! If the game was then saved again, this would result in all non-deployed characters vanishing from the game going forward.

CraigStern

Officially hired an artist to create box art for the game! (Not that it's likely to end up physically printed with any sort of box to speak of...)

-- improved the recruitment interface! Character stats are now represented by their symbols instead of by rows and rows of just text. Instead of instantly hiring them, clicking a recruit now causes their stats to remain onscreen even after you mouse off the portrait; you can then mouse over stat icons for explanations of what each stat does. Moreover, clicking a recruit causes a "Recruit Character" button to appear; clicking the button is what now hires the character, eliminating accidental recruitment via mis-clicks.

CraigStern

-- cut scenes in the game now support custom backgrounds!

-- when the game creates a new campaign, it now creates a Backgrounds folder for custom backgrounds.

-- the Sound, Music, and Backgrounds folders are now each created with their own CustomAssetInfo.xml file containing instructions on how to format each type of custom asset.

-- the Cut Scene Editor now loads custom backgrounds within the background selection window and allows you to use them in cut scenes.

-- new attribute type supported in UnitsToList: Bio Detail.

-- if you leave the Roster or Army parameter in UnitsToList blank and the game is in a cut scene, the game will now automatically sub in the number of the current roster instead of simply defaulting to 0.

-- new script action: AddBioDetail. Allows you to add a biographical detail to a character. Three parameters: (1) character name, (2) detail type, and (3) detail value. (Characters can have an unlimited number of detail values associated with a detail type, and you can enter any arbitrary value for the detail type.)

-- new script actions: IfBioDetailGoTo and IfBioDetailRun. These let you move through a dialogue tree and run scripts, respectively, based on whether the named character possesses the bio detail value(s) you enter. The first parameter is the character name; second parameter is the bio detail type; then an arbitrary number of parameters (one or more) are bio detail values that will return a match; and the final parameter is the branch number to go to/script name to run.

-- LASTINLIST[] can now return -1, indicating a list with no entries in it.

-- the Worried mood now imposes Distracted status.

-- wrote a new random event in the main campaign that changes slightly based on the character's biographical details.

CraigStern

#666
-- new special character: -GOD-. Picks from the list of deities that the character worships and substitutes its name (or, if the character is atheist, subs in "no one").

-- the Hire button on the recruitment screen now appears grayed out if you don't have enough money to hire a character.

-- wrote a follow-up event to the new event from yesterday.

-- fixed a few relatively minor scripting errors in the new camp event, added some alternative phrasings into the narration.

-- fixed: individual character Mood prefaces could sometimes show up inappropriately prior to generalized messages occurring during camp activities (like the announcement that no one cleaned).

-- fixed: the game was inappropriately decrementing the length of status effects tied to mood under certain circumstances, causing them to time out before the character's associated mood ended.

-- fixed: you could mess up the game by hammering the escape key during scene fade-outs.

-- fixed: cut scenes were only loading characters in the current roster, meaning that any character who'd temporarily left the team (or was in another roster) wouldn't be saved upon exiting the scene.

CraigStern

Had a playtest!

-- when all of your characters have used turn-ending skills, the game now gives you a prompt asking you if you want to end your turn.

-- fixed a branch name typo that made one of the tutorials lock the game.

-- fixed: unique generated enemies that die would try to generate a memory of falling in battle, which produced a null error because they don't have memories.

-- fixed: poison, shadow, and light resistances were being displayed in the wrong spots in the character screen in battle.

CraigStern

-- you now get a pop-up notification warning you if you attempt to conclude deployment with undeployed characters (provided that there's still space on the battlefield to deploy more of them).

-- if you send a dialogue tree to its current branch via a GoTo-type action, the game now ignores the command instead of getting locked into a (potentially infinite, game-crashing) loop where it re-runs the current branch's actions over and over.

-- added a timer to the game's internal ActionRunner class. If a series of script actions takes longer than 12 seconds in real time for the game to execute (during which time the game will appear frozen), the game now assumes that there is an infinite loop going on and cuts it off.

-- in all GoTo-type script actions, the game now auto-detects if you've entered a branch number parameter that isn't an integer, then--if so--checks for a branch name equal to the string you entered. If it finds a match, it'll use that branch's number as if you'd correctly used BRANCH[] instead of always defaulting to 0.

-- fixed: turns out, the game was using asterisks as delimiters for individual reserve supply lists in the save game class, meaning that using ~* as a shorthand for an apostrophe in item names was actually a big no-no. I've since switched over to using ~~ instead.

-- fixed: when items were passed out to characters from Reserve Supplies in a cut scene where camp activities later occurred, a duplicate copy of those items would reappear in Reserve Supplies in the next scene.

-- fixed: the game would sometimes throw a range error when ending camp activities on character dialogue.

-- fixed a few scripting errors in the Recruitment scene in the main campaign.

CraigStern

-- you can now use a level range for the second parameter of ShowRecruits instead of just a single set number.

-- in the main campaign, the base level of all recruitable characters now increases by 5 when you visit the recruitment area after getting into League 1, with associated dialogue.

-- the Shop interface now gives you a pop-up text confirmation when you buy or sell an item in addition to the "coins jingling" sound and the animation of your money counting up or down.

-- fixed: if you used a script action that checked the value of a custom variable and the game couldn't find that variable, it would just always return false no matter what. Now if you do that, the game will add the custom variable with a value of 0 (if a VAL) or a blank string (if an STR), then perform the comparison.

-- fixed: the AI was not taking into account character resistances and status effect immunities when scoring the impact of status effects on various moves.

-- the AI no longer adds status effects into the equation when scoring moves against targets with an inherent value of 0.1 or less (i.e. most destructible objects).

-- the AI no longer calculates damage from knockback into environmental hazards against targets with a pushability of false.

CraigStern

-- reworked the level-up display behavior when in camp. Previously, if a character gained enough experience to level, it'd display the narration and experience bar, then automatically popup with the level-up screen after 2.5 seconds. Then you'd clear the screen, and finish reading the narration.

Now, it only shows the narration and experience bar, and only pops up with the level-up screen on your next click--then, upon closing the level-up screen, it auto-advances to the next camp activity narration instead of returning to the practice narration.

-- created a floatRng class, the float equivalent to intRng.

-- created a basic 2D particle system from scratch! (An unfortunate necessity, given that Unity doesn't properly display ordinary particles on UI canvases set to display in Screen Overlay mode.) I'm pretty proud of it. It supports a ton of different settings that can vary from particle to particle, including independent x and y velocities, rotation, fade-out, RGBA values, lightness, and independent x and y decay rates.

-- used the new 2D particle system to create a little "sparkle explosion" animation whenever a character's experience bar tops out, indicating a forthcoming level-up.

-- fixed: characters would sometimes say their attack bark when about to attack destructible objects in battle.

CraigStern

#671
Artist feedback!

-- created a new random camp event: a mustebeast has sprayed one of your characters' tents, and you must decide whether to make them sleep in it, give them money and have them spend the evening buying a new tent, or have them bunk with another character for the night (in which case those two characters perform the Talk activity together that evening).

-- new tag supported: ForceNextCampActivity. This forces the character to perform a specific activity during their next time participating in camp activities. Has 1-2 parameters: (1) activity name, and (2) partner name (for 2-character activities, like Talk).

-- new, optional parameter added to IfStringGoTo and IfStringRun -- reverse match (true or false). If set to true, the game will check to see if the specified string doesn't match the supplied value before executing the GoTo or Run part of the action.

-- it is now possible for an early-evening event in the main campaign to guarantee a follow-up event later that evening.

-- the main campaign now strips out blank event list entries before choosing a nightly event. (Still not totally sure how those blank entries got in there to begin with, though)

-- golems, spirits, and units with a wound level are now all excluded from random events in the main campaign.

CraigStern

-- fixed the dialogue parsing function so that forward slashes are now supported within dialogue text! (Which, incidentally, also fixed an issue with the "end formatting" special characters not working right within dialogue.)

CraigStern

-- greatly improved the look of the "sparkles bursting out the end of the filled-up experience bar" effect.

-- new supported string stat for the SetStat action: Player Ref. Changes what word or phrase the unit uses to refer to the player whenever the -PREF- special character appears in dialogue.

-- fixed: you couldn't use ID[] tags to reference characters with the SetStat action in cut scenes.

CraigStern

#674
-- edited the rough draft of the game's new title screen art, stuck it onto the title screen as an upgraded placeholder!

-- received a new background: Psy Academy dorm room! Integrated it into the game.

-- you can now use the name of a custom List variable as the materials attribute for a Shop stock, allowing you to effectively change the types of materials available for generating weapons or armor over time.

-- the main shop in the main campaign now makes use of this feature. Steel has been taken away as a starting material, to be introduced later as a reward for quest progression.

-- prettied up the animated bars that appear over character portraits in cut scenes, fixing some positioning issues they had in the process.

-- fixed: experience bars in camp activities weren't taking character Aptitude into account for purposes of displaying experience gained in the experience bar.

-- fixed: the ForceNextCampActivity tag wasn't getting removed from units after being put into effect.

-- fixed weird issue on the title screen where the game would register button presses outside the buttons.

-- fixed: the game would not play the victory fanfare upon winning a battle offering 0 aura for victory.