vagabond-rpg-foundryvtt/packs/_source/classes/sorcerer.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

108 lines
4.3 KiB
JSON
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"_id": "vagabondClsSorcer",
"_key": "!items!vagabondClsSorcer",
"name": "Sorcerer",
"type": "class",
"img": "icons/svg/fire.svg",
"system": {
"description": "<p>Sorcerers are innate spellcasters who channel raw magical power through force of personality. Their ability to manipulate their spells on the fly makes them devastating backline blasters.</p>",
"keyStat": "presence",
"actionStyle": "influence",
"zone": "backline",
"trainedSkills": ["influence", "arcana", "detect", "mysticism"],
"startingPack": "<p>Noble or Hermit</p>",
"isCaster": true,
"progression": [
{
"level": 1,
"mana": 4,
"castingMax": 0,
"spellsKnown": 4,
"features": ["Innate Magic", "Metamagic"]
},
{ "level": 2, "mana": 4, "castingMax": 0, "spellsKnown": 0, "features": ["Font of Magic"] },
{ "level": 3, "mana": 4, "castingMax": 0, "spellsKnown": 1, "features": ["Perk"] },
{
"level": 4,
"mana": 4,
"castingMax": 0,
"spellsKnown": 0,
"features": ["Sorcerous Origin"]
},
{ "level": 5, "mana": 4, "castingMax": 0, "spellsKnown": 1, "features": ["Perk"] },
{
"level": 6,
"mana": 4,
"castingMax": 0,
"spellsKnown": 0,
"features": ["Empowered Spells"]
},
{ "level": 7, "mana": 4, "castingMax": 0, "spellsKnown": 1, "features": ["Perk"] },
{ "level": 8, "mana": 4, "castingMax": 0, "spellsKnown": 0, "features": ["Origin Mastery"] },
{ "level": 9, "mana": 4, "castingMax": 0, "spellsKnown": 1, "features": ["Perk"] },
{
"level": 10,
"mana": 4,
"castingMax": 0,
"spellsKnown": 0,
"features": ["Arcane Apotheosis"]
}
],
"features": [
{
"name": "Innate Magic",
"level": 1,
"description": "<p>You can Cast Spells using Influence. <strong>Spells:</strong> You learn 4 Spells. You learn 1 other Spell every 2 Levels in this Class hereafter. <strong>Mana:</strong> Your Maximum Mana is equal to (4 × your Sorcerer Level), and the highest amount of Mana you can spend to Cast a Spell is equal to (Presence + half your Sorcerer Level, round up). You regain spent Mana when you Rest.</p>",
"passive": true,
"changes": []
},
{
"name": "Metamagic",
"level": 1,
"description": "<p>You can modify your Spells as you Cast them. Choose two Metamagic options: <strong>Careful</strong> (choose creatures to auto-succeed), <strong>Distant</strong> (double Range), <strong>Extended</strong> (double Duration), <strong>Quickened</strong> (Cast as Move), <strong>Subtle</strong> (no verbal/somatic), <strong>Twinned</strong> (Target second creature).</p>",
"passive": false,
"changes": []
},
{
"name": "Font of Magic",
"level": 2,
"description": "<p>You can convert Mana to Sorcery Points and vice versa. 1 Sorcery Point costs 1 Mana to create, and 1 Mana costs 2 Sorcery Points.</p>",
"passive": false,
"changes": []
},
{
"name": "Sorcerous Origin",
"level": 4,
"description": "<p>Choose an Origin that grants additional abilities: <strong>Draconic</strong> (resistance to one element, +1 Armor), <strong>Wild</strong> (random magical effects), or <strong>Shadow</strong> (see in darkness, teleport through shadows).</p>",
"passive": true,
"changes": []
},
{
"name": "Empowered Spells",
"level": 6,
"description": "<p>When you roll damage for a Spell, you can reroll a number of damage dice up to your Presence (minimum 1). You must use the new rolls.</p>",
"passive": false,
"changes": []
},
{
"name": "Origin Mastery",
"level": 8,
"description": "<p>Your Sorcerous Origin grants an improved ability based on your choice.</p>",
"passive": true,
"changes": []
},
{
"name": "Arcane Apotheosis",
"level": 10,
"description": "<p>You regain 4 Mana when you finish a Breather, and your Metamagic options cost 1 less Sorcery Point (minimum 1).</p>",
"passive": true,
"changes": []
}
],
"customResource": {
"name": "Sorcery Points",
"max": "@classes.sorcerer.level"
}
}
}