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

-- the game now tracks stats for each army over the course of a battle (Kills, Deaths, Damage Dealt, Damage Taken, Turns Taken, Sacks Grabbed, Sacks Dropped, Victory, and Bonus), and calculates a score for each army based on those stats.

-- implemented the ScoreBonus script action. Battle only; adds to the existing Bonus points for an army. Two parameters: (1) army number and (2) bonus points. (Note that bonus points can be negative if you want to penalize a player!)

-- the game now successfully saves and loads player info during mid-battle saves (including alliances, army name, army color, whether it is AI controlled, and all score data for that player).

-- new script action: SetWinAura. Battle only; alters the aura awarded for winning the battle. One parameter: operation (i.e. operator:amount).

-- new script action: SetLossAura. Battle only; alters the fraction of the "win aura" awarded if the player loses the battle. One parameter: a float value between 0 and 1.

-- fixed: the game didn't clear the undo stack after a character dropped an item onto the battlefield.

-- fixed: enemies in the Qualifier battle would treat the training dummies as valid attack targets if you chose to skip tutorials.

CraigStern

-- Telepath Tactics had a pretty awkward awkward method for setting up the armies for each level. Rather than force people to set this stuff up using a bunch of conditions, I've rewritten things so that you can simply define the armies with all of their characteristics directly in each level using the new Army tag. Like so:

<Army num="0" humanControlled="true" name="The Dawn Brigade" color="Blue" alliedWith="2"></Army>
<Army num="1" humanControlled="false" name="Begnion" color="Red" alliedWith=""></Army>
<Army num="2" humanControlled="false" name="Greil's Mercenaries" color="Green" alliedWith="0"></Army>


Next up: adding an interface to the map editor to create these!

CraigStern

-- when you create a new map in the map editor, it now automatically opens the Map Settings window so you can set music and armies.

-- there is now a dedicated armies interface in the map editor! This lets you easily add and remove armies, customizing the name, number, color, alliances, and human-versus-AI-control for each.

-- the map editor now successfully saves and loads custom army data to and from each map.

-- army names can now make use of special characters (including stored custom strings and the like).

-- the conditions fields in the map editor now have predictive text suggestions!

-- replaced all the text fields in the map editor's new map window, map settings window, map conditions window, paint palette window, menu bar, and all the menu bar's button labels and tooltips.

CraigStern

-- the campaign editor now displays (and allows you to browse through) custom items and skills for your campaign. (Note: there isn't an actual editor for either of these things just yet. But hey--one thing at a time.)

-- the campaign editor now only lists characters you've personally created for your campaign (default characters will still be available to use in the map editor and in-game from the get-go--they just won't show up as available for deletion or editing).

-- in the map editor, replaced the janky text field interface for setting army and rotation in the New Unit window with far-more-intuitive (and less error-prone) buttons.

CraigStern

-- the campaign editor now has an editor for creating and editing dialogue and scripts for your campaign's PersistentDialogue.xml file.

-- the campaign editor now successfully loads and saves from the current campaign's PersistentDialogue.xml file.

CraigStern

-- replaced the text fields in in-combat damage and text pop-ups with TextMesh Pro versions. Pop-up text now looks much sharper and cleaner, and varying colors of pop-up text are finally supported!

-- the Victory Box now displays battle stats for the victorious player, and tallies them up along with total player score.

-- created a new Passive: Prodigy. Characters with this passive improve in 1 extra stat with each level-up.

-- fixed: the game wasn't saving the focusGain property for characters in mid-battle saves, meaning that when the battle reloaded, they wouldn't regain Energy at the start of the initial turn.

-- fixed: characters could increase Counter Limit on level-up even if they didn't yet know a counterattack, resulting in only one stat showing up as increased on the level-up screen. (The game now simply won't select Counter Limit as a stat to increase on characters who haven't yet learned a counterattack.)

-- fixed: the game would treat AI-controlled characters as frozen or stunned for an extra round beyond when the status effect actually wore off, skipping their turns.

CraigStern

-- received a brand new cut scene background and incorporated it into the game: the Psy Academy! :D

-- new character stat added: Leadership. This will function a lot like Personality did in earlier games in the series, determining the maximum size of a team the character can command.

-- altered the quality parameters on item generation. Quality affects the item between levels 0 and 10. For most equipment, positive modifiers now start appearing at quality level 1; negative modifiers disappear entirely by quality level 3; all of the strongest modifiers unlock at quality level 4; and quality levels from 4-10 each increase the likelihood of getting a positive modifier (as opposed to no modifier at all). At quality level 8, for instance, you are guaranteed an item that is, at a minimum, Fine quality; at quality level 10, everything is either Superb or Peerless.

-- fixed: the game was ignoring forced items when generating unique characters. Unique characters generated with a generated inventory who are specifically forced to have particular armor will no longer generate armor as part of their generated inventory.

