"King's Room"

This commit is contained in:
marcins78@gmail.com
2011-10-16 21:46:34 +00:00
parent 7fcaba40ae
commit 63a88be827
2 changed files with 42 additions and 1 deletions

View File

@@ -0,0 +1,41 @@
package com.gempukku.lotro.cards.set4.site;
import com.gempukku.lotro.cards.AbstractSite;
import com.gempukku.lotro.cards.effects.ExertCharactersEffect;
import com.gempukku.lotro.common.Block;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
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.RequiredTriggerAction;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
import java.util.List;
/**
* Set: The Two Towers
* Twilight Cost: 6
* Type: Site
* Site: 7T
* Game Text: When the fellowship moves to King's Room without a [ROHAN] companion, each unbound companion must exert.
*/
public class Card4_357 extends AbstractSite {
public Card4_357() {
super("King's Room", Block.TWO_TOWERS, 7, 6, Direction.RIGHT);
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_TO
&& game.getGameState().getCurrentSite() == self
&& Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Culture.ROHAN, CardType.COMPANION) == 0) {
RequiredTriggerAction action = new RequiredTriggerAction(self);
action.appendEffect(
new ExertCharactersEffect(self, Filters.unboundCompanion));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -49,7 +49,7 @@ public class Filters {
return visitor.getCard();
}
public static int countActive(GameState gameState, ModifiersQuerying modifiersQuerying, Filter... filters) {
public static int countActive(GameState gameState, ModifiersQuerying modifiersQuerying, Filterable... filters) {
GetCardsMatchingFilterVisitor matchingFilterVisitor = new GetCardsMatchingFilterVisitor(gameState, modifiersQuerying, Filters.and(filters));
gameState.iterateActiveCards(matchingFilterVisitor);
return matchingFilterVisitor.getCounter();