From d9a79210402f694c1dd00283bdb6f5016d9ba2b4 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Mon, 17 Oct 2011 14:12:37 +0000 Subject: [PATCH] "Alcarin" --- .../{ => conditions}/LocationCondition.java | 2 +- .../modifiers/conditions/PhaseCondition.java | 19 +++++ .../lotro/cards/set4/isengard/Card4_179.java | 2 +- .../lotro/cards/set4/isengard/Card4_200.java | 2 +- .../lotro/cards/set4/site/Card4_340.java | 2 +- .../lotro/cards/set4/site/Card4_343.java | 2 +- .../lotro/cards/set5/dwarven/Card5_008.java | 2 +- .../lotro/cards/set5/gondor/Card5_031.java | 70 +++++++++++++++++++ .../com/gempukku/lotro/common/Keyword.java | 2 +- 9 files changed, 96 insertions(+), 7 deletions(-) rename gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/{ => conditions}/LocationCondition.java (89%) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/PhaseCondition.java create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gondor/Card5_031.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/LocationCondition.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/LocationCondition.java similarity index 89% rename from gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/LocationCondition.java rename to gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/LocationCondition.java index ba1ee375f..079db4554 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/LocationCondition.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/LocationCondition.java @@ -1,4 +1,4 @@ -package com.gempukku.lotro.cards.modifiers; +package com.gempukku.lotro.cards.modifiers.conditions; import com.gempukku.lotro.common.Filterable; import com.gempukku.lotro.filters.Filter; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/PhaseCondition.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/PhaseCondition.java new file mode 100644 index 000000000..a8a9b71eb --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/PhaseCondition.java @@ -0,0 +1,19 @@ +package com.gempukku.lotro.cards.modifiers.conditions; + +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.game.state.GameState; +import com.gempukku.lotro.logic.modifiers.Condition; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; + +public class PhaseCondition implements Condition { + private Phase _phase; + + public PhaseCondition(Phase phase) { + _phase = phase; + } + + @Override + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + return gameState.getCurrentPhase() == _phase; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_179.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_179.java index 99f8b8e34..ddb5d3b52 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_179.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_179.java @@ -3,8 +3,8 @@ package com.gempukku.lotro.cards.set4.isengard; import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.modifiers.CantTakeWoundsModifier; -import com.gempukku.lotro.cards.modifiers.LocationCondition; import com.gempukku.lotro.cards.modifiers.StrengthModifier; +import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Race; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_200.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_200.java index 2fe5fbadd..5592b4b8e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_200.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_200.java @@ -2,7 +2,7 @@ package com.gempukku.lotro.cards.set4.isengard; import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.PlayConditions; -import com.gempukku.lotro.cards.modifiers.LocationCondition; +import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Race; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_340.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_340.java index d549b64fd..f8f1d9f66 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_340.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_340.java @@ -2,7 +2,7 @@ package com.gempukku.lotro.cards.set4.site; import com.gempukku.lotro.cards.AbstractSite; import com.gempukku.lotro.cards.modifiers.AllyMayNotParticipateInArcheryFireAndSkirmishesModifier; -import com.gempukku.lotro.cards.modifiers.LocationCondition; +import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition; import com.gempukku.lotro.common.Block; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_343.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_343.java index 6e21719b5..ca555f90b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_343.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_343.java @@ -1,7 +1,7 @@ package com.gempukku.lotro.cards.set4.site; import com.gempukku.lotro.cards.AbstractSite; -import com.gempukku.lotro.cards.modifiers.LocationCondition; +import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition; import com.gempukku.lotro.common.Block; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Keyword; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/dwarven/Card5_008.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/dwarven/Card5_008.java index 758d5f20b..e83f62f9d 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/dwarven/Card5_008.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/dwarven/Card5_008.java @@ -4,7 +4,7 @@ import com.gempukku.lotro.cards.AbstractPermanent; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.cards.modifiers.LocationCondition; +import com.gempukku.lotro.cards.modifiers.conditions.LocationCondition; import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gondor/Card5_031.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gondor/Card5_031.java new file mode 100644 index 000000000..474a779db --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gondor/Card5_031.java @@ -0,0 +1,70 @@ +package com.gempukku.lotro.cards.set5.gondor; + +import com.gempukku.lotro.cards.AbstractCompanion; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.modifiers.conditions.PhaseCondition; +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.effects.AssignmentEffect; +import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; +import com.gempukku.lotro.logic.effects.HealCharactersEffect; +import com.gempukku.lotro.logic.modifiers.Modifier; +import com.gempukku.lotro.logic.modifiers.TwilightCostModifier; +import com.gempukku.lotro.logic.timing.Action; + +import java.util.Collections; +import java.util.List; + +/** + * Set: Battle of Helm's Deep + * Side: Free + * Culture: Gondor + * Twilight Cost: 3 + * Type: Companion • Man + * Strength: 7 + * Vitality: 3 + * Resistance: 6 + * Game Text: Knight. The twilight cost of each other knight in your starting fellowship is -1. + * Assignment: Assign Alcarin to a minion bearing a [GONDOR] fortification to heal Alcarin. + */ +public class Card5_031 extends AbstractCompanion { + public Card5_031() { + super(3, 7, 3, Culture.GONDOR, Race.MAN, null, "Alcarin", true); + addKeyword(Keyword.KNIGHT); + } + + @Override + public List getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { + return Collections.singletonList( + new TwilightCostModifier(self, + Filters.and( + Filters.not(Filters.sameCard(self)), + Keyword.KNIGHT + ), new PhaseCondition(Phase.GAME_SETUP), -1)); + } + + @Override + protected List getExtraInPlayPhaseActions(final String playerId, LotroGame game, final PhysicalCard self) { + if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.ASSIGNMENT, self) + && PlayConditions.canCardAssignToSkirmish(self, game, self) + && PlayConditions.canCardAssignToSkirmish(self, game, + Filters.and(CardType.MINION, Filters.hasAttached(Culture.GONDOR, Keyword.FORTIFICATION)))) { + final ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new ChooseActiveCardEffect(self, playerId, "Choose minion", CardType.MINION, Filters.hasAttached(Culture.GONDOR, Keyword.FORTIFICATION)) { + @Override + protected void cardSelected(LotroGame game, PhysicalCard card) { + action.insertCost( + new AssignmentEffect(playerId, self, card)); + } + }); + action.appendEffect( + new HealCharactersEffect(playerId, self)); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java index 1ee8183ed..2d722aca0 100644 --- a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java +++ b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java @@ -18,7 +18,7 @@ public enum Keyword implements Filterable { DAMAGE("Damage", true, true), DEFENDER("Defender", true, true), AMBUSH("Ambush", true, true), FIERCE("Fierce", true), ARCHER("Archer", true), UNHASTY("Unhasty", true), RANGER("Ranger", true), TRACKER("Tracker", true), VILLAGER("Villager", true), MACHINE("Machine", true), - SOUTHRON("Southron", true), EASTERLING("Easterling", true), VALIANT("Valiant", true); + SOUTHRON("Southron", true), EASTERLING("Easterling", true), VALIANT("Valiant", true), KNIGHT("Knight", true), FORTIFICATION("Fortification", true); private String _humanReadable; private boolean _infoDisplayable;