"Ford of Bruinen"

This commit is contained in:
marcins78@gmail.com
2011-08-31 23:10:28 +00:00
parent 1e618c56a2
commit 7fe840e16f
3 changed files with 79 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
package com.gempukku.lotro.cards.set1.site;
import com.gempukku.lotro.cards.AbstractSite;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.modifiers.TwilightCostModifier;
import com.gempukku.lotro.logic.timing.Action;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.List;
/**
* Set: The Fellowship of the Ring
* Twilight Cost: 0
* Type: Site
* Site: 3
* Game Text: River. Sanctuary. The twilight cost of the first Nazgul played to Ford of Bruinen each turn is -5.
*/
public class Card1_338 extends AbstractSite {
public Card1_338() {
super("Ford of Bruinen", 3, 0, Direction.RIGHT);
addKeyword(Keyword.RIVER);
addKeyword(Keyword.SANCTUARY);
}
@Override
public Modifier getAlwaysOnEffect(final PhysicalCard self) {
return new TwilightCostModifier(self,
Filters.and(
Filters.keyword(Keyword.NAZGUL),
new Filter() {
@Override
public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
return (self.getData() == null);
}
}), -5);
}
@Override
public List<? extends Action> getRequiredWhenActions(LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (PlayConditions.played(game.getGameState(), game.getModifiersQuerying(), effectResult, Filters.keyword(Keyword.NAZGUL)))
self.storeData(new Object());
if (effectResult.getType() == EffectResult.Type.END_OF_TURN)
self.removeData();
return null;
}
}

View File

@@ -14,4 +14,10 @@ public interface PhysicalCard {
public LotroCardBlueprint getBlueprint();
public PhysicalCard getAttachedTo();
public void storeData(Object object);
public Object getData();
public void removeData();
}

View File

@@ -16,6 +16,8 @@ public class PhysicalCardImpl implements PhysicalCard {
private ModifierHook _modifierHook;
private Object _data;
public PhysicalCardImpl(int cardId, String blueprintId, String owner, Zone zone, LotroCardBlueprint blueprint) {
_cardId = cardId;
_blueprintId = blueprintId;
@@ -74,4 +76,19 @@ public class PhysicalCardImpl implements PhysicalCard {
public PhysicalCard getAttachedTo() {
return _attachedTo;
}
@Override
public void storeData(Object object) {
_data = object;
}
@Override
public Object getData() {
return _data;
}
@Override
public void removeData() {
_data = null;
}
}