- Twilight nodifiers coming from the card themselves (like "Cave Troll of Moria" for underground) now modify the visible twilight cost.

This commit is contained in:
marcins78@gmail.com
2011-10-18 20:45:17 +00:00
parent 77c9c68c54
commit 2d2a8bd1f6
15 changed files with 64 additions and 99 deletions

View File

@@ -77,9 +77,4 @@ public abstract class AbstractCompanion extends AbstractPermanent {
public int getResistance() { public int getResistance() {
return 6; return 6;
} }
@Override
public int getCompanionStartingFellowshipModifier() {
return 0;
}
} }

View File

@@ -3,10 +3,12 @@ package com.gempukku.lotro.cards;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.LotroCardBlueprint; import com.gempukku.lotro.game.LotroCardBlueprint;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction; import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.Action;
import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.EffectResult;
@@ -120,11 +122,6 @@ public abstract class AbstractLotroCardBlueprint implements LotroCardBlueprint {
throw new UnsupportedOperationException("This method should not be called on this card"); throw new UnsupportedOperationException("This method should not be called on this card");
} }
@Override
public int getCompanionStartingFellowshipModifier() {
throw new UnsupportedOperationException("This method should not be called on this card");
}
@Override @Override
public Block getSiteBlock() { public Block getSiteBlock() {
throw new UnsupportedOperationException("This method should not be called on this card"); throw new UnsupportedOperationException("This method should not be called on this card");
@@ -135,6 +132,11 @@ public abstract class AbstractLotroCardBlueprint implements LotroCardBlueprint {
throw new UnsupportedOperationException("This method should not be called on this card"); throw new UnsupportedOperationException("This method should not be called on this card");
} }
@Override
public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
return 0;
}
@Override @Override
public PossessionClass getPossessionClass() { public PossessionClass getPossessionClass() {
return null; return null;

View File

@@ -3,10 +3,12 @@ package com.gempukku.lotro.cards.modifiers.spotting;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.LotroCardBlueprint; import com.gempukku.lotro.game.LotroCardBlueprint;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction; import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.Action;
import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.EffectResult;
@@ -110,7 +112,7 @@ public class SimpleLotroCardBlueprint implements LotroCardBlueprint {
} }
@Override @Override
public int getCompanionStartingFellowshipModifier() { public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
return 0; return 0;
} }

View File

