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 555d9539f..6c980a0d4 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 @@ -962,7 +962,7 @@ var PCCards = { // Saelbeth, Elven Councilor (3U25) [Errata] '53_25' : 'https://i.lotrtcgpc.net/errata/LOTR-EN03E025.2_card.jpg', // Gandalf, Lathspell (V213) [Errata] - '102_13' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2E013.1_card.jpg', + //'102_13' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2E013.1_card.jpg', // Now for Wrath (V251) [Errata] '102_51' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2E051.1_card.jpg', // Demands of the Sackville-Bagginses (2C40) [Errata] @@ -972,7 +972,7 @@ var PCCards = { // Rivendell Gateway (V1U59) [Errata] '101_59' : 'https://i.lotrtcgpc.net/sets/vset1/LOTR-ENV1E059.1_card.jpg', // Gandalf's Staff, Old Man's Crutch (V2_77) - '102_77' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S077.0_card.jpg', + //'102_77' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2S077.0_card.jpg', // Goblin Archer (1R172) [Errata] '51_172' : 'https://i.lotrtcgpc.net/errata/LOTR-EN01E172.1_card.jpg', // Shadowfax, Greatest of the Mearas (17R24) [Errata] @@ -987,6 +987,20 @@ var PCCards = { // FA Sam, Great Elf Warrior '10_129': 'https://i.lotrtcgpc.net/promos/LOTR-EN10U122.0_card.jpg', // July 2025 WC Circuit: FA Mumak Commander, GATS - '15_211': 'https://i.lotrtcgpc.net/promos/LOTR-EN15U086.0_card.jpg' + '15_211': 'https://i.lotrtcgpc.net/promos/LOTR-EN15U086.0_card.jpg', + + // 2025 Pre-WC Errata + // Foul Creation (1U44) [Errata] + '51_44' : 'https://i.lotrtcgpc.net/errata/LOTR-EN01E044.1_card.jpg', + // Denethor, Lord of Minas Tirith (10R28) [Errata] + '60_28' : 'https://i.lotrtcgpc.net/errata/LOTR-EN10E028.2_card.jpg', + // Merry, Horticulturalist (2C104) [Errata] + '52_104' : 'https://i.lotrtcgpc.net/errata/LOTR-EN02E104.2_card.jpg', + // Uruk Raider (3C74) [Errata] + '53_74' : 'https://i.lotrtcgpc.net/errata/LOTR-EN03E074.2_card.jpg', + // Gandalf, Lathspell (V213) [Errata] + '102_13' : 'https://i.lotrtcgpc.net/sets/V2/LOTR-ENV2E013.2_card.jpg', + // Gandalf's Staff, Old Man's Crutch (V277) [Errata] + '102_77' : 'https://i.lotrtcgpc.net/sets/V2/LOTR-ENV2E077.1_card.jpg' } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Rohan.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Rohan.hjson index 11ccd78ff..e330253d0 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Rohan.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Rohan.hjson @@ -407,13 +407,33 @@ culture: Rohan twilight: 0 type: Event - timewords: Regroup + timewords: [ + Maneuver + Regroup + ] effects: [ { type: event - requires: { - type: canSpot - filter: culture(rohan),man + cost: { + type: If + check: { + type: Phase + phase: Maneuver + } + true: [ + { + type: Exert + select: choose(Culture(Rohan), Man, MinResistance(3), CanExert) + } + { + type: Spot + filter: culture(Rohan),Man + } + ] + false: { + type: Spot + filter: culture(Rohan),Man + } } effect: [ { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set01/set01-Elven-errata.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set01/set01-Elven-errata.hjson index 16151748d..75415b510 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set01/set01-Elven-errata.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set01/set01-Elven-errata.hjson @@ -290,6 +290,65 @@ } } } + + 51_44: { + cardInfo: { + //id: 51_44.1 + parent: 1_44 + variant: ERRATA + variantPath: errata/pc + revision: 1 + image: errata/LOTR-EN01E044.1_card.jpg + collInfo: 1U44 + rarity: U + } + title: Foul Creation + unique: false + side: Free Peoples + culture: Elven + twilight: 1 + type: Event + timewords: Fellowship + effects: { + type: event + cost: { + type: exert + select: choose(elf) + } + effect: [ + { + type: revealHand + hand: shadowPlayer + memorize: revealedCards + } + { + type: If + check: { + type: MemoryMatches + memory: revealedCards + filter: culture(isengard),minion + } + true: { + type: optional + text: Would you like to draw 2 cards? + effect: { + type: drawCards + count: 2 + } + } + } + ] + } + gametext: Fellowship: Exert an Elf to reveal an opponent's hand. You may draw 2 cards if an [isengard] minion was revealed. + lore: "Saruman's Uruk-hai mirrored the singular focus of their master, viewing with contempt and disgust all they encountered." + promotext: "" + alts: { + promos: { + } + errata: { + } + } + } 51_45: { cardInfo: { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set02/set02-Shire-errata.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set02/set02-Shire-errata.hjson index f6531b7be..0519728d3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set02/set02-Shire-errata.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set02/set02-Shire-errata.hjson @@ -48,14 +48,64 @@ } } + # 52_104: { + # cardInfo: { + # //id: 2_104.1 + # parent: 2_104 + # variant: ERRATA + # variantPath: errata/pc + # revision: 1 + # image: errata/LOTR-EN02E104.1_card.jpg + # collInfo: 2C104 + # rarity: C + # } + # title: Merry + # subtitle: Horticulturalist + # unique: true + # side: Free Peoples + # culture: Shire + # twilight: 1 + # type: Companion + # race: Hobbit + # strength: 3 + # vitality: 4 + # signet: Gandalf + # resistance: 6 + # effects: { + # type: activated + # limitPerTurn: 1 + # phase: fellowship + # cost: { + # type: exert + # select: self + # } + # effect: { + # type: PutCardsFromDeckIntoHand + # select: choose(culture(shire),ally) + # reveal: true + # showAll: true + # shuffle: true + # } + # } + # gametext: Fellowship: Exert Merry to take a [shire] ally into hand from your draw deck (limit once per turn). + # lore: "'Ow... I think I've broken something.'" + # promotext: "" + # alts: { + # promos: { + # } + # errata: { + # } + # } + # } + 52_104: { cardInfo: { - //id: 2_104.1 + //id: 52_104.2 parent: 2_104 variant: ERRATA variantPath: errata/pc - revision: 1 - image: errata/LOTR-EN02E104.1_card.jpg + revision: 2 + image: errata/LOTR-EN02E104.2_card.jpg collInfo: 2C104 rarity: C } @@ -81,13 +131,13 @@ } effect: { type: PutCardsFromDeckIntoHand - select: choose(culture(shire),ally) + select: choose(Hobbit,ally) reveal: true showAll: true shuffle: true } } - gametext: Fellowship: Exert Merry to take a [shire] ally into hand from your draw deck (limit once per turn). + gametext: Fellowship: Exert Merry to take a Hobbit ally into hand from your draw deck (limit once per turn). lore: "'Ow... I think I've broken something.'" promotext: "" alts: { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set03/set03-Isengard-errata.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set03/set03-Isengard-errata.hjson index df0a33c51..7b37358b6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set03/set03-Isengard-errata.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set03/set03-Isengard-errata.hjson @@ -594,14 +594,97 @@ } } + # 53_74: { + # cardInfo: { + # //id: 53_74.1 + # parent: 3_74 + # variant: ERRATA + # variantPath: errata/pc + # revision: 1 + # image: errata/LOTR-EN03E074.1_card.jpg + # collInfo: 3C74 + # rarity: C + # } + # title: Uruk Raider + # unique: false + # side: Shadow + # culture: Isengard + # twilight: 2 + # type: Minion + # race: Uruk-hai + # strength: 6 + # vitality: 2 + # site: 5 + # keywords: [ + # Tracker + # Damage+1 + # ] + # effects: [ + # { + # type: modifier + # modifier: { + # type: modifyStrength + # requires: { + # type: hasCardInDeadPile + # filter: ally + # } + # filter: self + # amount: 3 + # } + # } + # { + # type: modifier + # modifier: { + # type: addKeyword + # requires: { + # type: hasCardInDeadPile + # filter: ally + # } + # filter: self + # keyword: fierce + # } + # } + # { + # type: Trigger + # optional: true + # trigger: { + # type: Exerted + # filter: ally + # memorize: exertedAlly + # } + # requires: { + # type: CanSpot + # filter: culture(isengard),another + # } + # cost: { + # type: Exert + # select: self + # } + # effect: { + # type: Wound + # select: memory(exertedAlly) + # } + # } + # ] + # gametext: Tracker. Damage +1.
While an ally is in the dead pile, this minion is strength +3 and fierce.
Each time an ally exerts, you may spot another [isengard] card and exert this minion to wound that ally. + # lore: "'There is no safety where Saruman's emblem is shown.'" + # promotext: "" + # alts: { + # promos: { + # } + # errata: { + # } + # } + # } + 53_74: { cardInfo: { - //id: 53_74.1 + //id: 53_74.2 parent: 3_74 variant: ERRATA variantPath: errata/pc - revision: 1 - image: errata/LOTR-EN03E074.1_card.jpg + revision: 2 + image: errata/LOTR-EN03E074.2_card.jpg collInfo: 3C74 rarity: C } @@ -615,10 +698,7 @@ strength: 6 vitality: 2 site: 5 - keywords: [ - Tracker - Damage+1 - ] + keywords: Tracker effects: [ { type: modifier @@ -641,7 +721,7 @@ filter: ally } filter: self - keyword: fierce + keyword: damage+1 } } { @@ -666,7 +746,7 @@ } } ] - gametext: Tracker. Damage +1.
While an ally is in the dead pile, this minion is strength +3 and fierce.
Each time an ally exerts, you may spot another [isengard] card and exert this minion to wound that ally. + gametext: Tracker.
While an ally is in the dead pile, this minion is strength +3 and damage +1.
Each time an ally exerts, you may spot another [isengard] card and exert this minion to wound that ally. lore: "'There is no safety where Saruman's emblem is shown.'" promotext: "" alts: { @@ -676,4 +756,5 @@ } } } + } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set10/set10-Gondor-errata.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set10/set10-Gondor-errata.hjson index d69ee3db3..f63cddb48 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set10/set10-Gondor-errata.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/errata/set10/set10-Gondor-errata.hjson @@ -1,9 +1,85 @@ { + # 60_28: { + # cardInfo: { + # //id: 60_28.1 + # revision: 1 + # image: errata/LOTR-EN10E028.1_card.jpg + # collInfo: 10R28 + # rarity: R + # } + # title: Denethor + # subtitle: Lord of Minas Tirith + # unique: true + # side: Free Peoples + # culture: Gondor + # twilight: 2 + # type: Companion + # race: Man + # strength: 5 + # vitality: 3 + # signet: Aragorn + # resistance: 6 + # effects: [ + # { + # type: toPlay + # requires: { + # type: canSpot + # filter: culture(gondor),man + # count: 2 + # } + # } + # { + # type: activated + # phase: fellowship + # requires: { + # type: location + # filter: sanctuary + # } + # cost: { + # type: exert + # select: self + # } + # effect: [ + # { + # type: putCardsFromDeckIntoHand + # select: choose(culture(gondor),or(condition, item)) + # reveal: true + # shuffle: true + # showAll: true + # } + # { + # type: optional + # player: shadow + # text: Would you like to draw a card? + # effect: { + # type: drawCards + # player: shadow + # count: 1 + # } + # } + # ] + # } + # ] + # gametext: To play, spot 2 [gondor] Men.
Fellowship: If at a sanctuary, exert Denethor to take a [gondor] condition or item into hand from your draw deck. Choose an opponent who may draw 2 cards. + # lore: "There Denethor sat in a grey gloom, like an old patient spider...." + # promotext: "" + # alts: { + # promos: { + # } + # errata: { + # } + # } + # } + + 60_28: { cardInfo: { - //id: 60_28.1 - revision: 1 - image: errata/LOTR-EN10E028.1_card.jpg + //id: 60_28.2 + parent: 10_28 + variant: ERRATA + variantPath: errata/pc + revision: 2 + image: errata/LOTR-EN10E028.2_card.jpg collInfo: 10R28 rarity: R } @@ -15,7 +91,7 @@ twilight: 2 type: Companion race: Man - strength: 5 + strength: 8 vitality: 3 signet: Aragorn resistance: 6 @@ -60,7 +136,7 @@ ] } ] - gametext: To play, spot 2 [gondor] Men.
Fellowship: If at a sanctuary, exert Denethor to take a [gondor] condition or item into hand from your draw deck. Choose an opponent who may draw 2 cards. + gametext: To play, spot 2 [gondor] Men.
Fellowship: If at a sanctuary, exert Denethor to take a [gondor] item or condition into hand from your draw deck. Choose an opponent who may draw a card. lore: "There Denethor sat in a grey gloom, like an old patient spider...." promotext: "" alts: { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/V2-Gandalf.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/V2-Gandalf.hjson index 642bcaf28..48c375643 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/V2-Gandalf.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV02/V2-Gandalf.hjson @@ -77,11 +77,88 @@ # } # } + # 102_13: { + # cardInfo: { + # //id: 102_13 + # image: sets/V2/LOTR-ENV2S013.1_card.jpg + # collInfo: V2_13 + # rarity: _ + # } + # title: Gandalf + # subtitle: Lathspell + # unique: true + # side: Free Peoples + # culture: Gandalf + # twilight: 4 + # type: Companion + # race: Wizard + # strength: 7 + # vitality: 4 + # signet: Theoden + # resistance: 6 + # effects: [ + # { + # type: Modifier + # modifier: { + # type: AddKeyword + # keyword: valiant + # filter: companion,mounted + # } + # } + # { + # type: Trigger + # optional: true + # trigger: { + # type: UsesSpecialAbility + # filter: minion + # memorize: activatedMinion + # } + # requires: { + # type: not + # requires: { + # type: phase + # phase: skirmish + # } + # } + # cost: [ + # { + # type: Spot + # count: 3 + # filter: valiant, companion + # } + # { + # type: Exert + # select: self + # times: 1 + # } + # ] + # effect: [ + # { + # type: cancelSpecialAbility + # } + # ] + # } + # ] + # gametext: Each mounted companion gains valiant.
Response: If a minion's special ability is used (except during a skirmish), spot 3 valiant companions and exert Gandalf to prevent that. + # lore: "'No counsel have I to give to those that despair. Yet counsel I could give, and words I could speak to you.'" + # promotext: "" + # alts: { + # promos: { + # } + # errata: { + # } + # } + # } + 102_13: { cardInfo: { - //id: 102_13 - image: sets/V2/LOTR-ENV2S013.0_card.jpg - collInfo: V2_13 + //id: 102_13.2 + parent: 102_13 + variant: ERRATA + variantPath: errata/pc + revision: 2 + image: sets/V2/LOTR-ENV2E013.2_card.jpg + collInfo: V213 rarity: _ } title: Gandalf @@ -129,17 +206,22 @@ { type: Exert select: self - times: 1 + times: 2 } ] effect: [ { type: cancelSpecialAbility } + { + type: Exert + select: memory(activatedMinion) + times: 1 + } ] } ] - gametext: Each mounted companion gains valiant.
Response: If a minion's special ability is used (except during a skirmish), spot 3 valiant companions and exert Gandalf to prevent that. + gametext: Each mounted companion gains valiant.
Response: If a minion's special ability is used, spot 3 valiant companions and exert Gandalf twice to prevent that and exert that minion. lore: "'No counsel have I to give to those that despair. Yet counsel I could give, and words I could speak to you.'" promotext: "" alts: { @@ -149,7 +231,7 @@ } } } - + 102_14: { cardInfo: { //id: 102_14 @@ -199,14 +281,81 @@ } } + # 102_77: { + # cardInfo: { + # //id: 102_77.0 + # parent: 102_77 + # variant: ERRATA + # variantPath: errata/pc + # revision: 0 + # image: sets/V2/LOTR-ENV2S077.0_card.jpg + # collInfo: V277 + # rarity: _ + # } + # title: Gandalf's Staff + # subtitle: Old Man's Crutch + # unique: true + # side: Free Peoples + # culture: Gandalf + # twilight: 2 + # type: Artifact + # vitality: 1 + # itemclass: Staff + # target: title(Gandalf) + # effects: [ + # { + # type: Trigger + # optional: false + # trigger: { + # type: ConstantlyCheck + # requires: [ + # { + # type: canSpot + # filter: weapon,attachedTo(bearer) + # } + # ] + # } + # effect: { + # type: discard + # select: all(weapon,attachedTo(bearer)) + # } + # } + # { + # type: Trigger + # optional: true + # limitPerPhase: 1 + # trigger: { + # type: Exerted + # filter: bearer + # source: side(freeps) + # } + # effect: [ + # { + # type: Wound + # select: choose(minion) + # } + # ] + # } + # ] + # gametext: Bearer must be Gandalf.
Discard any weapon he bears.
Each time Gandalf is exerted by a Free Peoples card, you may wound a minion (limit once per phase). + # lore: "'The staff in the hand of a wizard may be more than a prop for age.'" + # promotext: "" + # alts: { + # promos: { + # } + # errata: { + # } + # } + # } + 102_77: { cardInfo: { - //id: 102_77.0 + //id: 102_77.1 parent: 102_77 variant: ERRATA variantPath: errata/pc - revision: 0 - image: sets/V2/LOTR-ENV2S077.0_card.jpg + revision: 1 + image: sets/V2/LOTR-ENV2E077.1_card.jpg collInfo: V277 rarity: _ } @@ -241,7 +390,7 @@ { type: Trigger optional: true - limitPerPhase: 1 + limitPerTurn: 1 trigger: { type: Exerted filter: bearer @@ -249,13 +398,13 @@ } effect: [ { - type: Wound - select: choose(minion) + type: Heal + select: bearer } ] } ] - gametext: Bearer must be Gandalf.
Discard any weapon he bears.
Each time Gandalf is exerted by a Free Peoples card, you may wound a minion (limit once per phase). + gametext: Bearer must be Gandalf.
Discard any weapon he bears.
Response: If Gandalf is exerted by a Free Peoples card, heal him (limit once per turn). lore: "'The staff in the hand of a wizard may be more than a prop for age.'" promotext: "" alts: { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/lotrFormats.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/lotrFormats.hjson index c537540a5..c602c92f0 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/lotrFormats.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/lotrFormats.hjson @@ -167,11 +167,11 @@ hall: false # Fill this up with the current batch of errata for it to show up on the playtest server. valid: [ - "51_172", - "52_40", - "53_14", "53_20", "53_25", "53_74", "53_85", - "101_59", - "102_13", "102_51", "102_77" + "51_44", + "52_104", + "53_74", + "60_28", + "102_13", "102_77" ] sets: [ 100 diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set01/Card_01_044_ErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set01/Card_01_044_ErrataTests.java new file mode 100644 index 000000000..776eea172 --- /dev/null +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set01/Card_01_044_ErrataTests.java @@ -0,0 +1,85 @@ +package com.gempukku.lotro.cards.unofficial.pc.errata.set01; + +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Side; +import com.gempukku.lotro.common.Timeword; +import com.gempukku.lotro.framework.VirtualTableScenario; +import com.gempukku.lotro.game.CardNotFoundException; +import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; +import org.junit.Test; + +import java.util.HashMap; + +import static org.junit.Assert.*; + +public class Card_01_044_ErrataTests +{ + + protected VirtualTableScenario GetScenario() throws CardNotFoundException, DecisionResultInvalidException { + return new VirtualTableScenario( + new HashMap<>() + {{ + put("card", "51_44"); + // put other cards in here as needed for the test case + }}, + VirtualTableScenario.FellowshipSites, + VirtualTableScenario.FOTRFrodo, + VirtualTableScenario.RulingRing + ); + } + + @Test + public void FoulCreationStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException { + + /** + * Set: 1 + * Name: Foul Creation + * Unique: false + * Side: Free Peoples + * Culture: Elven + * Twilight Cost: 1 + * Type: Event + * Subtype: Fellowship + * Game Text: Fellowship: Exert an Elf to reveal an opponent's hand. If an [isengard] minion was revealed, you may draw 2 cards. + */ + + var scn = GetScenario(); + + var card = scn.GetFreepsCard("card"); + + assertEquals("Foul Creation", card.getBlueprint().getTitle()); + assertNull(card.getBlueprint().getSubtitle()); + assertFalse(card.getBlueprint().isUnique()); + assertEquals(Side.FREE_PEOPLE, card.getBlueprint().getSide()); + assertEquals(Culture.ELVEN, card.getBlueprint().getCulture()); + assertEquals(CardType.EVENT, card.getBlueprint().getCardType()); + assertTrue(scn.HasTimeword(card, Timeword.FELLOWSHIP)); + assertEquals(1, card.getBlueprint().getTwilightCost()); + } + + // Uncomment any @Test markers below once this is ready to be used + //@Test + public void FoulCreationTest1() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var card = scn.GetFreepsCard("card"); + scn.MoveCardsToHand(card); + //scn.MoveCompanionsToTable(card); + scn.MoveCardsToSupportArea(card); + scn.MoveCardsToDiscard(card); + scn.MoveCardsToTopOfDeck(card); + + //var card = scn.GetShadowCard("card"); + scn.MoveCardsToHand(card); + scn.MoveMinionsToTable(card); + scn.MoveCardsToSupportArea(card); + scn.MoveCardsToDiscard(card); + scn.MoveCardsToTopOfDeck(card); + + scn.StartGame(); + + assertFalse(true); + } +} diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set02/Card_02_104_ErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set02/Card_02_104_ErrataTests.java index 2cdc6d633..99b56ed8a 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set02/Card_02_104_ErrataTests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set02/Card_02_104_ErrataTests.java @@ -1,9 +1,8 @@ package com.gempukku.lotro.cards.unofficial.pc.errata.set02; -import com.gempukku.lotro.framework.VirtualTableScenario; import com.gempukku.lotro.common.*; +import com.gempukku.lotro.framework.VirtualTableScenario; import com.gempukku.lotro.game.CardNotFoundException; -import com.gempukku.lotro.game.PhysicalCardImpl; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; @@ -33,7 +32,7 @@ public class Card_02_104_ErrataTests /** * Set: 2 * Name: Merry, Horticulturalist - * Unique: True + * Unique: true * Side: Free Peoples * Culture: Shire * Twilight Cost: 1 @@ -43,7 +42,7 @@ public class Card_02_104_ErrataTests * Vitality: 4 * Resistance: 6 * Signet: Gandalf - * Game Text: Fellowship: Exert Merry to take a [shire] ally into hand from your draw deck (limit once per turn). + * Game Text: Fellowship: Exert Merry to take a Hobbit ally into hand from your draw deck (limit once per turn). */ var scn = GetScenario(); @@ -72,10 +71,20 @@ public class Card_02_104_ErrataTests var card = scn.GetFreepsCard("card"); scn.MoveCardsToHand(card); + //scn.MoveCompanionsToTable(card); + scn.MoveCardsToSupportArea(card); + scn.MoveCardsToDiscard(card); + scn.MoveCardsToTopOfDeck(card); + + //var card = scn.GetShadowCard("card"); + scn.MoveCardsToHand(card); + scn.MoveMinionsToTable(card); + scn.MoveCardsToSupportArea(card); + scn.MoveCardsToDiscard(card); + scn.MoveCardsToTopOfDeck(card); scn.StartGame(); - scn.FreepsPlayCard(card); - - assertEquals(1, scn.GetTwilight()); + + assertFalse(true); } } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_074_ErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_074_ErrataTests.java index 3feb9d8e1..1642bb2f8 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_074_ErrataTests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_074_ErrataTests.java @@ -1,7 +1,7 @@ package com.gempukku.lotro.cards.unofficial.pc.errata.set03; -import com.gempukku.lotro.framework.VirtualTableScenario; import com.gempukku.lotro.common.*; +import com.gempukku.lotro.framework.VirtualTableScenario; import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; @@ -34,7 +34,7 @@ public class Card_03_074_ErrataTests /** * Set: 3 * Name: Uruk Raider - * Unique: False + * Unique: false * Side: Shadow * Culture: Isengard * Twilight Cost: 2 @@ -43,8 +43,8 @@ public class Card_03_074_ErrataTests * Strength: 6 * Vitality: 2 * Site Number: 5 - * Game Text: Tracker. Damage +1. - * While an ally is in the dead pile, this minion is strength +3 and fierce. + * Game Text: Tracker. + * While an ally is in the dead pile, this minion is strength +3 and damage +1. * Each time an ally exerts, you may spot another [isengard] card and exert this minion to wound that ally. */ @@ -60,8 +60,6 @@ public class Card_03_074_ErrataTests assertEquals(CardType.MINION, card.getBlueprint().getCardType()); assertEquals(Race.URUK_HAI, card.getBlueprint().getRace()); assertTrue(scn.HasKeyword(card, Keyword.TRACKER)); - assertTrue(scn.HasKeyword(card, Keyword.DAMAGE)); - assertEquals(1, scn.GetKeywordCount(card, Keyword.DAMAGE)); assertEquals(2, card.getBlueprint().getTwilightCost()); assertEquals(6, card.getBlueprint().getStrength()); assertEquals(2, card.getBlueprint().getVitality()); @@ -83,13 +81,13 @@ public class Card_03_074_ErrataTests assertEquals(Zone.HAND, rosie.getZone()); assertEquals(6, scn.GetStrength(raider)); - assertFalse(scn.HasKeyword(raider, Keyword.FIERCE)); + assertFalse(scn.HasKeyword(raider, Keyword.DAMAGE)); scn.MoveCardsToDeadPile(rosie); assertEquals(Zone.DEAD, rosie.getZone()); assertEquals(9, scn.GetStrength(raider)); - assertTrue(scn.HasKeyword(raider, Keyword.FIERCE)); + assertTrue(scn.HasKeyword(raider, Keyword.DAMAGE)); } @Test @@ -171,30 +169,4 @@ public class Card_03_074_ErrataTests assertEquals(Zone.DEAD, rosie.getZone()); assertEquals(1, scn.GetWoundsOn(raider)); } - - // Uncomment any @Test markers below once this is ready to be used - //@Test - public void UrukRaiderTest1() throws DecisionResultInvalidException, CardNotFoundException { - //Pre-game setup - var scn = GetScenario(); - -// var card = scn.GetFreepsCard("card"); -// scn.MoveCardsToHand(card); -// scn.MoveCompanionToTable(card); -// scn.MoveCardsToSupportArea(card); -// scn.MoveCardToDiscard(card); -// scn.MoveCardsToTopOfDeck(card); - - var card = scn.GetShadowCard("card"); - scn.MoveCardsToHand(card); - scn.MoveMinionsToTable(card); - scn.MoveCardsToSupportArea(card); - scn.MoveCardsToDiscard(card); - scn.MoveCardsToTopOfDeck(card); - - scn.StartGame(); - scn.FreepsPlayCard(card); - - assertEquals(2, scn.GetTwilight()); - } } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_074_ErrataTests.java.old b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_074_ErrataTests.java.old new file mode 100644 index 000000000..fb2e0158c --- /dev/null +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_074_ErrataTests.java.old @@ -0,0 +1,201 @@ +package com.gempukku.lotro.cards.unofficial.pc.errata.set03; + +import com.gempukku.lotro.framework.VirtualTableScenario; +import com.gempukku.lotro.common.*; +import com.gempukku.lotro.game.CardNotFoundException; +import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; +import org.junit.Test; + +import java.util.HashMap; + +import static org.junit.Assert.*; + + +public class Card_03_074_ErrataTests +{ + + protected VirtualTableScenario GetScenario() throws CardNotFoundException, DecisionResultInvalidException { + return new VirtualTableScenario( + new HashMap<>() + {{ + put("raider", "53_74"); + put("demands", "2_40"); + + put("rosie", "1_309"); + }}, + VirtualTableScenario.FellowshipSites, + VirtualTableScenario.FOTRFrodo, + VirtualTableScenario.RulingRing + ); + } + + @Test + public void UrukRaiderStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException { + + /** + * Set: 3 + * Name: Uruk Raider + * Unique: False + * Side: Shadow + * Culture: Isengard + * Twilight Cost: 2 + * Type: Minion + * Subtype: Uruk-hai + * Strength: 6 + * Vitality: 2 + * Site Number: 5 + * Game Text: Tracker. Damage +1. + * While an ally is in the dead pile, this minion is strength +3 and fierce. + * Each time an ally exerts, you may spot another [isengard] card and exert this minion to wound that ally. + */ + + var scn = GetScenario(); + + var card = scn.GetFreepsCard("raider"); + + assertEquals("Uruk Raider", card.getBlueprint().getTitle()); + assertNull(card.getBlueprint().getSubtitle()); + assertFalse(card.getBlueprint().isUnique()); + assertEquals(Side.SHADOW, card.getBlueprint().getSide()); + assertEquals(Culture.ISENGARD, card.getBlueprint().getCulture()); + assertEquals(CardType.MINION, card.getBlueprint().getCardType()); + assertEquals(Race.URUK_HAI, card.getBlueprint().getRace()); + assertTrue(scn.HasKeyword(card, Keyword.TRACKER)); + assertTrue(scn.HasKeyword(card, Keyword.DAMAGE)); + assertEquals(1, scn.GetKeywordCount(card, Keyword.DAMAGE)); + assertEquals(2, card.getBlueprint().getTwilightCost()); + assertEquals(6, card.getBlueprint().getStrength()); + assertEquals(2, card.getBlueprint().getVitality()); + assertEquals(5, card.getBlueprint().getSiteNumber()); + } + + @Test + public void UrukRaiderIsStrengthPlus3AndFierceWhileAllyIsInDeadPile() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var rosie = scn.GetFreepsCard("rosie"); + scn.MoveCardsToHand(rosie); + + var raider = scn.GetShadowCard("raider"); + scn.MoveMinionsToTable(raider); + + scn.StartGame(); + + assertEquals(Zone.HAND, rosie.getZone()); + assertEquals(6, scn.GetStrength(raider)); + assertFalse(scn.HasKeyword(raider, Keyword.FIERCE)); + + scn.MoveCardsToDeadPile(rosie); + + assertEquals(Zone.DEAD, rosie.getZone()); + assertEquals(9, scn.GetStrength(raider)); + assertTrue(scn.HasKeyword(raider, Keyword.FIERCE)); + } + + @Test + public void UrukRaiderCannotRespondToAllyExertionIfNoOtherIsengardCard() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var rosie = scn.GetFreepsCard("rosie"); + scn.MoveCardsToSupportArea(rosie); + + var raider = scn.GetShadowCard("raider"); + scn.MoveMinionsToTable(raider); + + scn.StartGame(); + + assertEquals(0, scn.GetWoundsOn(raider)); + assertEquals(0, scn.GetWoundsOn(rosie)); + assertEquals(Zone.SUPPORT, rosie.getZone()); + + scn.FreepsUseCardAction(rosie); + assertFalse(scn.ShadowHasOptionalTriggerAvailable()); + + assertEquals(Zone.SUPPORT, rosie.getZone()); + assertEquals(0, scn.GetWoundsOn(raider)); + assertEquals(1, scn.GetWoundsOn(rosie)); + } + + @Test + public void UrukRaiderCannotRespondToAllyExertionIfSpotsOtherIsengardCardButCannotExert() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var rosie = scn.GetFreepsCard("rosie"); + scn.MoveCardsToSupportArea(rosie); + + var raider = scn.GetShadowCard("raider"); + var demands = scn.GetShadowCard("demands"); + scn.MoveMinionsToTable(raider); + scn.MoveCardsToSupportArea(demands); + scn.AddWoundsToChar(raider, 1); + + scn.StartGame(); + + assertEquals(1, scn.GetWoundsOn(raider)); + assertEquals(0, scn.GetWoundsOn(rosie)); + assertEquals(Zone.SUPPORT, rosie.getZone()); + + scn.FreepsUseCardAction(rosie); + assertFalse(scn.ShadowHasOptionalTriggerAvailable()); + + assertEquals(Zone.SUPPORT, rosie.getZone()); + assertEquals(1, scn.GetWoundsOn(raider)); + assertEquals(1, scn.GetWoundsOn(rosie)); + } + + @Test + public void UrukRaiderCanSpotAnotherIsengardCardAndExertToWoundExertingAlly() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var rosie = scn.GetFreepsCard("rosie"); + scn.MoveCardsToSupportArea(rosie); + + var raider = scn.GetShadowCard("raider"); + var demands = scn.GetShadowCard("demands"); + scn.MoveMinionsToTable(raider); + scn.MoveCardsToSupportArea(demands); + + scn.StartGame(); + + assertEquals(0, scn.GetWoundsOn(raider)); + assertEquals(0, scn.GetWoundsOn(rosie)); + assertEquals(Zone.SUPPORT, rosie.getZone()); + + scn.FreepsUseCardAction(rosie); + assertTrue(scn.ShadowHasOptionalTriggerAvailable()); + scn.ShadowAcceptOptionalTrigger(); + + assertEquals(Zone.DEAD, rosie.getZone()); + assertEquals(1, scn.GetWoundsOn(raider)); + } + + // Uncomment any @Test markers below once this is ready to be used + //@Test + public void UrukRaiderTest1() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + +// var card = scn.GetFreepsCard("card"); +// scn.MoveCardsToHand(card); +// scn.MoveCompanionToTable(card); +// scn.MoveCardsToSupportArea(card); +// scn.MoveCardToDiscard(card); +// scn.MoveCardsToTopOfDeck(card); + + var card = scn.GetShadowCard("card"); + scn.MoveCardsToHand(card); + scn.MoveMinionsToTable(card); + scn.MoveCardsToSupportArea(card); + scn.MoveCardsToDiscard(card); + scn.MoveCardsToTopOfDeck(card); + + scn.StartGame(); + scn.FreepsPlayCard(card); + + assertEquals(2, scn.GetTwilight()); + } +} diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set10/Card_10_028_ErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set10/Card_10_028_ErrataTests.java index 0b912a847..6657e5f9b 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set10/Card_10_028_ErrataTests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set10/Card_10_028_ErrataTests.java @@ -1,15 +1,14 @@ package com.gempukku.lotro.cards.unofficial.pc.errata.set10; -import com.gempukku.lotro.framework.VirtualTableScenario; import com.gempukku.lotro.common.*; +import com.gempukku.lotro.framework.VirtualTableScenario; import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; import java.util.HashMap; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; public class Card_10_028_ErrataTests { @@ -33,13 +32,13 @@ public class Card_10_028_ErrataTests /** * Set: 10 * Name: Denethor, Lord of Minas Tirith - * Unique: True + * Unique: true * Side: Free Peoples * Culture: Gondor * Twilight Cost: 2 * Type: Companion * Subtype: Man - * Strength: 5 + * Strength: 8 * Vitality: 3 * Resistance: 6 * Signet: Aragorn @@ -58,7 +57,7 @@ public class Card_10_028_ErrataTests assertEquals(CardType.COMPANION, card.getBlueprint().getCardType()); assertEquals(Race.MAN, card.getBlueprint().getRace()); assertEquals(2, card.getBlueprint().getTwilightCost()); - assertEquals(5, card.getBlueprint().getStrength()); + assertEquals(8, card.getBlueprint().getStrength()); assertEquals(3, card.getBlueprint().getVitality()); assertEquals(6, card.getBlueprint().getResistance()); assertEquals(Signet.ARAGORN, card.getBlueprint().getSignet()); @@ -72,10 +71,20 @@ public class Card_10_028_ErrataTests var card = scn.GetFreepsCard("card"); scn.MoveCardsToHand(card); + //scn.MoveCompanionsToTable(card); + scn.MoveCardsToSupportArea(card); + scn.MoveCardsToDiscard(card); + scn.MoveCardsToTopOfDeck(card); + + //var card = scn.GetShadowCard("card"); + scn.MoveCardsToHand(card); + scn.MoveMinionsToTable(card); + scn.MoveCardsToSupportArea(card); + scn.MoveCardsToDiscard(card); + scn.MoveCardsToTopOfDeck(card); scn.StartGame(); - scn.FreepsPlayCard(card); - - assertEquals(2, scn.GetTwilight()); + + assertFalse(true); } } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_013_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_013_Tests.java index 3a6b9e8b6..5c3e05055 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_013_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_013_Tests.java @@ -41,7 +41,7 @@ public class Card_V2_013_Tests /** * Set: V2 * Name: Gandalf, Lathspell - * Unique: True + * Unique: true * Side: Free Peoples * Culture: Gandalf * Twilight Cost: 4 @@ -52,8 +52,8 @@ public class Card_V2_013_Tests * Resistance: 6 * Signet: Theoden * Game Text: Each mounted companion gains valiant. - * Response: If a minion's special ability is used (except during a skirmish), spot 3 valiant companions and exert Gandalf to prevent that. - */ + * Response: If a minion's special ability is used, spot 3 valiant companions and exert Gandalf twice to prevent that and exert that minion. + */ var scn = GetScenario(); @@ -70,7 +70,7 @@ public class Card_V2_013_Tests assertEquals(7, card.getBlueprint().getStrength()); assertEquals(4, card.getBlueprint().getVitality()); assertEquals(6, card.getBlueprint().getResistance()); - assertEquals(Signet.THEODEN, card.getBlueprint().getSignet()); + assertEquals(Signet.THEODEN, card.getBlueprint().getSignet()); } @Test @@ -146,9 +146,9 @@ public class Card_V2_013_Tests assertTrue(scn.FreepsHasOptionalTriggerAvailable()); scn.FreepsAcceptOptionalTrigger(); assertEquals(0, scn.GetWoundsOn(valiant1)); - assertEquals(1, scn.GetWoundsOn(gandalf)); - //Lathspell's retribution no longer wounds, just blocks - assertEquals(1, scn.GetWoundsOn(shotgun)); + assertEquals(2, scn.GetWoundsOn(gandalf)); + //Lathspell's retribution exerts and blocks + assertEquals(2, scn.GetWoundsOn(shotgun)); } @Test @@ -193,7 +193,7 @@ public class Card_V2_013_Tests } @Test - public void GandalfCanBlockGrishnakhIf3ValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException { + public void GandalfCanBlockGrishnakhAndExertHimIf3ValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup var scn = GetScenario(); @@ -221,7 +221,7 @@ public class Card_V2_013_Tests assertEquals(2, scn.GetWoundsOn(grishnakh)); assertTrue(scn.FreepsHasOptionalTriggerAvailable()); scn.FreepsAcceptOptionalTrigger(); - assertEquals(1, scn.GetWoundsOn(gandalf)); + assertEquals(2, scn.GetWoundsOn(gandalf)); //Lathspell's retribution no longer wounds assertEquals(Zone.SHADOW_CHARACTERS, grishnakh.getZone()); assertEquals(2, scn.GetWoundsOn(grishnakh)); @@ -229,51 +229,6 @@ public class Card_V2_013_Tests assertEquals(7, scn.GetShadowDeckCount()); } - @Test - public void GandalfCanBlockGrishnakhAndWoundHimIf3ValiantCompanionsAndBearingNewStaff() throws DecisionResultInvalidException, CardNotFoundException { - //Pre-game setup - var scn = GetScenario(); - - var gandalf = scn.GetFreepsCard("gandalf"); - var crutch = scn.GetFreepsCard("crutch"); - var valiant1 = scn.GetFreepsCard("valiant1"); - scn.MoveCompanionToTable(gandalf); - scn.AttachCardsTo(gandalf, crutch); - scn.MoveCompanionToTable("valiant1", "valiant2", "valiant3"); - - var grishnakh = scn.GetShadowCard("grishnakh"); - scn.MoveMinionsToTable(grishnakh); - scn.MoveMinionsToTable("marauder"); - - scn.StartGame(); - - scn.FreepsPassCurrentPhaseAction(); - - assertTrue(scn.ShadowActionAvailable(grishnakh)); - - assertEquals(0, scn.GetWoundsOn(gandalf)); - assertEquals(0, scn.GetWoundsOn(grishnakh)); - assertEquals(0, scn.GetShadowHandCount()); - assertEquals(7, scn.GetShadowDeckCount()); - scn.ShadowUseCardAction(grishnakh); - //Grishnakh's own exertions - assertEquals(2, scn.GetWoundsOn(grishnakh)); - assertTrue(scn.FreepsHasOptionalTriggerAvailable()); - scn.FreepsAcceptOptionalTrigger(); - assertEquals(1, scn.GetWoundsOn(gandalf)); - //Lathspell's retribution no longer wounds - assertEquals(Zone.SHADOW_CHARACTERS, grishnakh.getZone()); - assertEquals(2, scn.GetWoundsOn(grishnakh)); - assertEquals(0, scn.GetShadowHandCount()); - assertEquals(7, scn.GetShadowDeckCount()); - - //The staff makes up for it tho - assertTrue(scn.FreepsHasOptionalTriggerAvailable()); - scn.FreepsAcceptOptionalTrigger(); - scn.FreepsChooseCard(grishnakh); - assertEquals(Zone.DISCARD, grishnakh.getZone()); - } - @Test public void GandalfCannotBlockSkirmishAbilityEvenWith3ValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_077_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_077_Tests.java index 5d9b3a26f..08ab8380b 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_077_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v02/Card_V2_077_Tests.java @@ -37,7 +37,7 @@ public class Card_V2_077_Tests /** * Set: V2 * Name: Gandalf's Staff, Old Man's Crutch - * Unique: True + * Unique: true * Side: Free Peoples * Culture: Gandalf * Twilight Cost: 2 @@ -45,9 +45,9 @@ public class Card_V2_077_Tests * Subtype: Staff * Vitality: 1 * Game Text: Bearer must be Gandalf. - * Discard any weapon he bears. - * Each time Gandalf is exerted by a Free Peoples card, you may wound a minion (limit once per phase). - */ + * Discard any weapon he bears. + * Response: If Gandalf is exerted by a Free Peoples card, heal him (limit once per turn). + */ var scn = GetScenario(); @@ -92,7 +92,7 @@ public class Card_V2_077_Tests } @Test - public void GandalfsStaffCanWoundAMinionWhenExertingOncePerPhase() throws DecisionResultInvalidException, CardNotFoundException { + public void GandalfsStaffCanHealBearerWhenExertingOncePerTurn() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup var scn = GetScenario(); @@ -121,14 +121,15 @@ public class Card_V2_077_Tests assertEquals(0, scn.GetWoundsOn(shotgun)); assertTrue(scn.FreepsHasOptionalTriggerAvailable()); scn.FreepsAcceptOptionalTrigger(); - assertEquals(1, scn.GetWoundsOn(shotgun)); + assertEquals(0, scn.GetWoundsOn(gandalf)); scn.ShadowPassCurrentPhaseAction(); //Staff doesn't trigger a second time + assertEquals(0, scn.GetWoundsOn(gandalf)); scn.FreepsUseCardAction(betrayal); - assertEquals(2, scn.GetWoundsOn(gandalf)); - assertEquals(1, scn.GetWoundsOn(shotgun)); + assertEquals(1, scn.GetWoundsOn(gandalf)); + assertEquals(0, scn.GetWoundsOn(shotgun)); assertFalse(scn.FreepsHasOptionalTriggerAvailable()); } }