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

93 lines
3.8 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": "vagabondClsMagus0",
"_key": "!items!vagabondClsMagus0",
"name": "Magus",
"type": "class",
"img": "icons/svg/lightning.svg",
"system": {
"description": "<p>Magi are spell-swords who blend martial prowess with arcane magic. Their ability to channel spells through their weapons makes them versatile combatants who excel in both melee and magical combat.</p>",
"keyStat": "reason",
"actionStyle": "arcana",
"zone": "frontline",
"trainedSkills": ["arcana", "brawl", "finesse"],
"startingPack": "<p>Knight or Scholar</p>",
"isCaster": true,
"progression": [
{
"level": 1,
"mana": 4,
"castingMax": 0,
"spellsKnown": 4,
"features": ["Arcane Warrior", "Spell Strike"]
},
{ "level": 2, "mana": 4, "castingMax": 0, "spellsKnown": 0, "features": ["Arcane Pool"] },
{ "level": 3, "mana": 4, "castingMax": 0, "spellsKnown": 1, "features": ["Perk"] },
{ "level": 4, "mana": 4, "castingMax": 0, "spellsKnown": 0, "features": ["Spell Combat"] },
{ "level": 5, "mana": 4, "castingMax": 0, "spellsKnown": 1, "features": ["Perk"] },
{ "level": 6, "mana": 4, "castingMax": 0, "spellsKnown": 0, "features": ["Counterstrike"] },
{ "level": 7, "mana": 4, "castingMax": 0, "spellsKnown": 1, "features": ["Perk"] },
{
"level": 8,
"mana": 4,
"castingMax": 0,
"spellsKnown": 0,
"features": ["Greater Spell Strike"]
},
{ "level": 9, "mana": 4, "castingMax": 0, "spellsKnown": 1, "features": ["Perk"] },
{ "level": 10, "mana": 4, "castingMax": 0, "spellsKnown": 0, "features": ["True Magus"] }
],
"features": [
{
"name": "Arcane Warrior",
"level": 1,
"description": "<p>You can Cast Spells using Arcana. <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 Magus Level), and the highest amount of Mana you can spend to Cast a Spell is equal to (Reason + half your Magus Level, round up). You regain spent Mana when you Rest.</p>",
"passive": true,
"changes": []
},
{
"name": "Spell Strike",
"level": 1,
"description": "<p>When you Cast a Spell that has a Range of Touch, you can deliver the Spell through a Melee Weapon attack. If the attack hits, the target is affected by both the attack and the Spell.</p>",
"passive": false,
"changes": []
},
{
"name": "Arcane Pool",
"level": 2,
"description": "<p>You can spend 1 Mana to enhance your weapon. For 1 minute, it counts as a (+1) Relic. This bonus increases by +1 at 6th and 10th Levels in this Class.</p>",
"passive": false,
"changes": []
},
{
"name": "Spell Combat",
"level": 4,
"description": "<p>When you take the Attack Action, you can also Cast a Spell with a Casting Time of 1 Action as part of that Action.</p>",
"passive": true,
"changes": []
},
{
"name": "Counterstrike",
"level": 6,
"description": "<p>When an Enemy within your Melee Reach Casts a Spell, you can make an attack against them as a Reaction.</p>",
"passive": false,
"changes": []
},
{
"name": "Greater Spell Strike",
"level": 8,
"description": "<p>When you use Spell Strike and hit, you can spend 2 Mana to maximize the Spell's damage dice instead of rolling them.</p>",
"passive": false,
"changes": []
},
{
"name": "True Magus",
"level": 10,
"description": "<p>When you use Spell Combat, you can Cast two Spells instead of one.</p>",
"passive": true,
"changes": []
}
],
"customResource": {}
}
}