Compare commits
4 Commits
40fd173c26
...
772668b25d
| Author | SHA1 | Date | |
|---|---|---|---|
| 772668b25d | |||
|
|
d745b4677e | ||
|
|
27c450befd | ||
|
|
789ebeda27 |
@@ -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/v02/LOTR-ENV2E013.2_card.jpg',
|
||||
// Gandalf's Staff, Old Man's Crutch (V277) [Errata]
|
||||
'102_77' : 'https://i.lotrtcgpc.net/sets/v02/LOTR-ENV2E077.1_card.jpg'
|
||||
}
|
||||
|
||||
|
||||
@@ -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: [
|
||||
{
|
||||
|
||||
@@ -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: <b>Fellowship:</b> 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: {
|
||||
|
||||
@@ -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: <b>Fellowship:</b> 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: <b>Fellowship:</b> Exert Merry to take a [shire] ally into hand from your draw deck (limit once per turn).
|
||||
gametext: <b>Fellowship:</b> 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: {
|
||||
|
||||
@@ -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.<br>While an ally is in the dead pile, this minion is strength +3 and <b>fierce</b>.<br>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.<br>While an ally is in the dead pile, this minion is strength +3 and <b>fierce</b>.<br>Each time an ally exerts, you may spot another [isengard] card and exert this minion to wound that ally.
|
||||
gametext: Tracker. <br>While an ally is in the dead pile, this minion is strength +3 and <b>damage +1</b>.<br>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 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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.<br><b>Fellowship:</b> 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.<br><b>Fellowship:</b> 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.<br><b>Fellowship:</b> 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: {
|
||||
|
||||
@@ -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 <b>valiant</b>.<br>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 <b>valiant</b>.<br>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 <b>valiant</b>.<br>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.<br>Discard any weapon he bears.<br>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.<br>Discard any weapon he bears.<br>Each time Gandalf is exerted by a Free Peoples card, you may wound a minion (limit once per phase).
|
||||
gametext: Bearer must be Gandalf.<br>Discard any weapon he bears.<br>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: {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
// V2 Saruman FA
|
||||
1x102_100
|
||||
#FA Sam, Great Elf Warrior
|
||||
#1x10_129
|
||||
1x10_129
|
||||
#July 2025 WC Circuit: FA Mumak Commander, GATS
|
||||
1x15_211
|
||||
#August 2025 WC Circuit: Ringwraith in Twilight
|
||||
@@ -295,7 +295,7 @@
|
||||
// V2 Saruman FA
|
||||
1x102_100
|
||||
#FA Sam, Great Elf Warrior
|
||||
#1x10_129
|
||||
1x10_129
|
||||
#July 2025 WC Circuit: FA Mumak Commander, GATS
|
||||
1x15_211
|
||||
#August 2025 WC Circuit: Ringwraith in Twilight
|
||||
|
||||
@@ -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: <b>Fellowship:</b> 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);
|
||||
}
|
||||
}
|
||||
@@ -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: <b>Fellowship:</b> Exert Merry to take a [shire] ally into hand from your draw deck (limit once per turn).
|
||||
* Game Text: <b>Fellowship:</b> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 <b>fierce</b>.
|
||||
* Game Text: Tracker.
|
||||
* While an ally is in the dead pile, this minion is strength +3 and <b>damage +1</b>.
|
||||
* 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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 <b>fierce</b>.
|
||||
* 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());
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 <b>valiant</b>.
|
||||
* 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
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user