From 842167d1ff8d79b255822e301e8e1a87bbe4f8a6 Mon Sep 17 00:00:00 2001 From: Agetian Date: Tue, 19 May 2015 18:04:33 +0000 Subject: [PATCH] - More correct implementation of the way GameEventCardModeChosen game event is processed. --- forge-game/src/main/java/forge/game/GameLogFormatter.java | 5 ++++- .../java/forge/game/ability/effects/ChooseGenericEffect.java | 4 ++-- .../main/java/forge/game/event/GameEventCardModeChosen.java | 4 +++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameLogFormatter.java b/forge-game/src/main/java/forge/game/GameLogFormatter.java index a0333314d99..5197f17946e 100644 --- a/forge-game/src/main/java/forge/game/GameLogFormatter.java +++ b/forge-game/src/main/java/forge/game/GameLogFormatter.java @@ -100,8 +100,11 @@ public class GameLogFormatter extends IGameEventVisitor.Base { @Override public GameLogEntry visit(GameEventCardModeChosen ev) { - String modeChoiceOutcome = String.format("%s has chosen %s for %s.", ev.player, ev.mode, ev.cardName); + if (!ev.log) { + return null; + } + String modeChoiceOutcome = String.format("%s has chosen %s for %s.", ev.player, ev.mode, ev.cardName); return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, modeChoiceOutcome); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChooseGenericEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChooseGenericEffect.java index 93726fd838f..5ab83f7873c 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChooseGenericEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChooseGenericEffect.java @@ -57,14 +57,14 @@ public class ChooseGenericEffect extends SpellAbilityEffect { chosenName = choices[idxChosen]; } SpellAbility chosenSA = AbilityFactory.getAbility(host.getSVar(chosenName), host); + String chosenValue = abilities.get(idxChosen).getDescription(); if (sa.hasParam("ShowChoice")) { boolean dontNotifySelf = sa.getParam("ShowChoice").equals("ExceptSelf"); - String chosenValue = abilities.get(idxChosen).getDescription(); p.getGame().getAction().nofityOfValue(sa, p, chosenValue, dontNotifySelf ? sa.getActivatingPlayer() : null); - p.getGame().fireEvent(new GameEventCardModeChosen(p, host.getName(), chosenValue)); } chosenSA.setActivatingPlayer(sa.getActivatingPlayer()); ((AbilitySub) chosenSA).setParent(sa); + p.getGame().fireEvent(new GameEventCardModeChosen(p, host.getName(), chosenValue, sa.hasParam("ShowChoice"))); AbilityUtils.resolve(chosenSA); } } diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardModeChosen.java b/forge-game/src/main/java/forge/game/event/GameEventCardModeChosen.java index 22148a364a8..634b78a0cdb 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardModeChosen.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardModeChosen.java @@ -7,11 +7,13 @@ public class GameEventCardModeChosen extends GameEvent { public final Player player; public final String cardName; public final String mode; + public final boolean log; - public GameEventCardModeChosen(Player player, String cardName, String mode) { + public GameEventCardModeChosen(Player player, String cardName, String mode, boolean log) { this.player = player; this.cardName = cardName; this.mode = mode; + this.log = log; } @Override