From 5c26c2aa8a8901338e87dec18ce620fc51fc5a97 Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Sat, 7 Sep 2024 18:08:05 -0500 Subject: [PATCH] V2 balance update. --- .../src/main/web/js/gemp-022/PC_Cards.js | 144 +++++++++--------- .../pc/setV02/setv02-Dunland-playtest.hjson | 31 ++-- .../pc/setV02/setv02-Gondor-playtest.hjson | 41 ++--- .../pc/setV02/setv02-Isengard-playtest.hjson | 73 ++++----- .../pc/setV02/setv02-Sauron-playtest.hjson | 4 +- .../effect/modifier/CancelKeywordBonus.java | 2 +- .../pc/vsets/set_v02/Card_V2_001_Tests.java | 108 +++---------- .../pc/vsets/set_v02/Card_V2_003_Tests.java | 2 +- .../pc/vsets/set_v02/Card_V2_016_Tests.java | 104 ++++--------- .../pc/vsets/set_v02/Card_V2_021_Tests.java | 4 +- .../pc/vsets/set_v02/Card_V2_033_Tests.java | 4 +- .../pc/vsets/set_v02/Card_V2_034_Tests.java | 5 +- .../pc/vsets/set_v02/Card_V2_062_Tests.java | 6 +- 13 files changed, 192 insertions(+), 336 deletions(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js index e934765f9..f3a6b642f 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js +++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js @@ -650,149 +650,149 @@ var PCCards = { //PC V2 - King of the Golden Hall // Driven into the Hills (V2U1) [Playtest] - '102_1' : 'https://i.lotrtcgpc.net/sets/vset2/V2_01.jpg', + '102_1' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S001.0_card.jpg', // Dunlending Raider (V2C2) [Playtest] - '102_2' : 'https://i.lotrtcgpc.net/sets/vset2/V2_02.jpg', + '102_2' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S002.0_card.jpg', // Dunlending Reaver (V2U3) [Playtest] - '102_3' : 'https://i.lotrtcgpc.net/sets/vset2/V2_03.jpg', + '102_3' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S003.0_card.jpg', // Horsemen Took Your Lands (V2R4) [Playtest] - '102_4' : 'https://i.lotrtcgpc.net/sets/vset2/V2_04.jpg', + '102_4' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S004.0_card.jpg', // Haldir, Naith Commander (V2R5) [Playtest] - '102_5' : 'https://i.lotrtcgpc.net/sets/vset2/V2_05.jpg', + '102_5' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S005.0_card.jpg', // Leithio i Phillin! (V2C6) [Playtest] - '102_6' : 'https://i.lotrtcgpc.net/sets/vset2/V2_06.jpg', + '102_6' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S006.0_card.jpg', // Naith Armaments (V2U7) [Playtest] - '102_7' : 'https://i.lotrtcgpc.net/sets/vset2/V2_07.jpg', + '102_7' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S007.0_card.jpg', // Arwen, Lady of Rivendell (V2U8) [Playtest] - '102_8' : 'https://i.lotrtcgpc.net/sets/vset2/V2_08.jpg', + '102_8' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S008.0_card.jpg', // Your Friends Are With You (V2U9) [Playtest] - '102_9' : 'https://i.lotrtcgpc.net/sets/vset2/V2_09.jpg', + '102_9' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S009.0_card.jpg', // Deadly Contest (V2C10) [Playtest] - '102_10' : 'https://i.lotrtcgpc.net/sets/vset2/V2_10.jpg', + '102_10' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S010.0_card.jpg', // To Honor That Allegience (V2U11) [Playtest] - '102_11' : 'https://i.lotrtcgpc.net/sets/vset2/V2_11.jpg', + '102_11' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S011.0_card.jpg', // Jetsam (V2U12) [Playtest] - '102_12' : 'https://i.lotrtcgpc.net/sets/vset2/V2_12.jpg', + '102_12' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S012.0_card.jpg', // Saruman's Hospitality (V2R13) [Playtest] - '102_13' : 'https://i.lotrtcgpc.net/sets/vset2/V2_13.jpg', + '102_13' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S013.0_card.jpg', // Gandalf, Lathspell (V2R14) [Playtest] - '102_14' : 'https://i.lotrtcgpc.net/sets/vset2/V2_14.jpg', + '102_14' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S014.0_card.jpg', // Ride Out and Meet Them (V2C15) [Playtest] - '102_15' : 'https://i.lotrtcgpc.net/sets/vset2/V2_15.jpg', + '102_15' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S015.0_card.jpg', // Aragorn, Last Hope Of Men (V2R16) [Playtest] - '102_16' : 'https://i.lotrtcgpc.net/sets/vset2/V2_16.jpg', + '102_16' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S016.0_card.jpg', // I Will Die as One of Them (V2C17) [Playtest] - '102_17' : 'https://i.lotrtcgpc.net/sets/vset2/V2_17.jpg', + '102_17' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S017.0_card.jpg', // Denethor, Formidable Father (V2U18) [Playtest] - '102_18' : 'https://i.lotrtcgpc.net/sets/vset2/V2_18.jpg', + '102_18' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S018.0_card.jpg', // Dunadan of Ithilien (V2U19) [Playtest] - '102_19' : 'https://i.lotrtcgpc.net/sets/vset2/V2_19.jpg', + '102_19' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S019.0_card.jpg', // Isengard Foreman (V2R20) [Playtest] - '102_20' : 'https://i.lotrtcgpc.net/sets/vset2/V2_20.jpg', + '102_20' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S020.0_card.jpg', // Machinery of War (V2U21) [Playtest] - '102_21' : 'https://i.lotrtcgpc.net/sets/vset2/V2_21.jpg', + '102_21' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S021.0_card.jpg', // Fires of Industry (V2U22) [Playtest] - '102_22' : 'https://i.lotrtcgpc.net/sets/vset2/V2_22.jpg', + '102_22' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S022.0_card.jpg', // Isengard Grunt (V2C23) [Playtest] - '102_23' : 'https://i.lotrtcgpc.net/sets/vset2/V2_23.jpg', + '102_23' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S023.0_card.jpg', // Wolf Pit (V2R24) [Playtest] - '102_24' : 'https://i.lotrtcgpc.net/sets/vset2/V2_24.jpg', + '102_24' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S024.0_card.jpg', // Strength of the Pack (V2U25) [Playtest] - '102_25' : 'https://i.lotrtcgpc.net/sets/vset2/V2_25.jpg', + '102_25' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S025.0_card.jpg', // Hound of Isengard (V2C26) [Playtest] - '102_26' : 'https://i.lotrtcgpc.net/sets/vset2/V2_26.jpg', + '102_26' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S026.0_card.jpg', // Uruk Shield Wall (V2U27) [Playtest] - '102_27' : 'https://i.lotrtcgpc.net/sets/vset2/V2_27.jpg', + '102_27' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S027.0_card.jpg', // Berserk Deathseeker (V2R28) [Playtest] - '102_28' : 'https://i.lotrtcgpc.net/sets/vset2/V2_28.jpg', + '102_28' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S028.0_card.jpg', // Berserk Fanatic (V2C29) [Playtest] - '102_29' : 'https://i.lotrtcgpc.net/sets/vset2/V2_29.jpg', + '102_29' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S029.0_card.jpg', // Breaching Shot (V2U30) [Playtest] - '102_30' : 'https://i.lotrtcgpc.net/sets/vset2/V2_30.jpg', + '102_30' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S030.0_card.jpg', // Uruk Occupier (V2U31) [Playtest] - '102_31' : 'https://i.lotrtcgpc.net/sets/vset2/V2_31.jpg', + '102_31' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S031.0_card.jpg', // Trail of Savagery (V2C32) [Playtest] - '102_32' : 'https://i.lotrtcgpc.net/sets/vset2/V2_32.jpg', + '102_32' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S032.0_card.jpg', // Legion of Isengard (V2R33) [Playtest] - '102_33' : 'https://i.lotrtcgpc.net/sets/vset2/V2_33.jpg', + '102_33' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S033.0_card.jpg', // Saruman, Mind of Metal and Wheels (V2U34) [Playtest] - '102_34' : 'https://i.lotrtcgpc.net/sets/vset2/V2_34.jpg', + '102_34' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S034.0_card.jpg', // Back on the Menu (V2U35) [Playtest] - '102_35' : 'https://i.lotrtcgpc.net/sets/vset2/V2_35.jpg', + '102_35' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S035.0_card.jpg', // Uruk Prowler (V2C36) [Playtest] - '102_36' : 'https://i.lotrtcgpc.net/sets/vset2/V2_36.jpg', + '102_36' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S036.0_card.jpg', // Uneasy Alliance (V2C37) [Playtest] - '102_37' : 'https://i.lotrtcgpc.net/sets/vset2/V2_37.jpg', + '102_37' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S037.0_card.jpg', // The Balrog, Lieutenant of Morgoth (V2R38) [Playtest] - '102_38' : 'https://i.lotrtcgpc.net/sets/vset2/V2_38.jpg', + '102_38' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S038.0_card.jpg', // From Deepest Dungeon (V2U39) [Playtest] - '102_39' : 'https://i.lotrtcgpc.net/sets/vset2/V2_39.jpg', + '102_39' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S039.0_card.jpg', // To Highest Peak (V2U40) [Playtest] - '102_40' : 'https://i.lotrtcgpc.net/sets/vset2/V2_40.jpg', + '102_40' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S040.0_card.jpg', // Through Fire and Water (V2C41) [Playtest] - '102_41' : 'https://i.lotrtcgpc.net/sets/vset2/V2_41.jpg', + '102_41' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S041.0_card.jpg', // Ancient Evil (V2R42) [Playtest] - '102_42' : 'https://i.lotrtcgpc.net/sets/vset2/V2_42.jpg', + '102_42' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S042.0_card.jpg', // Theoden, Last of his House (V2R43) [Playtest] - '102_43' : 'https://i.lotrtcgpc.net/sets/vset2/V2_43.jpg', + '102_43' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S043.0_card.jpg', // Erkenbrand, Kinsman of the House of Eorl (V2R44) [Playtest] - '102_44' : 'https://i.lotrtcgpc.net/sets/vset2/V2_44.jpg', + '102_44' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S044.0_card.jpg', // Royal Attendant (V2R45) [Playtest] - '102_45' : 'https://i.lotrtcgpc.net/sets/vset2/V2_45.jpg', + '102_45' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S045.0_card.jpg', // Now for Ruin (V2U46) [Playtest] - '102_46' : 'https://i.lotrtcgpc.net/sets/vset2/V2_46.jpg', + '102_46' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S046.0_card.jpg', // Now for Wrath (V2U47) [Playtest] - '102_47' : 'https://i.lotrtcgpc.net/sets/vset2/V2_47.jpg', + '102_47' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S047.0_card.jpg', // And the Red Dawn (V2U48) [Playtest] - '102_48' : 'https://i.lotrtcgpc.net/sets/vset2/V2_48.jpg', + '102_48' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S048.0_card.jpg', // Guthwine, Eomer's Blade (V2R49) [Playtest] - '102_49' : 'https://i.lotrtcgpc.net/sets/vset2/V2_49.jpg', + '102_49' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S049.0_card.jpg', // Let This Be the Hour (V2U50) [Playtest] - '102_50' : 'https://i.lotrtcgpc.net/sets/vset2/V2_50.jpg', + '102_50' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S050.0_card.jpg', // To the King (V2C51) [Playtest] - '102_51' : 'https://i.lotrtcgpc.net/sets/vset2/V2_51.jpg', + '102_51' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S051.0_card.jpg', // Do Not Trust to Hope (V2C52) [Playtest] - '102_52' : 'https://i.lotrtcgpc.net/sets/vset2/V2_52.jpg', + '102_52' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S052.0_card.jpg', // An End Worthy of Remembrance (V2U53) [Playtest] - '102_53' : 'https://i.lotrtcgpc.net/sets/vset2/V2_53.jpg', + '102_53' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S053.0_card.jpg', // Marsh Wight (V2U54) [Playtest] - '102_54' : 'https://i.lotrtcgpc.net/sets/vset2/V2_54.jpg', + '102_54' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S054.0_card.jpg', // Down to Join the Dead Ones (V2R55) [Playtest] - '102_55' : 'https://i.lotrtcgpc.net/sets/vset2/V2_55.jpg', + '102_55' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S055.0_card.jpg', // Trapped in its Gaze (V2U56) [Playtest] - '102_56' : 'https://i.lotrtcgpc.net/sets/vset2/V2_56.jpg', + '102_56' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S056.0_card.jpg', // Shapes to See, Not to Touch (V2R57) [Playtest] - '102_57' : 'https://i.lotrtcgpc.net/sets/vset2/V2_57.jpg', + '102_57' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S057.0_card.jpg', // Orc Searcher (V2U58) [Playtest] - '102_58' : 'https://i.lotrtcgpc.net/sets/vset2/V2_58.jpg', + '102_58' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S058.0_card.jpg', // No One's Going To Save You Now (V2C59) [Playtest] - '102_59' : 'https://i.lotrtcgpc.net/sets/vset2/V2_59.jpg', + '102_59' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S059.0_card.jpg', // Grishnakh, Servant of Lugburz (V2R60) [Playtest] - '102_60' : 'https://i.lotrtcgpc.net/sets/vset2/V2_60.jpg', + '102_60' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S060.0_card.jpg', // Orc of Lugburz (V2U61) [Playtest] - '102_61' : 'https://i.lotrtcgpc.net/sets/vset2/V2_61.jpg', + '102_61' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S061.0_card.jpg', // Lugburz Spotter (V2C62) [Playtest] - '102_62' : 'https://i.lotrtcgpc.net/sets/vset2/V2_62.jpg', + '102_62' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S062.0_card.jpg', // Eastemnet Hills (V2U63) [Playtest] - '102_63' : 'https://i.lotrtcgpc.net/sets/vset2/V2_63.jpg', + '102_63' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S063.0_card.jpg', // Theodred's Tomb (V2U64) [Playtest] - '102_64' : 'https://i.lotrtcgpc.net/sets/vset2/V2_64.jpg', + '102_64' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S064.0_card.jpg', // Westfold Plains (V2U65) [Playtest] - '102_65' : 'https://i.lotrtcgpc.net/sets/vset2/V2_65.jpg', + '102_65' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S065.0_card.jpg', // Breached Wall (V2U66) [Playtest] - '102_66' : 'https://i.lotrtcgpc.net/sets/vset2/V2_66.jpg', + '102_66' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S066.0_card.jpg', // Isengard Gates (V2U67) [Playtest] - '102_67' : 'https://i.lotrtcgpc.net/sets/vset2/V2_67.jpg', + '102_67' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S067.0_card.jpg', // Helm's Tower (V2U68) [Playtest] - '102_68' : 'https://i.lotrtcgpc.net/sets/vset2/V2_68.jpg', + '102_68' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S068.0_card.jpg', // Desolation of Saruman (V2U69) [Playtest] - '102_69' : 'https://i.lotrtcgpc.net/sets/vset2/V2_69.jpg', + '102_69' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S069.0_card.jpg', // Isengard Clefts (V2U70) [Playtest] - '102_70' : 'https://i.lotrtcgpc.net/sets/vset2/V2_70.jpg', + '102_70' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S070.0_card.jpg', // Friendship of The Three Kindreds (V2R71) [Playtest] - '102_71' : 'https://i.lotrtcgpc.net/sets/vset2/V2_71.jpg', + '102_71' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S071.0_card.jpg', // Palantir of Orthanc, Corrupted Relic (V2R72) [Playtest] - '102_72' : 'https://i.lotrtcgpc.net/sets/vset2/V2_72.jpg', + '102_72' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S072.0_card.jpg', //V2-associated Errata // Erethon, Naith Lieutenant (4R65) [Errata] diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Dunland-playtest.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Dunland-playtest.hjson index 833fe1570..6712a6d00 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Dunland-playtest.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Dunland-playtest.hjson @@ -16,7 +16,7 @@ style: Standard } title: Driven into the Hills - unique: true + unique: false side: Shadow culture: Dunland twilight: 1 @@ -32,29 +32,18 @@ } } { - type: Modifier + type: modifier modifier: { - type: SkipPhase - phase: Archery - requires: { - type: HaveInitiative - side: Shadow + type: ModifyInitiativeHandSize + amount: { + type: forEachYouCanSpot + filter: companion + over: 4 } } } - { - type: trigger - optional: false - trigger: { - type: SiteLiberated - } - effect: { - type: Discard - select: self - } - } ] - gametext: To play, spot a [Dunland] minion.
While the shadow has initiative, skip the archery phase.
When the Free-Peoples player liberates a site, discard this condition. + gametext: To play, spot a [Dunland] minion.
To play, spot a [Dunland] minion.\For each companion you can spot over 4, the Free Peoples player must have an additional card in hand to have initiative. lore: "'Not in half a thousand years have they forgotten their grievance that the lords of Gondor gave the Mark to Eorl the Young and made alliance with him.'" promotext: "" alts: { @@ -140,7 +129,7 @@ modifier: { type: ModifyStrength filter: self - amount: 1 + amount: 3 requires: { type: HaveInitiative side: Shadow @@ -160,7 +149,7 @@ } } ] - gametext: While you have initiative, this minion is strength +1 and damage +1. + gametext: While you have initiative, this minion is strength +3 and damage +1. lore: "Now they could hear, borne over the dark, the sound of harsh singing..." promotext: "" alts: { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Gondor-playtest.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Gondor-playtest.hjson index 125356b5e..71b7fa100 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Gondor-playtest.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Gondor-playtest.hjson @@ -16,7 +16,7 @@ style: Standard } title: Aragorn - subtitle: Last Hope Of Men + subtitle: Last Hope of Men unique: true side: Free Peoples culture: Gondor @@ -30,24 +30,22 @@ keywords: Valiant effects: [ { - type: modifier - modifier: { - type: FPCultureCount - requires: { - type: canSpot - count: 3 - filter: valiant,companion - } - amount: -1 + type: Trigger + trigger: { + type: StartOfTurn + } + optional: true + requires: { + type: CanSpot + filter: another,valiant,companion + } + effect: { + type: DrawCards + count: 1 } } { type: activated - requires: { - type: canSpot - count: 1 - filter: valiant,companion,inSkirmish - } phase: skirmish cost: { type: exert @@ -57,20 +55,11 @@ type: modifyStrength select: choose(valiant,companion,inSkirmish) memorize: chosenCompanion - amount: { - type: Conditional - requires: { - type: memoryMatches - memory: chosenCompanion - filter: Exhausted - } - true: 3 - false: 2 - } + amount: 2 } } ] - gametext: Valiant.
While you can spot 3 valiant companions, the number of free peoples cultures that can be counted is-1.
Skirmish: If a valiant companion is skirmishing a minion with a strength of 12 or higher, exert Aragorn to make that companion strength +2 (or +3 if that companion is exhausted). + gametext: Valiant.
At the start of each turn you may spot another valiant companion to draw a card. Skirmish: Exert Aragorn to make a skirmishing valiant companion strength +2. lore: "" promotext: "" alts: { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Isengard-playtest.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Isengard-playtest.hjson index 137afd765..09f708608 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Isengard-playtest.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Isengard-playtest.hjson @@ -144,11 +144,11 @@ type: If check: { type: CanSpot - filter: self,HasAnyCultureTokens(1) + filter: self,HasAnyCultureTokens(2) } true: { type: RemoveCultureTokens - count: 1 + count: 2 select: self } false: { @@ -162,7 +162,7 @@ } } ] - gametext: When you play this condition, spot a Wizard to add 2 [isengard] tokens here.
Each time an [isengard] Orc is defeated in a skirmish, add an [isengard] token here.
Skirmish: Discard this condition (or remove an [isengard] token here) to cancel a skirmish involving an [isengard] Orc. + gametext: When you play this condition, spot a Wizard to add 2 [isengard] tokens here.
Each time an [isengard] Orc is defeated in a skirmish, add an [isengard] token here.
Skirmish: Discard this condition (or remove 2 [isengard] tokens here) to cancel a skirmish involving an [isengard] Orc. lore: "" promotext: "" alts: { @@ -983,7 +983,7 @@ twilight: 8 type: Minion race: Uruk-hai - strength: 15 + strength: 17 vitality: 4 site: 5 keywords: Damage+1 @@ -1051,22 +1051,6 @@ vitality: 4 site: 4 effects: [ - { - type: modifier - modifier: { - type: cantTakeWounds - requires: [ - { - type: sarumanFirstSentenceActive - } - { - type: phase - phase: archery - } - ] - filter: self - } - } { type: modifier modifier: { @@ -1078,36 +1062,31 @@ } } { - type: Activated - phase: Regroup - cost: [ - { - type: Exert - select: self - times: 1 - } - { - type: Discard - select: choose(uruk-hai) - } - ] - effect: { - type: Preventable - text: Would you like to reinforce 2 {isengard} tokens on a machine to prevent {you} taking control of a site? - player: freeps - cost: { - type: ReinforceTokens - player: freeps - culture: isengard - select: choose(machine) - } - effect: { - type: TakeControlOfSite - } + type: modifier + modifier: { + type: cancelKeywordBonus + filter: companion,inSkirmishAgainst(culture(isengard),orc) + keyword: damage + } + } + { + type: Response + trigger: { + type: aboutToTakeWound + filter: culture(isengard),orc + } + cost: { + type: exert + select: self + } + effect: + { + type: preventWound + select: choose(culture(isengard),orc) } } ] - gametext: Saruman may not take wounds during the archery phase and may not be assigned to a skirmish.
Regroup: Exert Saruman and discard an [Isengard] Uruk-hai to take control of a site. The Free Peoples player may reinforce 2 [Isengard] tokens to prevent this. + gametext: Saruman may not be assigned to a skirmish.
Companions skirmishing [Isengard] Orcs lose all damage bonuses.
If an [isengard] Orc is about to take a wound, you may exert Saruman to prevent that wound. lore: "" promotext: "" alts: { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Sauron-playtest.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Sauron-playtest.hjson index 5450f3ab5..ad96bc75e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Sauron-playtest.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/setv02-Sauron-playtest.hjson @@ -506,7 +506,7 @@ twilight: 2 type: Minion race: Orc - strength: 5 + strength: 6 vitality: 2 site: 6 keywords: Tracker @@ -516,7 +516,7 @@ modifier: { type: modifystrength filter: self,siteNumber(0-1) - amount: 4 + amount: 5 } } ] diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelKeywordBonus.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelKeywordBonus.java index 0d20e6103..3bd0a1d39 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelKeywordBonus.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelKeywordBonus.java @@ -14,7 +14,7 @@ public class CancelKeywordBonus implements ModifierSourceProducer { final JSONObject[] conditionArray = FieldUtils.getObjectArray(object.get("requires"), "requires"); final String filter = FieldUtils.getString(object.get("filter"), "filter"); - final String from = FieldUtils.getString(object.get("from"), "from"); + final String from = FieldUtils.getString(object.get("from"), "from", "any"); Keyword keyword = FieldUtils.getEnum(Keyword.class, object.get("keyword"), "keyword"); if (keyword == null) diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_001_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_001_Tests.java index 7f4d0959d..4455f384e 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_001_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_001_Tests.java @@ -27,6 +27,16 @@ public class Card_V2_001_Tests put("hillman", "15_90"); put("runner", "1_178"); + + //Dwarf guards for companion count + put("fodder1", "1_7"); + put("fodder2", "1_7"); + put("fodder3", "1_7"); + put("fodder4", "1_7"); + put("fodder5", "1_7"); + put("fodder6", "1_7"); + put("fodder7", "1_7"); + put("fodder8", "1_7"); }}, GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FOTRFrodo, @@ -40,15 +50,14 @@ public class Card_V2_001_Tests /** * Set: V2 * Name: Driven into the Hills - * Unique: True + * Unique: False * Side: Shadow * Culture: Dunland * Twilight Cost: 1 * Type: Condition * Subtype: Support area * Game Text: To play, spot a [Dunland] minion. - * While the shadow has initiative, skip the archery phase. - * If the Free-Peoples player liberates a site, discard this condition. + * For each companion you can spot over 4, the Free Peoples player must have an additional card in hand to have initiative. */ var scn = GetScenario(); @@ -57,7 +66,7 @@ public class Card_V2_001_Tests assertEquals("Driven into the Hills", card.getBlueprint().getTitle()); assertNull(card.getBlueprint().getSubtitle()); - assertTrue(card.getBlueprint().isUnique()); + assertFalse(card.getBlueprint().isUnique()); assertEquals(Side.SHADOW, card.getBlueprint().getSide()); assertEquals(Culture.DUNLAND, card.getBlueprint().getCulture()); assertEquals(CardType.CONDITION, card.getBlueprint().getCardType()); @@ -88,97 +97,26 @@ public class Card_V2_001_Tests } @Test - public void DrivenSkipsArcheryPhaseIfShadowHasInitiative() throws DecisionResultInvalidException, CardNotFoundException { + public void DrivenMakesInitiativeTake5CardsWith5Companions() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup var scn = GetScenario(); var driven = scn.GetShadowCard("driven"); - var madman = scn.GetShadowCard("madman"); scn.ShadowMoveCardToSupportArea(driven); - scn.ShadowMoveCharToTable(madman); + + scn.FreepsMoveCharToTable("fodder1", "fodder2", "fodder3", "fodder4"); + scn.FreepsMoveCardToHand("driven", "madman", "freca", "hillman"); scn.StartGame(); - //cheating to give Shadow initiative - scn.ApplyAdHocModifier(new HasInitiativeModifier(null, null, Side.SHADOW)); - - scn.SkipToPhase(Phase.MANEUVER); - + assertEquals(4, scn.GetFreepsHandCount()); assertTrue(scn.ShadowHasInitiative()); - assertEquals(Phase.MANEUVER, scn.GetCurrentPhase()); + scn.FreepsMoveCardToHand("runner"); - scn.PassCurrentPhaseActions(); - - //Skipped archery entirely - assertEquals(Phase.ASSIGNMENT, scn.GetCurrentPhase()); - } - - @Test - public void DrivenDoesNotSkipsArcheryPhaseIfFreepsHasInitiative() throws DecisionResultInvalidException, CardNotFoundException { - //Pre-game setup - var scn = GetScenario(); - - var driven = scn.GetShadowCard("driven"); - var madman = scn.GetShadowCard("madman"); - scn.ShadowMoveCardToSupportArea(driven); - scn.ShadowMoveCharToTable(madman); - - scn.StartGame(); - - //cheating to give Freeps initiative, since there are too few cards in hand - scn.ApplyAdHocModifier(new HasInitiativeModifier(null, null, Side.FREE_PEOPLE)); - - scn.SkipToPhase(Phase.MANEUVER); - - assertFalse(scn.ShadowHasInitiative()); - assertEquals(Phase.MANEUVER, scn.GetCurrentPhase()); - - scn.PassCurrentPhaseActions(); - - //Did not skip archery - assertEquals(Phase.ARCHERY, scn.GetCurrentPhase()); - } - - @Test - public void DrivenSelfDiscardsWhenASiteIsLiberated() throws DecisionResultInvalidException, CardNotFoundException { - //Pre-game setup - var scn = GetScenario(); - - var driven = scn.GetShadowCard("driven"); - var madman = scn.GetShadowCard("madman"); - var hillman = scn.GetShadowCard("hillman"); - var freca = scn.GetShadowCard("freca"); - scn.ShadowMoveCardToSupportArea(driven); - - var site1 = scn.GetFreepsSite(1); - - scn.StartGame(); - - //Need to have sites controlled to liberate - scn.SkipToSite(3); - - scn.ShadowMoveCharToTable(hillman, madman); - scn.ShadowMoveCardToHand(freca); scn.FreepsPassCurrentPhaseAction(); - - scn.ShadowPlayCard(freca); - scn.ShadowAcceptOptionalTrigger(); - - assertTrue(scn.IsSiteControlled(site1)); - - scn.SkipToPhase(Phase.MANEUVER); - - assertTrue(scn.IsSiteControlled(site1)); - assertEquals(Zone.SUPPORT, driven.getZone()); - - scn.SkipToPhase(Phase.REGROUP); - - //Rapt Hillman gives Freeps the opportunity to liberate a site, - // and shadow can stop it (but we choose not to) - scn.FreepsAcceptOptionalTrigger(); - scn.ShadowChooseNo(); - - assertFalse(scn.IsSiteControlled(site1)); - assertEquals(Zone.DISCARD, driven.getZone()); + assertEquals(5, scn.GetFreepsHandCount()); + assertFalse(scn.ShadowHasInitiative()); } + + } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_003_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_003_Tests.java index 3a626aa50..2568fe91d 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_003_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_003_Tests.java @@ -42,7 +42,7 @@ public class Card_V2_003_Tests * Strength: 8 * Vitality: 1 * Site Number: 3 - * Game Text: While you have initiative, this minion is strength +1 and damage +1. + * Game Text: While you have initiative, this minion is strength +3 and damage +1. */ var scn = GetScenario(); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_016_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_016_Tests.java index 92b22ae13..ec8949066 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_016_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_016_Tests.java @@ -50,8 +50,8 @@ public class Card_V2_016_Tests * Resistance: 6 * Signet: Theoden * Game Text: Valiant. - * While you can spot 3 valiant companions, the number of free peoples cultures that can be counted is-1. - * Skirmish: If a valiant companion is skirmishing a minion with a strength of 12 or higher, exert Aragorn to make that companion strength +2 (or +3 if that companion is exhausted). + * At the start of each turn you may spot another valiant companion to draw a card. + * Skirmish: Exert Aragorn to make a valiant companion strength +2. */ var scn = GetScenario(); @@ -59,7 +59,7 @@ public class Card_V2_016_Tests var card = scn.GetFreepsCard("aragorn"); assertEquals("Aragorn", card.getBlueprint().getTitle()); - assertEquals("Last Hope Of Men", card.getBlueprint().getSubtitle()); + assertEquals("Last Hope of Men", card.getBlueprint().getSubtitle()); assertTrue(card.getBlueprint().isUnique()); assertEquals(Side.FREE_PEOPLE, card.getBlueprint().getSide()); assertEquals(Culture.GONDOR, card.getBlueprint().getCulture()); @@ -74,68 +74,51 @@ public class Card_V2_016_Tests } @Test - public void AragornReducesSpottableCulturesIf3ValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException { + public void AragornDrawsCardAtStartOfTurnIfOtherValiantCompanion() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup var scn = GetScenario(); var aragorn = scn.GetFreepsCard("aragorn"); var veowyn = scn.GetFreepsCard("veowyn"); - var vgamling = scn.GetFreepsCard("vgamling"); - var vrscout = scn.GetFreepsCard("vrscout"); - var gandalf = scn.GetFreepsCard("gandalf"); - scn.FreepsMoveCardToHand(aragorn, veowyn, gandalf, vgamling, vrscout); - - var grima = scn.GetShadowCard("grima"); - scn.ShadowMoveCharToTable(grima); + scn.FreepsMoveCharToTable(aragorn, veowyn); scn.StartGame(); - scn.FreepsPlayCard(aragorn); - scn.FreepsPlayCard(veowyn); - scn.FreepsPlayCard(gandalf); + assertEquals(0, scn.GetFreepsHandCount()); + assertTrue(scn.FreepsHasOptionalTriggerAvailable()); + scn.FreepsAcceptOptionalTrigger(); + assertEquals(1, scn.GetFreepsHandCount()); + } - //Shire, Gandalf, Rohan, Gondor - assertEquals(4, scn.GetFreepsCultureCount()); + @Test + public void AragornCannotDrawCardAtStartOfTurnIfNoOtherValiantCompanion() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); - scn.FreepsPlayCard(vgamling); //Now there are 3 valiants + var aragorn = scn.GetFreepsCard("aragorn"); + scn.FreepsMoveCharToTable(aragorn); - //Shire, Gandalf, Rohan, Gondor, -1 - assertEquals(3, scn.GetFreepsCultureCount()); + scn.StartGame(); - scn.SkipToPhase(Phase.MANEUVER); - scn.FreepsPassCurrentPhaseAction(); - - //Grima now can't see 4 cultures - assertFalse(scn.ShadowActionAvailable(grima)); + assertEquals(0, scn.GetFreepsHandCount()); + assertFalse(scn.FreepsHasOptionalTriggerAvailable()); } @Test - public void ExertsToBoostValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException { + public void AragornExertsToBoostValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup var scn = GetScenario(); var aragorn = scn.GetFreepsCard("aragorn"); var veowyn = scn.GetFreepsCard("veowyn"); - scn.FreepsMoveCardToHand(aragorn, veowyn); + scn.FreepsMoveCharToTable(aragorn, veowyn); var twk = scn.GetShadowCard("twk"); - scn.ShadowMoveCardToHand(twk); + scn.ShadowMoveCharToTable(twk); scn.StartGame(); - // Play Aragorn - scn.FreepsPlayCard(aragorn); - assertEquals(4, scn.GetTwilight()); - - // Play companions of two additional (non-gondor, non-shire) cultures to get to 4 total to spot - scn.FreepsPlayCard(veowyn); - - // Get the game state to where Grima is on the table and it's the shadow player's turn during the maneuver phase - scn.SkipToPhase(Phase.SHADOW); - - scn.ShadowPlayCard(twk); - scn.SkipToPhase(Phase.ASSIGNMENT); scn.PassCurrentPhaseActions(); @@ -144,56 +127,27 @@ public class Card_V2_016_Tests assertTrue(scn.FreepsActionAvailable(aragorn)); assertEquals(0, scn.GetWoundsOn(aragorn)); - assertEquals(0, scn.GetWoundsOn(veowyn)); assertEquals(6, scn.GetStrength(veowyn)); scn.FreepsUseCardAction(aragorn); assertEquals(1, scn.GetWoundsOn(aragorn)); - assertEquals(0, scn.GetWoundsOn(veowyn)); - // strength +2 because Eowyn isn't exhausted assertEquals(8, scn.GetStrength(veowyn)); - - // Wound Eowyn twice and have the shadow player pass their skirmish action - scn.AddWoundsToChar(veowyn, 2); - scn.ShadowPassCurrentPhaseAction(); - - assertTrue(scn.FreepsActionAvailable(aragorn)); - assertEquals(1, scn.GetWoundsOn(aragorn)); - assertEquals(2, scn.GetWoundsOn(veowyn)); - assertEquals(8, scn.GetStrength(veowyn)); - - scn.FreepsUseCardAction(aragorn); - assertEquals(2, scn.GetWoundsOn(aragorn)); - assertEquals(2, scn.GetWoundsOn(veowyn)); - // strength +3 because Eowyn isn't exhausted, now all she needs is Merry with a dagger to help her out - assertEquals(11, scn.GetStrength(veowyn)); } @Test - public void CantExertToBoostNonValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException { + public void AragornCantExertToBoostNonValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup var scn = GetScenario(); var aragorn = scn.GetFreepsCard("aragorn"); var gandalf = scn.GetFreepsCard("gandalf"); - scn.FreepsMoveCardToHand(aragorn, gandalf); + scn.FreepsMoveCharToTable(aragorn, gandalf); var twk = scn.GetShadowCard("twk"); - scn.ShadowMoveCardToHand(twk); + scn.ShadowMoveCharToTable(twk); scn.StartGame(); - // Play Aragorn - scn.FreepsPlayCard(aragorn); - assertEquals(4, scn.GetTwilight()); - - scn.FreepsPlayCard(gandalf); - - // Get the game state to where Grima is on the table and it's the shadow player's turn during the maneuver phase - scn.SkipToPhase(Phase.SHADOW); - - scn.ShadowPlayCard(twk); - scn.SkipToPhase(Phase.ASSIGNMENT); scn.PassCurrentPhaseActions(); @@ -201,6 +155,12 @@ public class Card_V2_016_Tests scn.FreepsResolveSkirmish(gandalf); // Despite all evidence to the contrary, Gandalf isn't valiant so shouldn't be boostable - assertFalse(scn.FreepsActionAvailable(aragorn)); + assertTrue(scn.FreepsActionAvailable(aragorn)); + assertEquals(0, scn.GetWoundsOn(aragorn)); + assertEquals(8, scn.GetStrength(gandalf)); + + scn.FreepsUseCardAction(aragorn); + assertEquals(1, scn.GetWoundsOn(aragorn)); + assertEquals(8, scn.GetStrength(gandalf)); } } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_021_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_021_Tests.java index 9cbe84bc3..8ccf3d125 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_021_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_021_Tests.java @@ -40,8 +40,8 @@ public class Card_V2_021_Tests * Type: Condition * Subtype: Support area * Game Text: When you play this condition, spot a Wizard to add 2 [isengard] tokens here. - * Each time an [isengard] Orc is defeated in a skirmish, add an [isengard] token here. - * Skirmish: Discard this condition (or remove an [isengard] token here) to cancel a skirmish involving an [isengard] Orc. + * Each time an [isengard] Orc is defeated in a skirmish, add an [isengard] token here. + * Skirmish: Discard this condition (or remove two [isengard] tokens here) to cancel a skirmish involving an [isengard] Orc. */ var scn = GetScenario(); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_033_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_033_Tests.java index ac4309728..9a7562c4b 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_033_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_033_Tests.java @@ -39,7 +39,7 @@ public class Card_V2_033_Tests * Twilight Cost: 8 * Type: Minion * Subtype: Uruk-hai - * Strength: 15 + * Strength: 17 * Vitality: 4 * Site Number: 5 * Game Text: Damage +1. @@ -61,7 +61,7 @@ public class Card_V2_033_Tests assertTrue(scn.hasKeyword(card, Keyword.DAMAGE)); assertEquals(1, scn.GetKeywordCount(card, Keyword.DAMAGE)); assertEquals(8, card.getBlueprint().getTwilightCost()); - assertEquals(15, card.getBlueprint().getStrength()); + assertEquals(17, card.getBlueprint().getStrength()); assertEquals(4, card.getBlueprint().getVitality()); assertEquals(5, card.getBlueprint().getSiteNumber()); } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_034_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_034_Tests.java index 97ef98f29..af79fa7e1 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_034_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_034_Tests.java @@ -42,8 +42,9 @@ public class Card_V2_034_Tests * Strength: 8 * Vitality: 4 * Site Number: 4 - * Game Text: Saruman may not take wounds during the archery phase and may not be assigned to a skirmish. - * Regroup: Exert Saruman and discard an [Isengard] Uruk-hai to take control of a site. The Free Peoples player may reinforce 2 [Isengard] tokens to prevent this. + * Game Text: Saruman may not be assigned to a skirmish. + * Companions skirmishing [Isengard] orcs lose all damage bonuses. + * If an [isengard] orc is about to take a wound, you may exert Saruman to prevent this. */ var scn = GetScenario(); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_062_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_062_Tests.java index 43bad5ce9..16fcae032 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_062_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_062_Tests.java @@ -39,11 +39,11 @@ public class Card_V2_062_Tests * Twilight Cost: 2 * Type: Minion * Subtype: Orc - * Strength: 5 + * Strength: 6 * Vitality: 2 * Site Number: 6 * Game Text: Tracker. - * If this minion's site number is 1 or less, it is strength +4. + * If this minion's site number is 1 or less, it is strength +5. */ var scn = GetScenario(); @@ -59,7 +59,7 @@ public class Card_V2_062_Tests assertEquals(Race.ORC, card.getBlueprint().getRace()); assertTrue(scn.hasKeyword(card, Keyword.TRACKER)); assertEquals(2, card.getBlueprint().getTwilightCost()); - assertEquals(5, card.getBlueprint().getStrength()); + assertEquals(6, card.getBlueprint().getStrength()); assertEquals(2, card.getBlueprint().getVitality()); assertEquals(6, card.getBlueprint().getSiteNumber()); }