From 9aa7e717b0407bd5973f8272a1ed7eafa66f8b96 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Mon, 26 Mar 2012 11:49:27 +0000 Subject: [PATCH] Remove some of the clunky limits implementations. --- .../lotro/cards/set1/site/Card1_348.java | 7 ++- .../lotro/cards/set11/site/Card11_243.java | 59 +++++++++++-------- .../lotro/cards/set19/wraith/Card19_039.java | 2 +- .../com/gempukku/lotro/game/PhysicalCard.java | 6 -- .../gempukku/lotro/game/PhysicalCardImpl.java | 17 ------ .../gempukku/lotro/game/state/GameState.java | 1 - 6 files changed, 38 insertions(+), 54 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_348.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_348.java index b390c639e..92618127c 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_348.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_348.java @@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set1.site; import com.gempukku.lotro.cards.AbstractSite; import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.CheckTurnLimitEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDeckEffect; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; @@ -30,11 +31,11 @@ public class Card1_348 extends AbstractSite { @Override public List getPhaseActions(final String playerId, final LotroGame game, final PhysicalCard self) { if (PlayConditions.canUseSiteDuringPhase(game, Phase.SHADOW, self) - && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Culture.ISENGARD, CardType.MINION) - && self.getData() == null) { + && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Culture.ISENGARD, CardType.MINION)) { final ActivateCardAction action = new ActivateCardAction(self); action.appendEffect( - new ChooseAndPlayCardFromDeckEffect(playerId, Keyword.WEATHER)); + new CheckTurnLimitEffect(action, self, 1, + new ChooseAndPlayCardFromDeckEffect(playerId, Keyword.WEATHER))); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/site/Card11_243.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/site/Card11_243.java index 98d5aba53..5b79fb75f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/site/Card11_243.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/site/Card11_243.java @@ -7,6 +7,7 @@ import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.AbstractActionProxy; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; @@ -33,36 +34,42 @@ public class Card11_243 extends AbstractNewSite { } @Override - public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - Set minionsMarked = (Set) self.getData(); - if (minionsMarked == null) { - minionsMarked = new HashSet(); - self.storeData(minionsMarked); - } + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, final PhysicalCard self) { + if (game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1) { + game.getActionsEnvironment().addUntilEndOfTurnActionProxy( + new AbstractActionProxy() { + private Set _minionsMarked = new HashSet(); - Set toLose = new HashSet(); - final Set toLoseInts = new HashSet(); - for (PhysicalCard minion : Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Filters.inSkirmishAgainst(Culture.ROHAN, CardType.COMPANION))) { - if (!minionsMarked.contains(minion.getCardId())) { - toLose.add(minion); - toLoseInts.add(minion.getCardId()); - } - } - - if (toLose.size() > 0) { - RequiredTriggerAction action = new RequiredTriggerAction(self); - final Set minionsMarked1 = minionsMarked; - action.appendEffect( - new UnrespondableEffect() { @Override - protected void doPlayEffect(LotroGame game) { - minionsMarked1.addAll(toLoseInts); + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult) { + Set toLose = new HashSet(); + final Set toLoseInts = new HashSet(); + for (PhysicalCard minion : Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Filters.inSkirmishAgainst(Culture.ROHAN, CardType.COMPANION))) { + if (!_minionsMarked.contains(minion.getCardId())) { + toLose.add(minion); + toLoseInts.add(minion.getCardId()); + } + } + + if (toLose.size() > 0) { + RequiredTriggerAction action = new RequiredTriggerAction(self); + action.appendEffect( + new UnrespondableEffect() { + @Override + protected void doPlayEffect(LotroGame game) { + _minionsMarked.addAll(toLoseInts); + } + }); + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new RemoveKeywordModifier(self, Filters.in(toLose), Keyword.FIERCE), Phase.REGROUP)); + return Collections.singletonList(action); + } + return null; } }); - action.appendEffect( - new AddUntilStartOfPhaseModifierEffect( - new RemoveKeywordModifier(self, Filters.in(toLose), Keyword.FIERCE), Phase.REGROUP)); - return Collections.singletonList(action); + + game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1); } return null; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/wraith/Card19_039.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/wraith/Card19_039.java index a73f58df2..b174edbe2 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/wraith/Card19_039.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set19/wraith/Card19_039.java @@ -64,7 +64,7 @@ public class Card19_039 extends AbstractMinion { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.any, self)) { - Set data = (Set) self.getData(); + Set data = (Set) self.getWhileInZoneData(); if (data == null) { data = new HashSet(); self.setWhileInZoneData(data); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCard.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCard.java index 2fe379ade..ee48afa61 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCard.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCard.java @@ -20,12 +20,6 @@ public interface PhysicalCard extends Filterable { public PhysicalCard getStackedOn(); - public void storeData(Object object); - - public Object getData(); - - public void removeData(); - public void setWhileInZoneData(Object object); public Object getWhileInZoneData(); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCardImpl.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCardImpl.java index 81ca232ac..5ffaa9cb9 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCardImpl.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/PhysicalCardImpl.java @@ -24,8 +24,6 @@ public class PhysicalCardImpl implements PhysicalCard { private List _modifierHooksInDiscard; private List _modifierHooksControlledSite; - private Object _data; - private Object _whileInZoneData; private Integer _siteNumber; @@ -165,21 +163,6 @@ public class PhysicalCardImpl implements PhysicalCard { return _stackedOn; } - @Override - public void storeData(Object object) { - _data = object; - } - - @Override - public Object getData() { - return _data; - } - - @Override - public void removeData() { - _data = null; - } - @Override public Object getWhileInZoneData() { return _whileInZoneData; diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java index a0dc1a7e0..1e4f554f1 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java @@ -874,7 +874,6 @@ public class GameState { } private void stopAffecting(PhysicalCard card) { - card.removeData(); ((PhysicalCardImpl) card).stopAffectingGame(); }