Jump to content

Caster kits with alternative spellcasting rules


Recommended Posts

Would initialization work cleaner if it was done via a dialogue or an item?  I know a long time ago when I was playing around with the geomantic sorcerer one of the things I really tried to avoid was any complex local or global scripting if I could avoid it.

Separately, the initialization of the Shadow Magic kits was really robust.  Something about the timestop effect at the start of the game into a dialogue followed by a second timestop and dialogue to catch anything that wasn't dealt with the first time around seemed to catch most quirks.  I don't know enough to confirm if that approach would work for the arcanist or if the methods that the kits run on are too distinct from each other.

Link to comment

I don't think it's so bad to use an innate ability once upon starting the game.  (I question whether the random occurrence of a Timestop or two is "more immersive.")  And you should not really ever see the innate ability; it's only there in case something goes wrong with the normal initialization sequence.  In the current (yet to be released) version:

  • It  works reliably* when starting SoA
  • It works reliably* when starting TOB
  • It does not work when starting Black Pits 2 - but then again, very little does what with Beamdog's ridiculously overbearing spellcasting prevention. 

* "Reliably" means it worked five times straight in SoA, and three times straight in TOB.  I really don't have the time to repeat the character generation process for a mage a hundred times over.  It seems to be working consistently so I'm going to assume it works consistently.  My solution for BP2 is to manually tone down Beamdog's limitations by allowing the use of innate abilities - but only innate abilities that can bypass dead magic and casting failure, which are very, very few.  This is needed for at least two other mods of mine, so I'm sticking with it until a better solution arrives that can apply to all of them.

I'm happy with the current state of it - in fact I will probably export the current Arcanist mechanism to my other mods that have similarly complex startup sequences.  But I'm going to take a stab at fixing spell slot bonuses before I release an update.

