diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/moria/Card6_076.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/moria/Card6_076.java deleted file mode 100644 index 731ef91cd..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/moria/Card6_076.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.gempukku.lotro.cards.set6.moria; - -import com.gempukku.lotro.common.CardType; -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.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.modifiers.CantBeAssignedAgainstModifier; -import com.gempukku.lotro.logic.modifiers.Modifier; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Ents of Fangorn - * Side: Shadow - * Culture: Moria - * Twilight Cost: 14 - * Type: Minion • Balrog - * Strength: 17 - * Vitality: 5 - * Site: 4 - * Game Text: Damage +2. The twilight cost of The Balrog is -3 if you can spot a [MORIA] minion. The Balrog cannot - * be assigned to skirmish companions or allies of strength less than 6. - */ -public class Card6_076 extends AbstractMinion { - public Card6_076() { - super(14, 17, 5, 4, Race.BALROG, Culture.MORIA, "The Balrog", "Terror of Flame and Shadow", true); - addKeyword(Keyword.DAMAGE, 2); - } - - @Override - public int getTwilightCostModifier(LotroGame game, PhysicalCard self, PhysicalCard target) { - if (Filters.canSpot(game, Culture.MORIA, CardType.MINION)) - return -3; - return 0; - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new CantBeAssignedAgainstModifier(self, null, - Filters.and(Filters.or(CardType.COMPANION, CardType.ALLY), Filters.lessStrengthThan(6)), self)); - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/moria/Card6_077.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/moria/Card6_077.java deleted file mode 100644 index ab77342bd..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/moria/Card6_077.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.gempukku.lotro.cards.set6.moria; - -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.AbstractPermanent; -import com.gempukku.lotro.logic.effects.SelfDiscardEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.TwilightCostModifier; -import com.gempukku.lotro.logic.modifiers.condition.LocationCondition; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Ents of Fangorn - * Side: Shadow - * Culture: Moria - * Twilight Cost: 0 - * Type: Condition - * Game Text: Plays to your support area. At sites 2T and 3T, The Balrog's twilight cost is -3. Skirmish: Discard this - * condition to make a unique [MORIA] minion strength +3. - */ -public class Card6_077 extends AbstractPermanent { - public Card6_077() { - super(Side.SHADOW, 0, CardType.CONDITION, Culture.MORIA, "Durin's Tower", null, true); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new TwilightCostModifier(self, Filters.balrog, new LocationCondition(Filters.or(Filters.siteNumber(2), Filters.siteNumber(3)), Filters.siteBlock(SitesBlock.TWO_TOWERS)), -3)); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0) - && PlayConditions.canSelfDiscard(self, game)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfDiscardEffect(self)); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 3, Culture.MORIA, CardType.MINION, Filters.unique)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set06/set06-Isengard.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set06/set06-Isengard.hjson index d582a27d9..d126b9072 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set06/set06-Isengard.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set06/set06-Isengard.hjson @@ -304,18 +304,10 @@ type: activated phase: assignment effect: [ - { - type: memorizeNumber - amount: { - type: forEachStrength - filter: bearer - } - memory: bearerStrength - } { type: assignFPCharacterToSkirmish fpCharacter: bearer - against: choose(culture(isengard),minion,strengthLessThan(memory(bearerStrength))) + against: choose(culture(isengard),minion,strengthLessThanFilter(bearer)) } ] } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set06-Moria.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set06/set06-Moria.hjson similarity index 68% rename from gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set06-Moria.hjson rename to gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set06/set06-Moria.hjson index 9432a7b11..69569a94a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set06-Moria.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set06/set06-Moria.hjson @@ -27,17 +27,24 @@ vitality: 5 site: 4 keywords: Damage+2 - /*requires: { - - } effects: [ { - + type: modifyOwnCost + requires: { + type: canSpot + filter: culture(moria),minion + } + amount: -3 } { - + type: modifier + modifier: { + type: cantBeAssignedToSkirmishAgainst + minion: self + fpCharacter: strengthLessThan(6) + } } - ]*/ + ] gametext: Damage +2.
The twilight cost of The Balrog is -3 if you can spot a [moria] minion.
The Balrog cannot be assigned to skirmish companions or allies of strength less than 6. lore: ...he burst into new flame.' promotext: "" @@ -71,17 +78,33 @@ twilight: 0 type: Condition keywords: Support Area - /*requires: { - - } effects: [ { - + type: modifier + modifier: { + type: modifyCost + requires: { + type: location + filter: siteNumber(2-3),siteBlock(two towers) + } + filter: name(The Balrog) + amount: -3 + } } { - + type: activated + phase: skirmish + cost: { + type: discard + filter: self + } + effect: { + type: modifyStrength + filter: choose(unique,culture(moria),minion) + amount: 3 + } } - ]*/ + ] gametext: Plays to your support area. At sites 2[T] and 3[T], The Balrog's twilight cost is -3.
Skirmish: Discard this condition to make a unique [moria] minion strength +3. lore: ...carved in the living rock of Zirakzigil, the pinnacle of the Silvertine.' promotext: "" diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java index a2d04781c..3396d9604 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java @@ -446,6 +446,18 @@ public class FilterFactory { return (actionContext) -> Filters.siteNumberBetweenInclusive(min, max); }); + parameterFilters.put("strengthlessthanfilter", + (parameter, environment) -> { + FilterableSource filter = environment.getFilterFactory().createFilter(parameter, environment); + return (actionContext) -> { + int strength = 0; + LotroGame game = actionContext.getGame(); + for (PhysicalCard physicalCard : Filters.filterActive(game, filter.getFilterable(actionContext))) { + strength += game.getModifiersQuerying().getStrength(game, physicalCard); + } + return Filters.lessStrengthThan(strength); + }; + }); parameterFilters.put("strengthlessthan", (parameter, environment) -> { final ValueSource valueSource = ValueResolver.resolveEvaluator(parameter, environment);