Bug Report
Source: Discord / Engine analysis
Discord thread: Vampire bugs (P0 runtime bug verified in triage)
Cards
Exquisite Blood, Marauding Blight-Priest (and Sanguine Bond)
Actual Behavior
The Exquisite Blood + Marauding Blight-Priest combo creates an infinite trigger chain: opponent loses life → Exquisite Blood triggers (you gain life) → Blight-Priest triggers (opponent loses 1 life) → repeat. The engine has no trigger-stack depth limit or loop-detection guard, so process_triggers adds to the stack indefinitely. The AI generates infinite legal candidates and the game locks up.
Expected Behavior
The engine should detect trigger loops and either cap the stack depth or present a player choice to continue/stop a loop (per CR 720, infinite loops). A human player can concede, but the AI cannot escape the loop.
Parser Status
N/A — both cards parse correctly. This is a rules-engine infinite-loop gap.
Notes
CR 720 allows players to agree to end infinite loops. The engine needs a mechanism to detect and resolve this — either a configurable depth cap or a "do you want to keep looping?" prompt for AI vs human games.
Bug Report
Source: Discord / Engine analysis
Discord thread: Vampire bugs (P0 runtime bug verified in triage)
Cards
Exquisite Blood, Marauding Blight-Priest (and Sanguine Bond)
Actual Behavior
The Exquisite Blood + Marauding Blight-Priest combo creates an infinite trigger chain: opponent loses life → Exquisite Blood triggers (you gain life) → Blight-Priest triggers (opponent loses 1 life) → repeat. The engine has no trigger-stack depth limit or loop-detection guard, so
process_triggersadds to the stack indefinitely. The AI generates infinite legal candidates and the game locks up.Expected Behavior
The engine should detect trigger loops and either cap the stack depth or present a player choice to continue/stop a loop (per CR 720, infinite loops). A human player can concede, but the AI cannot escape the loop.
Parser Status
N/A — both cards parse correctly. This is a rules-engine infinite-loop gap.
Notes
CR 720 allows players to agree to end infinite loops. The engine needs a mechanism to detect and resolve this — either a configurable depth cap or a "do you want to keep looping?" prompt for AI vs human games.