Weekly Update #25

Gameplay
  • Introduced stun mechanic – enemy is unable to perform any action
  • Introduced interrupt mechanic – channeled abilities of enemies can be interrupted
  • Player attacks can be customized with a „Knock Back Force” parameter. If set above 0, the attack will push the enemy backward up to 3 meters. Should the enemy collide with an obstacle during the knockback, they will be stunned for 2 seconds
  • Encounters can now be generated dynamically using CombatRating property
AI
  • Created Channeled Ability Node
  • Added new properties to every unit: CanBeMoved, CanBeStunned, CanBeTargeted, CanBeRooted
Enemies
  • Gnoll Shaman:
    • Created base attack cast animation
    • Created looped animation for channeled attack
    • Acid Rain is now casted as Channeled Ability and can be interrupted with knockback
Talents
  • Burn Effect:
    • Burn damage is now scaled with Ability Power
  • Obsidian Scales:
    • Revamped the damage storage system for Obsidian Scales. Damage is now organized into buckets, with each bucket corresponding to an Interval Tick. Each bucket’s damage is distributed individually over its Duration. Previously, all damage was combined into a single bucket, which reset its duration with every hit, resulting in large, uncontrollable damage spikes compared to direct hits.
  • Tectonic Pressure:
    • Ability updated to align with the changes to Obsidian Scales. While the core functionality remains the same—clearing 50% of the damage stored—it now prioritizes clearing buckets with the least remaining duration, up to the total damage cleared, rather than simply halving the stored damage
Visuals
  • Created Stun VFX
UI
  • Added Channel progress on enemies healthbars
  • Healthbars can now display numerical value of enemies health (toggeable with game settings)
  • When new relevant status is applied it will be displayed above healthbar for a brief second
  • Reworked UI for displaying Obsidian Scales into „IncomingDamage” which will show all DoT damage that will be applied to player
Internal
  • Created StatusSystem for enemies to handle actions such as knockback, channeling, stun, stealth
  • Added interrupt property (and event) to countdown component
  • Created GameSettings data object
  • Distance at which player stops before enemy now takes into account size of enemy model
  • Added debug tool for free space detector which returns log if any incorrect (non-convex) collider was found
Bugs
  • Resolved an issue where ambient sounds and pickup effects were inaudible due to the player being loaded asynchronously
  • Resolved an issue where Invulnerable status was calculated incorrectly
  • Resolved an issue where Blood in the Water debuff would persist indefinitely
  • Resolved an issue where Invulnerable effect was bypassed by some damage sources
  • Resolved an issue where healthbars had some values kept from previously assigned enemy
  • Resolved an issue with enemies spawning over each other in „Invasion of Auglen” scene

Balance Changes

Enemies
  • BaseEnemy:
    • Name: BaseEnemy Unnamed
    • CanBeMoved: True False
    • CanBeRooted: True False
    • CanBeStunned: True False
    • CanBeTargeted: True False
  • Skeleton Warrior:
    • CanBeMoved: True False
    • CanBeRooted: True False
    • CanBeStunned: True False
    • CanBeTargeted: True False
  • Skeleton Protector:
    • CanBeMoved: True False
    • CanBeRooted: True False
    • CanBeStunned: True False
    • CanBeTargeted: True False
  • Boar:
    • MaxHealth: 100 150
    • CanBeMoved: True False
    • CanBeRooted: True False
    • CanBeStunned: True False
    • CanBeTargeted: True False
  • Devilish Vine:
    • CombatRating: 2 0,5
    • CanBeStunned: True False
    • CanBeTargeted: True False
  • Devilish Vine Tentacle:
    • MaxHealth: 100 150
    • CanBeStunned: True False
    • CanBeTargeted: True False
  • Gnoll Brute:
    • CombatRating: 1 0,5
    • CanBeMoved: True False
    • CanBeRooted: True False
    • CanBeStunned: True False
    • CanBeTargeted: True False
  • Gnoll Deadeye:
    • MaxHealth: 150 200
    • CombatRating: 1,5 0,5
    • CanBeMoved: True False
    • CanBeRooted: True False
    • CanBeStunned: True False
    • CanBeTargeted: True False
  • Gnoll Shaman:
    • MaxHealth: 150 200
    • CombatRating: 2 0,5
    • CanBeMoved: True False
    • CanBeRooted: True False
    • CanBeStunned: True False
    • CanBeTargeted: True False
  • Gnoll Toughskull:
    • MaxHealth: 400 200
    • CombatRating: 1,5 0,5
    • CanBeMoved: True False
    • CanBeRooted: True False
    • CanBeStunned: True False
    • CanBeTargeted: True False
  • Wolf:
    • MaxHealth: 100 150
    • CanBeMoved: True False
    • CanBeRooted: True False
    • CanBeStunned: True False
    • CanBeTargeted: True False
  • Training Dummy:
    • CanBeStunned: True False
    • CanBeTargeted: True False
Talents
  • Obsidian Scales:
    • Interval: 0,5 0,2
Weapons
  • Simple Sword:
    • CanKnockback: True False