Adv 2.0 D&D Phase 10 SUB2b: Mage subclasses (Evocation/Abjuration/Necromancy)

Evocation L7 Empowered Evocation adds INT mod (min +1) to Mage evocation
spell damage. Abjuration L5 Arcane Ward grants a 2×level HP buffer
absorbed before player HP, +prof at L7. Necromancy L5 Grim Harvest heals
2× spell level on spell-kill (3× necrotic) via post-combat hook.

Sculpt Spells / Potent Cantrip / Inured to Undeath skipped — no allies,
save-half is already uniform, and no necrotic enemy damage to resist.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
prosolis
2026-05-08 10:42:35 -07:00
parent 4a5159ee14
commit 596e17dc73
6 changed files with 385 additions and 12 deletions

View File

@@ -89,7 +89,7 @@ func TestPersistDnDPostCombatSubclass_RagedIncrementsExhaustion(t *testing.T) {
if err := SaveDnDCharacter(c); err != nil {
t.Fatal(err)
}
if err := persistDnDPostCombatSubclass(c, true); err != nil {
if err := persistDnDPostCombatSubclass(c, true, CombatResult{}, CombatModifiers{}); err != nil {
t.Fatal(err)
}
got, _ := LoadDnDCharacter(uid)
@@ -97,7 +97,7 @@ func TestPersistDnDPostCombatSubclass_RagedIncrementsExhaustion(t *testing.T) {
t.Errorf("Exhaustion after raged combat = %d, want 1", got.Exhaustion)
}
// Second raged combat → 2.
if err := persistDnDPostCombatSubclass(got, true); err != nil {
if err := persistDnDPostCombatSubclass(got, true, CombatResult{}, CombatModifiers{}); err != nil {
t.Fatal(err)
}
got2, _ := LoadDnDCharacter(uid)
@@ -120,7 +120,7 @@ func TestPersistDnDPostCombatSubclass_NoRageNoIncrement(t *testing.T) {
if err := SaveDnDCharacter(c); err != nil {
t.Fatal(err)
}
if err := persistDnDPostCombatSubclass(c, false); err != nil {
if err := persistDnDPostCombatSubclass(c, false, CombatResult{}, CombatModifiers{}); err != nil {
t.Fatal(err)
}
got, _ := LoadDnDCharacter(uid)