EDIT - what would be rather easy to do: have the Rings of Wizardry and similar items give you a once/day Wondrous Recall ability, instead of passively increasing spell slots.  That would be just as good for Arcanists and vanilla sorcerers (who could use the recalled casting slot for any known/prepared spell), though annoying for vanilla mages (who would be bound by Wondrous Recall's stupid alphabetically-oriented recall priorities).

Maybe could leave the usual passive spell slot effect for mages, and give a Recall ability only usable by sorcerers and my spontaneous casters... stil a bit clunky though...

Edited by subtledoctor
Link to comment

On the Ring of Wizardry issue: you can store 0-15 in each proficiency byte. And no-one has fifteen spells. So can't you decide that PROF=5 codes zero spells, PROF=6 codes one spell, ... PROF=15 codes 10 spells? Then if you can cast 4 2nd level spells, the relevant proficiency is set to 9. If you put on a ring that adds 2 spells,  it increases to 11. If you cast all six spells, it drops to 5. Taking off the ring sets it to 3, which is still in the safe area.

Or, being more abstract and general about it: if the maximum permissible extra spells from a ring is R, and the maximum learnable number of spells is S, then PROF=R+x codes having x spells, and you just have to enforce 2R+S<16. There might be some issues with people wearing multiple extra-slot items, because you couldn't have two rings affecting the same ability - the crudest solution would be to add them all to ITEMEXCL, but there are subtler ways involving spellstates and 318. And you'd probably have to abandon the ring that doubles number of spells, or else recode it to add a fixed number.

 

Link to comment
44 minutes ago, DavidW said:

So can't you decide that PROF=5 codes zero spells, PROF=6 codes one spell, ... PROF=15 codes 10 spells?

Well, that's a head-smack idea.  I've been dancing around something similar for a while - stuff like, set the base number of slots higher and apply a repeating .EFF that reduces it, and simply have the Ring of Wizardry 206 block the reduction subspell.  But for some reason I didn't land on making the base number of slots differ from the base stat value.  I think.  Unless I did a long time ago and it didn't work with the code.  I'll have to check it out.  Thanks, though.

The kit nominally gets the same number of casting slots as a Dragon Disciple - 5 - plus up to two more for ability score bonuses (theoretically, if successfully integrated with that mod).  So theoretically I could set a stat value of 8 to represent 1 spell slot.  If it works, it will work.

Edited by subtledoctor
Link to comment

Ah, maybe not.  This is the problem: the code currently uses the bit values to record spell slots:

ADD_SPELL_EFFECT INT_VAR opcode = 326 parameter1 = (1 << 4) STR_VAR resource = ~slot1a~ END // +1
ADD_SPELL_EFFECT INT_VAR opcode = 326 parameter1 = (2 << 4) STR_VAR resource = ~slot1b~ END // +2
ADD_SPELL_EFFECT INT_VAR opcode = 326 parameter1 = (4 << 4) STR_VAR resource = ~slot1d~ END // +4
ADD_SPELL_EFFECT INT_VAR opcode = 326 parameter1 = (8 << 4) STR_VAR resource = ~slot1h~ END // +8

So if you should have 13 slots, it would apply slot1D (8) plus slot1C (4) plus slot1A (1).  Easy-peasy.

That uses relation #7, "binary more or equal/stat contains all bits of value."  With that relation and a opcode 233 effect increasing the stat by (13 << 4), three of those rows return true.  To off-set the spell slots from the stat value would require something like:

ADD_SPELL_EFFECT INT_VAR opcode = 326 parameter1 = (5 << 4) STR_VAR resource = ~slot1a~ END // +1
ADD_SPELL_EFFECT INT_VAR opcode = 326 parameter1 = (6 << 4) STR_VAR resource = ~slot1b~ END // +2
ADD_SPELL_EFFECT INT_VAR opcode = 326 parameter1 = (7 << 4) STR_VAR resource = ~slot1c~ END // +3
ADD_SPELL_EFFECT INT_VAR opcode = 326 parameter1 = (8 << 4) STR_VAR resource = ~slot1d~ END // +4
ADD_SPELL_EFFECT INT_VAR opcode = 326 parameter1 = (9 << 4) STR_VAR resource = ~slot1e~ END // +5
ADD_SPELL_EFFECT INT_VAR opcode = 326 parameter1 = (10 << 4) STR_VAR resource = ~slot1f~ END // +6
ADD_SPELL_EFFECT INT_VAR opcode = 326 parameter1 = (11 << 4) STR_VAR resource = ~slot1g~ END // +7
ADD_SPELL_EFFECT INT_VAR opcode = 326 parameter1 = (12 << 4) STR_VAR resource = ~slot1h~ END // +8

But I don't think that would work: you would have false positives for bit-matches and the number of slots would not be consistent and uniform as you cast spells.  I think.

Edited by subtledoctor
Link to comment

Massive post compiling list of issues mentioned elsewhere on this forum for easier bug/issue tracking.  Let me know which ones you consider dealt with and I'll strike them out.

Spoiler

1. Arcanist Kit

  • Kit description displayed correctly during character creation, however upon entering the game the character was shown as a Conjurer (both on the record screen and in the kit description).  This appears to be due to an engine issue.  Workaround listed here.
  • This is because you need to initialize the class so it works properly using the Initialize Arcanist innate button. This is a backup method, however initialization has been streamlined in v0.2
  • This is a fairly cumbersome and non-intuitive way of creating a character, especially since the kit description shown during character creation makes no mention of this. See previous bullet.
  • Even after initializing the kit via the innate and using the daily spell preparation innate, the kit description and name is still Conjurer. This appears to be due to an engine issue.  Workaround listed here.
  • ArcanistRecord.jpg.d4a932300ff5c972dd1f0e76c8bc7663.jpgArcanistKit.jpg.64031b87e479dd5ff59e2eb85d96a493.jpg
  • I'd recommend copying the kit initialization process used for Shadow Magic  It's also a janky alternate casting system, but ends up being pretty slick in how it is presented.  This means a person creating an Arcanist has a much more seamless experience and isn't confused about why their Arcanist has turned into a Conjurer. Subtledoctor has indicated he is working on cleaning this up. See previous bullet.
  • The Arcanist does not get innate cantrips or find familiar from Tome & Blood. Fixed in v0.2
  • The initialization at the start of the day erases the memorized spells.  The player is forced to rest in order to get their memorized spells back.  See the Shadow Mage for how this can be done (I believe it is done via a Wish effect). Subtledoctor has indicated he is working on cleaning this up.
  • Daily Spell Preparation doesn't do what it implies.  I would rename this to "Change prepared spells" and give a longer description on the right click description.  I can easily see a new player clicking that to prepare their daily spells and getting frustrated how it wipes out all their prepared spells.  Also, there's an order of operations here that matters a bit to avoid getting the wrong number of spontaneous spells (sometimes I only got one of each as though I was a prepared caster). More information on how this works needs to be given to the player. Being addressed, see below
  • After casting the Daily Spell Preparation innate (Change prepared spells), there needs to be some feedback provided via the chat box telling the player what has just been done and what they need to do to finalize their spell preparation and spell slot refresh. Fixed in v0.2
  • There's also some issues with how the Daily Spell Preparation needs to be activated in order to take advantage of new spell slots you gain when you level up.  Again, a lot of this can be fixed with better documentation on the right click, kit description, and feedback when the ability is used. Being addressed, see revised text below: Fixed in v0.2
    Quote

    Change Memorized Spells

    This ability allows the Arcanist to change which spells are prepared for the  next day. Upon using the ability, memorization slots will become available in the Arcanist's spellbook, and spellcasting will be disabled. After deciding which spells to memorize, the Arcanist must rest for 8 hours. Upon waking, spellcasting will be re-enabled, and the Arcanist will be unable to modify the contents of his memorization slots until the next time this ability is used.

  • Gets Refinements Mage Trueclass HLAs.  Seems to work properly. Not an issue.
  • At level 18, I picked up Dragon Breath from the HLA abilities.  I used the Daily Spell Preparation to memorize it in 2 x level 9 slots.  However, after resting I don't have any level 9 spell slots with which to cast Dragon Breath and it doesn't show up in my spontaneous spells I've prepared. Fixed in v0.2

I will continue to update this post as I continue my testing.

Edited by Caedwyr
Link to comment

GOT IT.  Finally.

Cripes, that was annoying.  But I seem to now really have Rings of Wizardry working to increase the Arcanist's casting slots, in addition to your memorization slots.  (Remember, with this kit there is a difference!  Before I did all this work, Rings of Wizardry increased the number of spells you can prepare; you could still only cast 5 spells per day, but with a Ring of Wizardry you could broaden the number of spells that you choose to cast.  It's like allowing a sorcerer to know an extra spell, instead of being able to cast an extra spell.  Certainly useful!  But, not the same.)

