From 77d60fab1ca522ad2e3ff87ac541abc4f28dc5d4 Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Fri, 15 Nov 2024 17:57:09 +0300 Subject: [PATCH 1/2] chore: chapter_schema test --- datafiles/main/chapters/1.JSON | 3 +- datafiles/main/chapters/chapter_schema.JSON | 825 ++++++++++++++++++++ 2 files changed, 827 insertions(+), 1 deletion(-) create mode 100644 datafiles/main/chapters/chapter_schema.JSON diff --git a/datafiles/main/chapters/1.JSON b/datafiles/main/chapters/1.JSON index 48f5d9fac..00a7dc424 100644 --- a/datafiles/main/chapters/1.JSON +++ b/datafiles/main/chapters/1.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 1, "name": "Dark Angels", @@ -53,7 +54,7 @@ "trim": "Grey", "lens": "Red", "weapon": "Dark Red", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 0 // 0 no, 1 yes for special trim colours // todo update ref for new name }, "names": { diff --git a/datafiles/main/chapters/chapter_schema.JSON b/datafiles/main/chapters/chapter_schema.JSON new file mode 100644 index 000000000..b50cdb791 --- /dev/null +++ b/datafiles/main/chapters/chapter_schema.JSON @@ -0,0 +1,825 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "properties": { + "$schema": { + "description": "The schema version, indicating which JSON schema draft is being used.", + "type": "string" + }, + "chapter": { + "properties": { + "advantages": { + "description": "An array of the chapter's advantages.", + "items": { + "type": "string" + }, + "maxItems": 9, + "type": "array" + }, + "artifact": { + "description": "The chapter's collection of artifacts.", + "items": { + "properties": { + "base_weapon_type": { + "description": "Item type.", + "type": "string" + }, + "description": { + "description": "A fluff description of the artifact.", + "type": "string" + }, + "name": { + "description": "The name of the artifact.", + "type": "string" + }, + "slot": { + "description": "The slot in which the artifact will be equipped.", + "type": "string" + } + }, + "required": [ + "name", + "description", + "base_weapon_type", + "slot" + ], + "type": "object" + }, + "type": "array" + }, + "aspirant_trial": { + "description": "The trial an aspirant must undergo to join the chapter.", + "enum": [ + "BLOODDUEL", + "HUNTING", + "SURVIVAL", + "EXPOSURE", + "KNOWLEDGE", + "CHALLENGE", + "APPRENTICESHIP" + ], + "type": "string" + }, + "battle_cry": { + "description": "The chapter's battle cry, a phrase or chant used in combat to rally warriors.", + "type": "string" + }, + "chapter_master": { + "description": "Details about the chapter master, including skills, traits, and equipment.", + "properties": { + "armour": { + "description": "The type of armor worn by the chapter master.", + "type": "string" + }, + "gear": { + "description": "The specialized gear or equipment used by the chapter master.", + "type": "string" + }, + "melee": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ], + "type": "integer" + }, + "mobi": { + "description": "The mobile unit or transport used by the chapter master.", + "type": "string" + }, + "name": { + "description": "The name of the chapter master, the leader of the chapter.", + "type": "string" + }, + "ranged": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "type": "integer" + }, + "specialty": { + "description": "The specialty of the chapter master: 1 for Leader, 2 for Champion, 3 for Psyker.", + "enum": [ + 1, + 2, + 3 + ], + "type": "integer" + }, + "traits": { + "description": "A list of traits of the chapter master.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name", + "specialty", + "melee", + "ranged", + "traits", + "gear", + "mobi", + "armour" + ], + "type": "object" + }, + "colors": { + "description": "Color details and special armor patterns for the chapter.", + "properties": { + "lens": { + "description": "The color of the lenses on the marine's helmets.", + "type": "string" + }, + "main": { + "description": "The primary color for the chapter's livery.", + "type": "string" + }, + "pauldron_l": { + "description": "The color of the left pauldron for the chapter's marines.", + "type": "string" + }, + "pauldron_r": { + "description": "The color of the right pauldron for the chapter's marines.", + "type": "string" + }, + "secondary": { + "description": "The secondary color for the chapter's livery.", + "type": "string" + }, + "special": { + "description": "An integer representing the special pattern of armor for the chapter. 0 is normal, 1 is 'Breastplate', 2 is 'Vertical', and 3 is 'Quadrant'.", + "enum": [ + 0, + 1, + 2, + 3 + ], + "type": "integer" + }, + "trim": { + "description": "The color of the trim on the chapter's armor.", + "type": "string" + }, + "weapon": { + "description": "The color of the chapter's weaponry.", + "type": "string" + } + }, + "required": [ + "main", + "secondary", + "pauldron_r", + "pauldron_l", + "trim", + "lens", + "weapon", + "special" + ], + "type": "object" + }, + "company_titles": { + "description": "The titles used within the chapter's company, usually assigned to key officers or specialists.", + "items": { + "type": "string" + }, + "maxItems": 11, + "minItems": 11, + "type": "array" + }, + "cooperation": { + "description": "A rating of the chapter's cooperation, on a scale from 1 to 10.", + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "custom_roles": { + "description": "Custom roles created for the chapter's forces, used to define special positions or functions.", + "type": "object" + }, + "custom_squads": { + "description": "Custom squads created for the chapter's forces, used to define special unit configurations.", + "type": "object" + }, + "disadvantages": { + "description": "A list of the chapter's disadvantages. There should be exactly 9 items.", + "items": { + "type": "string" + }, + "maxItems": 9, + "minItems": 9, + "type": "array" + }, + "discipline": { + "description": "The primary discipline of the chapter, which could be one of the types of psychic powers or a default discipline.", + "enum": [ + "default", + "biomancy", + "pyromancy", + "telekinesis", + "rune Magick" + ], + "type": "string" + }, + "disposition": { + "description": "The chapter's general disposition and behavior traits, with exactly 8 items representing different attributes.", + "items": { + "type": "integer" + }, + "maxItems": 8, + "minItems": 8, + "type": "array" + }, + "equal_specialists": { + "description": "Indicates whether the chapter treats all specialists equally (1 for true, 0 for false).", + "enum": [ + 0, + 1 + ], + "type": "integer" + }, + "extra_equipment": { + "description": "Additional equipment items used by the chapter.", + "items": { + "items": [ + { + "description": "The name of the equipment item.", + "type": "string" + }, + { + "description": "The quantity of the equipment item.", + "type": "integer" + } + ], + "type": "array" + }, + "type": "array" + }, + "extra_marines": { + "description": "The number of Marines in each company within the chapter.", + "properties": { + "eighth": { + "description": "The number of eighth companies in the chapter.", + "type": "integer" + }, + "fifth": { + "description": "The number of fifth companies in the chapter.", + "type": "integer" + }, + "fourth": { + "description": "The number of fourth companies in the chapter.", + "type": "integer" + }, + "ninth": { + "description": "The number of ninth companies in the chapter.", + "type": "integer" + }, + "second": { + "description": "The number of second companies in the chapter.", + "type": "integer" + }, + "seventh": { + "description": "The number of seventh companies in the chapter.", + "type": "integer" + }, + "sixth": { + "description": "The number of sixth companies in the chapter.", + "type": "integer" + }, + "tenth": { + "description": "The number of tenth companies in the chapter.", + "type": "integer" + }, + "third": { + "description": "The number of third companies in the chapter.", + "type": "integer" + } + }, + "required": [ + "second", + "third", + "fourth", + "fifth", + "sixth", + "seventh", + "eighth", + "ninth", + "tenth" + ], + "type": "object" + }, + "extra_ships": { + "description": "Additional ships used by the chapter beyond its basic fleet.", + "properties": { + "battle_barges": { + "description": "The number of battle barges the chapter possesses.", + "type": "integer" + }, + "gladius": { + "description": "The number of Gladius-class strike cruisers the chapter possesses.", + "type": "integer" + }, + "hunters": { + "description": "The number of Hunter-class ships the chapter possesses.", + "type": "integer" + }, + "strike_cruisers": { + "description": "The number of Strike Cruisers the chapter possesses.", + "type": "integer" + } + }, + "required": [ + "battle_barges", + "gladius", + "strike_cruisers", + "hunters" + ], + "type": "object" + }, + "extra_specialists": { + "description": "Additional specialists in the chapter, including support and elite roles.", + "properties": { + "apothecary": { + "description": "The number of Apothecaries the chapter possesses.", + "type": "integer" + }, + "assault": { + "description": "The number of Assault Marines the chapter possesses.", + "type": "integer" + }, + "chaplains": { + "description": "The number of Chaplains the chapter possesses.", + "type": "integer" + }, + "codiciery": { + "description": "The number of Codiciers the chapter possesses.", + "type": "integer" + }, + "devastator": { + "description": "The number of Devastator Marines the chapter possesses.", + "type": "integer" + }, + "epistolary": { + "description": "The number of Epistolaries the chapter possesses.", + "type": "integer" + }, + "lexicanum": { + "description": "The number of Lexicanums the chapter possesses.", + "type": "integer" + }, + "techmarines": { + "description": "The number of Techmarines the chapter possesses.", + "type": "integer" + }, + "terminator": { + "description": "The number of Terminators the chapter possesses.", + "type": "integer" + }, + "veteran": { + "description": "The number of Veteran Marines the chapter possesses.", + "type": "integer" + } + }, + "required": [ + "chaplains", + "techmarines", + "apothecary", + "epistolary", + "codiciery", + "lexicanum", + "terminator", + "assault", + "veteran", + "devastator" + ], + "type": "object" + }, + "extra_vehicles": { + "description": "Additional vehicles used by the chapter, including transports and heavy support vehicles.", + "properties": { + "land_raider": { + "description": "The number of Land Raider tanks the chapter possesses.", + "type": "integer" + }, + "land_speeder": { + "description": "The number of Land Speeder vehicles the chapter possesses.", + "type": "integer" + }, + "predator": { + "description": "The number of Predator tanks the chapter possesses.", + "type": "integer" + }, + "rhino": { + "description": "The number of Rhino transports the chapter possesses.", + "type": "integer" + }, + "whirlwind": { + "description": "The number of Whirlwind artillery vehicles the chapter possesses.", + "type": "integer" + } + }, + "required": [ + "rhino", + "whirlwind", + "predator", + "land_raider", + "land_speeder" + ], + "type": "object" + }, + "flagship_name": { + "description": "The name of the flagship ship that leads the chapter's fleet.", + "type": "string" + }, + "flavor": { + "description": "The lore or backstory of the chapter.", + "type": "string" + }, + "fleet_type": { + "description": "The type of fleet the chapter uses. 1 is 'Homeworld', 2 is 'Fleet-based', and 3 is 'Penitent'.", + "enum": [ + 1, + 2, + 3 + ], + "type": "integer" + }, + "founding": { + "description": "The ID of the founding chapter, 0 for unknown or none, 10 for random.", + "type": "integer" + }, + "homeworld": { + "description": "The biome or type of the chapter's homeworld.", + "enum": [ + "Lava", + "Desert", + "Forge", + "Hive", + "Death", + "Agri", + "Feudal", + "Temperate", + "Ice", + "Dead", + "Shrine" + ], + "type": "string" + }, + "homeworld_exists": { + "description": "Indicates whether the chapter has a homeworld (1 for true, 0 for false).", + "enum": [ + 0, + 1 + ], + "type": "integer" + }, + "homeworld_name": { + "description": "The name of the homeworld planet. Leave blank to auto-generate.", + "type": "string" + }, + "homeworld_rule": { + "description": "The type of governance for the chapter's homeworld. 1 is 'Governor', 2 is 'Countries', and 3 is 'Personal Rule'.", + "enum": [ + 1, + 2, + 3 + ], + "type": "integer" + }, + "icon": { + "description": "An integer representing the chapter's icon number, e.g., 1 for Dark Angels.", + "type": "integer" + }, + "icon_name": { + "description": "A string used for referencing the icon in the code. This might be an internal reference.", + "type": "string" + }, + "id": { + "description": "The unique identifier for the chapter.", + "type": "integer" + }, + "load_to_ships": { + "description": "Details how squads and personnel are loaded onto ships during deployment.", + "properties": { + "escort_load": { + "description": "The loading configuration for escort ships. 0 = No, 1 = Moderate, 2 = Full.", + "enum": [ + 0, + 1, + 2 + ], + "type": "integer" + }, + "split_scouts": { + "description": "Indicates whether scouts are split across ships (1 for true, 0 for false).", + "enum": [ + 0, + 1 + ], + "type": "integer" + }, + "split_vets": { + "description": "Indicates whether veteran squads are split across ships (1 for true, 0 for false).", + "enum": [ + 0, + 1 + ], + "type": "integer" + } + }, + "required": [ + "escort_load", + "split_scouts", + "split_vets" + ], + "type": "object" + }, + "mutations": { + "description": "A list of genetic mutations that may be present in the chapter's gene-seed.", + "properties": { + "betchers": { + "description": "Indicates the presence of the Betcher's Gland mutation (1 for true, 0 for false).", + "type": "integer" + }, + "catalepsean": { + "description": "Indicates the presence of the Catalepsean mutation (1 for true, 0 for false).", + "type": "integer" + }, + "doomed": { + "description": "Indicates whether the chapter suffers from the Doomed mutation (1 for true, 0 for false).", + "type": "integer" + }, + "lyman": { + "description": "Indicates the presence of the Lyman's Ear mutation (1 for true, 0 for false).", + "type": "integer" + }, + "membrane": { + "description": "Indicates the presence of the Membrane mutation (1 for true, 0 for false).", + "type": "integer" + }, + "mucranoid": { + "description": "Indicates the presence of the Mucranoid mutation (1 for true, 0 for false).", + "type": "integer" + }, + "occulobe": { + "description": "Indicates the presence of the Occulobe mutation (1 for true, 0 for false).", + "type": "integer" + }, + "omophagea": { + "description": "Indicates the presence of the Omophagea mutation (1 for true, 0 for false).", + "type": "integer" + }, + "ossmodula": { + "description": "Indicates the presence of the Ossmodula mutation (1 for true, 0 for false).", + "type": "integer" + }, + "preomnor": { + "description": "Indicates the presence of the Preomnor organ mutation (1 for true, 0 for false).", + "type": "integer" + }, + "secretions": { + "description": "Indicates the presence of the Sebaceous Secretions mutation (1 for true, 0 for false).", + "type": "integer" + }, + "voice": { + "description": "Indicates the presence of the Voice organ mutation (1 for true, 0 for false).", + "type": "integer" + }, + "zygote": { + "description": "Indicates the presence of the Zygote mutation (1 for true, 0 for false).", + "type": "integer" + } + }, + "required": [ + "preomnor", + "voice", + "doomed", + "lyman", + "omophagea", + "ossmodula", + "membrane", + "zygote", + "betchers", + "catalepsean", + "secretions", + "occulobe", + "mucranoid" + ], + "type": "object" + }, + "name": { + "description": "The name of the chapter.", + "type": "string" + }, + "names": { + "description": "The various specialist roles and their titles within the chapter.", + "properties": { + "admiral": { + "description": "The title or name of the chapter's Admiral.", + "type": "string" + }, + "arsenalmaster": { + "description": "The title or name of the chapter's Arsenal Master.", + "type": "string" + }, + "clibrarian": { + "description": "The title or name of the chapter's Librarian.", + "type": "string" + }, + "fmaster": { + "description": "The title or name of the chapter's Forge Master.", + "type": "string" + }, + "hapothecary": { + "description": "The title or name of the chapter's Apothecary.", + "type": "string" + }, + "hchaplain": { + "description": "The title or name of the chapter's Chaplain.", + "type": "string" + }, + "honorcapt": { + "description": "The title or name of the chapter's Honor Captain.", + "type": "string" + }, + "lordexec": { + "description": "The title or name of the chapter's Lord Executioner.", + "type": "string" + }, + "marchmaster": { + "description": "The title or name of the chapter's Marchmaster.", + "type": "string" + }, + "recruiter": { + "description": "The title or name of the chapter's Recruiter.", + "type": "string" + }, + "relmaster": { + "description": "The title or name of the chapter's Relicmaster.", + "type": "string" + }, + "ritesmaster": { + "description": "The title or name of the chapter's Ritesmaster.", + "type": "string" + }, + "victualler": { + "description": "The title or name of the chapter's Victualler.", + "type": "string" + }, + "watchmaster": { + "description": "The title or name of the chapter's Watchmaster.", + "type": "string" + } + }, + "required": [ + "hchaplain", + "clibrarian", + "fmaster", + "hapothecary", + "honorcapt", + "watchmaster", + "arsenalmaster", + "admiral", + "marchmaster", + "ritesmaster", + "victualler", + "lordexec", + "relmaster", + "recruiter" + ], + "type": "object" + }, + "origin": { + "description": "The origin of the chapter, where 1 is 'Founding', 2 is 'Successor', 3 is 'Other/non-canon/fanmade', and 4 is 'Custom'.", + "enum": [ + 1, + 2, + 3, + 4 + ], + "type": "integer" + }, + "points": { + "description": "The number of points assigned to the chapter, typically used for gameplay or balance.", + "type": "integer" + }, + "purity": { + "description": "A rating of the chapter's purity, on a scale from 1 to 10.", + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "recruiting": { + "description": "The biome or type of the planet used for recruiting.", + "enum": [ + "Lava", + "Desert", + "Forge", + "Hive", + "Death", + "Agri", + "Feudal", + "Temperate", + "Ice", + "Dead", + "Shrine" + ], + "type": "string" + }, + "recruiting_exists": { + "description": "Indicates whether the chapter has a recruiting world (1 for true, 0 for false).", + "enum": [ + 0, + 1 + ], + "type": "integer" + }, + "recruiting_name": { + "description": "The name of the recruiting planet. Leave blank to auto-generate.", + "type": "string" + }, + "splash": { + "description": "An integer representing the image number for the chapter's splash art, e.g., 1 for Dark Angels.", + "type": "integer" + }, + "stability": { + "description": "A rating of the chapter's stability, on a scale from 1 to 10.", + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "strength": { + "description": "A rating of the chapter's strength, on a scale from 1 to 10.", + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "successors": { + "description": "The number of successor chapters to this one. A value of 0 means no known successors.", + "type": "integer" + } + }, + "required": [ + "id", + "name", + "flavor", + "origin", + "points", + "founding", + "splash", + "icon", + "icon_name", + "fleet_type", + "strength", + "purity", + "stability", + "cooperation", + "homeworld_exists", + "recruiting_exists", + "homeworld_rule", + "homeworld", + "recruiting", + "discipline", + "aspirant_trial", + "advantages", + "disadvantages", + "colors", + "names", + "battle_cry", + "equal_specialists", + "load_to_ships", + "successors", + "mutations", + "disposition", + "chapter_master", + "artifact", + "company_titles", + "flagship_name", + "extra_ships", + "extra_specialists", + "extra_marines", + "extra_vehicles", + "extra_equipment", + "custom_roles", + "custom_squads" + ], + "type": "object" + } + }, + "required": [ + "chapter" + ], + "type": "object" +} \ No newline at end of file From 2e0c2a068f5473961cf1d46932a0bc4a57ed368d Mon Sep 17 00:00:00 2001 From: EttyKitty <20323032+EttyKitty@users.noreply.github.com> Date: Sat, 16 Nov 2024 19:27:02 +0300 Subject: [PATCH 2/2] Some more schema related stuff --- datafiles/main/chapters/1.JSON | 12 +++++++----- datafiles/main/chapters/10.JSON | 15 +++++++++------ datafiles/main/chapters/11.JSON | 3 ++- datafiles/main/chapters/12.JSON | 1 + datafiles/main/chapters/13.JSON | 1 + datafiles/main/chapters/14.JSON | 1 + datafiles/main/chapters/15.JSON | 1 + datafiles/main/chapters/16.JSON | 1 + datafiles/main/chapters/17.JSON | 5 +++-- datafiles/main/chapters/2.JSON | 5 +++-- datafiles/main/chapters/3.JSON | 15 +++++++++------ datafiles/main/chapters/31.JSON | 1 + datafiles/main/chapters/4.JSON | 5 +++-- datafiles/main/chapters/5.JSON | 15 +++++++++------ datafiles/main/chapters/6.JSON | 5 +++-- datafiles/main/chapters/7.JSON | 3 ++- datafiles/main/chapters/8.JSON | 3 ++- datafiles/main/chapters/9.JSON | 3 ++- datafiles/main/chapters/chapter_schema.JSON | 8 ++++---- datafiles/main/chapters/template.JSON | 3 ++- 20 files changed, 66 insertions(+), 40 deletions(-) diff --git a/datafiles/main/chapters/1.JSON b/datafiles/main/chapters/1.JSON index 00a7dc424..51b8b4d56 100644 --- a/datafiles/main/chapters/1.JSON +++ b/datafiles/main/chapters/1.JSON @@ -121,11 +121,13 @@ "gear": "", "mobi": "" }, - "artifact": { - "name": "Sword of Secrets", - "description": "A master-crafted Power Sword of formidable potency created soon after the disappearance of Lion El'Jonson. It is the mightiest of the Heavenfall Blades", - "base_weapon_type": "Power Sword" - }, + "artifact": [ + { + "name": "Sword of Secrets", + "description": "A master-crafted Power Sword of formidable potency created soon after the disappearance of Lion El'Jonson. It is the mightiest of the Heavenfall Blades", + "base_weapon_type": "Power Sword" + } + ], "company_titles": [ "", "Deathwing", diff --git a/datafiles/main/chapters/10.JSON b/datafiles/main/chapters/10.JSON index 7a2ca1649..e80a391a0 100644 --- a/datafiles/main/chapters/10.JSON +++ b/datafiles/main/chapters/10.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 10, "name": "Black Templars", @@ -53,7 +54,7 @@ "trim": "Silver", "lens": "Dark Red", "weapon": "Black", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 0 // 0 no, 1 yes for special trim colours }, "names": { @@ -123,11 +124,13 @@ "armour": "", "bionics": 0 }, - "artifact": { - "name": "Sword of the High Marshalls", - "description": "A relic blade forged from the shards of Rogal Dorn's shattered sword passed down by the High Marshalls as a sign of office", - "base_weapon_type": "Relic Blade" - }, + "artifact": [ + { + "name": "Sword of the High Marshalls", + "description": "A relic blade forged from the shards of Rogal Dorn's shattered sword passed down by the High Marshalls as a sign of office", + "base_weapon_type": "Relic Blade" + } + ], "company_titles": [ "", "", diff --git a/datafiles/main/chapters/11.JSON b/datafiles/main/chapters/11.JSON index 79baa9fcd..1b0c965a7 100644 --- a/datafiles/main/chapters/11.JSON +++ b/datafiles/main/chapters/11.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 11, "name": "Minotaurs", @@ -53,7 +54,7 @@ "trim": "Light Brown", "lens": "Red", "weapon": "Dark Red", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 1 // 0 no, 1 yes for pauldron trim colours. Trim colour will still be used for certain complex livery items }, "names": { diff --git a/datafiles/main/chapters/12.JSON b/datafiles/main/chapters/12.JSON index b866aec27..25db36613 100644 --- a/datafiles/main/chapters/12.JSON +++ b/datafiles/main/chapters/12.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 12, "name": "Blood Ravens", diff --git a/datafiles/main/chapters/13.JSON b/datafiles/main/chapters/13.JSON index a4bb2314b..e0ea99f18 100644 --- a/datafiles/main/chapters/13.JSON +++ b/datafiles/main/chapters/13.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 13, "name": "Crimson Fists", diff --git a/datafiles/main/chapters/14.JSON b/datafiles/main/chapters/14.JSON index 7c89e51ae..a30a97489 100644 --- a/datafiles/main/chapters/14.JSON +++ b/datafiles/main/chapters/14.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 14, "name": "Lamenters", diff --git a/datafiles/main/chapters/15.JSON b/datafiles/main/chapters/15.JSON index 4cbf9dc63..42861160e 100644 --- a/datafiles/main/chapters/15.JSON +++ b/datafiles/main/chapters/15.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 15, "name": "Carcharodons", diff --git a/datafiles/main/chapters/16.JSON b/datafiles/main/chapters/16.JSON index de6144fa1..33a0a6dfe 100644 --- a/datafiles/main/chapters/16.JSON +++ b/datafiles/main/chapters/16.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 16, "name": "Soul Drinkers", diff --git a/datafiles/main/chapters/17.JSON b/datafiles/main/chapters/17.JSON index 26988478c..88e19ca88 100644 --- a/datafiles/main/chapters/17.JSON +++ b/datafiles/main/chapters/17.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 17, "name": "Angry Marines", @@ -53,7 +54,7 @@ "trim": "Yellow", "lens": "Red", "weapon": "Dark Red", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 0 // 0 no, 1 yes for pauldron trim colours. Trim colour will still be used for certain complex livery items }, "names": { @@ -238,7 +239,7 @@ }, "assault": { "name": "Angrier Marine" - }, + } // "scout": { // "name": "Scout", // "wep1": "Sniper Rifle" diff --git a/datafiles/main/chapters/2.JSON b/datafiles/main/chapters/2.JSON index 35dadc247..148b284d3 100644 --- a/datafiles/main/chapters/2.JSON +++ b/datafiles/main/chapters/2.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 2, "name": "White Scars", @@ -53,7 +54,7 @@ "trim": "Red", "lens": "Red", "weapon": "Black", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 0 // 0 no, 1 yes for special trim colours // todo update ref for new name }, "names": { @@ -119,7 +120,7 @@ "gear": "", "mobi": "" }, - "artifact": {}, + "artifact": [], "company_titles": [ "", "The Spearpoint Brotherhood", diff --git a/datafiles/main/chapters/3.JSON b/datafiles/main/chapters/3.JSON index dc927142b..85d524a3f 100644 --- a/datafiles/main/chapters/3.JSON +++ b/datafiles/main/chapters/3.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 3, "name": "Space Wolves", @@ -53,7 +54,7 @@ "trim": "Dark Gold", "lens": "Red", "weapon": "Dark Gold", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 0 // 0 no, 1 yes for special trim colours // todo update ref for new name }, "names": { @@ -122,11 +123,13 @@ "mobi": "", "armour": "Terminator Armour" }, - "artifact": { - "name": "Axe of Morkai", - "description": "Once a Khornate axe of great power it was reforged in the image of the death wolf Morkai", - "base_weapon_type": "Executioner Power Axe" - }, + "artifact": [ + { + "name": "Axe of Morkai", + "description": "Once a Khornate axe of great power it was reforged in the image of the death wolf Morkai", + "base_weapon_type": "Executioner Power Axe" + } + ], "company_titles": [ "", "The Bloodmaws", diff --git a/datafiles/main/chapters/31.JSON b/datafiles/main/chapters/31.JSON index 3a73c63f6..3d58c5b42 100644 --- a/datafiles/main/chapters/31.JSON +++ b/datafiles/main/chapters/31.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 31, "name": "Red Scorpions", diff --git a/datafiles/main/chapters/4.JSON b/datafiles/main/chapters/4.JSON index 76b27acc6..931ce330b 100644 --- a/datafiles/main/chapters/4.JSON +++ b/datafiles/main/chapters/4.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 4, "name": "Imperial Fists", @@ -53,7 +54,7 @@ "trim": "Red", "lens": "Red", "weapon": "Black", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 0 // 0 no, 1 yes for special trim colours // todo update ref for new name }, "names": { @@ -120,7 +121,7 @@ "mobi": "", "armour": "" }, - "artifact": {}, + "artifact": [], "company_titles": [ "", "The Fists of Dorn", diff --git a/datafiles/main/chapters/5.JSON b/datafiles/main/chapters/5.JSON index ec7dd90dc..92758fdfa 100644 --- a/datafiles/main/chapters/5.JSON +++ b/datafiles/main/chapters/5.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 5, "name": "Blood Angels", @@ -53,7 +54,7 @@ "trim": "Lighter Black", "lens": "Lime", "weapon": "Black", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 0 // 0 no, 1 yes for special trim colours // todo update ref for new name }, "names": { @@ -122,11 +123,13 @@ "mobi": "Jump Pack", "armour": "" }, - "artifact": { - "name": "Axe Mortalis", - "description": "An immensely powerful Power Axe, the Axe Mortalis, forged in the days immediately after the end of the Horus Heresy.", - "base_weapon_type": "Power Axe" - }, + "artifact": [ + { + "name": "Axe Mortalis", + "description": "An immensely powerful Power Axe, the Axe Mortalis, forged in the days immediately after the end of the Horus Heresy.", + "base_weapon_type": "Power Axe" + } + ], "company_titles": [ "", "Archangels", diff --git a/datafiles/main/chapters/6.JSON b/datafiles/main/chapters/6.JSON index 88b5b7a82..92c7733e1 100644 --- a/datafiles/main/chapters/6.JSON +++ b/datafiles/main/chapters/6.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 6, "name": "Iron Hands", @@ -53,7 +54,7 @@ "trim": "Silver", "lens": "Dark Red", "weapon": "Silver", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 0 // 0 no, 1 yes for special trim colours // todo update ref for new name }, "names": { @@ -124,7 +125,7 @@ "armour": "", "bionics": 10 }, - "artifact": {}, + "artifact": [], "company_titles": [ "", "Clan Avernii", diff --git a/datafiles/main/chapters/7.JSON b/datafiles/main/chapters/7.JSON index b5e8d7f02..482cd5acf 100644 --- a/datafiles/main/chapters/7.JSON +++ b/datafiles/main/chapters/7.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 7, "name": "Ultramarines", @@ -53,7 +54,7 @@ "trim": "Gold", "lens": "Red", "weapon": "Red", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 0 // 0 no, 1 yes for special trim colours }, "names": { diff --git a/datafiles/main/chapters/8.JSON b/datafiles/main/chapters/8.JSON index 5a53582db..ac653d5e6 100644 --- a/datafiles/main/chapters/8.JSON +++ b/datafiles/main/chapters/8.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 8, "name": "Salamanders", @@ -53,7 +54,7 @@ "trim": "Dark Gold", "lens": "Red", "weapon": "Black", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 0 // 0 no, 1 yes for special trim colours }, "names": { diff --git a/datafiles/main/chapters/9.JSON b/datafiles/main/chapters/9.JSON index 1ed6a316c..47ff1d908 100644 --- a/datafiles/main/chapters/9.JSON +++ b/datafiles/main/chapters/9.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 9, "name": "Raven Guard", @@ -53,7 +54,7 @@ "trim": "Silver", "lens": "Dark Red", "weapon": "Black", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 0 // 0 no, 1 yes for special trim colours }, "names": { diff --git a/datafiles/main/chapters/chapter_schema.JSON b/datafiles/main/chapters/chapter_schema.JSON index b50cdb791..d365d72a8 100644 --- a/datafiles/main/chapters/chapter_schema.JSON +++ b/datafiles/main/chapters/chapter_schema.JSON @@ -191,7 +191,7 @@ "type": "object" }, "company_titles": { - "description": "The titles used within the chapter's company, usually assigned to key officers or specialists.", + "description": "The titles of the chapter's companies.", "items": { "type": "string" }, @@ -223,7 +223,7 @@ "type": "array" }, "discipline": { - "description": "The primary discipline of the chapter, which could be one of the types of psychic powers or a default discipline.", + "description": "The psychic discipline of the chapter.", "enum": [ "default", "biomancy", @@ -234,7 +234,7 @@ "type": "string" }, "disposition": { - "description": "The chapter's general disposition and behavior traits, with exactly 8 items representing different attributes.", + "description": "Chapter's relationship with other factions. 0 - empty, 1 - progenitor chapter, 2 - imperium, 3 - admech, 4 - inquisition, 5 - ecclesiarchy, 6 - other chapters, 7 - empty.", "items": { "type": "integer" }, @@ -243,7 +243,7 @@ "type": "array" }, "equal_specialists": { - "description": "Indicates whether the chapter treats all specialists equally (1 for true, 0 for false).", + "description": "Distribute specialists (assaults, devastators, tactical) evenly across 8 companies? (1 for true, 0 for false).", "enum": [ 0, 1 diff --git a/datafiles/main/chapters/template.JSON b/datafiles/main/chapters/template.JSON index 3cc5b002b..5934d2099 100644 --- a/datafiles/main/chapters/template.JSON +++ b/datafiles/main/chapters/template.JSON @@ -1,4 +1,5 @@ { + "$schema": "./chapter_schema.json", "chapter": { "id": 1, "name": "Chapter Name", @@ -53,7 +54,7 @@ "trim": "Silver", "lens": "Red", "weapon": "Dark Red", - "special": 0, // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant + "special": 0 // 0 - normal, 1 - Breastplate, 2 - Vertical, 3 - Quadrant //"trim_on": 0 // 0 no, 1 yes for pauldron trim colours. Trim colour will still be used for certain complex livery items }, "names": {