-- you can now set materials and quality parameters for generated items directly assigned to a Unit spawn in battle! Item name, materials, and quality are delimited by vertical bars, with separate materials delimited by colons. This, for instance, when in the inventory parameter of a Unit tag in a map, will generate (and automatically equip) a proc gen vest made out of either Leather or Boiled Leather using a randomly chosen quality level from 3 to 5:

GEN:Vest[E]|Leather:Boiled Leather|3-5

-- similarly, you can now set available materials and quality level within the Generate Inventory parameter of the GenerateUnit and GenerateUnique script actions, provided it's set to true. (Available materials will need to cover all equipment types, so make sure to include both weapon and armor materials.) Here, as above, you'll be delimiting using vertical bars. For instance:

true|Leather:Boiled Leather:Wood:Ceramic:Iron|2

-- fixed: the game would sometimes decide that every army on the battlefield was allied with the player, resulting in army 1 immediately "winning" the battle via Kill-All Victory when the game detected no enemies left on the field for them.

CraigStern

-- revamped a bunch of the tutorials with sprites as visual indicators.

-- you can now exit the character screen and army overview screen in cut scenes with the escape key.

-- fixed: the game was allowing units to spawn on an occupied space. Instead, the game now checks to see whether a unit is about to spawn on a space already occupied by the same category of unit (character, object, or bridge), and if so, it automatically finds the closest available space to spawn the unit on instead. If there is no available space anywhere on the entire battlefield, then the unit simply doesn't spawn.

-- fixed: the AI was charging on ahead when characters leveled up or triggered dialogue during the computer's turn, making moves beneath the level-up screen or dialogue menu. When the level-up screen or dialogue menu appears in the middle of an AI turn, the computer now pauses and waits for it to go away before continuing.

-- fixed a panoply of small graphical issues in the UI.

-- fixed a small scripting error in one of the random nighttime events.

CraigStern

Today was focused on AI improvements!

-- I massively improved the way the AI was scoring proximity to other characters when evaluating long-term moves, as well as its evaluation of how dangerous those moves would be in the short term.

-- the AI now calculates long-term moves that send healers closer to injured allies.

-- when evaluating long-term moves for healers, if the healer possesses no offensive skills, the AI now eliminates moves which send them toward the enemy from consideration. For healers who do possess offensive skills, the AI simply scores those moves lower than before.

-- AI-controlled units who possess no skills (for whatever reason) will now always retreat from danger in combat.

-- AI-controlled units who have too little energy to use any of their skills will now retreat until they recover enough energy to use skills again.

-- replaced all the text fields in the Generate Unit window in the map editor with TextMesh Pro variants.

CraigStern

-- finally finished replacing every last text field in the map editor with TextMesh Pro variants!

-- as a pleasant side effect of the above, you can now use the Tab key to switch between text fields in the same screen within the map editor, making things like entering in map conditions or editing unit properties much less of a hassle.

CraigStern

-- received and incorporated the nighttime variant of the Psy Academy cut scene background.

-- updated all the text fields in the menu bar, new scene window, and edit narration window for the cut scene editor.

CraigStern

-- created all water and lava transitions for the new single-width terrain tiles for the Dirt, Grass, Sand and Snow tilesets.

-- created tile data for all of the new transition tiles.

-- wrote auto-tiling logic for all of the new transition tiles.

-- fixed: tile data for a handful of assets had been accidentally overlooked.

CraigStern

Spent some time testing new permutations of the new terrain tiles--found some incompatible combinations and gave artist feedback.

-- updated all the text fields in the load scene window, edit background window, edit dialogue window, edit shops window, edit roster window, select unit sub-window, and cut scene settings window for the cut scene editor.

-- updated all the text fields in the load scene window in the map editor (which I'd apparently overlooked before).

-- fixed: the cut scene editor can now display a preview of a shop live in the frame without triggering a null error.

CraigStern

-- updated all the text fields for the cut scene editor's edit shop window, edit stock sub-window, select items sub-sub-window, edit menus window, edit menu window, and edit menu button sub-window. With that, all of the text fields in the cut scene editor have now been successfully replaced! The only editor left to give this treatment is the character creator (which is good, because I'm starting to get really tired of this).

CraigStern

-- created a new button graphic, "Randomize."

-- began replacing all of the text fields in the character creator. Finished so far: the unique-vs-generic window, the species window, the class window, the gender window, the naming window, the portrait window, the default expression sub-window, the stat growths window, and the starting stats window.

-- replaced the old number pickers everywhere they appear in the interface with the newer, snazzier version.

-- adjusted my custom intRng class so that it now successfully parses integer ranges beginning with a negative integer.

-- added stat icons to the stat growths and starting stats windows in the character creator, providing an instant mouseover reference for what each of them does.