feat: implement dash movement state with velocity calculation and cooldown logic

This commit is contained in:
DottsGit
2026-06-04 11:36:30 -04:00
parent 02c6caa0d6
commit 5c2d648801
+11 -8
View File
@@ -61,15 +61,18 @@ func exit() -> void:
func update(delta: float) -> void: func update(delta: float) -> void:
elapsed += delta elapsed += delta
if elapsed > params.dash_duration: if elapsed > params.dash_duration:
# Transition to air with preserved velocity (slight decay)
machine.player.velocity = direction * _exit_speed * 0.85 machine.player.velocity = direction * _exit_speed * 0.85
machine.switch_to("air") if machine.player.is_on_floor():
machine.on_ground = true
machine.switch_to("ground")
else:
machine.switch_to("air")
return return
# Maintain dash velocity — no gravity, no friction # Maintain dash velocity
machine.player.velocity = direction * _exit_speed var vel = direction * _exit_speed
machine.player.move_and_slide()
if machine.player.is_on_floor(): if machine.player.is_on_floor():
machine.on_ground = true vel.y = -0.5 # Snap to floor to handle ramps
machine.switch_to("ground")
machine.player.velocity = vel
machine.player.move_and_slide()