
Weekly Update #34
Gameplay
- Reworked the dash mechanic to make it smoother. Instead of relying on the root motion of its animation, the dash is now fully controlled by code.
- Introduced DashStyle enum to ensure all systems read a unified dash
Developer’s Note:
Regular: Dash forward given distance. Ambush: Ends just behind an enemy, allowing for a backstab. Lunge: Closes the gap between player and enemy, ensuring immediate attack readiness.
Dash behavior is now handled more systematically with DashStyle, preventing redundant detection logic across multiple systems. Ambush-style dashes intelligently adjust distance to avoid overlapping with enemies, while Lunges ensure that the player doesn’t stop awkwardly short. A distance buffer has been introduced to refine movement logic, extending dashes slightly when necessary for better flow and combat engagement.
- Added a buffer system to fine-tune dash distance. If a dash nearly reaches its target but falls just short, the buffer extends it slightly to avoid anticlimactic stops.
- Dash ability now supports customizable charges
Developer’s Note:
The dash ability can have multiple charges, each with its own independent cooldown. This allows players to chain multiple dashes in a row, significantly improving character mobility. For testing purposes, the player starts with 3 charges, but in future releases, this will be tied to permanent progression upgrades, starting with 1 charge and unlocking additional charges as the game progresses.
- The player now deals 50% additional damage when attacking from behind, applied exclusively to weapon-based damage.
- Attacking immediately after a dash now triggers a Dash Attack, thrusting the sword forward for high damage if it connects. When using the Ambush dash style, the player will automatically rotate toward the dashed-over enemy, ensuring a backstab and maximizing damage.
- Enemy turn speed is now based on the angle difference instead of instantly snapping to face the player, ensuring a more natural and fair response to movement.
- Enemies now spawn with a short delay between each other to prevent instant overcrowding
Visuals
- Post-processing is now separated to enhance visual clarity. The environment has a darker tone, while interactive elements such as enemies, projectiles, interactable objects, and the player remain brighter, making them stand out more effectively
UI
- Healthbar focus is now managed by a single system, preventing cases where multiple healthbars were highlighted at once—or none at all—even when actively engaging an enemy
Internal
- Created a property for units that calculates the angle between the player’s forward vector and the enemy. This is used to detect which enemy is closest to being directly in front of the player.
- The dash ability is now represented as a ScriptableObject, which defines its distance, duration, and animation.
- Added a DamageSource property to Damage data, distinguishing whether damage was dealt by a weapon or an ability.
Bugs
- Fixed NullReference Excpetion thrown when player tried to attack whithout weapon equipped
- Fixed an issue where floating damage was always displaying base damage value – without applied damage reduction, or without critical strike multiplier