diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/CavePaintings.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/CavePaintings.java index 16d7395..14ab7d9 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/CavePaintings.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/CavePaintings.java @@ -42,6 +42,20 @@ public class CavePaintings extends EventCard { this.NPrestigeRem = NPrestigeRem; this.NPrestigeMul = NPrestigeMul; } + /** + * Creates a CavePaintings event card with the specified era and effect parameters. + * + * @param Era the era of the event card. + * @param NLower the minimum number of Artist cards required to avoid the prestige penalty. + * @param NPrestigeRem the amount of Prestige removed if the player has fewer Artist cards than {@code NLower}. + * @param NPrestigeMul the Prestige multiplier applied if the player has at least {@code NLower} Artist cards. + */ + public CavePaintings(String idIMG,int Era, int NLower, int NPrestigeRem, int NPrestigeMul) { + super(idIMG,Era, EventType.CAVE_PAINTINGS); + this.NLower = NLower; + this.NPrestigeRem = NPrestigeRem; + this.NPrestigeMul = NPrestigeMul; + } /** * Activates the CavePaintings event for the specified list of players. diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Hunt.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Hunt.java index 090b3bd..6c11e90 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Hunt.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Hunt.java @@ -30,6 +30,17 @@ public class Hunt extends EventCard { this.foodMultiplier = 1; this.prestigeMultiplier = prestigeMultiplier; } + /** + * Creates a new Hunt event card. + * + * @param Era the era of the card + * @param prestigeMultiplier prestige points multiplicator used during the event + */ + public Hunt(String idIMG,int Era, int prestigeMultiplier) { + super(Era, EventType.HUNT); + this.foodMultiplier = 1; + this.prestigeMultiplier = prestigeMultiplier; + } /** * Activates the event card "Hunt". diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/ShamanicRitual.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/ShamanicRitual.java index 70703d5..5fcb98c 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/ShamanicRitual.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/ShamanicRitual.java @@ -33,6 +33,19 @@ public class ShamanicRitual extends EventCard { this.prestigeToAdd = prestigeToAdd; this.prestigeToRemove = prestigeToRemove; + } + /** + * Creates a new ShamanicRitual event card. + * + * @param Era the era of the card + * @param prestigeToAdd prestige points awarded to the player with the most icons + * @param prestigeToRemove prestige points removed from the player with the fewest icons + */ + public ShamanicRitual(String idIMG,int Era, int prestigeToAdd, int prestigeToRemove) { + super(Era, EventType.SHAMANIC_RITUAL); + this.prestigeToAdd = prestigeToAdd; + this.prestigeToRemove = prestigeToRemove; + } /** diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Sustenance.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Sustenance.java index add51ff..0e11cb6 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Sustenance.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/Events/Sustenance.java @@ -34,6 +34,16 @@ public class Sustenance extends EventCard { super(Era, EventType.SUSTENANCE); this.PrestigeDebt = PrestigeDebt; } + /** + * Creates a Sustenance event card with the specified era and prestige debt value. + * + * @param Era the era of the event card. + * @param PrestigeDebt the prestige penalty multiplier for unpaid Food units. + */ + public Sustenance(String idIMG,int Era, int PrestigeDebt) { + super(idIMG,Era, EventType.SUSTENANCE); + this.PrestigeDebt = PrestigeDebt; + } /** * Activates the Sustenance event for the specified list of players. diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/DecksCreator.java b/src/main/java/it/polimi/ingsw/gc14/Model/DecksCreator.java index 971b545..93006f1 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/DecksCreator.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/DecksCreator.java @@ -133,45 +133,45 @@ public class DecksCreator { */ private static TribeCard createCard(TribeCardDefinition def) { int era = def.era; - + String id = def.id; int[] p = def.params.stream().mapToInt(d -> ((Double) d).intValue()).toArray(); if(def.isEvent) { return switch (def.type) { - case "Sustenance" -> new Sustenance(era,p[0]); - case "Hunt" -> new Hunt(era,p[0]); - case "CavePaintings" -> new CavePaintings(era,p[0],p[1],p[2]); - case "ShamanicRitual" -> new ShamanicRitual(era,p[0],p[1]); + case "Sustenance" -> new Sustenance(def.id,era,p[0]); + case "Hunt" -> new Hunt(def.id,era,p[0]); + case "CavePaintings" -> new CavePaintings(def.id,era,p[0],p[1],p[2]); + case "ShamanicRitual" -> new ShamanicRitual(def.id,era,p[0],p[1]); default -> throw new IllegalArgumentException("Tipo sconosciuto: " + def.type); }; } return switch (def.type) { case "Hunter" -> p.length == 0 - ? new Hunter(era, def.armed) - : new Hunter(era, def.armed, p[0]); + ? new Hunter(def.id,era, def.armed) + : new Hunter(def.id,era, def.armed, p[0]); case "Builder" -> switch (p.length) { - case 2 -> new Builder(era, p[0], p[1]); - case 3 -> new Builder(era, p[0], p[1], p[2]); + case 2 -> new Builder(def.id,era, p[0], p[1]); + case 3 -> new Builder(def.id,era, p[0], p[1], p[2]); default -> throw new IllegalArgumentException("Builder: parametri non validi"); }; case "Gatherer" -> switch (p.length) { - case 0 -> new Gatherer(era); - case 1 -> new Gatherer(era, p[0]); + case 0 -> new Gatherer(def.id,era); + case 1 -> new Gatherer(def.id,era, p[0]); default -> throw new IllegalArgumentException("Gatherer: parametri non validi"); }; case "Artist" -> switch (p.length) { - case 0 -> new Artist(era); - case 1 -> new Artist(era, p[0]); + case 0 -> new Artist(def.id,era); + case 1 -> new Artist(def.id,era, p[0]); default -> throw new IllegalArgumentException("Artist: parametri non validi"); }; case "Inventor" -> switch (p.length) { - case 1 -> new Inventor(era, p[0]); - case 2 -> new Inventor(era, p[0], p[1]); + case 1 -> new Inventor(def.id,era, p[0]); + case 2 -> new Inventor(def.id,era, p[0], p[1]); default -> throw new IllegalArgumentException("Inventor: parametri non validi"); }; case "Shaman" -> switch (p.length) { - case 1 -> new Shaman(era, p[0]); - case 2 -> new Shaman(era, p[0], p[1]); + case 1 -> new Shaman(def.id,era, p[0]); + case 2 -> new Shaman(def.id,era, p[0], p[1]); default -> throw new IllegalArgumentException("Shaman: parametri non validi"); }; default -> throw new IllegalArgumentException("Tipo sconosciuto: " + def.type); @@ -188,14 +188,14 @@ public class DecksCreator { */ private static BuildingCard createCard(BuildingCardDefinition def) { return switch (def.effectId) { - case 0 -> new Building0(def.era, def.price, def.prestigeValue); - case 1 -> new Building1(def.era, def.price, def.prestigeValue, CharacterType.valueOf(((String) def.params.get(0)).toUpperCase())); - case 4 -> new Building4(def.era, def.price, def.prestigeValue); - case 8 -> new Building8(def.era, def.price, def.prestigeValue); - case 10 -> new Building10(def.era, def.price, def.prestigeValue); - case 11 -> new Building11(def.era, def.price, def.prestigeValue, CharacterType.valueOf(((String) def.params.get(0)).toUpperCase()), ((Double) def.params.get(1)).intValue()); - case 13 -> new Building13(def.era, def.price, def.prestigeValue); - default -> new BuildingCard(def.effectId, def.era, def.price, def.prestigeValue); + case 0 -> new Building0(def.id,def.era, def.price, def.prestigeValue); + case 1 -> new Building1(def.id,def.era, def.price, def.prestigeValue, CharacterType.valueOf(((String) def.params.get(0)).toUpperCase())); + case 4 -> new Building4(def.id,def.era, def.price, def.prestigeValue); + case 8 -> new Building8(def.id,def.era, def.price, def.prestigeValue); + case 10 -> new Building10(def.id,def.era, def.price, def.prestigeValue); + case 11 -> new Building11(def.id,def.era, def.price, def.prestigeValue, CharacterType.valueOf(((String) def.params.get(0)).toUpperCase()), ((Double) def.params.get(1)).intValue()); + case 13 -> new Building13(def.id,def.era, def.price, def.prestigeValue); + default -> new BuildingCard(def.id,def.effectId, def.era, def.price, def.prestigeValue); }; } @@ -206,6 +206,7 @@ public class DecksCreator { * and a list of additional parameters. */ private static class TribeCardDefinition { + String id; String type; int era; boolean armed; @@ -218,6 +219,7 @@ public class DecksCreator { * Contains the effect ID, era, price, prestige value, and a list of additional parameters. */ private static class BuildingCardDefinition { + String id; int effectId; int era; int price; diff --git a/src/main/resources/Cards/buildingCards.json b/src/main/resources/Cards/buildingCards.json index 085ed72..ae48b3d 100644 --- a/src/main/resources/Cards/buildingCards.json +++ b/src/main/resources/Cards/buildingCards.json @@ -1,26 +1,25 @@ [ - {"effectId": "0","era": 1,"price":4,"prestigeValue": 3,"params": []}, - {"effectId": "1","era": 1,"price":4,"prestigeValue": 4,"params": ["Gatherer"]}, - {"effectId": "1","era": 1,"price":5,"prestigeValue": 3,"params": ["Artist"]}, - {"effectId": "2","era": 1,"price":5,"prestigeValue": 2,"params": []}, - {"effectId": "3","era": 1,"price":3,"prestigeValue": 3,"params": []}, - {"effectId": "4","era": 1,"price":3,"prestigeValue": 4,"params": []}, + {"id":"097","effectId": "0","era": 1,"price":4,"prestigeValue": 3,"params": []}, + {"id":"098","effectId": "1","era": 1,"price":4,"prestigeValue": 4,"params": ["Gatherer"]}, + {"id":"099","effectId": "1","era": 1,"price":5,"prestigeValue": 3,"params": ["Artist"]}, + {"id":"100","effectId": "2","era": 1,"price":5,"prestigeValue": 2,"params": []}, + {"id":"101","effectId": "3","era": 1,"price":3,"prestigeValue": 3,"params": []}, + {"id":"102","effectId": "4","era": 1,"price":3,"prestigeValue": 4,"params": []}, - {"effectId": "6","era": 2,"price":4,"prestigeValue": 0,"params": []}, - {"effectId": "5","era": 2,"price":6,"prestigeValue": 4,"params": []}, - {"effectId": "1","era": 2,"price":7,"prestigeValue": 4,"params": ["Inventor"]}, - {"effectId": "7","era": 2,"price":7,"prestigeValue": 2,"params": []}, - {"effectId": "8","era": 2,"price":6,"prestigeValue": 4,"params": []}, - {"effectId": "9","era": 2,"price":5,"prestigeValue": 6,"params": []}, - {"effectId": "10","era": 2,"price":5,"prestigeValue": 6,"params": []}, - - {"effectId": "11","era": 3,"price":8,"prestigeValue": 8,"params": ["Hunter",3]}, - {"effectId": "11","era": 3,"price":7,"prestigeValue": 6,"params": ["Gatherer",4]}, - {"effectId": "11","era": 3,"price":7,"prestigeValue": 4,"params": ["Shaman",4]}, - {"effectId": "11","era": 3,"price":6,"prestigeValue": 3,"params": ["Builder",4]}, - {"effectId": "11","era": 3,"price":7,"prestigeValue": 4,"params": ["Artist",4]}, - {"effectId": "11","era": 3,"price":6,"prestigeValue": 6,"params": ["Inventor",2]}, - {"effectId": "12","era": 3,"price":9,"prestigeValue": 3,"params": []}, - {"effectId": "13","era": 3,"price":10,"prestigeValue": 0,"params": []} + {"id":"103","effectId": "6","era": 2,"price":4,"prestigeValue": 0,"params": []}, + {"id":"104","effectId": "5","era": 2,"price":6,"prestigeValue": 4,"params": []}, + {"id":"105","effectId": "1","era": 2,"price":7,"prestigeValue": 4,"params": ["Inventor"]}, + {"id":"106","effectId": "7","era": 2,"price":7,"prestigeValue": 2,"params": []}, + {"id":"107","effectId": "8","era": 2,"price":6,"prestigeValue": 4,"params": []}, + {"id":"108","effectId": "9","era": 2,"price":5,"prestigeValue": 6,"params": []}, + {"id":"109","effectId": "10","era": 2,"price":5,"prestigeValue": 6,"params": []}, + {"id":"110","effectId": "11","era": 3,"price":8,"prestigeValue": 8,"params": ["Hunter",3]}, + {"id":"111","effectId": "11","era": 3,"price":7,"prestigeValue": 6,"params": ["Gatherer",4]}, + {"id":"112","effectId": "11","era": 3,"price":7,"prestigeValue": 4,"params": ["Shaman",4]}, + {"id":"113","effectId": "11","era": 3,"price":6,"prestigeValue": 3,"params": ["Builder",4]}, + {"id":"114","effectId": "11","era": 3,"price":7,"prestigeValue": 4,"params": ["Artist",4]}, + {"id":"115","effectId": "11","era": 3,"price":6,"prestigeValue": 6,"params": ["Inventor",2]}, + {"id":"116","effectId": "12","era": 3,"price":9,"prestigeValue": 3,"params": []}, + {"id":"117","effectId": "13","era": 3,"price":10,"prestigeValue": 0,"params": []} ] \ No newline at end of file diff --git a/src/main/resources/Cards/tribe_era1.json b/src/main/resources/Cards/tribe_era1.json index e8ad026..7f61b1d 100644 --- a/src/main/resources/Cards/tribe_era1.json +++ b/src/main/resources/Cards/tribe_era1.json @@ -1,5 +1,6 @@ [ { + "id": "001", "isEvent": false, "type": "Hunter", "era": 1, @@ -7,6 +8,7 @@ "params": [] }, { + "id": "002", "isEvent": false, "type": "Hunter", "era": 1, @@ -14,6 +16,7 @@ "params": [] }, { + "id": "003", "isEvent": false, "type": "Hunter", "era": 1, @@ -21,6 +24,7 @@ "params": [] }, { + "id": "004", "isEvent": false, "type": "Hunter", "era": 1, @@ -30,6 +34,7 @@ ] }, { + "id": "005", "isEvent": false, "type": "Hunter", "era": 1, @@ -39,6 +44,7 @@ ] }, { + "id": "006", "isEvent": false, "type": "Builder", "era": 1, @@ -49,6 +55,7 @@ ] }, { + "id": "007", "isEvent": false, "type": "Builder", "era": 1, @@ -59,6 +66,7 @@ ] }, { + "id": "008", "isEvent": false, "type": "Builder", "era": 1, @@ -70,6 +78,7 @@ ] }, { + "id": "009", "isEvent": false, "type": "Builder", "era": 1, @@ -80,6 +89,7 @@ ] }, { + "id": "010", "isEvent": false, "type": "Gatherer", "era": 1, @@ -87,6 +97,7 @@ "params": [] }, { + "id": "011", "isEvent": false, "type": "Gatherer", "era": 1, @@ -94,6 +105,7 @@ "params": [] }, { + "id": "012", "isEvent": false, "type": "Gatherer", "era": 1, @@ -103,6 +115,7 @@ ] }, { + "id": "013", "isEvent": false, "type": "Gatherer", "era": 1, @@ -112,6 +125,7 @@ ] }, { + "id": "014", "isEvent": false, "type": "Artist", "era": 1, @@ -119,6 +133,7 @@ "params": [] }, { + "id": "015", "isEvent": false, "type": "Artist", "era": 1, @@ -126,6 +141,7 @@ "params": [] }, { + "id": "016", "isEvent": false, "type": "Artist", "era": 1, @@ -133,6 +149,7 @@ "params": [] }, { + "id": "017", "isEvent": false, "type": "Artist", "era": 1, @@ -142,6 +159,7 @@ ] }, { + "id": "018", "isEvent": false, "type": "Artist", "era": 1, @@ -151,6 +169,7 @@ ] }, { + "id": "019", "isEvent": false, "type": "Inventor", "era": 1, @@ -160,6 +179,7 @@ ] }, { + "id": "020", "isEvent": false, "type": "Inventor", "era": 1, @@ -169,6 +189,7 @@ ] }, { + "id": "021", "isEvent": false, "type": "Inventor", "era": 1, @@ -178,6 +199,7 @@ ] }, { + "id": "022", "isEvent": false, "type": "Inventor", "era": 1, @@ -187,6 +209,7 @@ ] }, { + "id": "023", "isEvent": false, "type": "Inventor", "era": 1, @@ -197,6 +220,7 @@ ] }, { + "id": "024", "isEvent": false, "type": "Inventor", "era": 1, @@ -207,6 +231,7 @@ ] }, { + "id": "025", "isEvent": false, "type": "Inventor", "era": 1, @@ -217,6 +242,7 @@ ] }, { + "id": "026", "isEvent": false, "type": "Shaman", "era": 1, @@ -227,6 +253,7 @@ ] }, { + "id": "027", "isEvent": false, "type": "Shaman", "era": 1, @@ -236,6 +263,7 @@ ] }, { + "id": "028", "isEvent": false, "type": "Shaman", "era": 1, @@ -245,6 +273,7 @@ ] }, { + "id": "029", "isEvent": false, "type": "Shaman", "era": 1, @@ -255,6 +284,7 @@ ] }, { + "id": "085", "isEvent": true, "type": "Hunt", "era": 1, @@ -264,6 +294,7 @@ ] }, { + "id": "086", "isEvent": true, "type": "Sustenance", "era": 1, @@ -273,6 +304,7 @@ ] }, { + "id": "087", "isEvent": true, "type": "ShamanicRitual", "era": 1, @@ -283,6 +315,7 @@ ] }, { + "id": "088", "isEvent": true, "type": "CavePaintings", "era": 1, @@ -293,5 +326,4 @@ 1 ] } - ] \ No newline at end of file diff --git a/src/main/resources/Cards/tribe_era2.json b/src/main/resources/Cards/tribe_era2.json index 0650796..b6a7b57 100644 --- a/src/main/resources/Cards/tribe_era2.json +++ b/src/main/resources/Cards/tribe_era2.json @@ -1,5 +1,6 @@ [ { + "id": "030", "isEvent": false, "type": "Hunter", "era": 2, @@ -7,6 +8,7 @@ "params": [] }, { + "id": "031", "isEvent": false, "type": "Hunter", "era": 2, @@ -14,6 +16,7 @@ "params": [] }, { + "id": "032", "isEvent": false, "type": "Hunter", "era": 2, @@ -23,6 +26,7 @@ ] }, { + "id": "033", "isEvent": false, "type": "Hunter", "era": 2, @@ -30,13 +34,17 @@ "params": [] }, { + "id": "034", "isEvent": false, "type": "Hunter", "era": 2, "armed": true, - "params": [4] + "params": [ + 4 + ] }, { + "id": "035", "isEvent": false, "type": "Hunter", "era": 2, @@ -46,6 +54,7 @@ ] }, { + "id": "036", "isEvent": false, "type": "Builder", "era": 2, @@ -56,6 +65,7 @@ ] }, { + "id": "037", "isEvent": false, "type": "Builder", "era": 2, @@ -66,6 +76,7 @@ ] }, { + "id": "038", "isEvent": false, "type": "Builder", "era": 2, @@ -77,6 +88,7 @@ ] }, { + "id": "039", "isEvent": false, "type": "Builder", "era": 2, @@ -87,6 +99,7 @@ ] }, { + "id": "040", "isEvent": false, "type": "Gatherer", "era": 2, @@ -94,6 +107,7 @@ "params": [] }, { + "id": "041", "isEvent": false, "type": "Gatherer", "era": 2, @@ -103,6 +117,7 @@ ] }, { + "id": "042", "isEvent": false, "type": "Gatherer", "era": 2, @@ -112,6 +127,7 @@ ] }, { + "id": "043", "isEvent": false, "type": "Gatherer", "era": 2, @@ -121,6 +137,7 @@ ] }, { + "id": "044", "isEvent": false, "type": "Artist", "era": 2, @@ -130,6 +147,7 @@ ] }, { + "id": "045", "isEvent": false, "type": "Artist", "era": 2, @@ -137,6 +155,7 @@ "params": [] }, { + "id": "046", "isEvent": false, "type": "Artist", "era": 2, @@ -144,6 +163,7 @@ "params": [] }, { + "id": "047", "isEvent": false, "type": "Artist", "era": 2, @@ -151,6 +171,7 @@ "params": [] }, { + "id": "048", "isEvent": false, "type": "Inventor", "era": 2, @@ -160,6 +181,7 @@ ] }, { + "id": "049", "isEvent": false, "type": "Inventor", "era": 2, @@ -170,6 +192,7 @@ ] }, { + "id": "050", "isEvent": false, "type": "Inventor", "era": 2, @@ -179,6 +202,7 @@ ] }, { + "id": "051", "isEvent": false, "type": "Inventor", "era": 2, @@ -188,6 +212,7 @@ ] }, { + "id": "052", "isEvent": false, "type": "Inventor", "era": 2, @@ -197,6 +222,7 @@ ] }, { + "id": "053", "isEvent": false, "type": "Inventor", "era": 2, @@ -206,6 +232,7 @@ ] }, { + "id": "054", "isEvent": false, "type": "Shaman", "era": 2, @@ -215,6 +242,7 @@ ] }, { + "id": "055", "isEvent": false, "type": "Shaman", "era": 2, @@ -224,6 +252,7 @@ ] }, { + "id": "056", "isEvent": false, "type": "Shaman", "era": 2, @@ -234,6 +263,7 @@ ] }, { + "id": "057", "isEvent": false, "type": "Shaman", "era": 2, @@ -244,6 +274,7 @@ ] }, { + "id": "089", "isEvent": true, "type": "Hunt", "era": 2, @@ -253,6 +284,7 @@ ] }, { + "id": "090", "isEvent": true, "type": "Sustenance", "era": 2, @@ -262,6 +294,7 @@ ] }, { + "id": "091", "isEvent": true, "type": "ShamanicRitual", "era": 2, @@ -272,6 +305,7 @@ ] }, { + "id": "092", "isEvent": true, "type": "CavePaintings", "era": 2, diff --git a/src/main/resources/Cards/tribe_era3.json b/src/main/resources/Cards/tribe_era3.json index d1d2a02..f3a4006 100644 --- a/src/main/resources/Cards/tribe_era3.json +++ b/src/main/resources/Cards/tribe_era3.json @@ -1,5 +1,6 @@ [ { + "id": "058", "isEvent": false, "type": "Hunter", "era": 3, @@ -9,6 +10,7 @@ ] }, { + "id": "059", "isEvent": false, "type": "Hunter", "era": 3, @@ -16,6 +18,7 @@ "params": [] }, { + "id": "060", "isEvent": false, "type": "Hunter", "era": 3, @@ -23,6 +26,7 @@ "params": [] }, { + "id": "061", "isEvent": false, "type": "Hunter", "era": 3, @@ -30,6 +34,7 @@ "params": [] }, { + "id": "062", "isEvent": false, "type": "Builder", "era": 3, @@ -40,6 +45,7 @@ ] }, { + "id": "063", "isEvent": false, "type": "Builder", "era": 3, @@ -50,6 +56,7 @@ ] }, { + "id": "064", "isEvent": false, "type": "Builder", "era": 3, @@ -61,6 +68,7 @@ ] }, { + "id": "065", "isEvent": false, "type": "Builder", "era": 3, @@ -71,6 +79,7 @@ ] }, { + "id": "066", "isEvent": false, "type": "Gatherer", "era": 3, @@ -80,6 +89,7 @@ ] }, { + "id": "067", "isEvent": false, "type": "Gatherer", "era": 3, @@ -89,6 +99,7 @@ ] }, { + "id": "068", "isEvent": false, "type": "Gatherer", "era": 3, @@ -96,6 +107,7 @@ "params": [] }, { + "id": "069", "isEvent": false, "type": "Artist", "era": 3, @@ -105,6 +117,7 @@ ] }, { + "id": "070", "isEvent": false, "type": "Artist", "era": 3, @@ -112,6 +125,7 @@ "params": [] }, { + "id": "071", "isEvent": false, "type": "Artist", "era": 3, @@ -119,6 +133,7 @@ "params": [] }, { + "id": "072", "isEvent": false, "type": "Artist", "era": 3, @@ -126,6 +141,7 @@ "params": [] }, { + "id": "073", "isEvent": false, "type": "Inventor", "era": 3, @@ -136,6 +152,7 @@ ] }, { + "id": "074", "isEvent": false, "type": "Inventor", "era": 3, @@ -146,6 +163,7 @@ ] }, { + "id": "075", "isEvent": false, "type": "Inventor", "era": 3, @@ -156,6 +174,7 @@ ] }, { + "id": "076", "isEvent": false, "type": "Inventor", "era": 3, @@ -165,6 +184,7 @@ ] }, { + "id": "077", "isEvent": false, "type": "Inventor", "era": 3, @@ -174,6 +194,7 @@ ] }, { + "id": "078", "isEvent": false, "type": "Inventor", "era": 3, @@ -183,6 +204,7 @@ ] }, { + "id": "079", "isEvent": false, "type": "Inventor", "era": 3, @@ -192,6 +214,7 @@ ] }, { + "id": "080", "isEvent": false, "type": "Shaman", "era": 3, @@ -202,6 +225,7 @@ ] }, { + "id": "081", "isEvent": false, "type": "Shaman", "era": 3, @@ -211,6 +235,7 @@ ] }, { + "id": "082", "isEvent": false, "type": "Shaman", "era": 3, @@ -220,6 +245,7 @@ ] }, { + "id": "083", "isEvent": false, "type": "Shaman", "era": 3, @@ -229,6 +255,7 @@ ] }, { + "id": "084", "isEvent": false, "type": "Shaman", "era": 3, @@ -239,6 +266,7 @@ ] }, { + "id": "093", "isEvent": true, "type": "Hunt", "era": 3, @@ -248,6 +276,7 @@ ] }, { + "id": "094", "isEvent": true, "type": "CavePaintings", "era": 3,