diff --git a/gemp-lotr/card-definition-example.hjson b/gemp-lotr/card-definition-example.hjson
new file mode 100644
index 000000000..344e7046e
--- /dev/null
+++ b/gemp-lotr/card-definition-example.hjson
@@ -0,0 +1,89 @@
+{
+ 1_12E: {
+ cardInfo: {
+ imagePath: errata/71_13.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: 01_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.
+ version: 0
+ collInfo: 1R13
+ rarity: R
+ setNum: "1"
+ cardNum: 12
+ // Standard, Masterwork, Tengwar, FullArt, etc
+ style: Standard
+ }
+ title: Gimli
+ subtitle: Son of Gloin
+ unique: true
+ culture: Dwarven
+ twilight: 2
+ type: Companion
+ requires: {
+ ...
+ }
+ effects: [
+ ...
+ ]
+ gametext: Damage +1
Fellowship: If the twilight pool has fewer than 2 twilight tokens, add (2) and place a card from hand beneath your draw deck to draw a card.
+ lore: "Gimli now walked ahead by the wizard's side, so eager was he to come to Moria."
+ promotext: ""
+ alts: {
+ promos: {
+ //These are all CardInfo objects
+ tengwar: {
+ imagePath: decipher/LOTR01013T.jpg
+ collInfo: 1R13T
+ }
+ legends: {
+ imagePath: decipher/LOTR01F013.jpg
+ collInfo: 1RF13
+ }
+ masterwork: {
+ imagePath: promos/masterworks/LOTR-EN01O013.0_card.jpg
+ collInfo: 1O13
+ }
+ }
+ errata: {
+ pc: [
+ {
+ imagePath: errata/LOTR-EN01E013.1_card.jpg
+ version: 1
+ twilight: 4,
+ effects: [
+ ...
+ ]
+ alts: {
+ fullArt: promos/full-art/LOTR-EN01F013.1_card.jpg
+ }
+ }
+ {
+ imagePath: errata/LOTR-EN01E013.2_card.jpg
+ version: 1
+ twilight: 3,
+ effects: [
+ ...
+ ]
+ alts: {
+ fullArt: promos/full-art/LOTR-EN01F013.2_card.jpg
+ }
+ }
+ ]
+ decipher: {
+ imagePath: errata/decipher/LOTR-EN01S013.1_card.jpg
+ version: 1
+ }
+ }
+ }
+ }
+
+
+}
diff --git a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Culture.java b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Culture.java
index 18ad853a6..34b095792 100644
--- a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Culture.java
+++ b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Culture.java
@@ -45,8 +45,12 @@ public enum Culture implements Filterable {
public static Culture findCulture(String name) {
String nameCaps = name.toUpperCase().replace(' ', '_').replace('-', '_');
+ String nameLower = name.toLowerCase();
+ if(nameLower.equals("ringwraith"))
+ return WRAITH;
+
for (Culture culture : values()) {
- if (culture.getHumanReadable().equals(name) || culture.toString().equals(nameCaps))
+ if (culture.getHumanReadable().toLowerCase().equals(nameLower) || culture.toString().equals(nameCaps))
return culture;
}
return null;
diff --git a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/SitesBlock.java b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/SitesBlock.java
index f6a808d78..212ff116b 100644
--- a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/SitesBlock.java
+++ b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/SitesBlock.java
@@ -17,4 +17,14 @@ public enum SitesBlock {
public String getHumanReadable() {
return _humanReadable;
}
+
+ public static SitesBlock findBlock(String name) {
+ String nameCaps = name.toUpperCase().replace(' ', '_').replace('-', '_');
+ String nameLower = name.toLowerCase();
+ for (SitesBlock block : values()) {
+ if (block.getHumanReadable().toLowerCase().equals(nameLower) || block.toString().equals(nameCaps))
+ return block;
+ }
+ return null;
+ }
}
diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/LotroCardBlueprintBuilder.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/LotroCardBlueprintBuilder.java
index 976f4fbaf..defaac68c 100644
--- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/LotroCardBlueprintBuilder.java
+++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/LotroCardBlueprintBuilder.java
@@ -49,6 +49,10 @@ public class LotroCardBlueprintBuilder implements CardGenerationEnvironment {
fieldProcessors.put("gametext", new NullProcessor());
fieldProcessors.put("lore", new NullProcessor());
fieldProcessors.put("promotext", new NullProcessor());
+
+ //Soon! But not yet
+ fieldProcessors.put("cardinfo", new NullProcessor());
+ fieldProcessors.put("alts", new NullProcessor());
}
public LotroCardBlueprint buildFromJson(JSONObject json) throws InvalidCardDefinitionException {
diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/CultureFieldProcessor.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/CultureFieldProcessor.java
index b5c89fcdb..8b8338543 100644
--- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/CultureFieldProcessor.java
+++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/CultureFieldProcessor.java
@@ -10,7 +10,7 @@ import com.gempukku.lotro.common.Side;
public class CultureFieldProcessor implements FieldProcessor {
@Override
public void processField(String key, Object value, BuiltLotroCardBlueprint blueprint, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
- final Culture culture = FieldUtils.getEnum(Culture.class, value, key);
+ final Culture culture = Culture.findCulture(FieldUtils.getString(value, key));
blueprint.setCulture(culture);
if (culture != Culture.GOLLUM)
diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/SiteBlockFieldProcessor.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/SiteBlockFieldProcessor.java
index 81c8347ea..233c35770 100644
--- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/SiteBlockFieldProcessor.java
+++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/SiteBlockFieldProcessor.java
@@ -9,6 +9,6 @@ import com.gempukku.lotro.common.SitesBlock;
public class SiteBlockFieldProcessor implements FieldProcessor {
@Override
public void processField(String key, Object value, BuiltLotroCardBlueprint blueprint, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
- blueprint.setSiteBlock(FieldUtils.getEnum(SitesBlock.class, value, key));
+ blueprint.setSiteBlock(SitesBlock.findBlock(FieldUtils.getString(value, key)));
}
}