diff --git a/forge-game/src/main/java/forge/game/GameView.java b/forge-game/src/main/java/forge/game/GameView.java index 2c5540db3dd..db597afa820 100644 --- a/forge-game/src/main/java/forge/game/GameView.java +++ b/forge-game/src/main/java/forge/game/GameView.java @@ -215,6 +215,7 @@ public class GameView extends TrackableObject { } public void setDependencies(Table> dependencies) { if (dependencies.isEmpty()) { + set(TrackableProperty.Dependencies, ""); return; } StringBuilder sb = new StringBuilder(); diff --git a/forge-game/src/main/java/forge/game/card/CardState.java b/forge-game/src/main/java/forge/game/card/CardState.java index d0bb304503b..20dc321ba44 100644 --- a/forge-game/src/main/java/forge/game/card/CardState.java +++ b/forge-game/src/main/java/forge/game/card/CardState.java @@ -605,18 +605,18 @@ public class CardState extends GameObject implements IHasSVars, ITranslatable { result.add(loyaltyRep); } if (type.isBattle()) { - // TODO This is currently breaking for Battle/Defense - // Going to script the cards to work but ideally it would happen here if (defenseRep == null) { defenseRep = CardFactoryUtil.makeEtbCounter("etbCounter:DEFENSE:" + this.baseDefense, this, true); } result.add(defenseRep); - - // TODO add Siege "Choose a player to protect it" } + + card.updateReplacementEffects(result, this); + + // below are global rules if (type.hasSubtype("Saga") && !hasKeyword(Keyword.READ_AHEAD)) { if (sagaRep == null) { - sagaRep = CardFactoryUtil.makeEtbCounter("etbCounter:LORE:1", this, true); + sagaRep = CardFactoryUtil.makeEtbCounter("etbCounter:LORE:1", this, false); } result.add(sagaRep); } @@ -633,7 +633,6 @@ public class CardState extends GameObject implements IHasSVars, ITranslatable { result.add(omenRep); } - card.updateReplacementEffects(result, this); return result; } public boolean addReplacementEffect(final ReplacementEffect replacementEffect) { diff --git a/forge-game/src/main/java/forge/game/zone/MagicStack.java b/forge-game/src/main/java/forge/game/zone/MagicStack.java index 0c76a6394d0..b024dce4438 100644 --- a/forge-game/src/main/java/forge/game/zone/MagicStack.java +++ b/forge-game/src/main/java/forge/game/zone/MagicStack.java @@ -847,35 +847,26 @@ public class MagicStack /* extends MyObservable */ implements Iterable players = game.getPlayersInTurnOrder(playerTurn); + boolean result = false; + // CR 603.3b for (Player p : players) { - if (p.hasLost()) { - continue; - } result |= chooseOrderOfSimultaneousStackEntry(p, false); } - for (Player p : players) { - if (p.hasLost()) { - continue; - } result |= chooseOrderOfSimultaneousStackEntry(p, true); } @@ -883,10 +874,12 @@ public class MagicStack /* extends MyObservable */ implements Iterable