From 5b07200f078f3f61de56816226bfc601d90ea58e Mon Sep 17 00:00:00 2001 From: Phallen Cassidy Date: Fri, 17 Dec 2021 09:43:35 -0500 Subject: [PATCH] Cards for PC set V1 --- .../cards/set101/set101_gandalf_playtest.json | 413 ++++++++------- .../cards/set101/set101_gondor_playtest.json | 436 ++++++++------- .../cards/set101/set101_shire_playtest.json | 500 ++++++++++-------- .../cards/set101/set101_sites_playtest.json | 480 ++++++++--------- .../appender/CantBeOverwhelmedMultiplier.java | 7 +- .../effect/appender/DiscardStackedCards.java | 7 +- 6 files changed, 965 insertions(+), 878 deletions(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_gandalf_playtest.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_gandalf_playtest.json index 14d669c89..ff42d1011 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_gandalf_playtest.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_gandalf_playtest.json @@ -1,188 +1,231 @@ { - - "151_13": { - "title": "*Gandalf", - "subtitle": "Olorin", - "culture": "gandalf", - "cost": 4, - "type": "companion", - "race": "wizard", - "keyword": ["damage+1"], - "strength": 6, - "vitality": 4, - "signet": "gandalf", - "resistance": 6, - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_14": { - "title": "*Gwaihir", - "subtitle": "King Of All Birds", - "culture": "gandalf", - "cost": 4, - "type": "ally", - "allyHome": "fellowship,4", - "race": "eagle", - "keyword": ["damage+1"], - "strength": 8, - "vitality": 4, - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_15": { - "title": "*Lament For Gandalf", - "culture": "gandalf", - "cost": 1, - "type": "condition", - "keyword": ["support area"], - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_16": { - "title": "My Heart Tells Me", - "culture": "gandalf", - "cost": 1, - "type": "event", - "keyword": ["response"], - "effects": { - "type": "responseEvent", - "trigger": { - "type": "moves", + "151_13 ": { + "title": "Counsel of the Wise", + "culture": "gandalf", + "cost": 0, + "type": "event", + "keyword": "fellowship", + "condition": { + "type": "canSpot", + "filter": "name(Gandalf)" + }, + "effects": { + "type": "event", + "cost": { + "type": "chooseAndAddTwilight", + "memorize": "allyCost" }, - "cost": { - "type": "exert", - "filter": "choose(elf)", - }, - "effect": [ - { - "type": "modifyStrength", - "filter": "choose(name(Gimli))", - "until": "start(regroup)", - "amount": 2 - } - ] - } - }, - - - "151_17": { - "title": "Two Eyes, As Long\As I Can Spare Them", - "culture": "gandalf", - "cost": 3, - "type": "event", - "keyword": ["fellowship"], - "effects": { - "type": "event", - "cost": { - "type": "exert", - "filter": "choose(elf)", - }, - "effect": [ - { - "type": "modifyStrength", - "filter": "choose(name(Gimli))", - "until": "start(regroup)", - "amount": 2 - } - ] - } - }, - - - "151_18": { - "title": "The White Council", - "culture": "gandalf", - "cost": 1, - "type": "condition", - "keyword": ["support area"], - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - + "effect": { + "type": "putcardsfromdeckintohand", + "filter": "choose(culture(elven),ally,maxTwilight(memory(allyCost)))", + } + } + }, + "151_14": { + "title": "*Gandalf", + "subtitle": "Olorin", + "culture": "gandalf", + "cost": 4, + "type": "companion", + "race": "wizard", + "strength": 6, + "vitality": 4, + "signet": "gandalf", + "resistance": 6, + "effects": [ + { + "type": "trigger", + "optional": true, + "trigger": { + "type": "startOfPhase", + "phase": "fellowship" + }, + "condition": { + "type": "canSpot", + "filter": "culture(elven),ally", + "count": 2 + }, + "effect": { + "type": "shuffleCardsFromDiscardIntoDrawDeck", + "filter": "choose(or(culture(gandalf),culture(elven)))" + } + }, + { + "type": "modifier", + "modifier": { + "type": "modifyStrength", + "condition": { + "type": "canSpot", + "filter": "culture(elven),ally", + "count": 3 + }, + "filter": "name(Gandalf)", + "amount": { + "type": "condition", + "condition": [ + { + "type": "canSpot", + "filter": "name(Elrond)" + }, + { + "type": "canSpot", + "filter": "name(Galadriel)" + }, + { + "type": "canSpot", + "filter": "name(Celeborn)" + } + ], + "true": 4, + "false": 2 + } + } + } + ] + }, + "151_15": { + "title": "*Gwaihir", + "subtitle": "Lord of All Eagles", + "culture": "gandalf", + "cost": 4, + "type": "ally", + "allyHome": "fellowship,4", + "race": "eagle", + "strength": 8, + "vitality": 2, + "effects": [ + { + "type": "trigger", + "trigger": { + "type": "movesTo", + "filter": "not(your)" + }, + "effect": { + "type": "heal", + "filter": "choose(companion,signet(gandalf))" + } + }, + { + "type": "activated", + "phase": "regroup", + "cost": { + "type": "discard", + "filter": "self" + }, + "effect": [ + { + "type": "addModifier", + "modifier": { + "type": "modifyMoveLimit", + "amount": 1 + }, + "until": "endOfTurn" + }, + { + "type": "optional", + "player": "shadowPlayer", + "text": "Would you like to take up to 2 Shadow cards into hand from discard?", + "effect": { + "type": "putCardsFromDiscardIntoHand", + "filter": "choose(side(shadow))", + "count": 2 + } + } + ] + } + ] + }, + "151_16": { + "title": "My Heart Tells Me", + "culture": "gandalf", + "cost": 1, + "type": "event", + "keyword": "response", + "condition": { + "type": "canSpot", + "filter": "name(Gandalf)" + }, + "effects": { + "type": "responseEvent", + "trigger": { + "type": "aboutToTakeWound", + "filter": "minion" + }, + "effect": [ + { + "type": "preventWound", + "filter": "choose(minion)" + }, + { + "type": "heal", + "filter": "choose(companion)" + } + ] + } + }, + "151_17": { + "title": "Two Eyes, As Often As I Can Spare Them", + "culture": "gandalf", + "cost": 3, + "type": "event", + "keyword": "fellowship", + "condition": [ + { + "type": "canSpot", + "filter": "name(Frodo)" + }, + { + "type": "canSpot", + "filter": "name(Gandalf)" + } + ], + "effects": { + "type": "event", + "effect": { + "type": "drawCards", + "count": { + "type": "forEachVitality", + "filter": "name(Frodo)" + } + } + } + }, + "151_18": { + "title": "The White Council", + "culture": "gandalf", + "cost": 1, + "type": "condition", + "keyword": "support area", + "effects": [ + { + "type": "modifier", + "modifier": { + "type": "modifyStrength", + "condition": { + "type": "canspot", + "filter": "name(Saruman)" + }, + "filter": "name(Gandalf)", + "amount": -1 + } + }, + { + "type": "activated", + "phase": "skirmish", + "cost": { + "type": "exert", + "filter": "choose(name(Gandalf))" + }, + "effect": { + "type": "modifyStrength", + "filter": "choose(or(culture(gandalf),culture(elven)),companion)", + "amount": { + "type": "forEachYouCanSpot", + "filter": "culture(elven),ally", + "limit": 3 + } + } + } + ] + } } diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_gondor_playtest.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_gondor_playtest.json index b83242511..6b5d31e03 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_gondor_playtest.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_gondor_playtest.json @@ -1,202 +1,238 @@ { - - "151_19": { - "title": "*Aragorn", - "subtitle": "Estel", - "culture": "gondor", - "cost": 4, - "type": "companion", - "race": "man", - "keyword": ["damage+1"], - "strength": 8, - "vitality": 4, - "signet": "gandalf", - "resistance": 6, - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_20": { - "title": "*Boromir", - "subtitle": "The Redeemed", - "culture": "gondor", - "cost": 3, - "type": "companion", - "race": "man", - "keyword": ["damage+1"], - "strength": 7, - "vitality": 3, - "signet": "aragorn", - "resistance": 6, - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_21": { - "title": "*For The Sons Of Gondor Have Returned", - "culture": "gondor", - "cost": 2, - "type": "condition", - "keyword": ["support area"], - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_22": { - "title": "Gilraen's Memorial", - "culture": "gondor", - "cost": 1, - "type": "artifact", - "target": "name(Gimli)", - "keyword": ["support area"], - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_23": { - "title": "*I Would Have Gone With You To The End", - "culture": "gondor", - "cost": 2, - "type": "condition", - "keyword": ["support area"], - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_24": { - "title": "*You Have My Sword", - "culture": "gondor", - "cost": 1, - "type": "condition", - "keyword": ["support area"], - "strength": 2, - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - + "151_19": { + "title": "*Aragorn", + "subtitle": "Estel", + "culture": "gondor", + "cost": 4, + "type": "companion", + "race": "man", + "strength": 8, + "vitality": 4, + "signet": "gandalf", + "resistance": 6, + "effects": [ + { + "type": "trigger", + "optional": true, + "trigger": { + "type": "played", + "filter": "self" + }, + "effect": { + "type": "putCardsFromDeckIntoHand", + "filter": "choose(culture(elven),ally,maxTwilight(2))" + } + }, + { + "type": "activated", + "phase": "skirmish", + "cost": { + "type": "discardFromHand", + "forced": false, + "filter": "choose(culture(elven),skirmish,event)" + }, + "effect": { + "type": "modifyStrength", + "filter": "self", + "amount": 2 + } + } + ] + }, + "151_20": { + "title": "*Boromir", + "subtitle": "Redeemed", + "culture": "gondor", + "cost": 3, + "type": "companion", + "race": "man", + "strength": 5, + "vitality": 3, + "signet": "aragorn", + "resistance": 6, + "effects": [ + { + "type": "modifier", + "modifier": { + "type": "modifyStrength", + "filter": "name(Boromir)", + "amount": { + "type": "forEachYouCanSpot", + "filter": "minion,inSkirmishAgainst(name(Boromir))", + "multiplier": 2 + } + } + }, + { + "type": "trigger", + "optional": true, + "trigger": { + "type": "startOfPhase", + "phase": "assignment" + }, + "cost": { + "type": "exert", + "filter": "choose(another,companion,signet(aragorn))" + }, + "effect": { + "type": "addModifier", + "modifier": { + "type": "addKeyword", + "filter": "name(Boromir)", + "keyword": "defender+1", + } + } + } + ] + }, + "151_21": { + "title": "*The Sons of Gondor Have Returned", + "culture": "gondor", + "cost": 2, + "type": "condition", + "keyword": "support area", + "effects": [ + { + "type": "modifier", + "modifier": { + "type": "modifyStrength", + "condition": { + "type": "canSpot", + "filter": "minion,assignedToSkirmish(name(Boromir))", + "count": 2 + }, + "filter": "name(Aragorn)", + "amount": 3 + } + }, + { + "type": "modifier", + "modifier": { + "type": "modifyStrength", + "condition": { + "type": "canSpot", + "filter": "minion,assignedToSkirmish(name(Aragorn))", + "count": 2 + }, + "filter": "name(Boromir)", + "amount": 3 + } + } + ] + }, + "151_22": { + "title": "*Gilraen's Memorial", + "culture": "gondor", + "cost": 1, + "type": "artifact", + "keyword": "support area", + "effects": [ + { + "type": "modifier", + "modifier": { + "type": "modifyStrength", + "filter": "companion,signet(aragorn)", + "amount": 1 + } + }, + { + "type": "activated", + "phase": "regroup", + "cost": { + "type": "discard", + "filter": "self" + }, + "effect": { + "type": "heal", + "filter": "choose(companion,signet(aragorn))" + } + } + ] + }, + "151_23": { + "title": "*I Would Have Gone With You to the End", + "culture": "gondor", + "cost": 2, + "type": "condition", + "keyword": "support area", + "effects": [ + { + "type": "trigger", + "optional": true, + "trigger": { + "type": "played", + "filter": "your,skirmish,event" + }, + "condition": { + "type": "canSpot", + "filter": "companion,inSkirmish,signet(aragorn)" + }, + "effect": { + "type": "splaceholder for function to stack the played event here" + } + }, + { + "type": "activated", + "phase": "skirmish", + "cost": [ + { + "type": "chooseANumber", + "from": 0, + "to": 3, + "memorize": "chosenNumber" + }, + { + "type": "discardStackedCards", + "count": { + "type": "fromMemory", + "memory": "chosenNumber" + }, + "on": "self", + "memorize": "discardedFromStack" + } + ], + "effect": { + "type": "modifyStrength", + "filter": "choose(companion,signet(aragorn))", + "amount": { + "type": "fromMemory", + "memory": "chosenNumber", + "limit": 3 + } + } + } + ] + }, + "151_24": { + "title": "*You Have My Sword", + "culture": "gondor", + "cost": 1, + "type": "condition", + "target": "companion,signet(aragorn),not(name(Aragorn))", + "strength": 2, + "effects": { + "type": "trigger", + "trigger": { + "type": "winsSkirmish", + "filter": "bearer" + }, + "effect": { + "type": "choice", + "texts": [ + "Exert Aragorn", + "Discard this condition" + ], + "effects": [ + { + "type": "exert", + "filter": "choose(name(Aragorn))" + }, + { + "type": "discard", + "filter": "self" + } + ] + } + } + } } diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_shire_playtest.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_shire_playtest.json index 72882c72c..246d74de8 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_shire_playtest.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_shire_playtest.json @@ -1,233 +1,271 @@ { - - "151_50": { - "title": "*Merry", - "subtitle": "Of Buckland", - "culture": "shire", - "cost": 1, - "type": "companion", - "race": "hobbit", - "keyword": ["damage+1"], - "strength": 3, - "vitality": 4, - "signet": "frodo", - "resistance": 6, - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_51": { - "title": "*Bilbo", - "subtitle": "Of Bag End", - "culture": "shire", - "cost": 2, - "type": "ally", - "allyHome": "fellowship,3", - "race": "hobbit", - "keyword": ["damage+1"], - "strength": 2, - "vitality": 3, - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_52": { - "title": "*Pippin", - "subtitle": "Of Tuckborough", - "culture": "shire", - "cost": 1, - "type": "companion", - "race": "hobbit", - "keyword": ["damage+1"], - "strength": 3, - "vitality": 4, - "signet": "frodo", - "resistance": 6, - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_53": { - "title": "*Sam", - "subtitle": "Of Bagshot Row", - "culture": "shire", - "cost": 2, - "type": "companion", - "race": "hobbit", - "keyword": ["damage+1"], - "strength": 3, - "vitality": 4, - "signet": "frodo", - "resistance": 6, - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_54": { - "title": "We May Yet", - "culture": "shire", - "cost": 1, - "type": "event", - "keyword": ["skirmish"], - "effects": { - "type": "event", - "cost": { - "type": "exert", - "filter": "choose(elf)", - }, - "effect": [ - { - "type": "modifyStrength", - "filter": "choose(name(Gimli))", - "until": "start(regroup)", - "amount": 2 - } - ] - } - }, - - - "151_55": { - "title": "We're Coming Too", - "culture": "shire", - "cost": 2, - "type": "event", - "keyword": ["fellowship"], - "effects": { - "type": "event", - "cost": { - "type": "exert", - "filter": "choose(elf)", - }, - "effect": [ - { - "type": "modifyStrength", - "filter": "choose(name(Gimli))", - "until": "start(regroup)", - "amount": 2 - } - ] - } - }, - - - "151_56": { - "title": "*Griffo Boffin", - "subtitle": "Uncouth Fellow", - "culture": "shire", - "cost": 1, - "type": "ally", - "allyHome": "fellowship,1", - "race": "hobbit", - "keyword": ["damage+1"], - "strength": 3, - "vitality": 2, - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - + "151_50": { + "title": "*Bilbo", + "subtitle": "Of Bag End", + "culture": "shire", + "cost": 2, + "type": "ally", + "allyHome": "fellowship,3", + "race": "hobbit", + "strength": 2, + "vitality": 3, + "effects": [ + { + "type": "trigger", + "optional": true, + "trigger": { + "type": "moves" + }, + "cost": { + "type": "exert", + "filter": "self" + }, + "effect": { + "type": "modifyStrength", + "filter": "choose(companion,signet(frodo))", + "amount": 1, + "until": "start(regroup)" + } + } + ] + }, + "151_51": { + "title": "*Griffo Boffin", + "subtitle": "Uncouth Fellow", + "culture": "shire", + "cost": 1, + "type": "ally", + "allyHome": "fellowship,1", + "race": "hobbit", + "strength": 3, + "vitality": 2, + "effects": [ + { + "type": "trigger", + "optional": true, + "trigger": { + "type": "played", + "filter": "culture(shire),ally" + }, + "cost": { + "type": "addTwilight", + "amount": 1 + }, + "effect": { + "type": "drawCards", + "count": 1 + } + } + ] + }, + "151_52": { + "title": "*Merry", + "subtitle": "Of Buckland", + "culture": "shire", + "cost": 1, + "type": "companion", + "race": "hobbit", + "strength": 3, + "vitality": 4, + "signet": "frodo", + "resistance": 6, + "effects": [ + { + "type": "activated", + "phase": "assignment", + "cost": [ + { + "type": "discard", + "filter": "choose(culture(dwarven),follower)", + "count": "1-100", + "memorize": "discardedTales" + }, + { + "type": "memorizeNumber", + "memory": "numberOfTalesDiscarded", + "amount": { + "type": "forEachInMemory", + "memory": "discardedTales" + } + }, + { + "type": "chooseActiveCards", + "text": "Choose minion", + "filter": "choose(minion)", + "memorize": "chosenMinion" + } + ], + "effect": { + "type": "preventable", + "player": "shadowPlayer", + "text": "Would you like to remove {numberOfTalesDiscarded} twilight to allow {chosenMinion} to skirmish?", + "cost": { + "type": "removeTwilight", + "amount": { + "type": "forEachInMemory", + "memory": "discardedTales" + } + }, + "effect": { + "type": "addModifier", + "modifier": { + "type": "cantBeAssignedToSkirmishAgainst", + "fpCharacter": "any", + "minion": "memory(chosenMinion)" + } + } + } + } + ] + }, + "151_53": { + "title": "*Pippin", + "subtitle": "Of Tuckborough", + "culture": "shire", + "cost": 1, + "type": "companion", + "race": "hobbit", + "strength": 3, + "vitality": 4, + "signet": "frodo", + "resistance": 6, + "effects": [ + { + "type": "activated", + "phase": "skirmish", + "cost": { + "type": "exert", + "filter": "self" + }, + "effect": [ + { + "type": "cantBeOverwhelmedMultiplier", + "filter": "choose(culture(shire),companion)", + "memorize": "shireCompanion" + }, + { + "type": "conditional", + "condition": { + "type": "canSpot", + "filter": "companion,signet(frodo)", + "count": 3 + }, + "effect": { + "type": "modifyStrength", + "filter": "choose(memory(shireCompanion))", + "amount": 1 + } + } + ] + } + ] + }, + "151_54": { + "title": "*Sam", + "subtitle": "Of Bagshot Row", + "culture": "shire", + "cost": 2, + "type": "companion", + "race": "hobbit", + "strength": 3, + "vitality": 4, + "signet": "frodo", + "resistance": 6, + "effects": [ + { + "type": "trigger", + "optional": true, + "trigger": { + "type": "winsSkirmish", + "filter": "companion,signet(frodo)", + "memorize": "winner" + }, + "cost": { + "type": "choice", + "texts": [ + "Exert Sam", + "Add a burden" + ], + "effects": [ + { + "type": "exert", + "filter": "self" + }, + { + "type": "addBurdens", + "amount": 1 + } + ] + }, + "effect": { + "type": "heal", + "filter": "choose(memory(winner))" + } + }, + { + "type": "trigger", + "optional": true, + "trigger": { + "type": "killed", + "filter": "name(Frodo),ring bearer" + }, + "effect": { + "type": "makeSelfRingBearer" + } + } + ] + }, + "151_55": { + "title": "We May Yet", + "culture": "shire", + "cost": 1, + "type": "event", + "keyword": "skirmish", + "effects": { + "type": "event", + "cost": { + "type": "exert", + "filter": "choose(companion,signet(frodo))", + "memorize": "exertedCompanion" + }, + "effect": { + "type": "modifyStrength", + "filter": "choose(memory(exertedCompanion))", + "amount": { + "type": "forEachYouCanSpot", + "filter": "companion,signet(frodo)", + "limit": 4 + } + } + } + }, + "151_56": { + "title": "We're Coming Too", + "culture": "shire", + "cost": 2, + "type": "event", + "keyword": "fellowship", + "condition": [ + { + "type": "canSpot", + "filter": "name(Merry)" + }, + { + "type": "canSpot", + "filter": "name(Pippin)" + } + ], + "effects": { + "type": "event", + "cost": { + "type": "exert", + "filter": "choose(elf)", + }, + "effect": { + "type": "heal", + "count": "2", + "filter": "choose(companion,signet(frodo))" + } + } + } } diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_sites_playtest.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_sites_playtest.json index 5f1c66100..b5698733d 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_sites_playtest.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set101/set101_sites_playtest.json @@ -1,258 +1,226 @@ { - - "151_57": { - "title": "Bag End Study", - "cost": 0, - "type": "site", - "site": 1, - "block": "fellowship", - "direction": "left", - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_58": { - "title": "Bree Overlook", - "cost": 2, - "type": "site", - "site": 2, - "block": "fellowship", - "direction": "left", - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_59": { - "title": "Rivendell Gateway", - "cost": 0, - "type": "site", - "site": 3, - "block": "fellowship", - "direction": "left", - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_60": { - "title": "Moria Crossroads", - "cost": 3, - "type": "site", - "site": 4, - "block": "fellowship", - "direction": "left", - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_61": { - "title": "Lorien Throne Room", - "cost": 3, - "type": "site", - "site": 6, - "block": "fellowship", - "direction": "left", - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_62": { - "title": "Valley of the Anduin", - "cost": 6, - "type": "site", - "site": 7, - "block": "fellowship", - "direction": "left", - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_63": { - "title": "Nen Hithoel", - "cost": 7, - "type": "site", - "site": 8, - "block": "fellowship", - "direction": "left", - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - - - "151_64": { - "title": "Henneth Anun Glade", - "cost": 9, - "type": "site", - "site": 9, - "block": "fellowship", - "direction": "left", - "effects": [ - { - "type": "modifier", - "modifier": { - "type": "addKeyword", - "filter": "dwarf", - "keyword": "damage+1" - } - }, - { - "type": "trigger", - "optional": true, - "trigger": { - "type": "winsSkirmish", - "filter": "dwarf" - }, - "effect": { - "type": "wound", - "filter": "choose(orc)" - } - } - ] - }, - + "151_57": { + "title": "Bag End Study", + "cost": 0, + "type": "site", + "site": 1, + "block": "fellowship", + "direction": "left", + "effects": { + "type": "trigger", + "optional": true, + "trigger": { + "type": "movesFrom", + "filter": "self" + }, + "effect": { + "type": "playCardFromDrawDeck", + "filter": "choose(culture(shire),condition)" + } + } + }, + "151_58": { + "title": "Bree Overlook", + "cost": 2, + "type": "site", + "site": 2, + "block": "fellowship", + "direction": "left", + "effects": { + "type": "activated", + "phase": "regroup", + "cost": { + "type": "exert", + "filter": "choose(culture(gandalf),ally)" + }, + "effect": { + "type": "wound", + "filter": "choose(minion)" + } + } + }, + "151_59": { + "title": "Rivendell Gateway", + "cost": 0, + "type": "site", + "site": 3, + "block": "fellowship", + "direction": "left", + "effects": { + "type": "trigger", + "trigger": { + "type": "condition", + "condition": { + "type": "can spot 4 FP cultures (workaround is for each culture over 3; limit 1)" + } + }, + "condition": { + "type": "perTurnLimit", + "limit": 1 + }, + "effect": [ + { + "type": "incrementPerTurnLimit", + "limit": 1 + }, + { + "type": "addModifier", + "modifier": { + "type": "modifyMoveLimit", + "amount": 1 + }, + "until": "endOfTurn" + } + ] + } + }, + "151_60": { + "title": "Moria Crossroads", + "cost": 3, + "type": "site", + "site": 4, + "block": "fellowship", + "direction": "left", + "effects": { + "type": "modifier", + "modifier": { + "type": "skirmishes can't be canceled", + "condition": { + "type": "canSpot", + "filter": "unique,culture(moria),minion" + } + } + } + }, + "151_61": { + "title": "Lorien Throne Room", + "cost": 3, + "type": "site", + "site": 6, + "block": "fellowship", + "direction": "left", + "effects": { + "type": "trigger", + "optional": true, + "trigger": { + "type": "played", + "filter": "your,culture(elven)" + }, + "cost": { + "type": "exert", + "filter": "choose(culture(elven),ally)" + }, + "effect": { + "type": "removeTwilight" + } + } + }, + "151_62": { + "title": "Valley of the Anduin", + "cost": 6, + "type": "site", + "site": 7, + "block": "fellowship", + "direction": "left", + "effects": { + "type": "modifier", + "modifier": { + "type": "cantPlayCards", + "condition": { + "type": "canSpot", + "filter": "companion", + "count": 6 + }, + "filter": "stealth,event", + } + } + }, + "151_63": { + "title": "Nen Hithoel", + "cost": 7, + "type": "site", + "site": 8, + "block": "fellowship", + "direction": "left", + "effects": { + "type": "trigger", + "optional": true, + "trigger": { + "type": "movesTo", + "filter": "self" + }, + "condition": { + "type": "isSide", + "side": "shadow" + }, + "effect": { + "type": "drawCards", + "count": { + "type": "forEachYouCanSpot", + "filter": "companion", + "over": 5 + } + } + } + }, + "151_64": { + "title": "Henneth Anun Glade", + "cost": 9, + "type": "site", + "site": 9, + "block": "fellowship", + "direction": "left", + "effects": [ + { + "type": "modifier", + "modifier": { + "type": "modifyCost", + "condition": [ + { + "type": "canSpot", + "filter": "unwounded,companion" + }, + { + "type": "not", + "condition": { + "type": "hasInZoneData", + "filter": "self" + } + } + ], + "filter": "minion", + "amount": -3 + } + }, + { + "type": "trigger", + "trigger": { + "type": "played", + "filter": "minion", + "memorize": "playedMinion" + }, + "condition": { + "type": "not", + "condition": { + "type": "hasInZoneData", + "filter": "self" + } + }, + "effect": { + "type": "appendCardIdsToWhileInZone", + "memory": "playedMinion" + } + }, + { + "type": "trigger", + "trigger": { + "type": "endOfPhase", + "phase": "shadow" + }, + "effect": { + "type": "resetWhileInZoneData" + } + } + ] + } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/CantBeOverwhelmedMultiplier.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/CantBeOverwhelmedMultiplier.java index 3c9ad4dde..11bebef6c 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/CantBeOverwhelmedMultiplier.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/CantBeOverwhelmedMultiplier.java @@ -22,21 +22,22 @@ import java.util.Collection; public class CantBeOverwhelmedMultiplier implements EffectAppenderProducer { @Override public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { - FieldUtils.validateAllowedFields(effectObject, "filter", "until", "multiplier"); + FieldUtils.validateAllowedFields(effectObject, "filter", "until", "multiplier", "memorize"); final String filter = FieldUtils.getString(effectObject.get("filter"), "filter"); final int multiplier = FieldUtils.getInteger(effectObject.get("multiplier"), "multiplier", 3); final TimeResolver.Time until = TimeResolver.resolveTime(effectObject.get("until"), "end(current)"); + final String memory = FieldUtils.getString(effectObject.get("memorize"), "memorize", "_temp"); MultiEffectAppender result = new MultiEffectAppender(); result.addEffectAppender( - CardResolver.resolveCards(filter, new ConstantEvaluator(1), "_temp", "you", "Choose characters to apply overwhelm multiplier on", environment)); + CardResolver.resolveCards(filter, new ConstantEvaluator(1), memory, "you", "Choose characters to apply overwhelm multiplier on", environment)); result.addEffectAppender( new DelayedAppender() { @Override protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) { - final Collection cardsFromMemory = actionContext.getCardsFromMemory("_temp"); + final Collection cardsFromMemory = actionContext.getCardsFromMemory(memory); return new AddUntilModifierEffect( new OverwhelmedByMultiplierModifier(actionContext.getSource(), Filters.in(cardsFromMemory), multiplier), until); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/DiscardStackedCards.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/DiscardStackedCards.java index 7b7e01e8f..8988bf20f 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/DiscardStackedCards.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/DiscardStackedCards.java @@ -14,22 +14,23 @@ import org.json.simple.JSONObject; public class DiscardStackedCards implements EffectAppenderProducer { @Override public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { - FieldUtils.validateAllowedFields(effectObject, "on", "filter", "count"); + FieldUtils.validateAllowedFields(effectObject, "on", "filter", "count" ,"memorize"); String on = FieldUtils.getString(effectObject.get("on"), "on", "any"); String filter = FieldUtils.getString(effectObject.get("filter"), "filter", "choose(any)"); final ValueSource valueSource = ValueResolver.resolveEvaluator(effectObject.get("count"), 1, environment); + final String memory = FieldUtils.getString(effectObject.get("memorize"), "memorize", "_temp"); final FilterableSource onFilterSource = environment.getFilterFactory().generateFilter(on, environment); MultiEffectAppender result = new MultiEffectAppender(); result.addEffectAppender( - CardResolver.resolveStackedCards(filter, valueSource, onFilterSource, "_temp", "you", "Choose cards to discard", environment)); + CardResolver.resolveStackedCards(filter, valueSource, onFilterSource, memory, "you", "Choose cards to discard", environment)); result.addEffectAppender( new DelayedAppender() { @Override protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) { - return new DiscardStackedCardsEffect(actionContext.getSource(), actionContext.getCardsFromMemory("_temp")); + return new DiscardStackedCardsEffect(actionContext.getSource(), actionContext.getCardsFromMemory(memory)); } }); return result;