Merge branch 'master' into master

This commit is contained in:
PhallenCassidy
2019-08-10 15:33:31 -04:00
committed by GitHub
24 changed files with 120 additions and 143 deletions

View File

@@ -1,7 +1,6 @@
package com.gempukku.lotro.cards.set1;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
@@ -11,7 +10,10 @@ import com.gempukku.lotro.logic.actions.ActivateCardAction;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.effects.*;
import com.gempukku.lotro.logic.modifiers.*;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.modifiers.VitalityModifier;
import com.gempukku.lotro.logic.timing.Action;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.EffectResult;
@@ -44,7 +46,6 @@ public class Card1_001 extends AbstractAttachable {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(new StrengthModifier(self, Filters.hasAttached(self), 1));
modifiers.add(new VitalityModifier(self, Filters.hasAttached(self), 1));
modifiers.add(new KeywordModifier(self, Filters.hasAttached(self), Keyword.RING_BOUND));
return modifiers;
}

View File

@@ -1,7 +1,6 @@
package com.gempukku.lotro.cards.set1;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
@@ -11,7 +10,6 @@ import com.gempukku.lotro.logic.actions.ActivateCardAction;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.effects.*;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
@@ -46,7 +44,6 @@ public class Card1_002 extends AbstractAttachable {
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(new StrengthModifier(self, Filters.hasAttached(self), 1));
modifiers.add(new KeywordModifier(self, Filters.hasAttached(self), Keyword.RING_BOUND));
return modifiers;
}

View File

@@ -1,7 +1,6 @@
package com.gempukku.lotro.cards.set11;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
@@ -11,7 +10,6 @@ import com.gempukku.lotro.logic.actions.ActivateCardAction;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.effects.*;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
import com.gempukku.lotro.logic.modifiers.ResistanceModifier;
@@ -46,7 +44,6 @@ public class Card11_001 extends AbstractAttachable {
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(new ResistanceModifier(self, Filters.hasAttached(self), 2));
modifiers.add(new KeywordModifier(self, Filters.hasAttached(self), Keyword.RING_BOUND));
return modifiers;
}

View File

