Dodge

The key words MUST, MUST NOT, SHOULD, and MAY are used as in RFC 2119.

A forward roll in the facing direction at the moment the dodge starts. Dodge is free — no stamina or resource cost — so its balancing cost is animation commitment plus a short invincibility window: a poorly-timed roll is a punish (see Player State Machine → Action commitment).

Phases and timing

PhaseWindowBehavior
I-frames0 … DODGE_IFRAME_DURATION (0.2 s ≈ 11 frames)Invincible: a hit does no damage and does not interrupt the roll.
Move0 … clip_length × DODGE_MOVE_FRACTION (0.7)Velocity at DODGE_SPEED (7.0) in the cached direction; edge-checked so the roll will not leave the floor.
Recoveryrest of the clipVelocity zeroed; crouch-and-stand plays out. Fully vulnerable.

Reference

The in-repo dodge-debug tool (web mock at #/dodge-debug) visualizes the roll and i-frames for tuning — to be ported here as an interactive view.

Implemented by

Status: implemented (#273, tightened by #377)test_player_states pins both sides of the 0.2 s window; test_action_commitment pins the no-cancel rules.

← Mechanics