Monsters + Lava + Story Mode

Greetings Wizards,

We’d like to thank all those who have tested the beta so far, your feedback and testing is invaluable to us and the game is getting better every day because of you. Starting in July we’ll be adding larger groups of beta players so we can get more testing and feedback in an effort see where we are at and nail down an official release date.

During the last two months in one of our biggest pushes for new content we added 15 new monster variations complete with new artwork skins and totally new unique abilities. The new monsters include:

  1. Fury – teleports enemies near targets
  2. Tempest – lobs eggs that can hatch into monsters or electric fields
  3. Guardian – shields other enemies
  4. Gryphon – causes ice slicks that all actors slide on
  5. Malignancy – 2 moves per turn and explodes when next to targets
  6. Sticky Blob – upon death leaves expanding goo that halts movement for a couple of turns
  7. Aberration – causes hallucinations for a few turns (see monsters that aren’t real)
  8. Mystic – heals other enemies
  9. Hellion – summons flying spectral axes which can melee or hurl themselves across the room and explode
  10. Dominator – causes a rock cave in that knocks actors around
  11. Skeleton Lord – enemies that die nearby can be raised as a skeleton
  12. Greedling – treasure goblin that teleports in and has great loot if you can kill him before he escapes
  13. Yeti – charges when clear straight line from a distance and causes knockback on contact
  14. Sasquatch – freezes targets (the old Yeti ability, so not technically new maybe)
  15. Mudslinger – lobs mud missiles that obscure the screen

Below is a screenshot of the Mudslinger enemy, this guy lobs clusters of mud at the player that cause a screen space mud splat which obscures the playfield for a few turns before it falls away.

New Mudslinger enemy, causes screen space mud splats

New Mudslinger enemy, causes screen space mud splats

We’ve also now completed the last background environment, a firely volcanic valley and it looks super cool with all the animated particles and parallax layers.

New lava environment background

New lava environment background

Finally, we’ve put a ton of work into getting the story mode complete and playable. We’re proud to annouce now that the entire story is now playable from start to finish. Of course we’ll be tuning the difficulty, balance, and progression going forward but just having the whole thing in there is a huge milestone. Below is one of the new battle arenas that have been created for each of the seven Guild Wizard bosses, these wizards also got a couple of new shared abilities for their fight.

Storymode complete and new boss battle arenas

Storymode complete and new boss battle arenas

Major Changes

– 14 new enemies: Fury, Tempest, Guardian, Gryphon, Malignancy, Sticky Blob, Aberration, Mystic, Hellion, Dominator, Skeleton Lord, Greedling, Sasquatch, Mudslinger
– Entire game is now playable from start to finish
– New “Lava” background environment
– Added Maugris boss
– Added Hosperak boss with unique background environment of the “Master Rift”
– New battle arenas for all 8 bosses
– All Guild Wizard bosses can now teleport, throw a ball of energy, and get 2 actions per turn
– Added end game cinematic scene and music
– New music for the 7 Guild Wizard bosses including new victory music after you beat them
– New music for Hosperak battle

Minor Changes

– Shield now cheaper but protects less
– Sentinel defense decreased by 50%
– Health affix group is now “health minor” and is no longer allowed on body armor
– Added health major affixes that have 2x the benefit but are only allowed on body armor
– Decreased the material cost of many spells
– Decreased singularity damage amount
– Shield now prevents all forms of knockback
– Tweaked the colors for all elemental rifts
– Elemental rifts now contain only monsters from that elemental school
– Added new portals for the master rifts based on the plasma orb effect
– Animated title screen
– Spectral axe now has more health
– Decrease transmute chance for Anomaly
– Wizard/Hosperak bosses now drop materials when damaged 60% of the time
– Golems now have 2 moves per turn
– Drastically less overall spell points are now awarded
– Malignancy now has a 20% change to melee attack instead of blow up
– Followers defense reduced 50%
– Ice guild wizard attack strength reduced 25%
– Lance and sword damage decreased slightly
– Eggs now more likely to hatch monsters
– Mystic heal amount increased and can now be cast on and from champions

