diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 04456858665..1374d72d960 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -3260,6 +3260,21 @@ public class CardFactoryUtil { ripplePos = hasKeyword(card, "Ripple", n + 1); } // Ripple + + final int dethrone = card.getKeywordAmount("Dethrone"); + for (int i = 0; i < dethrone; i++) { + final StringBuilder trigScript = new StringBuilder( + "Mode$ Attacks | ValidCard$ Card.Self | Attacked$ Player.withMostLife | " + + "TriggerZones$ Battlefield | Execute$ DethroneCounters | TriggerDescription$" + + " Dethrone (Whenever this creature attacks the player with the most life or " + + "tied for the most life, put a +1/+1 counter on it.)"); + + final String abString = "DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | " + + "CounterNum$ 1"; + card.setSVar("DethroneCounters", abString); + final Trigger cascadeTrigger = TriggerHandler.parseTrigger(trigScript.toString(), card, true); + card.addTrigger(cascadeTrigger); + } // Cascade } diff --git a/forge-game/src/main/java/forge/game/player/Player.java b/forge-game/src/main/java/forge/game/player/Player.java index 6b10967c51d..965a056c2d2 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -2445,14 +2445,12 @@ public class Player extends GameEntity implements Comparable { } else if (property.startsWith("withMost")) { if (property.substring(8).equals("Life")) { int highestLife = this.getLife(); // Negative base just in case a few Lich's are running around - Player healthiest = this; for (final Player p : game.getPlayers()) { if (p.getLife() > highestLife) { highestLife = p.getLife(); - healthiest = p; } } - if (!this.equals(healthiest)) { + if (this.getLife() != highestLife) { return false; } }