@@ -1,13 +1,14 @@
package com.gempukku.lotro.cards.set1.moria; package com.gempukku.lotro.cards.set1.moria;
import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.AbstractMinion;
import com.gempukku.lotro.cards.actions.PlayPermanentAction;
import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race; import com.gempukku.lotro.common.Race;
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.GameState;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
/** /**
* Set: The Fellowship of the Ring * Set: The Fellowship of the Ring
@@ -30,18 +31,15 @@ public class Card1_165 extends AbstractMinion {
@Override @Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
PhysicalCard currentSite = game.getGameState().getCurrentSite();
if (game.getModifiersQuerying().hasKeyword(game.getGameState(), currentSite, Keyword.UNDERGROUND))
twilightModifier -= 3;
return super.checkPlayRequirements(playerId, game, self, twilightModifier) return super.checkPlayRequirements(playerId, game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.MORIA), Filters.race(Race.ORC)); && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.MORIA), Filters.race(Race.ORC));
} }
@Override @Override
public PlayPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
PhysicalCard currentSite = game.getGameState().getCurrentSite(); PhysicalCard currentSite = gameState.getCurrentSite();
if (game.getModifiersQuerying().hasKeyword(game.getGameState(), currentSite, Keyword.UNDERGROUND)) if (modifiersQuerying.hasKeyword(gameState, currentSite, Keyword.UNDERGROUND))
twilightModifier -= 3; return -3;
return super.getPlayCardAction(playerId, game, self, twilightModifier); return 0;
} }
} }

View File

@@ -2,14 +2,13 @@ package com.gempukku.lotro.cards.set4.gondor;
import com.gempukku.lotro.cards.AbstractCompanion; import com.gempukku.lotro.cards.AbstractCompanion;
import com.gempukku.lotro.cards.modifiers.StrengthModifier; import com.gempukku.lotro.cards.modifiers.StrengthModifier;
import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race;
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.GameState;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@@ -34,8 +33,10 @@ public class Card4_130 extends AbstractCompanion {
} }
@Override @Override
public int getCompanionStartingFellowshipModifier() { public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
return -1; if (gameState.getCurrentPhase() == Phase.GAME_SETUP)
return -1;
return 0;
} }
@Override @Override

View File

@@ -1,13 +1,13 @@
package com.gempukku.lotro.cards.set4.isengard; package com.gempukku.lotro.cards.set4.isengard;
import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.AbstractMinion;
import com.gempukku.lotro.cards.actions.PlayPermanentAction;
import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race; import com.gempukku.lotro.common.Race;
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.GameState;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
/** /**
* Set: The Two Towers * Set: The Two Towers
@@ -27,14 +27,7 @@ public class Card4_203 extends AbstractMinion {
} }
@Override @Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
twilightModifier -= Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.siteControlled(playerId)); return -Filters.countActive(gameState, modifiersQuerying, Filters.siteControlled(self.getOwner()));
return super.checkPlayRequirements(playerId, game, self, twilightModifier);
}
@Override
public PlayPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
twilightModifier -= Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.siteControlled(playerId));
return super.getPlayCardAction(playerId, game, self, twilightModifier);
} }
} }

View File

@@ -1,13 +1,13 @@
package com.gempukku.lotro.cards.set4.isengard; package com.gempukku.lotro.cards.set4.isengard;
import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.AbstractMinion;
import com.gempukku.lotro.cards.actions.PlayPermanentAction;
import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race; import com.gempukku.lotro.common.Race;
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.GameState;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
/** /**
* Set: The Two Towers * Set: The Two Towers
@@ -27,14 +27,7 @@ public class Card4_204 extends AbstractMinion {
} }
@Override @Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
twilightModifier -= Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.siteControlled(playerId)); return -Filters.countActive(gameState, modifiersQuerying, Filters.siteControlled(self.getOwner()));
return super.checkPlayRequirements(playerId, game, self, twilightModifier);
}
@Override
public PlayPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
twilightModifier -= Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.siteControlled(playerId));
return super.getPlayCardAction(playerId, game, self, twilightModifier);
} }
} }

View File

@@ -1,13 +1,13 @@
package com.gempukku.lotro.cards.set4.isengard; package com.gempukku.lotro.cards.set4.isengard;
import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.AbstractMinion;
import com.gempukku.lotro.cards.actions.PlayPermanentAction;
import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Race; import com.gempukku.lotro.common.Race;
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.GameState;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
/** /**
* Set: The Two Towers * Set: The Two Towers
@@ -27,14 +27,7 @@ public class Card4_205 extends AbstractMinion {
} }
@Override @Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
twilightModifier -= Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.siteControlled(playerId)); return -Filters.countActive(gameState, modifiersQuerying, Filters.siteControlled(self.getOwner()));
return super.checkPlayRequirements(playerId, game, self, twilightModifier);
}
@Override
public PlayPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
twilightModifier -= Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.siteControlled(playerId));
return super.getPlayCardAction(playerId, game, self, twilightModifier);
} }
} }

View File

@@ -4,11 +4,14 @@ import com.gempukku.lotro.cards.AbstractCompanion;
import com.gempukku.lotro.cards.modifiers.StrengthModifier; import com.gempukku.lotro.cards.modifiers.StrengthModifier;
import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Race; import com.gempukku.lotro.common.Race;
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.GameState;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@@ -31,8 +34,10 @@ public class Card4_265 extends AbstractCompanion {
} }
@Override @Override
public int getCompanionStartingFellowshipModifier() { public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
return -1; if (gameState.getCurrentPhase() == Phase.GAME_SETUP)
return -1;
return 0;
} }
@Override @Override

View File

@@ -1,17 +1,17 @@
package com.gempukku.lotro.cards.set4.rohan; package com.gempukku.lotro.cards.set4.rohan;
import com.gempukku.lotro.cards.AbstractCompanion; import com.gempukku.lotro.cards.AbstractCompanion;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayPermanentAction;
import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Race; import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.common.Signet; import com.gempukku.lotro.common.Signet;
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.GameState;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
import com.gempukku.lotro.logic.effects.ChooseAndHealCharactersEffect; import com.gempukku.lotro.logic.effects.ChooseAndHealCharactersEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections; import java.util.Collections;
@@ -36,15 +36,10 @@ public class Card4_266 extends AbstractCompanion {
} }
@Override @Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
twilightModifier -= (PlayConditions.canSpot(game, Filters.culture(Culture.ROHAN), Filters.race(Race.MAN))) ? 1 : 0; if (Filters.canSpot(gameState, modifiersQuerying, Filters.culture(Culture.ROHAN), Filters.race(Race.MAN)))
return super.checkPlayRequirements(playerId, game, self, twilightModifier); return -1;
} return 0;
@Override
public PlayPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
twilightModifier -= (PlayConditions.canSpot(game, Filters.culture(Culture.ROHAN), Filters.race(Race.MAN))) ? 1 : 0;
return super.getPlayCardAction(playerId, game, self, twilightModifier);
} }
@Override @Override

View File

@@ -1,8 +1,6 @@
package com.gempukku.lotro.cards.set4.rohan; package com.gempukku.lotro.cards.set4.rohan;
import com.gempukku.lotro.cards.AbstractCompanion; import com.gempukku.lotro.cards.AbstractCompanion;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayPermanentAction;
import com.gempukku.lotro.cards.modifiers.StrengthModifier; import com.gempukku.lotro.cards.modifiers.StrengthModifier;
import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Race; import com.gempukku.lotro.common.Race;
@@ -38,15 +36,10 @@ public class Card4_267 extends AbstractCompanion {
} }
@Override @Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
twilightModifier -= (PlayConditions.canSpot(game, Filters.culture(Culture.ROHAN), Filters.race(Race.MAN))) ? 1 : 0; if (Filters.canSpot(gameState, modifiersQuerying, Filters.culture(Culture.ROHAN), Filters.race(Race.MAN)))
return super.checkPlayRequirements(playerId, game, self, twilightModifier); return -1;
} return 0;
@Override
public PlayPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
twilightModifier -= (PlayConditions.canSpot(game, Filters.culture(Culture.ROHAN), Filters.race(Race.MAN))) ? 1 : 0;
return super.getPlayCardAction(playerId, game, self, twilightModifier);
} }
@Override @Override

View File

@@ -2,18 +2,19 @@ package com.gempukku.lotro.cards.set5.dunland;
import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.AbstractMinion;
import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayPermanentAction;
import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromHandEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Race; import com.gempukku.lotro.common.Race;
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.GameState;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction; import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision; import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision;
import com.gempukku.lotro.logic.effects.DiscardCardsFromPlayEffect; import com.gempukku.lotro.logic.effects.DiscardCardsFromPlayEffect;
import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect; import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections; import java.util.Collections;
@@ -37,21 +38,12 @@ public class Card5_004 extends AbstractMinion {
} }
@Override @Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) {
if (game.getGameState().getCurrentPhase() == Phase.SKIRMISH) if (gameState.getCurrentPhase() == Phase.SKIRMISH)
twilightModifier -= 2; return -2;
return super.checkPlayRequirements(playerId, game, self, twilightModifier) return 0;
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.MORIA), Filters.race(Race.ORC));
} }
@Override
public PlayPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
if (game.getGameState().getCurrentPhase() == Phase.SKIRMISH)
twilightModifier -= 2;
return super.getPlayCardAction(playerId, game, self, twilightModifier);
}
@Override @Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(final LotroGame game, EffectResult effectResult, final PhysicalCard self) { public List<RequiredTriggerAction> getRequiredAfterTriggers(final LotroGame game, EffectResult effectResult, final PhysicalCard self) {
if (PlayConditions.played(game, effectResult, Filters.sameCard(self)) if (PlayConditions.played(game, effectResult, Filters.sameCard(self))

View File

@@ -1,10 +1,12 @@
package com.gempukku.lotro.game; package com.gempukku.lotro.game;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.OptionalTriggerAction; import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction; import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.Action;
import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.EffectResult;
@@ -32,7 +34,7 @@ public interface LotroCardBlueprint {
public int getTwilightCost(); public int getTwilightCost();
public int getCompanionStartingFellowshipModifier(); public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self);
public int getStrength(); public int getStrength();

View File

@@ -270,6 +270,7 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying {
@Override @Override
public int getTwilightCost(GameState gameState, PhysicalCard physicalCard) { public int getTwilightCost(GameState gameState, PhysicalCard physicalCard) {
int result = physicalCard.getBlueprint().getTwilightCost(); int result = physicalCard.getBlueprint().getTwilightCost();
result += physicalCard.getBlueprint().getTwilightCostModifier(gameState, this, physicalCard);
for (Modifier modifier : getModifiers(ModifierEffect.TWILIGHT_COST_MODIFIER)) { for (Modifier modifier : getModifiers(ModifierEffect.TWILIGHT_COST_MODIFIER)) {
if (affectsCardWithSkipSet(gameState, physicalCard, modifier)) if (affectsCardWithSkipSet(gameState, physicalCard, modifier))
result = modifier.getTwilightCost(gameState, this, physicalCard, result); result = modifier.getTwilightCost(gameState, this, physicalCard, result);

View File

@@ -45,7 +45,7 @@ public class PlayerPlaysStartingFellowshipGameProcess implements GameProcess {
new Filter() { new Filter() {
@Override @Override
public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
int twilightCost = modifiersQuerying.getTwilightCost(gameState, physicalCard) + physicalCard.getBlueprint().getCompanionStartingFellowshipModifier(); int twilightCost = modifiersQuerying.getTwilightCost(gameState, physicalCard);
return gameState.getTwilightPool() + twilightCost <= 4 return gameState.getTwilightPool() + twilightCost <= 4
&& physicalCard.getBlueprint().checkPlayRequirements(playerId, _game, physicalCard, 0); && physicalCard.getBlueprint().checkPlayRequirements(playerId, _game, physicalCard, 0);
} }