2023 Yuletide batch 2

- Added Barlimen, Elronds, Wraithification, and misc errata
This commit is contained in:
Christian 'ketura' McCarty
2023-12-16 01:09:01 -06:00
parent e1f1d95536
commit cfa8f07173
9 changed files with 306 additions and 251 deletions

View File

@@ -1,90 +1,4 @@
{
73_13: {
cardInfo: {
//Either a full URL, or a subpath for the PC image server
imagePath: errata/LOTR-EN03S013.1_card.jpg
//If this is true, then all gameplay-related info outside this cardInfo definition
// will be ignored and the java class loaded instead.
javaClass: false
//This instructs the blueprint generator to insert this card as an alt of the listed
// parent blueprint. Can of course be ommitted if not an errata or promo.
parent: 3_13
//This is the tree path to use within the alts structure on the parent.
// Can of course be ommitted if parent is null.
parentPath: errata/pc
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1
collInfo: 3R13
rarity: R
setNum: "3"
cardNum: 13
// Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
style: Standard
}
title: Elrond
subtitle: Herald to Gil-galad
unique: true
side: Free Peoples
culture: Elven
twilight: 4
type: Ally
allyHome: fellowship,3
race: Elf
strength: 8
vitality: 4
effects: [
{
type: Trigger
text: Would you like to add (2) to heal a home 3 ally twice?
optional: true,
trigger: {
type: StartOfTurn
},
effect: {
type: CostToEffect
cost: {
type: AddTwilight
amount: 2
}
effect: {
type: heal
count: 1
times: 2
filter: choose(ally,allyHome(fellowship,3))
}
}
}
{
type: Activated
phase: regroup
cost: {
type: exert
times: 2
filter: self
}
effect: {
type: heal
count: 1
filter: choose(companion)
}
}
]
gametext: At the start of each of your turns, you may add (2) to spot an ally whose home site is 3 and heal that ally twice. <br><b>Regroup:</b> Exert Elrond twice to heal a companion.
lore: "Venerable he seemed as a king crowned with many winters, and yet hale as a tried warrior...."
promotext: ""
alts: {
//These are just CardInfo objects
promos: {
}
//These are full card definitions, with redundant info that is the same as the original card ommitted
errata: {
}
}
}
53_17: {
cardInfo: {

View File

@@ -16,7 +16,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 1
collInfo: 1U70
rarity: U
setNum: "1"
@@ -33,20 +33,50 @@
type: Ally
allyHome: fellowship,1
race: Man
#keyword: damage+1
strength: 1
vitality: 2
/*requires: [
]
effects: [
{
effects: {
type: activated
phase: fellowship
cost: {
type: exert
filter: self
}
{
effect: {
type: CostToEffect
cost: {
type: exert
filter: self
}
effect: [
{
type: ChooseCardsFromDiscard
count: 1
filter: choose(culture(gandalf),event)
memorize: firstEvent
text: Choose first {gandalf} event from discard
}
{
type: ChooseCardsFromDiscard
count: 1
filter: choose(culture(gandalf),event,not(NameFromMemory(firstEvent)))
memorize: secondEvent
text: Choose second {gandalf} event from discard
}
{
type: PutCardsFromDiscardIntoHand
count: 1
filter: choose(or(memory(firstEvent),memory(secondEvent)))
memorize: retrievedEvent
}
{
type: RemoveCardsInDiscardFromGame
count: 1
filter: choose(not(memory(retrievedEvent)),or(memory(firstEvent),memory(secondEvent)))
}
]
}
]*/
}
gametext: <b>Fellowship:</b> Exert Barliman Butterbur to reveal 2 [gandalf] events of different titles from your discard pile. Take 1 into hand and remove the other from the game.
lore: “You don't know much even about them, if you think old Barliman is stupid,' said Gandalf. He is wise enough on his own ground.'”
promotext: ""
@@ -60,7 +90,7 @@
}
}
71_70: {
71_402: {
cardInfo: {
//Either a full URL, or a subpath for the PC image server
imagePath: errata/LOTR-EN01E070.2_card.jpg
@@ -76,7 +106,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 2
collInfo: 1U70
rarity: U
setNum: "1"
@@ -93,20 +123,20 @@
type: Ally
allyHome: fellowship,1
race: Man
#keyword: damage+1
strength: 1
vitality: 2
/*requires: [
]
effects: [
{
effects: {
type: activated
phase: regroup
cost: {
type: exert
filter: self
}
{
effect: {
type: putCardsFromDiscardIntoHand
filter: choose(culture(gandalf),event)
}
]*/
}
gametext: <b>Regroup:</b> Exert Barliman Butterbur to take a [gandalf] event into hand from your discard pile.
lore: “You don't know much even about them, if you think old Barliman is stupid,' said Gandalf. He is wise enough on his own ground.'”
promotext: ""
@@ -120,7 +150,7 @@
}
}
71_70: {
71_403: {
cardInfo: {
//Either a full URL, or a subpath for the PC image server
imagePath: errata/LOTR-EN01E070.3_card.jpg
@@ -136,7 +166,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 3
collInfo: 1U70
rarity: U
setNum: "1"
@@ -153,20 +183,21 @@
type: Ally
allyHome: fellowship,1
race: Man
#keyword: damage+1
strength: 1
vitality: 3
/*requires: [
]
effects: [
{
effects: {
type: activated
phase: fellowship
cost: {
type: exert
filter: self
times: 2
}
{
effect: {
type: putCardsFromDiscardIntoHand
filter: choose(culture(gandalf),event)
}
]*/
}
gametext: <b>Fellowship:</b> Exert Barliman Butterbur twice to take a [gandalf] event into hand from your discard pile.
lore: “You don't know much even about them, if you think old Barliman is stupid,' said Gandalf. He is wise enough on his own ground.'”
promotext: ""
@@ -180,7 +211,7 @@
}
}
71_70: {
71_403: {
cardInfo: {
//Either a full URL, or a subpath for the PC image server
imagePath: errata/LOTR-EN01E070.4_card.jpg
@@ -196,7 +227,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 4
collInfo: 1U70
rarity: U
setNum: "1"
@@ -213,20 +244,20 @@
type: Ally
allyHome: fellowship,1
race: Man
#keyword: damage+1
strength: 1
vitality: 2
/*requires: [
]
effects: [
{
effects: {
type: activated
phase: fellowship
cost: {
type: exert
filter: self
}
{
effect: {
type: putCardsFromDiscardIntoHand
filter: choose(spell)
}
]*/
}
gametext: <b>Fellowship:</b> Exert Barliman Butterbur to take a spell into hand from your discard pile.
lore: “You don't know much even about them, if you think old Barliman is stupid,' said Gandalf. He is wise enough on his own ground.'”
promotext: ""
@@ -256,7 +287,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 1
collInfo: 1R87
rarity: R
setNum: "1"
@@ -271,20 +302,14 @@
twilight: 1
type: Event
keyword: Fellowship
/*requires: [
]
effects: {
type: event
cost: {
},
effect: [
{
}
]
}*/
effect: {
type: playCardFromDrawDeck
filter: choose(or(wizard,and(culture(gandalf),ally)))
nocheck: true
}
}
gametext: Play a Wizard or [gandalf] ally from your draw deck.
lore: “A wizard is never late, Frodo Baggins, nor is he early. He arrives precisely when he means to.'”
promotext: ""

View File

@@ -16,7 +16,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 1
collInfo: 1C92
rarity: C
setNum: "1"
@@ -31,19 +31,16 @@
twilight: 1
type: Possession
itemclass: Armor
#target: name(Gimli)
#keyword: support area
/*requires: [
]
effects: [
{
target: or(man,and(culture(gondor),companion))
effects: {
type: modifier
modifier: {
type: cantTakeMoreWoundsThan
amount: 1
filter: bearer
phase: skirmish
}
{
}
]*/
}
gametext: Bearer must be a Man or [gondor] companion. <br>Bearer takes no more than 1 wound during each skirmish phase.
lore: “Then Elendil the Tall and his mighty sons, Isildur and Anárion, became great lords; and the North-realm they made in Arnor, and the South-realm in Gondor....”
promotext: ""
@@ -73,7 +70,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 1
collInfo: 1C101
rarity: C
setNum: "1"
@@ -88,19 +85,14 @@
twilight: 1
type: Possession
itemclass: Armor
#target: name(Gimli)
#keyword: support area
/*requires: [
]
effects: [
{
target: or(man,and(culture(gondor),companion))
effects: {
type: modifier
modifier: {
type: cantBeOverwhelmedMultiplier
filter: bearer
}
{
}
]*/
}
gametext: Bearer must be a Man or [gondor] companion. <br>Bearer may not be overwhelmed unless his or her strength is tripled.
lore: Soldiers of the White Tower have long appreciated the craftsmanship of the Gondorian metalsmiths.
promotext: ""
@@ -130,7 +122,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 1
collInfo: 1C107
rarity: C
setNum: "1"
@@ -145,19 +137,15 @@
twilight: 1
type: Possession
itemclass: Shield
#target: name(Gimli)
#keyword: support area
/*requires: [
]
effects: [
{
target: or(man,and(culture(gondor),companion))
effects: {
type: modifier
modifier: {
type: modifyArcheryTotal
side: shadow
amount: -1
}
{
}
]*/
}
gametext: Bearer must be a Man or [gondor] companion. <br>The minion archery total is -1.
lore: The Kingdom of Gondor has smiths much practiced in creating strong tools of war.
promotext: ""
@@ -202,23 +190,20 @@
twilight: 0
type: Event
keyword: Response
/*requires: [
]
requires: {
type: canSpot
filter: culture(gondor),companion,inSkirmish
}
effects: {
type: responseEvent
trigger: {
type: played
filter: skirmish,event
}
cost: {
effect: {
type: cancelEvent
}
effect: [
{
}
]
]*/
}
gametext: If a skirmish event is played during a skirmish involving a [gondor] companion, cancel that event.
lore: “Believe not that in the land of Gondor the blood of Númenor is spent, nor all its pride and dignity forgotten.'”
promotext: ""

