Uruk Crossbow Troop"

This commit is contained in:
marcins78@gmail.com
2011-10-11 08:36:27 +00:00
parent a86d44a764
commit f30e853a26
3 changed files with 58 additions and 1 deletions

View File

@@ -230,6 +230,10 @@ public class PlayConditions {
return false;
}
public static boolean played(LotroGame game, EffectResult effectResult, Filter... filters) {
return played(game.getGameState(), game.getModifiersQuerying(), effectResult, Filters.and(filters));
}
public static boolean played(GameState gameState, ModifiersQuerying modifiersQuerying, Effect effect, Filter filter) {
if (effect.getType() == EffectResult.Type.PLAY) {
PhysicalCard playedCard = ((PlayCardEffect) effect).getPlayedCard();

View File

@@ -0,0 +1,53 @@
package com.gempukku.lotro.cards.set4.isengard;
import com.gempukku.lotro.cards.AbstractMinion;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.effects.AddTokenEffect;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.common.Token;
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.OptionalTriggerAction;
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
import java.util.List;
/**
* Set: The Two Towers
* Side: Shadow
* Culture: Isengard
* Twilight Cost: 4
* Type: Minion • Uruk-Hai
* Strength: 8
* Vitality: 2
* Site: 5
* Game Text: Archer. When you play this minion, you may place an [ISENGARD] token on a machine.
*/
public class Card4_182 extends AbstractMinion {
public Card4_182() {
super(4, 8, 2, 5, Race.URUK_HAI, Culture.ISENGARD, "Uruk Crossbow Troop");
addKeyword(Keyword.ARCHER);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) {
if (PlayConditions.played(game, effectResult, Filters.sameCard(self))) {
final OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendEffect(
new ChooseActiveCardEffect(self, playerId, "Choose machine", Filters.keyword(Keyword.MACHINE)) {
@Override
protected void cardSelected(PhysicalCard card) {
action.insertEffect(
new AddTokenEffect(self, card, Token.ISENGARD));
}
});
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -15,7 +15,7 @@ public enum Keyword {
BATTLEGROUND("Battleground", true),
DAMAGE("Damage", true, true), DEFENDER("Defender", true, true), FIERCE("Fierce", true), ARCHER("Archer", true), UNHASTY("Unhasty", true),
RANGER("Ranger", true), TRACKER("Tracker", true),
RANGER("Ranger", true), TRACKER("Tracker", true), MACHINE("Machine", true),
HAND_WEAPON("Hand Weapon"), ARMOR("Armor"), HELM("Helm"), MOUNT("Mount"), RANGED_WEAPON("Ranged Weapon"),
CLOAK("Cloak"), PIPE("Pipe"), PIPEWEED("Pipeweed"), SHIELD("Shield"), BRACERS("Bracers"), STAFF("Staff"), RING("Ring"),