mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Clean delayedTriggers from player who lost
This commit is contained in:
@@ -822,6 +822,8 @@ public class Game {
|
||||
// Remove leftover items from
|
||||
this.getStack().removeInstancesControlledBy(p);
|
||||
|
||||
getTriggerHandler().onPlayerLost(p);
|
||||
|
||||
ingamePlayers.remove(p);
|
||||
lostPlayers.add(p);
|
||||
|
||||
|
||||
@@ -422,11 +422,6 @@ public class TriggerHandler {
|
||||
}
|
||||
}
|
||||
|
||||
if (delayedTriggers.contains(regtrig) && game.getCardState(regtrig.getHostCard(), null) == null) {
|
||||
delayedTriggers.remove(regtrig);
|
||||
return false; // CR 603.2f owner lost game
|
||||
}
|
||||
|
||||
if (!regtrig.requirementsCheck(game)) {
|
||||
return false; // Conditions aren't right.
|
||||
}
|
||||
@@ -634,4 +629,15 @@ public class TriggerHandler {
|
||||
}
|
||||
return trigger;
|
||||
}
|
||||
|
||||
public void onPlayerLost(Player p) {
|
||||
List<Trigger> lost = new ArrayList<>();
|
||||
for (Trigger t : delayedTriggers) {
|
||||
// CR 603.2f owner of trigger source lost game || 800.4d trigger controller lost game
|
||||
if (game.getCardState(t.getHostCard(), null) == null || t.getHostCard().getOwner().equals(p)) {
|
||||
lost.add(t);
|
||||
}
|
||||
}
|
||||
delayedTriggers.removeAll(lost);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user