@@ -39,7 +39,6 @@ public class Card15_001 extends AbstractAttachable {
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(new VitalityModifier(self, Filters.hasAttached(self), 2));
modifiers.add(new KeywordModifier(self, Filters.hasAttached(self), Keyword.RING_BOUND));
modifiers.add(
new KeywordModifier(self, Filters.hasAttached(self),
new Condition() {

View File

@@ -1,7 +1,6 @@
package com.gempukku.lotro.cards.set19;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
@@ -11,14 +10,11 @@ import com.gempukku.lotro.logic.actions.ActivateCardAction;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.effects.*;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.timing.*;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
/**
@@ -37,13 +33,6 @@ public class Card19_001 extends AbstractAttachable {
return Filters.none;
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(new KeywordModifier(self, Filters.hasAttached(self), Keyword.RING_BOUND));
return modifiers;
}
@Override
protected List<? extends Action> getExtraPhaseActions(String playerId, LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self)

View File

@@ -1,7 +1,6 @@
package com.gempukku.lotro.cards.set20;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
@@ -38,7 +37,6 @@ public class Card20_001 extends AbstractAttachable {
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(new KeywordModifier(self, Filters.hasAttached(self), Keyword.RING_BOUND));
modifiers.add(new StrengthModifier(self, Filters.hasAttached(self), 1));
modifiers.add(new VitalityModifier(self, Filters.hasAttached(self), 1));
modifiers.add(new ResistanceModifier(self, Filters.hasAttached(self), 1));

View File

@@ -1,7 +1,6 @@
package com.gempukku.lotro.cards.set20;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
@@ -11,7 +10,6 @@ import com.gempukku.lotro.logic.actions.ActivateCardAction;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.effects.*;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
@@ -46,7 +44,6 @@ public class Card20_002 extends AbstractAttachable {
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(new StrengthModifier(self, Filters.hasAttached(self), 1));
modifiers.add(new KeywordModifier(self, Filters.hasAttached(self), Keyword.RING_BOUND));
return modifiers;
}

View File

@@ -1,7 +1,6 @@
package com.gempukku.lotro.cards.set4;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
@@ -40,7 +39,6 @@ public class Card4_001 extends AbstractAttachable {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(
new VitalityModifier(self, Filters.hasAttached(self), 2));
modifiers.add(new KeywordModifier(self, Filters.hasAttached(self), Keyword.RING_BOUND));
modifiers.add(
new StrengthModifier(self, Filters.hasAttached(self),
new Condition() {

View File

@@ -1,7 +1,6 @@
package com.gempukku.lotro.cards.set40;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
@@ -48,7 +47,6 @@ public class Card40_001 extends AbstractAttachable {
modifiers.add(new StrengthModifier(self, Filters.hasAttached(self), 1));
modifiers.add(new VitalityModifier(self, Filters.hasAttached(self), 1));
modifiers.add(new ResistanceModifier(self, Filters.hasAttached(self), 1));
modifiers.add(new KeywordModifier(self, Filters.hasAttached(self), Keyword.RING_BOUND));
return modifiers;
}
@@ -73,24 +71,6 @@ public class Card40_001 extends AbstractAttachable {
return null;
}
@Override
public List<? extends Action> getOptionalInPlayBeforeActions(final String playerId, LotroGame game, Effect effect, final PhysicalCard self) {
if (TriggerConditions.isGettingWounded(effect, game, Filters.hasAttached(self))
&& !game.getModifiersQuerying().hasFlagActive(game, ModifierFlag.RING_TEXT_INACTIVE)) {
WoundCharactersEffect woundEffect = (WoundCharactersEffect) effect;
List<Action> actions = new LinkedList<Action>();
ActivateCardAction action = new ActivateCardAction(self);
action.appendEffect(new NegateWoundEffect(woundEffect, self.getAttachedTo()));
action.appendEffect(new AddBurdenEffect(self.getOwner(), self, 2));
action.appendEffect(new PutOnTheOneRingEffect());
actions.add(action);
return actions;
}
return null;
}
@Override
public List<RequiredTriggerAction> getRequiredBeforeTriggers(LotroGame game, Effect effect, PhysicalCard self) {
if (TriggerConditions.isGettingWounded(effect, game, Filters.hasAttached(self))

View File

@@ -1,7 +1,6 @@
package com.gempukku.lotro.cards.set40;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
@@ -11,7 +10,6 @@ import com.gempukku.lotro.logic.actions.ActivateCardAction;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.effects.*;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
@@ -49,7 +47,6 @@ public class Card40_002 extends AbstractAttachable {
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(new StrengthModifier(self, Filters.hasAttached(self), 1));
modifiers.add(new KeywordModifier(self, Filters.hasAttached(self), Keyword.RING_BOUND));
return modifiers;
}

View File

@@ -1,11 +1,5 @@
package com.gempukku.lotro.cards.set40.gandalf;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import com.gempukku.lotro.logic.actions.PlayEventAction;
import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseActionProxyEffect;
import com.gempukku.lotro.logic.effects.OptionalEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Side;
@@ -14,8 +8,14 @@ import com.gempukku.lotro.game.AbstractActionProxy;
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.actions.PlayEventAction;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseActionProxyEffect;
import com.gempukku.lotro.logic.effects.DrawCardsEffect;
import com.gempukku.lotro.logic.effects.OptionalEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import java.util.Collections;
import java.util.List;
@@ -51,6 +51,7 @@ public class Card40_064 extends AbstractEvent{
if (TriggerConditions.winsSkirmish(game, effectResult, selectedCharacter)
&& playerId.equals(selectedCharacter.getOwner())) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.setVirtualCardAction(true);
action.appendEffect(
new OptionalEffect(action, playerId,
new DrawCardsEffect(action, playerId, 2)));

View File

@@ -1,16 +1,16 @@
package com.gempukku.lotro.cards.set40.gandalf;
import com.gempukku.lotro.logic.cardtype.AbstractAttachableFPPossession;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.effects.CheckPhaseLimitEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
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.ActivateCardAction;
import com.gempukku.lotro.logic.cardtype.AbstractAttachableFPPossession;
import com.gempukku.lotro.logic.effects.CheckPhaseLimitEffect;
import com.gempukku.lotro.logic.effects.DrawCardsEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
import com.gempukku.lotro.logic.timing.Action;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
@@ -23,7 +23,8 @@ import java.util.List;
* Twilight Cost: 1
* Type: Possession - Pipe
* Card Number: 1U71
* Game Text: Maneuver: Discard a pipeweed possession and spot X pipes to draw X cards (limit once per phase).
* Game Text: Bearer must be Gandalf;
* Maneuver: Discard a pipeweed possession and spot X pipes to draw X cards (limit once per phase).
*/
public class Card40_071 extends AbstractAttachableFPPossession{
public Card40_071() {
@@ -32,7 +33,7 @@ public class Card40_071 extends AbstractAttachableFPPossession{
@Override
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Filters.or(CardType.COMPANION, CardType.ALLY);
return Filters.gandalf;
}
@Override

View File

@@ -1,18 +1,18 @@
package com.gempukku.lotro.cards.set40.gandalf;
import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.actions.AttachPermanentAction;
import com.gempukku.lotro.logic.effects.RemoveBurdenEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filter;
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.ActivateCardAction;
import com.gempukku.lotro.logic.actions.AttachPermanentAction;
import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.logic.effects.RemoveBurdenEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.timing.Action;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
@@ -69,4 +69,14 @@ public class Card40_077 extends AbstractAttachable{
}
return null;
}
@Override
public int getStrength() {
return 1;
}
@Override
public int getResistance() {
return 1;
}
}

View File

@@ -29,7 +29,7 @@ import java.util.List;
*/
public class Card40_101 extends AbstractCompanion {
public Card40_101() {
super(3, 7, 3, 6, Culture.GONDOR, Race.MAN, null, "Boromor",
super(3, 7, 3, 6, Culture.GONDOR, Race.MAN, null, "Boromir",
"Champion of Minas Tirith", true);
addKeyword(Keyword.RANGER);
}

View File

@@ -1,14 +1,14 @@
package com.gempukku.lotro.cards.set40.isengard;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.actions.PlayEventAction;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.logic.modifiers.evaluator.ConditionEvaluator;
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.PlayEventAction;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.logic.modifiers.SpotCondition;
import com.gempukku.lotro.logic.modifiers.evaluator.ConditionEvaluator;
/**
* Title: Find the Halfling!
@@ -23,7 +23,7 @@ import com.gempukku.lotro.logic.modifiers.SpotCondition;
*/
public class Card40_123 extends AbstractEvent {
public Card40_123() {
super(Side.FREE_PEOPLE, 0, Culture.ISENGARD, "Find the Halfling!", Phase.SKIRMISH);
super(Side.SHADOW, 0, Culture.ISENGARD, "Find the Halfling!", Phase.SKIRMISH);
}
@Override

View File

@@ -1,9 +1,5 @@
package com.gempukku.lotro.cards.set40.isengard;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.actions.PlayEventAction;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDeckEffect;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Side;
@@ -11,8 +7,18 @@ import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.GameUtils;
import com.gempukku.lotro.logic.actions.PlayEventAction;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.effects.AddThreatsEffect;
import com.gempukku.lotro.logic.effects.ChoiceEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDeckEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDiscardEffect;
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.ArrayList;
import java.util.List;
/**
* Title: Seeking My Counsel
@@ -32,14 +38,21 @@ public class Card40_138 extends AbstractEvent {
@Override
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.canPlayFromDeck(playerId, game, Filters.saruman);
&& (PlayConditions.canPlayFromDeck(playerId, game, Filters.saruman)
|| PlayConditions.canPlayFromDiscard(playerId, game, Filters.saruman));
}
@Override
public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) {
PlayEventAction action = new PlayEventAction(self);
action.appendCost(
List<Effect> possibleCosts = new ArrayList<Effect>(2);
possibleCosts.add(
new ChooseAndPlayCardFromDeckEffect(playerId, Filters.saruman));
possibleCosts.add(
new ChooseAndPlayCardFromDiscardEffect(playerId, game, Filters.saruman));
action.appendCost(
new ChoiceEffect(
action, playerId, possibleCosts));
action.appendEffect(
new AddThreatsEffect(playerId, self,
new Evaluator() {

View File

@@ -1,16 +1,18 @@
package com.gempukku.lotro.cards.set40.moria;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import com.gempukku.lotro.logic.effects.AddUntilStartOfPhaseModifierEffect;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Race;
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.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.effects.AddUntilStartOfPhaseModifierEffect;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.results.PlayCardResult;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import java.util.Collections;
import java.util.List;
@@ -36,11 +38,10 @@ public class Card40_162 extends AbstractMinion {
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.playedFromStacked(game, effectResult, Filters.and(Culture.MORIA, CardType.CONDITION), Culture.MORIA, CardType.MINION)) {
PlayCardResult playResult = (PlayCardResult) effectResult;
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendEffect(
new AddUntilStartOfPhaseModifierEffect(
new StrengthModifier(self, playResult.getPlayedCard(), 1), Phase.REGROUP));
new StrengthModifier(self, self, 1), Phase.REGROUP));
return Collections.singletonList(action);
}
return null;

View File

@@ -1,17 +1,20 @@
package com.gempukku.lotro.cards.set40.sauron;
import com.gempukku.lotro.logic.cardtype.AbstractPermanent;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import com.gempukku.lotro.logic.effects.ChoiceEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDeckEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDiscardEffect;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Side;
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.cardtype.AbstractPermanent;
import com.gempukku.lotro.logic.effects.ChoiceEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDeckEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDiscardEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import java.util.ArrayList;
import java.util.Collections;

View File

@@ -1,15 +1,15 @@
package com.gempukku.lotro.cards.set40.shire;
import com.gempukku.lotro.logic.cardtype.AbstractAlly;
import com.gempukku.lotro.logic.timing.PlayConditions;
import com.gempukku.lotro.logic.effects.CancelSkirmishEffect;
import com.gempukku.lotro.logic.effects.SelfExertEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.ActivateCardAction;
import com.gempukku.lotro.logic.cardtype.AbstractAlly;
import com.gempukku.lotro.logic.effects.CancelSkirmishEffect;
import com.gempukku.lotro.logic.effects.SelfExertEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.logic.timing.Action;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
@@ -25,8 +25,8 @@ import java.util.List;
* Vitality: 2
* Card Number: 1R265
* Game Text: To play, spot 2 Hobbit companions.
* Skirmish: At sites 1-5, exert Robin Smallburrow to cancel a skirmish involving a Hobbit.
* Skirmish: At sites 6-9, exert Robin Smallburrow to make a Hobbit strength +3.
* Skirmish: At sites 1-4, exert Robin Smallburrow to cancel a skirmish involving a Hobbit.
* Skirmish: At sites 5-9, exert Robin Smallburrow to make a Hobbit strength +3.
*/
public class Card40_265 extends AbstractAlly {
public Card40_265() {
@@ -47,7 +47,7 @@ public class Card40_265 extends AbstractAlly {
&& PlayConditions.canSelfExert(self, game)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(new SelfExertEffect(action, self));
if (game.getGameState().getCurrentSiteNumber() <= 5) {
if (game.getGameState().getCurrentSiteNumber() <= 4) {
action.appendEffect(
new CancelSkirmishEffect(Race.HOBBIT));
} else {

View File

@@ -50,9 +50,14 @@ public class Card40_268 extends AbstractCompanion {
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggersFromHand(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.forEachKilled(game, effectResult, Filters.frodo, Filters.ringBearer)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendEffect(new MakeRingBearerEffect(self));
return Collections.singletonList(action);
}
if (TriggerConditions.startOfTurn(game, effectResult)
&& PlayConditions.canSelfExert(self, game)) {
&& PlayConditions.canSelfExert(self, game)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendCost(
new SelfExertEffect(action, self));
@@ -60,16 +65,6 @@ public class Card40_268 extends AbstractCompanion {
new RemoveBurdenEffect(playerId, self));
return Collections.singletonList(action);
}
return null;
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.forEachKilled(game, effectResult, Filters.frodo, Filters.ringBearer)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendEffect(new MakeRingBearerEffect(self));
return Collections.singletonList(action);
}
return null;
}

View File

@@ -1,7 +1,6 @@
package com.gempukku.lotro.cards.set7;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
@@ -11,7 +10,6 @@ import com.gempukku.lotro.logic.actions.ActivateCardAction;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.effects.*;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
@@ -43,7 +41,6 @@ public class Card7_002 extends AbstractAttachable {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(
new StrengthModifier(self, Filters.hasAttached(self), 2));
modifiers.add(new KeywordModifier(self, Filters.hasAttached(self), Keyword.RING_BOUND));
return modifiers;
}

View File

@@ -1,7 +1,6 @@
package com.gempukku.lotro.cards.set9;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.PossessionClass;
import com.gempukku.lotro.filters.Filter;
@@ -14,7 +13,10 @@ import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.effects.*;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDeckEffect;
import com.gempukku.lotro.logic.modifiers.*;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.modifiers.VitalityModifier;
import com.gempukku.lotro.logic.timing.*;
import java.util.Collections;
@@ -67,7 +69,6 @@ public class Card9_001 extends AbstractAttachable {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(new StrengthModifier(self, Filters.hasAttached(self), 1));
modifiers.add(new VitalityModifier(self, Filters.hasAttached(self), 1));
modifiers.add(new KeywordModifier(self, Filters.hasAttached(self), Keyword.RING_BOUND));
return modifiers;
}

View File

@@ -33,7 +33,7 @@ public class RuleSet {
new KilledCardRule(_actionsEnvironment).applyRule();
new FrodoAndSamRule(_modifiersLogic).applyRule();
new RingRelatedRule(_modifiersLogic).applyRule();
new RingBearerRule(_modifiersLogic).applyRule();

View File

@@ -1,22 +1,24 @@
package com.gempukku.lotro.logic.timing.rules;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.logic.modifiers.CantPlayCardsModifier;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.ModifiersLogic;
public class FrodoAndSamRule {
private ModifiersLogic _modifiersLogic;
public FrodoAndSamRule(ModifiersLogic modifiersLogic) {
_modifiersLogic = modifiersLogic;
}
public void applyRule() {
_modifiersLogic.addAlwaysOnModifier(
new KeywordModifier(null, Filters.or(Filters.frodo, Filters.sam), Keyword.RING_BOUND));
_modifiersLogic.addAlwaysOnModifier(
new CantPlayCardsModifier(null, Filters.frodo, Keyword.CAN_START_WITH_RING));
}
}
package com.gempukku.lotro.logic.timing.rules;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.logic.modifiers.CantPlayCardsModifier;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.ModifiersLogic;
public class RingRelatedRule {
private ModifiersLogic _modifiersLogic;
public RingRelatedRule(ModifiersLogic modifiersLogic) {
_modifiersLogic = modifiersLogic;
}
public void applyRule() {
_modifiersLogic.addAlwaysOnModifier(
new KeywordModifier(null, Filters.or(Filters.frodo, Filters.sam), Keyword.RING_BOUND));
_modifiersLogic.addAlwaysOnModifier(
new CantPlayCardsModifier(null, Filters.frodo, Keyword.CAN_START_WITH_RING));
_modifiersLogic.addAlwaysOnModifier(
new KeywordModifier(null, Filters.ringBearer, Keyword.RING_BOUND));
}
}