197 Commits over 59 Days - 0.14cph!
Fixed a HitInfo constructor not assigning PointStart (should fix some blocking irregularities)
Increased belt size to 12 (to cater for the primary/offhand slots)
Added an ItemContainerSource for the primary/offhand equipment slots (points to belt)
Fixed requiredEquipmentSlotType on DropMe not working for non-wearables
Added a primary equipment and secondary equipment ItemContainer to PlayerInventory
2 slots each
Reduced belt size back down to 6
Updated Inventory Menu to point to the new containers
WIP weapon switching work
Attempting to make equipped items update automatically after being equipped
Fix not being able to equip spells in offhand slot
Reverted the spell commit from yesterday
Q to swap equipment sets (not currently working, code is setup though)
Some belt stuff
Updated PlayerInventoryProperties so sword, shield and staff start in the correct equipment slots
Ran CodeGen to make new button input work
Updated Data.dll with new primary/secondary containers
Hopefully fixed the weapon disappearing bug
Reduced belt size back down to 4
Merging equipment_slot_rework
Potentially fixed impact sounds not playing when getting hit
Shields have an exposed ImpactSoundDefinition that gets played when the player blocks an attack
Hooked up Block-Wood to the current test shield
Basic shield bash implementation
New RPC conditional - IsActiveSecondaryItem
Moved some shield bash logic out of BaseMelee into BaseShield
BaseShield now derives from AttackEntity (since a shield can now attack things)
Exposed an ImpactSoundDefinition field for when a shield bash connects with a target (just put the regular wooden block def in for now, sounds ok)
Exposed bashDamageTypes on the BaseShield to control how much damage each bash can do (38 with 7 variance right now, same as sword)
Fixed not being able to equip tools in Primary Slot
Exposed a valid Categories field on DropMe, primary slot can take Primary and Tool, secondary slot can take Offhand only
Can no longer equip a weapon that blocks the offhand if you have an offhand item equipped
Can no longer equip an offhand if you have a primary weapon that blocks offhand
Fixed NRE when equipping clothing
First pass on StatusEffects framework
Effects are defined via a definition file in Resources/StatusEffects/
Currently adds and removes the effect over the network (based on the duration of the effect specified in the definition)
Pressing H while holding a shield triggers the Poisoned effect in the editor (for testing)
Status Effects can now mark themselves as related to a metabolism effect, the corresponding VitalNote on the HUD will be displayed while that effect is active
Enabled poison VitalNote and filled in the text so it reads correctly
Status Effects can now apply damage over their duration (standard DamageTypes list implementation)
Added an ItemStatsProperties field to StatusEffects (same as Items) so status effects can now modify movement speeds
Fixed starting shield not being visible when game starts
Fixed issue where repeatedly equipping and unequipping a weapon would stop the weapon from appearing
Rehooked up shield effect on the prefab
Status Effects now spawn and destroy their fxPrefab
Added a terrible particle effect to Poison to demonstrate
Items not held as primary no longer modify the HoldModel
HasShield animator param on ModelState should now be correctly assigned
Mapped Health, Mana and Stamina fields on StatusEffects to appropriate stats (Pool and Per Second modes work)
Hooked up crit chance modifier on effects
Theoretically hooked up the protection values (Physical, Heat, Cold, Poison, Magic, Decay - same as items)
Status Effect protection buffs happens after shield damage has been calculated but before damage is dealt to the player
Added some damping to the shield animator params on the PlayerModel
Fixed some exceptions for StatusEffects with no stats assets
Added a basic stun field to StatusEffect, just locks off all input (except UI) right now (needs some effects, it looks like the game locks up)
Instead of just putting all of the examples onto Poison, made a few other examples to showcase actual functionality:
-ProtectionBuff raises all damage protection values to max
-Stun
-Weakness temporarily lowers the max HP and Stamina by 50
Exposed a field to assign an NPC a chance to add a status effect on impact
Spider attacks now apply poison status effect
Added a RemoveOnDamage field to StatusEffectDefinition
Added a new FastHeal status effect that heals over time and gets removed if the player takes damage
Added a console command to add effects to the local player eg. statuseffects.add poison
Removed the status effect slot on the shield, not necessary with a console command
Poison no longer slows
Added a new Slowed effect to show how to slow down the player
Added a StatusEffectFullscreenFX manager that enables/disables fullscreen UI roots as necessary
Hooked up the spell charging bar
Moved status effect fxPrefabs into the standard Effect system
Fixed charge effect on fireball spell not working (was missing an EffectRecycle)
Fixed spell charge bar looking weird after casting multiple spells
Hooked poison effect up to the Poison fullscreen fx
Added Bleeding and Frozen effects to demo all of the fullscreen effects
Added ability for ItemStatsProperties to lower protection values (previously could only do positive values)
Bleeding slows by 20% and deals 5 dmg per second for 10 seconds
Frozen stuns the player for 5 seconds, lowers all damage resistances and will break when the player takes damage (so the hit that breaks the freeze should do a lot of damage)
Added an onStatusEffectsChanged callback to GlobalMessages
Fixed ArmorIndex ui element not checking status effect protection values
Added a statuseffects.removeall command to remove all active effects
If an effect is added while the same effect is already added, the duration of the existing effect is reset rather than adding a new effect
Fixed bleeding effect healing rather than hurting
Fixed damage from status effects procing the status effect on hit of an NPC (should fix effect spam)
Effect procs for NPC attacks are now an array of Effect/Chance rather than just a single effect
Fixed cast channelling bar appearing when attempting to cast while not holding a staff
Fixed Shield not calling base.OnHolster (fixes shield getting left on in 3rd person when switching weapons)
Tweaked third person orientation of shield
Reworked some stun condition checks to still let some systems run during a stun (fixes the stun fullscreen fx not playing properly)
Removed some unused fields from ItemProtectionStats, including the whole ApplyForSeconds section
Can now only modify a PoolValue and ValuePerSecond
Can now set PoolValue and ValuePerSecond at the same time, so an item can increase a stat and modify that stat per second at the same time
Might have fixed itemstats not getting marked as dirty if a float field for Health/Mana/Stamina was modified (would explain the changes that keep getting lost)
All status effects are removed when killed
Hooked up spell cooldown UI
Moving while channelling a spell cancels the spell
Fixed player movement not fully being disabled during a stun
Also fixed gravity not being applied during a stun
Added a StatusEffectChance list to TimedExplosive to apply effects to units in range of an explosion
Minor fireball now applies Poison5-30 (for demo purposes)