vagabond-rpg-foundryvtt/system.json
Cal Corum bf2cd92e93 Add Status item system and separate attack/damage rolls
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>
2025-12-17 14:36:57 -06:00

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"
}
}