diff --git a/SVSim.UnitTests/BattleNode/Integration/HeadlessConductorTests.cs b/SVSim.UnitTests/BattleNode/Integration/HeadlessConductorTests.cs index 3459bf8..f8635ba 100644 --- a/SVSim.UnitTests/BattleNode/Integration/HeadlessConductorTests.cs +++ b/SVSim.UnitTests/BattleNode/Integration/HeadlessConductorTests.cs @@ -492,13 +492,16 @@ public class HeadlessConductorTests "an evolve must spend exactly one evolve point"); } - // TODO(M-HC-4): EVOLUTION_SELECT target path uncovered — needs an evolve-target fixture card. - // The EVOLUTION_SELECT driver (NodeNativeBattleHarness.EvolveSelectBody, opcode 21) is in place, but - // no card in the current cards.json carries an evo_skill/evo_skill_target (the skill/translation tables - // are placeholders per CLAUDE.md — only base stats + plain evolve deltas are dumped). Driving an - // EVOLUTION_SELECT with no targeting skill degenerates to the plain-evolve path (empty select list), so - // it would not exercise GetOpposingCardObjTarget / the select view leaves. Add a real fixture (a - // follower whose on_evolve targets/damages an opposing card) once a fuller card-skill dump lands. + // TODO(M-HC-exit): EVOLUTION_SELECT target path uncovered — needs an evolve-target fixture card. + // The EVOLUTION_SELECT driver (NodeNativeBattleHarness.EvolveSelectBody, opcode 21) is in place; what's + // missing is a fixture: a follower whose evo_skill + evo_skill_target are populated so the evolve drives + // a real target/select. Such cards DO exist in cards.json — skill MECHANICS (skill/skill_timing/ + // skill_condition/skill_target/skill_option, plus evo_skill/evo_skill_target) are fully dumped and + // engine-executed (M-HC-4c..f exercise real skills incl. cost_change/when_evolve_other/token_draw). The + // CLAUDE.md "placeholder" note refers ONLY to card NAMES/TEXT, not mechanics. Driving an EVOLUTION_SELECT + // against a non-targeting evolve degenerates to the plain-evolve path (empty select list), so it would + // not exercise GetOpposingCardObjTarget / the select view leaves. Wire one of the existing evo-target + // followers into the harness to cover this — that's the only remaining step. // === M-HC-4c: targeted play resolves headless ================================================