"Uruk Trooper"

This commit is contained in:
marcins78@gmail.com
2011-10-11 09:50:01 +00:00
parent 477bf308d8
commit a4c94c2804

View File

@@ -0,0 +1,63 @@
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.StackCardFromPlayEffect;
import com.gempukku.lotro.common.*;
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.Action;
import java.util.Collections;
import java.util.List;
/**
* Set: The Two Towers
* Side: Shadow
* Culture: Isengard
* Twilight Cost: 4
* Type: Minion • Uruk-Hai
* Strength: 9
* Vitality: 2
* Site: 5
* Game Text: Damage +1. Regroup: Stack this minion on a site you control. Shadow: If stacked on a site you control,
* play this minion. Its twilight cost is -1.
*/
public class Card4_199 extends AbstractMinion {
public Card4_199() {
super(4, 9, 2, 5, Race.URUK_HAI, Culture.ISENGARD, "Uruk Trooper");
addKeyword(Keyword.DAMAGE);
}
@Override
protected List<? extends Action> getExtraPhaseActions(String playerId, LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game.getGameState(), Phase.REGROUP, self, 0)
&& PlayConditions.controllsSite(game.getGameState(), game.getModifiersQuerying(), playerId)) {
final OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendEffect(
new ChooseActiveCardEffect(self, playerId, "Choose site you control", Filters.siteControlled(playerId)) {
@Override
protected void cardSelected(PhysicalCard card) {
action.insertEffect(
new StackCardFromPlayEffect(self, card));
}
});
return Collections.singletonList(action);
}
return null;
}
@Override
public List<? extends Action> getPhaseActionsFromStacked(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseStackedShadowCardDuringPhase(game.getGameState(), Phase.SHADOW, self, 0)
&& self.getStackedOn().getBlueprint().getCardType() == CardType.SITE
&& playerId.equals(self.getStackedOn().getCardController())
&& checkPlayRequirements(playerId, game, self, -1)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, -1));
}
return null;
}
}