Fixes

– Fixed being able to place spell runes in the enchantment shrine
– Fixed spectral axes not dying when their boss owner (or boss ultimate owner) died
– Fixed Tempest eggs not being destroyed if their owner (or ultimate owner) was a boss when the boss died
– Fixed infinite loop crash in the Fury “Advance Skill” logic
– Fixed Maugris quest closing logic so that it is closed when you enter the master rift
– Fixed blue materials setting a minimap floor color
– Fixed AIs always attacking the same target when there was another possible target at same range
– Fixed forgestone UI sizing
– Fixed spectral axe not attacking
– Fixed save game corruption when you got over 128 properties

Company

– Submitted for consideration to be included in the IndieMegabooth at PAX Prime and IndieCade 2016, wish us luck!

Framework

– Detect invalid save games and display an error string in their slot on the title screen, the user can then use the UI to delete the invalid file or at least know there is somethign wrong and report the issue
– Split title sprite atlas into two
– Reworked title sprites to be larger to account for Y translation
– Removed archive method TransferIntAt(), this operation has to be disallowed because an int is written as variable size based on the value … when we need to go back and write values into archive streams it can *only* be done with fixed size data values or we risk overwriting the data immediatley following the placeholder value in the stream!
– Removing boss healing shrine, the normal shrine is refillable by default now and this one is no longer used in boss room marker sets
– Removing generic rift boss level assets now that each of them have their own levels and arenas
– Removing crab from ice wizard and adding sasquatch
– Breaking save game backwards compatability in preparation for new build to beta with complete quest lines
– Markersets now reset to empty and and adding new rows/cols add empty rows instead of floor rows
– Disallow waypoints on boss level
– Ice and Fire bosses now have unique battle arenas
– Fire rift 2nd level now use a different level generator (open room grid)
– Put back the unique blob footstep sound, it was confusing with blos and mudslighers walking around with the same audio
– Cosmic environment now available before Lava because it comes in at a time just after you finish the fire quest, and that feels like too much fire
– Removed default value from attribute properties, this fixes upgrading the attributes to the default value which auto removed the properly and sent it to zero until you upgraded it one more time but the UI was wrong and your items couldn’t be equipped because of it in the mean time
– Fixed town dialog ui not showing the player artwork due to the player not having any lines in the dialog prototype (happens frequently for story quest giver dialog)
– LevelChain can now override the enemies generated if the EnemyPrefabOverride field is set
– Followers and guild wizards are now set as fully visible if they are active in hiearchy so they can do skills even if partially at edge of screen
– Added actor sets for elemental enemy rifts
– Added glow to interact icons above the tower and quest giver inn
– Added sound for Abberration hallucinate cast
– Added loading tip for detecting and disarming traps
– Loading tip text now translates click verb tags
– Added error logs when putting melee/ranged skills in the wrong intrinsic list within the combat module
– Inventory and spellbook can no longer be opened via hotkeys in the intro level
– Switched how storyline states are activated for the final Maugris to Hosperak dungeon transitions, when Maugris is complete we now just give the Hosperak quest so that the portal can be used, first time we enter Hosperak level we close any Maugris quests we find which advances the storyline state through Maugris complete and Hosperak available
– QuestProtoype.CanAbandon is now AbandonAllowed, this is true for all quests except the DungeonInn, DungeonIntro, and TownIntro quests so that if there is some fatal bug in any of the quests that present themselves after Antairt is available … the player can always abandon the quest to return to town (same as before, just new name)
– Added QuestPrototype.AbandonAllowedOnlyWithinPlayingLevel, this is true for the Hosperak quest only to keep the abandon logic working between that last oddball transition
– Added QuestPrototype.ExpireAllowed, this is true for only random generated quests and should not be confused with AbandonAllowed which was being used for both purposes previously
– Cosmic environment now appears later in the game
– Added a plasma map marker since you can now abandon the Hosperak quest and restart it from town … we needed a plasma map marker for the upcoming Gauntlet mode that will use the plasma scene for random dungeons too anyway
– Added Lava Level Chain 02
– Added Player.GiveQuest( … )
– Took EnemySelector and converted it to C# generics and called it HistoricalSelector<PrefabType>, EnemySelector is now a subclass of HistoricalSelector<Actor> … we will now be able to use this selector for levels and other types we want to cycle through and open up as the game progresses
– Generalized the level chain destruction when entering a map to be triggered off of *all* failed quests while we were away
– Fixed FailQuestsInLevelChain() now properly restart the loop
– Added QuestPrototype.FailChainToQuestPrototype, this allows automatic failure of one quest because we fail another … this is implemented for the DungeonMaugris quest so that if it fails (abandons), if the Hosperak quest is present it also fails
– Fixed findOpenSaveSlot() not property restarting the loop
– Guild wizards now have a projectile orb attack
– Missiles can now sync to a wardrobe slot in position and rotation
– Missile fire sound can now optionally exist only during the flight lifetime of the missile (egg toss uses this)
– Added Missile.AnimateScale( … )
– Added MissileSkill.allocateMissile( … ) factory method
– Added WizOrb skill for Guild Wizard missile skill
– Tweaked battle music fade in time for bosses
– Wizard bosses now have 2 actions per turn
– Wizard/Hosperak bosses now teleport 10% of the time (up from 5%)
– Camera no longer unparented during singularity, looks better and also fixes killing boss with singularity and the death ceremony taking over the camera while singularity is still using it … resulting in a messed up camera parented to nothing when the ceremony is complete
– Tweak boss death ceremony text postion
– Spectral axe now has a hit animation
– Bosses now randomly teleport nearby 5% of the time
– Added support for random die roll governed conditional skills
– Added conditional skills for teleport nearby
– AIs now randomly pick between closest targets that are at the same distance … this is done when building the potential target list and randomizing which actors appear in which order at the same distance from the source
– Hosperak can now summon the Mud Golem
– Get actor before we do combat so that if we destroy it, we don’t do double damage by scanning the cell again
– New audio for swamp footstep (blob and mud golem)
– Added some audio effects to mud golem die
– Intrinsic combat modules are now specified in two lists on the combat module with a weight to pick it among their stance group (melee, ranged)
– Remvoed Combat.AvailableSkillPrototypes in favor of the two new list IntrinsicSkillsMelee and IntrinsicSkillsRanged
– Added Hosperak quad attack skill
– Added sound hooks for Hosperak attacks
– Added rumble to Hosperak barrage attack
– Added support to melee attack for unlimited contact frames
– Pushing cinematic player execution order super last so that it can use the tween manager and all other systems
– Added player name replacement to dungeon dialog bubbles
– Triggers can now specify whether the locomotion action that activates them is set to blocking or not
– Ceremony now has the option to restore music or not at the peak
– Added boss and win music fields to LevelPrototype
– Added two new music tracks for the Guild Wizard fights and the Hosperak fight
– Added logic to QuestDungeonBoss that will play and stop the special boss and win music audio clips
– When transitioning music tracks, the next transition time is now preserved
– Added music support to end scene cinematic
– Protect against Barrage skill freezing the game
– Marked Hosperak as fully visible when active (via AI component flag), this allows him to execute his skills when his tentacles are not fully on screen … since they are so big we don’t care
– Better ToString() for event scheduler event handle when not set
– Paul, Audrey, and Alan now teleport in as you walk through the final approach to Hosperak
– Added Quest Trigger 01-04 actors, and placed them in the Hosperak room to do the cast member spawns
– Added actions to Hosperak quest to spawn the cast members via triggers
– Added quest condition “match subject” and “player owned”, used by the final cast member spawns via trigger in Hosperak level
– Removed unnecessary triggerActor from Trigger virtual callback, it was confusing and can always be found via this.Actor
– QuestActionSpawn can now immediately put cast members into the party and execute ther on join dialog
– SpineController now manually calls LateUpdate() once if you ask for the bounds of the object and it has never been rendered so that we can use the mesh bounds in the query
– Added QuestTrigger component, a subclass of Trigger that sends quest events when executing the trigger logic
– Added a set of actions to QuestPrototype for a new quest event TriggerActivated
– Renamed all quest condition .prefab files to be prefixed with “Is” for clarity
– Removed generic lava level chain from the standard world levelchains, we don’t want to use those levels for random generation … yet.
– DialogUI now supports multiple participants in town and is in use for the final quest giver dialog for the Maugris quest
– Removed parsing support for the unused “final_boss” dialog lines
– Added some logging to try and track down if the map regen save game load errors are real or are they from hackers
– Updated title screen background image
– Town dialog now supports 3+ speakers, works for text, but still need to do the avatar visual changes in the DialogUI
– The portal from the Maugris battle to the last Master Rift level now works
– New plasma background effects that scroll on a sphere in the plasma backdrop (better motion than two rotating planes)
– Leves can now override the next/prev portals to use via new fields in LevelPrototype
– Added logic to Maugris quest to activate the complete game state upon quest complete and activate the hosperak available state (which generates the quest and makes the portal usable in the boss room)
– Upped the resolution of the plasma texture used for shield orbs and gate effects
– Added support for Dungeon_Maugris dialog import
– Imported latest Google Docs data for Maugris and Hosperak quests … ran dialog importer to generate prefabs
– Hooked up all prefabs for Maugris and Hosperak quest dialog, actions, cast members, etc
– Renaming “master rift” folder to be “hosperak” as phase two in the split of Hosperak into Maugris and Hosperak data sets
– Separating Hosperak quest and levels into two quests and level chains … one for Maugris (Laval) and Hosperak (Plasma), each with their own quest as well
– Linked effects for cosmic gateways so they can be turned on and off
– Boss minion summons are now more mixed up instead of just a single enemy type per wave
– Setup Hosperak minion summon roster
– Missiles that “enter world at target” are essentially summons, and are now tracked in the owner summon inventory when required (bosses and ultimate owner bosses)
– Actors summoned by special quality owner (or ultimate owners) are always tracked in the owner inventory and are always auto killed when the owner is killed
– Added support for actors to specify which animation to use for summon skills via Combat.SummonAnimation field
– Added support for contact02 anim event
– Added support for magic animations 3 through 4
– Added double attack melee skill for Hosperak that also does knockback on both hits
– Added support to MeleeSkill to have an additional attack
– Fix crash in falling missile skills that don’t allow repeats
– Missing file from last checking that added support for more missile points used in the barrage skill
– Hosperak Barrage magic attack now works
– Added BarrageSkill and BarrageSkillPrototype … a generic skill that can shoot missiles up before raining the down
– MissileFallingSkill now supports repeat picks of the same target cell (up to a max)
– Added Missile.FireSettings.TargetPoint so that skill logic can customize the target point (barrage uses this to make the first missiles fire up)
– Added Missile.TargetPoint.VerticalOffScreen
– Missiles that fall now have a height multiplier random range to create offsets among groups of falling missiles
– Added MissileSkillPrototype.MissileSpawnCell as a formal separate field of where to create the missile actor (user cell or target cell)
– Final Hosperak level has a new “plasma” style background
– Added a whole new variation on the cosmic level with a “plasma” backdrop
– LevelPrototype can now also have a set of colors to pick from
– Level colors selected now save in the archives the color source (LevelPrototype or LevelChain)
– Levels can now override the display name set in LevelChain they are a part of
– CellSetColors can now specify a color for the main camera background clear color
– Added “magical” background to end cinematic
– Removed read/write flag on shield orb texture
– Unifying all particle texture settings
– Skill.OnMissileReachedTarget() now returns the combat result to the callers (if any)
– ShieldPointsRemainingProperty is now aggregated (max) so that we can ask the actor for the value and it will be found within the shield child modifier property collection
– Hooked up end scene after Hosperak’s death
– Removing last elemental enviornment actors
– Cinematics are now capable of displaying more than one line of text per slide
– Moved placeholder end cinematic text onto the Dungeon Hosperak dialog tab and data
– Added CinematicPlayer, a component that will auto play a cinematic put into a scene
– Created “End Scene.scene” for the end game cinematic
– Created placeholder end cinematic prefabs, material, images etc.
– CameraManager now automatically readies the persistent cameras in scene without game logic present (title scene and end game scene)
– Removed Hosperak Portal and support in LevelPrototype to override the exit portal for a level (that was such a lame hack anyway)
– Hooked up Hosperak audio for laugh and die, added events to sping rig for them too
– Ceremony target camera positon will now use the “Ceremony” slot if found in the Wardrobe
– Wardrobe can now optionally specify a slot to use for the dialog bubble positioning (Hosperak uses this cause his tentacles screw with the normal bounds calculations)
– Wardrobe can now overide the idle animation
– Renamed Hosperak standing idle animation to Special_01_Loop and added animation support for it
– Animation Die_Loop_01 is now Die_01_Loop (renamed Guild Wizard boss spine anims to fit it)
– Animation Die_Start_01 is now Die_01_Start (renamed Guild Wizard boss spine anims to fit it)
– Added animation support for Special_01_To_Idle_01
– Added logic for Hosperak start in standing idle and transition to attack mode after dialog
– Added Hosperak Portal prefab and placed it the Hosperak room marker set
– LevelPrototype can now optionally specifcy an “exit gateway” prefab override
– Imported latest Hosperak quest dialog
– Hooked up Hosperak dialogs
– Added marker sets for Hosperak and Maugris boss rooms
– LevelPrototype.BossLevel field is now GhostFormShortDuration, which now uses the corresponding renamed field in CombatManager to get the short duration value
– Added display names for all shrines (need to make the link once Phil checks in tho)
– Hosperak level now accessible from debug travel to menus
– Created standard level chain for lava theme
– Removed “Elemental Rift” environment assets
– Reorganized build settings for proper scene order (in general)
– Hosperak quest is now generated and accissible after the Cosmic quest is completed
– Removed old map marker ids for elemental rifts
– Reorganized a ton of the Rift level data so that it can be used for “standard” rift levels and shared with “boss” rift levels
– Added flag to level chain prototype to show/hide the difficulty for a level on the map markers, quest details, and quest listing uis
– Added Lava Scene and a ton of prefab data for “Lava” style levels (used for Hosperak Boss Level)
– Removed alpha complete settings from Cosmic Complete game state
– Removed flag from app serivies for “stop at alpha complete”
– Elemental Rift Scene is now called “Rift Scene”
– Renamed Cosmic/Levels/Elemental Rift to Cosmic/Levels/Rifts
– Deleted a lot of old unused assets for ice castle, sky castle, etc
– Moved all backdrops out Cosmic and ElementalFire and into Environment/Themes/_Backdrop subdirectories for Stars, Vortex, and Lava
– Updated Guild Wizard colors so the eye and staff show the element they are weak against
– Setup Maugris resist/weak and to summon skeleton lords
– Added spherical effect for all guild wizard staves
– WardrobeEffect can now color via MeshRenderer components
– Created Maugris
– Created some cast data for Hosperak Quest
– Reorganized the debug spawn menus to have a guild wizard menu off a new submenu for “Other”
– Added versioning code to auto remove spells from enchantment shrine target inventories and put them back in the player spell inventory
– Added actor class for “enchant allowed”, added it to all weapons and armor and set as a filter class for the enchant shrine target inventory allowed classes
– Renamed Upgrade Allowed/Restricted actor class prefabs to be Item Attibute Update Allowed/Restricted to be consistent with other class attribute naming