Now Rings of Wizardry will allow you to prepare an extra spell, and to cast an extra spell.  To be honest I would prefer to restrict them to the latter effect.  But given how much work this was and how likely further changes are to break it, I will not touch it anymore.  So lucky you: if you play an Arcanist Rings of Wizardry will be even more valuable than they are for most wizards.

3 hours ago, Caedwyr said:

Kit description displayed correctly during character creation, however upon entering the game the character was shown as a Conjurer

As discussed, this is a coincidence, not a bug.  Just down to the order of your installed mods and...  I'm not even sure it's a "bug"  in the game engine, as much as a quirk. It's just something that happens.  Quite annoying though, and it has struck me as well in my games, once  upon a time.  (Back then I had no idea why my mod kit was showing up as an Abjurer, and I just had to roll with it.)

What you can do, is be very aware of what kits are being installed into your game, and glance at kitlist.2da or kit.ids between mid installs.  When the last kit in the list has an IDS value of 0x00004039 or 0x00004079, and if the next kit is an arcane caster, then you can use the dummy kit installer mod to occupy the 0x4040 or 0x4080 spot with a placeholder.  I made that mod for other reasons, but it should work fine here.  Someday, something like can be shipped with every arcane kit mod, and block out the problematic spots automatically.  But for now, you have to be on guard.

3 hours ago, Caedwyr said:

This is because you need to initialize the class so it works properly using the Initialize Arcanist innate button.

You shouldn't need to do that.  But, you especially shouldn't need to do that in the soon-to-be-released v0.2 version of the mod, which has streamlined the initialization process.

3 hours ago, Caedwyr said:

The Arcanist does not get innate cantrips or find familiar from Tome & Blood

Fixed in v0.2.

3 hours ago, Caedwyr said:

Daily Spell Preparation... I would rename this to "Change prepared spells" and give a longer description... there needs to be some feedback provided via the chat box...

Done in v0.2.

3 hours ago, Caedwyr said:

At level 18, I picked up Dragon Breath from the HLA abilities.  I used the Daily Spell Preparation to memorize it in 2 x level 9 slots.  However, after resting I don't have any level 9 spell slots with which to cast Dragon Breath and it doesn't show up in my spontaneous spells I've prepared.

