Adding site errata
- Adding set V0 (100/150) as a PC Supplement set to hold the Steward's Tomb split card - Properly setting up site detection so future errata won't have to remember to rotate horizontal cards - Renamed MayNotReplaceSite -> CantReplaceSite - Converted Multiply valueResolver to take two ValueResolvers to be more flexible - Added CantPreventWounds JSON binding - Adding errata for the following sites: Anduin Banks, Cavern Entrance, Neekerbreekers’ Bog, Mithlond, Rath Dínen, Steward's Tomb, Midgewater Moors, Doorway to Doom, and Rohirrim Road
This commit is contained in:
@@ -379,10 +379,11 @@ var PCCards = {
|
||||
'88_134': 'https://i.lotrtcgpc.net/errata/LOTR-EN18E134.1_card.jpg',
|
||||
'88_136': 'https://i.lotrtcgpc.net/errata/LOTR-EN18E136.1_card.jpg',
|
||||
'88_139': 'https://i.lotrtcgpc.net/errata/LOTR-EN18E139.1_card.jpg',
|
||||
'88_139': 'https://i.lotrtcgpc.net/errata/LOTR-EN18E139.X_card.jpg',
|
||||
'89_1': 'https://i.lotrtcgpc.net/errata/LOTR-EN19E001.1_card.jpg',
|
||||
'89_24': 'https://i.lotrtcgpc.net/errata/LOTR-EN19E024.1_card.jpg',
|
||||
'89_30': 'https://i.lotrtcgpc.net/errata/LOTR-EN19E030.1_card.jpg',
|
||||
'89_37': 'https://i.lotrtcgpc.net/errata/LOTR-EN19E037.1_card.jpg',
|
||||
|
||||
'100_1': 'https://i.lotrtcgpc.net/sets/vset0/LOTR-ENV0S001.0_card.jpg',
|
||||
}
|
||||
|
||||
|
||||
@@ -113,10 +113,10 @@ var CardFilter = Class.extend({
|
||||
|
||||
this.fullFilterDiv = $("<div id='filter-inputs' style='display:flex;flex-wrap:wrap;'></div>");
|
||||
this.setSelect = $("<select id='setSelect' style='width: 130px; font-size: 80%;'>"
|
||||
+ "<option value='0-34,101'>All Sets</option>"
|
||||
+ "<option value='0-34,100-101'>All Sets</option>"
|
||||
+ "<option value='0-19'>Official Decipher Sets</option>"
|
||||
+ "<option value='30-33'>The Hobbit Sets</option>"
|
||||
+ "<option value='50-69'>Player's Council Errata</option>"
|
||||
+ "<option value='50-69,100'>Player's Council Errata</option>"
|
||||
+ "<option value='100-149'>Player's Council VSets</option>"
|
||||
+ "<option value='50-69,100-149'>All Player's Council Cards</option>"
|
||||
+ "<option disabled>----------</option>"
|
||||
@@ -175,7 +175,7 @@ var CardFilter = Class.extend({
|
||||
+ "<option value='32'>32 - The Hobbit: Expansion 2</option>"
|
||||
+ "<option value='33'>33 - The Hobbit: Expansion 3</option>"
|
||||
+ "<option disabled>----------</option>"
|
||||
+ "<option value='70-89,150-200'>All Player's Council Playtest Cards</option>"
|
||||
+ "<option value='70-89,100,150-200'>All Player's Council Playtest Cards</option>"
|
||||
//+ "<option value='151'>PLAYTEST - Shadow of the Past (PC)</option>"
|
||||
+ "<option value='test_pc_fotr_block'>PLAYTEST - Fellowship Block (PC)</option>"
|
||||
+ "<option value='test_pc_movie'>PLAYTEST - Movie Block (PC)</option>"
|
||||
|
||||
@@ -275,35 +275,35 @@ var Card = Class.extend({
|
||||
|
||||
if (setNo == 0)
|
||||
return (cardNo == 1 || cardNo == 4 || cardNo == 6 || cardNo == 8);
|
||||
if (setNo == 1)
|
||||
if (setNo == 1 || setNo == 51 || setNo == 71)
|
||||
return ((cardNo >= 319 && cardNo <= 363) || cardNo == 367);
|
||||
if (setNo == 2)
|
||||
if (setNo == 2 || setNo == 52 || setNo == 72)
|
||||
return (cardNo >= 115 && cardNo <= 120);
|
||||
if (setNo == 3)
|
||||
if (setNo == 3 || setNo == 53 || setNo == 73)
|
||||
return (cardNo >= 115 && cardNo <= 120);
|
||||
if (setNo == 4)
|
||||
if (setNo == 4 || setNo == 54 || setNo == 74)
|
||||
return (cardNo >= 323 && cardNo <= 363);
|
||||
if (setNo == 5)
|
||||
if (setNo == 5 || setNo == 55 || setNo == 75)
|
||||
return (cardNo >= 118 && cardNo <= 120);
|
||||
if (setNo == 6)
|
||||
if (setNo == 6 || setNo == 56 || setNo == 76)
|
||||
return (cardNo >= 115 && cardNo <= 120);
|
||||
if (setNo == 7)
|
||||
if (setNo == 7 || setNo == 57 || setNo == 77)
|
||||
return (cardNo >= 329 && cardNo <= 363);
|
||||
if (setNo == 8)
|
||||
if (setNo == 8 || setNo == 58 || setNo == 78)
|
||||
return (cardNo >= 117 && cardNo <= 120);
|
||||
if (setNo == 10)
|
||||
if (setNo == 10 || setNo == 60 || setNo == 80)
|
||||
return (cardNo >= 117 && cardNo <= 120);
|
||||
if (setNo == 11)
|
||||
if (setNo == 11 || setNo == 61 || setNo == 81)
|
||||
return (cardNo >= 227 && cardNo <= 266);
|
||||
if (setNo == 12)
|
||||
if (setNo == 12 || setNo == 62 || setNo == 82)
|
||||
return (cardNo >= 185 && cardNo <= 194);
|
||||
if (setNo == 13)
|
||||
if (setNo == 13 || setNo == 63 || setNo == 83)
|
||||
return (cardNo >= 185 && cardNo <= 194);
|
||||
if (setNo == 15)
|
||||
if (setNo == 15 || setNo == 65 || setNo == 85)
|
||||
return (cardNo >= 187 && cardNo <= 194);
|
||||
if (setNo == 17)
|
||||
if (setNo == 17 || setNo == 67 || setNo == 87)
|
||||
return (cardNo >= 145 && cardNo <= 148);
|
||||
if (setNo == 18)
|
||||
if (setNo == 18 || setNo == 68 || setNo == 88)
|
||||
return (cardNo >= 134 && cardNo <= 140);
|
||||
if (setNo == 20)
|
||||
return (cardNo >= 416 && cardNo <= 469);
|
||||
@@ -317,16 +317,8 @@ var Card = Class.extend({
|
||||
return (cardNo >= 55 && cardNo <= 58);
|
||||
if (setNo == 40)
|
||||
return (cardNo >= 273 && cardNo <= 309);
|
||||
if (setNo == 53)
|
||||
return (cardNo == 120);
|
||||
if (setNo == 57)
|
||||
return (cardNo == 359);
|
||||
if (setNo == 63 || setNo == 83)
|
||||
return (cardNo == 188);
|
||||
if (setNo == 73 || setNo == 93)
|
||||
return (cardNo == 120);
|
||||
if (setNo == 77 || setNo == 97)
|
||||
return (cardNo == 359);
|
||||
if (setNo == 100 || setNo == 150)
|
||||
return (cardNo == 1);
|
||||
if (setNo == 101 || setNo == 151)
|
||||
return (cardNo >= 57 && cardNo <= 64);
|
||||
|
||||
|
||||
@@ -304,7 +304,7 @@
|
||||
style: Standard
|
||||
}
|
||||
title: Far-seeing Eyes
|
||||
unique: true
|
||||
unique: false
|
||||
culture: elven
|
||||
twilight: 2
|
||||
type: condition
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
71_333: {
|
||||
cardInfo: {
|
||||
//Either a full URL, or a subpath for the PC image server
|
||||
imagePath: errata/LOTR-EN01E333.1.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: 1_333
|
||||
//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: 1
|
||||
rarity: U
|
||||
setNum: "11"
|
||||
cardNum: 333
|
||||
// Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
style: Standard
|
||||
}
|
||||
title: Midgewater Moors
|
||||
twilight: 1
|
||||
type: site
|
||||
site: 2
|
||||
block: fellowship
|
||||
keyword: plains
|
||||
direction: left
|
||||
effects: {
|
||||
type: trigger
|
||||
trigger: {
|
||||
type: played
|
||||
filter: minion
|
||||
}
|
||||
effect: {
|
||||
type: choice
|
||||
player: freeps
|
||||
texts: [
|
||||
Exert a companion
|
||||
Discard a card from hand
|
||||
]
|
||||
effects: [
|
||||
{
|
||||
type: exert
|
||||
player: freeps
|
||||
filter: choose(companion)
|
||||
}
|
||||
{
|
||||
type: discardFromHand
|
||||
hand: freeps
|
||||
player: freeps
|
||||
forced: false
|
||||
count: 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
gametext: <b>Plains.</b> Each time a minion is played, the Free Peoples player must exert a companion or discard a card from hand.
|
||||
lore: ""
|
||||
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: {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,68 @@
|
||||
{
|
||||
|
||||
77_332: {
|
||||
cardInfo: {
|
||||
//Either a full URL, or a subpath for the PC image server
|
||||
imagePath: errata/57_332.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: 7_332
|
||||
//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: 7U332
|
||||
rarity: U
|
||||
setNum: "7"
|
||||
cardNum: 332
|
||||
// Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
style: Standard
|
||||
}
|
||||
title: Rohirrim Road
|
||||
type: site
|
||||
block: King
|
||||
twilight: 0
|
||||
site: 1
|
||||
direction: left
|
||||
effects: {
|
||||
type: activated
|
||||
phase: fellowship
|
||||
cost: [
|
||||
{
|
||||
type: exert
|
||||
count: 1
|
||||
filter: choose(culture(rohan),Man)
|
||||
}
|
||||
]
|
||||
effect: {
|
||||
type: AddModifier
|
||||
modifier: {
|
||||
type: ModifyCost
|
||||
filter: or(condition,possession),shadow
|
||||
amount: 2
|
||||
}
|
||||
until: start(regroup)
|
||||
}
|
||||
}
|
||||
gametext: <b>Fellowship:</b> Exert a [Rohan] Man to make the twilight cost of each Shadow condition and possession +2 until the regroup phase.
|
||||
lore: ""
|
||||
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: {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
57_359: {
|
||||
cardInfo: {
|
||||
//Either a full URL, or a subpath for the PC image server
|
||||
@@ -16,7 +79,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: 7U359
|
||||
rarity: U
|
||||
setNum: "7"
|
||||
@@ -61,4 +124,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,193 +1,207 @@
|
||||
# {
|
||||
{
|
||||
|
||||
# 81_227: {
|
||||
# cardInfo: {
|
||||
# //Either a full URL, or a subpath for the PC image server
|
||||
# imagePath: errata/81_227.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: 11_227
|
||||
# //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: 11U227
|
||||
# rarity: U
|
||||
# setNum: "11"
|
||||
# cardNum: 227
|
||||
# // Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
# style: Standard
|
||||
# }
|
||||
# title: Anduin Banks
|
||||
# unique: false
|
||||
# twilight: 0
|
||||
# type: Site
|
||||
# block: Shadows
|
||||
# direction: Left
|
||||
# keyword: river
|
||||
# effects: {
|
||||
# type: modifier
|
||||
# modifier: {
|
||||
# type: modifyArcheryTotal
|
||||
# side: shadow
|
||||
# amount: {
|
||||
# type: forEachYouCanSpot
|
||||
# filter: companion
|
||||
# over: 5
|
||||
# multiplier: 2
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
# gametext: <b>River.</b> The minion archery total is +X for each companion you can spot over 5, where X is the current region number.
|
||||
# lore: ""
|
||||
# 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: {
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
81_227: {
|
||||
cardInfo: {
|
||||
//Either a full URL, or a subpath for the PC image server
|
||||
imagePath: errata/LOTR-EN11E227.1.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: 11_227
|
||||
//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: 11U227
|
||||
rarity: U
|
||||
setNum: "11"
|
||||
cardNum: 227
|
||||
// Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
style: Standard
|
||||
}
|
||||
title: Anduin Banks
|
||||
unique: false
|
||||
twilight: 0
|
||||
type: Site
|
||||
block: Shadows
|
||||
direction: Left
|
||||
keyword: river
|
||||
effects: [
|
||||
{
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: modifyArcheryTotal
|
||||
side: shadow
|
||||
amount: {
|
||||
type: multiply
|
||||
source: {
|
||||
type: forEachYouCanSpot
|
||||
filter: companion
|
||||
over: 5
|
||||
}
|
||||
multiplier: {
|
||||
type: regionNumber
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
gametext: <b>River.</b> The minion archery total is +X for each companion you can spot over 5, where X is the current region number.
|
||||
lore: ""
|
||||
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: {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# 81_232: {
|
||||
# cardInfo: {
|
||||
# //Either a full URL, or a subpath for the PC image server
|
||||
# imagePath: errata/81_232.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: 11_232
|
||||
# //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: 11S232
|
||||
# rarity: S
|
||||
# setNum: "11"
|
||||
# cardNum: 232
|
||||
# // Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
# style: Standard
|
||||
# }
|
||||
# title: Cavern Entrance
|
||||
# unique: false
|
||||
# twilight: 1
|
||||
# type: Site
|
||||
# block: Shadows
|
||||
# direction: Left
|
||||
# requires: {
|
||||
# type: canSpot
|
||||
# filter: orc
|
||||
# }
|
||||
# effects: [
|
||||
# {
|
||||
# type: modifier
|
||||
# modifier: {
|
||||
# type: addKeyword
|
||||
# filter: dwarf
|
||||
# keyword: damage+1
|
||||
# }
|
||||
# },
|
||||
# {
|
||||
# type: trigger
|
||||
# optional: true,
|
||||
# trigger: {
|
||||
# type: winsSkirmish
|
||||
# filter: dwarf
|
||||
# },
|
||||
# effect: {
|
||||
# type: wound
|
||||
# filter: choose(orc)
|
||||
# }
|
||||
# }
|
||||
# ]
|
||||
# gametext: <b>Underground.</b> At the start of each skirmish, you may exert your character in that skirmish to prevent special abilities being used.
|
||||
# lore: ""
|
||||
# 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: {
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
81_232: {
|
||||
cardInfo: {
|
||||
//Either a full URL, or a subpath for the PC image server
|
||||
imagePath: errata/LOTR-EN11E232.1.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: 11_232
|
||||
//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: 11S232
|
||||
rarity: S
|
||||
setNum: "11"
|
||||
cardNum: 232
|
||||
// Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
style: Standard
|
||||
}
|
||||
title: Cavern Entrance
|
||||
unique: false
|
||||
twilight: 1
|
||||
type: Site
|
||||
block: Shadows
|
||||
direction: Left
|
||||
effects: [
|
||||
{
|
||||
type: trigger
|
||||
trigger: {
|
||||
type: startOfPhase
|
||||
phase: skirmish
|
||||
}
|
||||
cost: {
|
||||
type: exert
|
||||
filter: choose(your,character,InSkirmish)
|
||||
}
|
||||
effect: [
|
||||
{
|
||||
type: addmodifier
|
||||
modifier: {
|
||||
type: cantUseSpecialAbilities
|
||||
filter: side(freeps)
|
||||
}
|
||||
until: end(skirmish)
|
||||
}
|
||||
{
|
||||
type: addmodifier
|
||||
modifier: {
|
||||
type: cantUseSpecialAbilities
|
||||
filter: side(shadow)
|
||||
}
|
||||
until: end(skirmish)
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
gametext: <b>Underground.</b> At the start of each skirmish, you may exert your character in that skirmish to prevent special abilities being used.
|
||||
lore: ""
|
||||
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: {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# 81_249: {
|
||||
# cardInfo: {
|
||||
# //Either a full URL, or a subpath for the PC image server
|
||||
# imagePath: errata/81_249.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: 11_249
|
||||
# //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: 11S249
|
||||
# rarity: S
|
||||
# setNum: "11"
|
||||
# cardNum: 249
|
||||
# // Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
# style: Standard
|
||||
# }
|
||||
# title: Neekerbreekers’ Bog
|
||||
# unique: false
|
||||
# twilight: 1
|
||||
# type: Site
|
||||
# block: Shadows
|
||||
# direction: Left
|
||||
# effects: [
|
||||
# {
|
||||
# type: modifier
|
||||
# modifier: {
|
||||
# type: addKeyword
|
||||
# filter: dwarf
|
||||
# keyword: damage+1
|
||||
# }
|
||||
# },
|
||||
# {
|
||||
# type: trigger
|
||||
# optional: true,
|
||||
# trigger: {
|
||||
# type: winsSkirmish
|
||||
# filter: dwarf
|
||||
# },
|
||||
# effect: {
|
||||
# type: wound
|
||||
# filter: choose(orc)
|
||||
# }
|
||||
# }
|
||||
# ]
|
||||
# gametext: <b>Marsh.</b> When the fellowship moves here in region 1 or 2, heal each character who has resistance 5 or more and exert all others.
|
||||
# lore: ""
|
||||
# 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: {
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
81_249: {
|
||||
cardInfo: {
|
||||
//Either a full URL, or a subpath for the PC image server
|
||||
imagePath: errata/LOTR-EN11E249.1.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: 11_249
|
||||
//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: 11S249
|
||||
rarity: S
|
||||
setNum: "11"
|
||||
cardNum: 249
|
||||
// Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
style: Standard
|
||||
}
|
||||
title: Neekerbreekers' Bog
|
||||
unique: false
|
||||
twilight: 1
|
||||
type: Site
|
||||
block: Shadows
|
||||
direction: Left
|
||||
effects: [
|
||||
{
|
||||
type: trigger
|
||||
optional: true
|
||||
trigger: {
|
||||
type: movesTo
|
||||
filter: self
|
||||
}
|
||||
requires: {
|
||||
type: location
|
||||
filter: regionNumber(1-2)
|
||||
}
|
||||
effect: [
|
||||
{
|
||||
type: heal
|
||||
filter: all(character,ResistanceMoreThan(4))
|
||||
}
|
||||
{
|
||||
type: exert
|
||||
filter: all(character,ResistanceLessThan(5))
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
gametext: <b>Marsh.</b> When the fellowship moves here in region 1 or 2, heal each character who has resistance 5 or more and exert all others.
|
||||
lore: ""
|
||||
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: {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,209 +1,216 @@
|
||||
# {
|
||||
{
|
||||
|
||||
88_134: {
|
||||
cardInfo: {
|
||||
//Either a full URL, or a subpath for the PC image server
|
||||
imagePath: errata/LOTR-EN18E134.1.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: 18_134
|
||||
//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: 18U134
|
||||
rarity: U
|
||||
setNum: "18"
|
||||
cardNum: 134
|
||||
// Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
style: Standard
|
||||
}
|
||||
title: Doorway to Doom
|
||||
unique: false
|
||||
twilight: 1
|
||||
type: Site
|
||||
block: Shadows
|
||||
direction: Left
|
||||
effects: [
|
||||
{
|
||||
type: trigger
|
||||
optional: true
|
||||
trigger: {
|
||||
type: movesTo
|
||||
filter: self
|
||||
}
|
||||
effect: [
|
||||
{
|
||||
type: wound
|
||||
player: freeps
|
||||
times: 2
|
||||
filter: choose(your,character)
|
||||
}
|
||||
{
|
||||
type: wound
|
||||
player: shadow
|
||||
times: 2
|
||||
filter: choose(your,character)
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: CantReplaceSite
|
||||
filter: self
|
||||
}
|
||||
}
|
||||
]
|
||||
gametext: <b>Mountain.</b> When the fellowship moves to this site, each player wounds two of their characters. This site cannot be replaced.
|
||||
lore: ""
|
||||
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: {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# 88_136: {
|
||||
# cardInfo: {
|
||||
# //Either a full URL, or a subpath for the PC image server
|
||||
# imagePath: errata/88_136.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: 18_136
|
||||
# //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: 18U136
|
||||
# rarity: U
|
||||
# setNum: "18"
|
||||
# cardNum: 136
|
||||
# // Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
# style: Standard
|
||||
# }
|
||||
# title: Mithlond
|
||||
# unique: false
|
||||
# twilight: 2
|
||||
# type: Site
|
||||
# block: Shadows
|
||||
# direction: Left
|
||||
# requires: {
|
||||
# type: canSpot
|
||||
# filter: orc
|
||||
# }
|
||||
# effects: [
|
||||
# {
|
||||
# type: modifier
|
||||
# modifier: {
|
||||
# type: addKeyword
|
||||
# filter: dwarf
|
||||
# keyword: damage+1
|
||||
# }
|
||||
# },
|
||||
# {
|
||||
# type: trigger
|
||||
# optional: true,
|
||||
# trigger: {
|
||||
# type: winsSkirmish
|
||||
# filter: dwarf
|
||||
# },
|
||||
# effect: {
|
||||
# type: wound
|
||||
# filter: choose(orc)
|
||||
# }
|
||||
# }
|
||||
# ]
|
||||
# gametext: <b>River.</b> When the fellowship moves to this site in region 3, each player heals each of his or her characters.
|
||||
# lore: ""
|
||||
# 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: {
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
88_136: {
|
||||
cardInfo: {
|
||||
//Either a full URL, or a subpath for the PC image server
|
||||
imagePath: errata/LOTR-EN18E136.1.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: 18_136
|
||||
//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: 18U136
|
||||
rarity: U
|
||||
setNum: "18"
|
||||
cardNum: 136
|
||||
// Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
style: Standard
|
||||
}
|
||||
title: Mithlond
|
||||
unique: false
|
||||
twilight: 2
|
||||
type: Site
|
||||
block: Shadows
|
||||
direction: Left
|
||||
effects: [
|
||||
{
|
||||
type: trigger
|
||||
optional: false
|
||||
trigger: {
|
||||
type: movesTo
|
||||
filter: self
|
||||
}
|
||||
requires: {
|
||||
type: location
|
||||
filter: regionNumber(3)
|
||||
}
|
||||
effect: [
|
||||
{
|
||||
type: heal
|
||||
filter: all(character)
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
gametext: <b>River.</b> When the fellowship moves to this site in region 3, each player heals each of his or her characters.
|
||||
lore: ""
|
||||
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: {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# 88_139: {
|
||||
# cardInfo: {
|
||||
# //Either a full URL, or a subpath for the PC image server
|
||||
# imagePath: errata/88_139.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: 18_139
|
||||
# //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: 18U139
|
||||
# rarity: U
|
||||
# setNum: "18"
|
||||
# cardNum: 139
|
||||
# // Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
# style: Standard
|
||||
# }
|
||||
# title: Rath Dínen
|
||||
# unique: false
|
||||
# twilight: 0
|
||||
# type: Site
|
||||
# block: Shadows
|
||||
# direction: Left
|
||||
# requires: {
|
||||
# type: canSpot
|
||||
# filter: orc
|
||||
# }
|
||||
# effects: [
|
||||
# {
|
||||
# type: modifier
|
||||
# modifier: {
|
||||
# type: addKeyword
|
||||
# filter: dwarf
|
||||
# keyword: damage+1
|
||||
# }
|
||||
# },
|
||||
# {
|
||||
# type: trigger
|
||||
# optional: true,
|
||||
# trigger: {
|
||||
# type: winsSkirmish
|
||||
# filter: dwarf
|
||||
# },
|
||||
# effect: {
|
||||
# type: wound
|
||||
# filter: choose(orc)
|
||||
# }
|
||||
# }
|
||||
# ]
|
||||
# gametext: When sanctuary healing at this site, the Free Peoples player heals only 3 wounds instead of 5.
|
||||
# lore: ""
|
||||
# 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: {
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
|
||||
# 88_139: {
|
||||
# cardInfo: {
|
||||
# //Either a full URL, or a subpath for the PC image server
|
||||
# imagePath: errata/88_139.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: 18_139
|
||||
# //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: 18U139
|
||||
# rarity: U
|
||||
# setNum: "18"
|
||||
# cardNum: 139
|
||||
# // Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
# style: Standard
|
||||
# }
|
||||
# title: Steward's Tomb
|
||||
# unique: false
|
||||
# twilight: 1
|
||||
# type: Site
|
||||
# block: Shadows
|
||||
# direction: Left
|
||||
# requires: {
|
||||
# type: canSpot
|
||||
# filter: orc
|
||||
# }
|
||||
# effects: [
|
||||
# {
|
||||
# type: modifier
|
||||
# modifier: {
|
||||
# type: addKeyword
|
||||
# filter: dwarf
|
||||
# keyword: damage+1
|
||||
# }
|
||||
# },
|
||||
# {
|
||||
# type: trigger
|
||||
# optional: true,
|
||||
# trigger: {
|
||||
# type: winsSkirmish
|
||||
# filter: dwarf
|
||||
# },
|
||||
# effect: {
|
||||
# type: wound
|
||||
# filter: choose(orc)
|
||||
# }
|
||||
# }
|
||||
# ]
|
||||
# gametext: If this site is not a sanctuary, wounds cannot be prevented or healed, and burdens cannot be removed.
|
||||
# lore: ""
|
||||
# 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: {
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
88_139: {
|
||||
cardInfo: {
|
||||
//Either a full URL, or a subpath for the PC image server
|
||||
imagePath: errata/LOTR-EN18E139.1.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: 18_139
|
||||
//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: 18U139
|
||||
rarity: U
|
||||
setNum: "18"
|
||||
cardNum: 139
|
||||
// Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
style: Standard
|
||||
}
|
||||
title: Steward's Tomb
|
||||
unique: false
|
||||
twilight: 1
|
||||
type: Site
|
||||
block: Shadows
|
||||
direction: Left
|
||||
effects: [
|
||||
{
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: CantRemoveBurdens
|
||||
filter: any
|
||||
requires: {
|
||||
type: location
|
||||
filter: sanctuary
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: CantHeal
|
||||
filter: any
|
||||
requires: {
|
||||
type: location
|
||||
filter: not(sanctuary)
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: CantPreventWounds
|
||||
requires: {
|
||||
type: location
|
||||
filter: not(sanctuary)
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
gametext: If this site is not a sanctuary, wounds cannot be prevented or healed, and burdens cannot be removed.
|
||||
lore: ""
|
||||
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: {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
100_1: {
|
||||
cardInfo: {
|
||||
//Either a full URL, or a subpath for the PC image server
|
||||
imagePath: errata/LOTR-ENV0E001.0.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: 18_139
|
||||
//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: 18U139+
|
||||
rarity: U
|
||||
setNum: "18"
|
||||
cardNum: 139
|
||||
// Standard, Masterwork, Tengwar, FullArt, etc. Top-level cards are always Standard.
|
||||
style: Standard
|
||||
}
|
||||
title: Rath Dínen
|
||||
unique: false
|
||||
twilight: 0
|
||||
type: Site
|
||||
block: Shadows
|
||||
direction: Left
|
||||
effects: [
|
||||
{
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: modifySanctuaryHeal
|
||||
amount: -2
|
||||
}
|
||||
}
|
||||
]
|
||||
gametext: When sanctuary healing at this site, the Free Peoples player heals only 3 wounds instead of 5.
|
||||
lore: ""
|
||||
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: {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -486,7 +486,7 @@
|
||||
effects: {
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: mayNotReplaceSite
|
||||
type: CantReplaceSite
|
||||
filter: site,inSameRegion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -417,7 +417,7 @@
|
||||
"order": 43,
|
||||
"hall":true,
|
||||
"playtest":true,
|
||||
"set":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 101, 151],
|
||||
"set":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 100, 101, 151],
|
||||
"erratasets": [
|
||||
51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,
|
||||
71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
100U1
|
||||
@@ -511,6 +511,15 @@
|
||||
"playable": true
|
||||
},
|
||||
|
||||
{
|
||||
"setId": "100",
|
||||
"setName": "PC Supplements",
|
||||
"rarityFile": "/set100-rarity.txt",
|
||||
"originalSet": false,
|
||||
"merchantable": false,
|
||||
"needsLoading": false,
|
||||
"playable": true
|
||||
},
|
||||
|
||||
{
|
||||
"setId": "101",
|
||||
@@ -522,6 +531,16 @@
|
||||
"playable": true
|
||||
},
|
||||
|
||||
{
|
||||
"setId": "150",
|
||||
"setName": "TEST-PC Supplements",
|
||||
"rarityFile": "/set150-rarity.txt",
|
||||
"originalSet": false,
|
||||
"merchantable": false,
|
||||
"needsLoading": false,
|
||||
"playable": true
|
||||
},
|
||||
|
||||
{
|
||||
"setId": "151",
|
||||
"setName": "TEST-Shadow of the Past",
|
||||
|
||||
@@ -281,9 +281,9 @@ public class ValueResolver {
|
||||
};
|
||||
} else if (type.equalsIgnoreCase("multiply")) {
|
||||
FieldUtils.validateAllowedFields(object, "multiplier", "source");
|
||||
final int multiplier = FieldUtils.getInteger(object.get("multiplier"), "multiplier");
|
||||
final ValueSource multiplier = ValueResolver.resolveEvaluator(object.get("multiplier"), environment);
|
||||
final ValueSource valueSource = ValueResolver.resolveEvaluator(object.get("source"), 0, environment);
|
||||
return (actionContext) -> new MultiplyEvaluator(multiplier, valueSource.getEvaluator(actionContext));
|
||||
return (actionContext) -> new MultiplyEvaluator(multiplier.getEvaluator(actionContext), valueSource.getEvaluator(actionContext));
|
||||
} else if (type.equalsIgnoreCase("cardAffectedLimitPerPhase")) {
|
||||
FieldUtils.validateAllowedFields(object, "limit", "source", "prefix");
|
||||
final int limit = FieldUtils.getInteger(object.get("limit"), "limit");
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.gempukku.lotro.cards.build.field.effect.modifier;
|
||||
|
||||
import com.gempukku.lotro.cards.build.*;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
|
||||
import com.gempukku.lotro.logic.modifiers.SpecialFlagModifier;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class CantPreventWounds implements ModifierSourceProducer {
|
||||
|
||||
@Override
|
||||
public ModifierSource getModifierSource(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(object,"requires");
|
||||
|
||||
final JSONObject[] conditionArray = FieldUtils.getObjectArray(object.get("requires"), "requires");
|
||||
final Requirement[] requirements = environment.getRequirementFactory().getRequirements(conditionArray, environment);
|
||||
|
||||
return new ModifierSource() {
|
||||
@Override
|
||||
public Modifier getModifier(ActionContext actionContext) {
|
||||
return new SpecialFlagModifier(actionContext.getSource(),
|
||||
new RequirementCondition(requirements, actionContext), ModifierFlag.CANT_PREVENT_WOUNDS);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import com.gempukku.lotro.logic.modifiers.CantReplaceSiteModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class MayNotReplaceSite implements ModifierSourceProducer {
|
||||
public class CantReplaceSite implements ModifierSourceProducer {
|
||||
@Override
|
||||
public ModifierSource getModifierSource(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(object, "filter");
|
||||
@@ -37,14 +37,15 @@ public class ModifierSourceFactory {
|
||||
modifierProducers.put("cantlookorrevealhand", new CantLookOrRevealHand());
|
||||
modifierProducers.put("cantplaycards", new CantPlayCards());
|
||||
modifierProducers.put("cantplayphaseeventsorphasespecialabilities", new CantPlayPhaseEventsOrPhaseSpecialAbilities());
|
||||
modifierProducers.put("cantpreventwounds", new CantPreventWounds());
|
||||
modifierProducers.put("cantremoveburdens", new CantRemoveBurdens());
|
||||
modifierProducers.put("cantreplacesite", new CantReplaceSite());
|
||||
modifierProducers.put("canttakemorewoundsthan", new CantTakeMoreWoundsThan());
|
||||
modifierProducers.put("canttakewounds", new CantTakeWounds());
|
||||
modifierProducers.put("cantusespecialabilities", new CantUseSpecialAbilities());
|
||||
modifierProducers.put("classspot", new ClassSpot());
|
||||
modifierProducers.put("extracosttoplay", new ExtraCostToPlay());
|
||||
modifierProducers.put("hastomoveifable", new HasToMoveIfAble());
|
||||
modifierProducers.put("maynotreplacesite", new MayNotReplaceSite());
|
||||
modifierProducers.put("modifyarcherytotal", new ModifyArcheryTotal());
|
||||
modifierProducers.put("modifycost", new ModifyCost());
|
||||
modifierProducers.put("modifymovelimit", new ModifyMoveLimit());
|
||||
|
||||
@@ -5,15 +5,20 @@ import com.gempukku.lotro.game.state.LotroGame;
|
||||
|
||||
public class MultiplyEvaluator implements Evaluator {
|
||||
private final Evaluator _source;
|
||||
private final int _multiplier;
|
||||
private final Evaluator _multiplier;
|
||||
|
||||
public MultiplyEvaluator(Evaluator multiplier, Evaluator source) {
|
||||
_multiplier = multiplier;
|
||||
_source = source;
|
||||
}
|
||||
|
||||
public MultiplyEvaluator(int multiplier, Evaluator source) {
|
||||
_multiplier = multiplier;
|
||||
_multiplier = new ConstantEvaluator(multiplier);
|
||||
_source = source;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int evaluateExpression(LotroGame game, PhysicalCard self) {
|
||||
return _multiplier * _source.evaluateExpression(game, self);
|
||||
return _multiplier.evaluateExpression(game, self) * _source.evaluateExpression(game, self);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user