vagabond-rpg-foundryvtt/system.json
Cal Corum a7862bedd5 Implement class level-up system with Active Effects
- Add level-up dialog (ApplicationV2) showing features gained per level
- Class features with `changes` arrays auto-create Active Effects
- Valor I/II/III on Fighter reduces crit threshold cumulatively (-1/-2/-3)
- Perk selection UI in dialog (awaits perk compendium content)
- Fix duplicate item creation bug (was double drop handling)
- Configure proper dragDrop in ActorSheetV2 DEFAULT_OPTIONS
- Add ancestries and classes compendium packs with LevelDB format
- Docker compose PUID/PGID for proper file permissions

Key patterns established:
- Class progression stored in item.system.progression[]
- Features with changes[] become ActiveEffects on level-up
- applyClassFeatures() is idempotent (checks existing effects)
- updateClassFeatures() handles level changes incrementally

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 12:14:08 -06:00

142 lines
3.2 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"
}
}
],
"packFolders": [
{
"name": "Vagabond RPG",
"sorting": "a",
"packs": ["ancestries", "classes"]
}
],
"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"]
}
}
},
"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"
}
}