Adds import support from our other project.
This commit is contained in:
19
rulesets/sr6/entities/armor.json
Normal file
19
rulesets/sr6/entities/armor.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity-definition.json",
|
||||
"id": "armor",
|
||||
"name": "Armor",
|
||||
"description": "SR6 Wearable armor and protective gear providing Defense Rating bonuses.",
|
||||
"ruleset_id": "sr6",
|
||||
"version": "1.0.0",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["name", "rating"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"rating": { "type": ["integer", "string"], "description": "Armor rating bonus added to Defense Rating (e.g. 2, 4)." },
|
||||
"social_modifier": { "type": "integer", "default": 0 },
|
||||
"capacity": { "type": "integer", "default": 0 },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
21
rulesets/sr6/entities/augmentation.json
Normal file
21
rulesets/sr6/entities/augmentation.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity-definition.json",
|
||||
"id": "augmentation",
|
||||
"name": "Augmentation",
|
||||
"description": "SR6 Cyberware and Bioware implants with essence cost, grade, and enhancements.",
|
||||
"ruleset_id": "sr6",
|
||||
"version": "1.0.0",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["name", "essence"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"category": { "type": "string", "enum": ["Cyberware", "Bioware", "Nanoware", "Geneware"], "default": "Cyberware" },
|
||||
"grade": { "type": "string", "enum": ["Standard", "Alphaware", "Betaware", "Deltaware", "Used"], "default": "Standard" },
|
||||
"rating": { "type": ["integer", "string"] },
|
||||
"essence": { "type": "number", "description": "Essence loss." },
|
||||
"capacity_cost": { "type": "integer" },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
326
rulesets/sr6/entities/character.json
Normal file
326
rulesets/sr6/entities/character.json
Normal file
@@ -0,0 +1,326 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity-definition.json",
|
||||
"id": "character",
|
||||
"name": "Shadowrunner Character",
|
||||
"description": "A 6th Edition Shadowrunner character with attributes, skills, condition monitors, qualities, augmentations, and combat statistics.",
|
||||
"ruleset_id": "sr6",
|
||||
"version": "1.0.0",
|
||||
"default_template": "character_sheet",
|
||||
"allowed_templates": [
|
||||
"character_sheet",
|
||||
"dossier_sheet"
|
||||
],
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["alias", "metatype", "attributes"],
|
||||
"properties": {
|
||||
"alias": {
|
||||
"type": "string",
|
||||
"description": "Runner handle / street name."
|
||||
},
|
||||
"real_name": {
|
||||
"type": "string",
|
||||
"description": "Legal name or character identity."
|
||||
},
|
||||
"player": {
|
||||
"type": "string",
|
||||
"description": "Player name."
|
||||
},
|
||||
"notes": {
|
||||
"type": "string",
|
||||
"description": "General character notes or mission memo."
|
||||
},
|
||||
"metatype": {
|
||||
"type": "string",
|
||||
"enum": ["Human", "Elf", "Dwarf", "Ork", "Troll"],
|
||||
"description": "Character metatype."
|
||||
},
|
||||
"ethnicity": {
|
||||
"type": "string",
|
||||
"description": "Ethnic or cultural background."
|
||||
},
|
||||
"age": {
|
||||
"type": ["integer", "string"],
|
||||
"description": "Character age in years."
|
||||
},
|
||||
"sex": {
|
||||
"type": "string",
|
||||
"description": "Biological sex / gender."
|
||||
},
|
||||
"height": {
|
||||
"type": "string",
|
||||
"description": "Height (e.g. '2.4 m' or '6 ft 2 in')."
|
||||
},
|
||||
"weight": {
|
||||
"type": "string",
|
||||
"description": "Weight (e.g. '310 kg')."
|
||||
},
|
||||
"reputation": {
|
||||
"type": ["integer", "string"],
|
||||
"default": 0,
|
||||
"description": "Street reputation."
|
||||
},
|
||||
"heat": {
|
||||
"type": ["integer", "string"],
|
||||
"default": 0,
|
||||
"description": "Law enforcement attention level."
|
||||
},
|
||||
"karma": {
|
||||
"type": ["integer", "string"],
|
||||
"default": 0,
|
||||
"description": "Current unspent Karma."
|
||||
},
|
||||
"total_karma": {
|
||||
"type": ["integer", "string"],
|
||||
"default": 0,
|
||||
"description": "Career total Karma earned."
|
||||
},
|
||||
"misc": {
|
||||
"type": "string",
|
||||
"description": "Miscellaneous character notes."
|
||||
},
|
||||
"attributes": {
|
||||
"type": "object",
|
||||
"description": "Character core attributes.",
|
||||
"properties": {
|
||||
"body": { "type": ["integer", "object"], "description": "Body attribute." },
|
||||
"agility": { "type": ["integer", "object"], "description": "Agility attribute." },
|
||||
"reaction": { "type": ["integer", "object"], "description": "Reaction attribute." },
|
||||
"strength": { "type": ["integer", "object"], "description": "Strength attribute." },
|
||||
"willpower": { "type": ["integer", "object"], "description": "Willpower attribute." },
|
||||
"logic": { "type": ["integer", "object"], "description": "Logic attribute." },
|
||||
"intuition": { "type": ["integer", "object"], "description": "Intuition attribute." },
|
||||
"charisma": { "type": ["integer", "object"], "description": "Charisma attribute." },
|
||||
"edge": { "type": ["integer", "object"], "description": "Edge attribute rating." },
|
||||
"essence": { "type": ["number", "object"], "default": 6.0, "description": "Remaining Essence." },
|
||||
"magic": { "type": ["integer", "object"], "description": "Magic rating (if awakened)." },
|
||||
"resonance": { "type": ["integer", "object"], "description": "Resonance rating (if technomancer)." },
|
||||
"edge_points": { "type": ["integer", "object"], "default": 0, "description": "Current edge points pool." }
|
||||
}
|
||||
},
|
||||
"combat_info": {
|
||||
"type": "object",
|
||||
"description": "Derived combat statistics.",
|
||||
"properties": {
|
||||
"initiative": { "type": "string", "description": "Physical initiative formula (e.g. '10 + 1D6')." },
|
||||
"matrix_initiative": { "type": "string", "description": "Matrix initiative formula." },
|
||||
"astral_initiative": { "type": "string", "description": "Astral initiative formula." },
|
||||
"defense_rating": { "type": ["integer", "string", "object"], "description": "Defense Rating (Body + Armor)." },
|
||||
"unarmed_ar": { "type": ["integer", "string", "object"], "description": "Unarmed Attack Rating." },
|
||||
"composure": { "type": ["integer", "string", "object"], "description": "Composure (Willpower + Charisma)." },
|
||||
"judge_intentions": { "type": ["integer", "string", "object"], "description": "Judge Intentions (Intuition + Charisma)." },
|
||||
"memory": { "type": ["integer", "string", "object"], "description": "Memory (Logic + Willpower)." },
|
||||
"lift_carry": { "type": ["integer", "string", "object"], "description": "Lift/Carry (Body + Willpower)." },
|
||||
"movement": { "type": "string", "description": "Movement rates (Walking/Running/Sprint)." }
|
||||
}
|
||||
},
|
||||
"condition_monitor": {
|
||||
"type": "object",
|
||||
"description": "Physical and Stun damage tracks.",
|
||||
"properties": {
|
||||
"physical_damage": { "type": "integer", "default": 0 },
|
||||
"physical_boxes": { "type": "integer", "description": "Calculated total physical boxes (8 + ceil(body/2))." },
|
||||
"stun_damage": { "type": "integer", "default": 0 },
|
||||
"stun_boxes": { "type": "integer", "description": "Calculated total stun boxes (8 + ceil(willpower/2))." },
|
||||
"overflow": { "type": "integer", "default": 0 }
|
||||
}
|
||||
},
|
||||
"skills": {
|
||||
"type": "array",
|
||||
"description": "List of character skills.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["name", "rating", "attribute"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"rating": { "type": "integer", "minimum": 1, "maximum": 12 },
|
||||
"attribute": { "type": "string" },
|
||||
"specialization": { "type": "string" },
|
||||
"expertise": { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["Action", "Knowledge", "Language"], "default": "Action" },
|
||||
"dice_pool": { "type": "integer" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"qualities": {
|
||||
"type": "array",
|
||||
"description": "Positive and negative character qualities.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["name"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["Positive", "Negative"] },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"currency_and_ids": {
|
||||
"type": "object",
|
||||
"description": "Lifestyles, IDs, licenses, and nuyen.",
|
||||
"properties": {
|
||||
"nuyen": { "type": ["integer", "string"], "default": 0 },
|
||||
"primary_lifestyle": { "type": "string" },
|
||||
"licenses": { "type": "string" },
|
||||
"fake_ids": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"rating": { "type": "integer" },
|
||||
"lifestyle": { "type": "string" },
|
||||
"funds": { "type": "string" },
|
||||
"licenses": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"contacts": {
|
||||
"type": "array",
|
||||
"description": "Shadow contacts network.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["name"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"connection": { "type": "integer", "minimum": 1, "maximum": 6 },
|
||||
"loyalty": { "type": "integer", "minimum": 1, "maximum": 6 },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"primary_armor": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"rating": { "type": ["integer", "string"] },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
},
|
||||
"primary_ranged_weapon": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"dv": { "type": "string" },
|
||||
"mode": { "type": "string" },
|
||||
"attack_rating": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"close": { "type": ["integer", "string"] },
|
||||
"near": { "type": ["integer", "string"] },
|
||||
"far": { "type": ["integer", "string"] },
|
||||
"extreme": { "type": ["integer", "string"] }
|
||||
}
|
||||
},
|
||||
"ammo": { "type": "string" },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"dv": { "type": "string" },
|
||||
"close": { "type": ["integer", "string"] },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
},
|
||||
"ranged_weapons": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/properties/primary_ranged_weapon" }
|
||||
},
|
||||
"melee_weapons": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/properties/primary_melee_weapon" }
|
||||
},
|
||||
"armor": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/properties/primary_armor" }
|
||||
},
|
||||
"matrix_stats": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"device_name": { "type": "string" },
|
||||
"device_rating": { "type": ["integer", "string"] },
|
||||
"attack": { "type": ["integer", "string"] },
|
||||
"sleaze": { "type": ["integer", "string"] },
|
||||
"data_processing": { "type": ["integer", "string"] },
|
||||
"firewall": { "type": ["integer", "string"] },
|
||||
"programs": { "type": "array", "items": { "type": "string" } },
|
||||
"matrix_damage": { "type": "integer", "default": 0 }
|
||||
}
|
||||
},
|
||||
"augmentations": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"rating": { "type": ["integer", "string"] },
|
||||
"notes": { "type": "string" },
|
||||
"essence": { "type": "number" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"vehicles": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"handling": { "type": "string" },
|
||||
"acceleration": { "type": "string" },
|
||||
"speed_interval": { "type": "string" },
|
||||
"top_speed": { "type": "string" },
|
||||
"body": { "type": ["integer", "string"] },
|
||||
"armor": { "type": ["integer", "string"] },
|
||||
"pilot": { "type": ["integer", "string"] },
|
||||
"sensor": { "type": ["integer", "string"] },
|
||||
"seats": { "type": ["integer", "string"] },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"gear": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"rating": { "type": ["integer", "string"] },
|
||||
"quantity": { "type": "integer", "default": 1 },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"spells": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"category": { "type": "string", "enum": ["S", "P", "R", "CF"], "description": "Spell, Preparation, Ritual, Complex Form" },
|
||||
"type_target": { "type": "string" },
|
||||
"range": { "type": "string" },
|
||||
"duration": { "type": "string" },
|
||||
"drain": { "type": "string" },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"adept_powers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"level": { "type": ["integer", "string"] },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
33
rulesets/sr6/entities/corporation.json
Normal file
33
rulesets/sr6/entities/corporation.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity-definition.json",
|
||||
"id": "corporation",
|
||||
"name": "Megacorporation",
|
||||
"description": "SR6 Corporate Court ranked megacorporation profile with extraterritorial status, slogans, and leadership.",
|
||||
"ruleset_id": "sr6",
|
||||
"version": "1.0.0",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["name", "status"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"short_name": { "type": "string" },
|
||||
"status": { "type": "string", "enum": ["AAA", "AA", "A"], "default": "AAA" },
|
||||
"court_ranking_2080": { "type": "integer", "minimum": 1, "maximum": 10 },
|
||||
"slogan": { "type": "string" },
|
||||
"corporate_type": { "type": "string", "enum": ["Public Corporation", "Private Corporation"] },
|
||||
"world_headquarters": { "type": "string" },
|
||||
"leadership": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": { "type": "string" },
|
||||
"name": { "type": "string" }
|
||||
}
|
||||
},
|
||||
"major_divisions": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
},
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
97
rulesets/sr6/entities/dossier.json
Normal file
97
rulesets/sr6/entities/dossier.json
Normal file
@@ -0,0 +1,97 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity-definition.json",
|
||||
"id": "dossier",
|
||||
"name": "Shadowrunner Dossier",
|
||||
"description": "A comprehensive 4-page runner dossier combining full character statistics with narrative background, roleplaying tips, tactical guidelines, and tailored action pools.",
|
||||
"ruleset_id": "sr6",
|
||||
"version": "1.0.0",
|
||||
"default_template": "dossier_sheet",
|
||||
"allowed_templates": [
|
||||
"dossier_sheet",
|
||||
"character_sheet"
|
||||
],
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["alias", "metatype", "archetype", "attributes"],
|
||||
"properties": {
|
||||
"archetype": {
|
||||
"type": "string",
|
||||
"description": "Character archetype (e.g. 'Troll Street Samurai', 'Combat Mage', 'Elven Decker')."
|
||||
},
|
||||
"quote": {
|
||||
"type": "string",
|
||||
"description": "Introductory runner quote or catchphrase."
|
||||
},
|
||||
"pitch": {
|
||||
"type": "string",
|
||||
"description": "Summary pitch for playing this runner."
|
||||
},
|
||||
"background": {
|
||||
"type": "string",
|
||||
"description": "Full narrative life history and background story."
|
||||
},
|
||||
"preferred_tactics": {
|
||||
"type": "string",
|
||||
"description": "Combat style, weapon preferences, and tactical guidelines."
|
||||
},
|
||||
"roleplaying_tips": {
|
||||
"type": "string",
|
||||
"description": "Roleplaying advice, personality traits, and interpersonal dynamics."
|
||||
},
|
||||
"vital_contacts": {
|
||||
"type": "array",
|
||||
"description": "Key narrative contacts with detailed descriptions.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"role": { "type": "string" },
|
||||
"description": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"favorite_hangouts": {
|
||||
"type": "array",
|
||||
"description": "Locations the runner frequents in the sprawl.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"location": { "type": "string" },
|
||||
"description": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"favorite_downtime_activities": {
|
||||
"type": "array",
|
||||
"description": "Hobbies and off-run pastimes.",
|
||||
"items": { "type": "string" }
|
||||
},
|
||||
"sample_actions": {
|
||||
"type": "array",
|
||||
"description": "Tailored sample actions with pre-computed dice pools.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"action": { "type": "string" },
|
||||
"action_type": { "type": "string", "enum": ["Minor", "Major", "Free"] },
|
||||
"dice_pool": { "type": "integer" },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"edge_boosts": {
|
||||
"type": "array",
|
||||
"description": "Recommended edge boosts and tactical options.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"cost": { "type": "integer" },
|
||||
"name": { "type": "string" },
|
||||
"description": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
47
rulesets/sr6/entities/gear.json
Normal file
47
rulesets/sr6/entities/gear.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity-definition.json",
|
||||
"id": "gear",
|
||||
"name": "Gear / Equipment",
|
||||
"description": "SR6 Adventuring gear, electronics, tools, commlinks, cyberdecks, and programs.",
|
||||
"ruleset_id": "sr6",
|
||||
"version": "1.0.0",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["name"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"category": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Gear",
|
||||
"Commlink",
|
||||
"Cyberdeck",
|
||||
"Program",
|
||||
"Electronics",
|
||||
"Tool",
|
||||
"Medical",
|
||||
"Security",
|
||||
"Other"
|
||||
]
|
||||
},
|
||||
"rating": { "type": ["integer", "string"] },
|
||||
"device_rating": { "type": ["integer", "string"] },
|
||||
"attributes_df": {
|
||||
"type": "string",
|
||||
"description": "Data Processing / Firewall ratings (e.g. '2/1')."
|
||||
},
|
||||
"active_program_slots": { "type": "integer" },
|
||||
"attack": { "type": ["integer", "string"] },
|
||||
"sleaze": { "type": ["integer", "string"] },
|
||||
"programs": { "type": "array", "items": { "type": "string" } },
|
||||
"rules": {
|
||||
"type": "string",
|
||||
"description": "Game mechanics and rules effect."
|
||||
},
|
||||
"quantity": { "type": "integer", "default": 1 },
|
||||
"availability": { "type": ["integer", "string"] },
|
||||
"cost": { "type": ["integer", "string"] },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
124
rulesets/sr6/entities/npc.json
Normal file
124
rulesets/sr6/entities/npc.json
Normal file
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity-definition.json",
|
||||
"id": "npc",
|
||||
"name": "Non-Player Character / Gang",
|
||||
"description": "SR6 NPCs, gang members, syndicate leaders, and corporate operatives compatible with character and dossier sheets.",
|
||||
"ruleset_id": "sr6",
|
||||
"version": "1.0.0",
|
||||
"default_template": "character_picker",
|
||||
"allowed_templates": ["character_picker", "character_sheet"],
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["alias"],
|
||||
"properties": {
|
||||
"alias": {
|
||||
"type": "string",
|
||||
"description": "NPC name, handle, or gang designation."
|
||||
},
|
||||
"real_name": {
|
||||
"type": "string",
|
||||
"description": "Legal name or true identity if known."
|
||||
},
|
||||
"archetype": {
|
||||
"type": "string",
|
||||
"description": "Role, title, or affiliation (e.g., 'Human Female Government Operative', 'Dwarf Gangers')."
|
||||
},
|
||||
"metatype": {
|
||||
"type": "string",
|
||||
"description": "Metatype (Human, Elf, Dwarf, Ork, Troll, etc.)."
|
||||
},
|
||||
"ethnicity": {
|
||||
"type": "string",
|
||||
"description": "Ethnicity or cultural background."
|
||||
},
|
||||
"quote": {
|
||||
"type": "string",
|
||||
"description": "Characteristic quote or battle cry."
|
||||
},
|
||||
"hook": {
|
||||
"type": "string",
|
||||
"description": "Gamemaster plot hook or motivation."
|
||||
},
|
||||
"notes": {
|
||||
"type": "string",
|
||||
"description": "Narrative background and roleplay guidance."
|
||||
},
|
||||
"attributes": {
|
||||
"type": "object",
|
||||
"description": "Core NPC attributes.",
|
||||
"properties": {
|
||||
"body": { "type": ["integer", "object"] },
|
||||
"agility": { "type": ["integer", "object"] },
|
||||
"reaction": { "type": ["integer", "object"] },
|
||||
"strength": { "type": ["integer", "object"] },
|
||||
"willpower": { "type": ["integer", "object"] },
|
||||
"logic": { "type": ["integer", "object"] },
|
||||
"intuition": { "type": ["integer", "object"] },
|
||||
"charisma": { "type": ["integer", "object"] },
|
||||
"edge": { "type": ["integer", "string", "object"] },
|
||||
"essence": { "type": ["number", "object"] },
|
||||
"magic": { "type": ["integer", "object"] }
|
||||
}
|
||||
},
|
||||
"combat_info": {
|
||||
"type": "object",
|
||||
"description": "Quick-reference combat stats.",
|
||||
"properties": {
|
||||
"initiative": {
|
||||
"type": "string",
|
||||
"description": "Initiative score formula (e.g. '6 + 1D6')."
|
||||
},
|
||||
"defense_rating": {
|
||||
"type": ["integer", "string", "object"],
|
||||
"description": "Defense rating."
|
||||
},
|
||||
"condition_monitor": {
|
||||
"type": ["integer", "string", "object"],
|
||||
"description": "Condition monitor boxes."
|
||||
},
|
||||
"unarmed_ar": { "type": ["integer", "string", "object"] }
|
||||
}
|
||||
},
|
||||
"skills": {
|
||||
"type": "array",
|
||||
"description": "List of active skills and ratings.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["name"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"rating": { "type": ["integer", "string"] },
|
||||
"attribute": { "type": "string" },
|
||||
"dice_pool": { "type": ["integer", "string"] }
|
||||
}
|
||||
}
|
||||
},
|
||||
"gear": {
|
||||
"type": "array",
|
||||
"description": "Equipment, armor, and commlinks carried.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"rating": { "type": ["integer", "string"] },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"weapons": {
|
||||
"type": "array",
|
||||
"description": "Weapons equipped.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"dv": { "type": "string" },
|
||||
"mode": { "type": "string" },
|
||||
"attack_rating": { "type": ["integer", "string", "object"] },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
21
rulesets/sr6/entities/spell.json
Normal file
21
rulesets/sr6/entities/spell.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity-definition.json",
|
||||
"id": "spell",
|
||||
"name": "Spell / Complex Form",
|
||||
"description": "SR6 Hermetic and shamanic spells, preparations, rituals, and technomancer complex forms.",
|
||||
"ruleset_id": "sr6",
|
||||
"version": "1.0.0",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["name", "category", "drain"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"category": { "type": "string", "enum": ["Spell", "Preparation", "Ritual", "Complex Form"], "default": "Spell" },
|
||||
"type_target": { "type": "string", "description": "Physical, Mana, Device, Persona, etc." },
|
||||
"range": { "type": "string", "description": "Touch, LOS, Area, etc." },
|
||||
"duration": { "type": "string", "description": "Instant, Sustained, Permanent." },
|
||||
"drain": { "type": ["integer", "string"], "description": "Drain or Fading value (e.g. '3' or 'DV 4')." },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
28
rulesets/sr6/entities/vehicle.json
Normal file
28
rulesets/sr6/entities/vehicle.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity-definition.json",
|
||||
"id": "vehicle",
|
||||
"name": "Vehicle / Drone",
|
||||
"description": "SR6 Ground vehicles, aircraft, watercraft, and rigger drones.",
|
||||
"ruleset_id": "sr6",
|
||||
"version": "1.0.0",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["name", "handling", "body", "armor"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"category": { "type": "string", "enum": ["Drone", "Groundcraft", "Hovercraft", "Watercraft", "Aircraft"] },
|
||||
"handling": { "type": "string" },
|
||||
"acceleration": { "type": "string" },
|
||||
"speed_interval": { "type": "string" },
|
||||
"top_speed": { "type": "string" },
|
||||
"body": { "type": ["integer", "string"] },
|
||||
"armor": { "type": ["integer", "string"] },
|
||||
"pilot": { "type": ["integer", "string"] },
|
||||
"sensor": { "type": ["integer", "string"] },
|
||||
"seats": { "type": ["integer", "string"] },
|
||||
"mod_slots": { "type": "integer" },
|
||||
"sensor_array": { "type": "array", "items": { "type": "string" } },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
34
rulesets/sr6/entities/weapon.json
Normal file
34
rulesets/sr6/entities/weapon.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity-definition.json",
|
||||
"id": "weapon",
|
||||
"name": "Weapon",
|
||||
"description": "SR6 Ranged and Melee weapons with DV, firing modes, attack ratings across range bands, and ammo.",
|
||||
"ruleset_id": "sr6",
|
||||
"version": "1.0.0",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["name", "category", "dv"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"category": {
|
||||
"type": "string",
|
||||
"enum": ["Hold-out", "Light Pistol", "Heavy Pistol", "Machine Pistol", "SMG", "Shotgun", "Rifle", "Sniper Rifle", "Assault Cannon", "Blade", "Club", "Unarmed", "Exotic"]
|
||||
},
|
||||
"type": { "type": "string", "enum": ["ranged", "melee"], "default": "ranged" },
|
||||
"dv": { "type": "string", "description": "Damage Value (e.g. '4P', '3S')." },
|
||||
"mode": { "type": "string", "description": "Firing mode (SS, SA, BF, FA)." },
|
||||
"attack_rating": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"close": { "type": ["integer", "string"] },
|
||||
"near": { "type": ["integer", "string"] },
|
||||
"far": { "type": ["integer", "string"] },
|
||||
"extreme": { "type": ["integer", "string"] }
|
||||
}
|
||||
},
|
||||
"ammo": { "type": "string", "description": "Capacity and reload type (e.g. '15(c)')." },
|
||||
"accessories": { "type": "array", "items": { "type": "string" } },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user