diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/AddBurden.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/AddBurden.java index 1678dd473..599cda14b 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/AddBurden.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/AddBurden.java @@ -26,24 +26,19 @@ public class AddBurden implements EffectAppenderProducer { final PlayerSource playerSource = PlayerResolver.resolvePlayer(player, environment); - MultiEffectAppender result = new MultiEffectAppender(); + return new DelayedAppender() { + @Override + protected Effect createEffect(CostToEffectAction action, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { + final String playerAddingBurden = playerSource.getPlayer(playerId, game, self, effectResult, effect); + return new AddBurdenEffect(playerAddingBurden, self, amount); + } - result.addEffectAppender( - new DelayedAppender() { - @Override - protected Effect createEffect(CostToEffectAction action, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { - final String playerAddingBurden = playerSource.getPlayer(playerId, game, self, effectResult, effect); - return new AddBurdenEffect(playerAddingBurden, self, amount); - } - - @Override - public boolean isPlayableInFull(CostToEffectAction action, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { - final String playerAddingBurden = playerSource.getPlayer(playerId, game, self, effectResult, effect); - return PlayConditions.canAddBurdens(game, playerAddingBurden, self); - } - }); - - return result; + @Override + public boolean isPlayableInFull(CostToEffectAction action, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { + final String playerAddingBurden = playerSource.getPlayer(playerId, game, self, effectResult, effect); + return PlayConditions.canAddBurdens(game, playerAddingBurden, self); + } + }; } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ConditionEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ConditionEffect.java index 8b38fe0a2..0cf843a3b 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ConditionEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ConditionEffect.java @@ -56,6 +56,7 @@ public class ConditionEffect implements EffectAppenderProducer { }); } + // TODO, maybe check the requirements, and if met, check if the effect is playable? @Override public boolean isPlayableInFull(CostToEffectAction action, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { return true; diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/DiscardTopCardFromDeck.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/DiscardTopCardFromDeck.java index ee537da05..0651dcccb 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/DiscardTopCardFromDeck.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/DiscardTopCardFromDeck.java @@ -26,28 +26,23 @@ public class DiscardTopCardFromDeck implements EffectAppenderProducer { final PlayerSource playerSource = PlayerResolver.resolvePlayer(deck, environment); - MultiEffectAppender result = new MultiEffectAppender(); + return new DelayedAppender() { + @Override + public boolean isPlayableInFull(CostToEffectAction action, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { + final String deckId = playerSource.getPlayer(playerId, game, self, effectResult, effect); - result.addEffectAppender( - new DelayedAppender() { - @Override - public boolean isPlayableInFull(CostToEffectAction action, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { - final String deckId = playerSource.getPlayer(playerId, game, self, effectResult, effect); + // Don't check if can discard top cards, since it's a cost + return game.getGameState().getDeck(deckId).size() >= count + && (!forced || game.getModifiersQuerying().canDiscardCardsFromTopOfDeck(game, playerId, self)); + } - // Don't check if can discard top cards, since it's a cost - return game.getGameState().getDeck(deckId).size() >= count - && (!forced || game.getModifiersQuerying().canDiscardCardsFromTopOfDeck(game, playerId, self)); - } + @Override + protected Effect createEffect(CostToEffectAction action, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { + final String deckId = playerSource.getPlayer(playerId, game, self, effectResult, effect); - @Override - protected Effect createEffect(CostToEffectAction action, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { - final String deckId = playerSource.getPlayer(playerId, game, self, effectResult, effect); - - return new DiscardTopCardFromDeckEffect(self, deckId, count, forced); - } - }); - - return result; + return new DiscardTopCardFromDeckEffect(self, deckId, count, forced); + } + }; } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ModifyArcheryTotal.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ModifyArcheryTotal.java index d1f18bbd2..debbd4750 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ModifyArcheryTotal.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ModifyArcheryTotal.java @@ -23,18 +23,13 @@ public class ModifyArcheryTotal implements EffectAppenderProducer { final int amount = FieldUtils.getInteger(effectObject.get("amount"), "amount"); final Side side = FieldUtils.getEnum(Side.class, effectObject.get("side"), "side"); - MultiEffectAppender result = new MultiEffectAppender(); - - result.addEffectAppender( - new DelayedAppender() { - @Override - protected Effect createEffect(CostToEffectAction action, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { - return new AddUntilEndOfPhaseModifierEffect( - new ArcheryTotalModifier(self, side, amount)); - } - }); - - return result; + return new DelayedAppender() { + @Override + protected Effect createEffect(CostToEffectAction action, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { + return new AddUntilEndOfPhaseModifierEffect( + new ArcheryTotalModifier(self, side, amount)); + } + }; } }