If a character other than Frodo is your Ringbearer, you cannot play any version of Frodo with the Ring-bearer keyword during the game.

This commit is contained in:
MarcinSc
2016-02-05 14:01:10 -08:00
parent febef2da9f
commit be8a883c40
2 changed files with 28 additions and 3 deletions

View File

@@ -1,6 +1,11 @@
package com.gempukku.lotro.cards;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.common.Signet;
import com.gempukku.lotro.common.Zone;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
@@ -44,7 +49,8 @@ public abstract class AbstractCompanion extends AbstractPermanent {
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int withTwilightRemoved, int twilightModifier, boolean ignoreRoamingPenalty, boolean ignoreCheckingDeadPile) {
return super.checkPlayRequirements(playerId, game, self, withTwilightRemoved, twilightModifier, ignoreRoamingPenalty, ignoreCheckingDeadPile)
&& PlayConditions.checkRuleOfNine(game.getGameState(), game.getModifiersQuerying(), self);
&& PlayConditions.checkRuleOfNine(game.getGameState(), game.getModifiersQuerying(), self)
&& PlayConditions.checkPlayRingBearer(game.getGameState(), self);
}
protected final List<? extends Action> getExtraPhaseActions(String playerId, LotroGame game, final PhysicalCard self) {

View File

@@ -1,6 +1,12 @@
package com.gempukku.lotro.cards;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Filterable;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.common.Token;
import com.gempukku.lotro.common.Zone;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.LotroCardBlueprint;
@@ -156,6 +162,19 @@ public class PlayConditions {
return (getTotalCompanions(self.getOwner(), gameState, modifiersQuerying) < 9);
}
public static boolean checkPlayRingBearer(GameState gameState, PhysicalCard self) {
// If a character other than Frodo is your Ringbearer,
// you cannot play any version of Frodo
// with the Ring-bearer keyword during the game
PhysicalCard ringBearer = gameState.getRingBearer(gameState.getCurrentPlayerId());
boolean ringBearerIsNotFrodo = ringBearer != null && !ringBearer.getBlueprint().getName().equals("Frodo");
if (ringBearerIsNotFrodo) {
boolean isRingBearerFrodo = self.getBlueprint().getName().equals("Frodo") && self.getBlueprint().hasKeyword(Keyword.CAN_START_WITH_RING);
return !isRingBearerFrodo;
}
return true;
}
public static boolean canHealByDiscarding(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
LotroCardBlueprint blueprint = self.getBlueprint();
if (self.getZone() == Zone.HAND