"Ford of Bruinen"
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -14,4 +14,10 @@ public interface PhysicalCard {
|
||||
public LotroCardBlueprint getBlueprint();
|
||||
|
||||
public PhysicalCard getAttachedTo();
|
||||
|
||||
public void storeData(Object object);
|
||||
|
||||
public Object getData();
|
||||
|
||||
public void removeData();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user