Try Handling doing a DRAW by Game Rules
- Dominant language
- Java
- Stars
- 2.7k
- Forks
- 1.1k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 158
Description
There many ways to cause a DRAW by game rules,
* one of them are infinite loops, that doesn't alter the game state. Forge might not be able to check this.
* another one are Static Trigger, we call them Always trigger.
For such Always Trigger, they will trigger again if they aren't on the stack anymore and their condition is still valid.
For example Transcendence says: `When you have 20 or more life, you lose the game.`
if you somehow can't lose the game, then it would trigger again, and if you can't do anything about it, the game would end in a DRAW.
What we could do is to check inside LoseEffect that when player can't lose (because of static ability) and the SA is a Always Trigger, and then maybe some extra checks, the Game could end in a draw.
Some have static trigger that causes flip, like `Student of Elements` or `Rune-Tail, Kitsune Ascendant`, i remember that a card can always flip, so it shouldn't check for such thing? and Clones should copy FlipState.
important is that this mostly only should affect static abilities. Most Replacement Effects has after effects that makes this more tricky.
Other examples:
* `Darksteel Reactor` is a WinTrigger
* `Opal Avenger` and similar are Animate effects that shouldn't be affected by StaticAbility. The Animate overwrites possible Clone Effects. Also it overwrites possible effects that might turn it into a Enchantment again.
* Some cards like Manta Ray Sacrifice themselves when you don't Control an Island. (Sacrifice can be stopped by Assault Suit for example)
* `Garruk Relentless` has a Transform Trigger that might be stoppable?
* `homarid` has an effect with Tide Counters, but removing counters can't be intercepted currently.
* `nine_lives` has an Exile Effect, But because Exile is a special Action, it shouldn't be intercepted
Contributor guide
Assessment
This issue has not been assessed yet.