Add complete weapons compendium (43 weapons)
- Generate all 43 weapon JSON files with proper data model - Parse damage dice, grip types, ranges, properties from source - Convert values to copper (1g = 10s = 100c) - Map properties: Brawl, Brutal, Cleave, Entangle, Finesse, Keen, Long, Near, Ranged, Shield, Thrown - Calculate versatile damage (increased die size for 2H grip) - Assign damage types: blunt/piercing/slashing based on weapon type - Add validation script for future verification - All weapons validated against NoteDiscovery source Weapon categories: - Melee: 28 (swords, axes, hammers, polearms) - Ranged: 10 (bows, crossbows, firearms) - Brawl: 5 (caestus, gauntlet, katar, unarmed) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
fae29030a2
commit
49b60954fe
59
packs/_source/weapons/arbalest.json
Normal file
59
packs/_source/weapons/arbalest.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponArbalest",
|
||||
"name": "Arbalest",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A heavy crossbow with brutal stopping power.</p>",
|
||||
"damage": "1d8",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "ranged",
|
||||
"range": {
|
||||
"value": 120,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": true,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": true,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 700,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponArbalest",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/battleaxe.json
Normal file
59
packs/_source/weapons/battleaxe.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponBattleaxe",
|
||||
"name": "Battleaxe",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A versatile axe that can cleave through multiple foes.</p>",
|
||||
"damage": "1d6",
|
||||
"damageType": "slashing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "versatile",
|
||||
"versatileDamage": "1d8",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": true,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": true,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 700,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponBattleaxe",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/bottle-glass.json
Normal file
59
packs/_source/weapons/bottle-glass.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponBottleGlass",
|
||||
"name": "Bottle, glass",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A broken glass bottle that can be thrown.</p>",
|
||||
"damage": "1",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "finesse",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": true,
|
||||
"thrown": true,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 20,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponBottleGlass",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/buckler.json
Normal file
59
packs/_source/weapons/buckler.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponBuckler",
|
||||
"name": "Buckler",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A small shield that can be used as a finesse weapon.</p>",
|
||||
"damage": "1",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "finesse",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": true,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": true
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 500,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponBuckler",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/caestus.json
Normal file
59
packs/_source/weapons/caestus.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponCaestus",
|
||||
"name": "Caestus",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>Fighting gloves that leave hands free for brawling.</p>",
|
||||
"damage": "1d4",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "fist",
|
||||
"versatileDamage": "",
|
||||
"attackType": "brawl",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": true,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 200,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponCaestus",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/club.json
Normal file
59
packs/_source/weapons/club.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponClub",
|
||||
"name": "Club",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A simple bludgeoning weapon.</p>",
|
||||
"damage": "1d4",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 20,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponClub",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/crossbow-light.json
Normal file
59
packs/_source/weapons/crossbow-light.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponCrossbowLight",
|
||||
"name": "Crossbow, light",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A lightweight one-handed crossbow.</p>",
|
||||
"damage": "1d4",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "ranged",
|
||||
"range": {
|
||||
"value": 120,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": true,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 400,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponCrossbowLight",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/crossbow.json
Normal file
59
packs/_source/weapons/crossbow.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponCrossbow",
|
||||
"name": "Crossbow",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A standard crossbow for ranged combat.</p>",
|
||||
"damage": "1d6",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "ranged",
|
||||
"range": {
|
||||
"value": 120,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": true,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 800,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponCrossbow",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/dagger.json
Normal file
59
packs/_source/weapons/dagger.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponDagger",
|
||||
"name": "Dagger",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A versatile blade that can be thrown or used in close combat.</p>",
|
||||
"damage": "1d4",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "finesse",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": true,
|
||||
"thrown": true,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": true,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 100,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponDagger",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/flail.json
Normal file
59
packs/_source/weapons/flail.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponFlail",
|
||||
"name": "Flail",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A brutal weapon with a spiked ball on a chain.</p>",
|
||||
"damage": "1d8",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": true,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 200,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponFlail",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/garotte-wire.json
Normal file
59
packs/_source/weapons/garotte-wire.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponGarotteWire",
|
||||
"name": "Garotte wire",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A strangling wire used for stealthy takedowns.</p>",
|
||||
"damage": "0",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "finesse",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": true,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": true,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 100,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponGarotteWire",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/gauntlet.json
Normal file
59
packs/_source/weapons/gauntlet.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponGauntlet",
|
||||
"name": "Gauntlet",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>Armored gloves for brawling combat.</p>",
|
||||
"damage": "1d4",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "fist",
|
||||
"versatileDamage": "",
|
||||
"attackType": "brawl",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": true,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 200,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponGauntlet",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/greataxe.json
Normal file
59
packs/_source/weapons/greataxe.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponGreataxe",
|
||||
"name": "Greataxe",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A massive two-handed axe that cleaves and devastates.</p>",
|
||||
"damage": "1d10",
|
||||
"damageType": "slashing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": true,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": true,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 500,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponGreataxe",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/greatclub.json
Normal file
59
packs/_source/weapons/greatclub.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponGreatclub",
|
||||
"name": "Greatclub",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A massive bludgeoning weapon requiring two hands.</p>",
|
||||
"damage": "1d8",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 300,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponGreatclub",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/greatshield.json
Normal file
59
packs/_source/weapons/greatshield.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponGreatshield",
|
||||
"name": "Greatshield",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A massive shield that requires both hands but provides superior protection.</p>",
|
||||
"damage": "1d6",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": true
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 600,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponGreatshield",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/greatsword.json
Normal file
59
packs/_source/weapons/greatsword.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponGreatsword",
|
||||
"name": "Greatsword",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A massive blade that cleaves through armor and foes alike.</p>",
|
||||
"damage": "1d10",
|
||||
"damageType": "slashing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": true,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": true,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 800,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponGreatsword",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/handaxe.json
Normal file
59
packs/_source/weapons/handaxe.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponHandaxe",
|
||||
"name": "Handaxe",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A small axe that can be thrown.</p>",
|
||||
"damage": "1d4",
|
||||
"damageType": "slashing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": true,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 400,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponHandaxe",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/handgun.json
Normal file
59
packs/_source/weapons/handgun.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponHandgun",
|
||||
"name": "Handgun",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A one-handed firearm for ranged combat.</p>",
|
||||
"damage": "1d4",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "ranged",
|
||||
"range": {
|
||||
"value": 120,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": true,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 400,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponHandgun",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/javelin.json
Normal file
59
packs/_source/weapons/javelin.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponJavelin",
|
||||
"name": "Javelin",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A throwing spear designed for ranged combat.</p>",
|
||||
"damage": "1d4",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": true,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 100,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponJavelin",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/katar.json
Normal file
59
packs/_source/weapons/katar.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponKatar",
|
||||
"name": "Katar",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A punching dagger that leaves hands free for brawling and precise strikes.</p>",
|
||||
"damage": "1d4",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "fist",
|
||||
"versatileDamage": "",
|
||||
"attackType": "brawl",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": true,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": true,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": true,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 200,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponKatar",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/lance.json
Normal file
59
packs/_source/weapons/lance.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponLance",
|
||||
"name": "Lance",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>An extra-long cavalry weapon with keen striking power.</p>",
|
||||
"damage": "1d10",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 10,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": true,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": true,
|
||||
"long": true,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 3,
|
||||
"value": 900,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponLance",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/light-hammer.json
Normal file
59
packs/_source/weapons/light-hammer.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponLightHammer",
|
||||
"name": "Light hammer",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A small hammer that can be thrown.</p>",
|
||||
"damage": "1d6",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": true,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 100,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponLightHammer",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/longbow.json
Normal file
59
packs/_source/weapons/longbow.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponLongbow",
|
||||
"name": "Longbow",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A powerful bow with keen accuracy at long range.</p>",
|
||||
"damage": "1d8",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "ranged",
|
||||
"range": {
|
||||
"value": 120,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": true,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": true,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 800,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponLongbow",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/longsword.json
Normal file
59
packs/_source/weapons/longsword.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponLongsword",
|
||||
"name": "Longsword",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A versatile blade with keen cutting edge.</p>",
|
||||
"damage": "1d8",
|
||||
"damageType": "slashing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "versatile",
|
||||
"versatileDamage": "1d10",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": true,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": true,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 400,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponLongsword",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/lucerne.json
Normal file
59
packs/_source/weapons/lucerne.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponLucerne",
|
||||
"name": "Lucerne",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A brutal polearm with hammer and spike for devastating blows.</p>",
|
||||
"damage": "1d8",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 10,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": true,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": true,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": true,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 900,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponLucerne",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/mace.json
Normal file
59
packs/_source/weapons/mace.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponMace",
|
||||
"name": "Mace",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A simple bludgeoning weapon with a weighted head.</p>",
|
||||
"damage": "1d6",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 400,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponMace",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/morningstar.json
Normal file
59
packs/_source/weapons/morningstar.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponMorningstar",
|
||||
"name": "Morningstar",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A versatile spiked mace.</p>",
|
||||
"damage": "1d6",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "versatile",
|
||||
"versatileDamage": "1d8",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": true,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 800,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponMorningstar",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/net.json
Normal file
59
packs/_source/weapons/net.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponNet",
|
||||
"name": "Net",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A throwing net used to entangle and restrain foes.</p>",
|
||||
"damage": "0",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": true,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": true,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 100,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponNet",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/pike.json
Normal file
59
packs/_source/weapons/pike.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponPike",
|
||||
"name": "Pike",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A long spear that can brutalize and entangle opponents.</p>",
|
||||
"damage": "1d10",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 10,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": true,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": true,
|
||||
"entangle": true,
|
||||
"keen": false,
|
||||
"long": true,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 3,
|
||||
"value": 900,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponPike",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/poleblade.json
Normal file
59
packs/_source/weapons/poleblade.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponPoleblade",
|
||||
"name": "Poleblade",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A polearm with a keen blade for slashing strikes.</p>",
|
||||
"damage": "1d8",
|
||||
"damageType": "slashing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 10,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": true,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": true,
|
||||
"long": true,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 900,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponPoleblade",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/rifle.json
Normal file
59
packs/_source/weapons/rifle.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponRifle",
|
||||
"name": "Rifle",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A long-range firearm with cleaving power.</p>",
|
||||
"damage": "1d8",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "ranged",
|
||||
"range": {
|
||||
"value": 120,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": true,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": true,
|
||||
"near": false,
|
||||
"ranged": true,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 400,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponRifle",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/shortbow.json
Normal file
59
packs/_source/weapons/shortbow.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponShortbow",
|
||||
"name": "Shortbow",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A finesse bow with keen accuracy.</p>",
|
||||
"damage": "1d6",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "ranged",
|
||||
"range": {
|
||||
"value": 120,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": true,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": true,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": true,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 400,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponShortbow",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/shortsword.json
Normal file
59
packs/_source/weapons/shortsword.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponShortsword",
|
||||
"name": "Shortsword",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A light blade with finesse and keen edge.</p>",
|
||||
"damage": "1d6",
|
||||
"damageType": "slashing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "finesse",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": true,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": true,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 200,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponShortsword",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/shotgun-sawed-off.json
Normal file
59
packs/_source/weapons/shotgun-sawed-off.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponShotgunSawedOff",
|
||||
"name": "Shotgun, sawed-off",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A compact, one-handed shotgun with brutal stopping power.</p>",
|
||||
"damage": "1d8",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "ranged",
|
||||
"range": {
|
||||
"value": 30,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": true,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": true,
|
||||
"ranged": true,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 700,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponShotgunSawedOff",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/shotgun.json
Normal file
59
packs/_source/weapons/shotgun.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponShotgun",
|
||||
"name": "Shotgun",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A devastating firearm effective at medium range.</p>",
|
||||
"damage": "1d10",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "2h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "ranged",
|
||||
"range": {
|
||||
"value": 30,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": true,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": true,
|
||||
"ranged": true,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 700,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponShotgun",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/sling.json
Normal file
59
packs/_source/weapons/sling.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponSling",
|
||||
"name": "Sling",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A simple ranged weapon that launches stones.</p>",
|
||||
"damage": "1d4",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "ranged",
|
||||
"range": {
|
||||
"value": 120,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": true,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 50,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponSling",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/spear.json
Normal file
59
packs/_source/weapons/spear.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponSpear",
|
||||
"name": "Spear",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A versatile weapon that can be thrown or used to attack nearby foes.</p>",
|
||||
"damage": "1d6",
|
||||
"damageType": "piercing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": true,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": true,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 200,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponSpear",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/staff.json
Normal file
59
packs/_source/weapons/staff.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponStaff",
|
||||
"name": "Staff",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A versatile quarterstaff used with finesse.</p>",
|
||||
"damage": "1d4",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "versatile",
|
||||
"versatileDamage": "1d6",
|
||||
"attackType": "finesse",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": true,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": true,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 100,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponStaff",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/standard-shield.json
Normal file
59
packs/_source/weapons/standard-shield.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponStandardShield",
|
||||
"name": "Standard shield",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A versatile shield that can block ranged attacks and be thrown.</p>",
|
||||
"damage": "1d4",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "finesse",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": true,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": true,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": true,
|
||||
"shield": true
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 750,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponStandardShield",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/unarmed.json
Normal file
59
packs/_source/weapons/unarmed.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponUnarmed",
|
||||
"name": "Unarmed",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>Your bare fists and body used for combat.</p>",
|
||||
"damage": "1",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "fist",
|
||||
"versatileDamage": "",
|
||||
"attackType": "brawl",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": true,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": true,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 0,
|
||||
"value": 0,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponUnarmed",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/warhammer.json
Normal file
59
packs/_source/weapons/warhammer.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponWarhammer",
|
||||
"name": "Warhammer",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A versatile hammer that delivers brutal blows.</p>",
|
||||
"damage": "1d8",
|
||||
"damageType": "blunt",
|
||||
"bonusDamage": 0,
|
||||
"grip": "versatile",
|
||||
"versatileDamage": "1d10",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": false,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": true,
|
||||
"brutal": true,
|
||||
"entangle": false,
|
||||
"keen": false,
|
||||
"long": false,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 800,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponWarhammer",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/whip-chain.json
Normal file
59
packs/_source/weapons/whip-chain.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponWhipChain",
|
||||
"name": "Whip, chain",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A brutal chain whip with extended reach.</p>",
|
||||
"damage": "1d6",
|
||||
"damageType": "slashing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "melee",
|
||||
"range": {
|
||||
"value": 10,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": false,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": true,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": true,
|
||||
"entangle": true,
|
||||
"keen": false,
|
||||
"long": true,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 2,
|
||||
"value": 400,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponWhipChain",
|
||||
"reviewed": true
|
||||
}
|
||||
59
packs/_source/weapons/whip-leather.json
Normal file
59
packs/_source/weapons/whip-leather.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"_id": "vagabondWeaponWhipLeather",
|
||||
"name": "Whip, leather",
|
||||
"type": "weapon",
|
||||
"img": "icons/svg/sword.svg",
|
||||
"system": {
|
||||
"description": "<p>A flexible whip with extended reach and finesse.</p>",
|
||||
"damage": "1",
|
||||
"damageType": "slashing",
|
||||
"bonusDamage": 0,
|
||||
"grip": "1h",
|
||||
"versatileDamage": "",
|
||||
"attackType": "finesse",
|
||||
"range": {
|
||||
"value": 10,
|
||||
"units": "ft"
|
||||
},
|
||||
"properties": {
|
||||
"finesse": true,
|
||||
"thrown": false,
|
||||
"cleave": false,
|
||||
"reach": true,
|
||||
"loading": false,
|
||||
"brawl": false,
|
||||
"crude": false,
|
||||
"versatile": false,
|
||||
"brutal": false,
|
||||
"entangle": true,
|
||||
"keen": false,
|
||||
"long": true,
|
||||
"near": false,
|
||||
"ranged": false,
|
||||
"shield": false
|
||||
},
|
||||
"material": "mundane",
|
||||
"slots": 1,
|
||||
"value": 100,
|
||||
"equipped": false,
|
||||
"equippedHand": null,
|
||||
"quantity": 1,
|
||||
"attackBonus": 0,
|
||||
"critThreshold": null,
|
||||
"relic": {
|
||||
"isRelic": false,
|
||||
"tier": 1,
|
||||
"abilityName": "",
|
||||
"abilityDescription": "",
|
||||
"activationCost": "",
|
||||
"usesPerDay": 0,
|
||||
"usesRemaining": 0,
|
||||
"requiresAttunement": false,
|
||||
"attuned": false,
|
||||
"lore": ""
|
||||
}
|
||||
},
|
||||
"effects": [],
|
||||
"_key": "!items!vagabondWeaponWhipLeather",
|
||||
"reviewed": true
|
||||
}
|
||||
193
scripts/validate_weapons.py
Normal file
193
scripts/validate_weapons.py
Normal file
@ -0,0 +1,193 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Validate generated weapon JSONs against NoteDiscovery source."""
|
||||
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
def get_source_content():
|
||||
"""Fetch weapon source from NoteDiscovery."""
|
||||
result = subprocess.run(
|
||||
['python', 'client.py', 'read', 'gaming/vagabond-rpg/gear-weapons.md'],
|
||||
cwd=os.path.expanduser('~/.claude/skills/notediscovery'),
|
||||
capture_output=True,
|
||||
text=True
|
||||
)
|
||||
data = json.loads(result.stdout)
|
||||
return data['content']
|
||||
|
||||
def parse_source_weapons(text):
|
||||
"""Parse source weapon data into a dictionary."""
|
||||
weapons = {}
|
||||
|
||||
# Find the weapons table
|
||||
lines = text.split('\n')
|
||||
in_table = False
|
||||
|
||||
for line in lines:
|
||||
if '| Weapon | Damage | Grip |' in line:
|
||||
in_table = True
|
||||
continue
|
||||
if in_table and line.startswith('|---'):
|
||||
continue
|
||||
if in_table and line.startswith('|') and line.count('|') >= 7:
|
||||
parts = [p.strip() for p in line.split('|')[1:-1]]
|
||||
if len(parts) >= 7 and parts[0] != 'Weapon':
|
||||
name = parts[0]
|
||||
damage = parts[1]
|
||||
grip = parts[2]
|
||||
range_val = parts[3]
|
||||
properties = parts[4]
|
||||
value = parts[5]
|
||||
slots = parts[6]
|
||||
|
||||
weapons[name.lower()] = {
|
||||
'name': name,
|
||||
'damage': damage,
|
||||
'grip': grip,
|
||||
'range': range_val,
|
||||
'properties': properties,
|
||||
'value': value,
|
||||
'slots': slots
|
||||
}
|
||||
elif in_table and not line.startswith('|'):
|
||||
in_table = False
|
||||
|
||||
return weapons
|
||||
|
||||
def parse_value_to_copper(value_str):
|
||||
"""Convert value string to copper."""
|
||||
if not value_str or value_str == '-':
|
||||
return 0
|
||||
|
||||
total = 0
|
||||
# Match gold
|
||||
gold_match = re.search(r'(\d+)g', value_str)
|
||||
if gold_match:
|
||||
total += int(gold_match.group(1)) * 100 # 1g = 100c (1g = 10s, 1s = 10c)
|
||||
|
||||
# Match silver
|
||||
silver_match = re.search(r'(\d+)s', value_str)
|
||||
if silver_match:
|
||||
total += int(silver_match.group(1)) * 10 # 1s = 10c
|
||||
|
||||
return total
|
||||
|
||||
def compare_weapons(source, weapons_dir):
|
||||
"""Compare generated weapons against source."""
|
||||
discrepancies = []
|
||||
|
||||
for filename in sorted(os.listdir(weapons_dir)):
|
||||
if not filename.endswith('.json'):
|
||||
continue
|
||||
|
||||
filepath = os.path.join(weapons_dir, filename)
|
||||
with open(filepath, 'r') as f:
|
||||
generated = json.load(f)
|
||||
|
||||
weapon_name = generated['name']
|
||||
weapon_key = weapon_name.lower()
|
||||
|
||||
if weapon_key not in source:
|
||||
discrepancies.append({
|
||||
'weapon': weapon_name,
|
||||
'file': filename,
|
||||
'issue': f'NOT IN SOURCE - weapon "{weapon_name}" not found in source data'
|
||||
})
|
||||
continue
|
||||
|
||||
src = source[weapon_key]
|
||||
gen_system = generated.get('system', {})
|
||||
|
||||
issues = []
|
||||
|
||||
# Check damage
|
||||
src_damage = src['damage'].strip()
|
||||
gen_damage = gen_system.get('damage', '')
|
||||
# Normalize: "d6" == "1d6", "1" == "1"
|
||||
src_normalized = src_damage if src_damage.startswith('1') or src_damage == '1' else f"1{src_damage}"
|
||||
if src_normalized != gen_damage and src_damage != gen_damage:
|
||||
issues.append(f"DAMAGE: source='{src_damage}' vs generated='{gen_damage}'")
|
||||
|
||||
# Check grip
|
||||
grip_map = {'1H': '1h', '2H': '2h', 'V': 'versatile', 'F': 'fist'}
|
||||
expected_grip = grip_map.get(src['grip'].strip(), src['grip'].strip().lower())
|
||||
if expected_grip != gen_system.get('grip', ''):
|
||||
issues.append(f"GRIP: source='{src['grip']}' ({expected_grip}) vs generated='{gen_system.get('grip', '')}'")
|
||||
|
||||
# Check slots
|
||||
try:
|
||||
src_slots = int(src['slots'].strip()) if src['slots'].strip() not in ['-', ''] else 0
|
||||
gen_slots = gen_system.get('slots', 0)
|
||||
if src_slots != gen_slots:
|
||||
issues.append(f"SLOTS: source={src_slots} vs generated={gen_slots}")
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
# Check value
|
||||
src_value = parse_value_to_copper(src['value'])
|
||||
gen_value = gen_system.get('value', 0)
|
||||
if src_value != gen_value:
|
||||
issues.append(f"VALUE: source={src_value}c ({src['value']}) vs generated={gen_value}c")
|
||||
|
||||
if issues:
|
||||
discrepancies.append({
|
||||
'weapon': weapon_name,
|
||||
'file': filename,
|
||||
'issues': issues
|
||||
})
|
||||
|
||||
# Check for missing weapons
|
||||
generated_names = set()
|
||||
for filename in os.listdir(weapons_dir):
|
||||
if filename.endswith('.json'):
|
||||
with open(os.path.join(weapons_dir, filename), 'r') as f:
|
||||
data = json.load(f)
|
||||
generated_names.add(data['name'].lower())
|
||||
|
||||
for weapon_key in source:
|
||||
if weapon_key not in generated_names:
|
||||
discrepancies.append({
|
||||
'weapon': source[weapon_key]['name'],
|
||||
'file': 'MISSING',
|
||||
'issue': 'MISSING - no generated file for this weapon'
|
||||
})
|
||||
|
||||
return discrepancies
|
||||
|
||||
def main():
|
||||
print("Fetching source content from NoteDiscovery...")
|
||||
source_content = get_source_content()
|
||||
|
||||
print("Parsing source weapons...")
|
||||
source = parse_source_weapons(source_content)
|
||||
print(f"Found {len(source)} weapons in source\n")
|
||||
|
||||
weapons_dir = 'packs/_source/weapons'
|
||||
weapon_files = [f for f in os.listdir(weapons_dir) if f.endswith('.json')]
|
||||
print(f"Found {len(weapon_files)} generated weapon files\n")
|
||||
|
||||
print("Comparing weapons...")
|
||||
discrepancies = compare_weapons(source, weapons_dir)
|
||||
|
||||
if not discrepancies:
|
||||
print("\n" + "="*60)
|
||||
print("NO DISCREPANCIES FOUND")
|
||||
print(f"All {len(weapon_files)} weapons match source!")
|
||||
print("="*60)
|
||||
else:
|
||||
print("\n" + "="*60)
|
||||
print(f"FOUND {len(discrepancies)} WEAPON(S) WITH DISCREPANCIES")
|
||||
print("="*60 + "\n")
|
||||
for d in discrepancies:
|
||||
print(f"### {d['weapon']} ({d.get('file', 'N/A')})")
|
||||
if 'issue' in d:
|
||||
print(f" - {d['issue']}")
|
||||
if 'issues' in d:
|
||||
for issue in d['issues']:
|
||||
print(f" - {issue}")
|
||||
print()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Loading…
Reference in New Issue
Block a user