Read docs/work-queue.md and do the next unchecked batch. For each batch:
mtg-engine/src/abilities.rs, mtg-engine/src/game.rs) to understand current Effect/StaticEffect variantsgame.rs mod tests)cargo check -p mtg-cards && cargo test --libdocs/{fdn,tla,tdm,ecl}-remediation.md, update ROADMAP.mddocs/work-queue.md with today's dateIf a batch turns out to be wrong or more complex than described, update the queue with what you learned and move on to the next one.
Let me start by reading the work queue to find the next unchecked batch.
The next unchecked batch is Batch 8: Fight/Bite mechanic. Let me read the engine files and investigate the cards that need this.
Let me read game.rs in parts and search for the fight/bite cards.
Let me get more context on each of these cards to understand their exact effects.
Let me also check TLA for Earth Rumble and other fight cards mentioned in the work queue.
Let me look at how the engine handles execute_effects, especially how targets work.
Now I have a full picture. Let me check Earth Rumble's Java source and read the existing test patterns.
Let me check how Permanent::power() and apply_damage() work.
Good. Now I have everything I need. Let me implement the batch. I'll:
Effect::Fight and Effect::Bite variants + constructorsexecute_effectscargo check and cargo testLet me start with the engine changes.
Now add the constructors:
Now add the match arms in execute_effects in game.rs. I'll add them right before the _ => catch-all.
Now I need to add the helper methods find_fight_creature and find_fight_target. Let me add them near the other helper methods like matches_filter.
Now I'll add the fight helper methods right after card_matches_filter:
Now let me add the test. I'll add it right before the closing } of the tests module:
Now let me check that the engine compiles before fixing cards:
Engine compiles. Now let me fix the cards. Let me fix them all with sed:
Tests pass. Now let me fix the cards. Let me fix each one:
1. FDN: Bite Down — pure bite spell
2. FDN: Affectionate Indrik — ETB fight trigger
Wait, sed replacing TargetSpec::None), could hit many places. Let me check.
That sed replaced ALL TargetSpec::None), with TargetSpec::Creature), — that's a disaster. Let me undo that.
Let me be much more careful with the edits. I'll use specific context in sed or read/edit individual cards.
Now for Affectionate Indrik, I need to change both the Effect and the TargetSpec on surrounding lines. Let me use a more precise approach:
3. FDN: Felling Blow — +1/+1 counter + bite
4. ECL: Assert Perfection — boost + fight
5. TDM: Piercing Exhale — pure fight
That should have fixed both Piercing Exhale (pure fight) and Knockout Maneuver (counter + fight). Let me verify:
Lines 1231 (Knockout Maneuver) and 1255 (Piercing Exhale) are fixed. Dragonclaw Strike (1215) is still Custom (expected — it has "double P/T" which we can't implement).
Now let me check if there are any remaining fight customs to handle:
Good. The remaining ones are:
These are all correctly deferred. Let me compile and test:
All 252 tests pass. Now let me update the documentation. First, let me update the work queue:
Now update the per-set remediation docs. Let me check the current state of the remediation docs for the affected cards:
Now let me check for Affectionate Indrik and Felling Blow in fdn-remediation.md:
Now update ROADMAP.md:
Now update the "next batches" section in the roadmap:
Let me verify the fixes are all correct by re-checking the modified card lines: