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" }
|
||||
}
|
||||
}
|
||||
}
|
||||
13
rulesets/sr6/examples/armor/armor_jacket.json
Normal file
13
rulesets/sr6/examples/armor/armor_jacket.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "38836c23-969a-4885-b881-029de2531415",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "armor",
|
||||
"display_name": "Armor Jacket",
|
||||
"description": "Available in many styles, it offers good protection without catching too much attention.",
|
||||
"properties": {
|
||||
"name": "Armor Jacket",
|
||||
"rating": "+4 DR",
|
||||
"notes": "Available in many styles, it offers good protection without catching too much attention."
|
||||
}
|
||||
}
|
||||
13
rulesets/sr6/examples/armor/armor_vest.json
Normal file
13
rulesets/sr6/examples/armor/armor_vest.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "02fd452c-d12f-483b-b0c8-0d7a3c03d6cd",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "armor",
|
||||
"display_name": "Armor Vest",
|
||||
"description": "A flexible-wrap vest designed to be worn under regular clothing without displaying bulk.",
|
||||
"properties": {
|
||||
"name": "Armor Vest",
|
||||
"rating": "+3 DR",
|
||||
"notes": "A flexible-wrap vest designed to be worn under regular clothing without displaying bulk."
|
||||
}
|
||||
}
|
||||
13
rulesets/sr6/examples/armor/lined_coat.json
Normal file
13
rulesets/sr6/examples/armor/lined_coat.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "e8f060d0-99eb-4592-81b5-6a6583549cc4",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "armor",
|
||||
"display_name": "Lined Coat",
|
||||
"description": "This duster has been consistently popular on the mean streets of the world’s sprawls for fifty years.",
|
||||
"properties": {
|
||||
"name": "Lined Coat",
|
||||
"rating": "+3 DR",
|
||||
"notes": "This duster has been consistently popular on the mean streets of the world’s sprawls for fifty years."
|
||||
}
|
||||
}
|
||||
377
rulesets/sr6/examples/character/emu.json
Normal file
377
rulesets/sr6/examples/character/emu.json
Normal file
@@ -0,0 +1,377 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "4c8524d7-0f8c-4f76-9d32-bb9a25032b49",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "character",
|
||||
"display_name": "Emu",
|
||||
"description": "Human Rigger from the official Shadowrun 6th World Beginner Box.",
|
||||
"template_id": "character_sheet",
|
||||
"properties": {
|
||||
"alias": "Emu",
|
||||
"real_name": "Emu",
|
||||
"player": "Catalyst Pregen",
|
||||
"notes": "Human Rigger with a vehicle control rig, drone fleet, and heavy Mafia debt.",
|
||||
"metatype": "Human",
|
||||
"ethnicity": "Aboriginal Australian (Wiradjuri)",
|
||||
"age": 23,
|
||||
"sex": "Female",
|
||||
"height": "1.65 m",
|
||||
"weight": "57 kg",
|
||||
"reputation": 2,
|
||||
"heat": 0,
|
||||
"karma": 0,
|
||||
"total_karma": 0,
|
||||
"misc": "Former merc drone pilot; owes 200,000¥ to the Ciarniello Mafia.",
|
||||
"attributes": {
|
||||
"body": 2,
|
||||
"agility": 2,
|
||||
"reaction": 4,
|
||||
"strength": 2,
|
||||
"willpower": 4,
|
||||
"logic": 4,
|
||||
"intuition": 6,
|
||||
"charisma": 3,
|
||||
"edge": 5,
|
||||
"essence": 3.6,
|
||||
"magic": 0,
|
||||
"edge_points": 5
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "10 + 1D6",
|
||||
"matrix_initiative": "10 + 1D6",
|
||||
"astral_initiative": "—",
|
||||
"defense_rating": 6,
|
||||
"unarmed_ar": 6,
|
||||
"composure": 7,
|
||||
"judge_intentions": 10,
|
||||
"memory": 10,
|
||||
"lift_carry": 6,
|
||||
"movement": "5/10/15"
|
||||
},
|
||||
"condition_monitor": {
|
||||
"physical_damage": 0,
|
||||
"physical_boxes": 9,
|
||||
"stun_damage": 0,
|
||||
"stun_boxes": 10,
|
||||
"overflow": 0
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Piloting",
|
||||
"rating": 7,
|
||||
"attribute": "Reaction",
|
||||
"specialization": "Groundcraft",
|
||||
"dice_pool": 13,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Engineering",
|
||||
"rating": 6,
|
||||
"attribute": "Logic",
|
||||
"specialization": "Gunnery",
|
||||
"dice_pool": 12,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 3,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 9,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 3,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Electronics",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 6,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Con",
|
||||
"rating": 2,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 2,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Stealth",
|
||||
"rating": 2,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 4,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Biotech",
|
||||
"rating": 1,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 1,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 3,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Seattle Metroplex Geography",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 6,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Smuggling Routes",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 6,
|
||||
"type": "Knowledge"
|
||||
}
|
||||
],
|
||||
"qualities": [
|
||||
{
|
||||
"name": "Addiction (Cigarettes)",
|
||||
"type": "Negative",
|
||||
"notes": "Level 3 addiction; penalty if in withdrawal."
|
||||
},
|
||||
{
|
||||
"name": "Gearhead",
|
||||
"type": "Positive",
|
||||
"notes": "May spend Edge on repair tests and vehicle handling."
|
||||
},
|
||||
{
|
||||
"name": "In Debt",
|
||||
"type": "Negative",
|
||||
"notes": "Ciarniello Mafia: 200,000¥ debt, 8,000¥/month interest."
|
||||
},
|
||||
{
|
||||
"name": "Juryrigger",
|
||||
"type": "Positive",
|
||||
"notes": "Gains bonus Edge point on Juryrigging tests."
|
||||
},
|
||||
{
|
||||
"name": "SINner",
|
||||
"type": "Negative",
|
||||
"notes": "Standard national/system SIN; extra scrutiny and trace exposure."
|
||||
}
|
||||
],
|
||||
"currency_and_ids": {
|
||||
"nuyen": 265,
|
||||
"primary_lifestyle": "Low (3 months prepaid)",
|
||||
"licenses": "Concealed Carry (Assault Rifle), Drone Rigging, Cyberware",
|
||||
"fake_ids": [
|
||||
{
|
||||
"name": "Kylie Mason",
|
||||
"rating": 3,
|
||||
"lifestyle": "Low",
|
||||
"funds": "265¥",
|
||||
"licenses": "Firearms, Cyberware, RCC"
|
||||
}
|
||||
]
|
||||
},
|
||||
"contacts": [
|
||||
{
|
||||
"name": "Giovanni Valenti",
|
||||
"loyalty": 2,
|
||||
"connection": 3,
|
||||
"notes": "Drone and vehicle fixer, owner of Gio's Garage in Everett."
|
||||
},
|
||||
{
|
||||
"name": "Lenny",
|
||||
"loyalty": 3,
|
||||
"connection": 2,
|
||||
"notes": "Underground safehouse fixer."
|
||||
},
|
||||
{
|
||||
"name": "Steve Draper",
|
||||
"loyalty": 1,
|
||||
"connection": 3,
|
||||
"notes": "Knight Errant dispatcher on the take."
|
||||
},
|
||||
{
|
||||
"name": "Tomaso di Stefano",
|
||||
"loyalty": 2,
|
||||
"connection": 2,
|
||||
"notes": "Ciarniello Mafia loan shark ('Tommy D') and occasional Mr. Johnson."
|
||||
}
|
||||
],
|
||||
"primary_armor": {
|
||||
"name": "Armor jacket",
|
||||
"rating": "+4",
|
||||
"notes": "+4 Defense Rating bonus"
|
||||
},
|
||||
"primary_ranged_weapon": {
|
||||
"name": "FN HAR Assault Rifle",
|
||||
"dv": "5P",
|
||||
"mode": "SA/BF/FA",
|
||||
"attack_rating": { "close": 3, "near": 11, "far": 6, "extreme": 1 },
|
||||
"ammo": "35(c)",
|
||||
"notes": "w/ gas-vent system, laser sight"
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Unarmed Strike",
|
||||
"dv": "2S",
|
||||
"close": 2,
|
||||
"notes": "Natural"
|
||||
},
|
||||
"ranged_weapons": [
|
||||
{
|
||||
"name": "FN HAR Assault Rifle",
|
||||
"dv": "5P",
|
||||
"mode": "SA/BF/FA",
|
||||
"attack_rating": { "close": 3, "near": 11, "far": 6, "extreme": 1 },
|
||||
"ammo": "35(c)",
|
||||
"notes": "w/ gas-vent system, laser sight"
|
||||
}
|
||||
],
|
||||
"melee_weapons": [
|
||||
{
|
||||
"name": "Unarmed Strike",
|
||||
"dv": "2S",
|
||||
"close": 2,
|
||||
"notes": "Natural"
|
||||
}
|
||||
],
|
||||
"armor": [
|
||||
{
|
||||
"name": "Armor jacket",
|
||||
"rating": "+4",
|
||||
"notes": "+4 DR bonus"
|
||||
}
|
||||
],
|
||||
"matrix_stats": {
|
||||
"device_name": "Maersk Spider RCC",
|
||||
"device_rating": 4,
|
||||
"attack": 0,
|
||||
"sleaze": 0,
|
||||
"data_processing": 4,
|
||||
"firewall": 5,
|
||||
"programs": ["Encryption", "Signal Scrubber", "Toolbox"],
|
||||
"matrix_damage": 0
|
||||
},
|
||||
"augmentations": [
|
||||
{
|
||||
"name": "Control Rig",
|
||||
"rating": 2,
|
||||
"notes": "Grants +2 dice pool bonus and +1 Edge on vehicle skill tests when jumped in.",
|
||||
"essence": 2.0
|
||||
},
|
||||
{
|
||||
"name": "Cybereyes",
|
||||
"rating": 3,
|
||||
"notes": "w/ flare compensation, image link, low-light vision, smartlink, thermographic vision",
|
||||
"essence": 0.4
|
||||
},
|
||||
{
|
||||
"name": "Reflex Recorder",
|
||||
"rating": 1,
|
||||
"notes": "Piloting skill (+1 bonus rating)",
|
||||
"essence": 0.1
|
||||
}
|
||||
],
|
||||
"vehicles": [
|
||||
{
|
||||
"name": "GMC Commodore",
|
||||
"handling": "4/3",
|
||||
"accel": "14",
|
||||
"speed": "120/160",
|
||||
"armor": 8,
|
||||
"body": 10,
|
||||
"pilot": 2,
|
||||
"sensor": 2,
|
||||
"notes": "Sports sedan w/ 2 weapon mounts (Mossberg CMDT shotguns, 250 rds)"
|
||||
},
|
||||
{
|
||||
"name": "GMC Bulldog",
|
||||
"handling": "3/2",
|
||||
"accel": "10",
|
||||
"speed": "90/130",
|
||||
"armor": 12,
|
||||
"body": 16,
|
||||
"pilot": 2,
|
||||
"sensor": 2,
|
||||
"notes": "Step-van rigger mobile workshop"
|
||||
},
|
||||
{
|
||||
"name": "Lockheed Optic-X2",
|
||||
"handling": "4",
|
||||
"accel": "12",
|
||||
"speed": "80",
|
||||
"armor": 2,
|
||||
"body": 3,
|
||||
"pilot": 4,
|
||||
"sensor": 4,
|
||||
"notes": "Stealth recon drone w/ R6 Clearsight, R6 Stealth autosofts"
|
||||
},
|
||||
{
|
||||
"name": "MCT-Nissan Roto-Drone (x3)",
|
||||
"handling": "4",
|
||||
"accel": "8",
|
||||
"speed": "70",
|
||||
"armor": 6,
|
||||
"body": 6,
|
||||
"pilot": 3,
|
||||
"sensor": 3,
|
||||
"notes": "Combat drone w/ weapon mount (Ingram Smartgun XI), R6 Maneuver, R6 Targeting autosofts"
|
||||
},
|
||||
{
|
||||
"name": "MCT Hornet (x4)",
|
||||
"handling": "3",
|
||||
"accel": "5",
|
||||
"speed": "30",
|
||||
"armor": 0,
|
||||
"body": 1,
|
||||
"pilot": 2,
|
||||
"sensor": 2,
|
||||
"notes": "Micro indoor recon drone w/ R6 Stealth autosoft"
|
||||
},
|
||||
{
|
||||
"name": "Horizon Flying Eye (x3)",
|
||||
"handling": "3",
|
||||
"accel": "6",
|
||||
"speed": "40",
|
||||
"armor": 1,
|
||||
"body": 1,
|
||||
"pilot": 2,
|
||||
"sensor": 2,
|
||||
"notes": "Micro surveillance drone w/ smoke grenade upgrade, R6 Maneuver autosoft"
|
||||
}
|
||||
],
|
||||
"gear": [
|
||||
{ "name": "Armor jacket", "rating": 4, "quantity": 1 },
|
||||
{ "name": "Automotive mechanic shop", "quantity": 1 },
|
||||
{
|
||||
"name": "Maersk Spider RCC",
|
||||
"rating": 4,
|
||||
"quantity": 1,
|
||||
"notes": "DR 4, D/F 4/5"
|
||||
},
|
||||
{
|
||||
"name": "Renraku Sensei commlink",
|
||||
"rating": 3,
|
||||
"quantity": 1,
|
||||
"notes": "DR 3, D/F 2/0"
|
||||
},
|
||||
{ "name": "Rating 3 Targeting Autosoft (HK 227)", "quantity": 1 },
|
||||
{ "name": "Certified credstick", "quantity": 1, "notes": "265¥" },
|
||||
{ "name": "FN HAR ammo box", "quantity": 175 }
|
||||
],
|
||||
"spells": [],
|
||||
"adept_powers": []
|
||||
}
|
||||
}
|
||||
329
rulesets/sr6/examples/character/frostburn.json
Normal file
329
rulesets/sr6/examples/character/frostburn.json
Normal file
@@ -0,0 +1,329 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "8f3b2049-3f04-4c17-91de-84bb41e7399a",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "character",
|
||||
"display_name": "Frostburn",
|
||||
"description": "Ork Combat Mage from the official Shadowrun 6th World Beginner Box.",
|
||||
"template_id": "character_sheet",
|
||||
"properties": {
|
||||
"alias": "Frostburn",
|
||||
"real_name": "Kendra Maguire",
|
||||
"player": "Catalyst Pregen",
|
||||
"notes": "Ork Combat Mage specializing in fire, ice, protective illusions, and healing.",
|
||||
"metatype": "Ork",
|
||||
"ethnicity": "White",
|
||||
"age": 25,
|
||||
"sex": "Female",
|
||||
"height": "2 m",
|
||||
"weight": "115 kg",
|
||||
"reputation": 2,
|
||||
"heat": 0,
|
||||
"karma": 0,
|
||||
"total_karma": 0,
|
||||
"misc": "Former NeoNET corporate security magical operative.",
|
||||
"attributes": {
|
||||
"body": 4,
|
||||
"agility": 4,
|
||||
"reaction": 2,
|
||||
"strength": 3,
|
||||
"willpower": 7,
|
||||
"logic": 5,
|
||||
"intuition": 1,
|
||||
"charisma": 3,
|
||||
"edge": 2,
|
||||
"essence": 6.0,
|
||||
"magic": 6,
|
||||
"edge_points": 2
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "3 + 1D6",
|
||||
"matrix_initiative": "3 + 1D6",
|
||||
"astral_initiative": "7 + 2D6",
|
||||
"defense_rating": 7,
|
||||
"unarmed_ar": 4,
|
||||
"composure": 10,
|
||||
"judge_intentions": 4,
|
||||
"memory": 12,
|
||||
"lift_carry": 7,
|
||||
"movement": "5/10/+1"
|
||||
},
|
||||
"condition_monitor": {
|
||||
"physical_damage": 0,
|
||||
"physical_boxes": 10,
|
||||
"stun_damage": 0,
|
||||
"stun_boxes": 12,
|
||||
"overflow": 0
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Sorcery",
|
||||
"rating": 6,
|
||||
"attribute": "Magic",
|
||||
"dice_pool": 12,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 3,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 7,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 2,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 6,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Astral",
|
||||
"rating": 3,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 4,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 3,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 4,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Athletics",
|
||||
"rating": 1,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Stealth",
|
||||
"rating": 1,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Magical Security",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 7,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Security Procedures",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 7,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Seattle Underground",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 7,
|
||||
"type": "Knowledge"
|
||||
}
|
||||
],
|
||||
"qualities": [
|
||||
{
|
||||
"name": "Built Tough",
|
||||
"type": "Positive",
|
||||
"notes": "+1 Physical damage track box."
|
||||
},
|
||||
{
|
||||
"name": "Low-light Vision",
|
||||
"type": "Positive",
|
||||
"notes": "Natural ork low-light perception."
|
||||
},
|
||||
{
|
||||
"name": "Dependents",
|
||||
"type": "Negative",
|
||||
"notes": "Supports her family in Redmond."
|
||||
},
|
||||
{
|
||||
"name": "SINner",
|
||||
"type": "Negative",
|
||||
"notes": "Corporate SIN from former employment with NeoNET."
|
||||
},
|
||||
{
|
||||
"name": "Socially Awkward",
|
||||
"type": "Negative",
|
||||
"notes": "Direct, blunt, and exasperated demeanor."
|
||||
}
|
||||
],
|
||||
"currency_and_ids": {
|
||||
"nuyen": 3500,
|
||||
"primary_lifestyle": "Low (prepaid)",
|
||||
"licenses": "Concealed Carry, Registered Awakened Practitioner",
|
||||
"fake_ids": [
|
||||
{
|
||||
"name": "Evelyn Graves",
|
||||
"rating": 3,
|
||||
"lifestyle": "Low",
|
||||
"funds": "3,500¥",
|
||||
"licenses": "Firearms, Mage License"
|
||||
}
|
||||
]
|
||||
},
|
||||
"contacts": [
|
||||
{
|
||||
"name": "Brimstone",
|
||||
"loyalty": 3,
|
||||
"connection": 3,
|
||||
"notes": "Elf combat mage, former NeoNET coworker and fellow runner."
|
||||
},
|
||||
{
|
||||
"name": "Harrison Kellerman",
|
||||
"loyalty": 2,
|
||||
"connection": 4,
|
||||
"notes": "Talismonger and owner of the Io Pan! lore store in Downtown Seattle."
|
||||
},
|
||||
{
|
||||
"name": "Jules Maguire",
|
||||
"loyalty": 4,
|
||||
"connection": 2,
|
||||
"notes": "Ork rigger, Frostburn's older brother and Cascade Ork smuggler."
|
||||
}
|
||||
],
|
||||
"primary_armor": {
|
||||
"name": "Lined coat",
|
||||
"rating": "+3",
|
||||
"notes": "+3 Defense Rating bonus"
|
||||
},
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Walther Palm Pistol",
|
||||
"dv": "2P",
|
||||
"mode": "BF",
|
||||
"attack_rating": { "close": 12, "near": 7, "far": "—", "extreme": "—" },
|
||||
"ammo": "2(b)",
|
||||
"notes": "Hold-out pistol"
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Extendible baton",
|
||||
"dv": "2S",
|
||||
"close": 5,
|
||||
"notes": "Club"
|
||||
},
|
||||
"ranged_weapons": [
|
||||
{
|
||||
"name": "Walther Palm Pistol",
|
||||
"dv": "2P",
|
||||
"mode": "BF",
|
||||
"attack_rating": { "close": 12, "near": 7, "far": "—", "extreme": "—" },
|
||||
"ammo": "2(b)",
|
||||
"notes": "Double-barreled hold-out"
|
||||
}
|
||||
],
|
||||
"melee_weapons": [
|
||||
{
|
||||
"name": "Extendible baton",
|
||||
"dv": "2S",
|
||||
"close": 5,
|
||||
"notes": "Concealable club"
|
||||
}
|
||||
],
|
||||
"armor": [
|
||||
{
|
||||
"name": "Lined coat",
|
||||
"rating": "+3",
|
||||
"notes": "+3 DR bonus"
|
||||
}
|
||||
],
|
||||
"matrix_stats": {
|
||||
"device_name": "Renraku Sensei commlink",
|
||||
"device_rating": 3,
|
||||
"attack": 0,
|
||||
"sleaze": 0,
|
||||
"data_processing": 2,
|
||||
"firewall": 0,
|
||||
"programs": [],
|
||||
"matrix_damage": 0
|
||||
},
|
||||
"augmentations": [],
|
||||
"vehicles": [],
|
||||
"gear": [
|
||||
{ "name": "Lined coat", "rating": 3, "quantity": 1 },
|
||||
{ "name": "Renraku Sensei commlink", "rating": 3, "quantity": 1 },
|
||||
{ "name": "Certified credstick", "quantity": 1, "notes": "3,500¥" },
|
||||
{ "name": "Walther Palm Pistol ammo box", "quantity": 20 }
|
||||
],
|
||||
"spells": [
|
||||
{
|
||||
"name": "Fireball",
|
||||
"category": "S",
|
||||
"type_target": "Physical",
|
||||
"range": "LOS (Area)",
|
||||
"duration": "Instant",
|
||||
"drain": "5",
|
||||
"notes": "Elemental fire damage area effect"
|
||||
},
|
||||
{
|
||||
"name": "Flamestrike",
|
||||
"category": "S",
|
||||
"type_target": "Physical",
|
||||
"range": "LOS",
|
||||
"duration": "Instant",
|
||||
"drain": "4",
|
||||
"notes": "Single-target direct flame bolt"
|
||||
},
|
||||
{
|
||||
"name": "Ice Spear",
|
||||
"category": "S",
|
||||
"type_target": "Physical",
|
||||
"range": "LOS",
|
||||
"duration": "Instant",
|
||||
"drain": "4",
|
||||
"notes": "Piercing elemental cold damage"
|
||||
},
|
||||
{
|
||||
"name": "Heal",
|
||||
"category": "S",
|
||||
"type_target": "Essence",
|
||||
"range": "Touch",
|
||||
"duration": "Permanent",
|
||||
"drain": "3",
|
||||
"notes": "Repairs physical damage boxes"
|
||||
},
|
||||
{
|
||||
"name": "Combat Sense",
|
||||
"category": "S",
|
||||
"type_target": "Mana",
|
||||
"range": "Touch",
|
||||
"duration": "Sustained",
|
||||
"drain": "3",
|
||||
"notes": "Adds defense dice and awareness"
|
||||
},
|
||||
{
|
||||
"name": "Improved Invisibility",
|
||||
"category": "S",
|
||||
"type_target": "Physical",
|
||||
"range": "Touch",
|
||||
"duration": "Sustained",
|
||||
"drain": "4",
|
||||
"notes": "Cloaks target from visual & technological detection"
|
||||
},
|
||||
{
|
||||
"name": "Levitate",
|
||||
"category": "S",
|
||||
"type_target": "Physical",
|
||||
"range": "LOS",
|
||||
"duration": "Sustained",
|
||||
"drain": "4",
|
||||
"notes": "Telekinetically lifts objects or persons"
|
||||
},
|
||||
{
|
||||
"name": "Mana Barrier",
|
||||
"category": "S",
|
||||
"type_target": "Mana",
|
||||
"range": "LOS (Area)",
|
||||
"duration": "Sustained",
|
||||
"drain": "4",
|
||||
"notes": "Blocks astral forms and hostile spells"
|
||||
}
|
||||
],
|
||||
"adept_powers": []
|
||||
}
|
||||
}
|
||||
204
rulesets/sr6/examples/character/rude.json
Normal file
204
rulesets/sr6/examples/character/rude.json
Normal file
@@ -0,0 +1,204 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "e97b91d2-06c5-4d7a-b5a9-467362974eb1",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "character",
|
||||
"display_name": "Rude",
|
||||
"description": "Troll Street Samurai from the official Shadowrun 6th World Beginner Box.",
|
||||
"template_id": "character_sheet",
|
||||
"properties": {
|
||||
"alias": "Rude",
|
||||
"real_name": "Unknown (\"Rudiarius\")",
|
||||
"player": "Catalyst Pregen",
|
||||
"notes": "Street Samurai meat shield with amnesia and a vicious combat streak.",
|
||||
"metatype": "Troll",
|
||||
"ethnicity": "White",
|
||||
"age": 29,
|
||||
"sex": "Male",
|
||||
"height": "2.4 m",
|
||||
"weight": "310 kg",
|
||||
"reputation": 3,
|
||||
"heat": 1,
|
||||
"karma": 0,
|
||||
"total_karma": 0,
|
||||
"misc": "Carries an ancient wooden gladiator practice sword.",
|
||||
"attributes": {
|
||||
"body": 7,
|
||||
"agility": 5,
|
||||
"reaction": 6,
|
||||
"strength": 6,
|
||||
"willpower": 4,
|
||||
"logic": 4,
|
||||
"intuition": 4,
|
||||
"charisma": 2,
|
||||
"edge": 5,
|
||||
"essence": 5.5,
|
||||
"edge_points": 5
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "10 + 1D6",
|
||||
"matrix_initiative": "10 + 1D6",
|
||||
"astral_initiative": "—",
|
||||
"defense_rating": 11,
|
||||
"unarmed_ar": 7,
|
||||
"composure": 6,
|
||||
"judge_intentions": 6,
|
||||
"memory": 8,
|
||||
"lift_carry": 11,
|
||||
"movement": "5/10/+1"
|
||||
},
|
||||
"condition_monitor": {
|
||||
"physical_damage": 0,
|
||||
"physical_boxes": 12,
|
||||
"stun_damage": 0,
|
||||
"stun_boxes": 10,
|
||||
"overflow": 0
|
||||
},
|
||||
"skills": [
|
||||
{ "name": "Firearms", "rating": 6, "attribute": "Agility", "dice_pool": 12, "type": "Action" },
|
||||
{ "name": "Close Combat", "rating": 3, "attribute": "Agility", "dice_pool": 9, "type": "Action" },
|
||||
{ "name": "Athletics", "rating": 3, "attribute": "Agility", "dice_pool": 9, "type": "Action" },
|
||||
{ "name": "Perception", "rating": 3, "attribute": "Intuition", "dice_pool": 7, "type": "Action" },
|
||||
{ "name": "Engineering", "rating": 2, "attribute": "Logic", "specialization": "Lockpicking", "dice_pool": 6, "type": "Action" },
|
||||
{ "name": "Influence", "rating": 2, "attribute": "Charisma", "dice_pool": 4, "type": "Action" },
|
||||
{ "name": "Exotic Weapons", "rating": 3, "attribute": "Agility", "specialization": "Grapple Gun", "dice_pool": 9, "type": "Action" },
|
||||
{ "name": "Exotic Weapons", "rating": 4, "attribute": "Agility", "specialization": "Grapple Launcher", "dice_pool": 9, "type": "Action" },
|
||||
{ "name": "Firearms Manufacturers", "rating": 2, "attribute": "Logic", "dice_pool": 6, "type": "Knowledge" },
|
||||
{ "name": "Security Systems", "rating": 2, "attribute": "Logic", "dice_pool": 6, "type": "Knowledge" },
|
||||
{ "name": "Urban Brawl Teams", "rating": 2, "attribute": "Logic", "dice_pool": 6, "type": "Knowledge" }
|
||||
],
|
||||
"qualities": [
|
||||
{ "name": "Built Tough", "type": "Positive", "notes": "+1 Physical condition monitor box." },
|
||||
{ "name": "Dermal Deposits", "type": "Positive", "notes": "+1 natural Armor/Defense Rating." },
|
||||
{ "name": "High Pain Tolerance", "type": "Positive", "notes": "Reduces wound modifiers by 1." },
|
||||
{ "name": "Thermographic Vision", "type": "Positive", "notes": "Natural troll heat-signature vision." },
|
||||
{ "name": "Socially Awkward", "type": "Negative", "notes": "Blunt and lacking empathy due to amnesia." }
|
||||
],
|
||||
"currency_and_ids": {
|
||||
"nuyen": 3500,
|
||||
"primary_lifestyle": "Low (1 month prepaid)",
|
||||
"licenses": "Concealed Carry (Heavy Pistol, Sniper Rifle)",
|
||||
"fake_ids": [
|
||||
{
|
||||
"name": "Marcus Vance",
|
||||
"rating": 3,
|
||||
"lifestyle": "Low",
|
||||
"funds": "3,500¥",
|
||||
"licenses": "Driver's, Concealed Carry"
|
||||
}
|
||||
]
|
||||
},
|
||||
"contacts": [
|
||||
{
|
||||
"name": "Billy Shen",
|
||||
"loyalty": 2,
|
||||
"connection": 4,
|
||||
"notes": "Octagon Triad lieutenant, enforcer, and arms dealer."
|
||||
},
|
||||
{
|
||||
"name": "Four-Finger Wong",
|
||||
"loyalty": 3,
|
||||
"connection": 3,
|
||||
"notes": "Cyber-surgeon and underground street doc."
|
||||
},
|
||||
{
|
||||
"name": "Mia",
|
||||
"loyalty": 3,
|
||||
"connection": 2,
|
||||
"notes": "Part-time fixer and waitress at Peaceable Kingdom."
|
||||
}
|
||||
],
|
||||
"primary_armor": {
|
||||
"name": "Armor jacket",
|
||||
"rating": "+2",
|
||||
"notes": "+2 Defense Rating bonus"
|
||||
},
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Ares Desert Strike",
|
||||
"dv": "5P",
|
||||
"mode": "SA",
|
||||
"attack_rating": {
|
||||
"close": 3,
|
||||
"near": 10,
|
||||
"far": 10,
|
||||
"extreme": 10
|
||||
},
|
||||
"ammo": "14(c)",
|
||||
"notes": "Sniper rifle w/ imaging scope, shock pad"
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Sword",
|
||||
"dv": "3P",
|
||||
"close": 9,
|
||||
"notes": "Blade"
|
||||
},
|
||||
"ranged_weapons": [
|
||||
{
|
||||
"name": "Ares Desert Strike (Sniper Rifle)",
|
||||
"dv": "5P",
|
||||
"mode": "SA",
|
||||
"attack_rating": { "close": 3, "near": 10, "far": 10, "extreme": 10 },
|
||||
"ammo": "14(c)",
|
||||
"notes": "w/ imaging scope, shock pad"
|
||||
},
|
||||
{
|
||||
"name": "Ares Predator VI (Heavy Pistol)",
|
||||
"dv": "4P",
|
||||
"mode": "SA",
|
||||
"attack_rating": { "close": 9, "near": 9, "far": 7, "extreme": "—" },
|
||||
"ammo": "15(c)",
|
||||
"notes": "w/ smartlink"
|
||||
}
|
||||
],
|
||||
"melee_weapons": [
|
||||
{
|
||||
"name": "Sword (Blade)",
|
||||
"dv": "3P",
|
||||
"close": 9,
|
||||
"notes": "Monofilament edge"
|
||||
}
|
||||
],
|
||||
"armor": [
|
||||
{
|
||||
"name": "Armor jacket",
|
||||
"rating": "+2",
|
||||
"notes": "Provides +2 DR"
|
||||
}
|
||||
],
|
||||
"matrix_stats": {
|
||||
"device_name": "Sony Emperor commlink",
|
||||
"device_rating": 2,
|
||||
"attack": 0,
|
||||
"sleaze": 0,
|
||||
"data_processing": 1,
|
||||
"firewall": 1,
|
||||
"programs": [],
|
||||
"matrix_damage": 0
|
||||
},
|
||||
"augmentations": [
|
||||
{
|
||||
"name": "Cybereyes",
|
||||
"rating": 2,
|
||||
"notes": "w/ smartlink, low-light vision",
|
||||
"essence": 0.2
|
||||
},
|
||||
{
|
||||
"name": "Reaction enhancers",
|
||||
"rating": 1,
|
||||
"notes": "+1 REA, +1 Initiative",
|
||||
"essence": 0.3
|
||||
}
|
||||
],
|
||||
"vehicles": [],
|
||||
"gear": [
|
||||
{ "name": "Armor jacket", "rating": 2, "quantity": 1 },
|
||||
{ "name": "Sony Emperor commlink", "rating": 2, "quantity": 1 },
|
||||
{ "name": "Grapple gun", "quantity": 1, "notes": "w/ 100m stealth rope" },
|
||||
{ "name": "Certified credstick", "quantity": 1, "notes": "Contains 3,500¥" },
|
||||
{ "name": "Spare ammo clips (Ares Predator)", "quantity": 3 },
|
||||
{ "name": "Spare ammo clips (Ares Desert Strike)", "quantity": 2 }
|
||||
],
|
||||
"spells": [],
|
||||
"adept_powers": []
|
||||
}
|
||||
}
|
||||
264
rulesets/sr6/examples/character/yu.json
Normal file
264
rulesets/sr6/examples/character/yu.json
Normal file
@@ -0,0 +1,264 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "7a83d9b1-0943-4e89-a2a1-e40d0f287113",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "character",
|
||||
"display_name": "Yu",
|
||||
"description": "Elf Covert Ops Specialist and Face from the official Shadowrun 6th World Beginner Box.",
|
||||
"template_id": "character_sheet",
|
||||
"properties": {
|
||||
"alias": "Yu",
|
||||
"real_name": "Yu",
|
||||
"player": "Catalyst Pregen",
|
||||
"notes": "Elf Covert Ops Specialist and Face with high agility, charisma, and stealth skills.",
|
||||
"metatype": "Elf",
|
||||
"ethnicity": "Cantonese",
|
||||
"age": 28,
|
||||
"sex": "Male",
|
||||
"height": "1.8 m",
|
||||
"weight": "77 kg",
|
||||
"reputation": 2,
|
||||
"heat": 0,
|
||||
"karma": 0,
|
||||
"total_karma": 0,
|
||||
"misc": "Red Dragon / Octagon Triad affiliate; former thief and enforcer in Hong Kong.",
|
||||
"attributes": {
|
||||
"body": 3,
|
||||
"agility": 6,
|
||||
"reaction": 4,
|
||||
"strength": 3,
|
||||
"willpower": 5,
|
||||
"logic": 5,
|
||||
"intuition": 5,
|
||||
"charisma": 8,
|
||||
"edge": 2,
|
||||
"essence": 6.0,
|
||||
"magic": 0,
|
||||
"edge_points": 2
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "9 + 1D6",
|
||||
"matrix_initiative": "9 + 1D6",
|
||||
"astral_initiative": "—",
|
||||
"defense_rating": 6,
|
||||
"unarmed_ar": 6,
|
||||
"composure": 13,
|
||||
"judge_intentions": 13,
|
||||
"memory": 10,
|
||||
"lift_carry": 6,
|
||||
"movement": "5/10/+1"
|
||||
},
|
||||
"condition_monitor": {
|
||||
"physical_damage": 0,
|
||||
"physical_boxes": 10,
|
||||
"stun_damage": 0,
|
||||
"stun_boxes": 11,
|
||||
"overflow": 0
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Con",
|
||||
"rating": 6,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 14,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 6,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 14,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Stealth",
|
||||
"rating": 6,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 12,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 4,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 10,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 2,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 8,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 2,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 7,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Piloting",
|
||||
"rating": 2,
|
||||
"attribute": "Reaction",
|
||||
"dice_pool": 6,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Biotech",
|
||||
"rating": 1,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 6,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Outdoors",
|
||||
"rating": 1,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 6,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Architecture",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 7,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Close-up Magic",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 7,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Wildlife",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 7,
|
||||
"type": "Knowledge"
|
||||
}
|
||||
],
|
||||
"qualities": [
|
||||
{
|
||||
"name": "Catlike",
|
||||
"type": "Positive",
|
||||
"notes": "+1 dice pool bonus on stealth and acrobatics tests."
|
||||
},
|
||||
{
|
||||
"name": "Double-Jointed",
|
||||
"type": "Positive",
|
||||
"notes": "+1 dice pool bonus on escape and contortion tests."
|
||||
},
|
||||
{
|
||||
"name": "Low-Light Vision",
|
||||
"type": "Positive",
|
||||
"notes": "Natural elf low-light perception."
|
||||
}
|
||||
],
|
||||
"currency_and_ids": {
|
||||
"nuyen": 3500,
|
||||
"primary_lifestyle": "Low (1 month prepaid)",
|
||||
"licenses": "Concealed Carry (Light Pistol)",
|
||||
"fake_ids": [
|
||||
{
|
||||
"name": "Raymond Chang",
|
||||
"rating": 4,
|
||||
"lifestyle": "Low",
|
||||
"funds": "3,500¥",
|
||||
"licenses": "Firearms, Security Tech"
|
||||
}
|
||||
]
|
||||
},
|
||||
"contacts": [
|
||||
{
|
||||
"name": "Billy Shen",
|
||||
"loyalty": 2,
|
||||
"connection": 4,
|
||||
"notes": "Octagon Triad lieutenant, enforcer, and arms dealer."
|
||||
},
|
||||
{
|
||||
"name": "Four-Finger Wong",
|
||||
"loyalty": 3,
|
||||
"connection": 3,
|
||||
"notes": "Cyber-surgeon and underground street doc."
|
||||
},
|
||||
{
|
||||
"name": "Mia",
|
||||
"loyalty": 3,
|
||||
"connection": 2,
|
||||
"notes": "Part-time fixer and waitress at Peaceable Kingdom."
|
||||
}
|
||||
],
|
||||
"primary_armor": {
|
||||
"name": "Lined coat",
|
||||
"rating": "+3",
|
||||
"notes": "+3 Defense Rating bonus"
|
||||
},
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Ares Light Fire 75",
|
||||
"dv": "2P",
|
||||
"mode": "SA",
|
||||
"attack_rating": { "close": 10, "near": 7, "far": 6, "extreme": "—" },
|
||||
"ammo": "16(c)",
|
||||
"notes": "w/ silencer, smartgun"
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Extendible baton",
|
||||
"dv": "3S",
|
||||
"close": 6,
|
||||
"notes": "Club"
|
||||
},
|
||||
"ranged_weapons": [
|
||||
{
|
||||
"name": "Ares Light Fire 75 (Light Pistol)",
|
||||
"dv": "2P",
|
||||
"mode": "SA",
|
||||
"attack_rating": { "close": 10, "near": 7, "far": 6, "extreme": "—" },
|
||||
"ammo": "16(c)",
|
||||
"notes": "w/ silencer, smartgun"
|
||||
}
|
||||
],
|
||||
"melee_weapons": [
|
||||
{
|
||||
"name": "Extendible baton",
|
||||
"dv": "3S",
|
||||
"close": 6,
|
||||
"notes": "Club"
|
||||
}
|
||||
],
|
||||
"armor": [
|
||||
{
|
||||
"name": "Lined coat",
|
||||
"rating": "+3",
|
||||
"notes": "+3 DR bonus"
|
||||
}
|
||||
],
|
||||
"matrix_stats": {
|
||||
"device_name": "Erika Elite commlink",
|
||||
"device_rating": 4,
|
||||
"attack": 0,
|
||||
"sleaze": 0,
|
||||
"data_processing": 2,
|
||||
"firewall": 1,
|
||||
"programs": [],
|
||||
"matrix_damage": 0
|
||||
},
|
||||
"augmentations": [],
|
||||
"vehicles": [],
|
||||
"gear": [
|
||||
{ "name": "Lined coat", "rating": 3, "quantity": 1 },
|
||||
{ "name": "Erika Elite commlink", "rating": 4, "quantity": 1 },
|
||||
{ "name": "Disguise kit", "quantity": 1 },
|
||||
{ "name": "First Aid Kit", "rating": 3, "quantity": 1 },
|
||||
{ "name": "Passkey", "rating": 4, "quantity": 1 },
|
||||
{ "name": "Contacts", "quantity": 1, "notes": "w/ smartlink" },
|
||||
{ "name": "Certified credstick", "quantity": 1, "notes": "3,500¥" },
|
||||
{ "name": "Spare ammo clips (Ares Light Fire 75)", "quantity": 3 }
|
||||
],
|
||||
"spells": [],
|
||||
"adept_powers": []
|
||||
}
|
||||
}
|
||||
257
rulesets/sr6/examples/character/zipfile.json
Normal file
257
rulesets/sr6/examples/character/zipfile.json
Normal file
@@ -0,0 +1,257 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "e812d4a5-671c-4b52-9b2f-3d6118bfa934",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "character",
|
||||
"display_name": "Zipfile",
|
||||
"description": "Dwarf Decker from the official Shadowrun 6th World Beginner Box.",
|
||||
"template_id": "character_sheet",
|
||||
"properties": {
|
||||
"alias": "Zipfile",
|
||||
"real_name": "Zipfile",
|
||||
"player": "Catalyst Pregen",
|
||||
"notes": "Dwarf Decker specializing in illicit host penetration, device control, and Matrix sabotage.",
|
||||
"metatype": "Dwarf",
|
||||
"ethnicity": "Bantu",
|
||||
"age": 23,
|
||||
"sex": "Female",
|
||||
"height": "1.1 m",
|
||||
"weight": "36 kg",
|
||||
"reputation": 2,
|
||||
"heat": 0,
|
||||
"karma": 0,
|
||||
"total_karma": 0,
|
||||
"misc": "Azanian neo-anarchist activist and urban brawl fan.",
|
||||
"attributes": {
|
||||
"body": 5,
|
||||
"agility": 3,
|
||||
"reaction": 4,
|
||||
"strength": 4,
|
||||
"willpower": 6,
|
||||
"logic": 6,
|
||||
"intuition": 6,
|
||||
"charisma": 3,
|
||||
"edge": 4,
|
||||
"essence": 3.7,
|
||||
"magic": 0,
|
||||
"edge_points": 4
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "10 + 1D6",
|
||||
"matrix_initiative": "12 + 1D6",
|
||||
"astral_initiative": "—",
|
||||
"defense_rating": 8,
|
||||
"unarmed_ar": 4,
|
||||
"composure": 9,
|
||||
"judge_intentions": 9,
|
||||
"memory": 12,
|
||||
"lift_carry": 9,
|
||||
"movement": "5/10/+1"
|
||||
},
|
||||
"condition_monitor": {
|
||||
"physical_damage": 0,
|
||||
"physical_boxes": 11,
|
||||
"stun_damage": 0,
|
||||
"stun_boxes": 11,
|
||||
"overflow": 0
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Cracking",
|
||||
"rating": 6,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 12,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Electronics",
|
||||
"rating": 6,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 12,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Engineering",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 8,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 3,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 9,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 2,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 2,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Cyberdeck Models",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 8,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "German Expressionist Cinema",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 8,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Matrix Security",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 8,
|
||||
"type": "Knowledge"
|
||||
}
|
||||
],
|
||||
"qualities": [
|
||||
{
|
||||
"name": "Gearhead",
|
||||
"type": "Positive",
|
||||
"notes": "May spend Edge on Repair tests and during downtime repairs."
|
||||
},
|
||||
{
|
||||
"name": "Guts",
|
||||
"type": "Positive",
|
||||
"notes": "+2 dice pool bonus on tests resisting fear and intimidation."
|
||||
},
|
||||
{
|
||||
"name": "Thermographic Vision",
|
||||
"type": "Positive",
|
||||
"notes": "Natural dwarf heat-signature vision."
|
||||
}
|
||||
],
|
||||
"currency_and_ids": {
|
||||
"nuyen": 3500,
|
||||
"primary_lifestyle": "Low (1 month prepaid)",
|
||||
"licenses": "Concealed Carry (Heavy Pistol), Cyberdeck Operator License",
|
||||
"fake_ids": [
|
||||
{
|
||||
"name": "Nandi Mandela",
|
||||
"rating": 3,
|
||||
"lifestyle": "Low",
|
||||
"funds": "3,500¥",
|
||||
"licenses": "Heavy Pistol, Hardware Tech"
|
||||
}
|
||||
]
|
||||
},
|
||||
"contacts": [
|
||||
{
|
||||
"name": "Arclight",
|
||||
"loyalty": 3,
|
||||
"connection": 4,
|
||||
"notes": "Combat mage and coordinator for the Black Star neo-anarchist shadowrunner collective."
|
||||
},
|
||||
{
|
||||
"name": "Casey Connors",
|
||||
"loyalty": 2,
|
||||
"connection": 3,
|
||||
"notes": "Owner of the Cathode Glow e-sports bar and tech museum in Tacoma."
|
||||
},
|
||||
{
|
||||
"name": "Jules Maguire",
|
||||
"loyalty": 2,
|
||||
"connection": 2,
|
||||
"notes": "Cascade Ork smuggler."
|
||||
}
|
||||
],
|
||||
"primary_armor": {
|
||||
"name": "Armor vest",
|
||||
"rating": "+3",
|
||||
"notes": "+3 Defense Rating bonus"
|
||||
},
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Ruger Super Warhawk",
|
||||
"dv": "4P",
|
||||
"mode": "SS",
|
||||
"attack_rating": { "close": 8, "near": 11, "far": 8, "extreme": "—" },
|
||||
"ammo": "6(cy)",
|
||||
"notes": "Heavy cylinder revolver"
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Unarmed Strike",
|
||||
"dv": "2S",
|
||||
"close": 4,
|
||||
"notes": "Fist / kick"
|
||||
},
|
||||
"ranged_weapons": [
|
||||
{
|
||||
"name": "Ruger Super Warhawk (Heavy Pistol)",
|
||||
"dv": "4P",
|
||||
"mode": "SS",
|
||||
"attack_rating": { "close": 8, "near": 11, "far": 8, "extreme": "—" },
|
||||
"ammo": "6(cy)",
|
||||
"notes": "Heavy revolver"
|
||||
}
|
||||
],
|
||||
"melee_weapons": [
|
||||
{
|
||||
"name": "Unarmed Strike",
|
||||
"dv": "2S",
|
||||
"close": 4,
|
||||
"notes": "Natural"
|
||||
}
|
||||
],
|
||||
"armor": [
|
||||
{
|
||||
"name": "Armor vest",
|
||||
"rating": "+3",
|
||||
"notes": "+3 DR bonus"
|
||||
}
|
||||
],
|
||||
"matrix_stats": {
|
||||
"device_name": "Renraku Kitsune cyberdeck",
|
||||
"device_rating": 4,
|
||||
"attack": 6,
|
||||
"sleaze": 7,
|
||||
"data_processing": 4,
|
||||
"firewall": 4,
|
||||
"programs": ["Decryption", "Exploit", "Overclock"],
|
||||
"matrix_damage": 0
|
||||
},
|
||||
"augmentations": [
|
||||
{
|
||||
"name": "Cyberjack MPI",
|
||||
"rating": 4,
|
||||
"notes": "7/6, +2 Matrix initiative",
|
||||
"essence": 2.3
|
||||
}
|
||||
],
|
||||
"vehicles": [],
|
||||
"gear": [
|
||||
{ "name": "Armor vest", "rating": 3, "quantity": 1 },
|
||||
{
|
||||
"name": "Renraku Kitsune cyberdeck",
|
||||
"rating": 4,
|
||||
"quantity": 1,
|
||||
"notes": "DR 4, 7/6, 8 slots"
|
||||
},
|
||||
{
|
||||
"name": "Hermes Ikon commlink",
|
||||
"rating": 5,
|
||||
"quantity": 1,
|
||||
"notes": "DR 5, 3/0"
|
||||
},
|
||||
{ "name": "Certified credstick", "quantity": 1, "notes": "3,500¥" },
|
||||
{ "name": "Heavy pistol ammo box (Ruger)", "quantity": 30 }
|
||||
],
|
||||
"spells": [],
|
||||
"adept_powers": []
|
||||
}
|
||||
}
|
||||
514
rulesets/sr6/examples/dossier/emu.json
Normal file
514
rulesets/sr6/examples/dossier/emu.json
Normal file
@@ -0,0 +1,514 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "7a353684-2e91-4e78-98e3-0d32f508a8c1",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "dossier",
|
||||
"display_name": "Emu (Human Rigger Dossier)",
|
||||
"description": "Full 4-page narrative dossier for Emu, Human Rigger from the SR6 Beginner Box.",
|
||||
"template_id": "dossier_sheet",
|
||||
"properties": {
|
||||
"alias": "Emu",
|
||||
"real_name": "Emu",
|
||||
"player": "Catalyst Pregen",
|
||||
"archetype": "Human Rigger",
|
||||
"quote": "\"(when jumped into her Optic-X2 or Roto-Drones) Flightless bird, my arse.\" / \"Stop shooting my bloody drones!\" / \"You know we don't actually say 'toss a shrimp on the barbie,' right? They're prawns, for frag's sake.\"",
|
||||
"pitch": "Play this character if you like burned rubber and scorched engine oil, commanding a metal-and-plastic army with your brain, or rushing in and charging out of any sticky situation.",
|
||||
"metatype": "Human",
|
||||
"ethnicity": "Aboriginal Australian (Wiradjuri)",
|
||||
"age": 23,
|
||||
"sex": "Female",
|
||||
"height": "1.65 m",
|
||||
"weight": "57 kg",
|
||||
"reputation": 2,
|
||||
"heat": 0,
|
||||
"karma": 0,
|
||||
"total_karma": 0,
|
||||
"misc": "Former mercenary drone pilot with an armed sports sedan, drone fleet, and Ciarniello Mafia debt.",
|
||||
"notes": "Human Rigger commanding aerial recon drones, combat roto-drones, and a modified GMC Commodore sport sedan.",
|
||||
"background": "Some are born into shadowrunning, some achieve it, and some have shadowrunning thrust upon them. The middle group often choose to become runners because they refuse to be pushed into the role in which their upbringing cast them, whether as a starving barrens rat, a comfortable-but-oppressed wageslave, or a hidebound traditionalist who follows the old ways just because their elders said they should. If Emu's life had begun in one of those roles, she might still be there today. Her parents were both Wiradjuri, descended from the indigenous peoples of New South Wales. Emu's mother came from a family of vocal indigenous-rights activists, while her father was a Japancorp wageslave and a product of modern Australian society, despite his ethnic heritage. As a result, Emu spent her formative years being pulled between two different lives. One week, she'd be on 'holiday' in the Outback with her mother, stepfather, and half-siblings, eating bush tucker and being told how her exposure to 'colonial culture' had prevented her from Awakening into a koradji like her grandfather. The next, she'd be in an air-conditioned corporate housing complex, being the token 'Indigenous friend' for other kids her age the way her father was to his colleagues. Feeling like an outsider no matter where she went, Emu took refuge in tinkering, whether with the complex electronics her father designed or the beat-up old trucks her mother's family drove whenever they went out woop woop. When Emu was a teenager, she fled both of her parents' homes for a technical school in Queensland, where she started training as a mechanic. She took up racing both cars and drones in her spare time, and she earned the attention of a mercenary recruiter, who offered her a contract as a drone pilot. Emu's time as a merc had definite rough patches—she didn't handle military-style discipline well—but the combat experience was the foundation she needed to become a shadowrunner. When her contract was up, she decided it was time for a change of pace, so she left Australia for Seattle. Emu's early days in the shadows were rocky; she kept a roof over her head, barely, but her lack of a control rig made it hard for her to catch and pull off better-paying jobs. In sheer frustration, she borrowed a pile of nuyen from the Ciarniello Mafia to get the headware she needed. Luckily, she ran into Ms. Myth soon after, and so far she's managed to keep her creditors at bay—but if the work dries up, it might be time for another inter-city 'change of pace.'",
|
||||
"preferred_tactics": "As a rigger, Emu's responsibilities fall into three primary areas: scouting, ferrying her teammates around, and fire support. She favours using her GMC Commodore sport sedan during runs, since it's fast enough to outrun most pursuit and sports a pair of Mossberg shotguns to deal with (almost) anything that can keep up with it, but she keeps a stereotypical 'rigger van' (a GMC Bulldog) for occasions when she needs to field her entire fleet of drones. The drone that gets the most use by far is Emu's Lockheed Optic-X2, a stealth recon platform she uses to scout locations before runs and keep an eye on events on the ground as they unfold. Her MCT Hornets fill the same role when runs take place indoors. If and when a fight breaks out, Emu turns to her trusty Roto-Drones, usually armed with automatic weapons to lay down suppressive fire while Emu and the rest of the team escape.",
|
||||
"roleplaying_tips": "On the outside, Emu combines the laid-back attitude that many Australians possess with the self-assuredness of a rigger who knows she's damn good at what she does. The flip side is that because she's used to feeling like an outsider, she's wary of commitment, preferring to keep even her teammates at arm's length. She'll have their backs in a scrap, but she's careful not to let herself get too attached.",
|
||||
"vital_contacts": [
|
||||
{
|
||||
"name": "Giovanni Valenti",
|
||||
"role": "Vehicle & Drone Fixer",
|
||||
"description": "Owner of Gio's Garage, drone and vehicle salesman."
|
||||
},
|
||||
{
|
||||
"name": "Steve Draper",
|
||||
"role": "Knight Errant Dispatcher",
|
||||
"description": "Knight Errant dispatcher on the take."
|
||||
},
|
||||
{
|
||||
"name": "Tomaso di Stefano",
|
||||
"role": "Mafia Loan Shark",
|
||||
"description": "Ciarniello Mafia loan shark ('Tommy D') and occasional Mr. Johnson."
|
||||
}
|
||||
],
|
||||
"favorite_hangouts": [
|
||||
{
|
||||
"name": "Black's Junk Yard",
|
||||
"location": "Puyallup",
|
||||
"description": "A scrap yard and workshop in Puyallup."
|
||||
},
|
||||
{
|
||||
"name": "Gio's Garage",
|
||||
"location": "Everett",
|
||||
"description": "An Everett chop shop owned by the Ciarniello Mafia."
|
||||
},
|
||||
{
|
||||
"name": "Grounds for Appeal",
|
||||
"location": "University District",
|
||||
"description": "A cafe near the University of Washington."
|
||||
}
|
||||
],
|
||||
"favorite_downtime_activities": [
|
||||
"Racing cars and drones all over the 'plex",
|
||||
"Tinkering with her various vehicles",
|
||||
"Watching action trids, especially Battlerun and Karl Kombatmage Reloaded"
|
||||
],
|
||||
"sample_actions": [
|
||||
{
|
||||
"action": "Ground Vehicle Operation (Jumped In)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 13,
|
||||
"notes": "Piloting 7 + Intuition 6 (+2 Control Rig bonus, -Speed penalty)"
|
||||
},
|
||||
{
|
||||
"action": "Flying Drone Operation (Jumped In)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 13,
|
||||
"notes": "Piloting 7 + Intuition 6 (Controls Optic-X2 or Roto-Drones directly)"
|
||||
},
|
||||
{
|
||||
"action": "Vehicle Gunnery (Jumped In)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 12,
|
||||
"notes": "Engineering 6 + Gunnery 2 + Logic 4 (Operates Commodore shotguns / drone mounts)"
|
||||
},
|
||||
{
|
||||
"action": "Ground Vehicle Operation (Manual)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 13,
|
||||
"notes": "Piloting 7 + Reaction 4 + Reflex Recorder 1 + Spec 2 - 1 = 13"
|
||||
},
|
||||
{
|
||||
"action": "Sensor Perception / Spot Ambush",
|
||||
"action_type": "Minor",
|
||||
"dice_pool": 9,
|
||||
"notes": "Perception 3 + Intuition 6 (Via Cybereyes / drone sensors)"
|
||||
},
|
||||
{
|
||||
"action": "Command Drone (Autopilot Orders)",
|
||||
"action_type": "Minor",
|
||||
"dice_pool": 10,
|
||||
"notes": "Drone Pilot 4 + Autosoft 6 (Autonomous recon or evasive maneuvers)"
|
||||
},
|
||||
{
|
||||
"action": "Juryrig Device / Emergency Repair",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 10,
|
||||
"notes": "Engineering 6 + Logic 4 (Grants 1 bonus Edge)"
|
||||
},
|
||||
{
|
||||
"action": "Assault Rifle Shot (FN HAR)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 5,
|
||||
"notes": "Firearms 3 + Agility 2 (Gas-vent 2, laser sight)"
|
||||
}
|
||||
],
|
||||
"edge_boosts": [
|
||||
{
|
||||
"cost": 1,
|
||||
"name": "Reroll one die",
|
||||
"description": "Reroll any one die from your roll that failed to score a hit (Post)."
|
||||
},
|
||||
{
|
||||
"cost": 1,
|
||||
"name": "Add 3 to Initiative",
|
||||
"description": "Add +3 to your Initiative Score for the combat turn (Any)."
|
||||
},
|
||||
{
|
||||
"cost": 2,
|
||||
"name": "+1 to single die",
|
||||
"description": "Add +1 to any single die result, turning a 4 into a 5 (hit) (Post)."
|
||||
},
|
||||
{
|
||||
"cost": 2,
|
||||
"name": "Give ally 1 Edge",
|
||||
"description": "Pass 1 Edge point to an allied runner (Any)."
|
||||
},
|
||||
{
|
||||
"cost": 2,
|
||||
"name": "Negate 1 Edge of foe",
|
||||
"description": "Negate 1 point of Edge held by an opponent (Pre)."
|
||||
},
|
||||
{
|
||||
"cost": 3,
|
||||
"name": "Buy automatic hit",
|
||||
"description": "Add 1 automatic hit to test result (Any)."
|
||||
},
|
||||
{
|
||||
"cost": 3,
|
||||
"name": "Heal Stun Damage",
|
||||
"description": "Immediately clear 1 box from your stun damage track."
|
||||
},
|
||||
{
|
||||
"cost": 4,
|
||||
"name": "Add Edge to Pool",
|
||||
"description": "Add full Edge attribute (+5) to dice pool and 6s explode (Pre)."
|
||||
}
|
||||
],
|
||||
"attributes": {
|
||||
"body": 2,
|
||||
"agility": 2,
|
||||
"reaction": 4,
|
||||
"strength": 2,
|
||||
"willpower": 4,
|
||||
"logic": 4,
|
||||
"intuition": 6,
|
||||
"charisma": 3,
|
||||
"edge": 5,
|
||||
"essence": 3.6,
|
||||
"magic": 0,
|
||||
"edge_points": 5
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "10 + 1D6",
|
||||
"matrix_initiative": "10 + 1D6",
|
||||
"astral_initiative": "—",
|
||||
"defense_rating": 6,
|
||||
"unarmed_ar": 6,
|
||||
"composure": 7,
|
||||
"judge_intentions": 10,
|
||||
"memory": 10,
|
||||
"lift_carry": 6,
|
||||
"movement": "5/10/15"
|
||||
},
|
||||
"condition_monitor": {
|
||||
"physical_damage": 0,
|
||||
"physical_boxes": 9,
|
||||
"stun_damage": 0,
|
||||
"stun_boxes": 10,
|
||||
"overflow": 0
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Piloting",
|
||||
"rating": 7,
|
||||
"attribute": "Reaction",
|
||||
"specialization": "Groundcraft",
|
||||
"dice_pool": 13,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Engineering",
|
||||
"rating": 6,
|
||||
"attribute": "Logic",
|
||||
"specialization": "Gunnery",
|
||||
"dice_pool": 12,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 3,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 9,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 3,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Electronics",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 6,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Con",
|
||||
"rating": 2,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 2,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Stealth",
|
||||
"rating": 2,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 4,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Biotech",
|
||||
"rating": 1,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 1,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 3,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Seattle Metroplex Geography",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 6,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Smuggling Routes",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 6,
|
||||
"type": "Knowledge"
|
||||
}
|
||||
],
|
||||
"qualities": [
|
||||
{
|
||||
"name": "Addiction (Cigarettes)",
|
||||
"type": "Negative",
|
||||
"notes": "Level 3 addiction; penalty if in withdrawal."
|
||||
},
|
||||
{
|
||||
"name": "Gearhead",
|
||||
"type": "Positive",
|
||||
"notes": "May spend Edge on repair tests and vehicle handling."
|
||||
},
|
||||
{
|
||||
"name": "In Debt",
|
||||
"type": "Negative",
|
||||
"notes": "Ciarniello Mafia: 200,000¥ debt, 8,000¥/month interest."
|
||||
},
|
||||
{
|
||||
"name": "Juryrigger",
|
||||
"type": "Positive",
|
||||
"notes": "Gains bonus Edge point on Juryrigging tests."
|
||||
},
|
||||
{
|
||||
"name": "SINner",
|
||||
"type": "Negative",
|
||||
"notes": "Standard national/system SIN; extra scrutiny and trace exposure."
|
||||
}
|
||||
],
|
||||
"currency_and_ids": {
|
||||
"nuyen": 265,
|
||||
"primary_lifestyle": "Low (3 months prepaid)",
|
||||
"licenses": "Concealed Carry (Assault Rifle), Drone Rigging, Cyberware",
|
||||
"fake_ids": [
|
||||
{
|
||||
"name": "Kylie Mason",
|
||||
"rating": 3,
|
||||
"lifestyle": "Low",
|
||||
"funds": "265¥",
|
||||
"licenses": "Firearms, Cyberware, RCC"
|
||||
}
|
||||
]
|
||||
},
|
||||
"contacts": [
|
||||
{
|
||||
"name": "Giovanni Valenti",
|
||||
"loyalty": 2,
|
||||
"connection": 3,
|
||||
"notes": "Drone and vehicle fixer, owner of Gio's Garage in Everett."
|
||||
},
|
||||
{
|
||||
"name": "Lenny",
|
||||
"loyalty": 3,
|
||||
"connection": 2,
|
||||
"notes": "Underground safehouse fixer."
|
||||
},
|
||||
{
|
||||
"name": "Steve Draper",
|
||||
"loyalty": 1,
|
||||
"connection": 3,
|
||||
"notes": "Knight Errant dispatcher on the take."
|
||||
},
|
||||
{
|
||||
"name": "Tomaso di Stefano",
|
||||
"loyalty": 2,
|
||||
"connection": 2,
|
||||
"notes": "Ciarniello Mafia loan shark ('Tommy D') and occasional Mr. Johnson."
|
||||
}
|
||||
],
|
||||
"primary_armor": {
|
||||
"name": "Armor jacket",
|
||||
"rating": "+4",
|
||||
"notes": "+4 Defense Rating bonus"
|
||||
},
|
||||
"primary_ranged_weapon": {
|
||||
"name": "FN HAR Assault Rifle",
|
||||
"dv": "5P",
|
||||
"mode": "SA/BF/FA",
|
||||
"attack_rating": { "close": 3, "near": 11, "far": 6, "extreme": 1 },
|
||||
"ammo": "35(c)",
|
||||
"notes": "w/ gas-vent system, laser sight"
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Unarmed Strike",
|
||||
"dv": "2S",
|
||||
"close": 2,
|
||||
"notes": "Natural"
|
||||
},
|
||||
"ranged_weapons": [
|
||||
{
|
||||
"name": "FN HAR Assault Rifle",
|
||||
"dv": "5P",
|
||||
"mode": "SA/BF/FA",
|
||||
"attack_rating": { "close": 3, "near": 11, "far": 6, "extreme": 1 },
|
||||
"ammo": "35(c)",
|
||||
"notes": "w/ gas-vent system, laser sight"
|
||||
}
|
||||
],
|
||||
"melee_weapons": [
|
||||
{
|
||||
"name": "Unarmed Strike",
|
||||
"dv": "2S",
|
||||
"close": 2,
|
||||
"notes": "Natural"
|
||||
}
|
||||
],
|
||||
"armor": [
|
||||
{
|
||||
"name": "Armor jacket",
|
||||
"rating": "+4",
|
||||
"notes": "+4 DR bonus"
|
||||
}
|
||||
],
|
||||
"matrix_stats": {
|
||||
"device_name": "Maersk Spider RCC",
|
||||
"device_rating": 4,
|
||||
"attack": 0,
|
||||
"sleaze": 0,
|
||||
"data_processing": 4,
|
||||
"firewall": 5,
|
||||
"programs": ["Encryption", "Signal Scrubber", "Toolbox"],
|
||||
"matrix_damage": 0
|
||||
},
|
||||
"augmentations": [
|
||||
{
|
||||
"name": "Control Rig",
|
||||
"rating": 2,
|
||||
"notes": "Grants +2 dice pool bonus and +1 Edge on vehicle skill tests when jumped in.",
|
||||
"essence": 2.0
|
||||
},
|
||||
{
|
||||
"name": "Cybereyes",
|
||||
"rating": 3,
|
||||
"notes": "w/ flare compensation, image link, low-light vision, smartlink, thermographic vision",
|
||||
"essence": 0.4
|
||||
},
|
||||
{
|
||||
"name": "Reflex Recorder",
|
||||
"rating": 1,
|
||||
"notes": "Piloting skill (+1 bonus rating)",
|
||||
"essence": 0.1
|
||||
}
|
||||
],
|
||||
"vehicles": [
|
||||
{
|
||||
"name": "GMC Commodore",
|
||||
"handling": "4/3",
|
||||
"accel": "14",
|
||||
"speed": "120/160",
|
||||
"armor": 8,
|
||||
"body": 10,
|
||||
"pilot": 2,
|
||||
"sensor": 2,
|
||||
"notes": "Sports sedan w/ 2 weapon mounts (Mossberg CMDT shotguns, 250 rds)"
|
||||
},
|
||||
{
|
||||
"name": "GMC Bulldog",
|
||||
"handling": "3/2",
|
||||
"accel": "10",
|
||||
"speed": "90/130",
|
||||
"armor": 12,
|
||||
"body": 16,
|
||||
"pilot": 2,
|
||||
"sensor": 2,
|
||||
"notes": "Step-van rigger mobile workshop"
|
||||
},
|
||||
{
|
||||
"name": "Lockheed Optic-X2",
|
||||
"handling": "4",
|
||||
"accel": "12",
|
||||
"speed": "80",
|
||||
"armor": 2,
|
||||
"body": 3,
|
||||
"pilot": 4,
|
||||
"sensor": 4,
|
||||
"notes": "Stealth recon drone w/ R6 Clearsight, R6 Stealth autosofts"
|
||||
},
|
||||
{
|
||||
"name": "MCT-Nissan Roto-Drone (x3)",
|
||||
"handling": "4",
|
||||
"accel": "8",
|
||||
"speed": "70",
|
||||
"armor": 6,
|
||||
"body": 6,
|
||||
"pilot": 3,
|
||||
"sensor": 3,
|
||||
"notes": "Combat drone w/ weapon mount (Ingram Smartgun XI), R6 Maneuver, R6 Targeting autosofts"
|
||||
},
|
||||
{
|
||||
"name": "MCT Hornet (x4)",
|
||||
"handling": "3",
|
||||
"accel": "5",
|
||||
"speed": "30",
|
||||
"armor": 0,
|
||||
"body": 1,
|
||||
"pilot": 2,
|
||||
"sensor": 2,
|
||||
"notes": "Micro indoor recon drone w/ R6 Stealth autosoft"
|
||||
},
|
||||
{
|
||||
"name": "Horizon Flying Eye (x3)",
|
||||
"handling": "3",
|
||||
"accel": "6",
|
||||
"speed": "40",
|
||||
"armor": 1,
|
||||
"body": 1,
|
||||
"pilot": 2,
|
||||
"sensor": 2,
|
||||
"notes": "Micro surveillance drone w/ smoke grenade upgrade, R6 Maneuver autosoft"
|
||||
}
|
||||
],
|
||||
"gear": [
|
||||
{ "name": "Armor jacket", "rating": 4, "quantity": 1 },
|
||||
{ "name": "Automotive mechanic shop", "quantity": 1 },
|
||||
{
|
||||
"name": "Maersk Spider RCC",
|
||||
"rating": 4,
|
||||
"quantity": 1,
|
||||
"notes": "DR 4, D/F 4/5"
|
||||
},
|
||||
{
|
||||
"name": "Renraku Sensei commlink",
|
||||
"rating": 3,
|
||||
"quantity": 1,
|
||||
"notes": "DR 3, D/F 2/0"
|
||||
},
|
||||
{ "name": "Rating 3 Targeting Autosoft (HK 227)", "quantity": 1 },
|
||||
{ "name": "Certified credstick", "quantity": 1, "notes": "265¥" },
|
||||
{ "name": "FN HAR ammo box", "quantity": 175 }
|
||||
],
|
||||
"spells": [],
|
||||
"adept_powers": []
|
||||
}
|
||||
}
|
||||
461
rulesets/sr6/examples/dossier/frostburn.json
Normal file
461
rulesets/sr6/examples/dossier/frostburn.json
Normal file
@@ -0,0 +1,461 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "4fb9f271-e5d4-4a41-b0be-4a18019b8833",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "dossier",
|
||||
"display_name": "Frostburn (Ork Combat Mage Dossier)",
|
||||
"description": "Full 4-page narrative dossier for Frostburn, Ork Combat Mage from the SR6 Beginner Box.",
|
||||
"template_id": "dossier_sheet",
|
||||
"properties": {
|
||||
"alias": "Frostburn",
|
||||
"real_name": "Kendra Maguire",
|
||||
"player": "Catalyst Pregen",
|
||||
"archetype": "Ork Combat Mage",
|
||||
"quote": "\"That's why they say to geek the mage first.\" / \"Boring is always best.\" / \"(long-suffering sigh)\"",
|
||||
"pitch": "Play this character if you like damaging things with fire and ice, and then fixing the people you like.",
|
||||
"metatype": "Ork",
|
||||
"ethnicity": "White",
|
||||
"age": 25,
|
||||
"sex": "Female",
|
||||
"height": "2 m",
|
||||
"weight": "115 kg",
|
||||
"reputation": 2,
|
||||
"heat": 0,
|
||||
"karma": 0,
|
||||
"total_karma": 0,
|
||||
"misc": "Former NeoNET corporate security magical operative.",
|
||||
"notes": "Ork Combat Mage specializing in fire, ice, protective illusions, and healing.",
|
||||
"background": "As a child, Frostburn was a made-for-trid underdog success story. She and her family were forced out of the then–Ork Underground by dwarfs intent on 'reclaiming' property they hadn't cared about when it wasn't worth anything. They ended up in Redmond, scraping by on Frostburn's mom's job as a janitor at a NeoNET office building—until Frostburn Awakened. The megacorp fell all over itself to secure the woman's future, even giving her a full scholarship to the University of Washington. The day she showed up at the NeoNET offices, though, old stereotypes had started to creep in. Frostburn's tusks got her assigned to the Seattle division of NeoNET's corporate security force. Even if it wasn't her dream job, Frostburn would eventually decide that NeoSec wasn't such a bad place to work. A few years into the job, she was happy enough that when some 'loss-prevention consultant' gave the ork mage her commcode and said to call if she ever got tired of NeoSec, Frostburn took the pretty troll's contact info, then promptly forgot all about it. When NeoNET collapsed, that commcode became Frostburn's lifeline. The troll woman, known as Ms. Myth, didn't seem the slightest bit surprised when Frostburn called. Myth assured her there were plenty of jobs for a spell-slinger with a background in corporate security—if she was willing to work on the grey side of the law. Not wanting to see her family back in the Redmond Barrens (or worse), Frostburn took her first step into the shadows.",
|
||||
"preferred_tactics": "Frostburn knows better than anyone else on the team that magic can turn the tide of a battle—and that chucking fireballs at every enemy she sees will have her passed out on the floor from the drain before she has a chance to really make a difference. Ironically, the 'fire and ice' combo of spells that earned the mage her street name are usually a last resort. Instead, she prefers illusory spells to make the team's enemies less effective or defensive spells to protect the others against hostile magic, and she can cast a Heal spell if one of her fellow runners takes a blow. If the team needs to capture a target alive, whether to question them about further resistance or because Mr. Johnson wants them retrieved, she'll use spells focused on stunning the target instead of killing them. In extended battles, Frostburn will summon spirits to fight on her behalf or resort to firearms to minimize drain, though she'll happily take potshots with her trademark elemental spells if she gets the chance. She also frequently uses astral projection to scout targets during the planning stage of a run.",
|
||||
"roleplaying_tips": "Frostburn doesn't take anything for granted. Her Awakening might've made her special, but she tries not to let it go to her head. She's used to being the provider for her family, and she takes that role seriously, which sometimes means taking jobs that make her squeamish for the sake of paying the bills. She's also the closest thing the group has to a 'team mom,' constantly fussing over the others, which sometimes makes her seem like a bit of a party pooper. The rest of the team knows she has their back, though, even if they wish she'd get off it sometimes. Playing against ork stereotypes, Frostburn is also the most levelheaded member of the team (besides Rude, anyway). She likes runs going according to plan and would rather play it safe for a guaranteed payday than risk going double or nothing. She doesn't lose her cool when a run starts going to drek—hell, her job at NeoNET was to show up when things had already gone to drek—and she has enough leadership experience to rally her comrades when the going gets tough. If she ever blows a run, it won't be because she gave up.",
|
||||
"vital_contacts": [
|
||||
{
|
||||
"name": "Brimstone",
|
||||
"role": "Elf Combat Mage",
|
||||
"description": "Former NeoNET coworker and current fellow runner."
|
||||
},
|
||||
{
|
||||
"name": "Harrison Kellerman",
|
||||
"role": "Talismonger",
|
||||
"description": "Owner of the Io Pan! lore store in Downtown Seattle."
|
||||
},
|
||||
{
|
||||
"name": "Jules Maguire",
|
||||
"role": "Ork Rigger",
|
||||
"description": "Frostburn's older brother and Cascade Ork smuggler."
|
||||
}
|
||||
],
|
||||
"favorite_hangouts": [
|
||||
{
|
||||
"name": "Crusher 495",
|
||||
"location": "Redmond",
|
||||
"description": "Ork-run nightclub and community hub in Redmond."
|
||||
},
|
||||
{
|
||||
"name": "Downfall",
|
||||
"location": "Redmond",
|
||||
"description": "Awakened-friendly bar in Redmond."
|
||||
},
|
||||
{
|
||||
"name": "Magician's Feast",
|
||||
"location": "Auburn",
|
||||
"description": "Salish-American restaurant in Auburn offering illusion shows."
|
||||
}
|
||||
],
|
||||
"favorite_downtime_activities": [
|
||||
"Hiking and camping in the rural parts of the metroplex",
|
||||
"Listening to goblin rock",
|
||||
"Spending time with her family"
|
||||
],
|
||||
"sample_actions": [
|
||||
{
|
||||
"action": "Cast Spell (Sorcery)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 12,
|
||||
"notes": "Sorcery 6 + Magic 6 (Adjust: Amp up +1 DV / +2 drain; Increase Area +2m / +1 drain)"
|
||||
},
|
||||
{
|
||||
"action": "Counterspell (Boosted Defense)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 12,
|
||||
"notes": "Sorcery 6 + Magic 6 (Sphere 2m radius, net hits add to defense pool of allies)"
|
||||
},
|
||||
{
|
||||
"action": "Resist Drain",
|
||||
"action_type": "Free",
|
||||
"dice_pool": 12,
|
||||
"notes": "Logic 5 + Willpower 7 (Drain value resisted, excess applied to Stun track)"
|
||||
},
|
||||
{
|
||||
"action": "Ranged Shot (Walther Palm Pistol)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 7,
|
||||
"notes": "Firearms 3 + Agility 4 (BF mode, DV 2P)"
|
||||
},
|
||||
{
|
||||
"action": "Melee Strike (Extendible Baton)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 6,
|
||||
"notes": "Close Combat 2 + Agility 4 (Club, DV 2S)"
|
||||
},
|
||||
{
|
||||
"action": "Perception / Spot Trouble",
|
||||
"action_type": "Minor",
|
||||
"dice_pool": 4,
|
||||
"notes": "Perception 3 + Intuition 1 (Low-Light Vision)"
|
||||
},
|
||||
{
|
||||
"action": "Astral Perception / Assensing",
|
||||
"action_type": "Minor",
|
||||
"dice_pool": 4,
|
||||
"notes": "Astral 3 + Intuition 1 (Inspect auras, signatures, and astral forms)"
|
||||
},
|
||||
{
|
||||
"action": "Sneak / Infiltration",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 5,
|
||||
"notes": "Stealth 1 + Agility 4"
|
||||
}
|
||||
],
|
||||
"edge_boosts": [
|
||||
{
|
||||
"cost": 1,
|
||||
"name": "Reroll one die",
|
||||
"description": "Reroll any one die from your roll that failed to score a hit (Post)."
|
||||
},
|
||||
{
|
||||
"cost": 1,
|
||||
"name": "Add 3 to Initiative",
|
||||
"description": "Add +3 to your Initiative Score for the combat turn (Any)."
|
||||
},
|
||||
{
|
||||
"cost": 2,
|
||||
"name": "+1 to single die",
|
||||
"description": "Add +1 to any single die result, turning a 4 into a 5 (hit) (Post)."
|
||||
},
|
||||
{
|
||||
"cost": 2,
|
||||
"name": "Give ally 1 Edge",
|
||||
"description": "Pass 1 Edge point to an allied runner (Any)."
|
||||
},
|
||||
{
|
||||
"cost": 3,
|
||||
"name": "Heal Stun Damage",
|
||||
"description": "Immediately clear 1 box from your stun damage track."
|
||||
},
|
||||
{
|
||||
"cost": 4,
|
||||
"name": "Add Edge to Pool",
|
||||
"description": "Add full Edge attribute (+2) to dice pool and 6s explode (Pre)."
|
||||
},
|
||||
{
|
||||
"cost": 5,
|
||||
"name": "Glitch Foe",
|
||||
"description": "2s count as glitches for target on their opposed test (Pre)."
|
||||
}
|
||||
],
|
||||
"attributes": {
|
||||
"body": 4,
|
||||
"agility": 4,
|
||||
"reaction": 2,
|
||||
"strength": 3,
|
||||
"willpower": 7,
|
||||
"logic": 5,
|
||||
"intuition": 1,
|
||||
"charisma": 3,
|
||||
"edge": 2,
|
||||
"essence": 6.0,
|
||||
"magic": 6,
|
||||
"edge_points": 2
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "3 + 1D6",
|
||||
"matrix_initiative": "3 + 1D6",
|
||||
"astral_initiative": "7 + 2D6",
|
||||
"defense_rating": 7,
|
||||
"unarmed_ar": 4,
|
||||
"composure": 10,
|
||||
"judge_intentions": 4,
|
||||
"memory": 12,
|
||||
"lift_carry": 7,
|
||||
"movement": "5/10/+1"
|
||||
},
|
||||
"condition_monitor": {
|
||||
"physical_damage": 0,
|
||||
"physical_boxes": 10,
|
||||
"stun_damage": 0,
|
||||
"stun_boxes": 12,
|
||||
"overflow": 0
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Sorcery",
|
||||
"rating": 6,
|
||||
"attribute": "Magic",
|
||||
"dice_pool": 12,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 3,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 7,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 2,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 6,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Astral",
|
||||
"rating": 3,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 4,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 3,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 4,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Athletics",
|
||||
"rating": 1,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Stealth",
|
||||
"rating": 1,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Magical Security",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 7,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Security Procedures",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 7,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Seattle Underground",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 7,
|
||||
"type": "Knowledge"
|
||||
}
|
||||
],
|
||||
"qualities": [
|
||||
{
|
||||
"name": "Built Tough",
|
||||
"type": "Positive",
|
||||
"notes": "+1 Physical damage track box."
|
||||
},
|
||||
{
|
||||
"name": "Low-light Vision",
|
||||
"type": "Positive",
|
||||
"notes": "Natural ork low-light perception."
|
||||
},
|
||||
{
|
||||
"name": "Dependents",
|
||||
"type": "Negative",
|
||||
"notes": "Supports her family in Redmond."
|
||||
},
|
||||
{
|
||||
"name": "SINner",
|
||||
"type": "Negative",
|
||||
"notes": "Corporate SIN from former employment with NeoNET."
|
||||
},
|
||||
{
|
||||
"name": "Socially Awkward",
|
||||
"type": "Negative",
|
||||
"notes": "Direct, blunt, and exasperated demeanor."
|
||||
}
|
||||
],
|
||||
"currency_and_ids": {
|
||||
"nuyen": 3500,
|
||||
"primary_lifestyle": "Low (prepaid)",
|
||||
"licenses": "Concealed Carry, Registered Awakened Practitioner",
|
||||
"fake_ids": [
|
||||
{
|
||||
"name": "Evelyn Graves",
|
||||
"rating": 3,
|
||||
"lifestyle": "Low",
|
||||
"funds": "3,500¥",
|
||||
"licenses": "Firearms, Mage License"
|
||||
}
|
||||
]
|
||||
},
|
||||
"contacts": [
|
||||
{
|
||||
"name": "Brimstone",
|
||||
"loyalty": 3,
|
||||
"connection": 3,
|
||||
"notes": "Elf combat mage, former NeoNET coworker and current fellow runner."
|
||||
},
|
||||
{
|
||||
"name": "Harrison Kellerman",
|
||||
"loyalty": 2,
|
||||
"connection": 4,
|
||||
"notes": "Talismonger and owner of the Io Pan! lore store in Downtown Seattle."
|
||||
},
|
||||
{
|
||||
"name": "Jules Maguire",
|
||||
"loyalty": 4,
|
||||
"connection": 2,
|
||||
"notes": "Ork rigger, Frostburn's older brother and Cascade Ork smuggler."
|
||||
}
|
||||
],
|
||||
"primary_armor": {
|
||||
"name": "Lined coat",
|
||||
"rating": "+3",
|
||||
"notes": "+3 Defense Rating bonus"
|
||||
},
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Walther Palm Pistol",
|
||||
"dv": "2P",
|
||||
"mode": "BF",
|
||||
"attack_rating": { "close": 12, "near": 7, "far": "—", "extreme": "—" },
|
||||
"ammo": "2(b)",
|
||||
"notes": "Hold-out pistol"
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Extendible baton",
|
||||
"dv": "2S",
|
||||
"close": 5,
|
||||
"notes": "Club"
|
||||
},
|
||||
"ranged_weapons": [
|
||||
{
|
||||
"name": "Walther Palm Pistol",
|
||||
"dv": "2P",
|
||||
"mode": "BF",
|
||||
"attack_rating": { "close": 12, "near": 7, "far": "—", "extreme": "—" },
|
||||
"ammo": "2(b)",
|
||||
"notes": "Double-barreled hold-out"
|
||||
}
|
||||
],
|
||||
"melee_weapons": [
|
||||
{
|
||||
"name": "Extendible baton",
|
||||
"dv": "2S",
|
||||
"close": 5,
|
||||
"notes": "Concealable club"
|
||||
}
|
||||
],
|
||||
"armor": [
|
||||
{
|
||||
"name": "Lined coat",
|
||||
"rating": "+3",
|
||||
"notes": "+3 DR bonus"
|
||||
}
|
||||
],
|
||||
"matrix_stats": {
|
||||
"device_name": "Renraku Sensei commlink",
|
||||
"device_rating": 3,
|
||||
"attack": 0,
|
||||
"sleaze": 0,
|
||||
"data_processing": 2,
|
||||
"firewall": 0,
|
||||
"programs": [],
|
||||
"matrix_damage": 0
|
||||
},
|
||||
"augmentations": [],
|
||||
"vehicles": [],
|
||||
"gear": [
|
||||
{ "name": "Lined coat", "rating": 3, "quantity": 1 },
|
||||
{ "name": "Renraku Sensei commlink", "rating": 3, "quantity": 1 },
|
||||
{ "name": "Certified credstick", "quantity": 1, "notes": "3,500¥" },
|
||||
{ "name": "Walther Palm Pistol ammo box", "quantity": 20 }
|
||||
],
|
||||
"spells": [
|
||||
{
|
||||
"name": "Fireball",
|
||||
"category": "S",
|
||||
"type_target": "Physical",
|
||||
"range": "LOS (Area)",
|
||||
"duration": "Instant",
|
||||
"drain": "5",
|
||||
"notes": "Elemental fire damage area effect"
|
||||
},
|
||||
{
|
||||
"name": "Flamestrike",
|
||||
"category": "S",
|
||||
"type_target": "Physical",
|
||||
"range": "LOS",
|
||||
"duration": "Instant",
|
||||
"drain": "4",
|
||||
"notes": "Single-target direct flame bolt"
|
||||
},
|
||||
{
|
||||
"name": "Ice Spear",
|
||||
"category": "S",
|
||||
"type_target": "Physical",
|
||||
"range": "LOS",
|
||||
"duration": "Instant",
|
||||
"drain": "4",
|
||||
"notes": "Piercing elemental cold damage"
|
||||
},
|
||||
{
|
||||
"name": "Heal",
|
||||
"category": "S",
|
||||
"type_target": "Essence",
|
||||
"range": "Touch",
|
||||
"duration": "Permanent",
|
||||
"drain": "3",
|
||||
"notes": "Repairs physical damage boxes"
|
||||
},
|
||||
{
|
||||
"name": "Combat Sense",
|
||||
"category": "S",
|
||||
"type_target": "Mana",
|
||||
"range": "Touch",
|
||||
"duration": "Sustained",
|
||||
"drain": "3",
|
||||
"notes": "Adds defense dice and awareness"
|
||||
},
|
||||
{
|
||||
"name": "Improved Invisibility",
|
||||
"category": "S",
|
||||
"type_target": "Physical",
|
||||
"range": "Touch",
|
||||
"duration": "Sustained",
|
||||
"drain": "4",
|
||||
"notes": "Cloaks target from visual & technological detection"
|
||||
},
|
||||
{
|
||||
"name": "Levitate",
|
||||
"category": "S",
|
||||
"type_target": "Physical",
|
||||
"range": "LOS",
|
||||
"duration": "Sustained",
|
||||
"drain": "4",
|
||||
"notes": "Telekinetically lifts objects or persons"
|
||||
},
|
||||
{
|
||||
"name": "Mana Barrier",
|
||||
"category": "S",
|
||||
"type_target": "Mana",
|
||||
"range": "LOS (Area)",
|
||||
"duration": "Sustained",
|
||||
"drain": "4",
|
||||
"notes": "Blocks astral forms and hostile spells"
|
||||
}
|
||||
],
|
||||
"adept_powers": []
|
||||
}
|
||||
}
|
||||
403
rulesets/sr6/examples/dossier/rude.json
Normal file
403
rulesets/sr6/examples/dossier/rude.json
Normal file
@@ -0,0 +1,403 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "4c9e88d1-21e3-49fb-a720-6d38e24fa218",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "dossier",
|
||||
"display_name": "Rude (Troll Street Samurai Dossier)",
|
||||
"description": "Full 4-page narrative dossier for Rude, Troll Street Samurai from the SR6 Beginner Box.",
|
||||
"template_id": "dossier_sheet",
|
||||
"properties": {
|
||||
"alias": "Rude",
|
||||
"real_name": "Unknown (\"Rudiarius\")",
|
||||
"player": "Catalyst Pregen",
|
||||
"archetype": "Troll Street Samurai",
|
||||
"quote": "\"You said non-lethal. He ain't dead. You gonna yap 'til he bleeds out?\" / \"I do the job, I get paid.\"",
|
||||
"pitch": "Play this character if you like breaking things, shooting things, and forgetting to care what people think of you.",
|
||||
"metatype": "Troll",
|
||||
"ethnicity": "White",
|
||||
"age": 29,
|
||||
"sex": "Male",
|
||||
"height": "2.4 m",
|
||||
"weight": "310 kg",
|
||||
"reputation": 3,
|
||||
"heat": 1,
|
||||
"karma": 0,
|
||||
"total_karma": 0,
|
||||
"misc": "Carries an ancient wooden practice sword from his gladiator past.",
|
||||
"notes": "Street Samurai meat shield with amnesia and direct brutal tactics.",
|
||||
"background": "Ask Rude where he's from, and he'll shrug and say he doesn't know—because he doesn't. There are a lot of things Rude doesn't know, like his real name or what his life was like growing up or how he first descended into the shadows. In fact, he doesn't remember much of anything before he woke up in a street clinic in Chicago about four years ago. He guesses he's from the CAS because he's got a drawl, and he calls himself Rude because one of the only things he does remember is a man calling him 'Rudiarius' and handing him a wooden sword. He found out later that a rudiarius was what people in ancient Rome called a gladiator who chose to keep fighting in the arena after they'd won their freedom. That wooden sword is the only thing Rude has from whatever his life used to be, just because he likes having it around. Of course, with no memory of how or why he'd been in Chicago, Rude didn't feel particularly compelled to stay there. Instead, he signed on with a smuggler crew as security and traveled the world. If there was one place Rude kept coming back to, though, it was Seattle; he probably had more layovers there than every other major city on the Pacific Rim combined. He ran into Ms. Myth at a bar in the Seattle Underground during one of those layovers, and when she offered him a spot on her new team, he decided to stick around for a while.",
|
||||
"preferred_tactics": "Having a bomb go off inside his brain might've fragged Rude's memories, but it didn't dull his skills. In keeping with the whole 'gladiator' thing, his fighting style is direct and brutal. He's most comfortable with hacking his enemies to pieces with a sword, and since being a troll makes him the team's de facto meat shield, he might as well do it in a way the other side won't be able to ignore. When the situation calls for ranged combat, though, Rude's no slouch with a gun. His favorite sidearm is a beaten-up Ruger Super Warhawk sized to fit a troll, but he's equally comfortable with everything from submachine guns to assault cannons, and he burns through APDS and explosive ammo like it's going out of style. Rude isn't entirely 'pink mohawk'—he understands the value of stealth, even if his idea of stealth is 'shoot 'em before they see you' instead of 'sneak past so they don't.'",
|
||||
"roleplaying_tips": "Rude lives up to his name, but not because he goes out of his way to be a jerk—he just doesn't really think about other people's feelings. A life on the streets has hardened Rude's will and stolen a lot of his empathy, and his amnesia means he can't remember what having empathy was like back when he cared. Because of that, he doesn't usually consider whether his words might offend someone before he speaks. The other side of Rude's lack of empathy is that his decisions are motivated solely by his own interests. He knows full well that in the long term, he'll benefit more from working with a competent, trustworthy team and keeping his rep clean than by betraying people over a few extra nuyen.",
|
||||
"vital_contacts": [
|
||||
{
|
||||
"name": "Hez",
|
||||
"role": "Neighborhood Watch Lieutenant",
|
||||
"description": "Skraacha gang / neighborhood watch lieutenant in the Seattle Underground."
|
||||
},
|
||||
{
|
||||
"name": "Jimmy Vitello",
|
||||
"role": "Industrial Manager / Former Muscle",
|
||||
"description": "Manager at Max's Ironworks and former Mafia muscle."
|
||||
},
|
||||
{
|
||||
"name": "Momma Dot",
|
||||
"role": "Arms Dealer",
|
||||
"description": "Owner of BBC Weapon Works in Renton."
|
||||
}
|
||||
],
|
||||
"favorite_hangouts": [
|
||||
{
|
||||
"name": "BBC Weapon Works",
|
||||
"location": "Renton",
|
||||
"description": "A troll-owned gun shop in Renton."
|
||||
},
|
||||
{
|
||||
"name": "The Biz",
|
||||
"location": "Seattle Underground",
|
||||
"description": "The black-market hub of the Seattle Underground."
|
||||
},
|
||||
{
|
||||
"name": "The Coliseum",
|
||||
"location": "Snohomish",
|
||||
"description": "A paracritter-fighting arena in Snohomish."
|
||||
}
|
||||
],
|
||||
"favorite_downtime_activities": [
|
||||
"Browsing gun-aficionado sites for new purchase ideas",
|
||||
"Rocking out at orxploitation shows",
|
||||
"Watching paracritter fights at the Coliseum"
|
||||
],
|
||||
"sample_actions": [
|
||||
{
|
||||
"action": "Sniper Shot (Ares Desert Strike)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 12,
|
||||
"notes": "Firearms 6 + Agility 5 + smartlink 1 (SA mode, DV 5P)"
|
||||
},
|
||||
{
|
||||
"action": "Heavy Pistol Double Tap (Predator VI)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 12,
|
||||
"notes": "Firearms 6 + Agility 5 + smartlink 1 (SA mode, DV 4P)"
|
||||
},
|
||||
{
|
||||
"action": "Melee Cleave (Sword)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 9,
|
||||
"notes": "Close Combat 3 + Agility 5 + troll reach (DV 3P)"
|
||||
},
|
||||
{
|
||||
"action": "Dodge Physical Attack",
|
||||
"action_type": "Minor",
|
||||
"dice_pool": 10,
|
||||
"notes": "Reaction 6 + Intuition 4"
|
||||
},
|
||||
{
|
||||
"action": "Damage Soak",
|
||||
"action_type": "Free",
|
||||
"dice_pool": 7,
|
||||
"notes": "Body 7 (+2 Armor Jacket adds to Defense Rating)"
|
||||
},
|
||||
{
|
||||
"action": "Pick Mechanical/Electronic Lock",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 8,
|
||||
"notes": "Engineering 2 + Logic 4 + Lockpicking spec 2"
|
||||
},
|
||||
{
|
||||
"action": "Perception / Spot Ambush",
|
||||
"action_type": "Minor",
|
||||
"dice_pool": 7,
|
||||
"notes": "Perception 3 + Intuition 4 (Thermographic Vision)"
|
||||
}
|
||||
],
|
||||
"edge_boosts": [
|
||||
{
|
||||
"cost": 1,
|
||||
"name": "Reroll one die",
|
||||
"description": "Reroll any one die from your roll that failed to score a hit."
|
||||
},
|
||||
{
|
||||
"cost": 2,
|
||||
"name": "+1 to single die",
|
||||
"description": "Add +1 to any single die result, turning a 4 into a 5 (hit)."
|
||||
},
|
||||
{
|
||||
"cost": 3,
|
||||
"name": "Heal Stun Damage",
|
||||
"description": "Immediately clear 1 box from your stun damage track."
|
||||
},
|
||||
{
|
||||
"cost": 4,
|
||||
"name": "Add Edge to Pool",
|
||||
"description": "Add full Edge attribute (+5) to dice pool and 6s explode."
|
||||
}
|
||||
],
|
||||
"attributes": {
|
||||
"body": 7,
|
||||
"agility": 5,
|
||||
"reaction": 6,
|
||||
"strength": 6,
|
||||
"willpower": 4,
|
||||
"logic": 4,
|
||||
"intuition": 4,
|
||||
"charisma": 2,
|
||||
"edge": 5,
|
||||
"essence": 5.5,
|
||||
"edge_points": 5
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "10 + 1D6",
|
||||
"matrix_initiative": "10 + 1D6",
|
||||
"astral_initiative": "—",
|
||||
"defense_rating": 11,
|
||||
"unarmed_ar": 7,
|
||||
"composure": 6,
|
||||
"judge_intentions": 6,
|
||||
"memory": 8,
|
||||
"lift_carry": 11,
|
||||
"movement": "5/10/+1"
|
||||
},
|
||||
"condition_monitor": {
|
||||
"physical_damage": 0,
|
||||
"physical_boxes": 12,
|
||||
"stun_damage": 0,
|
||||
"stun_boxes": 10,
|
||||
"overflow": 0
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 6,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 12,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 3,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 9,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Athletics",
|
||||
"rating": 3,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 9,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 3,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 7,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Engineering",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"specialization": "Lockpicking",
|
||||
"dice_pool": 6,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 2,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 4,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Exotic Weapons",
|
||||
"rating": 3,
|
||||
"attribute": "Agility",
|
||||
"specialization": "Grapple Gun",
|
||||
"dice_pool": 9,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Exotic Weapons",
|
||||
"rating": 4,
|
||||
"attribute": "Agility",
|
||||
"specialization": "Grapple Launcher",
|
||||
"dice_pool": 9,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Firearms Manufacturers",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 6,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Security Systems",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 6,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Urban Brawl Teams",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 6,
|
||||
"type": "Knowledge"
|
||||
}
|
||||
],
|
||||
"qualities": [
|
||||
{
|
||||
"name": "Built Tough",
|
||||
"type": "Positive",
|
||||
"notes": "+1 Physical condition monitor box."
|
||||
},
|
||||
{
|
||||
"name": "Dermal Deposits",
|
||||
"type": "Positive",
|
||||
"notes": "+1 natural Armor/Defense Rating."
|
||||
},
|
||||
{
|
||||
"name": "High Pain Tolerance",
|
||||
"type": "Positive",
|
||||
"notes": "Reduces wound modifiers by 1."
|
||||
},
|
||||
{
|
||||
"name": "Thermographic Vision",
|
||||
"type": "Positive",
|
||||
"notes": "Natural troll heat-signature vision."
|
||||
},
|
||||
{
|
||||
"name": "Socially Awkward",
|
||||
"type": "Negative",
|
||||
"notes": "Blunt and lacking empathy due to amnesia."
|
||||
}
|
||||
],
|
||||
"currency_and_ids": {
|
||||
"nuyen": 3500,
|
||||
"primary_lifestyle": "Low (1 month prepaid)",
|
||||
"licenses": "Concealed Carry (Heavy Pistol, Sniper Rifle)",
|
||||
"fake_ids": [
|
||||
{
|
||||
"name": "Marcus Vance",
|
||||
"rating": 3,
|
||||
"lifestyle": "Low",
|
||||
"funds": "3,500¥",
|
||||
"licenses": "Driver's, Concealed Carry"
|
||||
}
|
||||
]
|
||||
},
|
||||
"contacts": [
|
||||
{
|
||||
"name": "Billy Shen",
|
||||
"loyalty": 2,
|
||||
"connection": 4,
|
||||
"notes": "Octagon Triad lieutenant, enforcer, and arms dealer."
|
||||
},
|
||||
{
|
||||
"name": "Four-Finger Wong",
|
||||
"loyalty": 3,
|
||||
"connection": 3,
|
||||
"notes": "Cyber-surgeon and underground street doc."
|
||||
},
|
||||
{
|
||||
"name": "Mia",
|
||||
"loyalty": 3,
|
||||
"connection": 2,
|
||||
"notes": "Part-time fixer and waitress at Peaceable Kingdom."
|
||||
}
|
||||
],
|
||||
"primary_armor": {
|
||||
"name": "Armor jacket",
|
||||
"rating": "+2",
|
||||
"notes": "+2 Defense Rating bonus"
|
||||
},
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Ares Desert Strike",
|
||||
"dv": "5P",
|
||||
"mode": "SA",
|
||||
"attack_rating": { "close": 3, "near": 10, "far": 10, "extreme": 10 },
|
||||
"ammo": "14(c)",
|
||||
"notes": "Sniper rifle w/ imaging scope, shock pad"
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Sword",
|
||||
"dv": "3P",
|
||||
"close": 9,
|
||||
"notes": "Blade"
|
||||
},
|
||||
"ranged_weapons": [
|
||||
{
|
||||
"name": "Ares Desert Strike (Sniper Rifle)",
|
||||
"dv": "5P",
|
||||
"mode": "SA",
|
||||
"attack_rating": { "close": 3, "near": 10, "far": 10, "extreme": 10 },
|
||||
"ammo": "14(c)",
|
||||
"notes": "w/ imaging scope, shock pad"
|
||||
},
|
||||
{
|
||||
"name": "Ares Predator VI (Heavy Pistol)",
|
||||
"dv": "4P",
|
||||
"mode": "SA",
|
||||
"attack_rating": { "close": 9, "near": 9, "far": 7, "extreme": "—" },
|
||||
"ammo": "15(c)",
|
||||
"notes": "w/ smartlink"
|
||||
}
|
||||
],
|
||||
"melee_weapons": [
|
||||
{
|
||||
"name": "Sword (Blade)",
|
||||
"dv": "3P",
|
||||
"close": 9,
|
||||
"notes": "Monofilament edge"
|
||||
}
|
||||
],
|
||||
"armor": [
|
||||
{
|
||||
"name": "Armor jacket",
|
||||
"rating": "+2",
|
||||
"notes": "Provides +2 DR"
|
||||
}
|
||||
],
|
||||
"matrix_stats": {
|
||||
"device_name": "Sony Emperor commlink",
|
||||
"device_rating": 2,
|
||||
"attack": 0,
|
||||
"sleaze": 0,
|
||||
"data_processing": 1,
|
||||
"firewall": 1,
|
||||
"programs": [],
|
||||
"matrix_damage": 0
|
||||
},
|
||||
"augmentations": [
|
||||
{
|
||||
"name": "Cybereyes",
|
||||
"rating": 2,
|
||||
"notes": "w/ smartlink, low-light vision",
|
||||
"essence": 0.2
|
||||
},
|
||||
{
|
||||
"name": "Reaction enhancers",
|
||||
"rating": 1,
|
||||
"notes": "+1 REA, +1 Initiative",
|
||||
"essence": 0.3
|
||||
}
|
||||
],
|
||||
"vehicles": [],
|
||||
"gear": [
|
||||
{ "name": "Armor jacket", "rating": 2, "quantity": 1 },
|
||||
{ "name": "Sony Emperor commlink", "rating": 2, "quantity": 1 },
|
||||
{ "name": "Grapple gun", "quantity": 1, "notes": "w/ 100m stealth rope" },
|
||||
{
|
||||
"name": "Certified credstick",
|
||||
"quantity": 1,
|
||||
"notes": "Contains 3,500¥"
|
||||
},
|
||||
{ "name": "Spare ammo clips (Ares Predator)", "quantity": 3 },
|
||||
{ "name": "Spare ammo clips (Ares Desert Strike)", "quantity": 2 }
|
||||
],
|
||||
"spells": [],
|
||||
"adept_powers": []
|
||||
}
|
||||
}
|
||||
401
rulesets/sr6/examples/dossier/yu.json
Normal file
401
rulesets/sr6/examples/dossier/yu.json
Normal file
@@ -0,0 +1,401 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "43e2f491-b3b1-4c6e-827d-99572d4cfbe1",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "dossier",
|
||||
"display_name": "Yu (Elf Covert Ops Specialist / Face Dossier)",
|
||||
"description": "Full 4-page narrative dossier for Yu, Elf Covert Ops Specialist and Face from the SR6 Beginner Box.",
|
||||
"template_id": "dossier_sheet",
|
||||
"properties": {
|
||||
"alias": "Yu",
|
||||
"real_name": "Yu",
|
||||
"player": "Catalyst Pregen",
|
||||
"archetype": "Elf Covert Ops / Face",
|
||||
"quote": "\"They can't hit what they can't see.\" / \"My team can handle the tough jobs, Mr. Johnson. The question is, are you willing to pay a premium price for premium work?\" / \"(roguish grin)\"",
|
||||
"pitch": "Play this character if deception, sneakiness, charm, and guile are your weapons of choice!",
|
||||
"metatype": "Elf",
|
||||
"ethnicity": "Cantonese",
|
||||
"age": 28,
|
||||
"sex": "Male",
|
||||
"height": "1.8 m",
|
||||
"weight": "77 kg",
|
||||
"reputation": 2,
|
||||
"heat": 0,
|
||||
"karma": 0,
|
||||
"total_karma": 0,
|
||||
"misc": "Red Dragon Triad affiliate; expert pickpocket, lockpick, and con artist.",
|
||||
"notes": "Elf Covert Ops Specialist and Face adept at infiltration, disguise, charm, and fast-talking.",
|
||||
"background": "Once upon a time, Yu was a corp kid from the Canton Confederation, living a life of relative abundance. He always assumed he'd end up a wageslave like his parents, until the Second Matrix Crash erased his family's identities and sent the corp they worked for into bankruptcy. Mere months later, Yu's parents were killed by Black Chrysanthemum Triad members demanding protection fees they couldn't pay, and ten-year-old Yu fled from Foshan to Hong Kong. He ended up as a member of a pickpocket gang, then joined the Red Dragon Triad as a thief and enforcer. Yu probably would've spent the rest of his life with the Red Dragons, but one of his Triad brothers got wrapped up in better-than-life chips and went on a frenzy, and Yu was forced to kill him in self-defense. The Triad bosses knew it wasn't Yu's fault, but they couldn't let the killing go unanswered, so they shipped him off to an allied syndicate in Seattle. There, Yu met Billy Shen, and Billy passed his name along to Ms. Myth when the troll fixer was putting her new crew together.",
|
||||
"preferred_tactics": "Making trouble without being seen is Yu's bread and butter. The skills he acquired as a thief—moving silently, picking locks, placing and palming items without being seen—have served him well in the shadows. He prefers to be completely invisible when possible, but he's gotten pretty good at using disguises if the situation calls for it. Since meeting Ms. Myth, Yu has seen the value in being able to get what he wants through charm as well as deception. He's turning his natural elven charisma toward being the team's face and often takes the lead in negotiating with prospective employers who approach them for jobs. Ms. Myth sometimes ropes him into helping with her corporate infiltrations, now that she is looking after a new crew along with her old crew of Sledge, Coydog, Hardpoint, and Gentry. Yu's not afraid to use violence when he needs to, but he does try to keep the body count to a minimum—partly because he knows wageslaves are people too, and partly because he'd rather have those wageslaves' bosses go after them for letting their guard down than come after him to avenge their fallen comrade. He prefers not to 'fight' so much as 'ambush,' and if he finds himself in open combat, he'll do his best to stay behind cover and plink away with whatever firearm he has handy.",
|
||||
"roleplaying_tips": "Yu has two distinct personalities: on the job, and off. Off the job, he's an overgrown teenager who hangs out with his friends, plays sports, sleeps around, experiments with drugs, and uses his charm to get out of trouble. He sees his fellow Red Dragon Triad members and their affiliates, like the Octagon Triad, as family and is loyal to them to a fault. He won't take a run that goes against the Red Dragons' interests, but he's upfront about it and tries to make sure his refusal won't screw the team over somehow. On the other hand, when he doesn't have to worry about the Red Dragons, Yu extends the same loyalty to his shadowrunner comrades as he does to his Triad family. He won't willingly turn on them for anything, and if one team member has a problem, he's always willing to help—for as long as they're willing to endure his barrages of terrible puns, anyway. On the job, Yu's a chameleon. He can be as charming or as cold as he needs to be, and he'll work with just about anyone—and do so with a smile—regardless of their background. The only people he refuses to deal with are BTL dealers and organleggers, because of how those two trades have wreaked havoc on his life. He takes a certain joy in tearing them down.",
|
||||
"vital_contacts": [
|
||||
{
|
||||
"name": "Billy Shen",
|
||||
"role": "Octagon Triad Lieutenant",
|
||||
"description": "Octagon Triad lieutenant, enforcer, and arms dealer."
|
||||
},
|
||||
{
|
||||
"name": "Four-Finger Wong",
|
||||
"role": "Cyber-Surgeon",
|
||||
"description": "Underground street doc and cyber-surgeon."
|
||||
},
|
||||
{
|
||||
"name": "Mia",
|
||||
"role": "Part-Time Fixer",
|
||||
"description": "Waitress at Peaceable Kingdom and part-time fixer."
|
||||
}
|
||||
],
|
||||
"favorite_hangouts": [
|
||||
{
|
||||
"name": "Peaceable Kingdom",
|
||||
"location": "Tacoma",
|
||||
"description": "A Chinese restaurant in Tacoma."
|
||||
},
|
||||
{
|
||||
"name": "The Sports Bar",
|
||||
"location": "Downtown Seattle",
|
||||
"description": "A bustling sports bar in Downtown Seattle."
|
||||
},
|
||||
{
|
||||
"name": "Vigilant Iron Schooling House",
|
||||
"location": "Redmond",
|
||||
"description": "A martial arts studio in Redmond."
|
||||
}
|
||||
],
|
||||
"favorite_downtime_activities": [
|
||||
"Hanging out with his fellow Triad members",
|
||||
"Playing and watching basketball",
|
||||
"Studying martial arts"
|
||||
],
|
||||
"sample_actions": [
|
||||
{
|
||||
"action": "Fast-Talk / Con Mark",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 14,
|
||||
"notes": "Con 6 + Charisma 8 (Opposed vs. target Willpower + Intuition)"
|
||||
},
|
||||
{
|
||||
"action": "Negotiation / Influence Mr. Johnson",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 14,
|
||||
"notes": "Influence 6 + Charisma 8"
|
||||
},
|
||||
{
|
||||
"action": "Sneak Past Guards / Infiltrate",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 12,
|
||||
"notes": "Stealth 6 + Agility 6 (Opposed vs. Perception + Intuition)"
|
||||
},
|
||||
{
|
||||
"action": "Palming / Sleight of Hand",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 12,
|
||||
"notes": "Stealth 6 + Agility 6"
|
||||
},
|
||||
{
|
||||
"action": "Ambush Baton Strike",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 10,
|
||||
"notes": "Close Combat 4 + Agility 6 (DV 3S, net hits add to damage)"
|
||||
},
|
||||
{
|
||||
"action": "Silenced Pistol Shot (Ares Light Fire)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 8,
|
||||
"notes": "Firearms 2 + Agility 6 (SA mode, DV 2P, smartlink contacts)"
|
||||
},
|
||||
{
|
||||
"action": "Disguise Identity",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 11,
|
||||
"notes": "Stealth 6 + Intuition 5 (Threshold for observers to see through)"
|
||||
},
|
||||
{
|
||||
"action": "Maglock Bypass (Passkey)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 4,
|
||||
"notes": "Passkey Rating 4 vs. Maglock Rating"
|
||||
}
|
||||
],
|
||||
"edge_boosts": [
|
||||
{
|
||||
"cost": 1,
|
||||
"name": "Reroll one die",
|
||||
"description": "Reroll any one die from your roll that failed to score a hit (Post)."
|
||||
},
|
||||
{
|
||||
"cost": 1,
|
||||
"name": "Add 3 to Initiative",
|
||||
"description": "Add +3 to your Initiative Score for the combat turn (Any)."
|
||||
},
|
||||
{
|
||||
"cost": 2,
|
||||
"name": "+1 to single die",
|
||||
"description": "Add +1 to any single die result, turning a 4 into a 5 (hit) (Post)."
|
||||
},
|
||||
{
|
||||
"cost": 2,
|
||||
"name": "Give ally 1 Edge",
|
||||
"description": "Pass 1 Edge point to an allied runner (Any)."
|
||||
},
|
||||
{
|
||||
"cost": 2,
|
||||
"name": "Negate 1 Edge of foe",
|
||||
"description": "Negate 1 point of Edge held by an opponent (Pre)."
|
||||
},
|
||||
{
|
||||
"cost": 3,
|
||||
"name": "Buy automatic hit",
|
||||
"description": "Add 1 automatic hit to test result (Any)."
|
||||
},
|
||||
{
|
||||
"cost": 3,
|
||||
"name": "Heal Stun Damage",
|
||||
"description": "Immediately clear 1 box from your stun damage track."
|
||||
},
|
||||
{
|
||||
"cost": 4,
|
||||
"name": "Add Edge to Pool",
|
||||
"description": "Add full Edge attribute (+2) to dice pool and 6s explode (Pre)."
|
||||
}
|
||||
],
|
||||
"attributes": {
|
||||
"body": 3,
|
||||
"agility": 6,
|
||||
"reaction": 4,
|
||||
"strength": 3,
|
||||
"willpower": 5,
|
||||
"logic": 5,
|
||||
"intuition": 5,
|
||||
"charisma": 8,
|
||||
"edge": 2,
|
||||
"essence": 6.0,
|
||||
"magic": 0,
|
||||
"edge_points": 2
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "9 + 1D6",
|
||||
"matrix_initiative": "9 + 1D6",
|
||||
"astral_initiative": "—",
|
||||
"defense_rating": 6,
|
||||
"unarmed_ar": 6,
|
||||
"composure": 13,
|
||||
"judge_intentions": 13,
|
||||
"memory": 10,
|
||||
"lift_carry": 6,
|
||||
"movement": "5/10/+1"
|
||||
},
|
||||
"condition_monitor": {
|
||||
"physical_damage": 0,
|
||||
"physical_boxes": 10,
|
||||
"stun_damage": 0,
|
||||
"stun_boxes": 11,
|
||||
"overflow": 0
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Con",
|
||||
"rating": 6,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 14,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 6,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 14,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Stealth",
|
||||
"rating": 6,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 12,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 4,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 10,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 2,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 8,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 2,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 7,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Piloting",
|
||||
"rating": 2,
|
||||
"attribute": "Reaction",
|
||||
"dice_pool": 6,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Biotech",
|
||||
"rating": 1,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 6,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Outdoors",
|
||||
"rating": 1,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 6,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Architecture",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 7,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Close-up Magic",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 7,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Wildlife",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 7,
|
||||
"type": "Knowledge"
|
||||
}
|
||||
],
|
||||
"qualities": [
|
||||
{
|
||||
"name": "Catlike",
|
||||
"type": "Positive",
|
||||
"notes": "+1 dice pool bonus on stealth and acrobatics tests."
|
||||
},
|
||||
{
|
||||
"name": "Double-Jointed",
|
||||
"type": "Positive",
|
||||
"notes": "+1 dice pool bonus on escape and contortion tests."
|
||||
},
|
||||
{
|
||||
"name": "Low-Light Vision",
|
||||
"type": "Positive",
|
||||
"notes": "Natural elf low-light perception."
|
||||
}
|
||||
],
|
||||
"currency_and_ids": {
|
||||
"nuyen": 3500,
|
||||
"primary_lifestyle": "Low (1 month prepaid)",
|
||||
"licenses": "Concealed Carry (Light Pistol)",
|
||||
"fake_ids": [
|
||||
{
|
||||
"name": "Raymond Chang",
|
||||
"rating": 4,
|
||||
"lifestyle": "Low",
|
||||
"funds": "3,500¥",
|
||||
"licenses": "Firearms, Security Tech"
|
||||
}
|
||||
]
|
||||
},
|
||||
"contacts": [
|
||||
{
|
||||
"name": "Billy Shen",
|
||||
"loyalty": 2,
|
||||
"connection": 4,
|
||||
"notes": "Octagon Triad lieutenant, enforcer, and arms dealer."
|
||||
},
|
||||
{
|
||||
"name": "Four-Finger Wong",
|
||||
"loyalty": 3,
|
||||
"connection": 3,
|
||||
"notes": "Cyber-surgeon and underground street doc."
|
||||
},
|
||||
{
|
||||
"name": "Mia",
|
||||
"loyalty": 3,
|
||||
"connection": 2,
|
||||
"notes": "Part-time fixer and waitress at Peaceable Kingdom."
|
||||
}
|
||||
],
|
||||
"primary_armor": {
|
||||
"name": "Lined coat",
|
||||
"rating": "+3",
|
||||
"notes": "+3 Defense Rating bonus"
|
||||
},
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Ares Light Fire 75",
|
||||
"dv": "2P",
|
||||
"mode": "SA",
|
||||
"attack_rating": { "close": 10, "near": 7, "far": 6, "extreme": "—" },
|
||||
"ammo": "16(c)",
|
||||
"notes": "w/ silencer, smartgun"
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Extendible baton",
|
||||
"dv": "3S",
|
||||
"close": 6,
|
||||
"notes": "Club"
|
||||
},
|
||||
"ranged_weapons": [
|
||||
{
|
||||
"name": "Ares Light Fire 75 (Light Pistol)",
|
||||
"dv": "2P",
|
||||
"mode": "SA",
|
||||
"attack_rating": { "close": 10, "near": 7, "far": 6, "extreme": "—" },
|
||||
"ammo": "16(c)",
|
||||
"notes": "w/ silencer, smartgun"
|
||||
}
|
||||
],
|
||||
"melee_weapons": [
|
||||
{
|
||||
"name": "Extendible baton",
|
||||
"dv": "3S",
|
||||
"close": 6,
|
||||
"notes": "Club"
|
||||
}
|
||||
],
|
||||
"armor": [
|
||||
{
|
||||
"name": "Lined coat",
|
||||
"rating": "+3",
|
||||
"notes": "+3 DR bonus"
|
||||
}
|
||||
],
|
||||
"matrix_stats": {
|
||||
"device_name": "Erika Elite commlink",
|
||||
"device_rating": 4,
|
||||
"attack": 0,
|
||||
"sleaze": 0,
|
||||
"data_processing": 2,
|
||||
"firewall": 1,
|
||||
"programs": [],
|
||||
"matrix_damage": 0
|
||||
},
|
||||
"augmentations": [],
|
||||
"vehicles": [],
|
||||
"gear": [
|
||||
{ "name": "Lined coat", "rating": 3, "quantity": 1 },
|
||||
{ "name": "Erika Elite commlink", "rating": 4, "quantity": 1 },
|
||||
{ "name": "Disguise kit", "quantity": 1 },
|
||||
{ "name": "First Aid Kit", "rating": 3, "quantity": 1 },
|
||||
{ "name": "Passkey", "rating": 4, "quantity": 1 },
|
||||
{ "name": "Contacts", "quantity": 1, "notes": "w/ smartlink" },
|
||||
{ "name": "Certified credstick", "quantity": 1, "notes": "3,500¥" },
|
||||
{ "name": "Spare ammo clips (Ares Light Fire 75)", "quantity": 3 }
|
||||
],
|
||||
"spells": [],
|
||||
"adept_powers": []
|
||||
}
|
||||
}
|
||||
394
rulesets/sr6/examples/dossier/zipfile.json
Normal file
394
rulesets/sr6/examples/dossier/zipfile.json
Normal file
@@ -0,0 +1,394 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "98dc54b1-8b02-44df-91ea-72e8fa440a33",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "dossier",
|
||||
"display_name": "Zipfile (Dwarf Decker Dossier)",
|
||||
"description": "Full 4-page narrative dossier for Zipfile, Dwarf Decker from the SR6 Beginner Box.",
|
||||
"template_id": "dossier_sheet",
|
||||
"properties": {
|
||||
"alias": "Zipfile",
|
||||
"real_name": "Zipfile",
|
||||
"player": "Catalyst Pregen",
|
||||
"archetype": "Dwarf Decker",
|
||||
"quote": "\"How can you support a system that pays us to destroy itself?\" / \"Eish! That IC is wiz!\" / \"(triumphant vuvuzela noise)\"",
|
||||
"pitch": "Play this character if you like illicit hacking and weaponizing people's devices against them.",
|
||||
"metatype": "Dwarf",
|
||||
"ethnicity": "Bantu",
|
||||
"age": 23,
|
||||
"sex": "Female",
|
||||
"height": "1.1 m",
|
||||
"weight": "36 kg",
|
||||
"reputation": 2,
|
||||
"heat": 0,
|
||||
"karma": 0,
|
||||
"total_karma": 0,
|
||||
"misc": "Azanian neo-anarchist activist and urban brawl fan with a custom Renraku Kitsune deck.",
|
||||
"notes": "Dwarf Decker and virtual saboteur specializing in host penetration, device spoofing, and matrix surveillance.",
|
||||
"background": "Zipfile grew up in the urban brawl hotspot of Emfuleni, part of Azania's Pretoria-Witwatersrand-Vaal Metroplex. As a young girl, she loved the excitement, the chaos, the adrenaline-junkie rush that came with watching the local brawlers every weekend. It almost made her forget how she used to live in one of the buildings inside that urban arena, until Ares had evicted her family from their home and turned Emfuleni into an international spectacle. As a teenager, Zipfile lost both of her parents when DeBeers-Omnitech literally worked them to death in one of their mines. The shock and bitterness over their deaths led Zipfile and her younger brother to join a neo-anarchist cell in PWV. The neo-anarchists saw potential in her and sent her off to one of their training camps, where she learned how to use her cyberdeck to disrupt the system. Zipfile ultimately left Azania, though, when a conflict between neo-anarchist groups turned violent and most of her former runner team got killed. She met Ms. Myth through a fellow decker who was an urban brawl fan, and she uses her nuyen from those jobs to support both the neo-anarchist cause and the brother she left in Azania.",
|
||||
"preferred_tactics": "Zipfile has never been one for the subtle approach. She delights in acting as a virtual saboteur, throwing wrenches in the corps' Matrix machinery until it collapses under its own weight. As far as she's concerned, disrupting systems is a metaphor for disrupting the system, and she considers tagging corporate hosts with virtual graffiti a vital component of her neo-anarchist outreach. She doesn't just want to beat the 'tools of the establishment' at their own game: she wants to make sure they know who beat them. Zipfile isn't completely lacking in discretion though. She knows her team will only succeed if they support each other, so she will (grudgingly) pass on chances to make the corps look bad if doing so would jeopardize the run or her teammates. Due to her love for urban brawl, Zipfile has gone out of her way to make sure she's a passable runner-and-gunner in addition to her Matrix expertise. She's pestered Rude into helping her improve her marksmanship, and she regularly takes her Ruger Super Warhawk on runs, although she has yet to fire it in anger (outside of a Miracle Shooter game, anyway).",
|
||||
"roleplaying_tips": "What Zipfile lacks in physical stature, she makes up for in personality and presence. She's outgoing, bombastic, and more cheerful than anyone not perpetually stoned has any right to be. She's also a walking encyclopedia of random facts, which is how she got her runner handle; a fellow decker christened her Zipfile because she's 'a lot of data in a compressed package.' Zipfile is also the most principled member of the team. She doesn't hesitate to preach about the virtues of neo-anarchism and doesn't always take kindly to people questioning her beliefs. She's equally apt to argue with her fellow neo-anarchists though, since she's willing to take nuyen from the system to fund her efforts to bring it down. Zipfile's zeal for her cause is rooted in one of the rarest qualities in the shadows: caring. She cares about her teammates, her fellow neo-anarchists, her brother in Azania, and the people of the world in general. She's been on the receiving end of the worst that corps and governments can inflict on people, and she truly believes that her ideals are the best way to solve that problem. Finally, although she's not big on nations—governments are part of the system, too—Zipfile takes pride in her heritage. When people ask her about her accent or verbal tics like the omnipresent eish, she'll gladly tell them that she's Xhosa, and she can often be spotted wearing merch from the PWV Imikhonto urban brawl team (and feeling guilty for giving in to her consumer urges).",
|
||||
"vital_contacts": [
|
||||
{
|
||||
"name": "Arclight",
|
||||
"role": "Combat Mage / Coordinator",
|
||||
"description": "Combat mage and coordinator for the Black Star neo-anarchist shadowrunner collective."
|
||||
},
|
||||
{
|
||||
"name": "Casey Connors",
|
||||
"role": "Tech Bar Owner",
|
||||
"description": "Owner of the Cathode Glow e-sports bar and tech museum in Tacoma."
|
||||
},
|
||||
{
|
||||
"name": "Jules Maguire",
|
||||
"role": "Cascade Ork Smuggler",
|
||||
"description": "Cascade Ork smuggler and fixer connection."
|
||||
}
|
||||
],
|
||||
"favorite_hangouts": [
|
||||
{
|
||||
"name": "Dawn of Atlantis",
|
||||
"location": "Matrix Node",
|
||||
"description": "A Matrix-based fantasy RPG set in 'historical' Atlantis."
|
||||
},
|
||||
{
|
||||
"name": "The Cathode Glow",
|
||||
"location": "Tacoma",
|
||||
"description": "An e-sports bar and tech museum in Tacoma."
|
||||
},
|
||||
{
|
||||
"name": "The Sports Bar",
|
||||
"location": "Downtown Seattle",
|
||||
"description": "A lively sports bar in Downtown Seattle."
|
||||
}
|
||||
],
|
||||
"favorite_downtime_activities": [
|
||||
"Attending neo-anarchist events",
|
||||
"Playing Matrix games, especially Dawn of Atlantis and Miracle Shooter",
|
||||
"Watching urban brawl"
|
||||
],
|
||||
"sample_actions": [
|
||||
{
|
||||
"action": "Hack Host / Gain Access",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 12,
|
||||
"notes": "Cracking 6 + Logic 6 (Illegal, opposed vs. Firewall + Willpower)"
|
||||
},
|
||||
{
|
||||
"action": "Crack File Protection",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 14,
|
||||
"notes": "Cracking 6 + Logic 6 + Decryption 2 (Removes encryption/protection)"
|
||||
},
|
||||
{
|
||||
"action": "Matrix Perception / Scan Node",
|
||||
"action_type": "Minor",
|
||||
"dice_pool": 12,
|
||||
"notes": "Electronics 6 + Intuition 6 (Inspect icons, hosts, and hidden personas)"
|
||||
},
|
||||
{
|
||||
"action": "Spoof Command (Elevators / Systems)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 12,
|
||||
"notes": "Cracking 6 + Logic 6 (Send false instructions to connected devices)"
|
||||
},
|
||||
{
|
||||
"action": "Snoop Communications Feed",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 12,
|
||||
"notes": "Cracking 6 + Logic 6 (Overclock program adds +1 Edge)"
|
||||
},
|
||||
{
|
||||
"action": "Data Spike Attack",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 12,
|
||||
"notes": "Cracking 6 + Logic 6 (Attack rating 6, inflicts Matrix damage)"
|
||||
},
|
||||
{
|
||||
"action": "Heavy Pistol Shot (Ruger Warhawk)",
|
||||
"action_type": "Major",
|
||||
"dice_pool": 5,
|
||||
"notes": "Firearms 2 + Agility 3 (SS mode, DV 4P)"
|
||||
},
|
||||
{
|
||||
"action": "Spot Ambush / Physical Perception",
|
||||
"action_type": "Minor",
|
||||
"dice_pool": 9,
|
||||
"notes": "Perception 3 + Intuition 6 (Thermographic Vision)"
|
||||
}
|
||||
],
|
||||
"edge_boosts": [
|
||||
{
|
||||
"cost": 1,
|
||||
"name": "Reroll one die",
|
||||
"description": "Reroll any one die from your roll that failed to score a hit (Post)."
|
||||
},
|
||||
{
|
||||
"cost": 1,
|
||||
"name": "Add 3 to Initiative",
|
||||
"description": "Add +3 to your Initiative Score for the combat turn (Any)."
|
||||
},
|
||||
{
|
||||
"cost": 2,
|
||||
"name": "+1 to single die",
|
||||
"description": "Add +1 to any single die result, turning a 4 into a 5 (hit) (Post)."
|
||||
},
|
||||
{
|
||||
"cost": 2,
|
||||
"name": "Give ally 1 Edge",
|
||||
"description": "Pass 1 Edge point to an allied runner (Any)."
|
||||
},
|
||||
{
|
||||
"cost": 2,
|
||||
"name": "Negate 1 Edge of foe",
|
||||
"description": "Negate 1 point of Edge held by an opponent (Pre)."
|
||||
},
|
||||
{
|
||||
"cost": 3,
|
||||
"name": "Buy automatic hit",
|
||||
"description": "Add 1 automatic hit to test result (Any)."
|
||||
},
|
||||
{
|
||||
"cost": 3,
|
||||
"name": "Heal Stun Damage",
|
||||
"description": "Immediately clear 1 box from your stun damage track."
|
||||
},
|
||||
{
|
||||
"cost": 4,
|
||||
"name": "Add Edge to Pool",
|
||||
"description": "Add full Edge attribute (+4) to dice pool and 6s explode (Pre)."
|
||||
}
|
||||
],
|
||||
"attributes": {
|
||||
"body": 5,
|
||||
"agility": 3,
|
||||
"reaction": 4,
|
||||
"strength": 4,
|
||||
"willpower": 6,
|
||||
"logic": 6,
|
||||
"intuition": 6,
|
||||
"charisma": 3,
|
||||
"edge": 4,
|
||||
"essence": 3.7,
|
||||
"magic": 0,
|
||||
"edge_points": 4
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "10 + 1D6",
|
||||
"matrix_initiative": "12 + 1D6",
|
||||
"astral_initiative": "—",
|
||||
"defense_rating": 8,
|
||||
"unarmed_ar": 4,
|
||||
"composure": 9,
|
||||
"judge_intentions": 9,
|
||||
"memory": 12,
|
||||
"lift_carry": 9,
|
||||
"movement": "5/10/+1"
|
||||
},
|
||||
"condition_monitor": {
|
||||
"physical_damage": 0,
|
||||
"physical_boxes": 11,
|
||||
"stun_damage": 0,
|
||||
"stun_boxes": 11,
|
||||
"overflow": 0
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Cracking",
|
||||
"rating": 6,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 12,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Electronics",
|
||||
"rating": 6,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 12,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Engineering",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 8,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 3,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 9,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 2,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 2,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 5,
|
||||
"type": "Action"
|
||||
},
|
||||
{
|
||||
"name": "Cyberdeck Models",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 8,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "German Expressionist Cinema",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 8,
|
||||
"type": "Knowledge"
|
||||
},
|
||||
{
|
||||
"name": "Matrix Security",
|
||||
"rating": 2,
|
||||
"attribute": "Logic",
|
||||
"dice_pool": 8,
|
||||
"type": "Knowledge"
|
||||
}
|
||||
],
|
||||
"qualities": [
|
||||
{
|
||||
"name": "Gearhead",
|
||||
"type": "Positive",
|
||||
"notes": "May spend Edge on Repair tests and during downtime repairs."
|
||||
},
|
||||
{
|
||||
"name": "Guts",
|
||||
"type": "Positive",
|
||||
"notes": "+2 dice pool bonus on tests resisting fear and intimidation."
|
||||
},
|
||||
{
|
||||
"name": "Thermographic Vision",
|
||||
"type": "Positive",
|
||||
"notes": "Natural dwarf heat-signature vision."
|
||||
}
|
||||
],
|
||||
"currency_and_ids": {
|
||||
"nuyen": 3500,
|
||||
"primary_lifestyle": "Low (1 month prepaid)",
|
||||
"licenses": "Concealed Carry (Heavy Pistol), Cyberdeck Operator License",
|
||||
"fake_ids": [
|
||||
{
|
||||
"name": "Nandi Mandela",
|
||||
"rating": 3,
|
||||
"lifestyle": "Low",
|
||||
"funds": "3,500¥",
|
||||
"licenses": "Heavy Pistol, Hardware Tech"
|
||||
}
|
||||
]
|
||||
},
|
||||
"contacts": [
|
||||
{
|
||||
"name": "Arclight",
|
||||
"loyalty": 3,
|
||||
"connection": 4,
|
||||
"notes": "Combat mage and coordinator for the Black Star neo-anarchist shadowrunner collective."
|
||||
},
|
||||
{
|
||||
"name": "Casey Connors",
|
||||
"loyalty": 2,
|
||||
"connection": 3,
|
||||
"notes": "Owner of the Cathode Glow e-sports bar and tech museum in Tacoma."
|
||||
},
|
||||
{
|
||||
"name": "Jules Maguire",
|
||||
"loyalty": 2,
|
||||
"connection": 2,
|
||||
"notes": "Cascade Ork smuggler."
|
||||
}
|
||||
],
|
||||
"primary_armor": {
|
||||
"name": "Armor vest",
|
||||
"rating": "+3",
|
||||
"notes": "+3 Defense Rating bonus"
|
||||
},
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Ruger Super Warhawk",
|
||||
"dv": "4P",
|
||||
"mode": "SS",
|
||||
"attack_rating": { "close": 8, "near": 11, "far": 8, "extreme": "—" },
|
||||
"ammo": "6(cy)",
|
||||
"notes": "Heavy cylinder revolver"
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Unarmed Strike",
|
||||
"dv": "2S",
|
||||
"close": 4,
|
||||
"notes": "Natural"
|
||||
},
|
||||
"ranged_weapons": [
|
||||
{
|
||||
"name": "Ruger Super Warhawk (Heavy Pistol)",
|
||||
"dv": "4P",
|
||||
"mode": "SS",
|
||||
"attack_rating": { "close": 8, "near": 11, "far": 8, "extreme": "—" },
|
||||
"ammo": "6(cy)",
|
||||
"notes": "Heavy revolver"
|
||||
}
|
||||
],
|
||||
"melee_weapons": [
|
||||
{
|
||||
"name": "Unarmed Strike",
|
||||
"dv": "2S",
|
||||
"close": 4,
|
||||
"notes": "Natural"
|
||||
}
|
||||
],
|
||||
"armor": [
|
||||
{
|
||||
"name": "Armor vest",
|
||||
"rating": "+3",
|
||||
"notes": "+3 DR bonus"
|
||||
}
|
||||
],
|
||||
"matrix_stats": {
|
||||
"device_name": "Renraku Kitsune cyberdeck",
|
||||
"device_rating": 4,
|
||||
"attack": 6,
|
||||
"sleaze": 7,
|
||||
"data_processing": 4,
|
||||
"firewall": 4,
|
||||
"programs": ["Decryption", "Exploit", "Overclock"],
|
||||
"matrix_damage": 0
|
||||
},
|
||||
"augmentations": [
|
||||
{
|
||||
"name": "Cyberjack MPI",
|
||||
"rating": 4,
|
||||
"notes": "7/6, +2 Matrix initiative",
|
||||
"essence": 2.3
|
||||
}
|
||||
],
|
||||
"vehicles": [],
|
||||
"gear": [
|
||||
{ "name": "Armor vest", "rating": 3, "quantity": 1 },
|
||||
{
|
||||
"name": "Renraku Kitsune cyberdeck",
|
||||
"rating": 4,
|
||||
"quantity": 1,
|
||||
"notes": "DR 4, 7/6, 8 slots"
|
||||
},
|
||||
{
|
||||
"name": "Hermes Ikon commlink",
|
||||
"rating": 5,
|
||||
"quantity": 1,
|
||||
"notes": "DR 5, 3/0"
|
||||
},
|
||||
{ "name": "Certified credstick", "quantity": 1, "notes": "3,500¥" },
|
||||
{ "name": "Heavy pistol ammo box (Ruger)", "quantity": 30 }
|
||||
],
|
||||
"spells": [],
|
||||
"adept_powers": []
|
||||
}
|
||||
}
|
||||
15
rulesets/sr6/examples/gear/decryption.json
Normal file
15
rulesets/sr6/examples/gear/decryption.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "e8027c8e-c25c-49a4-b8f8-f680b49ac492",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "gear",
|
||||
"display_name": "Decryption",
|
||||
"description": "Files all over the Matrix are encrypted; this program helps break that protection.",
|
||||
"properties": {
|
||||
"filename": "decryption",
|
||||
"name": "Decryption",
|
||||
"category": "Program",
|
||||
"rules": "+2 dice on Crack File Action.",
|
||||
"notes": "Files all over the Matrix are encrypted; this program helps break that protection."
|
||||
}
|
||||
}
|
||||
17
rulesets/sr6/examples/gear/erika_elite.json
Normal file
17
rulesets/sr6/examples/gear/erika_elite.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "a631687e-cabd-46b7-bb4e-0567ce368310",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "gear",
|
||||
"display_name": "Erika Elite",
|
||||
"description": "The elegant design and smooth functionality make this commlink live up to its name.",
|
||||
"properties": {
|
||||
"filename": "erika_elite",
|
||||
"name": "Erika Elite",
|
||||
"category": "Commlink",
|
||||
"device_rating": 4,
|
||||
"attributes_df": "2/1",
|
||||
"active_program_slots": 2,
|
||||
"notes": "The elegant design and smooth functionality make this commlink live up to its name."
|
||||
}
|
||||
}
|
||||
15
rulesets/sr6/examples/gear/exploit.json
Normal file
15
rulesets/sr6/examples/gear/exploit.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "4ef5c6a6-3d5a-419a-a8f3-12e7b1452fa6",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "gear",
|
||||
"display_name": "Exploit",
|
||||
"description": "Crowbar to help deckers get past entryways that might otherwise stay locked.",
|
||||
"properties": {
|
||||
"filename": "exploit",
|
||||
"name": "Exploit",
|
||||
"category": "Program",
|
||||
"rules": "Reduce Defense Rating of hacking target by 2.",
|
||||
"notes": "Crowbar to help deckers get past entryways that might otherwise stay locked."
|
||||
}
|
||||
}
|
||||
17
rulesets/sr6/examples/gear/hermes_ikon.json
Normal file
17
rulesets/sr6/examples/gear/hermes_ikon.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "46eb16b3-8048-418b-8260-fab94623cf78",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "gear",
|
||||
"display_name": "Hermes Ikon",
|
||||
"description": "A commlink for people who have money to spend on keeping their personal data safe.",
|
||||
"properties": {
|
||||
"filename": "hermes_ikon",
|
||||
"name": "Hermes Ikon",
|
||||
"category": "Commlink",
|
||||
"device_rating": 5,
|
||||
"attributes_df": "3/0",
|
||||
"active_program_slots": 2,
|
||||
"notes": "A commlink for people who have money to spend on keeping their personal data safe."
|
||||
}
|
||||
}
|
||||
15
rulesets/sr6/examples/gear/overclock.json
Normal file
15
rulesets/sr6/examples/gear/overclock.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "fd0a9d2b-8440-4c2e-b1f4-7c0bf563f877",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "gear",
|
||||
"display_name": "Overclock",
|
||||
"description": "Amp up a machine past manufacturer limits to get a dangerous job done.",
|
||||
"properties": {
|
||||
"filename": "overclock",
|
||||
"name": "Overclock",
|
||||
"category": "Program",
|
||||
"rules": "Add two dice to a Matrix action. Adds to Overwatch Score as do defense hits.",
|
||||
"notes": "Amp up a machine past manufacturer limits to get a dangerous job done."
|
||||
}
|
||||
}
|
||||
18
rulesets/sr6/examples/gear/renraku_kitsune.json
Normal file
18
rulesets/sr6/examples/gear/renraku_kitsune.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "6174631f-599b-4678-8779-4da6fe1bb454",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "gear",
|
||||
"display_name": "Renraku Kitsune",
|
||||
"description": "Get where you’re not supposed to be...and do it with style!",
|
||||
"properties": {
|
||||
"filename": "renraku_kitsune",
|
||||
"name": "Renraku Kitsune",
|
||||
"category": "Cyberdeck",
|
||||
"device_rating": 4,
|
||||
"attack": 7,
|
||||
"sleaze": 6,
|
||||
"program_slots": 8,
|
||||
"notes": "Get where you’re not supposed to be...and do it with style!"
|
||||
}
|
||||
}
|
||||
17
rulesets/sr6/examples/gear/renraku_sensei.json
Normal file
17
rulesets/sr6/examples/gear/renraku_sensei.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "8e6c3af8-1816-407f-a39e-62af989576cc",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "gear",
|
||||
"display_name": "Renraku Sensei",
|
||||
"description": "Middle managers and teenagers with money like the Sensei for giving a sense of status.",
|
||||
"properties": {
|
||||
"filename": "renraku_sensei",
|
||||
"name": "Renraku Sensei",
|
||||
"category": "Commlink",
|
||||
"device_rating": 3,
|
||||
"attributes_df": "2/0",
|
||||
"active_program_slots": 1,
|
||||
"notes": "Middle managers and teenagers with money like the Sensei for giving a sense of status."
|
||||
}
|
||||
}
|
||||
17
rulesets/sr6/examples/gear/sony_emperor.json
Normal file
17
rulesets/sr6/examples/gear/sony_emperor.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "edc2ae00-5a28-4fb7-a312-bb08e19c2ace",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "gear",
|
||||
"display_name": "Sony Emperor",
|
||||
"description": "Popular because it’s cheap and not the worst, this commlink works with few frills.",
|
||||
"properties": {
|
||||
"filename": "sony_emperor",
|
||||
"name": "Sony Emperor",
|
||||
"category": "Commlink",
|
||||
"device_rating": 2,
|
||||
"attributes_df": "1/1",
|
||||
"active_program_slots": 1,
|
||||
"notes": "Popular because it’s cheap and not the worst, this commlink works with few frills."
|
||||
}
|
||||
}
|
||||
16
rulesets/sr6/examples/gear/white_noise_generator.json
Normal file
16
rulesets/sr6/examples/gear/white_noise_generator.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "4cf564fe-5b8b-4c26-a063-ce692d263b02",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "gear",
|
||||
"display_name": "White Noise Generator",
|
||||
"description": "Creates a field of random noise that inhibits audio surveillance.",
|
||||
"properties": {
|
||||
"filename": "white_noise_generator",
|
||||
"name": "White Noise Generator",
|
||||
"category": "Security",
|
||||
"device_rating": 3,
|
||||
"rules": "All Perception tests to overhear a conversation within 3m receive a -DR modifier.",
|
||||
"notes": "Creates a field of random noise that inhibits audio surveillance."
|
||||
}
|
||||
}
|
||||
104
rulesets/sr6/examples/npc/ancients.json
Normal file
104
rulesets/sr6/examples/npc/ancients.json
Normal file
@@ -0,0 +1,104 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "0c3cd5a4-294c-4fda-867f-d5c3b01db5e9",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "npc",
|
||||
"display_name": "Ancients",
|
||||
"description": "Go-Gang / Elf Gangers from the SR6 Beginner Box.",
|
||||
"template_id": "character_picker",
|
||||
"properties": {
|
||||
"alias": "Ancients",
|
||||
"archetype": "Go-Gang / Elf Gangers",
|
||||
"metatype": "Elf",
|
||||
"notes": "Vicious elves who use the speed of their racing bikes to strike with viper-like speed and lethality. They all rock the neon green encircled A on their jackets.",
|
||||
"quote": "“Our blood gives us pride. Yours will bring you shame.”",
|
||||
"hook": "Fiercely territorial, the Ancients cause trouble for any intruders and trespassers.",
|
||||
"attributes": {
|
||||
"body": 2,
|
||||
"agility": 4,
|
||||
"reaction": 3,
|
||||
"strength": 2,
|
||||
"willpower": 2,
|
||||
"logic": 2,
|
||||
"intuition": 2,
|
||||
"charisma": 3,
|
||||
"edge": 0,
|
||||
"essence": 6
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "5 + 1D6",
|
||||
"defense_rating": 3,
|
||||
"condition_monitor": 9
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Piloting",
|
||||
"rating": 7,
|
||||
"attribute": "Reaction",
|
||||
"dice_pool": 10
|
||||
},
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 5,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 9
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 5,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 9
|
||||
},
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 5,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 8
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 4,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 6
|
||||
}
|
||||
],
|
||||
"gear": [
|
||||
{
|
||||
"name": "Gang leather",
|
||||
"rating": "+1 DR"
|
||||
},
|
||||
{
|
||||
"name": "Sony Emperor commlink",
|
||||
"rating": 2
|
||||
},
|
||||
{
|
||||
"name": "Yamaha Rapier motorcycle"
|
||||
},
|
||||
{
|
||||
"name": "Katana"
|
||||
},
|
||||
{
|
||||
"name": "Uzi V submachine gun"
|
||||
}
|
||||
],
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Uzi V",
|
||||
"dv": "3P",
|
||||
"mode": "SA/BF",
|
||||
"attack_rating": {
|
||||
"close": 8,
|
||||
"near": 8,
|
||||
"far": 7
|
||||
}
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Katana",
|
||||
"dv": "4P",
|
||||
"close": 10
|
||||
},
|
||||
"primary_armor": {
|
||||
"name": "Gang leather",
|
||||
"rating": "+1"
|
||||
}
|
||||
}
|
||||
}
|
||||
96
rulesets/sr6/examples/npc/big_ben.json
Normal file
96
rulesets/sr6/examples/npc/big_ben.json
Normal file
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "72a0806c-4ba5-4ea3-87d9-04e6dd5f3648",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "npc",
|
||||
"display_name": "Big Ben",
|
||||
"description": "Ragers Leader / Male Ork Ganger from the SR6 Beginner Box.",
|
||||
"template_id": "character_picker",
|
||||
"properties": {
|
||||
"alias": "Big Ben",
|
||||
"real_name": "Ben Jones",
|
||||
"archetype": "Ragers Leader / Male Ork Ganger",
|
||||
"metatype": "Ork",
|
||||
"notes": "Ben Jones grew up tough. He was Big Ben by the time he was ten. He came to join the Ragers because half his family was already in, and he made his way up the ranks fast.",
|
||||
"quote": "“If you’re not pissed off at the world, then you’re not RRAARRGGHH!”",
|
||||
"hook": "Big Ben balances chaos with prudence, never taking a fight he’ll definitely lose.",
|
||||
"attributes": {
|
||||
"body": 7,
|
||||
"agility": 4,
|
||||
"reaction": 4,
|
||||
"strength": 6,
|
||||
"willpower": 3,
|
||||
"logic": 3,
|
||||
"intuition": 3,
|
||||
"charisma": 4,
|
||||
"edge": 2,
|
||||
"essence": 6
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "7 + 1D6",
|
||||
"defense_rating": 7,
|
||||
"condition_monitor": 13
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 10,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 14
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 8,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 12
|
||||
},
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 8,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 12
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 7,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 10
|
||||
}
|
||||
],
|
||||
"gear": [
|
||||
{
|
||||
"name": "Gang Leather",
|
||||
"rating": "+1 DR"
|
||||
},
|
||||
{
|
||||
"name": "Erika Elite commlink",
|
||||
"rating": 4
|
||||
},
|
||||
{
|
||||
"name": "Bike Chain"
|
||||
},
|
||||
{
|
||||
"name": "Defiance T-250 shotgun"
|
||||
}
|
||||
],
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Defiance T-250",
|
||||
"dv": "4P",
|
||||
"mode": "SA",
|
||||
"attack_rating": {
|
||||
"close": 7,
|
||||
"near": 10,
|
||||
"far": 6
|
||||
}
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Bike Chain",
|
||||
"dv": "2S",
|
||||
"close": 4
|
||||
},
|
||||
"primary_armor": {
|
||||
"name": "Gang Leather",
|
||||
"rating": "+1"
|
||||
}
|
||||
}
|
||||
}
|
||||
88
rulesets/sr6/examples/npc/erika_hoffman.json
Normal file
88
rulesets/sr6/examples/npc/erika_hoffman.json
Normal file
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "9cb52fc9-c235-4d16-bafa-581bfc8c5ce5",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "npc",
|
||||
"display_name": "Erika Hoffman",
|
||||
"description": "Human Female Government Operative from the SR6 Beginner Box.",
|
||||
"template_id": "character_picker",
|
||||
"properties": {
|
||||
"alias": "Erika Hoffman",
|
||||
"real_name": "Erika Hoffman",
|
||||
"archetype": "Human Female Government Operative",
|
||||
"metatype": "Human",
|
||||
"ethnicity": "UCAS White",
|
||||
"notes": "Erika Hoffman has been working for the UCAS government since before she could walk; her politician parents groomed her for political success from birth.",
|
||||
"quote": "“It’s an insane world, so keep it on the other side of your limo.”",
|
||||
"hook": "Hoffman has access to resources and needs help. What more do you need?",
|
||||
"attributes": {
|
||||
"body": 2,
|
||||
"agility": 3,
|
||||
"reaction": 3,
|
||||
"strength": 2,
|
||||
"willpower": 4,
|
||||
"logic": 3,
|
||||
"intuition": 3,
|
||||
"charisma": 6,
|
||||
"edge": 4,
|
||||
"essence": 6
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "6 + 1D6",
|
||||
"defense_rating": 4,
|
||||
"condition_monitor": 10
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 10,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 16
|
||||
},
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 5,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 8
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 5,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 8
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 5,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 8
|
||||
}
|
||||
],
|
||||
"gear": [
|
||||
{
|
||||
"name": "Armor clothing",
|
||||
"rating": 2
|
||||
},
|
||||
{
|
||||
"name": "Sony Emperor commlink",
|
||||
"rating": 2
|
||||
},
|
||||
{
|
||||
"name": "Yamaha Pulsar I taser"
|
||||
}
|
||||
],
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Yamaha Pulsar I",
|
||||
"dv": "4S (e)",
|
||||
"mode": "SS",
|
||||
"attack_rating": {
|
||||
"close": 9,
|
||||
"near": 9
|
||||
}
|
||||
},
|
||||
"primary_armor": {
|
||||
"name": "Armor clothing",
|
||||
"rating": "+2"
|
||||
}
|
||||
}
|
||||
}
|
||||
104
rulesets/sr6/examples/npc/green_phoenix.json
Normal file
104
rulesets/sr6/examples/npc/green_phoenix.json
Normal file
@@ -0,0 +1,104 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "c2fc5de3-1ab2-4fd9-a7df-3e0abaee5711",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "npc",
|
||||
"display_name": "Green Phoenix",
|
||||
"description": "Ancients Leader / Male Elf Gang Leader from the SR6 Beginner Box.",
|
||||
"template_id": "character_picker",
|
||||
"properties": {
|
||||
"alias": "Green Phoenix",
|
||||
"archetype": "Ancients Leader / Male Elf Gang Leader",
|
||||
"metatype": "Elf",
|
||||
"notes": "Focused and powerful, Green Phoenix teaches his people how to look beyond short-term conflicts to get big scores. But he still likes busting heads.",
|
||||
"quote": "“The sharpness of elven steel is unrivaled. As you’ll see.”",
|
||||
"hook": "Proud and ambitious, Green Phoenix is always building toward his gang’s future.",
|
||||
"attributes": {
|
||||
"body": 4,
|
||||
"agility": 7,
|
||||
"reaction": 6,
|
||||
"strength": 3,
|
||||
"willpower": 3,
|
||||
"logic": 2,
|
||||
"intuition": 4,
|
||||
"charisma": 7,
|
||||
"edge": 3,
|
||||
"essence": 6
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "10 + 1D6",
|
||||
"defense_rating": 5,
|
||||
"condition_monitor": 10
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Piloting",
|
||||
"rating": 14,
|
||||
"attribute": "Reaction",
|
||||
"dice_pool": 20
|
||||
},
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 14,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 21
|
||||
},
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 13,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 20
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 11,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 18
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 9,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 13
|
||||
}
|
||||
],
|
||||
"gear": [
|
||||
{
|
||||
"name": "Gang Leather",
|
||||
"rating": "+1 DR"
|
||||
},
|
||||
{
|
||||
"name": "Hermes Ikon commlink",
|
||||
"rating": 5
|
||||
},
|
||||
{
|
||||
"name": "Yamaha Rapier motorcycle"
|
||||
},
|
||||
{
|
||||
"name": "Katana"
|
||||
},
|
||||
{
|
||||
"name": "Uzi V submachine gun"
|
||||
}
|
||||
],
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Uzi V",
|
||||
"dv": "3P",
|
||||
"mode": "SA/BF",
|
||||
"attack_rating": {
|
||||
"close": 8,
|
||||
"near": 8,
|
||||
"far": 7
|
||||
}
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Katana",
|
||||
"dv": "4P",
|
||||
"close": 10
|
||||
},
|
||||
"primary_armor": {
|
||||
"name": "Gang Leather",
|
||||
"rating": "+1"
|
||||
}
|
||||
}
|
||||
}
|
||||
89
rulesets/sr6/examples/npc/ragers.json
Normal file
89
rulesets/sr6/examples/npc/ragers.json
Normal file
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "f13179e7-3180-41da-b079-eb92bd4eae4c",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "npc",
|
||||
"display_name": "Ragers",
|
||||
"description": "Dwarf Gangers from the SR6 Beginner Box.",
|
||||
"template_id": "character_picker",
|
||||
"properties": {
|
||||
"alias": "Ragers",
|
||||
"archetype": "Dwarf Gangers",
|
||||
"metatype": "Dwarf",
|
||||
"notes": "Gang members are fiercely loyal to each other and fight in groups, pulling fallen comrades out of trouble if need be. They also respect strength when used correctly.",
|
||||
"quote": "“RRRAAAAAARRRRRGGGGGHHHHHHH!”",
|
||||
"hook": "Forces of chaos who roam the streets and are ready for a fight at all times.",
|
||||
"attributes": {
|
||||
"body": 4,
|
||||
"agility": 2,
|
||||
"reaction": 2,
|
||||
"strength": 5,
|
||||
"willpower": 3,
|
||||
"logic": 2,
|
||||
"intuition": 2,
|
||||
"charisma": 2,
|
||||
"edge": 1,
|
||||
"essence": 6
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "4 + 1D6",
|
||||
"defense_rating": 4,
|
||||
"condition_monitor": 10
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 5,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 7
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 5,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 7
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 4,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 6
|
||||
}
|
||||
],
|
||||
"gear": [
|
||||
{
|
||||
"name": "Gang Leather",
|
||||
"rating": "+1 DR"
|
||||
},
|
||||
{
|
||||
"name": "Sony Emperor commlink",
|
||||
"rating": 2
|
||||
},
|
||||
{
|
||||
"name": "Club"
|
||||
},
|
||||
{
|
||||
"name": "Defiance T-250 shotgun"
|
||||
}
|
||||
],
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Defiance T-250",
|
||||
"dv": "4P",
|
||||
"mode": "SA",
|
||||
"attack_rating": {
|
||||
"close": 7,
|
||||
"near": 10,
|
||||
"far": 6
|
||||
}
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Club",
|
||||
"dv": "3S",
|
||||
"close": 6
|
||||
},
|
||||
"primary_armor": {
|
||||
"name": "Gang Leather",
|
||||
"rating": "+1"
|
||||
}
|
||||
}
|
||||
}
|
||||
95
rulesets/sr6/examples/npc/rusted_stilettos.json
Normal file
95
rulesets/sr6/examples/npc/rusted_stilettos.json
Normal file
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "0adfaf3c-bf19-4f21-a73f-e7918af1fd4a",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "npc",
|
||||
"display_name": "Rusted Stilettos",
|
||||
"description": "Ork Gangers from Glow City (SR6 Beginner Box).",
|
||||
"template_id": "character_picker",
|
||||
"properties": {
|
||||
"alias": "Rusted Stilettos",
|
||||
"archetype": "Ork Gangers",
|
||||
"metatype": "Ork",
|
||||
"notes": "The twisted Rusted Stilettos have spent too much time near Glow City, site of a nuclear reactor meltdown. The ones who’ve survived are terrifyingly deformed, and deadly.",
|
||||
"quote": "“Beauty isn’t real. We are.”",
|
||||
"hook": "Twisted and mutated, this gang serves a dragon, making them inscrutable to mere mortals.",
|
||||
"attributes": {
|
||||
"body": 5,
|
||||
"agility": 2,
|
||||
"reaction": 2,
|
||||
"strength": 5,
|
||||
"willpower": 2,
|
||||
"logic": 2,
|
||||
"intuition": 2,
|
||||
"charisma": 2,
|
||||
"edge": 1,
|
||||
"essence": 6
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "4 + 1D6",
|
||||
"defense_rating": 7,
|
||||
"condition_monitor": 11
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 5,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 7
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 5,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 7
|
||||
},
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 5,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 7
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 4,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 6
|
||||
}
|
||||
],
|
||||
"gear": [
|
||||
{
|
||||
"name": "Gang Leather",
|
||||
"rating": "+1 DR"
|
||||
},
|
||||
{
|
||||
"name": "Sony Emperor commlink",
|
||||
"rating": 2
|
||||
},
|
||||
{
|
||||
"name": "Knife"
|
||||
},
|
||||
{
|
||||
"name": "Browning Ultra Power heavy pistol"
|
||||
}
|
||||
],
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Browning Ultra Power",
|
||||
"dv": "3P",
|
||||
"mode": "SA",
|
||||
"attack_rating": {
|
||||
"close": 10,
|
||||
"near": 9,
|
||||
"far": 6
|
||||
}
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Knife",
|
||||
"dv": "2P",
|
||||
"close": 6
|
||||
},
|
||||
"primary_armor": {
|
||||
"name": "Gang Leather",
|
||||
"rating": "+1"
|
||||
}
|
||||
}
|
||||
}
|
||||
105
rulesets/sr6/examples/npc/spikes.json
Normal file
105
rulesets/sr6/examples/npc/spikes.json
Normal file
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "2948bb04-3d46-48c3-b17b-2b23c2bb6c3e",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "npc",
|
||||
"display_name": "Spikes",
|
||||
"description": "Go-Gang / Troll Gangers from the SR6 Beginner Box.",
|
||||
"template_id": "character_picker",
|
||||
"properties": {
|
||||
"alias": "Spikes",
|
||||
"archetype": "Go-Gang / Troll Gangers",
|
||||
"metatype": "Troll",
|
||||
"notes": "Big-muscled brutes on big loud hogs, the Spikes are all trolls and all heavily muscled with plenty of tattoos. They are like an all-troll version of the Hell’s Angels.",
|
||||
"quote": "“Go ahead, draw a weapon. My jacket needs more metal.”",
|
||||
"hook": "Large and angry, Spikes are always looking for new victims, especially elves.",
|
||||
"attributes": {
|
||||
"body": 6,
|
||||
"agility": 2,
|
||||
"reaction": 2,
|
||||
"strength": 7,
|
||||
"willpower": 1,
|
||||
"logic": 1,
|
||||
"intuition": 2,
|
||||
"charisma": 2,
|
||||
"edge": 1,
|
||||
"essence": 6
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "4 + 1D6",
|
||||
"defense_rating": 7,
|
||||
"condition_monitor": 13
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 5,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 7
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 5,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 7
|
||||
},
|
||||
{
|
||||
"name": "Piloting",
|
||||
"rating": 5,
|
||||
"attribute": "Reaction",
|
||||
"dice_pool": 7
|
||||
},
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 5,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 7
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 4,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 6
|
||||
}
|
||||
],
|
||||
"gear": [
|
||||
{
|
||||
"name": "Leather",
|
||||
"rating": "+1 DR"
|
||||
},
|
||||
{
|
||||
"name": "Sony Emperor commlink",
|
||||
"rating": 2
|
||||
},
|
||||
{
|
||||
"name": "HD Scorpion bike",
|
||||
"rating": 3
|
||||
},
|
||||
{
|
||||
"name": "Bike Chain"
|
||||
},
|
||||
{
|
||||
"name": "Defiance T-250 Shotgun"
|
||||
}
|
||||
],
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Defiance T-250",
|
||||
"dv": "4P",
|
||||
"mode": "SA",
|
||||
"attack_rating": {
|
||||
"close": 7,
|
||||
"near": 10,
|
||||
"far": 6
|
||||
}
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Bike Chain",
|
||||
"dv": "2S",
|
||||
"close": 4
|
||||
},
|
||||
"primary_armor": {
|
||||
"name": "Leather",
|
||||
"rating": "+1"
|
||||
}
|
||||
}
|
||||
}
|
||||
83
rulesets/sr6/examples/npc/the_claw.json
Normal file
83
rulesets/sr6/examples/npc/the_claw.json
Normal file
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "f7c985b7-d3ed-41e8-af58-8ba870d215da",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "npc",
|
||||
"display_name": "The Claw",
|
||||
"description": "Rusted Stilettos Leader / Male Troll Ganger from the SR6 Beginner Box.",
|
||||
"template_id": "character_picker",
|
||||
"properties": {
|
||||
"alias": "The Claw",
|
||||
"archetype": "Rusted Stilettos Leader / Male Troll Ganger",
|
||||
"metatype": "Troll",
|
||||
"notes": "A twisted troll who gained a name from the mutation of his right hand into something resembling a crab’s claw. He uses it as a weapon, but the visual is what’s terrifying.",
|
||||
"quote": "“Your face could be fixed. My claw is ready. Let’s operate.”",
|
||||
"hook": "The Claw is a dragon-worshipping fanatic, making him dangerous and unpredictable.",
|
||||
"attributes": {
|
||||
"body": 7,
|
||||
"agility": 3,
|
||||
"reaction": 3,
|
||||
"strength": 6,
|
||||
"willpower": 2,
|
||||
"logic": 2,
|
||||
"intuition": 2,
|
||||
"charisma": 2,
|
||||
"edge": 4,
|
||||
"essence": 2,
|
||||
"magic": 6
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "5 + 1D6",
|
||||
"defense_rating": 8,
|
||||
"condition_monitor": 14
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 9,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 12
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 6,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 9
|
||||
},
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 8,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 10
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 5,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 7
|
||||
}
|
||||
],
|
||||
"gear": [
|
||||
{
|
||||
"name": "Gang Leather",
|
||||
"rating": "+1 DR"
|
||||
},
|
||||
{
|
||||
"name": "Sony Emperor commlink",
|
||||
"rating": 2
|
||||
},
|
||||
{
|
||||
"name": "Claw Weapon (DV 4P, AR 8)"
|
||||
}
|
||||
],
|
||||
"primary_melee_weapon": {
|
||||
"name": "Crab Claw Mutation",
|
||||
"dv": "4P",
|
||||
"close": 8
|
||||
},
|
||||
"primary_armor": {
|
||||
"name": "Gang Leather",
|
||||
"rating": "+1"
|
||||
}
|
||||
}
|
||||
}
|
||||
104
rulesets/sr6/examples/npc/torque.json
Normal file
104
rulesets/sr6/examples/npc/torque.json
Normal file
@@ -0,0 +1,104 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "11df7705-3c2f-4744-a4c7-f6278a1f8ada",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "npc",
|
||||
"display_name": "Torque",
|
||||
"description": "Spikes Leader / Male Troll Gang Leader from the SR6 Beginner Box.",
|
||||
"template_id": "character_picker",
|
||||
"properties": {
|
||||
"alias": "Torque",
|
||||
"archetype": "Spikes Leader / Male Troll Gang Leader",
|
||||
"metatype": "Troll",
|
||||
"notes": "As a gang leader, he hates elves and really hates the Ancients, which means he has a special loathing for Green Phoenix. He became a leader because he knows how to make deals to get what he wants.",
|
||||
"quote": "“Look, just shut up and help me find an elf to punch.”",
|
||||
"hook": "He became a leader because he knows how to make deals to get what he wants.",
|
||||
"attributes": {
|
||||
"body": 5,
|
||||
"agility": 6,
|
||||
"reaction": 5,
|
||||
"strength": 8,
|
||||
"willpower": 4,
|
||||
"logic": 2,
|
||||
"intuition": 4,
|
||||
"charisma": 3,
|
||||
"edge": 2,
|
||||
"essence": 1.7
|
||||
},
|
||||
"combat_info": {
|
||||
"initiative": "9 + 1D6",
|
||||
"defense_rating": 7,
|
||||
"condition_monitor": 13
|
||||
},
|
||||
"skills": [
|
||||
{
|
||||
"name": "Close Combat",
|
||||
"rating": 5,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 11
|
||||
},
|
||||
{
|
||||
"name": "Firearms",
|
||||
"rating": 5,
|
||||
"attribute": "Agility",
|
||||
"dice_pool": 11
|
||||
},
|
||||
{
|
||||
"name": "Piloting",
|
||||
"rating": 5,
|
||||
"attribute": "Reaction",
|
||||
"dice_pool": 10
|
||||
},
|
||||
{
|
||||
"name": "Influence",
|
||||
"rating": 5,
|
||||
"attribute": "Charisma",
|
||||
"dice_pool": 8
|
||||
},
|
||||
{
|
||||
"name": "Perception",
|
||||
"rating": 4,
|
||||
"attribute": "Intuition",
|
||||
"dice_pool": 8
|
||||
}
|
||||
],
|
||||
"gear": [
|
||||
{
|
||||
"name": "Gang Leather",
|
||||
"rating": "+1 DR"
|
||||
},
|
||||
{
|
||||
"name": "Sony Emperor commlink",
|
||||
"rating": 2
|
||||
},
|
||||
{
|
||||
"name": "Harley-Davidson Scorpion motorcycle"
|
||||
},
|
||||
{
|
||||
"name": "Bike Chain"
|
||||
},
|
||||
{
|
||||
"name": "Defiance T-250 Shotgun"
|
||||
}
|
||||
],
|
||||
"primary_ranged_weapon": {
|
||||
"name": "Defiance T-250",
|
||||
"dv": "4P",
|
||||
"mode": "SA",
|
||||
"attack_rating": {
|
||||
"close": 7,
|
||||
"near": 10,
|
||||
"far": 6
|
||||
}
|
||||
},
|
||||
"primary_melee_weapon": {
|
||||
"name": "Bike Chain",
|
||||
"dv": "2S",
|
||||
"close": 4
|
||||
},
|
||||
"primary_armor": {
|
||||
"name": "Gang Leather",
|
||||
"rating": "+1"
|
||||
}
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/armor.json
Normal file
20
rulesets/sr6/examples/spell/armor.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "5eea3b01-8139-44b7-9f75-48b83e37cb78",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Armor",
|
||||
"description": "Hardens the body of the target to absorb damage.",
|
||||
"properties": {
|
||||
"name": "Armor",
|
||||
"category": "Spell",
|
||||
"spell_type": "Manipulation",
|
||||
"type_target": "P",
|
||||
"range": "T",
|
||||
"duration": "S",
|
||||
"drain": "3",
|
||||
"damage": "—",
|
||||
"rules": "Add net hits to target’s Defense Rating and Body for Damage Resistance tests.",
|
||||
"notes": "Hardens the body of the target to absorb damage."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/combat_sense.json
Normal file
20
rulesets/sr6/examples/spell/combat_sense.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "d3665eea-eb14-4f47-ad01-5f1745145cf0",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Combat Sense",
|
||||
"description": "Heightened awareness of possible dangers and ability to react faster.",
|
||||
"properties": {
|
||||
"name": "Combat Sense",
|
||||
"category": "Spell",
|
||||
"spell_type": "Detection",
|
||||
"type_target": "M",
|
||||
"range": "T",
|
||||
"duration": "S",
|
||||
"drain": "3",
|
||||
"damage": "—",
|
||||
"rules": "Net hits on Spellcasting test added to target’s dice pool for Surprise tests.",
|
||||
"notes": "Heightened awareness of possible dangers and ability to react faster."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/confusion.json
Normal file
20
rulesets/sr6/examples/spell/confusion.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "82974286-ee99-4c81-8de9-b9aa55b49e92",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Confusion",
|
||||
"description": "Hits target with a swirl of images and emotions leaving them disoriented.",
|
||||
"properties": {
|
||||
"name": "Confusion",
|
||||
"category": "Spell",
|
||||
"spell_type": "Illusion",
|
||||
"type_target": "M",
|
||||
"range": "LOS",
|
||||
"duration": "S",
|
||||
"drain": "4",
|
||||
"damage": "—",
|
||||
"rules": "Target suffers dice pool penalty equal to net hits on all non-resistance tests.",
|
||||
"notes": "Hits target with a swirl of images and emotions leaving them disoriented."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/detect_life.json
Normal file
20
rulesets/sr6/examples/spell/detect_life.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "943e28cb-9469-45c0-b526-7f8f6c309f33",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Detect Life",
|
||||
"description": "Points sentient beings out hiding in rubble, forests, or buildings.",
|
||||
"properties": {
|
||||
"name": "Detect Life",
|
||||
"category": "Spell",
|
||||
"spell_type": "Detection",
|
||||
"type_target": "M",
|
||||
"range": "T",
|
||||
"duration": "S",
|
||||
"drain": "3",
|
||||
"damage": "—",
|
||||
"rules": "",
|
||||
"notes": "Points sentient beings out hiding in rubble, forests, or buildings."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/fireball.json
Normal file
20
rulesets/sr6/examples/spell/fireball.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "56a68e73-c248-40e6-974c-ad4a7e1d203a",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Fireball",
|
||||
"description": "Every runner fears that tiny speck of fire hurtling their way.",
|
||||
"properties": {
|
||||
"name": "Fireball",
|
||||
"category": "Spell",
|
||||
"spell_type": "Combat (Indirect)",
|
||||
"type_target": "P",
|
||||
"range": "LOS (A)",
|
||||
"duration": "I",
|
||||
"drain": "6",
|
||||
"damage": "P, Special (Fire)",
|
||||
"rules": "Area-effect fire storm engulfing all targets in radius.",
|
||||
"notes": "Every runner fears that tiny speck of fire hurtling their way."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/flamestrike.json
Normal file
20
rulesets/sr6/examples/spell/flamestrike.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "f07b3b06-516b-46af-a1a9-26fece3ecb3c",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Flamestrike",
|
||||
"description": "A classic fire explosion in their faces.",
|
||||
"properties": {
|
||||
"name": "Flamestrike",
|
||||
"category": "Spell",
|
||||
"spell_type": "Combat (Direct)",
|
||||
"type_target": "P",
|
||||
"range": "LOS",
|
||||
"duration": "I",
|
||||
"drain": "5",
|
||||
"damage": "P, Special (Fire)",
|
||||
"rules": "Roll Sorcery + Magic vs. Defense/Resistance.",
|
||||
"notes": "A classic fire explosion in their faces."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/heal.json
Normal file
20
rulesets/sr6/examples/spell/heal.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "b7678c78-b961-412d-a422-be1054fe9a5a",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Heal",
|
||||
"description": "Quickest and most effective way to repair bullet wounds.",
|
||||
"properties": {
|
||||
"name": "Heal",
|
||||
"category": "Spell",
|
||||
"spell_type": "Health",
|
||||
"type_target": "P",
|
||||
"range": "T",
|
||||
"duration": "P",
|
||||
"drain": "3",
|
||||
"damage": "—",
|
||||
"rules": "Roll Sorcery + Magic with threshold (5 - Essence). Heals 1 box Stun or Physical per net hit.",
|
||||
"notes": "Quickest and most effective way to repair bullet wounds."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/ice_spear.json
Normal file
20
rulesets/sr6/examples/spell/ice_spear.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "5642493b-c5d6-4fb7-815d-19452ad00e8f",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Ice Spear",
|
||||
"description": "Piercing sub-zero temperature extreme.",
|
||||
"properties": {
|
||||
"name": "Ice Spear",
|
||||
"category": "Spell",
|
||||
"spell_type": "Combat (Direct)",
|
||||
"type_target": "P",
|
||||
"range": "LOS",
|
||||
"duration": "I",
|
||||
"drain": "5",
|
||||
"damage": "P, Special (Cold)",
|
||||
"rules": "",
|
||||
"notes": "Piercing sub-zero temperature extreme."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/improved_invisibility.json
Normal file
20
rulesets/sr6/examples/spell/improved_invisibility.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "ab5dce99-4a91-49cd-a839-f15ffdf48a7f",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Improved Invisibility",
|
||||
"description": "Fades from view, becoming transparent.",
|
||||
"properties": {
|
||||
"name": "Improved Invisibility",
|
||||
"category": "Spell",
|
||||
"spell_type": "Illusion",
|
||||
"type_target": "P",
|
||||
"range": "T",
|
||||
"duration": "S",
|
||||
"drain": "4",
|
||||
"damage": "—",
|
||||
"rules": "Net hits become threshold on tests to see character. Works against tech and living eyes.",
|
||||
"notes": "Fades from view, becoming transparent."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/increase_attribute.json
Normal file
20
rulesets/sr6/examples/spell/increase_attribute.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "73270407-036d-4975-8832-be7d6a4104fa",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Increase Attribute",
|
||||
"description": "Strengthens, speeds, or enlightens the target.",
|
||||
"properties": {
|
||||
"name": "Increase Attribute",
|
||||
"category": "Spell",
|
||||
"spell_type": "Health",
|
||||
"type_target": "P",
|
||||
"range": "T",
|
||||
"duration": "S",
|
||||
"drain": "3",
|
||||
"damage": "—",
|
||||
"rules": "Roll Sorcery + Magic (5 - Essence). Increase selected attribute by 1 per net hit.",
|
||||
"notes": "Strengthens, speeds, or enlightens the target."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/levitate.json
Normal file
20
rulesets/sr6/examples/spell/levitate.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "b2b57542-0a55-4cd9-b0fd-d16a5eb44477",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Levitate",
|
||||
"description": "Defying gravity and moving people or cargo with your mind.",
|
||||
"properties": {
|
||||
"name": "Levitate",
|
||||
"category": "Spell",
|
||||
"spell_type": "Manipulation",
|
||||
"type_target": "P",
|
||||
"range": "LOS",
|
||||
"duration": "S",
|
||||
"drain": "6",
|
||||
"damage": "—",
|
||||
"rules": "50 kg per hit. Move target at caster’s Magic rating in meters/turn (Minor Action).",
|
||||
"notes": "Defying gravity and moving people or cargo with your mind."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/mana_barrier.json
Normal file
20
rulesets/sr6/examples/spell/mana_barrier.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "aa17822b-96be-47d4-ad43-aec50fc947f4",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Mana Barrier",
|
||||
"description": "Want a spirit-free room? A mana barrier is the way to go.",
|
||||
"properties": {
|
||||
"name": "Mana Barrier",
|
||||
"category": "Spell",
|
||||
"spell_type": "Manipulation",
|
||||
"type_target": "M",
|
||||
"range": "LOS (A)",
|
||||
"duration": "S",
|
||||
"drain": "5",
|
||||
"damage": "—",
|
||||
"rules": "Blocks spirits, spells, and astrally projecting mages. Hits equal Barrier Rating.",
|
||||
"notes": "Want a spirit-free room? A mana barrier is the way to go."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/stunball.json
Normal file
20
rulesets/sr6/examples/spell/stunball.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "b1560955-0e61-4b75-a5fd-4e66da356f42",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Stunball",
|
||||
"description": "Knocks out a whole room full of potential speed bumps.",
|
||||
"properties": {
|
||||
"name": "Stunball",
|
||||
"category": "Spell",
|
||||
"spell_type": "Combat (Indirect)",
|
||||
"type_target": "M",
|
||||
"range": "LOS (A)",
|
||||
"duration": "I",
|
||||
"drain": "4",
|
||||
"damage": "S",
|
||||
"rules": "",
|
||||
"notes": "Knocks out a whole room full of potential speed bumps."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/spell/stunbolt.json
Normal file
20
rulesets/sr6/examples/spell/stunbolt.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "bd72b9ba-8888-4a20-a8c5-b68cb79dadcf",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "spell",
|
||||
"display_name": "Stunbolt",
|
||||
"description": "Channels mana in a way that hurts, but only to stun.",
|
||||
"properties": {
|
||||
"name": "Stunbolt",
|
||||
"category": "Spell",
|
||||
"spell_type": "Combat (Direct)",
|
||||
"type_target": "M",
|
||||
"range": "LOS",
|
||||
"duration": "I",
|
||||
"drain": "3",
|
||||
"damage": "S",
|
||||
"rules": "",
|
||||
"notes": "Channels mana in a way that hurts, but only to stun."
|
||||
}
|
||||
}
|
||||
23
rulesets/sr6/examples/vehicle/ford_americar.json
Normal file
23
rulesets/sr6/examples/vehicle/ford_americar.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "58e68112-353b-41a5-87bc-fef36c069fd7",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "vehicle",
|
||||
"display_name": "Ford Americar",
|
||||
"description": "Nothing special to look at, but will get you from here to there with no one giving a second glance.",
|
||||
"properties": {
|
||||
"filename": "ford_americar",
|
||||
"name": "Ford Americar",
|
||||
"category": "Groundcraft",
|
||||
"handling": "4/5",
|
||||
"acceleration": "9",
|
||||
"speed_interval": "20",
|
||||
"top_speed": "160",
|
||||
"body": 11,
|
||||
"armor": 4,
|
||||
"pilot": 1,
|
||||
"sensor": 2,
|
||||
"seats": 4,
|
||||
"notes": "Nothing special to look at, but will get you from here to there with no one giving a second glance."
|
||||
}
|
||||
}
|
||||
23
rulesets/sr6/examples/vehicle/harley_davidson_scorpion.json
Normal file
23
rulesets/sr6/examples/vehicle/harley_davidson_scorpion.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "b83f97be-f970-409b-85f3-7d0612d047e3",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "vehicle",
|
||||
"display_name": "Harley-Davidson Scorpion",
|
||||
"description": "The typical heavy-bodied, chromed road hog, with some armor and a whole lot of attitude.",
|
||||
"properties": {
|
||||
"filename": "harley_davidson_scorpion",
|
||||
"name": "Harley-Davidson Scorpion",
|
||||
"category": "Groundcraft",
|
||||
"handling": "3/5",
|
||||
"acceleration": "16",
|
||||
"speed_interval": "30",
|
||||
"top_speed": "200",
|
||||
"body": 7,
|
||||
"armor": 6,
|
||||
"pilot": 1,
|
||||
"sensor": 1,
|
||||
"seats": 2,
|
||||
"notes": "The typical heavy-bodied, chromed road hog, with some armor and a whole lot of attitude."
|
||||
}
|
||||
}
|
||||
22
rulesets/sr6/examples/vehicle/mct_nissan_roto_drone.json
Normal file
22
rulesets/sr6/examples/vehicle/mct_nissan_roto_drone.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "82936168-8bdb-47d8-af83-f3bfdc74ac1a",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "vehicle",
|
||||
"display_name": "MCT-Nissan Roto-Drone",
|
||||
"description": "MCT-Nissan got this right so long ago, they have never changed it much.",
|
||||
"properties": {
|
||||
"filename": "mct_nissan_roto_drone",
|
||||
"name": "MCT-Nissan Roto-Drone",
|
||||
"category": "Drone",
|
||||
"handling": "3",
|
||||
"acceleration": "20",
|
||||
"speed_interval": "30",
|
||||
"top_speed": "160",
|
||||
"body": 5,
|
||||
"armor": 6,
|
||||
"pilot": 3,
|
||||
"sensor": 2,
|
||||
"notes": "MCT-Nissan got this right so long ago, they have never changed it much."
|
||||
}
|
||||
}
|
||||
22
rulesets/sr6/examples/vehicle/steel_lynx.json
Normal file
22
rulesets/sr6/examples/vehicle/steel_lynx.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "b894742f-ccbe-4636-9fbb-bb6ee6af0556",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "vehicle",
|
||||
"display_name": "Steel Lynx",
|
||||
"description": "This is what people mean when they refer to a “killing machine.”",
|
||||
"properties": {
|
||||
"filename": "steel_lynx",
|
||||
"name": "Steel Lynx",
|
||||
"category": "Drone",
|
||||
"handling": "3/5",
|
||||
"acceleration": "15",
|
||||
"speed_interval": "15",
|
||||
"top_speed": "80",
|
||||
"body": 10,
|
||||
"armor": 16,
|
||||
"pilot": 4,
|
||||
"sensor": 4,
|
||||
"notes": "This is what people mean when they refer to a “killing machine.”"
|
||||
}
|
||||
}
|
||||
23
rulesets/sr6/examples/vehicle/yamaha_rapier.json
Normal file
23
rulesets/sr6/examples/vehicle/yamaha_rapier.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "d139efa9-ad6d-47a7-82dd-aa2340478131",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "vehicle",
|
||||
"display_name": "Yamaha Rapier",
|
||||
"description": "A classic racing bike seen beneath the hoops of go-gangers and corp brats alike.",
|
||||
"properties": {
|
||||
"filename": "yamaha_rapier",
|
||||
"name": "Yamaha Rapier",
|
||||
"category": "Groundcraft",
|
||||
"handling": "3/6",
|
||||
"acceleration": "27",
|
||||
"speed_interval": "25",
|
||||
"top_speed": "250",
|
||||
"body": 5,
|
||||
"armor": 2,
|
||||
"pilot": 1,
|
||||
"sensor": 1,
|
||||
"seats": 2,
|
||||
"notes": "A classic racing bike seen beneath the hoops of go-gangers and corp brats alike."
|
||||
}
|
||||
}
|
||||
21
rulesets/sr6/examples/weapon/ares_desert_strike.json
Normal file
21
rulesets/sr6/examples/weapon/ares_desert_strike.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "efaeb2c4-a522-4e53-9511-2add148fa7de",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Ares Desert Strike",
|
||||
"description": "The Desert Strike for the Desert Wars is the tagline today.",
|
||||
"properties": {
|
||||
"name": "Ares Desert Strike",
|
||||
"dv": "5P",
|
||||
"mode": "SA",
|
||||
"attack_rating": {
|
||||
"close": 3,
|
||||
"near": 10,
|
||||
"far": 10,
|
||||
"extreme": 10
|
||||
},
|
||||
"extras": "detachable imaging scope, shock pad",
|
||||
"notes": "The Desert Strike for the Desert Wars is the tagline today."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/weapon/ares_light_fire_75.json
Normal file
20
rulesets/sr6/examples/weapon/ares_light_fire_75.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "16bcf531-339b-4ae5-9efb-cd7a82e71bfd",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Ares Light Fire 75",
|
||||
"description": "The Light Fire Series is designed for special operators.",
|
||||
"properties": {
|
||||
"name": "Ares Light Fire 75",
|
||||
"dv": "2P",
|
||||
"mode": "SA",
|
||||
"attack_rating": {
|
||||
"close": 10,
|
||||
"near": 7,
|
||||
"far": 6
|
||||
},
|
||||
"extras": "barrel-mounted silencer, laser sight, smartgun",
|
||||
"notes": "The Light Fire Series is designed for special operators."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/weapon/ares_predator_vi.json
Normal file
20
rulesets/sr6/examples/weapon/ares_predator_vi.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "f108cf3f-8245-4453-a5dd-f9fb0584081d",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Ares Predator VI",
|
||||
"description": "The Predator VI is genuine innovation built into some classic styling.",
|
||||
"properties": {
|
||||
"name": "Ares Predator VI",
|
||||
"dv": "4P",
|
||||
"mode": "SA",
|
||||
"attack_rating": {
|
||||
"close": 9,
|
||||
"near": 9,
|
||||
"far": 7
|
||||
},
|
||||
"extras": "smartgun",
|
||||
"notes": "The Predator VI is genuine innovation built into some classic styling."
|
||||
}
|
||||
}
|
||||
18
rulesets/sr6/examples/weapon/bike_chain.json
Normal file
18
rulesets/sr6/examples/weapon/bike_chain.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "803382f0-8ede-4945-a0a1-6851a6a45648",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Bike Chain",
|
||||
"description": "Go gangs love to pull the old equipment off their scrap bikes and smack people with it.",
|
||||
"properties": {
|
||||
"name": "Bike Chain",
|
||||
"dv": "2S",
|
||||
"mode": "NA",
|
||||
"attack_rating": {
|
||||
"close": 4
|
||||
},
|
||||
"extras": "None",
|
||||
"notes": "Go gangs love to pull the old equipment off their scrap bikes and smack people with it."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/weapon/browning_ultra_power.json
Normal file
20
rulesets/sr6/examples/weapon/browning_ultra_power.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "4acd41df-6fd2-471d-a099-3322da21c056",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Browning Ultra Power",
|
||||
"description": "Cheaper than the Predator and offers a built-in top-mounted laser sight.",
|
||||
"properties": {
|
||||
"name": "Browning Ultra Power",
|
||||
"dv": "3P",
|
||||
"mode": "SA",
|
||||
"attack_rating": {
|
||||
"close": 10,
|
||||
"near": 9,
|
||||
"far": 6
|
||||
},
|
||||
"extras": "laser sight",
|
||||
"notes": "Cheaper than the Predator and offers a built-in top-mounted laser sight."
|
||||
}
|
||||
}
|
||||
18
rulesets/sr6/examples/weapon/club.json
Normal file
18
rulesets/sr6/examples/weapon/club.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "596ee4fd-b8c4-45e6-9058-7a91cd3be89e",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Club",
|
||||
"description": "An axe handle, baseball bat, crowbar, tire iron, wrench, or two-by-four.",
|
||||
"properties": {
|
||||
"name": "Club",
|
||||
"dv": "3S",
|
||||
"mode": "NA",
|
||||
"attack_rating": {
|
||||
"close": 6
|
||||
},
|
||||
"extras": "None",
|
||||
"notes": "An axe handle, baseball bat, crowbar, tire iron, wrench, or two-by-four."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/weapon/defiance_t250.json
Normal file
20
rulesets/sr6/examples/weapon/defiance_t250.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "6d0383c0-e204-4980-818e-fd6e71e9cac8",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Defiance T-250",
|
||||
"description": "A street howitzer, this semi-auto shotgun is available in normal or short-barreled versions.",
|
||||
"properties": {
|
||||
"name": "Defiance T-250",
|
||||
"dv": "4P",
|
||||
"mode": "SA",
|
||||
"attack_rating": {
|
||||
"close": 7,
|
||||
"near": 10,
|
||||
"far": 6
|
||||
},
|
||||
"extras": "None",
|
||||
"notes": "A street howitzer, this semi-auto shotgun is available in normal or short-barreled versions."
|
||||
}
|
||||
}
|
||||
18
rulesets/sr6/examples/weapon/extendable_baton.json
Normal file
18
rulesets/sr6/examples/weapon/extendable_baton.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "8db99eff-97ee-48ed-b742-08f307409bd7",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Extendable Baton",
|
||||
"description": "Can be extended with a wrist flick or a wireless signal.",
|
||||
"properties": {
|
||||
"name": "Extendable Baton",
|
||||
"dv": "2S",
|
||||
"mode": "NA",
|
||||
"attack_rating": {
|
||||
"close": 5
|
||||
},
|
||||
"extras": "None",
|
||||
"notes": "Can be extended with a wrist flick or a wireless signal."
|
||||
}
|
||||
}
|
||||
18
rulesets/sr6/examples/weapon/katana.json
Normal file
18
rulesets/sr6/examples/weapon/katana.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "2ed0ed2c-4acb-4e1a-b168-e2f636511438",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Katana",
|
||||
"description": "The iconic two-handed sword of the samurai is standard issue for trid shadowrunners.",
|
||||
"properties": {
|
||||
"name": "Katana",
|
||||
"dv": "4P",
|
||||
"mode": "NA",
|
||||
"attack_rating": {
|
||||
"close": 10
|
||||
},
|
||||
"extras": "None",
|
||||
"notes": "The iconic two-handed sword of the samurai is standard issue for trid shadowrunners."
|
||||
}
|
||||
}
|
||||
19
rulesets/sr6/examples/weapon/knife.json
Normal file
19
rulesets/sr6/examples/weapon/knife.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "405ac1d8-d948-4f61-80c6-5736c4d53054",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Knife",
|
||||
"description": "A catch-all term for a variety of different deadly fighting blades.",
|
||||
"properties": {
|
||||
"name": "Knife",
|
||||
"dv": "2P",
|
||||
"mode": "NA",
|
||||
"attack_rating": {
|
||||
"close": 6,
|
||||
"near": 1
|
||||
},
|
||||
"extras": "max range, 20 meters",
|
||||
"notes": "A catch-all term for a variety of different deadly fighting blades."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/weapon/ruger_super_warhawk.json
Normal file
20
rulesets/sr6/examples/weapon/ruger_super_warhawk.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "deee47e3-7521-4bce-afac-79246287c964",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Ruger Super Warhawk",
|
||||
"description": "Shiny and chromed and makes holes the size of a troll’s fist straight out of the box.",
|
||||
"properties": {
|
||||
"name": "Ruger Super Warhawk",
|
||||
"dv": "4P",
|
||||
"mode": "SA",
|
||||
"attack_rating": {
|
||||
"close": 8,
|
||||
"near": 11,
|
||||
"far": 8
|
||||
},
|
||||
"extras": "None",
|
||||
"notes": "Shiny and chromed and makes holes the size of a troll’s fist straight out of the box."
|
||||
}
|
||||
}
|
||||
18
rulesets/sr6/examples/weapon/sword.json
Normal file
18
rulesets/sr6/examples/weapon/sword.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "b8c27f0b-b5f4-4f4c-a26c-2e146a2c8ea2",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Sword",
|
||||
"description": "A heavy blade on a one-handed grip that comes in a variety of styles.",
|
||||
"properties": {
|
||||
"name": "Sword",
|
||||
"dv": "3P",
|
||||
"mode": "NA",
|
||||
"attack_rating": {
|
||||
"close": 9
|
||||
},
|
||||
"extras": "None",
|
||||
"notes": "A heavy blade on a one-handed grip that comes in a variety of styles."
|
||||
}
|
||||
}
|
||||
20
rulesets/sr6/examples/weapon/uzi_v.json
Normal file
20
rulesets/sr6/examples/weapon/uzi_v.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "e23a7a67-8a63-4c58-bc25-2bf852727539",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Uzi V",
|
||||
"description": "The latest model Uzi is a big market entry for Spinrad Global.",
|
||||
"properties": {
|
||||
"name": "Uzi V",
|
||||
"dv": "3P",
|
||||
"mode": "SA/BF",
|
||||
"attack_rating": {
|
||||
"close": 8,
|
||||
"near": 8,
|
||||
"far": 7
|
||||
},
|
||||
"extras": "None",
|
||||
"notes": "The latest model Uzi is a big market entry for Spinrad Global."
|
||||
}
|
||||
}
|
||||
19
rulesets/sr6/examples/weapon/yamaha_pulsar_i.json
Normal file
19
rulesets/sr6/examples/weapon/yamaha_pulsar_i.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"$schema": "../../../schema/entity.json",
|
||||
"uuid": "c6f3d100-246f-474c-aa97-f6c9e4d633ef",
|
||||
"ruleset_id": "sr6",
|
||||
"entity_type": "weapon",
|
||||
"display_name": "Yamaha Pulsar I",
|
||||
"description": "Uses wireless capacitors, meaning increased range compared to wired tasers.",
|
||||
"properties": {
|
||||
"name": "Yamaha Pulsar I",
|
||||
"dv": "4S (e)",
|
||||
"mode": "SS",
|
||||
"attack_rating": {
|
||||
"close": 9,
|
||||
"near": 9
|
||||
},
|
||||
"extras": "max range, 50 meters",
|
||||
"notes": "Uses wireless capacitors, meaning increased range compared to wired tasers."
|
||||
}
|
||||
}
|
||||
107
rulesets/sr6/helpers.js
Normal file
107
rulesets/sr6/helpers.js
Normal file
@@ -0,0 +1,107 @@
|
||||
/**
|
||||
* SR6 Ruleset Handlebars Helpers
|
||||
* Auto-loaded by preview server for ruleset 'sr6'.
|
||||
*/
|
||||
module.exports = function (handlebars) {
|
||||
// Compute maximum physical damage boxes: 8 + ceil(body / 2)
|
||||
handlebars.registerHelper('calcPhysicalBoxes', function (body) {
|
||||
const b = typeof body === 'object' && body !== null ? (body.value || body.base || 0) : Number(body || 0);
|
||||
return 8 + Math.ceil(b / 2);
|
||||
});
|
||||
|
||||
// Compute maximum stun damage boxes: 8 + ceil(willpower / 2)
|
||||
handlebars.registerHelper('calcStunBoxes', function (willpower) {
|
||||
const w = typeof willpower === 'object' && willpower !== null ? (willpower.value || willpower.base || 0) : Number(willpower || 0);
|
||||
return 8 + Math.ceil(w / 2);
|
||||
});
|
||||
|
||||
// Format currency with nuyen symbol
|
||||
handlebars.registerHelper('formatNuyen', function (amount) {
|
||||
if (amount === undefined || amount === null) return '0¥';
|
||||
const num = typeof amount === 'number' ? amount : parseInt(String(amount).replace(/[^0-9]/g, ''), 10) || 0;
|
||||
return `${num.toLocaleString('en-US')}¥`;
|
||||
});
|
||||
|
||||
// Format dice pool helper: (skill rating + linked attribute value)
|
||||
handlebars.registerHelper('calcDicePool', function (skill, attributes) {
|
||||
if (!skill) return 0;
|
||||
const rating = typeof skill.rating === 'number' ? skill.rating : (parseInt(skill.rating, 10) || 0);
|
||||
const attrName = (skill.attribute || '').toLowerCase();
|
||||
let attrVal = 0;
|
||||
if (attributes && attrName && attributes[attrName] !== undefined) {
|
||||
const a = attributes[attrName];
|
||||
attrVal = typeof a === 'object' && a !== null ? (a.value || a.base || 0) : (Number(a) || 0);
|
||||
}
|
||||
const bonus = skill.expertise ? 3 : (skill.specialization ? 2 : 0);
|
||||
return rating + attrVal + bonus;
|
||||
});
|
||||
|
||||
// Safe attribute value extractor
|
||||
handlebars.registerHelper('attr', function (attributes, name) {
|
||||
if (!attributes || !name) return '—';
|
||||
const val = attributes[name.toLowerCase()];
|
||||
if (val === undefined || val === null) return '—';
|
||||
return typeof val === 'object' ? (val.value ?? val.base ?? '—') : val;
|
||||
});
|
||||
|
||||
// Helper to build 3-box rows for condition monitor
|
||||
handlebars.registerHelper('conditionMonitorRows', function (totalBoxes, currentDamage, maxGridBoxes, options) {
|
||||
const total = Number(totalBoxes) || 8;
|
||||
const damage = Number(currentDamage) || 0;
|
||||
const maxBoxes = Number(maxGridBoxes) || 18;
|
||||
const rowsCount = Math.ceil(maxBoxes / 3);
|
||||
|
||||
let output = '';
|
||||
for (let r = 0; r < rowsCount; r++) {
|
||||
const boxes = [];
|
||||
for (let c = 1; c <= 3; c++) {
|
||||
const boxIdx = r * 3 + c;
|
||||
if (boxIdx <= maxBoxes) {
|
||||
boxes.push({
|
||||
index: boxIdx,
|
||||
active: boxIdx <= total,
|
||||
filled: boxIdx <= damage,
|
||||
blackedOut: boxIdx > total,
|
||||
isThreshold: c === 3,
|
||||
penalty: -(r + 1)
|
||||
});
|
||||
}
|
||||
}
|
||||
output += options.fn({
|
||||
rowNumber: r + 1,
|
||||
penalty: -(r + 1),
|
||||
boxes: boxes
|
||||
});
|
||||
}
|
||||
return output;
|
||||
});
|
||||
|
||||
// Matrix condition monitor boxes generator (1 to 12)
|
||||
handlebars.registerHelper('matrixMonitorBoxes', function (maxBoxes, currentDamage, options) {
|
||||
const total = Number(maxBoxes) || 12;
|
||||
const damage = Number(currentDamage) || 0;
|
||||
let output = '';
|
||||
for (let i = 1; i <= total; i++) {
|
||||
output += options.fn({
|
||||
index: i,
|
||||
filled: i <= damage
|
||||
});
|
||||
}
|
||||
return output;
|
||||
});
|
||||
|
||||
// Edge points tracker generator (1 to maxEdge)
|
||||
handlebars.registerHelper('edgePointsBoxes', function (maxEdge, currentEdge, options) {
|
||||
const max = Number(maxEdge) || 7;
|
||||
const curr = Number(currentEdge) || 0;
|
||||
let output = '';
|
||||
for (let i = 1; i <= Math.max(7, max); i++) {
|
||||
output += options.fn({
|
||||
index: i,
|
||||
filled: i <= curr,
|
||||
disabled: i > max
|
||||
});
|
||||
}
|
||||
return output;
|
||||
});
|
||||
};
|
||||
117
rulesets/sr6/manifest.json
Normal file
117
rulesets/sr6/manifest.json
Normal file
@@ -0,0 +1,117 @@
|
||||
{
|
||||
"$schema": "../../schema/manifest.json",
|
||||
"id": "sr6",
|
||||
"uuid": "3f80c10b-8d54-4a47-a89c-d9cb773b06e0",
|
||||
"name": "Shadowrun Sixth World (SR6)",
|
||||
"version": "1.0.0",
|
||||
"description": "6th Edition Shadowrun ruleset providing entity schemas, official fillable character sheet, runner dossiers, and NPC roster.",
|
||||
"license": "Proprietary / Fan Use (Topps / Catalyst Game Labs)",
|
||||
"author": {
|
||||
"name": "Catalyst Game Labs",
|
||||
"url": "https://www.shadowrunsixthworld.com"
|
||||
},
|
||||
"entities": [
|
||||
{
|
||||
"id": "character",
|
||||
"name": "Shadowrunner Character",
|
||||
"description": "A 6th Edition Shadowrunner with attributes, skills, condition monitors, qualities, augmentations, and gear.",
|
||||
"schema": "entities/character.json",
|
||||
"default_template": "character_sheet",
|
||||
"templates": ["character_sheet", "character_picker"]
|
||||
},
|
||||
{
|
||||
"id": "dossier",
|
||||
"name": "Shadowrunner Dossier",
|
||||
"description": "A comprehensive 4-page runner dossier containing full character data plus narrative background, roleplaying tips, tactics, and sample actions.",
|
||||
"schema": "entities/dossier.json",
|
||||
"default_template": "dossier_sheet",
|
||||
"templates": ["dossier_sheet", "character_sheet", "character_picker"]
|
||||
},
|
||||
{
|
||||
"id": "npc",
|
||||
"name": "Non-Player Character / Gang",
|
||||
"description": "Street contacts, gang members, syndicate leaders, and corporate operatives compatible with character sheets.",
|
||||
"schema": "entities/npc.json",
|
||||
"default_template": "character_picker",
|
||||
"templates": ["character_picker", "character_sheet"]
|
||||
},
|
||||
{
|
||||
"id": "weapon",
|
||||
"name": "Weapon",
|
||||
"description": "Melee and ranged weaponry with Damage Value (DV), firing modes, attack ratings across range bands, and ammo.",
|
||||
"schema": "entities/weapon.json"
|
||||
},
|
||||
{
|
||||
"id": "armor",
|
||||
"name": "Armor",
|
||||
"description": "Protective gear and armored clothing providing Defense Rating bonuses and social mods.",
|
||||
"schema": "entities/armor.json"
|
||||
},
|
||||
{
|
||||
"id": "augmentation",
|
||||
"name": "Augmentation",
|
||||
"description": "Cyberware and bioware implants with grade, rating, essence cost, and tactical enhancements.",
|
||||
"schema": "entities/augmentation.json"
|
||||
},
|
||||
{
|
||||
"id": "vehicle",
|
||||
"name": "Vehicle / Drone",
|
||||
"description": "Rigged vehicles and drones with handling, acceleration, top speed, body, armor, sensor, and pilot ratings.",
|
||||
"schema": "entities/vehicle.json"
|
||||
},
|
||||
{
|
||||
"id": "gear",
|
||||
"name": "Gear / Item",
|
||||
"description": "Everyday shadowrunner equipment, tools, commlinks, cyberdecks, and programs.",
|
||||
"schema": "entities/gear.json"
|
||||
},
|
||||
{
|
||||
"id": "spell",
|
||||
"name": "Spell / Complex Form",
|
||||
"description": "Hermetic and shamanic spells, rituals, preparations, and technomancer complex forms.",
|
||||
"schema": "entities/spell.json"
|
||||
},
|
||||
{
|
||||
"id": "corporation",
|
||||
"name": "Megacorporation",
|
||||
"description": "AAA and AA megacorporations from the Corporate Court with ranking, slogans, leadership, and divisions.",
|
||||
"schema": "entities/corporation.json"
|
||||
}
|
||||
],
|
||||
"templates": [
|
||||
{
|
||||
"id": "character_sheet",
|
||||
"name": "Official Character Sheet",
|
||||
"description": "Authentic 2-page fillable character sheet matching SR6-Character-Sheet-Fillable.pdf.",
|
||||
"entity_types": ["character", "dossier", "npc"],
|
||||
"mode": "sheet",
|
||||
"engine": "html",
|
||||
"html": "templates/character_sheet.html",
|
||||
"css": ["templates/character_sheet.css"]
|
||||
},
|
||||
{
|
||||
"id": "dossier_sheet",
|
||||
"name": "Shadowrunner Dossier",
|
||||
"description": "Comprehensive 4-page runner dossier matching the official Beginner Box Dossier format.",
|
||||
"entity_types": ["dossier", "character"],
|
||||
"mode": "sheet",
|
||||
"engine": "html",
|
||||
"html": "templates/dossier_sheet.html",
|
||||
"css": ["templates/dossier_sheet.css"]
|
||||
},
|
||||
{
|
||||
"id": "character_picker",
|
||||
"name": "Character / NPC List Picker",
|
||||
"description": "Minimal quick-reference card for picking a character, dossier, or NPC from a list with entity badge and vitals.",
|
||||
"entity_types": ["character", "dossier", "npc"],
|
||||
"mode": "card",
|
||||
"engine": "html",
|
||||
"html": "templates/character_picker.html",
|
||||
"css": ["templates/character_picker.css"]
|
||||
}
|
||||
],
|
||||
"assets": {
|
||||
"path": "templates/assets",
|
||||
"images": ["_dev_sr6_logo.png", "_dev_sr6_circuit_bg.png"]
|
||||
}
|
||||
}
|
||||
BIN
rulesets/sr6/templates/assets/_dev_sr6_circuit_bg.png
Normal file
BIN
rulesets/sr6/templates/assets/_dev_sr6_circuit_bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 981 KiB |
BIN
rulesets/sr6/templates/assets/_dev_sr6_logo.png
Normal file
BIN
rulesets/sr6/templates/assets/_dev_sr6_logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
300
rulesets/sr6/templates/character_picker.css
Normal file
300
rulesets/sr6/templates/character_picker.css
Normal file
@@ -0,0 +1,300 @@
|
||||
/* rulesets/sr6/templates/character_picker.css */
|
||||
:root {
|
||||
--sr-magenta: #950c6b;
|
||||
--sr-cyan: #00e5ff;
|
||||
--sr-amber: #ff9100;
|
||||
--sr-dark-bg: #0e1117;
|
||||
--sr-card-bg: #161b22;
|
||||
--sr-card-border: #30363d;
|
||||
--sr-text-bright: #f0f6fc;
|
||||
--sr-text-muted: #8b949e;
|
||||
--sr-accent: #950c6b;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 24px;
|
||||
background-color: var(--sr-dark-bg);
|
||||
font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, sans-serif;
|
||||
color: var(--sr-text-bright);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.picker-card-wrapper {
|
||||
max-width: 580px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.picker-card {
|
||||
position: relative;
|
||||
background: var(--sr-card-bg);
|
||||
border: 1px solid var(--sr-card-border);
|
||||
border-radius: 8px;
|
||||
padding: 16px 20px;
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
|
||||
transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.picker-card:hover {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
/* Entity Type Variations */
|
||||
.picker-card.entity-dossier {
|
||||
border-left: 4px solid var(--sr-magenta);
|
||||
}
|
||||
.picker-card.entity-dossier:hover {
|
||||
border-color: var(--sr-magenta);
|
||||
box-shadow: 0 6px 20px rgba(149, 12, 107, 0.3);
|
||||
}
|
||||
|
||||
.picker-card.entity-character {
|
||||
border-left: 4px solid var(--sr-cyan);
|
||||
}
|
||||
.picker-card.entity-character:hover {
|
||||
border-color: var(--sr-cyan);
|
||||
box-shadow: 0 6px 20px rgba(0, 229, 255, 0.25);
|
||||
}
|
||||
|
||||
.picker-card.entity-npc {
|
||||
border-left: 4px solid var(--sr-amber);
|
||||
}
|
||||
.picker-card.entity-npc:hover {
|
||||
border-color: var(--sr-amber);
|
||||
box-shadow: 0 6px 20px rgba(255, 145, 0, 0.25);
|
||||
}
|
||||
|
||||
/* Header */
|
||||
.card-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
gap: 12px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.header-identity {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.title-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.runner-name {
|
||||
font-size: 1.25rem;
|
||||
font-weight: 700;
|
||||
color: #ffffff;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.metatype-tag {
|
||||
font-size: 0.75rem;
|
||||
padding: 2px 8px;
|
||||
border-radius: 4px;
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
color: #c9d1d9;
|
||||
text-transform: uppercase;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.runner-archetype {
|
||||
font-size: 0.85rem;
|
||||
color: var(--sr-text-muted);
|
||||
margin-top: 2px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* Entity Badge */
|
||||
.entity-badge {
|
||||
font-size: 0.7rem;
|
||||
font-weight: 800;
|
||||
letter-spacing: 1px;
|
||||
padding: 4px 10px;
|
||||
border-radius: 4px;
|
||||
text-transform: uppercase;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.badge-dossier {
|
||||
background: rgba(149, 12, 107, 0.2);
|
||||
color: #ff40b3;
|
||||
border: 1px solid var(--sr-magenta);
|
||||
}
|
||||
|
||||
.badge-character {
|
||||
background: rgba(0, 229, 255, 0.15);
|
||||
color: #00e5ff;
|
||||
border: 1px solid var(--sr-cyan);
|
||||
}
|
||||
|
||||
.badge-npc {
|
||||
background: rgba(255, 145, 0, 0.15);
|
||||
color: #ffb74d;
|
||||
border: 1px solid var(--sr-amber);
|
||||
}
|
||||
|
||||
/* Attributes Bar */
|
||||
.attributes-bar {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(36px, 1fr));
|
||||
gap: 4px;
|
||||
background: rgba(0, 0, 0, 0.25);
|
||||
padding: 6px;
|
||||
border-radius: 6px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.05);
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.attr-cell {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.attr-label {
|
||||
font-size: 0.65rem;
|
||||
font-weight: 700;
|
||||
color: var(--sr-text-muted);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.attr-val {
|
||||
font-size: 0.95rem;
|
||||
font-weight: 800;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* Combat Vitals Row */
|
||||
.vitals-row {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
margin-bottom: 12px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.vital-chip {
|
||||
flex: 1;
|
||||
min-width: 90px;
|
||||
background: #21262d;
|
||||
border: 1px solid rgba(255, 255, 255, 0.08);
|
||||
border-radius: 6px;
|
||||
padding: 6px 10px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.vital-label {
|
||||
font-size: 0.65rem;
|
||||
color: var(--sr-text-muted);
|
||||
text-transform: uppercase;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.vital-value {
|
||||
font-size: 0.95rem;
|
||||
font-weight: 700;
|
||||
color: #58a6ff;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
/* Quote / Hook Box */
|
||||
.quote-box {
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
border-left: 2px solid rgba(255, 255, 255, 0.2);
|
||||
padding: 6px 10px;
|
||||
margin-bottom: 12px;
|
||||
border-radius: 0 4px 4px 0;
|
||||
font-size: 0.8rem;
|
||||
font-style: italic;
|
||||
color: #d2a8ff;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.hook-box {
|
||||
background: rgba(255, 145, 0, 0.08);
|
||||
border-left: 2px solid var(--sr-amber);
|
||||
padding: 6px 10px;
|
||||
margin-bottom: 12px;
|
||||
border-radius: 0 4px 4px 0;
|
||||
font-size: 0.8rem;
|
||||
color: #ffcc80;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
/* Gear & Skills Preview */
|
||||
.tags-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
|
||||
.pill-item {
|
||||
font-size: 0.72rem;
|
||||
background: #30363d;
|
||||
color: #e6edf3;
|
||||
padding: 3px 8px;
|
||||
border-radius: 12px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* Footer / Selection Action */
|
||||
.card-footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.08);
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.selection-info {
|
||||
font-size: 0.75rem;
|
||||
color: var(--sr-text-muted);
|
||||
}
|
||||
|
||||
.select-btn {
|
||||
background: transparent;
|
||||
color: var(--sr-text-bright);
|
||||
border: 1px solid #388bfd;
|
||||
border-radius: 4px;
|
||||
padding: 5px 14px;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
transition: all 0.15s ease;
|
||||
}
|
||||
|
||||
.select-btn:hover {
|
||||
background: #1f6feb;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.entity-dossier .select-btn {
|
||||
border-color: var(--sr-magenta);
|
||||
}
|
||||
.entity-dossier .select-btn:hover {
|
||||
background: var(--sr-magenta);
|
||||
}
|
||||
|
||||
.entity-npc .select-btn {
|
||||
border-color: var(--sr-amber);
|
||||
}
|
||||
.entity-npc .select-btn:hover {
|
||||
background: var(--sr-amber);
|
||||
color: #000;
|
||||
}
|
||||
|
||||
166
rulesets/sr6/templates/character_picker.html
Normal file
166
rulesets/sr6/templates/character_picker.html
Normal file
@@ -0,0 +1,166 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{#if properties.alias}}{{properties.alias}}{{else}}{{display_name}}{{/if}} | SR6 Runner Picker</title>
|
||||
<link rel="stylesheet" href="/rulesets/sr6/templates/character_picker.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="picker-card-wrapper">
|
||||
<div class="picker-card entity-{{entity_type}}" data-uuid="{{uuid}}" data-entity-type="{{entity_type}}">
|
||||
|
||||
<!-- Card Header -->
|
||||
<div class="card-header">
|
||||
<div class="header-identity">
|
||||
<div class="title-row">
|
||||
<span class="runner-name">{{#if properties.alias}}{{properties.alias}}{{else}}{{display_name}}{{/if}}</span>
|
||||
{{#if properties.metatype}}
|
||||
<span class="metatype-tag">{{properties.metatype}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if properties.archetype}}
|
||||
<span class="runner-archetype">{{properties.archetype}}</span>
|
||||
{{else if properties.pitch}}
|
||||
<span class="runner-archetype">{{properties.pitch}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<!-- Entity Type Badge -->
|
||||
<div>
|
||||
{{#if (eq entity_type "dossier")}}
|
||||
<span class="entity-badge badge-dossier">Dossier</span>
|
||||
{{else if (eq entity_type "npc")}}
|
||||
<span class="entity-badge badge-npc">NPC</span>
|
||||
{{else}}
|
||||
<span class="entity-badge badge-character">Character</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Attributes Bar -->
|
||||
{{#if properties.attributes}}
|
||||
<div class="attributes-bar">
|
||||
<div class="attr-cell">
|
||||
<span class="attr-label">BOD</span>
|
||||
<span class="attr-val">{{properties.attributes.body}}</span>
|
||||
</div>
|
||||
<div class="attr-cell">
|
||||
<span class="attr-label">AGI</span>
|
||||
<span class="attr-val">{{properties.attributes.agility}}</span>
|
||||
</div>
|
||||
<div class="attr-cell">
|
||||
<span class="attr-label">REA</span>
|
||||
<span class="attr-val">{{properties.attributes.reaction}}</span>
|
||||
</div>
|
||||
<div class="attr-cell">
|
||||
<span class="attr-label">STR</span>
|
||||
<span class="attr-val">{{properties.attributes.strength}}</span>
|
||||
</div>
|
||||
<div class="attr-cell">
|
||||
<span class="attr-label">WIL</span>
|
||||
<span class="attr-val">{{properties.attributes.willpower}}</span>
|
||||
</div>
|
||||
<div class="attr-cell">
|
||||
<span class="attr-label">LOG</span>
|
||||
<span class="attr-val">{{properties.attributes.logic}}</span>
|
||||
</div>
|
||||
<div class="attr-cell">
|
||||
<span class="attr-label">INT</span>
|
||||
<span class="attr-val">{{properties.attributes.intuition}}</span>
|
||||
</div>
|
||||
<div class="attr-cell">
|
||||
<span class="attr-label">CHA</span>
|
||||
<span class="attr-val">{{properties.attributes.charisma}}</span>
|
||||
</div>
|
||||
<div class="attr-cell">
|
||||
<span class="attr-label">EDG</span>
|
||||
<span class="attr-val">{{#if properties.attributes.edge}}{{properties.attributes.edge}}{{else}}—{{/if}}</span>
|
||||
</div>
|
||||
<div class="attr-cell">
|
||||
<span class="attr-label">ESS</span>
|
||||
<span class="attr-val">{{#if properties.attributes.essence}}{{properties.attributes.essence}}{{else}}6.0{{/if}}</span>
|
||||
</div>
|
||||
{{#if properties.attributes.magic}}
|
||||
<div class="attr-cell">
|
||||
<span class="attr-label">MAG</span>
|
||||
<span class="attr-val">{{properties.attributes.magic}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- Combat Vitals -->
|
||||
<div class="vitals-row">
|
||||
<div class="vital-chip">
|
||||
<span class="vital-label">Initiative</span>
|
||||
<span class="vital-value">{{#if properties.combat_info.initiative}}{{properties.combat_info.initiative}}{{else}}—{{/if}}</span>
|
||||
</div>
|
||||
<div class="vital-chip">
|
||||
<span class="vital-label">Defense</span>
|
||||
<span class="vital-value">DR {{#if properties.combat_info.defense_rating}}{{properties.combat_info.defense_rating}}{{else}}—{{/if}}</span>
|
||||
</div>
|
||||
<div class="vital-chip">
|
||||
<span class="vital-label">Condition Track</span>
|
||||
<span class="vital-value">
|
||||
{{#if properties.combat_info.condition_monitor}}
|
||||
{{properties.combat_info.condition_monitor}} Boxes
|
||||
{{else if properties.condition_monitor}}
|
||||
{{properties.condition_monitor.physical_boxes}}P / {{properties.condition_monitor.stun_boxes}}S
|
||||
{{else}}
|
||||
—
|
||||
{{/if}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Quote or Hook -->
|
||||
{{#if properties.hook}}
|
||||
<div class="hook-box">
|
||||
<strong>Hook:</strong> {{properties.hook}}
|
||||
</div>
|
||||
{{else if properties.quote}}
|
||||
<div class="quote-box">
|
||||
{{properties.quote}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- Skills & Gear Tags Preview -->
|
||||
<div class="tags-row">
|
||||
{{#if properties.primary_ranged_weapon}}
|
||||
<span class="pill-item">🔫 {{properties.primary_ranged_weapon.name}}</span>
|
||||
{{/if}}
|
||||
{{#if properties.primary_melee_weapon}}
|
||||
<span class="pill-item">⚔️ {{properties.primary_melee_weapon.name}}</span>
|
||||
{{/if}}
|
||||
{{#if properties.primary_armor}}
|
||||
<span class="pill-item">🛡️ {{properties.primary_armor.name}}</span>
|
||||
{{/if}}
|
||||
{{#each properties.skills}}
|
||||
{{#if (lt @index 3)}}
|
||||
<span class="pill-item">★ {{name}} {{rating}}</span>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
{{#each properties.gear}}
|
||||
{{#if (lt @index 2)}}
|
||||
<span class="pill-item">📦 {{name}}</span>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
<!-- Card Footer / Selection Action -->
|
||||
<div class="card-footer">
|
||||
<div class="selection-info">
|
||||
UUID: <small><code>{{uuid}}</code></small>
|
||||
</div>
|
||||
<button type="button" class="select-btn" onclick="alert('Selected: {{properties.alias}}')">
|
||||
Select {{#if (eq entity_type "npc")}}NPC{{else}}Runner{{/if}}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
633
rulesets/sr6/templates/character_sheet.css
Normal file
633
rulesets/sr6/templates/character_sheet.css
Normal file
@@ -0,0 +1,633 @@
|
||||
/* Shadowrun 6th World (SR6) Character Sheet Styles */
|
||||
:root {
|
||||
--sr6-magenta: #950C6B;
|
||||
--sr6-magenta-dark: #700650;
|
||||
--sr6-magenta-light: #fbeaf5;
|
||||
--sr6-border-pink: #A60067;
|
||||
--sr6-text-dark: #181717;
|
||||
--sr6-text-muted: #555555;
|
||||
--sr6-bg-page: #e8e7ec;
|
||||
--sr6-bg-card: rgba(255, 255, 255, 0.96);
|
||||
--sr6-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body.sr6-sheet-body {
|
||||
margin: 0;
|
||||
padding: 20px 10px;
|
||||
background-color: var(--sr6-bg-page);
|
||||
font-family: var(--sr6-font-family);
|
||||
color: var(--sr6-text-dark);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 24px;
|
||||
}
|
||||
|
||||
/* Page Container - Matches 8.5 x 11 in Aspect Ratio */
|
||||
.sr6-page {
|
||||
width: 100%;
|
||||
max-width: 960px;
|
||||
background: #ffffff;
|
||||
background-image: url('assets/_dev_sr6_circuit_bg.png');
|
||||
background-size: 100% auto;
|
||||
background-repeat: repeat-y;
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
|
||||
padding: 20px 24px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Header Banner */
|
||||
.sr6-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 2px solid var(--sr6-magenta);
|
||||
padding-bottom: 8px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.header-logo-area {
|
||||
flex: 0 0 420px;
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
.sr6-logo-img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
filter: drop-shadow(0 2px 4px rgba(0,0,0,0.15));
|
||||
}
|
||||
|
||||
.header-fields {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.header-field-line {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
border-bottom: 1.5px solid #222;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.header-field-line .field-label {
|
||||
font-size: 11px;
|
||||
font-weight: 800;
|
||||
letter-spacing: 0.5px;
|
||||
width: 90px;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
.header-field-line .field-value {
|
||||
flex: 1;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: #111;
|
||||
padding-left: 6px;
|
||||
min-height: 18px;
|
||||
}
|
||||
|
||||
/* Rows & Grid System */
|
||||
.sr6-row {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.row-top {
|
||||
grid-template-columns: 1.05fr 0.95fr;
|
||||
}
|
||||
|
||||
.row-mid {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
.row-lower {
|
||||
grid-template-columns: 1.15fr 0.85fr;
|
||||
}
|
||||
|
||||
.row-bottom {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
/* Page 2 Rows */
|
||||
.p2-row-weapons {
|
||||
grid-template-columns: 1.35fr 0.65fr;
|
||||
}
|
||||
|
||||
.p2-row-armor-matrix {
|
||||
grid-template-columns: 0.85fr 1.15fr;
|
||||
}
|
||||
|
||||
.p2-row-aug-veh {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
.p2-row-gear-magic {
|
||||
grid-template-columns: 0.75fr 1.25fr;
|
||||
}
|
||||
|
||||
.magic-powers-col {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
/* Card Styling */
|
||||
.sr6-card {
|
||||
background: var(--sr6-bg-card);
|
||||
border: 1.5px solid var(--sr6-border-pink);
|
||||
border-radius: 6px;
|
||||
padding: 8px 10px;
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.card-title {
|
||||
margin: 0 0 6px 0;
|
||||
font-size: 12px;
|
||||
font-weight: 900;
|
||||
letter-spacing: 0.8px;
|
||||
color: var(--sr6-magenta);
|
||||
text-transform: uppercase;
|
||||
border-bottom: 1px solid var(--sr6-magenta);
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
.card-content {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 6px;
|
||||
font-size: 11.5px;
|
||||
}
|
||||
|
||||
/* Data Items & Labels */
|
||||
.sub-label {
|
||||
font-size: 9.5px;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.3px;
|
||||
}
|
||||
|
||||
.val {
|
||||
font-size: 11.5px;
|
||||
font-weight: 600;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
.bold-highlight {
|
||||
font-weight: 800;
|
||||
color: var(--sr6-magenta);
|
||||
}
|
||||
|
||||
.data-row {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
border-bottom: 1px solid #ddd;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
.data-grid {
|
||||
display: grid;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.grid-2-col { grid-template-columns: 1fr 1fr; }
|
||||
.grid-3-col { grid-template-columns: 1fr 1fr 1fr; }
|
||||
.grid-4-col { grid-template-columns: 1fr 1fr 1fr 1fr; }
|
||||
|
||||
.data-item {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 4px;
|
||||
border-bottom: 1px solid #eee;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
.full-line {
|
||||
grid-column: 1 / -1;
|
||||
}
|
||||
|
||||
/* Core Combat Info */
|
||||
.combat-armor-row {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 6px;
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
.combat-armor-row .rtg-label {
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.combat-armor-row .rtg-val {
|
||||
font-weight: 800;
|
||||
color: var(--sr6-magenta);
|
||||
}
|
||||
|
||||
.combat-weapon-block {
|
||||
background: #fdfafd;
|
||||
border: 1px solid #e0cbe0;
|
||||
border-radius: 4px;
|
||||
padding: 4px 6px;
|
||||
}
|
||||
|
||||
.weapon-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 3px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.weapon-stats-strip {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
font-size: 10.5px;
|
||||
}
|
||||
|
||||
.ws-item {
|
||||
display: flex;
|
||||
gap: 3px;
|
||||
align-items: baseline;
|
||||
}
|
||||
|
||||
.combat-defense-strip {
|
||||
margin-top: auto;
|
||||
padding-top: 4px;
|
||||
border-top: 1.5px solid var(--sr6-magenta);
|
||||
}
|
||||
|
||||
/* Attributes Card */
|
||||
.attributes-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.attr-sub-col {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 3px;
|
||||
}
|
||||
|
||||
.attr-line {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: baseline;
|
||||
border-bottom: 1px solid #ddd;
|
||||
padding: 2px 2px;
|
||||
}
|
||||
|
||||
.attr-line.highlight-accent {
|
||||
background: var(--sr6-magenta-light);
|
||||
border-bottom: 1.5px solid var(--sr6-magenta);
|
||||
padding: 2px 4px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.attr-name {
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.attr-val {
|
||||
font-size: 12px;
|
||||
font-weight: 800;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
.attr-line.highlight-accent .attr-val {
|
||||
color: var(--sr6-magenta);
|
||||
font-size: 12.5px;
|
||||
}
|
||||
|
||||
/* Edge Points Tracker */
|
||||
.edge-tracker-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 3px 2px;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.edge-boxes {
|
||||
display: flex;
|
||||
gap: 3px;
|
||||
}
|
||||
|
||||
.edge-box {
|
||||
width: 11px;
|
||||
height: 11px;
|
||||
border: 1.2px solid #222;
|
||||
border-radius: 1px;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.edge-box.filled {
|
||||
background: var(--sr6-magenta);
|
||||
border-color: var(--sr6-magenta-dark);
|
||||
}
|
||||
|
||||
.edge-box.disabled {
|
||||
background: #bbb;
|
||||
border-color: #888;
|
||||
}
|
||||
|
||||
/* Condition Monitor */
|
||||
.monitor-tracks-wrapper {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 14px;
|
||||
}
|
||||
|
||||
.track-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.track-title {
|
||||
font-size: 10.5px;
|
||||
font-weight: 800;
|
||||
text-align: center;
|
||||
color: var(--sr6-text-dark);
|
||||
margin-bottom: 6px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.track-grid {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.monitor-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.row-boxes {
|
||||
display: flex;
|
||||
gap: 3px;
|
||||
}
|
||||
|
||||
.damage-box {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border: 1.4px solid #222;
|
||||
background: #ffffff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.damage-box.box-blacked-out {
|
||||
background: #222222;
|
||||
border-color: #111111;
|
||||
}
|
||||
|
||||
.damage-box.damage-filled {
|
||||
background: #ffd6e8;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.damage-box.damage-filled::after {
|
||||
content: "✕";
|
||||
color: var(--sr6-magenta);
|
||||
font-size: 14px;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
.penalty-tag {
|
||||
font-size: 10.5px;
|
||||
font-weight: 800;
|
||||
color: #111;
|
||||
width: 18px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.track-footnote {
|
||||
font-size: 8.5px;
|
||||
color: var(--sr6-text-muted);
|
||||
text-align: center;
|
||||
margin-top: 6px;
|
||||
line-height: 1.15;
|
||||
}
|
||||
|
||||
.monitor-cumulative-rule {
|
||||
font-size: 8.5px;
|
||||
color: #222;
|
||||
background: #fdf3f8;
|
||||
border: 1px solid #eecad9;
|
||||
border-radius: 3px;
|
||||
padding: 4px 6px;
|
||||
margin-top: 6px;
|
||||
line-height: 1.25;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Tables (Skills, Qualities, Contacts, Weapons, etc.) */
|
||||
.skills-table, .qualities-table, .contacts-table, .weapons-table, .sheet-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
font-size: 10.5px;
|
||||
}
|
||||
|
||||
.skills-table th, .qualities-table th, .contacts-table th, .weapons-table th, .sheet-table th {
|
||||
background: #f5f0f4;
|
||||
border-bottom: 1.5px solid var(--sr6-magenta);
|
||||
padding: 3px 4px;
|
||||
text-align: left;
|
||||
font-size: 9.5px;
|
||||
font-weight: 800;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.skills-table td, .qualities-table td, .contacts-table td, .weapons-table td, .sheet-table td {
|
||||
padding: 3px 4px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.col-rnk, .col-att, .col-dp, .col-cloy, .col-ccon {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.col-dp {
|
||||
font-weight: 800;
|
||||
color: var(--sr6-magenta);
|
||||
}
|
||||
|
||||
.skill-spec {
|
||||
font-size: 9.5px;
|
||||
color: var(--sr6-magenta);
|
||||
font-weight: normal;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.quality-badge {
|
||||
display: inline-block;
|
||||
font-size: 9px;
|
||||
font-weight: 700;
|
||||
padding: 1px 4px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.quality-badge.Positive {
|
||||
background: #e6f7ea;
|
||||
color: #1b6329;
|
||||
}
|
||||
|
||||
.quality-badge.Negative {
|
||||
background: #fde8e8;
|
||||
color: #a81c1c;
|
||||
}
|
||||
|
||||
/* Matrix Stats Card */
|
||||
.matrix-ratings-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 4px;
|
||||
background: #fbf5fa;
|
||||
padding: 4px 6px;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #ebd7e7;
|
||||
}
|
||||
|
||||
.mstat-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.mstat-item .sub-label {
|
||||
font-size: 8.5px;
|
||||
}
|
||||
|
||||
.mstat-item .val {
|
||||
font-size: 13px;
|
||||
font-weight: 800;
|
||||
color: var(--sr6-magenta);
|
||||
}
|
||||
|
||||
.matrix-devices-line, .matrix-programs-line {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 4px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.matrix-monitor-strip {
|
||||
margin-top: 4px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 3px;
|
||||
}
|
||||
|
||||
.matrix-boxes {
|
||||
display: flex;
|
||||
gap: 3px;
|
||||
}
|
||||
|
||||
.matrix-box {
|
||||
flex: 1;
|
||||
height: 18px;
|
||||
border: 1px solid #333;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 9px;
|
||||
font-weight: 700;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.matrix-box.damage-filled {
|
||||
background: var(--sr6-magenta);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* Vehicles & Drones */
|
||||
.vehicle-block {
|
||||
background: #fafafa;
|
||||
border: 1px solid #eee;
|
||||
padding: 6px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.empty-placeholder {
|
||||
font-size: 10px;
|
||||
font-style: italic;
|
||||
color: #888;
|
||||
text-align: center;
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
/* Page Footer */
|
||||
.sr6-page-footer {
|
||||
font-size: 8px;
|
||||
color: #777;
|
||||
text-align: center;
|
||||
margin-top: auto;
|
||||
padding-top: 6px;
|
||||
border-top: 1px solid #ddd;
|
||||
}
|
||||
|
||||
/* Print Handling */
|
||||
@media print {
|
||||
body.sr6-sheet-body {
|
||||
padding: 0;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.sr6-page {
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
max-width: 100%;
|
||||
padding: 12mm 14mm;
|
||||
page-break-after: always;
|
||||
}
|
||||
|
||||
.sr6-page.page-2 {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
}
|
||||
|
||||
/* Mobile Responsiveness */
|
||||
@media (max-width: 768px) {
|
||||
.sr6-row {
|
||||
grid-template-columns: 1fr !important;
|
||||
}
|
||||
|
||||
.header-logo-area {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.sr6-header {
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.header-fields {
|
||||
width: 100%;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
678
rulesets/sr6/templates/character_sheet.html
Normal file
678
rulesets/sr6/templates/character_sheet.html
Normal file
@@ -0,0 +1,678 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<base href="/rulesets/sr6/templates/">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{#if properties.alias}}{{properties.alias}}{{else if display_name}}{{display_name}}{{else}}Shadowrunner{{/if}} - Shadowrun 6e Character Sheet</title>
|
||||
<link rel="stylesheet" href="character_sheet.css">
|
||||
</head>
|
||||
<body class="sr6-sheet-body">
|
||||
|
||||
<!-- PAGE 1 -->
|
||||
<div class="sr6-page page-1">
|
||||
|
||||
<!-- Top Header Banner -->
|
||||
<header class="sr6-header">
|
||||
<div class="header-logo-area">
|
||||
<img src="assets/_dev_sr6_logo.png" alt="Shadowrun" class="sr6-logo-img">
|
||||
</div>
|
||||
<div class="header-fields">
|
||||
<div class="header-field-line">
|
||||
<span class="field-label">CHARACTER</span>
|
||||
<span class="field-value">{{#if properties.alias}}{{properties.alias}}{{else}}{{display_name}}{{/if}}</span>
|
||||
</div>
|
||||
<div class="header-field-line">
|
||||
<span class="field-label">PLAYER</span>
|
||||
<span class="field-value">{{properties.player}}</span>
|
||||
</div>
|
||||
<div class="header-field-line">
|
||||
<span class="field-label">NOTES</span>
|
||||
<span class="field-value">{{properties.notes}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Top Row: Personal Data & Core Combat Info -->
|
||||
<div class="sr6-row row-top">
|
||||
|
||||
<!-- Personal Data Box -->
|
||||
<section class="sr6-card personal-data-card">
|
||||
<h3 class="card-title">PERSONAL DATA</h3>
|
||||
<div class="card-content">
|
||||
<div class="data-row line-alias">
|
||||
<span class="sub-label">NAME/PRIMARY ALIAS</span>
|
||||
<span class="val">{{#if properties.alias}}{{properties.alias}}{{else}}{{display_name}}{{/if}}{{#if properties.real_name}} ({{properties.real_name}}){{/if}}</span>
|
||||
</div>
|
||||
<div class="data-grid grid-2-col">
|
||||
<div class="data-item"><span class="sub-label">Metatype</span> <span class="val">{{properties.metatype}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Ethnicity</span> <span class="val">{{properties.ethnicity}}</span></div>
|
||||
</div>
|
||||
<div class="data-grid grid-4-col">
|
||||
<div class="data-item"><span class="sub-label">Age</span> <span class="val">{{properties.age}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Sex</span> <span class="val">{{properties.sex}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Height</span> <span class="val">{{properties.height}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Weight</span> <span class="val">{{properties.weight}}</span></div>
|
||||
</div>
|
||||
<div class="data-grid grid-2-col">
|
||||
<div class="data-item"><span class="sub-label">Reputation</span> <span class="val">{{properties.reputation}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Heat</span> <span class="val">{{properties.heat}}</span></div>
|
||||
</div>
|
||||
<div class="data-grid grid-3-col">
|
||||
<div class="data-item"><span class="sub-label">Karma</span> <span class="val">{{properties.karma}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Total Karma</span> <span class="val">{{properties.total_karma}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Misc</span> <span class="val">{{properties.misc}}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Core Combat Info Box -->
|
||||
<section class="sr6-card combat-info-card">
|
||||
<h3 class="card-title">CORE COMBAT INFO</h3>
|
||||
<div class="card-content">
|
||||
<div class="combat-armor-row">
|
||||
<span class="sub-label">Primary Armor</span>
|
||||
<span class="val">{{properties.primary_armor.name}}</span>
|
||||
<span class="sub-label rtg-label">Rating</span>
|
||||
<span class="val rtg-val">{{properties.primary_armor.rating}}</span>
|
||||
</div>
|
||||
|
||||
<!-- Primary Ranged Weapon -->
|
||||
<div class="combat-weapon-block">
|
||||
<div class="weapon-header">
|
||||
<span class="sub-label">Primary Ranged Weapon</span>
|
||||
<span class="val">{{properties.primary_ranged_weapon.name}}</span>
|
||||
</div>
|
||||
<div class="weapon-stats-strip">
|
||||
<span class="ws-item"><span class="sub-label">DV</span> <span class="val">{{properties.primary_ranged_weapon.dv}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Mode</span> <span class="val">{{properties.primary_ranged_weapon.mode}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Close</span> <span class="val">{{properties.primary_ranged_weapon.attack_rating.close}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Near</span> <span class="val">{{properties.primary_ranged_weapon.attack_rating.near}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Far</span> <span class="val">{{properties.primary_ranged_weapon.attack_rating.far}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Extreme</span> <span class="val">{{properties.primary_ranged_weapon.attack_rating.extreme}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Ammo</span> <span class="val">{{properties.primary_ranged_weapon.ammo}}</span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Primary Melee Weapon -->
|
||||
<div class="combat-weapon-block">
|
||||
<div class="weapon-header">
|
||||
<span class="sub-label">Primary Melee Weapon</span>
|
||||
<span class="val">{{properties.primary_melee_weapon.name}}</span>
|
||||
</div>
|
||||
<div class="weapon-stats-strip">
|
||||
<span class="ws-item"><span class="sub-label">DV</span> <span class="val">{{properties.primary_melee_weapon.dv}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Close</span> <span class="val">{{properties.primary_melee_weapon.close}}</span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Bottom Defense & Unarmed AR -->
|
||||
<div class="data-grid grid-2-col combat-defense-strip">
|
||||
<div class="data-item"><span class="sub-label">Unarmed AR</span> <span class="val">{{properties.combat_info.unarmed_ar}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Defense Rating</span> <span class="val bold-highlight">{{properties.combat_info.defense_rating}}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Middle Row: Attributes & Condition Monitor -->
|
||||
<div class="sr6-row row-mid">
|
||||
|
||||
<!-- ATTRIBUTES -->
|
||||
<section class="sr6-card attributes-card">
|
||||
<h3 class="card-title">ATTRIBUTES</h3>
|
||||
<div class="card-content attributes-grid">
|
||||
|
||||
<!-- Physical & Mental Columns -->
|
||||
<div class="attr-sub-col">
|
||||
<div class="attr-line"><span class="attr-name">Body</span> <span class="attr-val">{{attr properties.attributes "body"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Agility</span> <span class="attr-val">{{attr properties.attributes "agility"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Reaction</span> <span class="attr-val">{{attr properties.attributes "reaction"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Strength</span> <span class="attr-val">{{attr properties.attributes "strength"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Willpower</span> <span class="attr-val">{{attr properties.attributes "willpower"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Logic</span> <span class="attr-val">{{attr properties.attributes "logic"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Intuition</span> <span class="attr-val">{{attr properties.attributes "intuition"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Charisma</span> <span class="attr-val">{{attr properties.attributes "charisma"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Edge</span> <span class="attr-val">{{attr properties.attributes "edge"}}</span></div>
|
||||
|
||||
<!-- Edge Points Tracker -->
|
||||
<div class="edge-tracker-row">
|
||||
<span class="sub-label">Edge Points</span>
|
||||
<div class="edge-boxes">
|
||||
{{#edgePointsBoxes (attr properties.attributes "edge") properties.attributes.edge_points}}
|
||||
<span class="edge-box {{#if filled}}filled{{/if}} {{#if disabled}}disabled{{/if}}"></span>
|
||||
{{/edgePointsBoxes}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="attr-line"><span class="attr-name">Unarmed AR</span> <span class="attr-val">{{properties.combat_info.unarmed_ar}}</span></div>
|
||||
</div>
|
||||
|
||||
<!-- Special & Derived Columns -->
|
||||
<div class="attr-sub-col">
|
||||
<div class="attr-line"><span class="attr-name">Essence</span> <span class="attr-val">{{properties.attributes.essence}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Magic/Resonance</span> <span class="attr-val">{{#if properties.attributes.magic}}{{properties.attributes.magic}}{{else if properties.attributes.resonance}}{{properties.attributes.resonance}}{{else}}—{{/if}}</span></div>
|
||||
<div class="attr-line highlight-accent"><span class="attr-name">Initiative</span> <span class="attr-val">{{properties.combat_info.initiative}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Matrix Initiative</span> <span class="attr-val">{{properties.combat_info.matrix_initiative}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Astral Initiative</span> <span class="attr-val">{{properties.combat_info.astral_initiative}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Composure</span> <span class="attr-val">{{properties.combat_info.composure}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Judge Intentions</span> <span class="attr-val">{{properties.combat_info.judge_intentions}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Memory</span> <span class="attr-val">{{properties.combat_info.memory}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Lift/Carry</span> <span class="attr-val">{{properties.combat_info.lift_carry}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Movement</span> <span class="attr-val">{{properties.combat_info.movement}}</span></div>
|
||||
<div class="attr-line highlight-accent"><span class="attr-name">Defense Rating</span> <span class="attr-val">{{properties.combat_info.defense_rating}}</span></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- CONDITION MONITOR -->
|
||||
<section class="sr6-card condition-monitor-card">
|
||||
<h3 class="card-title">CONDITION MONITOR</h3>
|
||||
<div class="card-content monitor-tracks-wrapper">
|
||||
|
||||
<!-- Physical Track -->
|
||||
<div class="track-column">
|
||||
<div class="track-title">Physical Damage Track</div>
|
||||
<div class="track-grid">
|
||||
{{#conditionMonitorRows (calcPhysicalBoxes (attr properties.attributes "body")) properties.condition_monitor.physical_damage 18}}
|
||||
<div class="monitor-row">
|
||||
<div class="row-boxes">
|
||||
{{#each boxes}}
|
||||
<div class="damage-box {{#if filled}}damage-filled{{/if}} {{#if blackedOut}}box-blacked-out{{/if}}">
|
||||
<div class="inner-box"></div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="penalty-tag">{{penalty}}</div>
|
||||
</div>
|
||||
{{/conditionMonitorRows}}
|
||||
</div>
|
||||
<div class="track-footnote">
|
||||
Characters have 8 + (Body ÷ 2, round up) boxes on the physical damage track; black out extra boxes.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Stun Track -->
|
||||
<div class="track-column">
|
||||
<div class="track-title">Stun Damage Track</div>
|
||||
<div class="track-grid">
|
||||
{{#conditionMonitorRows (calcStunBoxes (attr properties.attributes "willpower")) properties.condition_monitor.stun_damage 12}}
|
||||
<div class="monitor-row">
|
||||
<div class="row-boxes">
|
||||
{{#each boxes}}
|
||||
<div class="damage-box {{#if filled}}damage-filled{{/if}} {{#if blackedOut}}box-blacked-out{{/if}}">
|
||||
<div class="inner-box"></div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="penalty-tag">{{penalty}}</div>
|
||||
</div>
|
||||
{{/conditionMonitorRows}}
|
||||
</div>
|
||||
<div class="track-footnote">
|
||||
Characters have 8 + (Will ÷ 2, round up) boxes on the stun damage track; black out extra boxes.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Condition Monitor Cumulative Rule -->
|
||||
<div class="monitor-cumulative-rule">
|
||||
For every 3 boxes of damage on any one damage track, the character takes a −1 Dice Pool modifier on tests; these modifiers are cumulative within and across damage tracks.
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Lower Row: Skills & Qualities -->
|
||||
<div class="sr6-row row-lower">
|
||||
|
||||
<!-- SKILLS (2 Columns) -->
|
||||
<section class="sr6-card skills-card">
|
||||
<h3 class="card-title">SKILLS</h3>
|
||||
<div class="card-content skills-table-wrap">
|
||||
<table class="skills-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-skill">Skill</th>
|
||||
<th class="col-rnk">RNK</th>
|
||||
<th class="col-att">ATT</th>
|
||||
<th class="col-dp">DP</th>
|
||||
<th class="col-type">Type</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each properties.skills}}
|
||||
<tr>
|
||||
<td class="col-skill">
|
||||
<strong>{{this.name}}</strong>
|
||||
{{#if this.specialization}}<span class="skill-spec">({{this.specialization}})</span>{{/if}}
|
||||
{{#if this.expertise}}<span class="skill-spec">[{{this.expertise}}]</span>{{/if}}
|
||||
</td>
|
||||
<td class="col-rnk">{{this.rating}}</td>
|
||||
<td class="col-att">{{this.attribute}}</td>
|
||||
<td class="col-dp">{{#if this.dice_pool}}{{this.dice_pool}}{{else}}{{calcDicePool this ../properties.attributes}}{{/if}}</td>
|
||||
<td class="col-type">{{this.type}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- QUALITIES -->
|
||||
<section class="sr6-card qualities-card">
|
||||
<h3 class="card-title">QUALITIES</h3>
|
||||
<div class="card-content qualities-table-wrap">
|
||||
<table class="qualities-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-qname">Quality</th>
|
||||
<th class="col-qnotes">Notes</th>
|
||||
<th class="col-qtype">Type</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each properties.qualities}}
|
||||
<tr>
|
||||
<td class="col-qname"><strong>{{this.name}}</strong></td>
|
||||
<td class="col-qnotes">{{this.notes}}</td>
|
||||
<td class="col-qtype"><span class="quality-badge {{this.type}}">{{this.type}}</span></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Bottom Row: IDs/Lifestyles & Contacts -->
|
||||
<div class="sr6-row row-bottom">
|
||||
|
||||
<!-- IDs / LIFESTYLES / CURRENCY -->
|
||||
<section class="sr6-card currency-card">
|
||||
<h3 class="card-title">IDS / LIFESTYLES / CURRENCY</h3>
|
||||
<div class="card-content">
|
||||
<div class="data-grid grid-2-col">
|
||||
<div class="data-item"><span class="sub-label">Primary Lifestyle</span> <span class="val">{{properties.currency_and_ids.primary_lifestyle}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Nuyen</span> <span class="val bold-highlight">{{formatNuyen properties.currency_and_ids.nuyen}}</span></div>
|
||||
</div>
|
||||
<div class="data-item full-line">
|
||||
<span class="sub-label">Licenses</span>
|
||||
<span class="val">{{properties.currency_and_ids.licenses}}</span>
|
||||
</div>
|
||||
<div class="fake-ids-section">
|
||||
<div class="sub-label fake-id-header">Fake IDs / Related Lifestyles / Funds / Licenses</div>
|
||||
{{#if properties.currency_and_ids.fake_ids}}
|
||||
{{#each properties.currency_and_ids.fake_ids}}
|
||||
<div class="fake-id-entry">
|
||||
<strong>{{this.name}} (Rtg {{this.rating}})</strong> — {{this.lifestyle}} | {{this.funds}} | Licenses: {{this.licenses}}
|
||||
</div>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<div class="empty-memo-lines">
|
||||
<div class="memo-line"></div>
|
||||
<div class="memo-line"></div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- CONTACTS -->
|
||||
<section class="sr6-card contacts-card">
|
||||
<h3 class="card-title">CONTACTS</h3>
|
||||
<div class="card-content contacts-table-wrap">
|
||||
<table class="contacts-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-cname">Name</th>
|
||||
<th class="col-cloy">Loyalty</th>
|
||||
<th class="col-ccon">Connection</th>
|
||||
<th class="col-cnotes">Notes</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each properties.contacts}}
|
||||
<tr>
|
||||
<td class="col-cname"><strong>{{this.name}}</strong></td>
|
||||
<td class="col-cloy">{{this.loyalty}}</td>
|
||||
<td class="col-ccon">{{this.connection}}</td>
|
||||
<td class="col-cnotes">{{this.notes}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Page 1 Footer Legal Notice -->
|
||||
<footer class="sr6-page-footer">
|
||||
© 2019-20 The Topps Company, Inc. Shadowrun is a registered trademark of The Topps Company, Inc., in the United States and/or other countries. Permission given to copy for personal use.
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- PAGE 2 -->
|
||||
<div class="sr6-page page-2">
|
||||
|
||||
<!-- Top Header Banner (Page 2) -->
|
||||
<header class="sr6-header">
|
||||
<div class="header-logo-area">
|
||||
<img src="assets/_dev_sr6_logo.png" alt="Shadowrun" class="sr6-logo-img">
|
||||
</div>
|
||||
<div class="header-fields">
|
||||
<div class="header-field-line">
|
||||
<span class="field-label">CHARACTER</span>
|
||||
<span class="field-value">{{#if properties.alias}}{{properties.alias}}{{else}}{{display_name}}{{/if}}</span>
|
||||
</div>
|
||||
<div class="header-field-line">
|
||||
<span class="field-label">PLAYER</span>
|
||||
<span class="field-value">{{properties.player}}</span>
|
||||
</div>
|
||||
<div class="header-field-line">
|
||||
<span class="field-label">NOTES</span>
|
||||
<span class="field-value">{{properties.notes}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Top Row: Ranged Weapons & Melee Weapons -->
|
||||
<div class="sr6-row p2-row-weapons">
|
||||
|
||||
<!-- RANGED WEAPONS -->
|
||||
<section class="sr6-card ranged-weapons-card">
|
||||
<h3 class="card-title">RANGED WEAPONS</h3>
|
||||
<div class="card-content weapons-table-wrap">
|
||||
<table class="weapons-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Weapon</th>
|
||||
<th>DV</th>
|
||||
<th>Mode</th>
|
||||
<th>Close</th>
|
||||
<th>Near</th>
|
||||
<th>Far</th>
|
||||
<th>Extreme</th>
|
||||
<th>Ammo</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each properties.ranged_weapons}}
|
||||
<tr>
|
||||
<td><strong>{{this.name}}</strong>{{#if this.notes}} <small>({{this.notes}})</small>{{/if}}</td>
|
||||
<td>{{this.dv}}</td>
|
||||
<td>{{this.mode}}</td>
|
||||
<td>{{this.attack_rating.close}}</td>
|
||||
<td>{{this.attack_rating.near}}</td>
|
||||
<td>{{this.attack_rating.far}}</td>
|
||||
<td>{{this.attack_rating.extreme}}</td>
|
||||
<td>{{this.ammo}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- MELEE WEAPONS -->
|
||||
<section class="sr6-card melee-weapons-card">
|
||||
<h3 class="card-title">MELEE WEAPONS</h3>
|
||||
<div class="card-content weapons-table-wrap">
|
||||
<table class="weapons-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Weapon</th>
|
||||
<th>DV</th>
|
||||
<th>Close</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each properties.melee_weapons}}
|
||||
<tr>
|
||||
<td><strong>{{this.name}}</strong>{{#if this.notes}} <small>({{this.notes}})</small>{{/if}}</td>
|
||||
<td>{{this.dv}}</td>
|
||||
<td>{{this.close}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Mid Upper Row: Armor & Matrix Stats -->
|
||||
<div class="sr6-row p2-row-armor-matrix">
|
||||
|
||||
<!-- ARMOR -->
|
||||
<section class="sr6-card armor-card">
|
||||
<h3 class="card-title">ARMOR</h3>
|
||||
<div class="card-content">
|
||||
<table class="sheet-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Armor</th>
|
||||
<th>Rating</th>
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each properties.armor}}
|
||||
<tr>
|
||||
<td><strong>{{this.name}}</strong></td>
|
||||
<td>{{this.rating}}</td>
|
||||
<td>{{this.notes}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- MATRIX STATS -->
|
||||
<section class="sr6-card matrix-card">
|
||||
<h3 class="card-title">MATRIX STATS</h3>
|
||||
<div class="card-content">
|
||||
<div class="matrix-ratings-grid">
|
||||
<div class="mstat-item"><span class="sub-label">Attack</span> <span class="val">{{properties.matrix_stats.attack}}</span></div>
|
||||
<div class="mstat-item"><span class="sub-label">Sleaze</span> <span class="val">{{properties.matrix_stats.sleaze}}</span></div>
|
||||
<div class="mstat-item"><span class="sub-label">Data Proc.</span> <span class="val">{{properties.matrix_stats.data_processing}}</span></div>
|
||||
<div class="mstat-item"><span class="sub-label">Firewall</span> <span class="val">{{properties.matrix_stats.firewall}}</span></div>
|
||||
</div>
|
||||
<div class="matrix-devices-line">
|
||||
<span class="sub-label">Devices/DR:</span>
|
||||
<span class="val">{{properties.matrix_stats.device_name}} (DR {{properties.matrix_stats.device_rating}})</span>
|
||||
</div>
|
||||
<div class="matrix-programs-line">
|
||||
<span class="sub-label">Programs:</span>
|
||||
<span class="val">
|
||||
{{#if properties.matrix_stats.programs}}
|
||||
{{#each properties.matrix_stats.programs}}{{this}}{{#unless @last}}, {{/unless}}{{/each}}
|
||||
{{else}}
|
||||
None loaded
|
||||
{{/if}}
|
||||
</span>
|
||||
</div>
|
||||
<div class="matrix-monitor-strip">
|
||||
<span class="sub-label">Matrix Condition Monitor</span>
|
||||
<div class="matrix-boxes">
|
||||
{{#matrixMonitorBoxes 12 properties.matrix_stats.matrix_damage}}
|
||||
<div class="matrix-box {{#if filled}}damage-filled{{/if}}">{{index}}</div>
|
||||
{{/matrixMonitorBoxes}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Mid Lower Row: Augmentations & Vehicles -->
|
||||
<div class="sr6-row p2-row-aug-veh">
|
||||
|
||||
<!-- AUGMENTATIONS -->
|
||||
<section class="sr6-card aug-card">
|
||||
<h3 class="card-title">AUGMENTATIONS</h3>
|
||||
<div class="card-content">
|
||||
<table class="sheet-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Augmentation</th>
|
||||
<th>Rating</th>
|
||||
<th>Notes</th>
|
||||
<th>Essence</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each properties.augmentations}}
|
||||
<tr>
|
||||
<td><strong>{{this.name}}</strong></td>
|
||||
<td>{{this.rating}}</td>
|
||||
<td>{{this.notes}}</td>
|
||||
<td>{{this.essence}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- VEHICLE -->
|
||||
<section class="sr6-card vehicle-card">
|
||||
<h3 class="card-title">VEHICLE</h3>
|
||||
<div class="card-content">
|
||||
{{#if properties.vehicles}}
|
||||
{{#each properties.vehicles}}
|
||||
<div class="vehicle-block">
|
||||
<div class="data-grid grid-2-col">
|
||||
<div class="data-item"><span class="sub-label">Vehicle</span> <span class="val bold-highlight">{{this.name}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Handling</span> <span class="val">{{this.handling}}</span></div>
|
||||
</div>
|
||||
<div class="data-grid grid-2-col">
|
||||
<div class="data-item"><span class="sub-label">Acceleration</span> <span class="val">{{this.acceleration}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Speed Interval</span> <span class="val">{{this.speed_interval}}</span></div>
|
||||
</div>
|
||||
<div class="data-grid grid-2-col">
|
||||
<div class="data-item"><span class="sub-label">Top Speed</span> <span class="val">{{this.top_speed}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Body</span> <span class="val">{{this.body}}</span></div>
|
||||
</div>
|
||||
<div class="data-grid grid-2-col">
|
||||
<div class="data-item"><span class="sub-label">Armor</span> <span class="val">{{this.armor}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Pilot</span> <span class="val">{{this.pilot}}</span></div>
|
||||
</div>
|
||||
<div class="data-grid grid-2-col">
|
||||
<div class="data-item"><span class="sub-label">Sensor</span> <span class="val">{{this.sensor}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Seats</span> <span class="val">{{this.seats}}</span></div>
|
||||
</div>
|
||||
<div class="data-item full-line"><span class="sub-label">Notes</span> <span class="val">{{this.notes}}</span></div>
|
||||
</div>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<div class="empty-placeholder">— No vehicle / drone listed —</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Bottom Row: Gear & Spells/Powers -->
|
||||
<div class="sr6-row p2-row-gear-magic">
|
||||
|
||||
<!-- GEAR -->
|
||||
<section class="sr6-card gear-card">
|
||||
<h3 class="card-title">GEAR</h3>
|
||||
<div class="card-content">
|
||||
<table class="sheet-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Item</th>
|
||||
<th>Rating / Qty</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each properties.gear}}
|
||||
<tr>
|
||||
<td><strong>{{this.name}}</strong>{{#if this.notes}} <small>({{this.notes}})</small>{{/if}}</td>
|
||||
<td>{{#if this.rating}}Rtg {{this.rating}}{{else if this.quantity}}x{{this.quantity}}{{else}}—{{/if}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- SPELLS / COMPLEX FORMS & ADEPT POWERS -->
|
||||
<div class="magic-powers-col">
|
||||
|
||||
<!-- Spells / Complex Forms -->
|
||||
<section class="sr6-card spells-card">
|
||||
<h3 class="card-title">SPELLS / PREPARATIONS / RITUALS / COMPLEX FORMS</h3>
|
||||
<div class="card-content">
|
||||
<table class="sheet-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>S/P/R/CF</th>
|
||||
<th>Type/Target</th>
|
||||
<th>Range</th>
|
||||
<th>Duration</th>
|
||||
<th>Drain</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each properties.spells}}
|
||||
<tr>
|
||||
<td><strong>{{this.name}}</strong> <small>({{this.category}})</small></td>
|
||||
<td>{{this.type_target}}</td>
|
||||
<td>{{this.range}}</td>
|
||||
<td>{{this.duration}}</td>
|
||||
<td>{{this.drain}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Adept Powers or Other Abilities -->
|
||||
<section class="sr6-card adept-card">
|
||||
<h3 class="card-title">ADEPT POWERS OR OTHER ABILITIES</h3>
|
||||
<div class="card-content">
|
||||
<table class="sheet-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Level</th>
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each properties.adept_powers}}
|
||||
<tr>
|
||||
<td><strong>{{this.name}}</strong></td>
|
||||
<td>{{this.level}}</td>
|
||||
<td>{{this.notes}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Page 2 Footer Legal Notice -->
|
||||
<footer class="sr6-page-footer">
|
||||
© 2019-20 The Topps Company, Inc. Shadowrun is a registered trademark of The Topps Company, Inc., in the United States and/or other countries. Permission given to copy for personal use.
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
308
rulesets/sr6/templates/dossier_sheet.css
Normal file
308
rulesets/sr6/templates/dossier_sheet.css
Normal file
@@ -0,0 +1,308 @@
|
||||
/* Shadowrunner Dossier Stylesheet - Extends character_sheet.css */
|
||||
|
||||
.dossier-cover-page {
|
||||
padding: 36px 32px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
background: #ffffff url('assets/_dev_sr6_circuit_bg.png') repeat-y;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
.dossier-cover-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 2px solid var(--sr6-magenta);
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
|
||||
.dossier-logo {
|
||||
max-width: 280px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.dossier-tag {
|
||||
font-size: 13px;
|
||||
font-weight: 900;
|
||||
letter-spacing: 1.5px;
|
||||
color: var(--sr6-magenta);
|
||||
background: var(--sr6-magenta-light);
|
||||
padding: 6px 12px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid var(--sr6-magenta);
|
||||
}
|
||||
|
||||
.cover-hero-banner {
|
||||
background: rgba(24, 23, 23, 0.96);
|
||||
color: #ffffff;
|
||||
padding: 24px 28px;
|
||||
border-radius: 8px;
|
||||
border-left: 6px solid var(--sr6-magenta);
|
||||
box-shadow: 0 6px 20px rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
.hero-name {
|
||||
margin: 0;
|
||||
font-size: 38px;
|
||||
font-weight: 900;
|
||||
letter-spacing: 1px;
|
||||
text-transform: uppercase;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.hero-archetype {
|
||||
margin: 4px 0 16px 0;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
color: #e652a8;
|
||||
letter-spacing: 0.5px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.hero-quote {
|
||||
margin: 0;
|
||||
font-style: italic;
|
||||
font-size: 15px;
|
||||
line-height: 1.45;
|
||||
color: #dddddd;
|
||||
border-left: 3px solid var(--sr6-magenta);
|
||||
padding-left: 12px;
|
||||
}
|
||||
|
||||
.cover-pitch-card {
|
||||
background: var(--sr6-bg-card);
|
||||
border: 1.5px solid var(--sr6-border-pink);
|
||||
border-radius: 6px;
|
||||
padding: 16px 20px;
|
||||
}
|
||||
|
||||
.pitch-title {
|
||||
margin: 0 0 8px 0;
|
||||
font-size: 13px;
|
||||
font-weight: 900;
|
||||
color: var(--sr6-magenta);
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.pitch-body {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
color: #222;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.cover-quickstart-guide {
|
||||
background: #fdfafd;
|
||||
border: 1px solid #dcbdd8;
|
||||
border-radius: 6px;
|
||||
padding: 16px 20px;
|
||||
}
|
||||
|
||||
.cover-quickstart-guide h3 {
|
||||
margin: 0 0 6px 0;
|
||||
font-size: 13px;
|
||||
font-weight: 900;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
.cover-quickstart-guide p {
|
||||
margin: 0 0 12px 0;
|
||||
font-size: 12px;
|
||||
color: #444;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.quickstart-pills {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.quickstart-pills .pill {
|
||||
background: #ffffff;
|
||||
border: 1px solid var(--sr6-magenta);
|
||||
padding: 4px 10px;
|
||||
border-radius: 20px;
|
||||
font-size: 11.5px;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.quickstart-pills .pill strong {
|
||||
color: var(--sr6-magenta);
|
||||
}
|
||||
|
||||
/* Page 4 Profile Layout */
|
||||
.dossier-profile-header {
|
||||
border-bottom: 2px solid var(--sr6-magenta);
|
||||
padding-bottom: 6px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.profile-title {
|
||||
margin: 0;
|
||||
font-size: 20px;
|
||||
font-weight: 900;
|
||||
color: var(--sr6-magenta);
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.profile-subtitle {
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
color: #555;
|
||||
text-transform: uppercase;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.dossier-grid-layout {
|
||||
display: grid;
|
||||
grid-template-columns: 1.05fr 0.95fr;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.profile-col {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.dossier-section {
|
||||
background: var(--sr6-bg-card);
|
||||
border: 1.5px solid var(--sr6-border-pink);
|
||||
border-radius: 6px;
|
||||
padding: 10px 12px;
|
||||
}
|
||||
|
||||
.dossier-sec-title {
|
||||
margin: 0 0 6px 0;
|
||||
font-size: 11.5px;
|
||||
font-weight: 900;
|
||||
letter-spacing: 0.5px;
|
||||
color: var(--sr6-magenta);
|
||||
text-transform: uppercase;
|
||||
border-bottom: 1px solid #ebd7e7;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
.narrative-text {
|
||||
margin: 0;
|
||||
font-size: 11.5px;
|
||||
line-height: 1.5;
|
||||
color: #222;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
/* Sample Actions Table */
|
||||
.sample-actions-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
font-size: 10.5px;
|
||||
}
|
||||
|
||||
.sample-actions-table th {
|
||||
background: #f7eef5;
|
||||
border-bottom: 1.5px solid var(--sr6-magenta);
|
||||
padding: 3px 4px;
|
||||
text-align: left;
|
||||
font-size: 9.5px;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.sample-actions-table td {
|
||||
padding: 3px 4px;
|
||||
border-bottom: 1px solid #eee;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.action-pill {
|
||||
display: inline-block;
|
||||
font-size: 8.5px;
|
||||
font-weight: 800;
|
||||
padding: 1px 4px;
|
||||
border-radius: 2px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.action-pill.Major {
|
||||
background: #fde8e8;
|
||||
color: #a81c1c;
|
||||
}
|
||||
|
||||
.action-pill.Minor {
|
||||
background: #e8f0fe;
|
||||
color: #1a56db;
|
||||
}
|
||||
|
||||
.action-pill.Free {
|
||||
background: #e6f7ea;
|
||||
color: #1b6329;
|
||||
}
|
||||
|
||||
/* Vital Contacts List */
|
||||
.contacts-detail-list, .hangout-list, .downtime-list {
|
||||
margin: 0;
|
||||
padding-left: 16px;
|
||||
font-size: 11px;
|
||||
line-height: 1.4;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.contacts-detail-list li, .hangout-list li, .downtime-list li {
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.hangouts-downtime-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
/* Edge Boosts */
|
||||
.edge-boosts-grid {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.edge-boost-pill {
|
||||
background: #faf6f9;
|
||||
border: 1px solid #ebd7e7;
|
||||
border-radius: 4px;
|
||||
padding: 4px 6px;
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 6px;
|
||||
font-size: 10.5px;
|
||||
}
|
||||
|
||||
.edge-cost {
|
||||
font-size: 9.5px;
|
||||
font-weight: 900;
|
||||
color: #ffffff;
|
||||
background: var(--sr6-magenta);
|
||||
padding: 1px 5px;
|
||||
border-radius: 2px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.edge-name {
|
||||
font-weight: 700;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
.edge-boost-pill small {
|
||||
color: #555;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.dossier-cover-page {
|
||||
page-break-after: always;
|
||||
}
|
||||
.dossier-profile-page {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
}
|
||||
|
||||
429
rulesets/sr6/templates/dossier_sheet.html
Normal file
429
rulesets/sr6/templates/dossier_sheet.html
Normal file
@@ -0,0 +1,429 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<base href="/rulesets/sr6/templates/">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{#if properties.alias}}{{properties.alias}}{{else if display_name}}{{display_name}}{{else}}Shadowrunner{{/if}} - Runner Dossier</title>
|
||||
<link rel="stylesheet" href="character_sheet.css">
|
||||
<link rel="stylesheet" href="dossier_sheet.css">
|
||||
</head>
|
||||
<body class="sr6-sheet-body dossier-body">
|
||||
|
||||
<!-- DOSSIER PAGE 1: COVER SPLASH -->
|
||||
<div class="sr6-page dossier-cover-page">
|
||||
<header class="dossier-cover-header">
|
||||
<img src="assets/_dev_sr6_logo.png" alt="Shadowrun" class="dossier-logo">
|
||||
<div class="dossier-tag">SHADOWRUNNER DOSSIER</div>
|
||||
</header>
|
||||
|
||||
<div class="cover-hero-banner">
|
||||
<h1 class="hero-name">{{#if properties.alias}}{{properties.alias}}{{else}}{{display_name}}{{/if}}</h1>
|
||||
<h2 class="hero-archetype">{{properties.archetype}}</h2>
|
||||
|
||||
{{#if properties.quote}}
|
||||
<blockquote class="hero-quote">
|
||||
{{properties.quote}}
|
||||
</blockquote>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="cover-pitch-card">
|
||||
<h3 class="pitch-title">WHY PLAY THIS RUNNER?</h3>
|
||||
<p class="pitch-body">{{properties.pitch}}</p>
|
||||
</div>
|
||||
|
||||
<div class="cover-quickstart-guide">
|
||||
<h3>READ THIS FIRST</h3>
|
||||
<p>All you need to read are these pages, and with your GM, you can dive right into the shadows! Review your core stats, roll your dice pools, and unleash havoc across the sprawl.</p>
|
||||
<div class="quickstart-pills">
|
||||
<span class="pill">Metatype: <strong>{{properties.metatype}}</strong></span>
|
||||
<span class="pill">Initiative: <strong>{{properties.combat_info.initiative}}</strong></span>
|
||||
<span class="pill">Defense Rating: <strong>{{properties.combat_info.defense_rating}}</strong></span>
|
||||
<span class="pill">Primary DV: <strong>{{properties.primary_ranged_weapon.dv}}</strong></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="sr6-page-footer">
|
||||
© 2019-20 The Topps Company, Inc. Shadowrun is a registered trademark of The Topps Company, Inc. Permission given to copy for personal use.
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<!-- DOSSIER PAGES 2 & 3: THE RUNNER'S DATA & COMBAT RECORD -->
|
||||
<!-- (Embeds the full 2-page character sheet layout) -->
|
||||
<div class="sr6-page page-1">
|
||||
<header class="sr6-header">
|
||||
<div class="header-logo-area">
|
||||
<img src="assets/_dev_sr6_logo.png" alt="Shadowrun" class="sr6-logo-img">
|
||||
</div>
|
||||
<div class="header-fields">
|
||||
<div class="header-field-line">
|
||||
<span class="field-label">CHARACTER</span>
|
||||
<span class="field-value">{{#if properties.alias}}{{properties.alias}}{{else}}{{display_name}}{{/if}}</span>
|
||||
</div>
|
||||
<div class="header-field-line">
|
||||
<span class="field-label">PLAYER</span>
|
||||
<span class="field-value">{{properties.player}}</span>
|
||||
</div>
|
||||
<div class="header-field-line">
|
||||
<span class="field-label">NOTES</span>
|
||||
<span class="field-value">{{properties.notes}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Top Row: Personal Data & Core Combat Info -->
|
||||
<div class="sr6-row row-top">
|
||||
<section class="sr6-card personal-data-card">
|
||||
<h3 class="card-title">PERSONAL DATA</h3>
|
||||
<div class="card-content">
|
||||
<div class="data-row line-alias">
|
||||
<span class="sub-label">NAME/PRIMARY ALIAS</span>
|
||||
<span class="val">{{#if properties.alias}}{{properties.alias}}{{else}}{{display_name}}{{/if}}{{#if properties.real_name}} ({{properties.real_name}}){{/if}}</span>
|
||||
</div>
|
||||
<div class="data-grid grid-2-col">
|
||||
<div class="data-item"><span class="sub-label">Metatype</span> <span class="val">{{properties.metatype}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Ethnicity</span> <span class="val">{{properties.ethnicity}}</span></div>
|
||||
</div>
|
||||
<div class="data-grid grid-4-col">
|
||||
<div class="data-item"><span class="sub-label">Age</span> <span class="val">{{properties.age}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Sex</span> <span class="val">{{properties.sex}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Height</span> <span class="val">{{properties.height}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Weight</span> <span class="val">{{properties.weight}}</span></div>
|
||||
</div>
|
||||
<div class="data-grid grid-2-col">
|
||||
<div class="data-item"><span class="sub-label">Reputation</span> <span class="val">{{properties.reputation}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Heat</span> <span class="val">{{properties.heat}}</span></div>
|
||||
</div>
|
||||
<div class="data-grid grid-3-col">
|
||||
<div class="data-item"><span class="sub-label">Karma</span> <span class="val">{{properties.karma}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Total Karma</span> <span class="val">{{properties.total_karma}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Misc</span> <span class="val">{{properties.misc}}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sr6-card combat-info-card">
|
||||
<h3 class="card-title">CORE COMBAT INFO</h3>
|
||||
<div class="card-content">
|
||||
<div class="combat-armor-row">
|
||||
<span class="sub-label">Primary Armor</span>
|
||||
<span class="val">{{properties.primary_armor.name}}</span>
|
||||
<span class="sub-label rtg-label">Rating</span>
|
||||
<span class="val rtg-val">{{properties.primary_armor.rating}}</span>
|
||||
</div>
|
||||
<div class="combat-weapon-block">
|
||||
<div class="weapon-header">
|
||||
<span class="sub-label">Primary Ranged Weapon</span>
|
||||
<span class="val">{{properties.primary_ranged_weapon.name}}</span>
|
||||
</div>
|
||||
<div class="weapon-stats-strip">
|
||||
<span class="ws-item"><span class="sub-label">DV</span> <span class="val">{{properties.primary_ranged_weapon.dv}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Mode</span> <span class="val">{{properties.primary_ranged_weapon.mode}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Close</span> <span class="val">{{properties.primary_ranged_weapon.attack_rating.close}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Near</span> <span class="val">{{properties.primary_ranged_weapon.attack_rating.near}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Far</span> <span class="val">{{properties.primary_ranged_weapon.attack_rating.far}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Extreme</span> <span class="val">{{properties.primary_ranged_weapon.attack_rating.extreme}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Ammo</span> <span class="val">{{properties.primary_ranged_weapon.ammo}}</span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="combat-weapon-block">
|
||||
<div class="weapon-header">
|
||||
<span class="sub-label">Primary Melee Weapon</span>
|
||||
<span class="val">{{properties.primary_melee_weapon.name}}</span>
|
||||
</div>
|
||||
<div class="weapon-stats-strip">
|
||||
<span class="ws-item"><span class="sub-label">DV</span> <span class="val">{{properties.primary_melee_weapon.dv}}</span></span>
|
||||
<span class="ws-item"><span class="sub-label">Close</span> <span class="val">{{properties.primary_melee_weapon.close}}</span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-grid grid-2-col combat-defense-strip">
|
||||
<div class="data-item"><span class="sub-label">Unarmed AR</span> <span class="val">{{properties.combat_info.unarmed_ar}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Defense Rating</span> <span class="val bold-highlight">{{properties.combat_info.defense_rating}}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<!-- Middle Row: Attributes & Condition Monitor -->
|
||||
<div class="sr6-row row-mid">
|
||||
<section class="sr6-card attributes-card">
|
||||
<h3 class="card-title">ATTRIBUTES</h3>
|
||||
<div class="card-content attributes-grid">
|
||||
<div class="attr-sub-col">
|
||||
<div class="attr-line"><span class="attr-name">Body</span> <span class="attr-val">{{attr properties.attributes "body"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Agility</span> <span class="attr-val">{{attr properties.attributes "agility"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Reaction</span> <span class="attr-val">{{attr properties.attributes "reaction"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Strength</span> <span class="attr-val">{{attr properties.attributes "strength"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Willpower</span> <span class="attr-val">{{attr properties.attributes "willpower"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Logic</span> <span class="attr-val">{{attr properties.attributes "logic"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Intuition</span> <span class="attr-val">{{attr properties.attributes "intuition"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Charisma</span> <span class="attr-val">{{attr properties.attributes "charisma"}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Edge</span> <span class="attr-val">{{attr properties.attributes "edge"}}</span></div>
|
||||
<div class="edge-tracker-row">
|
||||
<span class="sub-label">Edge Points</span>
|
||||
<div class="edge-boxes">
|
||||
{{#edgePointsBoxes (attr properties.attributes "edge") properties.attributes.edge_points}}
|
||||
<span class="edge-box {{#if filled}}filled{{/if}} {{#if disabled}}disabled{{/if}}"></span>
|
||||
{{/edgePointsBoxes}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="attr-line"><span class="attr-name">Unarmed AR</span> <span class="attr-val">{{properties.combat_info.unarmed_ar}}</span></div>
|
||||
</div>
|
||||
<div class="attr-sub-col">
|
||||
<div class="attr-line"><span class="attr-name">Essence</span> <span class="attr-val">{{properties.attributes.essence}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Magic/Resonance</span> <span class="attr-val">{{#if properties.attributes.magic}}{{properties.attributes.magic}}{{else if properties.attributes.resonance}}{{properties.attributes.resonance}}{{else}}—{{/if}}</span></div>
|
||||
<div class="attr-line highlight-accent"><span class="attr-name">Initiative</span> <span class="attr-val">{{properties.combat_info.initiative}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Matrix Initiative</span> <span class="attr-val">{{properties.combat_info.matrix_initiative}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Astral Initiative</span> <span class="attr-val">{{properties.combat_info.astral_initiative}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Composure</span> <span class="attr-val">{{properties.combat_info.composure}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Judge Intentions</span> <span class="attr-val">{{properties.combat_info.judge_intentions}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Memory</span> <span class="attr-val">{{properties.combat_info.memory}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Lift/Carry</span> <span class="attr-val">{{properties.combat_info.lift_carry}}</span></div>
|
||||
<div class="attr-line"><span class="attr-name">Movement</span> <span class="attr-val">{{properties.combat_info.movement}}</span></div>
|
||||
<div class="attr-line highlight-accent"><span class="attr-name">Defense Rating</span> <span class="attr-val">{{properties.combat_info.defense_rating}}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sr6-card condition-monitor-card">
|
||||
<h3 class="card-title">CONDITION MONITOR</h3>
|
||||
<div class="card-content monitor-tracks-wrapper">
|
||||
<div class="track-column">
|
||||
<div class="track-title">Physical Damage Track</div>
|
||||
<div class="track-grid">
|
||||
{{#conditionMonitorRows (calcPhysicalBoxes (attr properties.attributes "body")) properties.condition_monitor.physical_damage 18}}
|
||||
<div class="monitor-row">
|
||||
<div class="row-boxes">
|
||||
{{#each boxes}}
|
||||
<div class="damage-box {{#if filled}}damage-filled{{/if}} {{#if blackedOut}}box-blacked-out{{/if}}"><div class="inner-box"></div></div>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="penalty-tag">{{penalty}}</div>
|
||||
</div>
|
||||
{{/conditionMonitorRows}}
|
||||
</div>
|
||||
<div class="track-footnote">8 + (Body ÷ 2, round up) boxes; black out extra boxes.</div>
|
||||
</div>
|
||||
<div class="track-column">
|
||||
<div class="track-title">Stun Damage Track</div>
|
||||
<div class="track-grid">
|
||||
{{#conditionMonitorRows (calcStunBoxes (attr properties.attributes "willpower")) properties.condition_monitor.stun_damage 12}}
|
||||
<div class="monitor-row">
|
||||
<div class="row-boxes">
|
||||
{{#each boxes}}
|
||||
<div class="damage-box {{#if filled}}damage-filled{{/if}} {{#if blackedOut}}box-blacked-out{{/if}}"><div class="inner-box"></div></div>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="penalty-tag">{{penalty}}</div>
|
||||
</div>
|
||||
{{/conditionMonitorRows}}
|
||||
</div>
|
||||
<div class="track-footnote">8 + (Will ÷ 2, round up) boxes; black out extra boxes.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="monitor-cumulative-rule">
|
||||
For every 3 boxes of damage on any track, take −1 Dice Pool modifier; modifiers are cumulative across tracks.
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<!-- Skills & Qualities -->
|
||||
<div class="sr6-row row-lower">
|
||||
<section class="sr6-card skills-card">
|
||||
<h3 class="card-title">SKILLS</h3>
|
||||
<div class="card-content skills-table-wrap">
|
||||
<table class="skills-table">
|
||||
<thead>
|
||||
<tr><th>Skill</th><th>RNK</th><th>ATT</th><th>DP</th><th>Type</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each properties.skills}}
|
||||
<tr>
|
||||
<td><strong>{{this.name}}</strong>{{#if this.specialization}} <span class="skill-spec">({{this.specialization}})</span>{{/if}}</td>
|
||||
<td>{{this.rating}}</td>
|
||||
<td>{{this.attribute}}</td>
|
||||
<td class="col-dp">{{#if this.dice_pool}}{{this.dice_pool}}{{else}}{{calcDicePool this ../properties.attributes}}{{/if}}</td>
|
||||
<td>{{this.type}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
<section class="sr6-card qualities-card">
|
||||
<h3 class="card-title">QUALITIES</h3>
|
||||
<div class="card-content qualities-table-wrap">
|
||||
<table class="qualities-table">
|
||||
<thead><tr><th>Quality</th><th>Notes</th><th>Type</th></tr></thead>
|
||||
<tbody>
|
||||
{{#each properties.qualities}}
|
||||
<tr>
|
||||
<td><strong>{{this.name}}</strong></td>
|
||||
<td>{{this.notes}}</td>
|
||||
<td><span class="quality-badge {{this.type}}">{{this.type}}</span></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<!-- Currency & Contacts -->
|
||||
<div class="sr6-row row-bottom">
|
||||
<section class="sr6-card currency-card">
|
||||
<h3 class="card-title">IDS / LIFESTYLES / CURRENCY</h3>
|
||||
<div class="card-content">
|
||||
<div class="data-grid grid-2-col">
|
||||
<div class="data-item"><span class="sub-label">Primary Lifestyle</span> <span class="val">{{properties.currency_and_ids.primary_lifestyle}}</span></div>
|
||||
<div class="data-item"><span class="sub-label">Nuyen</span> <span class="val bold-highlight">{{formatNuyen properties.currency_and_ids.nuyen}}</span></div>
|
||||
</div>
|
||||
<div class="data-item full-line"><span class="sub-label">Licenses</span> <span class="val">{{properties.currency_and_ids.licenses}}</span></div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="sr6-card contacts-card">
|
||||
<h3 class="card-title">CONTACTS</h3>
|
||||
<div class="card-content contacts-table-wrap">
|
||||
<table class="contacts-table">
|
||||
<thead><tr><th>Name</th><th>Loyalty</th><th>Connection</th><th>Notes</th></tr></thead>
|
||||
<tbody>
|
||||
{{#each properties.contacts}}
|
||||
<tr>
|
||||
<td><strong>{{this.name}}</strong></td>
|
||||
<td>{{this.loyalty}}</td>
|
||||
<td>{{this.connection}}</td>
|
||||
<td>{{this.notes}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<footer class="sr6-page-footer">
|
||||
© 2019-20 The Topps Company, Inc. Shadowrun is a registered trademark of The Topps Company, Inc.
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<!-- DOSSIER PAGE 4: PROFILE, TACTICS & SAMPLE ACTIONS -->
|
||||
<div class="sr6-page dossier-profile-page">
|
||||
<header class="dossier-profile-header">
|
||||
<h2 class="profile-title">{{#if properties.alias}}{{properties.alias}}{{else}}{{display_name}}{{/if}} // RUNNER PROFILE</h2>
|
||||
<div class="profile-subtitle">{{properties.archetype}}</div>
|
||||
</header>
|
||||
|
||||
<div class="dossier-grid-layout">
|
||||
|
||||
<!-- Left Narrative Column -->
|
||||
<div class="profile-col narrative-col">
|
||||
|
||||
<!-- Background -->
|
||||
<section class="dossier-section">
|
||||
<h3 class="dossier-sec-title">BACKGROUND</h3>
|
||||
<p class="narrative-text">{{properties.background}}</p>
|
||||
</section>
|
||||
|
||||
<!-- Preferred Tactics -->
|
||||
<section class="dossier-section">
|
||||
<h3 class="dossier-sec-title">PREFERRED TACTICS</h3>
|
||||
<p class="narrative-text">{{properties.preferred_tactics}}</p>
|
||||
</section>
|
||||
|
||||
<!-- Roleplaying Tips -->
|
||||
<section class="dossier-section">
|
||||
<h3 class="dossier-sec-title">ROLEPLAYING TIPS</h3>
|
||||
<p class="narrative-text">{{properties.roleplaying_tips}}</p>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Right Tactical Column -->
|
||||
<div class="profile-col tactical-col">
|
||||
|
||||
<!-- Tailored Sample Actions Table -->
|
||||
<section class="dossier-section sample-actions-section">
|
||||
<h3 class="dossier-sec-title">SAMPLE ACTIONS & DICE POOLS</h3>
|
||||
<table class="sample-actions-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Action</th>
|
||||
<th>Type</th>
|
||||
<th>DP</th>
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each properties.sample_actions}}
|
||||
<tr>
|
||||
<td><strong>{{this.action}}</strong></td>
|
||||
<td><span class="action-pill {{this.action_type}}">{{this.action_type}}</span></td>
|
||||
<td class="col-dp">{{this.dice_pool}}</td>
|
||||
<td><small>{{this.notes}}</small></td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<!-- Vital Contacts -->
|
||||
<section class="dossier-section">
|
||||
<h3 class="dossier-sec-title">VITAL CONTACTS</h3>
|
||||
<ul class="contacts-detail-list">
|
||||
{{#each properties.vital_contacts}}
|
||||
<li>
|
||||
<strong>{{this.name}}</strong> — <em>{{this.role}}</em>: {{this.description}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<!-- Favorite Hangouts & Downtime -->
|
||||
<div class="hangouts-downtime-grid">
|
||||
<section class="dossier-section">
|
||||
<h3 class="dossier-sec-title">FAVORITE HANGOUTS</h3>
|
||||
<ul class="hangout-list">
|
||||
{{#each properties.favorite_hangouts}}
|
||||
<li><strong>{{this.name}}</strong> ({{this.location}}): {{this.description}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="dossier-section">
|
||||
<h3 class="dossier-sec-title">DOWNTIME ACTIVITIES</h3>
|
||||
<ul class="downtime-list">
|
||||
{{#each properties.favorite_downtime_activities}}
|
||||
<li>{{this}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<!-- Edge Boosts -->
|
||||
{{#if properties.edge_boosts}}
|
||||
<section class="dossier-section edge-boosts-section">
|
||||
<h3 class="dossier-sec-title">RECOMMENDED EDGE BOOSTS</h3>
|
||||
<div class="edge-boosts-grid">
|
||||
{{#each properties.edge_boosts}}
|
||||
<div class="edge-boost-pill">
|
||||
<span class="edge-cost">{{this.cost}} Edge</span>
|
||||
<span class="edge-name">{{this.name}}</span>
|
||||
<small>{{this.description}}</small>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="sr6-page-footer">
|
||||
© 2019-20 The Topps Company, Inc. Shadowrun is a registered trademark of The Topps Company, Inc.
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user