Jump to content

[v35.6] Innate sequencers component ignores sorcerer kits (update2: sequencers are unobtainable by sorcerers)


Recommended Posts

Post title. This is just filler.

 

Update: not an issue, see reply by DavidW. This component is working as intended.

Update 2: Side effect (or intended?). This component makes sequencers/contingencies unobtainable by sorcerer kits. First mentioned in this post by jmerry. I confirmed it in-game myself as well.

--

After some quick testing, regular sorcerers can gain sequencers/contingencies, as they use the same table as mages. The effects use EFFs targeted at MAGE (class.ids), but that includes sorcerers. Sorcerer kits, including dragon disciple, won't get them, however, because the abilities from this component aren't added to their tables, by design.

There's some bugginess in BG2EE as well. If starting a new game in SoA with a single class mage or sorcerer, you won't get minor sequencer. If starting a new game in ToB, you get only Contingency and Chain Contingency (once you get level 9 spells).

Edited by Dan_P
Link to comment

So, a bit more in-depth on how this works. The file for the innate sequencers tweaks those spells, builds the "grant ability" spell, and then adds them to the ability tables with this:

   // apply the wraps to the CLAB files
   
   kit.edit_all[mage|clab_only:i=1]
   [
		k.kit_apply_powers{%string_mage%}
   ]
    kit.edit_all[bard|clab_only:i=1]
   [
		k.kit_apply_powers{%string_bard%}
   ]

All mage kits and all bard kits, including CLABMA01 and CLABBA01 which apply to the "base class" version. And here's the old version:

   // patch innates into kits and update the class text to describe the new innate powers

  // mages
   OUTER_SPRINT seq_desc_string @1000
   LAF edit_all_kits STR_VAR parent_class=mage editstring="%kit_edit_mage% patch_description_strref=>seq_desc" END
   ACTION_IF enhanced_edition BEGIN
      LAF edit_kit STR_VAR kit=dragon_disciple editstring="%kit_edit_mage% patch_description_strref=>seq_desc" END
   END

  // bards

  OUTER_SPRINT seq_desc_string @1001
  ACTION_IF VARIABLE_IS_SET $spell_level_to_caster_level("bard" "7") BEGIN
     OUTER_SPRINT temp @1002
     OUTER_SPRINT seq_desc_string "%seq_desc_string%%temp%"
  END
  ACTION_IF VARIABLE_IS_SET $spell_level_to_caster_level("bard" "8") BEGIN
     OUTER_SPRINT temp @1003
     OUTER_SPRINT seq_desc_string "%seq_desc_string%%temp%"
  END
   LAF edit_all_kits STR_VAR parent_class=bard editstring="%kit_edit_bard% patch_description_strref=>seq_desc" END

Basically the same, except that it also specifically calls out dragon disciples. Any sorcerer kits added by other mods are out of luck.

So, what's up with sorcerers, and what's new? Well, unkitted sorcerers use the same ability table as unkitted mages. They're going to get the abilities regardless. But sorcerer kits aren't picked up by the call for all mage kits, so they get skipped. The Dragon Disciple is the only one in vanilla, but now ToF adds a bunch more sorcerer kits that should be supported.

It looks like just adding another kit.edit_all call for sorcerer kits should work. Unless that doubles up on CLABMA01 - testing recommended.

Link to comment

Ah. And that's implemented in how the applicator spell is built; it filters using opcode 177 so that only mages (including multiclass) and bards actually get the innate. Unkitted sorcerers have the applicator spell in their ability table, but it does nothing for them.

So actually, you'd have to change more than just the code I quoted above if you wished to extend this tweak to sorcerers.

Verdict: deliberate change working as intended, nothing to see here.

Link to comment

Except now, with the v35 version of this tweak, sorcerers can't use sequencers and contingencies at all - the spells are hidden and can't be taken with a spell slot. Which is a substantial penalty for them. Can't have it fair either way.

Link to comment
On 1/13/2024 at 12:23 PM, Dan_P said:

There's some bugginess in BG2EE as well. If starting a new game in SoA with a single class mage or sorcerer, you won't get minor sequencer. If starting a new game in ToB, you get only Contingency and Chain Contingency (once you get level 9 spells).

Looks like the current version of things doesn't work for levels taken during the character creation process. I'm not sure why; abilities associated with those levels should just be applied when you enter the game. But that's what it is. Anyway, what's different about the actual spells here from older versions?

- The applicator now removes its ability before applying it. This prevents multiple instances of a given sequencer/contingency stacking up when an NPC leaves the party and returns.

- There is now a "wrap" layer which filters through a class check. This was clearly added in an attempt to exclude (unkitted) sorcerers, but doesn't actually do that because sorcerers apparently count as mages.

Does removing that wrap layer fix this bug? It should be testable in a game with the component already installed by replacing instances of dwsqwr (the wrap spells) with dwsqds (the applicator spells) in the kit CLABs.

[Disclaimer: I do not currently have any instances of the games with SCS installed]

Edited by jmerry
Link to comment
On 1/14/2024 at 7:31 AM, jmerry said:

Except now, with the v35 version of this tweak, sorcerers can't use sequencers and contingencies at all - the spells are hidden and can't be taken with a spell slot. Which is a substantial penalty for them. Can't have it fair either way.

Erghh...what? Sorc can't use sequencers??? but it is not an issue?

Link to comment
On 1/14/2024 at 1:31 AM, jmerry said:

Except now, with the v35 version of this tweak, sorcerers can't use sequencers and contingencies at all - the spells are hidden and can't be taken with a spell slot. Which is a substantial penalty for them.

Oh, that was dumb. Will fix.

Link to comment
On 1/14/2024 at 1:31 AM, jmerry said:

Except now, with the v35 version of this tweak, sorcerers can't use sequencers and contingencies at all - the spells are hidden and can't be taken with a spell slot. Which is a substantial penalty for them. Can't have it fair either way.

Honestly this doesn’t offend me. Sorcerers have such an immense advantage in having more and more flexible spell slots, it seems a reasonable trade-off for mages to use clever metamagic tricks like spell-storing sequencers and time-shifted contingencies. 

Link to comment
10 minutes ago, subtledoctor said:

Honestly this doesn’t offend me. Sorcerers have such an immense advantage in having more and more flexible spell slots, it seems a reasonable trade-off for mages to use clever metamagic tricks like spell-storing sequencers and time-shifted contingencies. 

Whether or not that's right, it wasn't intentional - I just messed up and forgot about it.

Thinking about it, there is a residual implementation issue, in that ideally mages wouldn't have access to triggers/contingencies on level-up, but sorcerers would. I don't know a way to do that without ToF's UI system though.

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...