View File

@@ -16,7 +16,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 1
collInfo: 1C177
rarity: C
setNum: "1"
@@ -31,21 +31,23 @@
twilight: 6
type: Minion
race: Orc
#keyword: damage+1
strength: 13
vitality: 3
site: 4
/*requires: [
]
effects: [
{
effects: {
type: Activated
phase: Shadow
cost: {
type: exert
filter: choose(culture(moria),orc)
count: 1
times: 1
}
{
effect: {
type: DrawCards
count: 1
}
]*/
}
gametext: Shadow: Exert a [moria] Orc to draw a card.
lore: “As they ran they heard the beat and echo of many hurrying feet behind. A shrill yell went up: they had been seen. There was a ring and clash of steel.”
promotext: ""

View File

@@ -16,7 +16,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 1
collInfo: 2R20
rarity: R
setNum: "2"
@@ -31,20 +31,52 @@
twilight: 2
type: Event
keyword: Maneuver
/*requires: [
]
effects: {
type: event
cost: {
},
type: exert
filter: choose(Elf,ally)
memorize: firstAlly
}
effect: [
{
type: Discard
count: 1
filter: choose(condition)
}
{
type: conditional
requires: [
{
type: CanSpot
filter: Orc
count: 1
}
{
type: CanSpot
filter: Elf,ally,not(exhausted),not(memory(firstAlly))
}
]
effect: {
type: Optional
player: you
text: Would you like to exert another Elf ally to discard another condition?
effect: {
type: CostToEffect
cost: {
type: exert
filter: choose(Elf,ally,not(memory(firstAlly)))
}
effect: {
type: Discard
count: 1
filter: choose(condition)
}
}
}
}
]
}*/
}
gametext: Exert an Elf ally to discard a condition. If you can spot an Orc, you may exert another Elf ally to discard another condition.
lore: “Yet so little faith and trust do we find now in the world beyond Lothlórien... that we dare not by our own trust endanger our land.'”
promotext: ""