Fixed for v0.2.  And may I mention that getting to cast HLAs spontaneously, instead of using individual memorized slots for them, is quite powerful.  Can sorcerers do this??  I never played with a sorcerer in TOB.  But man, if so, that explains why people love them so much for high-level play.  Not for nothing I set HLAs to be innate abilities, instead of 9th-level spells.  Once per day is enough.

Edited by subtledoctor
Link to comment

Damn - Rings of Wizardry work, but I can still only allow them to give +1 bonus slot per item.  So the Ring of Acuity, I think, the one that gives

  • +2 2nd-level slots
  • +1 3rd-level slots
  • +1 4th-level slots

...That could only give +1 2nd-level slot to an Arcanist.  (And doubling your slots is right out the window.)  Sigh.  I think this is the best I can do.

Multiple items that give bonus slots can still work together, however.  So you can still stack a bunch of gear that gives you extra slots. 

Link to comment

@subtledoctor
Spontaneous casters can spontaneously cast their HLAs from their highest level spell slots.  It's been this way for about 20 years.  (For me, switching to a Wizard to prepare all HLAs felt like a downgrade.)

I'm also looking forward to multiclass Arcanists in a future release.

Edited by Endarire
Link to comment
55 minutes ago, Endarire said:

It's been this way for about 20 years

Well, like I say I never played one. Always felt like too much of a munchkin class. This just cements that feeling.

55 minutes ago, Endarire said:

For me, switching to a Wizard to prepare all HLAs felt like a downgrade.

It is very much a downgrade, yes. But, IMHO, much more reasonable. To me the answer was always very easy: have HLAs be once/day innate abilities rather than smushed in among 9th-level spells. This means you get them in addition to your 9th-level spells (bonus!), but can’t cheese them with a sorcerer’s spontaneous spell slots.

55 minutes ago, Endarire said:

I'm also looking forward to multiclass Arcanists

Don’t hold your breath. But OTOH you can actually have this now, with MnG Revised Bards. They are multiclass arcanists, with some spell school limitations (no invocation/necromancy) and without 8th/9th-level spells. 

Link to comment

Okay!  I have updated the Arcanist to version 0.2

This version fixes the initialization sequence when you start the game - mostly.  For some reason, very occasionally, the spell that initializes the Arcanist casting system, which is in the kit ability table, does not get applied.  I don't know why.  It is very rare.  In that case, you will have a little white-icon "initialize arcanist spellcasting" innate ability.  Click that and you will see your "cast spell" button disappear and reappear.  (That button disappearing and reappearing will happen every time you wake up from a long rest, as well; it is how you know you are ready to use the Arcanist-style casting for the rest of the day.)  Now you will be good to go.  In the vast majority of cases this does not happen; in those cases you will not need, and will not have, that innate ability. 

This also makes Rings of Wizardry and similar items (Ring of Acuity, Bronze Ioun Stone, Wondrous Gloves for all you thief->arcanists with UAI) work with the Arcanist kit.  These items will increase your memorization slots - the number of spells you can prepare each day - by the normal amount.  These items will increase your casting slots - the number of times you can cast the spells you have previously prepared - by ONE.  This is a technical limitation and there is no way, no how getting around it.  So that awesome ring you find near the Friendly Arm Inn will not double the amount of 1st-level spells you can cast, it will double the amount of spells you can memorize, and give you one extra chance to cast them.  On the other hand the effect of these items will stack, so you can wear the Bronze Ioun Stone and the Reaching Ring and you will get two extra 7th-level casts.

I'm not done - I still need to (hopefully) integrate this mod with Tome & Blood's ability-score based bonus spells.  That will be another way to boost the number of times you can cast spells each day.  And I need to port over a bunch of the code I've been wrangling with to Might & Guile, to make this properly compatible with MnG's revised Bards and gibe MnG the benefits of these recent improvements.  In fact I'm working on making this casting system actually portable, in drop-in functions that any mod could include and use.  We'll see - it's a bit complex.

Anyway even though there will be a version 0.3 coming down the pipe soon, I want to release this one now since it fixes several things that didn't work in v0.1.1.  So, enjoy.

Link to comment
1 hour ago, Endarire said:

did you also include the Circlet of Netheril

Yes, I was not content to handle items manually, most of the work was in setting it up to handle anything you throw at it - stuff from Item Upgrade, Item Revisions, the Robe of Enfusing and all those Mage Daggers in IWDEE, and anything added by other mods. They will all be limited to +1 bonus slot per specified level, but they will all work and will all stack with each other. 

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...