diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/LotroCardBlueprintLibraryTest.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/LotroCardBlueprintLibraryTest.java index 5ecd69355..be47b6f2f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/LotroCardBlueprintLibraryTest.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/LotroCardBlueprintLibraryTest.java @@ -11,18 +11,20 @@ public class LotroCardBlueprintLibraryTest { LotroCardBlueprintLibrary library = new LotroCardBlueprintLibrary(); Map cardNames = new HashMap(); - for (int i = 1; i <= 1; i++) { + for (int i = 0; i <= 19; i++) { for (int j = 1; j <= 365; j++) { String blueprintId = i + "_" + j; try { - LotroCardBlueprint cardBlueprint = library.getLotroCardBlueprint(blueprintId); - String cardName = cardBlueprint.getName(); - if (cardNames.containsKey(cardName)) - System.out.println("Multiple detected - " + cardName + ": " + cardNames.get(cardName) + " and " + blueprintId); - else - cardNames.put(cardName, blueprintId); + if (blueprintId.equals(library.getBaseBlueprintId(blueprintId))) { + LotroCardBlueprint cardBlueprint = library.getLotroCardBlueprint(blueprintId); + String cardName = cardBlueprint.getName(); + if (cardNames.containsKey(cardName) && !cardBlueprint.isUnique()) + System.out.println("Multiple detected - " + cardName + ": " + cardNames.get(cardName) + " and " + blueprintId); + else + cardNames.put(cardName, blueprintId); + } } catch (IllegalArgumentException exp) { - exp.printStackTrace(); + //exp.printStackTrace(); } } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gandalf/Card15_028.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gandalf/Card15_028.java deleted file mode 100644 index 6f68102cc..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gandalf/Card15_028.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gempukku.lotro.cards.set15.gandalf; - -import com.gempukku.lotro.cards.AbstractCompanion; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.GameState; -import com.gempukku.lotro.logic.modifiers.Condition; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; - -/** - * Set: The Hunters - * Side: Free - * Culture: Gandalf - * Twilight Cost: 4 - * Type: Companion • Ent - * Strength: 6 - * Vitality: 4 - * Resistance: 6 - * Game Text: While you can spot 3 Ents, this companion is strength +2. - */ -public class Card15_028 extends AbstractCompanion { - public Card15_028() { - super(4, 6, 4, 6, Culture.GANDALF, Race.ENT, null, "Ent Avenger"); - } - - @Override - public Modifier getAlwaysOnModifier(PhysicalCard self) { - return new StrengthModifier(self, self, - new Condition() { - @Override - public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return Filters.countActive(gameState, modifiersQuerying, Race.ENT) - + modifiersQuerying.getSpotBonus(gameState, Race.ENT) >= 3; - } - }, 2); - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/uruk_hai/Card18_124.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/uruk_hai/Card18_124.java index c9d98ff6c..c31c88e28 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/uruk_hai/Card18_124.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/uruk_hai/Card18_124.java @@ -22,7 +22,7 @@ import com.gempukku.lotro.logic.modifiers.StrengthModifier; */ public class Card18_124 extends AbstractMinion { public Card18_124() { - super(3, 8, 2, 5, Race.URUK_HAI, Culture.URUK_HAI, "White Hand Attacker"); + super(3, 8, 2, 5, Race.URUK_HAI, Culture.URUK_HAI, "White Hand Attacker(2)"); addKeyword(Keyword.DAMAGE, 1); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/raider/Card4_220.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/raider/Card4_220.java index a642d3cd8..e9aa4a253 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/raider/Card4_220.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/raider/Card4_220.java @@ -1,12 +1,10 @@ package com.gempukku.lotro.cards.set4.raider; import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -38,13 +36,13 @@ public class Card4_220 extends AbstractMinion { @Override public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.startOfPhase(game, effectResult, Phase.SKIRMISH) - && game.getGameState().getSkirmish().getShadowCharacters().contains(self) + && PlayConditions.canSpot(game, self, Filters.inSkirmish) && game.getGameState().getTwilightPool() >= 3) { OptionalTriggerAction action = new OptionalTriggerAction(self); action.appendCost( new RemoveTwilightEffect(3)); action.appendEffect( - new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.inSkirmishAgainst(self))); + new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.or(CardType.COMPANION, CardType.ALLY), Filters.inSkirmishAgainst(self))); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/raider/Card4_221.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/raider/Card4_221.java index 021cb1e4e..54f6e3db8 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/raider/Card4_221.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/raider/Card4_221.java @@ -1,12 +1,10 @@ package com.gempukku.lotro.cards.set4.raider; import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; @@ -38,13 +36,13 @@ public class Card4_221 extends AbstractMinion { @Override public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { if (TriggerConditions.startOfPhase(game, effectResult, Phase.SKIRMISH) - && game.getGameState().getSkirmish().getShadowCharacters().contains(self) + && PlayConditions.canSpot(game, self, Filters.inSkirmish) && game.getGameState().getTwilightPool() >= 3) { OptionalTriggerAction action = new OptionalTriggerAction(self); action.appendCost( new RemoveTwilightEffect(3)); action.appendEffect( - new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.inSkirmishAgainst(self))); + new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.or(CardType.COMPANION, CardType.ALLY), Filters.inSkirmishAgainst(self))); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/rohan/Card4_265.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/rohan/Card4_265.java index d5a7e2cad..dbfaec1f6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/rohan/Card4_265.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/rohan/Card4_265.java @@ -43,9 +43,6 @@ public class Card4_265 extends AbstractCompanion { @Override public List getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { return Collections.singletonList( - new StrengthModifier(self, - Filters.and( - self, - Filters.inSkirmishAgainst(CardType.MINION, Filters.wounded)), 2)); + new StrengthModifier(self, Filters.and(self, Filters.inSkirmishAgainst(CardType.MINION, Filters.wounded)), 2)); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/gandalf/Card6_027.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/gandalf/Card6_027.java index ac3458eaa..012f70411 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/gandalf/Card6_027.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/gandalf/Card6_027.java @@ -6,15 +6,11 @@ import com.gempukku.lotro.common.Race; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.GameState; -import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.modifiers.Condition; import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import java.util.Collections; -import java.util.List; - /** * Set: Ents of Fangorn * Side: Free @@ -32,15 +28,14 @@ public class Card6_027 extends AbstractCompanion { } @Override - public List getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new StrengthModifier(self, self, - new Condition() { - @Override - public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return Filters.countActive(gameState, modifiersQuerying, Race.ENT) - + modifiersQuerying.getSpotBonus(gameState, Race.ENT) >= 3; - } - }, 2)); + public Modifier getAlwaysOnModifier(PhysicalCard self) { + return new StrengthModifier(self, self, + new Condition() { + @Override + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + return Filters.countActive(gameState, modifiersQuerying, Race.ENT) + + modifiersQuerying.getSpotBonus(gameState, Race.ENT) >= 3; + } + }, 2); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_136.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_136.java deleted file mode 100644 index 0f826a045..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_136.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gempukku.lotro.cards.set7.raider; - -import com.gempukku.lotro.cards.AbstractMinion; -import com.gempukku.lotro.cards.TriggerConditions; -import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; -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.OptionalTriggerAction; -import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect; -import com.gempukku.lotro.logic.timing.EffectResult; - -import java.util.Collections; -import java.util.List; - -/** - * Set: The Return of the King - * Side: Shadow - * Culture: Raider - * Twilight Cost: 4 - * Type: Minion • Man - * Strength: 9 - * Vitality: 2 - * Site: 4 - * Game Text: Southron. At the start of each skirmish involving this minion, you may remove (3) to wound a companion - * or ally he is skirmishing. - */ -public class Card7_136 extends AbstractMinion { - public Card7_136() { - super(4, 9, 2, 4, Race.MAN, Culture.RAIDER, "Desert Soldier"); - addKeyword(Keyword.SOUTHRON); - } - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.startOfPhase(game, effectResult, Phase.SKIRMISH) - && Filters.inSkirmish.accepts(game.getGameState(), game.getModifiersQuerying(), self) - && game.getGameState().getTwilightPool() >= 3) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendCost( - new RemoveTwilightEffect(3)); - action.appendEffect( - new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.or(CardType.COMPANION, CardType.ALLY), Filters.inSkirmishAgainst(self))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_137.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_137.java deleted file mode 100644 index 8e8733840..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/raider/Card7_137.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gempukku.lotro.cards.set7.raider; - -import com.gempukku.lotro.cards.AbstractMinion; -import com.gempukku.lotro.cards.TriggerConditions; -import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; -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.OptionalTriggerAction; -import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect; -import com.gempukku.lotro.logic.timing.EffectResult; - -import java.util.Collections; -import java.util.List; - -/** - * Set: The Return of the King - * Side: Shadow - * Culture: Raider - * Twilight Cost: 3 - * Type: Minion • Man - * Strength: 8 - * Vitality: 2 - * Site: 4 - * Game Text: Southron. At the start of each skirmish involving this minion, you may remove (3) to wound a companion - * or ally he is skirmishing. - */ -public class Card7_137 extends AbstractMinion { - public Card7_137() { - super(3, 8, 2, 4, Race.MAN, Culture.RAIDER, "Desert Spearman"); - addKeyword(Keyword.SOUTHRON); - } - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.startOfPhase(game, effectResult, Phase.SKIRMISH) - && Filters.inSkirmish.accepts(game.getGameState(), game.getModifiersQuerying(), self) - && game.getGameState().getTwilightPool() >= 3) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendCost( - new RemoveTwilightEffect(3)); - action.appendEffect( - new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.or(CardType.COMPANION, CardType.ALLY), Filters.inSkirmishAgainst(self))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_225.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_225.java deleted file mode 100644 index de4204a62..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/rohan/Card7_225.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.gempukku.lotro.cards.set7.rohan; - -import com.gempukku.lotro.cards.AbstractCompanion; -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.GameState; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; - -import java.util.Collections; -import java.util.List; - -/** - * Set: The Return of the King - * Side: Free - * Culture: Rohan - * Twilight Cost: 3 - * Type: Companion • Man - * Strength: 6 - * Vitality: 3 - * Resistance: 6 - * Game Text: When this companion is in your starting fellowship, his twilight cost is -1. While skirmishing a wounded - * minion, this companion is strength +2. - */ -public class Card7_225 extends AbstractCompanion { - public Card7_225() { - super(3, 6, 3, 6, Culture.ROHAN, Race.MAN, null, "Elite Rider"); - } - - @Override - public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) { - if (gameState.getCurrentPhase() == Phase.PLAY_STARTING_FELLOWSHIP) - return -1; - return 0; - } - - @Override - public List getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new StrengthModifier(self, Filters.and(self, Filters.inSkirmishAgainst(CardType.MINION, Filters.wounded)), 2)); - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt index 7b5d54d56..945348397 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt @@ -144,7 +144,10 @@ 7_41,1_76 7_52,2_29 7_84,1_102 +7_136,4_220 +7_137,4_221 7_207,1_226 +7_225,4_265 7_297,3_94 7_319,1_299 7_322,1_304 @@ -186,6 +189,7 @@ # The Hunters set 15_2,1_2 15_13,1_41 +15_28,6_27 15_133,4_287 15_145,1_299 # Masterworks in The Hunters