Batch 29 · Combat, weapon and ability ownership¶
2026-10-26. One R0 contract/source-audit batch after the owner-requested checkpoint. No gameplay, scene, prefab, package, settings or save changes during this batch; no Unity/player test or build. Tutorial and GAME-01 remain parked.
Checkpoint saved first¶
Local commit 93d92282af49cd67a16e2222fdadfea24a73860e on codex/checkpoint-stabilization-and-r0-20261026 saves 114 reviewed files through batch 28, including the incomplete batch-25 Tutorial work. It is an in-progress checkpoint, not a stable release. Staged whitespace and common credential-marker checks passed; 12 new metadata files have valid distinct GUIDs and existing companion files. All 114 committed blobs match their filtered working files at commit time.
The existing 655,360-byte nonempty index lock was preserved. An isolated temporary index created the commit on a separate branch without changing current branch HEAD 5347e460 or the original index/lock bytes. Unexplained audio/Plastic deletions were excluded and their prior blobs retained in the checkpoint. Generated Linux metadata and empty-diff URP status were excluded. No push was requested or performed. Active-checkout dirty status still compares against the old HEAD; it does not mean the checkpoint is missing.
Checkpoint preparation trimmed trailing spaces on four empty scalar fields in added Tutorial components 697363605/697363606. A byte comparison confirms those are the only differences from the saved pre-formatting scene. No values/references changed. Tutorial scene bytes are outside the 608-file gameplay pin set; those pins remain unchanged. These formatting edits preceded the batch-29 source snapshot.
Contract and evidence¶
The combat contract records per-player ability/cooldown/effect authority, per-weapon admission/reload/procs, complete attack-payload preparation, pooled lifetime, target-query differences, companion/evolution adapters and ordered damage/resource/stat hooks. It names current behavior to retain, implementation dependencies, removal conditions and CA-01–CA-05 follow-ups. New ownership is proposed, not implemented.
- Ability definitions: 121 assets against 101 enum members, 124 rows including three missing-asset enum entries.
- Upgrade routes: 177 assets and direct boot membership/import fields; no promise of reward acquisition.
- Source map: 56 lexical category rows across 35 scripts.
- Binding map: 96 records, 88 direct and eight inherited stripped references; inheritance/overrides remain import-verification work.
- Persistent calls: 428 method-name candidates across six serialized files, all declaring WeaponEvoData targets, covering 28 methods. Target identities are checked statically; live invocation/dynamic arguments remain unverified.
- Comparison cases: 26 source-derived expectations for timing, arithmetic, hook/random order, shared-state isolation, payloads, target loss and evolution compatibility. They are not executed gameplay tests.
The scan covers 1,256 serialized files. Risks include global potion cleanup keyed only by ItemType, shared asset cooldowns/global worker keys, serialized visual-duration queues, partial pooled-payload reset and omitted child-attack ownership. These are source findings requiring focused runtime characterization, not claims that every combination visibly fails.
GAME-11 is narrowed: old Goblin King upgrade assets have obsolete numeric effect ordinals and no direct boot-catalog/incoming serialized GUID route in this scan. No authored current effect array resolves to GKARMOR/DRONEMK2. Empty StarBurstShield has no outside C# caller or matching persistent call; retain the separate working StarBurst charge content. No new effects or asset deletion. CONTENT-05 now has source evidence for the reload-wait/display formula disagreement; gameplay timing changes remain unauthorized.
Verification and next work¶
Documentation validation checks source/data/settings preservation against the snapshot taken after checkpoint preparation, all 608 existing pins, CSV source/asset/component identities and line references, enum/route interpretations, callback targets, case IDs/source paths, local links, whitespace and issue routing. Arithmetic examples are independently checked; production methods/coroutines are not executed. Preserve the normal profile and existing audio/Plastic/index-lock evidence.
Validation passed: unchanged source/data/settings from the batch-start snapshot, all 608 pins, all mapped identities/line references and 428 callback targets, 26 unique source-derived cases, 498 local links, whitespace and all 52 issue IDs routed once. Original index/lock and the retained normal-profile snapshot match. No Unity/runtime result is claimed.
R0 remains open. Next: stage/enemy/encounter and content-authoring contracts, reconciling combat payload/target/roster follow-ups before reward/progression and persistence/UI design. Do not implement combat or resume the old Tutorial queue from this completed documentation batch. At the batch check-in, its documentation remained uncommitted after the earlier checkpoint. The owner subsequently requested committing/publishing it with the saved work to the existing remote development branch; the original local index/lock are preserved.