mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38: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
|
// Remove leftover items from
|
||||||
this.getStack().removeInstancesControlledBy(p);
|
this.getStack().removeInstancesControlledBy(p);
|
||||||
|
|
||||||
|
getTriggerHandler().onPlayerLost(p);
|
||||||
|
|
||||||
ingamePlayers.remove(p);
|
ingamePlayers.remove(p);
|
||||||
lostPlayers.add(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)) {
|
if (!regtrig.requirementsCheck(game)) {
|
||||||
return false; // Conditions aren't right.
|
return false; // Conditions aren't right.
|
||||||
}
|
}
|
||||||
@@ -634,4 +629,15 @@ public class TriggerHandler {
|
|||||||
}
|
}
|
||||||
return trigger;
|
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