Skip to content

Batch 56 · Actor-owned dash and shared status timing

2026-10-27. Starting HEAD 4c93a096; implementation 41f13af2, separate from this documentation checkpoint. A grouped R3 checkpoint, not completed R3/F2 or active shared-arena combat.

Change

PlayerDashExecutor owns ordered dash admission/wait/completion per actor. AbilityHolder's existing Dash entry delegates to it; LegacyPlayerDashHooks preserves cost/character/pause reads, ordered perks, stamina/impulse/feedback, Soldier ammo contribution and the original weapon-hide coroutine host. Generation checks retire queued/older completion after cancellation or another accepted dash. Player disable, life death/revive and run participant release invalidate execution. Perk work already applied, shared Ability runtime/cooldown state and global ability workers remain compatibility work, not newly isolated ability ownership. Legacy input still admits production dash; shared-scene assigned commands are not connected to it yet.

EntityStatusCycle handles shared poison/burn application/removal/ticks, stun and freeze completion using existing Entity state and explicit delta. It preserves dictionary/source types, source keys, replacement/iteration/timing quirks, virtual damage dispatch and Enemy's post-base resistance override. Existing reset fields/order remain; reset now invalidates previous freeze completion. An original controlled iterator produced multiplier 0.5 after reset; guarded completion keeps 1. This is a scoped lifecycle correction under PC-03, unrelated to GAME-01.

Lightweight evidence

A controlled headless Play Mode capture records 70 original dash cases (ten variants × all seven released characters) and 14 shared status cases. It manually advances production iterators, inspects authored waits and simulates the actual Rigidbody2D impulse under controlled physics. Status ticks use capture delta 0.1. This measures state/arithmetic/commands, not wall-clock timing, input dispatch or movement feel. The first fixture capture lacked AudioResources for the Soldier reload path and exits 1; adding the scoped in-memory resource object permits original capture, exit 0 in 29.684 seconds. No game defect is inferred from fixture setup.

DashStatusReference.json retains original source/AbilityHolder/Entity identity and observations, SHA256 9fc88f31a2451e92415939ca7be2affa514e3c8073203f76a681338a2a9ab1c0. Normal outputs compare against that immutable capture; the old erroneous freeze-reset result is retained separately as the intentional correction's before evidence.

Focused run exits 0 in 35.909 seconds, Unity 6000.2.8f1, Linux64 headless: all 70 dash + 14 status cases match; eight dash ownership groups, one actual player death/revive dash-retirement group and one freeze-reset guard group pass. They cover paused/insufficient/exact-cost admission, retirement before start/during admission, older/newer execution and player isolation. Original cases cover character costs/durations, Malice order, reload states, zero-force public execution, status replacement/expiry/overlap and one non-damaging Enemy override. Selected unrelated ability admission stays blocked; this does not execute every perk or full enemy DoT combat.

Batch-55 damage/life regression exits 0 in 19.160 seconds: 28 original damage/status cases, eight pipeline groups, four original revive cases and two callback groups. First import's Script Updater reports transient unresolved new types before importing them; the new types compile and the focused runner executes successfully, and the subsequent regression log has no C# errors. Existing CS8785 generator warnings remain; accepted runs contain no exception heading. No native build/control test, complete pause/reconnect/coroutine campaign, physical-device or Windows qualification. Batch 52 remains the latest native smoke.

Preservation and continuation

All 7,798 captured project files outside five intended source edits match; ten source/reference/metadata files are added. Non-dash AbilityHolder code and shared Entity damage/pool/feedback methods are byte-preserved. Scenes, prefabs, authored data, old metadata and existing baselines remain unchanged. Reviewed generated Linux-toolchain package entries and attributed Unity session prefs were archived/restored to original bytes; normal game data files/membership match. Unresolved audio deletions and untracked Linux.meta remain excluded. Raw logs/backups stay outside Git.

All 27 workstream follow-ups remain open. Continue explicit R3 capability composition: inject character/pause/ability dependencies, consume assigned commands once, own simulation updates and finish actor/run participation. R4 must replace remaining perk/service/cooldown/worker adapters before complete combat integration. Preserve character-specific live attack/stat routes and the grouped lightweight workflow.