Status System: - Add StatusData model with mechanical modifiers (damageDealt, healingReceived) - Add status item sheet with modifier configuration - Add status-bar.hbs for displaying status chips on actor sheets - Status chips show tooltip on hover, can be removed via click - Add 17 status items to compendium (Blinded, Burning, Charmed, etc.) - Frightened applies -2 damage dealt, Sickened applies -2 healing received Attack Roll Changes: - Separate attack and damage into two discrete rolls - Attack hit now shows "Roll Damage" button instead of auto-rolling - Button click rolls damage and updates the chat message in-place - Store weapon/attack data in message flags for later damage rolling - Fix favor/hinder and modifier preset buttons in attack dialog - Show individual damage dice results in chat card breakdown Mechanical Integration: - Add _applyStatusModifiers() to VagabondActor for aggregating status effects - Update getRollData() to include statusModifiers for roll formulas - Update damageRoll() to automatically apply damageDealt modifier - Update applyHealing() to respect healingReceived modifier 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
205 lines
4.4 KiB
JSON
205 lines
4.4 KiB
JSON
{
|
|
"id": "vagabond",
|
|
"title": "Vagabond RPG",
|
|
"description": "A Foundry VTT system implementation for Vagabond RPG - Pulp Fantasy Roleplaying",
|
|
"version": "0.1.0",
|
|
"compatibility": {
|
|
"minimum": "13",
|
|
"verified": "13",
|
|
"maximum": "13"
|
|
},
|
|
"authors": [
|
|
{
|
|
"name": "Cal Corum",
|
|
"email": "cal.corum@gmail.com"
|
|
}
|
|
],
|
|
"esmodules": ["module/vagabond.mjs"],
|
|
"styles": ["styles/vagabond.css"],
|
|
"themes": [
|
|
{
|
|
"name": "light",
|
|
"label": "VAGABOND.ThemeLight",
|
|
"default": true
|
|
},
|
|
{
|
|
"name": "dark",
|
|
"label": "VAGABOND.ThemeDark"
|
|
}
|
|
],
|
|
"languages": [
|
|
{
|
|
"lang": "en",
|
|
"name": "English",
|
|
"path": "lang/en.json"
|
|
}
|
|
],
|
|
"packs": [
|
|
{
|
|
"name": "ancestries",
|
|
"label": "Ancestries",
|
|
"path": "packs/ancestries",
|
|
"type": "Item",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "classes",
|
|
"label": "Classes",
|
|
"path": "packs/classes",
|
|
"type": "Item",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "spells",
|
|
"label": "Spells",
|
|
"path": "packs/spells",
|
|
"type": "Item",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "perks",
|
|
"label": "Perks",
|
|
"path": "packs/perks",
|
|
"type": "Item",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "weapons",
|
|
"label": "Weapons",
|
|
"path": "packs/weapons",
|
|
"type": "Item",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "armor",
|
|
"label": "Armor",
|
|
"path": "packs/armor",
|
|
"type": "Item",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "equipment",
|
|
"label": "Equipment",
|
|
"path": "packs/equipment",
|
|
"type": "Item",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "statuses",
|
|
"label": "Statuses",
|
|
"path": "packs/statuses",
|
|
"type": "Item",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "bestiary",
|
|
"label": "Bestiary",
|
|
"path": "packs/bestiary",
|
|
"type": "Actor",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
}
|
|
],
|
|
"packFolders": [
|
|
{
|
|
"name": "Vagabond RPG",
|
|
"sorting": "a",
|
|
"packs": [
|
|
"ancestries",
|
|
"classes",
|
|
"spells",
|
|
"perks",
|
|
"weapons",
|
|
"armor",
|
|
"equipment",
|
|
"statuses",
|
|
"bestiary"
|
|
]
|
|
}
|
|
],
|
|
"documentTypes": {
|
|
"Actor": {
|
|
"character": {
|
|
"htmlFields": [
|
|
"biography.appearance",
|
|
"biography.background",
|
|
"biography.personality",
|
|
"biography.notes"
|
|
]
|
|
},
|
|
"npc": {
|
|
"htmlFields": ["abilities.description", "loot", "gmNotes"]
|
|
}
|
|
},
|
|
"Item": {
|
|
"ancestry": {
|
|
"htmlFields": ["description"]
|
|
},
|
|
"class": {
|
|
"htmlFields": ["description"]
|
|
},
|
|
"spell": {
|
|
"htmlFields": ["description"]
|
|
},
|
|
"perk": {
|
|
"htmlFields": ["description"]
|
|
},
|
|
"weapon": {
|
|
"htmlFields": ["description", "relic.abilityDescription", "relic.lore"]
|
|
},
|
|
"armor": {
|
|
"htmlFields": ["description", "relic.abilityDescription", "relic.lore"]
|
|
},
|
|
"equipment": {
|
|
"htmlFields": ["description"]
|
|
},
|
|
"feature": {
|
|
"htmlFields": ["description"]
|
|
},
|
|
"status": {
|
|
"htmlFields": ["description"]
|
|
}
|
|
}
|
|
},
|
|
"socket": false,
|
|
"url": "https://github.com/calcorum/vagabond-rpg-foundryvtt",
|
|
"manifest": "https://github.com/calcorum/vagabond-rpg-foundryvtt/releases/latest/download/system.json",
|
|
"download": "https://github.com/calcorum/vagabond-rpg-foundryvtt/releases/latest/download/vagabond.zip",
|
|
"license": "LICENSE",
|
|
"readme": "README.md",
|
|
"bugs": "https://github.com/calcorum/vagabond-rpg-foundryvtt/issues",
|
|
"changelog": "CHANGELOG.md",
|
|
"primaryTokenAttribute": "resources.hp",
|
|
"secondaryTokenAttribute": "resources.mana",
|
|
"grid": {
|
|
"distance": 5,
|
|
"units": "ft"
|
|
}
|
|
}
|