Merge pull request #41 from PhallenCassidy/Another-round-of-Hobbit-fixes
Another round of hobbit fixes
This commit is contained in:
@@ -29,7 +29,7 @@ public class Card30_003 extends AbstractEvent {
|
|||||||
final PlayEventAction action = new PlayEventAction(self);
|
final PlayEventAction action = new PlayEventAction(self);
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId,
|
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId,
|
||||||
new CardMatchesEvaluator(3, 4, Filters.hasAttached(CardType.FOLLOWER)), Race.DWARF, Filters.or(CardType.COMPANION, CardType.ALLY)));
|
new CardMatchesEvaluator(3, 4, Filters.hasAttached(Filters.and(CardType.FOLLOWER, Culture.DWARVEN))), Race.DWARF, Filters.or(CardType.COMPANION, CardType.ALLY)));
|
||||||
return action;
|
return action;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -30,7 +30,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class Card30_008 extends AbstractFollower {
|
public class Card30_008 extends AbstractFollower {
|
||||||
public Card30_008() {
|
public Card30_008() {
|
||||||
super(Side.FREE_PEOPLE, 2, 1, 0, 0, Culture.DWARVEN, "Dori", "Really a Decent Fellow", true);
|
super(Side.FREE_PEOPLE, 1, 1, 0, 0, Culture.DWARVEN, "Dori", "Really a Decent Fellow", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import java.util.List;
|
|||||||
* Strength: 7
|
* Strength: 7
|
||||||
* Vitality: 3
|
* Vitality: 3
|
||||||
* Resistance: 6
|
* Resistance: 6
|
||||||
* Game Text: Skirmish: Exert Nori twice and discard a [DWARVEN] follower to discard a possession
|
* Game Text: Maneuver: Exert Nori twice and discard a [DWARVEN] follower to discard a possession
|
||||||
*/
|
*/
|
||||||
public class Card30_015 extends AbstractCompanion {
|
public class Card30_015 extends AbstractCompanion {
|
||||||
public Card30_015() {
|
public Card30_015() {
|
||||||
@@ -32,7 +32,7 @@ public class Card30_015 extends AbstractCompanion {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<ActivateCardAction> getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
|
protected List<ActivateCardAction> getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
|
||||||
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)
|
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self)
|
||||||
&& PlayConditions.canExert(self, game, 2, self)
|
&& PlayConditions.canExert(self, game, 2, self)
|
||||||
&& PlayConditions.canDiscardFromPlay(self, game, Culture.DWARVEN, CardType.FOLLOWER)) {
|
&& PlayConditions.canDiscardFromPlay(self, game, Culture.DWARVEN, CardType.FOLLOWER)) {
|
||||||
ActivateCardAction action = new ActivateCardAction(self);
|
ActivateCardAction action = new ActivateCardAction(self);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.gempukku.lotro.cards.TriggerConditions;
|
|||||||
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
|
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
|
||||||
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
|
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
|
||||||
import com.gempukku.lotro.cards.modifiers.evaluator.CardPhaseLimitEvaluator;
|
import com.gempukku.lotro.cards.modifiers.evaluator.CardPhaseLimitEvaluator;
|
||||||
|
import com.gempukku.lotro.cards.modifiers.evaluator.NegativeEvaluator;
|
||||||
import com.gempukku.lotro.common.*;
|
import com.gempukku.lotro.common.*;
|
||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
@@ -65,11 +66,12 @@ public class Card30_045 extends AbstractCompanion {
|
|||||||
action.insertEffect(
|
action.insertEffect(
|
||||||
new AddUntilEndOfPhaseModifierEffect(
|
new AddUntilEndOfPhaseModifierEffect(
|
||||||
new StrengthModifier(self, Filters.sameCard(card), null,
|
new StrengthModifier(self, Filters.sameCard(card), null,
|
||||||
new CardPhaseLimitEvaluator(game, self, Phase.SKIRMISH, -4, new ConstantEvaluator(-2)))));
|
new NegativeEvaluator(new CardPhaseLimitEvaluator(
|
||||||
|
game, self, Phase.SKIRMISH, 4, new ConstantEvaluator(2))))));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return Collections.singletonList(action);
|
return Collections.singletonList(action);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class Card31_002 extends AbstractEvent {
|
public class Card31_002 extends AbstractEvent {
|
||||||
public Card31_002() {
|
public Card31_002() {
|
||||||
super(Side.FREE_PEOPLE, 1, Culture.DWARVEN, "Dwarven Song", Phase.REGROUP);
|
super(Side.FREE_PEOPLE, 3, Culture.DWARVEN, "Dwarven Song", Phase.REGROUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class Card31_004 extends AbstractPermanent {
|
public class Card31_004 extends AbstractPermanent {
|
||||||
public Card31_004() {
|
public Card31_004() {
|
||||||
super(Side.FREE_PEOPLE, 1, CardType.POSSESSION, Culture.DWARVEN, Zone.SUPPORT, "Great Barricade", null, true);
|
super(Side.FREE_PEOPLE, 2, CardType.POSSESSION, Culture.DWARVEN, Zone.SUPPORT, "Great Barricade", null, true);
|
||||||
addKeyword(Keyword.FORTIFICATION);
|
addKeyword(Keyword.FORTIFICATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,13 +42,7 @@ public class Card31_010 extends AbstractAlly {
|
|||||||
action.appendCost(
|
action.appendCost(
|
||||||
new SelfExertEffect(action, self));
|
new SelfExertEffect(action, self));
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new ChooseOpponentEffect(playerId) {
|
new ChooseAndReturnCardsToHandEffect(action, playerId, 1, 1, Race.ORC, Filters.lessStrengthThan(8)));
|
||||||
@Override
|
|
||||||
protected void opponentChosen(String opponentId) {
|
|
||||||
action.appendEffect(
|
|
||||||
new ChooseAndReturnCardsToHandEffect(action, opponentId, 1, 1, Race.ORC, Filters.lessStrengthThan(8)));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return Collections.singletonList(action);
|
return Collections.singletonList(action);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.gempukku.lotro.cards.effects.DiscardBottomCardFromDeckEffect;
|
|||||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
|
import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
|
||||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
|
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
|
||||||
import com.gempukku.lotro.cards.modifiers.AllyParticipatesInArcheryFireAndSkirmishesModifier;
|
import com.gempukku.lotro.cards.modifiers.AllyParticipatesInArcheryFireAndSkirmishesModifier;
|
||||||
|
import com.gempukku.lotro.cards.modifiers.CantTakeArcheryWoundsModifier;
|
||||||
import com.gempukku.lotro.common.*;
|
import com.gempukku.lotro.common.*;
|
||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
@@ -15,8 +16,7 @@ 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.ActivateCardAction;
|
import com.gempukku.lotro.logic.actions.ActivateCardAction;
|
||||||
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
|
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
|
||||||
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
|
import com.gempukku.lotro.logic.modifiers.*;
|
||||||
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
|
|
||||||
import com.gempukku.lotro.logic.timing.Effect;
|
import com.gempukku.lotro.logic.timing.Effect;
|
||||||
import com.gempukku.lotro.logic.timing.Action;
|
import com.gempukku.lotro.logic.timing.Action;
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ import java.util.List;
|
|||||||
* Vitality: 4
|
* Vitality: 4
|
||||||
* Site: 5
|
* Site: 5
|
||||||
* Game Text: Maneuver: Exert Thorin twice or discard a [DWARVEN] artifact to allow Thranduil
|
* Game Text: Maneuver: Exert Thorin twice or discard a [DWARVEN] artifact to allow Thranduil
|
||||||
* to participate in archery fire and skirmishes until the regroup phase.
|
* to participate in skirmishes until the regroup phase.
|
||||||
*/
|
*/
|
||||||
public class Card31_012 extends AbstractAlly {
|
public class Card31_012 extends AbstractAlly {
|
||||||
public Card31_012() {
|
public Card31_012() {
|
||||||
@@ -68,6 +68,9 @@ public class Card31_012 extends AbstractAlly {
|
|||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new AddUntilStartOfPhaseModifierEffect(
|
new AddUntilStartOfPhaseModifierEffect(
|
||||||
new AllyParticipatesInArcheryFireAndSkirmishesModifier(self, self), Phase.REGROUP));
|
new AllyParticipatesInArcheryFireAndSkirmishesModifier(self, self), Phase.REGROUP));
|
||||||
|
action.appendEffect(
|
||||||
|
new AddUntilStartOfPhaseModifierEffect(
|
||||||
|
new CantTakeArcheryWoundsModifier(self, self), Phase.ASSIGNMENT));
|
||||||
return Collections.singletonList(action);
|
return Collections.singletonList(action);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -11,8 +11,9 @@ 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;
|
||||||
import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
|
import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
|
||||||
import com.gempukku.lotro.logic.modifiers.CantDiscardFromPlayByPlayerModifier;
|
import com.gempukku.lotro.logic.modifiers.CantDiscardFromPlayModifier;
|
||||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||||
|
import com.gempukku.lotro.logic.modifiers.SpotCondition;
|
||||||
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;
|
||||||
@@ -37,19 +38,20 @@ public class Card31_013 extends AbstractFollower {
|
|||||||
super(Side.FREE_PEOPLE, 3, 2, 1, 0, Culture.GANDALF, "Beorn", "Skin-Changer", true);
|
super(Side.FREE_PEOPLE, 3, 2, 1, 0, Culture.GANDALF, "Beorn", "Skin-Changer", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Race getRace() {
|
public Race getRace() {
|
||||||
return Race.MAN;
|
return Race.MAN;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Modifier getAlwaysOnModifier(LotroGame game, PhysicalCard self) {
|
public Modifier getAlwaysOnModifier(LotroGame game, PhysicalCard self) {
|
||||||
return new CantDiscardFromPlayByPlayerModifier(self, "Can't be discarded by opponent", self, self.getOwner());
|
return new CantDiscardFromPlayModifier(self, "Cannot be discarded from play by Shadow cards",
|
||||||
}
|
new SpotCondition(Filters.hasAttached(self)), self, Side.SHADOW);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean canPayAidCost(LotroGame game, PhysicalCard self) {
|
protected boolean canPayAidCost(LotroGame game, PhysicalCard self) {
|
||||||
return PlayConditions.canExert(self, game, Filters.gandalf);
|
return PlayConditions.canExert(self, game, Filters.gandalf);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -7,8 +7,7 @@ import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
|
|||||||
import com.gempukku.lotro.cards.effects.RemoveTwilightEffect;
|
import com.gempukku.lotro.cards.effects.RemoveTwilightEffect;
|
||||||
import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
||||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
|
import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
|
||||||
import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator;
|
import com.gempukku.lotro.cards.modifiers.evaluator.*;
|
||||||
import com.gempukku.lotro.cards.modifiers.evaluator.MultiplyEvaluator;
|
|
||||||
import com.gempukku.lotro.common.*;
|
import com.gempukku.lotro.common.*;
|
||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
@@ -58,7 +57,8 @@ public class Card31_029 extends AbstractPermanent {
|
|||||||
action.appendCost(new RemoveTwilightEffect(3));
|
action.appendCost(new RemoveTwilightEffect(3));
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId,
|
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId,
|
||||||
new MultiplyEvaluator(-1, new CountSpottableEvaluator(3, CardType.ALLY, Culture.ELVEN)), Culture.DWARVEN, Filters.character));
|
new NegativeEvaluator(new CardPhaseLimitEvaluator(game, self, Phase.SKIRMISH, 3,
|
||||||
|
new CountActiveEvaluator(CardType.ALLY, Culture.ELVEN))), Filters.and(Culture.DWARVEN, Filters.character)));
|
||||||
return Collections.singletonList(action);
|
return Collections.singletonList(action);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user