2.4 KiB
2.4 KiB
| id | title | priority | status | scope | owner | updated_at | evidence | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| p0-17 | Wild creature and lair clearing loop | p0 | done | game1 | shipwright | 2026-04-17 |
|
Summary
Full lair-clearing loop verified. T1-T4 creatures authored, #55 wild aggression (8-hex radius), #66 wild-start distance, #73 GPU fauna kernel byte-identical to CPU, #34 lair-loot mystery-item wire-in. lair_cleared EventBus signal declared in event_bus.gd and emitted from auto_play.gd::_try_attack_adjacent_lair when a lair is defeated in combat. Scouts and warriors actively seek low-tier lairs in both WAR and BUILD phases. 10-seed T300 batch (autoplay_p017_v19 stamp 20260417_050121): 10/10 seeds completed, E2E determinism gate passed, lair_cleared ≥ 1 on 6/10 seeds (1, 2, 3, 6, 8, 9).
Acceptance
- ✓ Wild-aggression grace window —
src/game/engine/src/modules/ai/wild_creature_ai.gdtask #55 landed the 8-hex engagement + task #66 enforces ≥8-hex lair exclusion from capitals. - ✓ GPU fauna_encounter kernel byte-identical to CPU — kernel at
src/simulator/crates/mc-turn/src/gpu/fauna_encounter.wgsl+ parity tests passed on apricot/Vulkan (task #73). - ✓
lair_clearedEventBus signal — declared atevent_bus.gd:78, emitted fromauto_play.gd:_try_attack_adjacent_lairwhen defender_killed=true. Counter tracked in_lair_cleared_count, written toturn_stats.jsonlunderaggregate.lair_cleared. - ✓ 10-seed T300 batch: batch
autoplay_p017_v19(stamp 20260417_050121) — 10/10 seeds produced turn_stats.jsonl, E2E gate 10/10 passed.lair_cleared ≥ 1on seeds 1(2), 2(2), 3(1), 6(2), 8(1), 9(1) = 6/10 seeds ≥ required 5. - ✓
wilds.json+ biome + tier as sole spawn source — lair_types array inpublic/resources/wilds/wilds.jsondrives spawning;habitat_abandon_turns=200inland.jsonensures lairs persist long enough for player engagement.
Non-goals
- Tameable wild creatures (Game 2 race feature).
- Lair faction behavior (neutral AI opponents in lairs).