From e966c0e321bedee06be824027a4ff89175d336b0 Mon Sep 17 00:00:00 2001 From: marcins78 Date: Mon, 7 Jan 2013 12:02:31 +0000 Subject: [PATCH] Differentiation between cards to be discarded callbacks and actual cards that were discarded callback. --- .../choose/ChooseAndDiscardCardsFromPlayEffect.java | 11 ++++++++++- .../gempukku/lotro/cards/set13/orc/Card13_111.java | 2 +- .../gempukku/lotro/cards/set7/gollum/Card7_054.java | 2 +- .../logic/effects/DiscardCardsFromPlayEffect.java | 6 ++++++ 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndDiscardCardsFromPlayEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndDiscardCardsFromPlayEffect.java index bcddf2deb..caf41ea6b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndDiscardCardsFromPlayEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseAndDiscardCardsFromPlayEffect.java @@ -33,7 +33,12 @@ public class ChooseAndDiscardCardsFromPlayEffect extends ChooseActiveCardsEffect @Override protected void cardsSelected(LotroGame game, Collection cards) { _resultSubAction = new SubAction(_action); - _resultSubAction.appendEffect(new DiscardCardsFromPlayEffect(_playerId, _action.getActionSource(), Filters.in(cards))); + _resultSubAction.appendEffect(new DiscardCardsFromPlayEffect(_playerId, _action.getActionSource(), Filters.in(cards)) { + @Override + protected void forEachDiscardedByEffectCallback(Collection discardedCards) { + ChooseAndDiscardCardsFromPlayEffect.this.forEachDiscardedByEffectCallback(discardedCards); + } + }); game.getActionsEnvironment().addActionToStack(_resultSubAction); cardsToBeDiscardedCallback(cards); } @@ -42,6 +47,10 @@ public class ChooseAndDiscardCardsFromPlayEffect extends ChooseActiveCardsEffect } + protected void forEachDiscardedByEffectCallback(Collection cards) { + + } + @Override public boolean wasCarriedOut() { return super.wasCarriedOut() && _resultSubAction != null && _resultSubAction.wasCarriedOut(); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/orc/Card13_111.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/orc/Card13_111.java index 3893f0de5..f10b1bffe 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/orc/Card13_111.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/orc/Card13_111.java @@ -34,7 +34,7 @@ public class Card13_111 extends AbstractEvent { action.appendCost( new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 0, Integer.MAX_VALUE, Filters.owner(playerId), Culture.ORC, CardType.MINION) { @Override - protected void cardsToBeDiscardedCallback(Collection cards) { + protected void forEachDiscardedByEffectCallback(Collection cards) { if (cards.size() > 0) action.appendEffect( new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 3 * cards.size(), Culture.ORC, CardType.MINION)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_054.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_054.java index dbe0a9223..9fa6983f7 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_054.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_054.java @@ -32,7 +32,7 @@ public class Card7_054 extends AbstractEvent { action.appendCost( new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 0, Integer.MAX_VALUE, Culture.GOLLUM, CardType.CONDITION) { @Override - protected void cardsToBeDiscardedCallback(Collection cards) { + protected void forEachDiscardedByEffectCallback(Collection cards) { int count = cards.size(); game.getModifiersEnvironment().addUntilEndOfPhaseModifier( new StrengthModifier(self, Filters.smeagol, count * 3), Phase.SKIRMISH); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java index 8edf6a765..255895dcc 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java @@ -65,6 +65,10 @@ public class DiscardCardsFromPlayEffect extends AbstractPreventableCardEffect { return "Discard " + getAppendedTextNames(cards); } + protected void forEachDiscardedByEffectCallback(Collection discardedCards) { + + } + @Override protected void playoutEffectOn(LotroGame game, Collection cards) { Set discardedCards = new HashSet(); @@ -92,5 +96,7 @@ public class DiscardCardsFromPlayEffect extends AbstractPreventableCardEffect { for (PhysicalCard discardedCard : discardedCards) game.getActionsEnvironment().emitEffectResult(new DiscardCardsFromPlayResult(_source, discardedCard)); + + forEachDiscardedByEffectCallback(cards); } }