Docs: DR-040 Slice 3 (Expedition Combat Spine) reviewed + scope-locked

Heaviest pre-code review done (1 ground + 3 lenses). v1 loop scope-locked: walk gate ->
epoch-seeded enemy wave in the expedition -> clear -> return + Ore -> escalated base siege.
4 netcode blockers fixed-in-spec (EnemyAISystem per-region targets; WaveSystem cleared-check
RegionTag{Base}; relevancy MaxAlive cap; reward per-epoch sentinel). Arena pool / zone-theme
byte / TimedModifier buff / SaveData v6 / mini-boss deferred to v2. Build is the next unit.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-18 00:56:03 -07:00
parent d6d75b4706
commit 6b368d1a29
3 changed files with 61 additions and 2 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ Last decluttered 2026-06-08 (removed all shipped `[x]` items; their context is p
- **Slice 1 — Combat Readability & HUD Declutter** ✅ **BUILT + engineering-validated 2026-06-17 ([[DR-038_Slice1_Combat_Readability_HUD_Declutter]])** — on-damage-sticky **enemy health bars** (+fade, <25 %HP always-on) in `CombatFeedbackSystem` (`Health.Current` already replicated); **telegraph fix** (per-enemy baked `EnemyTelegraph` windup ramp replacing the hard-coded `22f` + windup 18→22 + a scale-pulse); **build-mode toggle** (client `BuildPaletteState.PaletteOpen` gates the palette + a "Tab/Y — BUILD" chip); **Charger committed-lunge tell** (`[GhostEnabledBit] IsLunging` derived once/tick — one Charger re-bake). 345/345 EditMode; Play-validated (handshake intact, bake correct, no runtime errors). **Open: operator visual fun-gate.**
- **Slice 2 — Two Classes (Warrior / Ranger)** ✅ **BUILT + validated 2026-06-18 ([[DR-039_Slice2_Two_Classes_Warrior_Ranger]])** — DRG-asymmetric (Warrior melee bruiser tankier/slower; Ranger ranged faster/squishier + co-op auto-assist hook); aim-directed Warrior cone (Cone archetype inline in `AbilityFireSystem`, server-only damage, same-tick); class carried on `GoInGameRequest.ClassId` (the per-world-`ConnectionConfig` blocker fixed) → `ClassTraits` seeds at spawn; character deltas via replicated `StatModifier` seeds on Default (no per-class blob); melee asymmetry folds in `MeleeComboSystem` (`StatTarget.MeleeDamage`/`MeleeRange`); menu class picker. 348/348 EditMode; Warrior Play-validated server==client (re-bake handshake intact). **Deferred polish:** cone client VFX + slash-arc reach. **Open: fun-gate (operator).**
- **Slice 3 — Expedition Combat Spine** *(review-gated)*: reactivate `ExpeditionFieldSystem`**authored-arena pool** sampled by `ExpeditionEpoch` (pool-sampling, NOT WFC/terrain-gen); `ZoneEnemySpawnSystem` (`RegionTag{Expedition}`); the **`EnemyAISystem` region-filter fix**; the **`ThreatDirector` mid-siege-return gate**; a **zone-clear reward** on `ExpeditionGateSystem`; a **replicated zone-theme byte** on the global ghost; the required sortie→clear→return→escalated-siege loop. Manage `RegionRelevancySystem` per-tick cost (cap ghosts; cosmetic props non-ghost). Absorbs Path B MC-2 (enemy mix) intent.
- **Slice 3 — Expedition Combat Spine** 🔬 **REVIEWED + scope-locked 2026-06-18 ([[DR-040_Slice3_Expedition_Combat_Spine]]) — build is next.** Minimal v1 loop: walk gate → fight an epoch-seeded enemy wave in the expedition → clear → return + Ore → escalated base siege. New `ZoneEnemyTag`/`ZoneEnemyDirector`/`ZoneEnemyState` + `ZoneEnemySpawnSystem` (reuse Grunt/Charger prefabs, `RegionTag{Expedition}`, ring math, one-per-interval, Calm-only). **4 netcode blockers fixed:** `EnemyAISystem` per-region target lists (+ no base-structure/Core fallback for expedition husks); `WaveSystem` cleared-check → `RegionTag{Base}` only (+ ThreatDirector cull); RegionRelevancy `MaxAlive` cap; reward double-fire gated by `CycleRuntime.LastRewardedEpoch` + a real clear. **Deferred to v2:** arena-layout pool/authoring, zone-theme byte + HUD, `TimedModifier` buff, SaveData v6, mini-boss. **Open fork:** optional (default) vs required sortie.
- **Slice 4 — Persistent Meta-Progression** *(review-gated)*: **SaveData v6** (meta-currency, unlocked classes, persistent epoch); a between-runs growth surface at the hub; persist-the-seed-regenerate-the-layout (pure-function generator).
**Per-slice forks to lock at each review:** expedition depth (one zone vs sequential+boss); shared expedition region vs per-party instances (shared recommended); zone-clear reward shape; class-select moment (menu vs at-base); meta unlock surface.