From ca42f1c7f283594ead134faf2d97190309a36bd9 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 10 Feb 2023 03:09:56 +0800 Subject: [PATCH 1/2] fix starting cards on adventure mode with etb counters - closes #2431 --- .../src/main/java/forge/game/player/Player.java | 13 +++++++++++++ .../java/forge/game/player/RegisteredPlayer.java | 8 ++++++++ .../src/forge/adventure/scene/DuelScene.java | 1 + 3 files changed, 22 insertions(+) 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 d249a370d10..bd01c2a161a 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -2801,6 +2801,19 @@ public class Player extends GameEntity implements Comparable { bf.add(c); c.setSickness(true); c.setStartsGameInPlay(true); + if (registeredPlayer.hasEnableETBCountersEffect()) { + for (KeywordInterface inst : c.getKeywords()) { + String keyword = inst.getOriginal(); + try { + if (keyword.startsWith("etbCounter")) { + final String[] p = keyword.split(":"); + c.addCounterInternal(CounterType.getType(p[1]), Integer.valueOf(p[2]), c.getController(), false, null, null); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } } } diff --git a/forge-game/src/main/java/forge/game/player/RegisteredPlayer.java b/forge-game/src/main/java/forge/game/player/RegisteredPlayer.java index b41ba1238e5..2607a62c6b0 100644 --- a/forge-game/src/main/java/forge/game/player/RegisteredPlayer.java +++ b/forge-game/src/main/java/forge/game/player/RegisteredPlayer.java @@ -37,6 +37,7 @@ public class RegisteredPlayer { private PaperCard planeswalker = null; private int teamNumber = -1; // members of teams with negative id will play FFA. private boolean randomFoil = false; + private boolean enableETBCountersEffect = false; public RegisteredPlayer(Deck deck0) { originalDeck = deck0; @@ -67,6 +68,13 @@ public class RegisteredPlayer { this.manaShards = manaShards; } + public boolean hasEnableETBCountersEffect() { + return enableETBCountersEffect; + } + public void setEnableETBCountersEffect(boolean value) { + enableETBCountersEffect = value; + } + public final void setCardsOnBattlefield(Iterable cardsOnTable) { this.cardsOnBattlefield = cardsOnTable; } diff --git a/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java b/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java index 230e206f5e4..5e2772a0070 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java @@ -178,6 +178,7 @@ public class DuelScene extends ForgeScene { player.setStartingLife(Math.max(1, lifeMod + player.getStartingLife())); player.setStartingHand(player.getStartingHand() + changeStartCards); player.setManaShards((player.getManaShards() + extraManaShards)); + player.setEnableETBCountersEffect(true); //enable etbcounters on starting cards like Ring of Three Wishes, etc... } public void setDungeonEffect(EffectData E) { From d0cfd3567c4386e2a2b8e72e9e639ae38471f4e3 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 10 Feb 2023 03:16:14 +0800 Subject: [PATCH 2/2] update --- forge-game/src/main/java/forge/game/player/Player.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 bd01c2a161a..83896843267 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -2807,7 +2807,7 @@ public class Player extends GameEntity implements Comparable { try { if (keyword.startsWith("etbCounter")) { final String[] p = keyword.split(":"); - c.addCounterInternal(CounterType.getType(p[1]), Integer.valueOf(p[2]), c.getController(), false, null, null); + c.addCounterInternal(CounterType.getType(p[1]), Integer.valueOf(p[2]), null, false, null, null); } } catch (Exception e) { e.printStackTrace();