diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set1/set1-gandalf.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set1/set1-gandalf.json
index 4959364d8..0c346cb3f 100644
--- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set1/set1-gandalf.json
+++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set1/set1-gandalf.json
@@ -477,7 +477,7 @@
}
},
"1_84": {
- "title": "Sleep Caradhas",
+ "title": "Sleep, Caradhras",
"culture": "gandalf",
"cost": 3,
"type": "event",
diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set30/set30-fp.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set30/set30-fp.json
index ef58b5ab1..b87c5d082 100644
--- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set30/set30-fp.json
+++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set30/set30-fp.json
@@ -185,13 +185,23 @@
"type": "follower",
"race": "dwarf",
"strength": 2,
- "effects": {
- "type": "aidCost",
- "cost": {
- "type": "exert",
- "filter": "choose(culture(dwarven),companion)"
+ "effects": [
+ {
+ "type": "aidCost",
+ "cost": {
+ "type": "exert",
+ "filter": "choose(culture(dwarven),companion)"
+ }
+ },
+ {
+ "type": "modifier",
+ "modifier": {
+ "type": "addKeyword",
+ "filter": "bearer",
+ "keyword": "damage+1",
+ }
}
- }
+ ]
},
"30_8": {
"title": "*Dori",
@@ -299,7 +309,7 @@
"effect": {
"type": "modifyStrength",
"filter": "self",
- "amount": 2
+ "amount": 3
}
}
},
@@ -686,18 +696,18 @@
"effect": {
"type": "choice",
"texts": [
- "Wound a minion twice",
- "Discard a Troll"
+ "Discard a Troll",
+ "Wound a minion twice"
],
"effects": [
+ {
+ "type": "discard",
+ "filter": "choose(troll)"
+ },
{
"type": "wound",
"filter": "choose(minion)",
"times": 2
- },
- {
- "type": "discard",
- "filter": "choose(troll)"
}
]
}
@@ -707,7 +717,7 @@
"title": "*Gandalf",
"subtitle": "Leader of Dwarves",
"culture": "gandalf",
- "cost": 4,
+ "cost": 2,
"type": "companion",
"race": "wizard",
"strength": 7,
@@ -788,7 +798,7 @@
"type": "cantBeDiscarded",
"condition": {
"type": "canSpot",
- "filter": "dwarf,follower",
+ "filter": "culture(dwarven),follower",
"count": 2
},
"filter": "self"
@@ -800,7 +810,7 @@
"cost": [
{
"type": "discard",
- "filter": "choose(dwarf,follower)"
+ "filter": "choose(culture(dwarven),follower)"
},
{
"type": "addBurdens",
@@ -835,7 +845,7 @@
},
"effect": {
"type": "wound",
- "filter": "choose(minion)"
+ "filter": "choose(minion,not(name(Smaug)))"
}
},
{
@@ -1267,4 +1277,4 @@
}
]
}
-}
\ No newline at end of file
+}
diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set30/set30-shadow.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set30/set30-shadow.json
index fa8c5a919..2eb8039e8 100644
--- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set30/set30-shadow.json
+++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set30/set30-shadow.json
@@ -398,6 +398,10 @@
"type": "location",
"filter": "not(mountain)"
}
+ },
+ "effect": {
+ "type": "discard",
+ "filter": "self"
}
},
{
@@ -428,4 +432,4 @@
}
]
}
-}
\ No newline at end of file
+}
diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-fp.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-fp.json
index 1243173ba..21db154c9 100644
--- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-fp.json
+++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-fp.json
@@ -25,45 +25,60 @@
"culture": "dwarven",
"cost": 3,
"type": "event",
- "keyword": "regroup",
+ "keyword": "fellowship",
"effects": {
"type": "event",
- "cost": {
- "type": "discard",
- "filter": "choose(culture(dwarven),follower,attachedTo(any))",
- "memorize": "discardedFollower"
- },
- "effect": {
- "type": "choice",
- "texts": [
- "Play possessions",
- "Play artifacts"
- ],
- "effects": [
- {
- "type": "duplicate",
- "effect": {
- "type": "playCardFromDrawDeck",
- "filter": "choose(culture(dwarven),possession)"
- },
- "amount": {
- "type": "twilightCostInMemory",
- "memory": "discardedFollower"
- }
+ "cost": [
+ {
+ "type": "conditional",
+ "condition": {
+ "type": "location",
+ "filter": "siteNumber(1-5),siteBlock(hobbit)"
},
- {
+ "cost": {
+ "type": "discard",
+ "filter": "choose(culture(dwarven),follower,attachedTo(any))",
+ "memorize": "discardedFollower"
+ }
+ }
+ ],
+ "effect": [
+ {
+ "type": "conditional",
+ "condition": {
+ "type": "location",
+ "filter": "siteNumber(1-5),siteBlock(hobbit)"
+ },
+ "effect": {
"type": "duplicate",
"effect": {
"type": "playCardFromDrawDeck",
- "filter": "choose(culture(dwarven),artifact)"
+ "filter": "choose(culture(dwarven),not(event))"
},
"amount": {
"type": "twilightCostInMemory",
"memory": "discardedFollower"
}
}
- ]
- }
+ },
+ {
+ "type": "conditional",
+ "condition": {
+ "type": "location",
+ "filter": "not(siteNumber(1-5)),siteBlock(hobbit)"
+ },
+ "effect": [
+ {
+ "type": "heal",
+ "choose": "name(Thorin)"
+ },
+ {
+ "type": "heal",
+ "choose": "name(Thorin)"
+ }
+ ]
+ }
+ ]
}
},
"31_3": {
@@ -91,11 +106,11 @@
"phase": "regroup",
"cost": {
"type": "exert",
- "filter": "choose(ally)"
+ "filter": "choose(culture(elven),ally)"
},
"effect": {
- "type": "stackCardsFromHand",
- "filter": "choose(culture(dwarven),event)",
+ "type": "stackCardsFromDiscard",
+ "filter": "choose(or(and(culture(elven),event),name(Lore of Imladris)))",
"where": "self"
}
}
@@ -443,7 +458,11 @@
"modifier": {
"type": "cantBeDiscarded",
"filter": "self",
- "by": "side(shadow)"
+ "by": "side(shadow)",
+ "condition": {
+ "type": "canSpot",
+ "filter": "self,attachedTo(any)"
+ }
}
},
{
@@ -564,33 +583,23 @@
],
"effects": {
"type": "event",
- "cost": {
- "type": "choice",
- "texts": [
- "Discard Beorn",
- "Discard 2 DWARVEN followers"
- ],
- "effects": [
- {
- "type": "discard",
- "filter": "choose(name(Beorn))"
+ "effect": [
+ {
+ "type": "addModifier",
+ "modifier": {
+ "type": "modifyStrength",
+ "amount": 2,
+ "filter": "culture(dwarven),companion,hasStacked(follower)"
},
- {
- "type": "discard",
- "count": 2,
- "filter": "choose(culture(dwarven),follower)"
- }
- ]
- },
- "effect": {
- "type": "duplicate",
- "amount": 3,
- "effect": {
- "type": "wound",
- "player": "shadowPlayer",
- "filter": "choose(minion,not(name(Smaug)))"
+ "until": "start(regroup)"
+ },
+ {
+ "type": "addKeyword",
+ "keyword": "defender+1",
+ "filter": "culture(dwarven),companion,hasStacked(follower)",
+ "until": "start(regroup)"
}
- }
+ ]
}
},
"31_17": {
@@ -850,4 +859,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-shadow.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-shadow.json
index 48cf90ae3..b52644325 100644
--- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-shadow.json
+++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-shadow.json
@@ -245,6 +245,7 @@
"strength": 9,
"vitality": 3,
"site": 3,
+ "keyword": "damage+1",
"effects": {
"type": "trigger",
"optional": true,
@@ -259,7 +260,7 @@
},
"effect": {
"type": "addBurdens",
- "amount": 2
+ "amount": 1
}
}
},
@@ -1103,7 +1104,9 @@
"type": "canSpot",
"count": 6,
"filter": "companion"
- }
+ },
+ "true":5,
+ "false":3
},
"until": "start(regroup)"
}
@@ -1141,6 +1144,7 @@
"optional": true,
"trigger": {
"type": "discarded",
+ "filter": "condition",
"player": "fp"
},
"effect": {
@@ -1329,4 +1333,4 @@
}
]
}
-}
\ No newline at end of file
+}
diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-sites.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-sites.json
index 9b9550306..774151117 100644
--- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-sites.json
+++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set31/set31-sites.json
@@ -256,6 +256,13 @@
"filter": "orc",
"memorize": "playedOrc"
},
+ "condition": {
+ "type": "not",
+ "condition": {
+ "type": "hasInZoneData",
+ "filter": "self"
+ }
+ },
"effect": {
"type": "appendCardIdsToWhileInZone",
"memory": "playedOrc"
@@ -278,7 +285,7 @@
"type": "site",
"block": "hobbit",
"site": 7,
- "keyword": "river",
+ "keyword": "mountain",
"effects": {
"type": "activated",
"phase": "regroup",
@@ -345,4 +352,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set32/set32-fp.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set32/set32-fp.json
index dbf9ab6e3..fff5906c8 100644
--- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set32/set32-fp.json
+++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set32/set32-fp.json
@@ -211,7 +211,7 @@
]
},
"32_8": {
- "title": "*Roäc",
+ "title": "*Roac",
"subtitle": "Son of Carc",
"culture": "dwarven",
"cost": 1,
@@ -271,7 +271,7 @@
"type": "aidCost",
"cost": [
{
- "type": "exert",
+ "type": "spot",
"filter": "choose(name(Gandalf))"
},
{
@@ -550,7 +550,7 @@
},
"effect": {
"type": "allyCanParticipateInArcheryFireAndSkirmishes",
- "filter": "self",
+ "filter": "choose(name(Bard))",
"until": "start(regroup)"
}
}
@@ -784,7 +784,7 @@
"filter": "choose(minion)",
"amount": {
"type": "forEachYouCanSpot",
- "filter": "or(name(Gandalf),name(Elrond),name(Galadriel))"
+ "filter": "or(name(Gandalf),name(Elrond),name(Galadriel))",
"multiplier": -1
}
}
@@ -874,4 +874,4 @@
}
]
}
-}
\ No newline at end of file
+}
diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set32/set32-shadow.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set32/set32-shadow.json
index 52949fa83..820389de9 100644
--- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set32/set32-shadow.json
+++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set32/set32-shadow.json
@@ -157,7 +157,7 @@
"32_29": {
"title": "*Azog's Mace",
"culture": "moria",
- "cost": 2,
+ "cost": 1,
"type": "possession",
"possession": "hand weapon",
"strength": 2,
@@ -357,7 +357,7 @@
"type": "minion",
"race": "orc",
"strength": 10,
- "vitality": 4,
+ "vitality": 3,
"site": 4,
"effects": {
"type": "trigger",
@@ -943,6 +943,58 @@
}
]
},
+ "32_59": {
+ "title": "*Dragon's Malice",
+ "culture": "smaug",
+ "cost": 0,
+ "type": "condition",
+ "keyword": "support area",
+ "effects": [
+ {
+ "type": "trigger",
+ "optional": true,
+ "trigger": {
+ "type": "losesSkirmish",
+ "filter": "or(companion,ally)",
+ "against": "name(Smaug)"
+ },
+ "effect": {
+ "type": "addBurdens",
+ "amount": 1
+
+ }
+ },
+ {
+ "type": "trigger",
+ "optional": true,
+ "trigger": {
+ "type": "killed",
+ "filter": "companion,culture(dwarven)"
+ },
+ "effect": {
+ "type": "addBurdens",
+ "amount": 1
+
+ }
+ },
+ {
+ "type": "modifier",
+ "modifier": {
+ "type": "cantTakeWounds",
+ "filter": "name(Bilbo)",
+ "condition": [
+ {
+ "type": "ringIsOn",
+ },
+ {
+ "type": "canSpot",
+ "filter": "name(Bilbo),inSkirmishAgainst(name(Smaug))"
+ }
+ ]
+ }
+ }
+ ]
+ },
"32_60": {
"title": "Smaug's Awakening",
"culture": "smaug",
@@ -1576,4 +1628,4 @@
}
]
}
-}
\ No newline at end of file
+}
diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/cardFilter.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/cardFilter.js
index c487f99fc..2295cda7c 100644
--- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/cardFilter.js
+++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/cardFilter.js
@@ -39,6 +39,9 @@ var CardFilter = Class.extend({
$("#culture2").buttonset("option", "disabled", !enable);
$("#cardType").prop("disabled", !enable);
$("#keyword").prop("disabled", !enable);
+ $("#race").prop("disabled", !enable);
+ $("#itemClass").prop("disabled", !enable);
+ $("#phase").prop("disabled", !enable);
},
setFilter: function (filter) {
@@ -168,6 +171,7 @@ var CardFilter = Class.extend({
+ ""
+ ""
+ ""
+ + ""
+ "");
this.fullFilterDiv.append(this.setSelect);
@@ -273,6 +277,61 @@ var CardFilter = Class.extend({
+ ""
+ ""
+ "");
+
+ combos.append(" ");
+ combos.append(" ");
+ combos.append(" ");
this.filterDiv.append(combos);
elem.append(this.filterDiv);
@@ -297,10 +356,53 @@ var CardFilter = Class.extend({
that.getCollection();
return true;
};
+
+ //Hide dynamic filters by default
+ $("#race").hide();
+ $("#itemClass").hide();
+ $("#phase").hide();
+
+ var changeDynamicFilters = function () {
+ var cardType = $("#cardType option:selected").prop("value");
+ if (cardType.includes("COMPANION") || cardType.includes("ALLY") || cardType.includes("MINION")) {
+ $("#race").show();
+ $("#itemClass").hide();
+ $("#itemClass").val("");
+ $("#phase").hide();
+ $("#phase").val("");
+ } else if (cardType.includes("POSSESSION") || cardType.includes("ARTIFACT")) {
+ $("#race").hide();
+ $("#race").val("");
+ $("#itemClass").show();
+ $("#phase").hide();
+ $("#phase").val("");
+ } else if (cardType.includes("EVENT")) {
+ $("#race").hide();
+ $("#race").val("");
+ $("#itemClass").hide();
+ $("#itemClass").val("");
+ $("#phase").show();
+ } else {
+ $("#race").hide();
+ $("#race").val("");
+ $("#itemClass").hide();
+ $("#itemClass").val("");
+ $("#phase").hide();
+ $("#phase").val("")
+ }
+ that.filter = that.calculateNormalFilter();
+ that.start = 0;
+ that.getCollection();
+ return true;
+
+ };
- $("#cardType").change(filterOut);
+ $("#cardType").change(changeDynamicFilters);
$("#keyword").change(filterOut);
$("#type").change(filterOut);
+ $("#race").change(filterOut);
+ $("#itemClass").change(filterOut);
+ $("#phase").change(filterOut);
//Additional Hobbit Draft labels
$("#labelDWARVEN,#labelELVEN,#labelGANDALF,#labelGONDOR,#labelROHAN,#labelSHIRE,#labelGOLLUM,#labelDUNLAND,#labelISENGARD,#labelMEN,#labelMORIA,#labelORC,#labelRAIDER,#labelSAURON,#labelURUK_HAI,#labelWRAITH,#labelESGAROTH,#labelGUNDABAD").click(filterOut);
@@ -351,10 +453,22 @@ var CardFilter = Class.extend({
if (type != "")
type = " type:" + type;
+ var race = $("#race option:selected").prop("value");
+ if (race != "")
+ race = " race:" + race;
+
+ var itemClass = $("#itemClass option:selected").prop("value");
+ if (itemClass != "")
+ itemClass = " itemClass:" + itemClass
+
+ var phase = $("#phase option:selected").prop("value");
+ if (phase != "")
+ phase = " phase:" + phase;
+
if (cultures.length > 0)
- return cardType + " culture:" + cultures + keyword + type;
+ return cardType + " culture:" + cultures + keyword + type + race + itemClass + phase;
else
- return cardType + keyword + type;
+ return cardType + keyword + type + race + itemClass + phase;
},
calculateFullFilterPostfix: function () {
diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/hobbit.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/hobbit.js
index 9e4e33570..9d557f997 100644
--- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/hobbit.js
+++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/hobbit.js
@@ -24,8 +24,8 @@ var hobbit = {
'30_23': 'http://hobbitdraftgame.free.fr/Cards_Good_def/A_wizard_is_never_late.png',
'30_24': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Dawn_take_you_all.png',
'30_25': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Gandalf.png',
- '30_26': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Gandalf2.png',
- '30_27': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Gandalf3.png',
+ '30_26': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Gandalf2.png',
+ '30_27': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Gandalf3.png',
'30_28': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Gandalf4.png',
'30_29': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Glamdring.png',
'30_30': 'http://hobbitdraftgame.free.fr/Cards_Good_def/He_gives_me_courage.png',
@@ -58,8 +58,8 @@ var hobbit = {
'30_57': 'http://hobbitdraftgame.free.fr/Cards_Good_def/9_Battle_of_the_five_armies.png',
'30_58': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Smaug.png',
'31_1': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Dwarven_Axe.png',
- '31_2': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Dwarven_Song.png',
- '31_3': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Emeralds_of_Girion.png',
+ '31_2': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Dwarven_Song.png',
+ '31_3': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Emeralds_of_Girion2.png',
'31_4': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Great_Barricade.png',
'31_5': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Mithril_Coat.png',
'31_6': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Oakenshield.png',
@@ -72,7 +72,7 @@ var hobbit = {
'31_13': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Beorn.png',
'31_14': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Eagles_Are_Coming.png',
'31_15': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Gwaihir.png',
- '31_16': 'http://hobbitdraftgame.free.fr/Cards_Good_def/His_Wrath_Was_Redoubled.png',
+ '31_16': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_His_Wrath_Was_Redoubled.png',
'31_17': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Radagast.png',
'31_18': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Wizard_Staff.png',
'31_19': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Gollum_Better_Than_Nothing.png',
@@ -134,7 +134,7 @@ var hobbit = {
'32_6': 'http://hobbitdraftgame.free.fr/Cards_Good_def/King_Under_the_Mountain.png',
'32_7': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Ring_of_Thror.png',
'32_8': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Roac.png',
- '32_9': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Thrain.png',
+ '32_9': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Thrain.png',
'32_10': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Thror_s_Heirlooms.png',
'32_11': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Thror_s_Key.png',
'32_12': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Thror_s_Map.png',
@@ -154,7 +154,7 @@ var hobbit = {
'32_26': 'http://hobbitdraftgame.free.fr/Cards_Good_def/War_for_Gold.png',
'32_27': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Assaulting_Goblin.png',
'32_28': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Azog_Commander.png',
- '32_29': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Azog_s_Mace.png',
+ '32_29': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Azog_s_Mace.png',
'32_30': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Dark_Bats.png',
'32_31': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Demolition_Troll.png',
'32_32': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Vicious_Warg.png',
@@ -184,7 +184,7 @@ var hobbit = {
'32_56': 'http://hobbitdraftgame.free.fr/Cards_Good_def/9_Northern_Slopes.png',
'32_57': 'http://hobbitdraftgame.free.fr/Cards_Good_def/9_Ravenhill.png',
'32_58': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Dissension.png',
- '32_59': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Dragon_Malice.png',
+ '32_59': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Dragon_Malice.png',
'32_60': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Smaug_s_Awakening.png',
'32_61': 'http://hobbitdraftgame.free.fr/Cards_Good_def/New_Terrifying_Legend.png',
'32_62': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Twisted_Gold_of_Dragon.png',
diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set32/smaug/Card32_059.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set32/smaug/Card32_059.java
index 64ef68a87..5ad71d63a 100644
--- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set32/smaug/Card32_059.java
+++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set32/smaug/Card32_059.java
@@ -23,8 +23,8 @@ import java.util.List;
* Culture: Smaug
* Twilight Cost: 0
* Type: Condition • Support area
- * Game Text: Each time Smaug wins a skirmish, you may add a doubt (or 2 doubts if a Dwarven companion he was
- * skirmishing is killed).
+ * Game Text: Each time Smaug wins a skirmish or kills a [Dwarven] companion in a skirmish, you may add a doubt.
+ * While Bilbo wears The One Ring, he cannot be wounded by Smaug.
*/
public class Card32_059 extends AbstractPermanent {
public Card32_059() {
@@ -33,15 +33,12 @@ public class Card32_059 extends AbstractPermanent {
@Override
public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
- if (PlayConditions.checkPhaseLimit(game, self, 1)
- && (TriggerConditions.forEachKilledBy(game, effectResult, Filters.name("Smaug"), Filters.and(CardType.COMPANION, Culture.DWARVEN))
- || TriggerConditions.losesSkirmishInvolving(game, effectResult, Filters.or(CardType.COMPANION, CardType.ALLY), Filters.name("Smaug")))) {
+ if (TriggerConditions.forEachKilledBy(game, effectResult, Filters.name("Smaug"), Filters.and(CardType.COMPANION, Culture.DWARVEN))
+ || TriggerConditions.losesSkirmishInvolving(game, effectResult, Filters.or(CardType.COMPANION, CardType.ALLY), Filters.name("Smaug"))) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
- action.appendEffect(
- new IncrementPhaseLimitEffect(self, 1));
if (TriggerConditions.forEachKilledBy(game, effectResult, Filters.name("Smaug"), Filters.and(CardType.COMPANION, Culture.DWARVEN))) {
action.appendEffect(
- new AddBurdenEffect(game.getGameState().getCurrentPlayerId(), self, 2));
+ new AddBurdenEffect(game.getGameState().getCurrentPlayerId(), self, 1));
} else if (TriggerConditions.losesSkirmishInvolving(game, effectResult, Filters.or(CardType.COMPANION, CardType.ALLY), Filters.name("Smaug"))) {
action.appendEffect(
new AddBurdenEffect(game.getGameState().getCurrentPlayerId(), self, 1));
diff --git a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/PossessionClass.java b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/PossessionClass.java
index bce153d11..39c2da085 100644
--- a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/PossessionClass.java
+++ b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/PossessionClass.java
@@ -3,8 +3,9 @@ package com.gempukku.lotro.common;
public enum PossessionClass implements Filterable {
HAND_WEAPON("Hand Weapon"), ARMOR("Armor"), HELM("Helm"), MOUNT("Mount"), RANGED_WEAPON("Ranged Weapon"),
CLOAK("Cloak"), PIPE("Pipe"), SHIELD("Shield"), BRACERS("Bracers"), STAFF("Staff"), RING("Ring"),
- BROOCH("Brooch"), GAUNTLETS("Gauntlets"), BOX("Box"), PALANTIR("Palantir"), PHIAL("Phial"), HORN("Horn");
-
+ BROOCH("Brooch"), GAUNTLETS("Gauntlets"), BOX("Box"), PALANTIR("Palantir"), PHIAL("Phial"), HORN("Horn"),
+ CLASSLESS("Classless");
+
private String _humanReadable;
private PossessionClass(String humanReadable) {
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 98de77ab2..fa37615f6 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
@@ -23,6 +23,9 @@ public class SortAndFilterCards {
Set cultures = getEnumFilter(Culture.values(), Culture.class, "culture", null, filterParams);
Set keywords = getEnumFilter(Keyword.values(), Keyword.class, "keyword", Collections.emptySet(), filterParams);
Integer siteNumber = getSiteNumber(filterParams);
+ Set races = getEnumFilter(Race.values(), Race.class, "race", null, filterParams);
+ Set itemClasses = getEnumFilter(PossessionClass.values(), PossessionClass.class, "itemClass", Collections.emptySet(), filterParams);
+ Set phases = getEnumFilter(Keyword.values(),Keyword.class, "phase", Collections.emptySet(), filterParams);
List result = new ArrayList();
Map cardBlueprintMap = new HashMap<>();
@@ -30,12 +33,12 @@ public class SortAndFilterCards {
for (T item : items) {
String blueprintId = item.getBlueprintId();
if (isPack(blueprintId)) {
- if (acceptsFilters(cardLibrary, cardBlueprintMap, formatLibrary, rarities, blueprintId, side, type, rarity, sets, cardTypes, cultures, keywords, words, siteNumber))
+ if (acceptsFilters(cardLibrary, cardBlueprintMap, formatLibrary, rarities, blueprintId, side, type, rarity, sets, cardTypes, cultures, keywords, words, siteNumber, races, itemClasses, phases))
result.add(item);
} else {
try {
cardBlueprintMap.put(blueprintId, cardLibrary.getLotroCardBlueprint(blueprintId));
- if (acceptsFilters(cardLibrary, cardBlueprintMap, formatLibrary, rarities, blueprintId, side, type, rarity, sets, cardTypes, cultures, keywords, words, siteNumber))
+ if (acceptsFilters(cardLibrary, cardBlueprintMap, formatLibrary, rarities, blueprintId, side, type, rarity, sets, cardTypes, cultures, keywords, words, siteNumber, races, itemClasses, phases))
result.add(item);
} catch (CardNotFoundException e) {
// Ignore the card
@@ -74,7 +77,7 @@ public class SortAndFilterCards {
private boolean acceptsFilters(
LotroCardBlueprintLibrary library, Map cardBlueprint, LotroFormatLibrary formatLibrary, Map rarities, String blueprintId, Side side, String type, String[] rarity, String[] sets,
- Set cardTypes, Set cultures, Set keywords, List words, Integer siteNumber) {
+ Set cardTypes, Set cultures, Set keywords, List words, Integer siteNumber, Set races, Set itemClasses, Set phases) {
if (isPack(blueprintId)) {
if (type == null || type.equals("pack"))
return true;
@@ -93,7 +96,10 @@ public class SortAndFilterCards {
if (containsAllKeywords(blueprint, keywords))
if (containsAllWords(blueprint, words))
if (siteNumber == null || blueprint.getSiteNumber() == siteNumber)
- return true;
+ if (races == null || races.contains(blueprint.getRace()))
+ if (containsAllClasses(blueprint, itemClasses))
+ if (containsAllKeywords(blueprint, phases))
+ return true;
}
}
return false;
@@ -240,6 +246,26 @@ public class SortAndFilterCards {
return true;
}
+ private boolean containsAllClasses(LotroCardBlueprint blueprint, Set possessionClasses) {
+ for (PossessionClass filterPossessionClass : possessionClasses) {
+ if (blueprint == null)
+ return false;
+ else {
+ if (blueprint.getPossessionClasses() == null) {
+ if (filterPossessionClass == PossessionClass.CLASSLESS)
+ return true;
+ return false;
+ }
+ for (PossessionClass blueprintPossessionClass : blueprint.getPossessionClasses()) {
+ if (filterPossessionClass == blueprintPossessionClass)
+ return true;
+ }
+ return false;
+ }
+ }
+ return true;
+ }
+
private boolean containsAllWords(LotroCardBlueprint blueprint, List words) {
for (String word : words) {
if (blueprint == null || !replaceSpecialCharacters(GameUtils.getFullName(blueprint).toLowerCase()).contains(word))