View File

@@ -1,3 +1,4 @@
{
73_13: {
cardInfo: {
@@ -15,7 +16,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 1
collInfo: 3R13
rarity: R
setNum: "3"
@@ -32,20 +33,70 @@
type: Ally
allyHome: fellowship,3
race: Elf
#keyword: damage+1
strength: 8
vitality: 4
/*requires: [
]
effects: [
{
type: Trigger
optional: false
trigger: {
type: StartOfTurn
},
cost: {
type: ChooseActiveCards
count: 0-1
filter: choose(ally,allyHome(fellowship,3),wounded)
memorize: chosenAlly
text: Choose a home 3 ally to heal
}
effect: [
{
type: ChooseANumber
text: How many times to heal?
from: 0
to: {
type: Min
first: {
type: ForEachWound
filter: memory(chosenAlly)
}
second: 2
}
memorize: heals
}
{
type: Heal
count: 1
times: {
type: FromMemory
memory: heals
}
filter: memory(chosenAlly)
}
{
type: AddTwilight
amount: {
type: FromMemory
memory: heals
}
}
]
}
{
type: Activated
phase: regroup
cost: {
type: exert
times: 2
filter: self
}
effect: {
type: heal
count: 1
filter: choose(companion)
}
}
]*/
]
gametext: At the start of each of your turns, you may spot an ally whose home is site 3 to heal that ally up to 2 times. Add (1) per wound healed.<br>Regroup: Exert Elrond twice to heal a companion.
lore: “Venerable he seemed as a king crowned with many winters, and yet hale as a tried warrior....”
promotext: ""
@@ -59,7 +110,7 @@
}
}
73_13: {
73_401: {
cardInfo: {
//Either a full URL, or a subpath for the PC image server
imagePath: errata/LOTR-EN03E013.2_card.jpg
@@ -75,7 +126,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 2
collInfo: 3R13
rarity: R
setNum: "3"
@@ -95,17 +146,33 @@
#keyword: damage+1
strength: 8
vitality: 4
/*requires: [
]
effects: [
{
type: trigger
trigger: {
type: startOfTurn
}
effect: {
type: heal
filter: choose(ally,allyHome(fellowship,3))
count: 0-2
}
}
{
type: Activated
phase: regroup
cost: {
type: exert
times: 2
filter: self
}
effect: {
type: heal
count: 1
filter: choose(companion)
}
}
]*/
]
gametext: At the start of each of your turns, you may heal up to 2 allies whose home is site 3.<br>Regroup: Exert Elrond twice to heal a companion.
lore: “Venerable he seemed as a king crowned with many winters, and yet hale as a tried warrior....”
promotext: ""
@@ -135,7 +202,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 1
collInfo: 3U24
rarity: U
setNum: "3"
@@ -149,19 +216,24 @@
culture: Elven
twilight: 0
type: Artifact
#target: name(Gimli)
#keyword: support area
/*requires: [
]
target: Ring-bearer
effects: [
{
type: ExtraCost
cost: {
type: exert
filter: choose(Elf)
}
}
{
type: modifier
modifier: {
type: modifyResistance
filter: bearer
amount: 2
}
}
]*/
]
gametext: To play, exert an Elf. Bearer must be the Ring-bearer. <br>Bearers resistance is +2.
lore: “May it be a light to you in dark places, when all other lights go out. Remember Galadriel and her Mirror!'”
promotext: ""

View File

@@ -28,7 +28,7 @@
unique: false
twilight: 7
type: Site
site: 7T
site: 7
block: Towers
direction: Right
effects: {

View File

@@ -16,7 +16,7 @@
//Versioning differentiates releases within a particular alt path, such as PC errata
// version 1 vs version 2. PC version 2 will not conflict with, say, Decipher version 2.
//Top-level cards should always be version 0.
version: 1?
version: 1
collInfo: 6U16
rarity: U
setNum: "6"
@@ -31,20 +31,42 @@
twilight: 1
type: Event
keyword: Skirmish
/*requires: [
]
effects: {
type: event
cost: {
},
effect: [
{
type: RevealTopCardsOfDrawDeck
deck: you
count: 1
memorize: revealedCard
}
{
type: ModifyStrength
filter: choose(minion,InSkirmishAgainst(Elf))
amount: {
type: TwilightCostInMemory
memory: revealedCard
multiplier: -1
}
memorize: weakenedMinion
}
{
type: Conditional
requires: {
type: IsLessThanOrEqual
firstNumber: {
type: StrengthFromMemory
memory: weakenedMinion
}
secondNumber: 4
}
effect: {
type: DiscardCardsFromDrawDeck
filter: memory(revealedCard)
}
}
]
}*/
}
gametext: Reveal the top card of your draw deck to make a minion skirmishing an Elf strength X, where X is the twilight cost of the revealed card. If that minion is now 4 strength or less, discard the revealed card.
lore: “Give them a volley.'”
promotext: ""

View File

@@ -23,6 +23,9 @@ public class RevealTopCardsOfDrawDeck implements EffectAppenderProducer {
final ValueSource valueSource = ValueResolver.resolveEvaluator(effectObject.get("count"), 1, environment);
final String memorize = FieldUtils.getString(effectObject.get("memorize"), "memorize");
if (memorize == null)
throw new InvalidCardDefinitionException("You need to define what memory to use to store revealed cards");
final PlayerSource playerSource = PlayerResolver.resolvePlayer(deck, environment);
return new DelayedAppender() {