diff --git a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/CollectionRequestHandler.java b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/CollectionRequestHandler.java index 5720aedfd..112b35d03 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/CollectionRequestHandler.java +++ b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/CollectionRequestHandler.java @@ -5,7 +5,6 @@ import com.gempukku.lotro.async.HttpProcessingException; import com.gempukku.lotro.async.ResponseWriter; import com.gempukku.lotro.collection.CollectionsManager; import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Side; import com.gempukku.lotro.db.vo.CollectionType; import com.gempukku.lotro.db.vo.League; @@ -19,7 +18,8 @@ import io.netty.handler.codec.http.HttpRequest; import io.netty.handler.codec.http.QueryStringDecoder; import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder; import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger;import org.w3c.dom.Document; +import org.apache.logging.log4j.Logger; +import org.w3c.dom.Document; import org.w3c.dom.Element; import javax.xml.parsers.DocumentBuilder; @@ -281,7 +281,7 @@ public class CollectionRequestHandler extends LotroServerRequestHandler implemen group = "site"; else if (blueprint.getCardType() == CardType.MAP) group = "map"; - else if (blueprint.hasKeyword(Keyword.CAN_START_WITH_RING)) + else if (blueprint.canStartWithRing()) group = "ringBearer"; else if (blueprint.getSide() == Side.FREE_PEOPLE) group = "fp"; diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/deckBuildingUi.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/deckBuildingUi.js index 1c58638eb..b60bd33d0 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/deckBuildingUi.js +++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/deckBuildingUi.js @@ -210,7 +210,7 @@ var GempLotrDeckBuildingUI = Class.extend({ this.ringBearerDiv.click( function () { if ($(".card", that.ringBearerDiv).length == 0) { - that.showPredefinedFilter("keyword:CAN_START_WITH_RING type:card", that.ringBearerDiv); + that.showPredefinedFilter("canStartWithRing:true type:card", that.ringBearerDiv); } }); this.ringBearerGroup = new NormalCardGroup(this.ringBearerDiv, function (card) { diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/deckBuildingUi2.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/deckBuildingUi2.js index 5fb75084f..620586fd2 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/deckBuildingUi2.js +++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/deckBuildingUi2.js @@ -187,7 +187,7 @@ var GempLotrDeckBuildingUI = Class.extend({ this.ringBearerDiv.click( function () { if ($(".card", that.ringBearerDiv).length == 0) { - that.showPredefinedFilter("keyword:CAN_START_WITH_RING type:card", that.ringBearerDiv); + that.showPredefinedFilter("canStartWithRing:true type:card", that.ringBearerDiv); } }); this.ringBearerGroup = new NormalFlexGroup(this.ringBearerDiv, function (card) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set00/set0.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set00/set0.hjson index d88fcb7ea..af4a70b80 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set00/set0.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set00/set0.hjson @@ -279,7 +279,7 @@ vitality: 4 resistance: 10 signet: gandalf - keyword: can start with ring + canStartWithRing: true effects: { type: modifier modifier: { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set01/set1-shire.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set01/set1-shire.hjson index 65798a319..c384ac6aa 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set01/set1-shire.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set01/set1-shire.hjson @@ -134,7 +134,7 @@ vitality: 4 resistance: 10 signet: gandalf - keyword: can start with ring + canStartWithRing: true effects: { type: trigger optional: true @@ -159,7 +159,7 @@ vitality: 4 resistance: 10 signet: frodo - keyword: can start with ring + canStartWithRing: true effects: { type: activated phase: fellowship diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set02/set2-shire.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set02/set2-shire.hjson index 839d3d789..c2703e60b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set02/set2-shire.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set02/set2-shire.hjson @@ -210,7 +210,7 @@ title: Frodo unique: true type: companion - keyword: can start with ring + canStartWithRing: true twilight: 0 resistance: 10 effects: { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set04/set04-Shire.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set04/set04-Shire.hjson index 6911c5866..c422e6ffb 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set04/set04-Shire.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set04/set04-Shire.hjson @@ -193,7 +193,7 @@ vitality: 4 signet: Frodo resistance: 10 - keyword: can start with ring + canStartWithRing: true effects: [ { type: modifier @@ -246,9 +246,9 @@ vitality: 4 signet: Gandalf resistance: 10 + canStartWithRing: true keywords: [ Ring-bound - can start with ring ] effects: [ { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set05/set05-Shire.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set05/set05-Shire.hjson index 5c81422f6..1f5e0b164 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set05/set05-Shire.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set05/set05-Shire.hjson @@ -27,7 +27,7 @@ vitality: 4 signet: Aragorn resistance: 10 - keyword: can start with ring + canStartWithRing: true effects: [ { type: activated diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set07/set07-Shire.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set07/set07-Shire.hjson index e3d7bdd10..5503544f3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set07/set07-Shire.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set07/set07-Shire.hjson @@ -27,9 +27,9 @@ vitality: 4 signet: Aragorn resistance: 10 + canStartWithRing: true keywords: [ Ring-bound - Can start with ring ] effects: [ { @@ -85,9 +85,9 @@ vitality: 4 signet: Gandalf resistance: 10 + canStartWithRing: true keywords: [ Ring-bound - Can start with ring ] effects: [ { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set09/set9-1.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set09/set9-1.hjson index 8721da44d..81a9a6a55 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set09/set9-1.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set09/set9-1.hjson @@ -151,9 +151,9 @@ strength: 6 vitality: 3 resistance: 4 + canStartWithRing: true keyword: [ damage+1 - can_start_with_ring ] effects: [ { @@ -550,7 +550,7 @@ strength: 3 vitality: 3 resistance: 3 - keyword: can start with ring + canStartWithRing: true effects: { type: modifier modifier: { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set09/set9-2.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set09/set9-2.hjson index 92af4c240..7dd9a52b6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set09/set9-2.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set09/set9-2.hjson @@ -137,9 +137,9 @@ strength: 3 vitality: 4 resistance: 7 + canStartWithRing: true keyword: [ ring-bound - can start with ring ] effects: [ { @@ -187,7 +187,7 @@ strength: 7 vitality: 3 resistance: 6 - keyword: can start with ring + canStartWithRing: true effects: [ { type: trigger @@ -292,7 +292,7 @@ strength: 7 vitality: 3 resistance: 6 - keyword: can start with ring + canStartWithRing: true effects: [ { type: trigger @@ -996,8 +996,8 @@ strength: 3 vitality: 4 resistance: 8 + canStartWithRing: true keyword: [ - can start with ring ring-bound ] effects: [ diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set10/set10-Shire.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set10/set10-Shire.hjson index ad5cdb2c3..ee0715a19 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set10/set10-Shire.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set10/set10-Shire.hjson @@ -780,7 +780,7 @@ vitality: 4 signet: Frodo resistance: 12 - keywords: Can start with ring + canStartWithRing: true gametext: Ring-bearer (resistance 12). lore: ...if it's the only way, we must take it.' promotext: "" diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set11/set11-Shire.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set11/set11-Shire.hjson index f2848581c..2e8aa26a1 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set11/set11-Shire.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set11/set11-Shire.hjson @@ -180,9 +180,9 @@ strength: 3 vitality: 4 resistance: 10 + canStartWithRing: true keywords: [ Ring-Bound - Can Start With Ring ] effects: [ { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Gandalf.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Gandalf.hjson index f1365ba8d..7513b5da9 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Gandalf.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Gandalf.hjson @@ -331,7 +331,7 @@ strength: 7 vitality: 4 resistance: 5 - keywords: CAN_START_WITH_RING + canStartWithRing: true effects: [ { type: trigger diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Shire.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Shire.hjson index c6f37ab76..f1bb64a7c 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Shire.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Shire.hjson @@ -991,9 +991,9 @@ strength: 3 vitality: 4 resistance: 5 + canStartWithRing: true keywords: [ Ring-bound - CAN_START_WITH_RING ] effects: [ { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set15/set15-Shire.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set15/set15-Shire.hjson index 1ea75f7b2..205dfe322 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set15/set15-Shire.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set15/set15-Shire.hjson @@ -74,9 +74,9 @@ strength: 3 vitality: 4 resistance: 10 + canStartWithRing: true keywords: [ Ring-bound - CAN_START_WITH_RING ] effects: [ { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set17/set17-Gondor.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set17/set17-Gondor.hjson index e4c610804..0924b8bdf 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set17/set17-Gondor.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set17/set17-Gondor.hjson @@ -102,7 +102,7 @@ strength: 7 vitality: 3 resistance: 6 - keywords: CAN_START_WITH_RING + canStartWithRing: true effects: [ { type: trigger diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set19/set19.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set19/set19.hjson index 2fa07084b..877170623 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set19/set19.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set19/set19.hjson @@ -1087,9 +1087,9 @@ strength: 3 vitality: 4 resistance: 10 + canStartWithRing: true keyword: [ fellowship - can start with ring ] effects: { type: modifier diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/hobbit/set30/set30-fp.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/hobbit/set30/set30-fp.hjson index 78ebca151..3c13475b8 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/hobbit/set30/set30-fp.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/hobbit/set30/set30-fp.hjson @@ -1069,9 +1069,9 @@ strength: 3 vitality: 4 resistance: 8 + canStartWithRing: true keyword: [ burglar - can start with ring ] effects: [ { @@ -1143,9 +1143,9 @@ strength: 3 vitality: 4 resistance: 8 + canStartWithRing: true keyword: [ burglar - can start with ring ] effects: [ { @@ -1195,9 +1195,9 @@ strength: 3 vitality: 4 resistance: 8 + canStartWithRing: true keyword: [ burglar - can start with ring ] effects: [ { @@ -1236,9 +1236,9 @@ strength: 3 vitality: 4 resistance: 8 + canStartWithRing: true keyword: [ burglar - can start with ring ] effects: [ { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Dwarven-errata.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Dwarven-errata.hjson index 91db13598..67ea69258 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Dwarven-errata.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Dwarven-errata.hjson @@ -23,9 +23,9 @@ strength: 6 vitality: 3 resistance: 5 + canStartWithRing: true keyword: [ damage+1 - can_start_with_ring ] effects: [ { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Elven-errata.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Elven-errata.hjson index e830c7eec..9b6daaf92 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Elven-errata.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Elven-errata.hjson @@ -97,7 +97,7 @@ strength: 3 vitality: 3 resistance: 4 - keyword: can start with ring + canStartWithRing: true effects: { type: modifier modifier: { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Gollum-errata.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Gollum-errata.hjson index e12fe2c31..4c4e08875 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Gollum-errata.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Gollum-errata.hjson @@ -24,9 +24,9 @@ strength: 3 vitality: 4 resistance: 8 + canStartWithRing: true keyword: [ ring-bound - can start with ring ] effects: [ { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Gondor-errata.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Gondor-errata.hjson index 0dc6391e1..7c5020986 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Gondor-errata.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Gondor-errata.hjson @@ -24,7 +24,7 @@ strength: 7 vitality: 3 resistance: 7 - keyword: can start with ring + canStartWithRing: true effects: [ { type: trigger @@ -103,7 +103,7 @@ strength: 7 vitality: 3 resistance: 7 - keyword: can start with ring + canStartWithRing: true effects: [ { type: trigger diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Shire-errata.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Shire-errata.hjson index 055892743..02ea6d40f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Shire-errata.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set09/set09-Shire-errata.hjson @@ -24,8 +24,8 @@ strength: 3 vitality: 4 resistance: 9 + canStartWithRing: true keyword: [ - can start with ring ring-bound ] effects: [ diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/second-edition/set40/set40-shire.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/second-edition/set40/set40-shire.hjson index dd15220c0..bff01206d 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/second-edition/set40/set40-shire.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/second-edition/set40/set40-shire.hjson @@ -151,7 +151,7 @@ strength: 3 vitality: 4 resistance: 10 - keyword: can start with ring + canStartWithRing: true effects: { type: trigger optional: true @@ -176,7 +176,7 @@ strength: 3 vitality: 4 resistance: 10 - keyword: can start with ring + canStartWithRing: true effects: { type: trigger optional: true 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 d38ae44e7..20e22f055 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 @@ -10,9 +10,6 @@ public enum Keyword implements Filterable { ASSIGNMENT("Assignment", false, false, false, false), REGROUP("Regroup", false, false, false, false), - // TODO: Fake keyword for purpose of marking cards that can start with ring - refactor out to separate flag - CAN_START_WITH_RING("Can-bear-ring", false, false, false, false), - // TODO: not a real keyword - count be refactored out to separate systems ROAMING("Roaming", true, false, false, false), MOUNTED("Mounted", false, false, false, false), diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/BuiltLotroCardBlueprint.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/BuiltLotroCardBlueprint.java index 159ececd3..12f541520 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/BuiltLotroCardBlueprint.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/BuiltLotroCardBlueprint.java @@ -24,6 +24,7 @@ public class BuiltLotroCardBlueprint implements LotroCardBlueprint { private String title; private String sanitizedTitle; private String subtitle; + private boolean canStartWithRing; private boolean unique; private Side side; private CardType cardType; @@ -100,6 +101,10 @@ public class BuiltLotroCardBlueprint implements LotroCardBlueprint { this.id = id; } + public void setCanStartWithRing(boolean canStartWithRing) { + this.canStartWithRing = canStartWithRing; + } + public void setDeckValidation(PreGameDeckValidation validation) { this.deckValidation = validation; } @@ -429,6 +434,11 @@ public class BuiltLotroCardBlueprint implements LotroCardBlueprint { return subtitle; } + @Override + public boolean canStartWithRing() { + return canStartWithRing; + } + @Override public Signet getSignet() { return signet; @@ -1110,7 +1120,7 @@ public class BuiltLotroCardBlueprint implements LotroCardBlueprint { throw new InvalidCardDefinitionException("Possession, condition or artifact without a filter needs a SUPPORT_AREA keyword"); if (cardType == CardType.FOLLOWER && aidCostSource == null) throw new InvalidCardDefinitionException("Follower requires an aid cost"); - if (title.equals("Frodo") && (keywords == null || !keywords.containsKey(Keyword.CAN_START_WITH_RING)) && !frodosThatCantStartWithRing.contains(subtitle)) { + if (title.equals("Frodo") && !canStartWithRing && !frodosThatCantStartWithRing.contains(subtitle)) { throw new InvalidCardDefinitionException("Frodo (except some permitted) must be able to start with ring"); } if (title.equals("Frodo") && resistance != 10 && !frodosWithNon10Resistance.contains(subtitle)) { diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/LotroCardBlueprintBuilder.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/LotroCardBlueprintBuilder.java index 95f04a677..490469dfa 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/LotroCardBlueprintBuilder.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/LotroCardBlueprintBuilder.java @@ -44,6 +44,7 @@ public class LotroCardBlueprintBuilder implements CardGenerationEnvironment { fieldProcessors.put("direction", new DirectionFieldProcessor()); fieldProcessors.put("target", new TargetFieldProcessor()); fieldProcessors.put("effects", new EffectFieldProcessor()); + fieldProcessors.put("canstartwithring", new CanStartWithRing()); fieldProcessors.put("gametext", new GameTextFieldProcessor()); fieldProcessors.put("lore", new LoreFieldProcessor()); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/CanStartWithRing.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/CanStartWithRing.java new file mode 100644 index 000000000..8c591d25d --- /dev/null +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/CanStartWithRing.java @@ -0,0 +1,14 @@ +package com.gempukku.lotro.cards.build.field; + +import com.gempukku.lotro.cards.build.BuiltLotroCardBlueprint; +import com.gempukku.lotro.cards.build.CardGenerationEnvironment; +import com.gempukku.lotro.cards.build.FieldProcessor; +import com.gempukku.lotro.cards.build.InvalidCardDefinitionException; + +public class CanStartWithRing implements FieldProcessor { + @Override + public void processField(String key, Object value, BuiltLotroCardBlueprint blueprint, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { + boolean canStartWithRing = FieldUtils.getBoolean(value, key); + blueprint.setCanStartWithRing(canStartWithRing); + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprint.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprint.java index 0a4c91ee8..f8c4195d7 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprint.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprint.java @@ -22,6 +22,8 @@ public interface LotroCardBlueprint { String getId(); + boolean canStartWithRing(); + //This isn't ideal, but there's 2,000 java cards that already exist. // Adding the argument to their constructors would be a chore. void setId(String id); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/PlayUtils.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/PlayUtils.java index a6fad3a46..e30132745 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/PlayUtils.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/PlayUtils.java @@ -181,7 +181,7 @@ public class PlayUtils { PhysicalCard ringBearer = game.getGameState().getRingBearer(game.getGameState().getCurrentPlayerId()); boolean ringBearerIsNotFrodo = ringBearer != null && !ringBearer.getBlueprint().getTitle().equals("Frodo"); if (ringBearerIsNotFrodo) { - boolean isRingBearerFrodo = self.getBlueprint().getTitle().equals("Frodo") && self.getBlueprint().hasKeyword(Keyword.CAN_START_WITH_RING); + boolean isRingBearerFrodo = self.getBlueprint().getTitle().equals("Frodo") && self.getBlueprint().canStartWithRing(); return !isRingBearerFrodo; } return true; diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/RingRelatedRule.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/RingRelatedRule.java index 6d81d5f37..27d25ca0f 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/RingRelatedRule.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/RingRelatedRule.java @@ -1,6 +1,7 @@ package com.gempukku.lotro.logic.timing.rules; import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.filters.Filter; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.logic.modifiers.AddKeywordModifier; import com.gempukku.lotro.logic.modifiers.CantPlayCardsModifier; @@ -17,7 +18,8 @@ public class RingRelatedRule { _modifiersLogic.addAlwaysOnModifier( new AddKeywordModifier(null, Filters.or(Filters.frodo, Filters.sam), null, Keyword.RING_BOUND)); _modifiersLogic.addAlwaysOnModifier( - new CantPlayCardsModifier(null, null, Filters.frodo, Keyword.CAN_START_WITH_RING)); + new CantPlayCardsModifier(null, null, Filters.frodo, + (Filter) (game, physicalCard) -> physicalCard.getBlueprint().canStartWithRing())); _modifiersLogic.addAlwaysOnModifier( new AddKeywordModifier(null, Filters.ringBearer, null, Keyword.RING_BOUND)); } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/SortAndFilterCards.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/SortAndFilterCards.java index e9c26c9e1..61f5c4037 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/SortAndFilterCards.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/SortAndFilterCards.java @@ -6,7 +6,6 @@ import com.gempukku.lotro.game.packs.SetDefinition; import com.gempukku.lotro.logic.GameUtils; import com.gempukku.util.MultipleComparator; -import java.text.Normalizer; import java.util.*; public class SortAndFilterCards { @@ -20,6 +19,7 @@ public class SortAndFilterCards { String[] rarity = getRarityFilter(filterParams); String[] sets = getSetFilter(filterParams); List words = getWords(filterParams); + Boolean canStartWithRing = getBoolean(filterParams, false); Set cardTypes = getEnumFilter(CardType.values(), CardType.class, "cardType", null, filterParams); Set cultures = getEnumFilter(Culture.values(), Culture.class, "culture", null, filterParams); Set keywords = getEnumFilter(Keyword.values(), Keyword.class, "keyword", Collections.emptySet(), filterParams); @@ -34,12 +34,12 @@ public class SortAndFilterCards { for (T item : items) { String blueprintId = item.getBlueprintId(); if (isPack(blueprintId)) { - if (acceptsFilters(cardLibrary, cardBlueprintMap, formatLibrary, blueprintId, side, type, rarity, sets, cardTypes, cultures, keywords, words, siteNumber, races, itemClasses, phases)) + if (acceptsFilters(cardLibrary, cardBlueprintMap, formatLibrary, blueprintId, side, type, rarity, sets, cardTypes, cultures, keywords, words, canStartWithRing, siteNumber, races, itemClasses, phases)) result.add(item); } else { try { cardBlueprintMap.put(blueprintId, cardLibrary.getLotroCardBlueprint(blueprintId)); - if (acceptsFilters(cardLibrary, cardBlueprintMap, formatLibrary, blueprintId, side, type, rarity, sets, cardTypes, cultures, keywords, words, siteNumber, races, itemClasses, phases)) + if (acceptsFilters(cardLibrary, cardBlueprintMap, formatLibrary, blueprintId, side, type, rarity, sets, cardTypes, cultures, keywords, words, canStartWithRing, siteNumber, races, itemClasses, phases)) result.add(item); } catch (CardNotFoundException e) { // Ignore the card @@ -80,7 +80,7 @@ public class SortAndFilterCards { private boolean acceptsFilters( LotroCardBlueprintLibrary library, Map cardBlueprint, LotroFormatLibrary formatLibrary, String blueprintId, Side side, String type, String[] rarity, String[] sets, - Set cardTypes, Set cultures, Set keywords, List words, Integer siteNumber, Set races, Set itemClasses, Set phases) { + Set cardTypes, Set cultures, Set keywords, List words, Boolean canStartWithRing, Integer siteNumber, Set races, Set itemClasses, Set phases) { if (isPack(blueprintId)) { if (type == null || type.equals("pack")) return true; @@ -98,11 +98,12 @@ public class SortAndFilterCards { if (cultures == null || cultures.contains(blueprint.getCulture())) if (containsAllKeywords(blueprint, keywords)) if (containsAllWords(blueprint, words)) - if (siteNumber == null || blueprint.getSiteNumber() == siteNumber) - if (races == null || races.contains(blueprint.getRace())) - if (containsAllClasses(blueprint, itemClasses)) - if (containsAllKeywords(blueprint, phases)) - return true; + if (canStartWithRing == null || blueprint.canStartWithRing() == canStartWithRing) + if (siteNumber == null || blueprint.getSiteNumber() == siteNumber) + if (races == null || races.contains(blueprint.getRace())) + if (containsAllClasses(blueprint, itemClasses)) + if (containsAllKeywords(blueprint, phases)) + return true; } } return false; @@ -220,6 +221,15 @@ public class SortAndFilterCards { return null; } + private Boolean getBoolean(String[] filterParams) { + Boolean result = null; + for (String filterParam : filterParams) { + if (filterParam.startsWith("canStartWithRing:")) + result = Boolean.parseBoolean(filterParam.substring("canStartWithRing:".length())); + } + return result; + } + private List getWords(String[] filterParams) { List result = new LinkedList<>(); for (String filterParam : filterParams) { diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/formats/DefaultLotroFormat.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/formats/DefaultLotroFormat.java index b84a2ba5b..e966852f0 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/formats/DefaultLotroFormat.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/formats/DefaultLotroFormat.java @@ -1,6 +1,9 @@ package com.gempukku.lotro.game.formats; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.JSONDefs; +import com.gempukku.lotro.common.Side; +import com.gempukku.lotro.common.SitesBlock; import com.gempukku.lotro.game.*; import com.gempukku.lotro.logic.GameUtils; import com.gempukku.lotro.logic.vo.LotroDeck; @@ -732,7 +735,7 @@ public class DefaultLotroFormat implements LotroFormat { return "Deck doesn't have a Ring-bearer"; try{ LotroCardBlueprint ringBearer = _library.getLotroCardBlueprint(rb); - if (!ringBearer.hasKeyword(Keyword.CAN_START_WITH_RING)) + if (!ringBearer.canStartWithRing()) return "Card assigned as Ring-bearer cannot bear the ring"; } catch(CardNotFoundException exception) diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_004_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_004_Tests.java index 060ad164f..1b4bb8749 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_004_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_004_Tests.java @@ -3,13 +3,13 @@ package com.gempukku.lotro.cards.official.set09; import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_09_004_Tests { @@ -58,7 +58,7 @@ public class Card_09_004_Tests assertEquals(Race.DWARF, card.getBlueprint().getRace()); assertTrue(scn.HasKeyword(card, Keyword.DAMAGE)); assertEquals(1, scn.GetKeywordCount(card, Keyword.DAMAGE)); - assertTrue(scn.HasKeyword(card, Keyword.CAN_START_WITH_RING)); + assertTrue(card.getBlueprint().canStartWithRing()); assertEquals(2, card.getBlueprint().getTwilightCost()); assertEquals(6, card.getBlueprint().getStrength()); assertEquals(3, card.getBlueprint().getVitality()); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_014_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_014_Tests.java index ccbecf154..8fbe7e1f5 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_014_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_014_Tests.java @@ -1,15 +1,18 @@ package com.gempukku.lotro.cards.official.set09; import com.gempukku.lotro.cards.GenericCardTestHelper; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_09_014_Tests { @@ -56,7 +59,7 @@ public class Card_09_014_Tests assertEquals(Culture.ELVEN, card.getBlueprint().getCulture()); assertEquals(CardType.COMPANION, card.getBlueprint().getCardType()); assertEquals(Race.ELF, card.getBlueprint().getRace()); - assertTrue(scn.HasKeyword(card, Keyword.CAN_START_WITH_RING)); + assertTrue(card.getBlueprint().canStartWithRing()); assertEquals(3, card.getBlueprint().getTwilightCost()); assertEquals(3, card.getBlueprint().getStrength()); assertEquals(3, card.getBlueprint().getVitality()); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_030_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_030_Tests.java index a29de2bde..c525c9466 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_030_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_030_Tests.java @@ -1,15 +1,18 @@ package com.gempukku.lotro.cards.official.set09; import com.gempukku.lotro.cards.GenericCardTestHelper; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_09_030_Tests { @@ -56,7 +59,7 @@ public class Card_09_030_Tests assertEquals(Culture.GOLLUM, card.getBlueprint().getCulture()); assertEquals(CardType.COMPANION, card.getBlueprint().getCardType()); assertTrue(scn.HasKeyword(card, Keyword.RING_BOUND)); - assertTrue(scn.HasKeyword(card, Keyword.CAN_START_WITH_RING)); + assertTrue(card.getBlueprint().canStartWithRing()); assertEquals(0, card.getBlueprint().getTwilightCost()); assertEquals(3, card.getBlueprint().getStrength()); assertEquals(4, card.getBlueprint().getVitality()); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_031_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_031_Tests.java index 8d170fb01..7e320ca2d 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_031_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_031_Tests.java @@ -1,15 +1,18 @@ package com.gempukku.lotro.cards.official.set09; import com.gempukku.lotro.cards.GenericCardTestHelper; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_09_031_Tests { @@ -56,7 +59,7 @@ public class Card_09_031_Tests assertEquals(Culture.GONDOR, card.getBlueprint().getCulture()); assertEquals(CardType.COMPANION, card.getBlueprint().getCardType()); assertEquals(Race.MAN, card.getBlueprint().getRace()); - assertTrue(scn.HasKeyword(card, Keyword.CAN_START_WITH_RING)); + assertTrue(card.getBlueprint().canStartWithRing()); assertEquals(3, card.getBlueprint().getTwilightCost()); assertEquals(7, card.getBlueprint().getStrength()); assertEquals(3, card.getBlueprint().getVitality()); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_033_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_033_Tests.java index 6fe21a8fb..85f037079 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_033_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_033_Tests.java @@ -1,15 +1,18 @@ package com.gempukku.lotro.cards.official.set09; import com.gempukku.lotro.cards.GenericCardTestHelper; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_09_033_Tests { @@ -56,7 +59,7 @@ public class Card_09_033_Tests assertEquals(Culture.GONDOR, card.getBlueprint().getCulture()); assertEquals(CardType.COMPANION, card.getBlueprint().getCardType()); assertEquals(Race.MAN, card.getBlueprint().getRace()); - assertTrue(scn.HasKeyword(card, Keyword.CAN_START_WITH_RING)); + assertTrue(card.getBlueprint().canStartWithRing()); assertEquals(3, card.getBlueprint().getTwilightCost()); assertEquals(7, card.getBlueprint().getStrength()); assertEquals(3, card.getBlueprint().getVitality()); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_049_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_049_Tests.java index 1852dbec5..bde863f9e 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_049_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set09/Card_09_049_Tests.java @@ -3,13 +3,13 @@ package com.gempukku.lotro.cards.official.set09; import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_09_049_Tests { @@ -57,7 +57,7 @@ public class Card_09_049_Tests assertEquals(CardType.COMPANION, card.getBlueprint().getCardType()); assertEquals(Race.HOBBIT, card.getBlueprint().getRace()); assertTrue(scn.HasKeyword(card, Keyword.RING_BOUND)); - assertTrue(scn.HasKeyword(card, Keyword.CAN_START_WITH_RING)); + assertTrue(card.getBlueprint().canStartWithRing()); assertEquals(2, card.getBlueprint().getTwilightCost()); assertEquals(3, card.getBlueprint().getStrength()); assertEquals(4, card.getBlueprint().getVitality()); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set11/Card_11_164_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set11/Card_11_164_Tests.java index 51befb285..c17442221 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set11/Card_11_164_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set11/Card_11_164_Tests.java @@ -3,13 +3,13 @@ package com.gempukku.lotro.cards.official.set11; import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_11_164_Tests { @@ -57,7 +57,7 @@ public class Card_11_164_Tests assertEquals(CardType.COMPANION, card.getBlueprint().getCardType()); assertEquals(Race.HOBBIT, card.getBlueprint().getRace()); assertTrue(scn.HasKeyword(card, Keyword.RING_BOUND)); - assertTrue(scn.HasKeyword(card, Keyword.CAN_START_WITH_RING)); + assertTrue(card.getBlueprint().canStartWithRing()); assertEquals(0, card.getBlueprint().getTwilightCost()); assertEquals(3, card.getBlueprint().getStrength()); assertEquals(4, card.getBlueprint().getVitality()); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set13/Card_13_033_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set13/Card_13_033_Tests.java index 336299942..750c49a52 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set13/Card_13_033_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set13/Card_13_033_Tests.java @@ -1,15 +1,18 @@ package com.gempukku.lotro.cards.official.set13; import com.gempukku.lotro.cards.GenericCardTestHelper; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_13_033_Tests { @@ -56,7 +59,7 @@ public class Card_13_033_Tests assertEquals(Culture.GANDALF, card.getBlueprint().getCulture()); assertEquals(CardType.COMPANION, card.getBlueprint().getCardType()); assertEquals(Race.WIZARD, card.getBlueprint().getRace()); - assertTrue(scn.HasKeyword(card, Keyword.CAN_START_WITH_RING)); + assertTrue(card.getBlueprint().canStartWithRing()); assertEquals(4, card.getBlueprint().getTwilightCost()); assertEquals(7, card.getBlueprint().getStrength()); assertEquals(4, card.getBlueprint().getVitality()); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set13/Card_13_156_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set13/Card_13_156_Tests.java index 4adadb499..e317d9d70 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set13/Card_13_156_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set13/Card_13_156_Tests.java @@ -3,13 +3,13 @@ package com.gempukku.lotro.cards.official.set13; import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_13_156_Tests { @@ -57,7 +57,7 @@ public class Card_13_156_Tests assertEquals(CardType.COMPANION, card.getBlueprint().getCardType()); assertEquals(Race.HOBBIT, card.getBlueprint().getRace()); assertTrue(scn.HasKeyword(card, Keyword.RING_BOUND)); - assertTrue(scn.HasKeyword(card, Keyword.CAN_START_WITH_RING)); + assertTrue(card.getBlueprint().canStartWithRing()); assertEquals(2, card.getBlueprint().getTwilightCost()); assertEquals(3, card.getBlueprint().getStrength()); assertEquals(4, card.getBlueprint().getVitality()); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set15/Card_15_144_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set15/Card_15_144_Tests.java index f541bcbdd..da2a5c6e9 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set15/Card_15_144_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set15/Card_15_144_Tests.java @@ -3,13 +3,13 @@ package com.gempukku.lotro.cards.official.set15; import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_15_144_Tests { @@ -57,7 +57,7 @@ public class Card_15_144_Tests assertEquals(CardType.COMPANION, card.getBlueprint().getCardType()); assertEquals(Race.HOBBIT, card.getBlueprint().getRace()); assertTrue(scn.HasKeyword(card, Keyword.RING_BOUND)); - assertTrue(scn.HasKeyword(card, Keyword.CAN_START_WITH_RING)); + assertTrue(card.getBlueprint().canStartWithRing()); assertEquals(0, card.getBlueprint().getTwilightCost()); assertEquals(3, card.getBlueprint().getStrength()); assertEquals(4, card.getBlueprint().getVitality()); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set17/Card_17_028_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set17/Card_17_028_Tests.java index dcd4775dc..0e9ecd96c 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set17/Card_17_028_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set17/Card_17_028_Tests.java @@ -1,15 +1,18 @@ package com.gempukku.lotro.cards.official.set17; import com.gempukku.lotro.cards.GenericCardTestHelper; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_17_028_Tests { @@ -56,7 +59,7 @@ public class Card_17_028_Tests assertEquals(Culture.GONDOR, card.getBlueprint().getCulture()); assertEquals(CardType.COMPANION, card.getBlueprint().getCardType()); assertEquals(Race.MAN, card.getBlueprint().getRace()); - assertTrue(scn.HasKeyword(card, Keyword.CAN_START_WITH_RING)); + assertTrue(card.getBlueprint().canStartWithRing()); assertEquals(3, card.getBlueprint().getTwilightCost()); assertEquals(7, card.getBlueprint().getStrength()); assertEquals(3, card.getBlueprint().getVitality()); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set19/Card_19_028_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set19/Card_19_028_Tests.java index 9b38dda41..91c4c3cfc 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set19/Card_19_028_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set19/Card_19_028_Tests.java @@ -3,13 +3,13 @@ package com.gempukku.lotro.cards.official.set19; import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class Card_19_028_Tests { @@ -58,7 +58,7 @@ public class Card_19_028_Tests assertEquals(Race.HOBBIT, card.getBlueprint().getRace()); assertTrue(scn.HasKeyword(card, Keyword.RING_BOUND)); assertTrue(scn.HasKeyword(card, Keyword.FELLOWSHIP)); - assertTrue(scn.HasKeyword(card, Keyword.CAN_START_WITH_RING)); + assertTrue(card.getBlueprint().canStartWithRing()); assertEquals(0, card.getBlueprint().getTwilightCost()); assertEquals(3, card.getBlueprint().getStrength()); assertEquals(4, card.getBlueprint().getVitality());