Skip to content

Exquisite Blood infinite trigger loop — no loop guard #170

Description

@matthewevans

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions