"The Tale of Gil-galad"

This commit is contained in:
marcins78@gmail.com
2011-08-30 11:13:54 +00:00
parent f6aee90e54
commit 05968012dd
14 changed files with 69 additions and 15 deletions

View File

@@ -26,11 +26,11 @@ public class AbstractAttachable extends AbstractLotroCardBlueprint {
_twilight = twilight;
}
protected void appendAttachCardFromHandAction(List<Action> actions, LotroGame game, PhysicalCard self, Filter validTargetFilter) {
appendAttachCardFromHandAction(actions, game, self, validTargetFilter, Collections.<Filter, Integer>emptyMap());
protected void appendAttachCardAction(List<Action> actions, LotroGame game, PhysicalCard self, Filter validTargetFilter) {
appendAttachCardAction(actions, game, self, validTargetFilter, Collections.<Filter, Integer>emptyMap());
}
protected void appendAttachCardFromHandAction(List<Action> actions, LotroGame game, PhysicalCard self, Filter validTargetFilter, Map<Filter, Integer> playCostModifiers) {
protected void appendAttachCardAction(List<Action> actions, LotroGame game, PhysicalCard self, Filter validTargetFilter, Map<Filter, Integer> playCostModifiers) {
GameState gameState = game.getGameState();
LotroCardBlueprint blueprint = self.getBlueprint();
if (gameState.getCurrentPhase() == ((getSide() == Side.FREE_PEOPLE) ? Phase.FELLOWSHIP : Phase.SHADOW)

View File

@@ -34,7 +34,7 @@ public class Card1_008 extends AbstractAttachableFPPossession {
Filter validTargetFilter = Filters.and(Filters.keyword(Keyword.DWARF), Filters.not(Filters.attached(Filters.keyword(Keyword.ARMOR))));
appendAttachCardFromHandAction(actions, game, self, validTargetFilter);
appendAttachCardAction(actions, game, self, validTargetFilter);
appendTransferPossessionAction(actions, game, self, validTargetFilter);
return actions;

View File

@@ -43,7 +43,7 @@ public class Card1_009 extends AbstractAttachableFPPossession {
Filter validTargetFilter = Filters.and(Filters.keyword(Keyword.DWARF), Filters.not(Filters.attached(Filters.keyword(Keyword.HAND_WEAPON))));
appendAttachCardFromHandAction(actions, game, self, validTargetFilter);
appendAttachCardAction(actions, game, self, validTargetFilter);
appendTransferPossessionAction(actions, game, self, validTargetFilter);
return actions;

View File

@@ -40,7 +40,7 @@ public class Card1_010 extends AbstractAttachable {
Filter validTargetFilter = Filters.keyword(Keyword.DWARF);
appendAttachCardFromHandAction(actions, game, self, validTargetFilter);
appendAttachCardAction(actions, game, self, validTargetFilter);
return actions;
}

View File

@@ -43,7 +43,7 @@ public class Card1_014 extends AbstractAttachableFPPossession {
Filter validTargetFilter = Filters.and(Filters.name("Gimli"), Filters.not(Filters.attached(Filters.keyword(Keyword.HAND_WEAPON))));
appendAttachCardFromHandAction(actions, game, self, validTargetFilter);
appendAttachCardAction(actions, game, self, validTargetFilter);
appendTransferPossessionAction(actions, game, self, validTargetFilter);

View File

@@ -41,7 +41,7 @@ public class Card1_015 extends AbstractAttachableFPPossession {
Filter validTargetFilter = Filters.and(Filters.name("Gimli"), Filters.not(Filters.attached(Filters.keyword(Keyword.HELM))));
appendAttachCardFromHandAction(actions, game, self, validTargetFilter);
appendAttachCardAction(actions, game, self, validTargetFilter);
appendTransferPossessionAction(actions, game, self, validTargetFilter);

View File

@@ -43,7 +43,7 @@ public class Card1_031 extends AbstractAttachableFPPossession {
Map<Filter, Integer> costModifiers = new HashMap<Filter, Integer>();
costModifiers.put(Filters.name("Arwen"), -2);
appendAttachCardFromHandAction(actions, game, self, validTargetFilter, costModifiers);
appendAttachCardAction(actions, game, self, validTargetFilter, costModifiers);
appendTransferPossessionAction(actions, game, self, validTargetFilter);
return actions;

View File

@@ -42,7 +42,7 @@ public class Card1_033 extends AbstractAttachableFPPossession {
Filter validTargetFilter = Filters.and(Filters.name("Legolas"), Filters.not(Filters.attached(Filters.keyword(Keyword.RANGED_WEAPON))));
appendAttachCardFromHandAction(actions, game, self, validTargetFilter);
appendAttachCardAction(actions, game, self, validTargetFilter);
appendTransferPossessionAction(actions, game, self, validTargetFilter);
return actions;

View File

@@ -34,7 +34,7 @@ public class Card1_041 extends AbstractAttachableFPPossession {
Filter validTargetFilter = Filters.and(Filters.keyword(Keyword.ELF), Filters.not(Filters.attached(Filters.keyword(Keyword.RANGED_WEAPON))));
appendAttachCardFromHandAction(actions, game, self, validTargetFilter);
appendAttachCardAction(actions, game, self, validTargetFilter);
appendTransferPossessionAction(actions, game, self, validTargetFilter);
return actions;

View File

@@ -37,7 +37,7 @@ public class Card1_042 extends AbstractAttachableFPPossession {
Filter validTargetFilter = Filters.and(Filters.type(CardType.COMPANION), Filters.not(Filters.attached(Filters.keyword(Keyword.CLOAK))));
if (Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.ELF)))
appendAttachCardFromHandAction(actions, game, self, validTargetFilter);
appendAttachCardAction(actions, game, self, validTargetFilter);
appendTransferPossessionAction(actions, game, self, validTargetFilter);

View File

@@ -49,7 +49,7 @@ public class Card1_047 extends AbstractAttachableFPPossession {
Filter validTargetFilter = Filters.and(Filters.name("Arwen"), Filters.not(Filters.attached(Filters.keyword(Keyword.HAND_WEAPON))));
if (!Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.name("Gwemegil")))
appendAttachCardFromHandAction(actions, game, self, validTargetFilter);
appendAttachCardAction(actions, game, self, validTargetFilter);
appendTransferPossessionAction(actions, game, self, validTargetFilter);

View File

@@ -39,7 +39,7 @@ public class Card1_049 extends AbstractAttachable {
Filter validTargetFilter = Filters.and(Filters.culture(Culture.GONDOR), Filters.keyword(Keyword.MAN), Filters.not(Filters.attached(Filters.name("The Last Alliance of Elves and Men"))));
appendAttachCardFromHandAction(actions, game, self, validTargetFilter);
appendAttachCardAction(actions, game, self, validTargetFilter);
return actions;
}

View File

@@ -39,7 +39,7 @@ public class Card1_062 extends AbstractAttachable {
Filter validTargetFilter = Filters.and(Filters.keyword(Keyword.ELF), Filters.type(CardType.COMPANION));
List<Action> actions = new LinkedList<Action>();
appendAttachCardFromHandAction(actions, game, self, validTargetFilter);
appendAttachCardAction(actions, game, self, validTargetFilter);
return actions;
}

View File

@@ -0,0 +1,54 @@
package com.gempukku.lotro.cards.set1.elven;
import com.gempukku.lotro.cards.AbstractAttachable;
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
import com.gempukku.lotro.cards.modifiers.StrengthModifier;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.CostToEffectAction;
import com.gempukku.lotro.logic.effects.DiscardCardFromPlayEffect;
import com.gempukku.lotro.logic.timing.Action;
import java.util.LinkedList;
import java.util.List;
/**
* Set: The Fellowship of the Ring
* Side: Free
* Culture: Elven
* Twilight Cost: 1
* Type: Condition
* Vitality: +1
* Game Text: Tale. Bearer must be an Elf. Skirmish: Discard this condition to make bearer strength +2.
*/
public class Card1_066 extends AbstractAttachable {
public Card1_066() {
super(Side.FREE_PEOPLE, CardType.CONDITION, 1, Culture.ELVEN, "The Tale of Gil-galad", "1_66", true);
addKeyword(Keyword.TALE);
}
@Override
public List<? extends Action> getPlayablePhaseActions(String playerId, LotroGame game, PhysicalCard self) {
List<Action> actions = new LinkedList<Action>();
Filter validTargetFilter = Filters.keyword(Keyword.ELF);
appendAttachCardAction(actions, game, self, validTargetFilter);
if (game.getGameState().getCurrentPhase() == Phase.SKIRMISH
&& self.getZone() == Zone.ATTACHED) {
CostToEffectAction action = new CostToEffectAction(self, "Discard this condition to make bearer strength +2");
action.addCost(new DiscardCardFromPlayEffect(self));
action.addEffect(
new AddUntilEndOfPhaseModifierEffect(
new StrengthModifier(self, Filters.sameCard(self.getAttachedTo()), 2), Phase.SKIRMISH));
actions.add(action);
}
return actions;
}
}