prosolis
4a5159ee14
Adv 2.0 D&D Phase 10 SUB2-AT: Arcane Trickster spellcasting
...
Slots into the Phase 9 spell pipeline so an L5+ Rogue who picks Arcane
Trickster becomes a third-caster on the Mage list, INT-based.
- isSpellcaster(c) gate: full casters by class plus AT Rogue at L5+.
!cast / !spells now consult this; the cast class-gate also accepts
Mage-tagged spells when the player is an AT Rogue.
- subclassSpellSlots() / slotsForCharacter() / setSpellSlotsForCharacter()
layer subclass slots on top of the class baseline. AT pool: 3 L1 at
L5–6, 4 L1 + 2 L2 at L7+, +2 L3 at L13+ (third-caster table).
- spellcastingMod returns INT for AT Rogue.
- L7 Magical Ambush proxy: spellSaveDC bumps +2 once Rogue+AT hits L7,
standing in for "targets have disadvantage when casting from hidden"
since the one-shot combat layer doesn't model hidden state.
- ensureSpellsForCharacter bootstraps a Mage-list starter spellbook
(minor_illusion, shocking_grasp, magic_missile, shield, sleep at L5;
mirror_image + misty_step at L7+; hypnotic_pattern at L13+) and
refreshes the slot pool on level/subclass change.
- applySubclassChoice runs ensureSpellsForCharacter for AT so the
spellbook is provisioned at selection time (idempotent).
- !cast clamps upcasts to highestAvailableSlotForChar when AT, since
third-caster's slot ceiling lags behind the spell list.
Tests added: AT spellcaster gate (L5 cutoff, non-AT Rogue rejected), INT
mod, subclass slot pool by tier, L7 ambush DC bump, ensureSpells default
list (all on Mage list, slots correct), end-to-end !cast queues
magic_missile for AT Rogue, !cast rejects plain Thief Rogue.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-09 14:25:21 -07:00
..
2026-04-18 01:06:50 -07:00
2026-04-26 07:57:31 -07:00
2026-05-09 14:25:21 -07:00
2026-04-18 01:05:22 -07:00
2026-04-18 01:05:22 -07:00
2026-04-18 01:05:22 -07:00
2026-04-08 17:04:40 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-04-26 07:57:31 -07:00
2026-05-09 14:25:21 -07:00
2026-04-08 15:50:28 -07:00
2026-04-18 01:05:22 -07:00
2026-05-09 14:25:21 -07:00
2026-04-28 22:36:52 -07:00
2026-05-09 14:25:21 -07:00
2026-04-05 17:04:03 -07:00
2026-04-05 17:04:03 -07:00
2026-03-27 21:26:19 -07:00
2026-04-28 22:37:04 -07:00
2026-04-10 16:50:49 -07:00
2026-04-08 00:24:51 -07:00
2026-04-24 22:23:58 -07:00
2026-04-08 23:01:39 -07:00
2026-04-10 16:50:49 -07:00
2026-04-05 17:04:03 -07:00
2026-04-05 17:04:03 -07:00
2026-04-05 17:04:03 -07:00
2026-03-26 09:22:02 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-04-08 15:31:25 -07:00
2026-03-27 21:26:19 -07:00
2026-04-18 01:07:25 -07:00
2026-04-10 16:50:49 -07:00
2026-04-24 22:23:58 -07:00
2026-04-24 22:23:58 -07:00
2026-04-10 16:50:49 -07:00
2026-05-09 14:25:21 -07:00
2026-04-10 16:50:49 -07:00
2026-04-10 16:50:49 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-04-28 23:13:09 -07:00
2026-05-09 14:25:21 -07:00
2026-04-08 15:50:28 -07:00
2026-05-09 14:25:21 -07:00
2026-04-08 22:41:21 -07:00
2026-05-09 14:25:21 -07:00
2026-04-18 01:07:25 -07:00
2026-05-09 14:25:21 -07:00
2026-04-08 17:04:40 -07:00
2026-03-31 18:47:49 -07:00
2026-04-08 17:04:40 -07:00
2026-03-27 21:26:19 -07:00
2026-03-26 09:22:02 -07:00
2026-04-18 01:07:25 -07:00
2026-04-18 01:07:25 -07:00
2026-04-18 01:05:22 -07:00
2026-05-09 14:25:21 -07:00
2026-04-18 01:05:22 -07:00
2026-05-09 14:25:21 -07:00
2026-04-18 01:05:22 -07:00
2026-04-18 01:05:22 -07:00
2026-04-18 01:05:22 -07:00
2026-04-18 01:05:22 -07:00
2026-04-08 17:04:40 -07:00
2026-04-26 07:58:13 -07:00
2026-04-26 09:01:29 -07:00
2026-05-09 14:25:21 -07:00
2026-04-28 22:28:23 -07:00
2026-04-28 22:28:23 -07:00
2026-05-09 14:25:21 -07:00
2026-04-26 09:14:45 -07:00
2026-04-26 19:12:22 -07:00
2026-04-28 22:28:23 -07:00
2026-04-26 07:58:13 -07:00
2026-04-28 22:28:23 -07:00
2026-03-26 09:22:02 -07:00
2026-04-08 17:04:40 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-04-08 17:04:40 -07:00
2026-04-18 16:06:28 -07:00
2026-03-26 09:22:02 -07:00
2026-03-26 23:38:06 -07:00
2026-03-26 23:38:06 -07:00
2026-03-26 23:38:06 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-03-26 09:22:02 -07:00
2026-05-09 14:25:21 -07:00
2026-03-26 09:22:02 -07:00
2026-04-08 17:04:40 -07:00
2026-04-18 01:07:25 -07:00
2026-04-08 17:04:40 -07:00
2026-03-26 09:22:02 -07:00
2026-03-22 10:09:57 -07:00
2026-04-18 01:06:50 -07:00
2026-03-26 09:22:02 -07:00
2026-03-26 09:22:02 -07:00
2026-05-09 14:25:21 -07:00
2026-03-26 09:22:02 -07:00
2026-03-26 09:22:02 -07:00
2026-04-18 14:11:59 -07:00
2026-04-18 01:06:50 -07:00
2026-04-18 14:11:59 -07:00
2026-04-18 14:11:59 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-03-10 16:58:15 -07:00
2026-04-26 10:09:32 -07:00
2026-04-08 17:04:40 -07:00
2026-04-08 17:04:40 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-03-27 21:26:19 -07:00
2026-03-27 11:55:47 -07:00
2026-03-30 17:11:45 -07:00
2026-04-08 17:04:40 -07:00
2026-03-26 09:22:02 -07:00
2026-04-08 17:04:40 -07:00
2026-05-09 14:25:21 -07:00
2026-03-30 17:11:45 -07:00
2026-03-11 00:45:25 -07:00
2026-03-08 18:25:18 -07:00
2026-03-27 11:55:47 -07:00
2026-03-26 09:22:02 -07:00
2026-03-10 18:08:05 -07:00
2026-04-08 17:04:40 -07:00
2026-03-08 18:25:18 -07:00
2026-04-18 01:07:25 -07:00
2026-04-08 17:04:40 -07:00
2026-03-26 09:22:02 -07:00
2026-03-11 00:45:25 -07:00
2026-04-10 16:50:49 -07:00
2026-03-08 18:25:18 -07:00
2026-04-08 17:04:40 -07:00
2026-04-18 01:07:25 -07:00
2026-03-29 20:51:28 -07:00
2026-03-29 09:27:00 -07:00
2026-04-18 01:07:25 -07:00
2026-04-08 17:04:40 -07:00
2026-04-08 17:04:40 -07:00
2026-04-26 10:09:32 -07:00
2026-03-11 00:45:25 -07:00
2026-03-29 16:24:59 -07:00
2026-03-26 09:22:02 -07:00
2026-04-01 18:58:33 -07:00
2026-04-10 16:50:49 -07:00
2026-03-29 16:24:59 -07:00
2026-04-18 01:07:25 -07:00
2026-04-08 17:04:40 -07:00
2026-04-08 15:24:49 -07:00