Adv 2.0 D&D Phase 10 SUB3b-i: Mage L10/L15

Evocation L10 Overchannel maximizes leveled-spell dice (slot 1-5),
proxied as +50% SpellPreDamage on the queued cast. Self-damage drawback
omitted — our model queues at most one cast/fight, so the "first per
rest" exemption applies. L15 Sculptural Mastery skipped: AoE-only, no
allies in 1v1 (same shape as SUB2b skips).

Abjuration L10 Spell Resistance → DamageReduct *= 0.92 (8% generic DR
proxy; the saves-advantage half is inert since enemies rarely force
saves). L15 Spell Reflection → ReflectNext += 0.30, riding the existing
reflect channel since Counterspell is reaction-deferred to Phase 11.

Necromancy L10 Command Undead has no surface in 1v1 (no thrall/ally
system), re-fluffed as deeper authority over death amplifying the
harvest itself: GrimHarvest multipliers tick up by 1 (2x→3x non-necrotic,
3x→4x necrotic). L15 Improved Undead Thralls proxied as a permanent
skeletal minion via PetAttack channel (proc 0.30, dmg 6 + CON mod);
respects existing higher-pet dmg/proc.

11 new tests; full plugin suite green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
prosolis
2026-05-08 11:30:20 -07:00
parent a9ee7d0f70
commit fcd067b3c4
3 changed files with 199 additions and 3 deletions

View File

@@ -97,6 +97,19 @@ func applyMageSubclassSpellHooks(c *DnDCharacter, spell SpellDefinition, slotLev
}
mods.SpellPreDamage += bonus
}
// Phase 10 SUB3b-i — L10 Overchannel: maximize damage dice on a
// 1st5th-level spell. We don't track per-die rolls here (damage was
// rolled in the apply* path above), so we proxy max-vs-avg as +50%
// to SpellPreDamage on a leveled cast. 5e gates this to "1st5th
// level" — slot 6+ wouldn't get max dice — and includes a 2d12
// necrotic self-damage drawback per cast above the first per long
// rest. Self-damage is omitted here: in our model the Mage queues
// at most one cast per fight, so the "first per rest" exemption
// almost always applies. L15 Sculptural Mastery is AoE-friendly-fire
// only — skipped (same reason SUB2b skipped Sculpt Spells).
if c.Level >= 10 && slotLevel >= 1 && slotLevel <= 5 {
mods.SpellPreDamage = (mods.SpellPreDamage * 3) / 2
}
case SubclassNecromancy:
// L5 Grim Harvest stash — heal applied post-combat iff this spell
// landed the killing blow. Cantrip kills count as L1 for the heal