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:
@@ -1,6 +1,11 @@
|
|||||||
package com.gempukku.lotro.cards;
|
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.filters.Filters;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
import com.gempukku.lotro.game.state.LotroGame;
|
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) {
|
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)
|
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) {
|
protected final List<? extends Action> getExtraPhaseActions(String playerId, LotroGame game, final PhysicalCard self) {
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
package com.gempukku.lotro.cards;
|
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.Filter;
|
||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
import com.gempukku.lotro.game.LotroCardBlueprint;
|
import com.gempukku.lotro.game.LotroCardBlueprint;
|
||||||
@@ -156,6 +162,19 @@ public class PlayConditions {
|
|||||||
return (getTotalCompanions(self.getOwner(), gameState, modifiersQuerying) < 9);
|
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) {
|
public static boolean canHealByDiscarding(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
|
||||||
LotroCardBlueprint blueprint = self.getBlueprint();
|
LotroCardBlueprint blueprint = self.getBlueprint();
|
||||||
if (self.getZone() == Zone.HAND
|
if (self.getZone() == Zone.HAND
|
||||||
|
|||||||
Reference in New Issue
Block a user