Jump to content

Revision of the Dispel Magic mechanic


Recommended Posts

3 hours ago, Bartimaeus said:

why not split up Dispel Magic and Remove Magic conceptually? Remove Magic targets enemies only and does the 1x combat and specific protection per 5 levels, while Dispel Magic continues to be wholesale (dispel everything + targets friendlies and enemies) but works at 50% +/- 5% up/down

That's an excellent idea.  I'm planning to code up my "remove X layers" idea in SD Random Tweaks... I can allow for and detect Polytope's and SR, for the following possibilities:

  • Polytope only: DM and RM are per vanilla, but chance of success varies by 3% per caster level difference
  • SDRT only: both DM and RM strip away a certain number of combat protections and specific protections
  • SR + SDRT: there is no DM; RM strips away some of combat protections and specific protections
  • Polytope + SDRT: DM is per vanilla but chance of success varies by 3% per caster level difference; RM strips away some combat protections and specific protections

I imagine that should cover a wide variety of player preferences.

As for my layered approach, I'm currently thinking this:

  • 1st level: guaranteed to remove 1 each of combat/specific protections
  • 6th level: 100% chance to remove 1 of each; 50% chance to remove a 2nd
  • 12th level: 100% chance to remove 1; 75% chance of a 2nd; 50% chance of a 3rd
  • 18th level: 100% chance to remove 2; 75% chance of a 3rd, 50% chance of a 4th

I think?  This is hard to think about balancing.  The chance of even high-level casters having four combat protections plus four specific protections is pretty slim, right?  If it removes everything then it's as good as breach, which we don't want.

I'd want to avoid doing the caster-level-versus-caster-level stuff, but it would be fairly simple to change the chance of success based on the spell level of the buff to be dispelled.  That's worth looking into...

Link to comment
1 hour ago, subtledoctor said:

That's an excellent idea.  I'm planning to code up my "remove X layers" idea in SD Random Tweaks... I can allow for and detect Polytope's and SR, for the following possibilities:

  • Polytope only: DM and RM are per vanilla, but chance of success varies by 3% per caster level difference
  • SDRT only: both DM and RM strip away a certain number of combat protections and specific protections
  • SR + SDRT: there is no DM; RM strips away some of combat protections and specific protections
  • Polytope + SDRT: DM is per vanilla but chance of success varies by 3% per caster level difference; RM strips away some combat protections and specific protections

I imagine that should cover a wide variety of player preferences.

As for my layered approach, I'm currently thinking this:

  • 1st level: guaranteed to remove 1 each of combat/specific protections
  • 6th level: 100% chance to remove 1 of each; 50% chance to remove a 2nd
  • 12th level: 100% chance to remove 1; 75% chance of a 2nd; 50% chance of a 3rd
  • 18th level: 100% chance to remove 2; 75% chance of a 3rd, 50% chance of a 4th

I think?  This is hard to think about balancing.  The chance of even high-level casters having four combat protections plus four specific protections is pretty slim, right?  If it removes everything then it's as good as breach, which we don't want.

I'd want to avoid doing the caster-level-versus-caster-level stuff, but it would be fairly simple to change the chance of success based on the spell level of the buff to be dispelled.  That's worth looking into...

Yeah, I'm having trouble conceptualizing how to balance it as well: 1 per 5 levels may be too much considering there are only so many protections you'd realistically use at once as a player (at the most extreme, if you were a mage-cleric, you might be running combat protections Mage Armor, Shield, Armor of Faith, Stoneskin, Physical Mirror, and one of PfMW/Mantle/Absolutely Immunity, which is 6...a single Remove Magic from a lich would destroy all of that in one go at 5x per level)...and on the other side, the AI doesn't tend to just stack a huge amount of them on either, which means you want to limit its effectiveness for the player's sake as well. One other interesting facet of making Remove Magic target specifically specific and combat protections a la Breach is that some buffs from the party, such as Bless or Defensive Harmony, will no longer ever be dispelled, as they are neither specific or combat protections.

3 hours ago, DavidW said:

Yes:typo.

and no, I don’t try to use cleric Dispel Magic.

Guess I'm throwing that in the trash.

Edited by Bartimaeus
Link to comment

@Bartimaeus, perhaps that's the way to go when it comes to Remove Magic and Dispel Magic.

To change them so they really have a different usage and purpose may be the way to go but wouldn't changing Dispel Magic to 50% +/- 5% require that tedious job with extended headers, percentiles, and hit-dice limitations you mentioned above?

Edited by Salk
Link to comment
Just now, Salk said:

@Bartimaeus, perhaps that's the way to go when it comes to Remove Magic and Dispel Magic.

To change them so they really have a different usage and purpose may be the way to go but changing Dispel Magic to 50% +/- 5% wouldn't require that tedious job with extended headers, percentiles, and hit-dice limitations you mentioned above?

Yeah, it would - but for the time being, the current 5/10 system would continue to exist until I get around to it, and doesn't really affect the change of Remove Magic.

Link to comment
9 hours ago, Bartimaeus said:

Yeah, it would - but for the time being, the current 5/10 system would continue to exist until I get around to it, and doesn't really affect the change of Remove Magic.

Well, if that is the case, hasn't polytope already done the job with the difference being 50% +/- 3% rather than +/- 5%?

Link to comment
44 minutes ago, Salk said:

Well, if that is the case, hasn't polytope already done the job with the difference being 50% +/- 3% rather than +/- 5%?

Well, sure - I'm certainly not stopping anyone from installing it...but I'm also not going to straight up steal someone else's files, either. Basic ideas I don't have as many qualms about, since there's simply only so many ways to do things in these games and if you limit yourself to only your own original ideas you'll find yourself out of things to do awfully fast (and it would really go against the spirit of modding as a whole as well), but the least you can do is actually put in the work in implementing it yourself. Also, most people that aren't weidu experts don't code up easily modifiable lines that would make changing, say, polytope's 3% to 5%, take minutes instead of an hour or two, so that's a bit of a problem as well.

Link to comment
1 hour ago, Bartimaeus said:

Well, sure - I'm certainly not stopping anyone from installing it...but I'm also not going to straight up steal someone else's files, either. Basic ideas I don't have as many qualms about, since there's simply only so many ways to do things in these games and if you limit yourself to only your own original ideas you'll find yourself out of things to do awfully fast (and it would really go against the spirit of modding as a whole as well), but the least you can do is actually put in the work in implementing it yourself. Also, most people that aren't weidu experts don't code up easily modifiable lines that would make changing, say, polytope's 3% to 5%, take minutes instead of an hour or two, so that's a bit of a problem as well.

Yes, of course! ;)

I didn't mean to suggest you should just steal polytope's work/files but was rather trying to understand if what polytope has done already was what you would need to do yourself in order to reach a very similar result. Since you mentioned being a tedious work I was just wondering if reinventing the wheel was truly necessary or if it was perhaps possible to ask polytope permission (with crediting) to use his Dispel Magic version inside SRR. It was just an idea to save you time though, nothing more.

Cheers! :beer:

Link to comment
3 hours ago, subtledoctor said:

Ha! Unfortunately that is very much not true. 

Most everything everyone does besides simple creative writing is heavily derivative of something else (...and if we're being honest, good creative writing is very often learned or at least inspired from a blending of other sources anyways). For Baldur's Gate specifically, most of the things I like best from mods are P&P-inspired (whether 2.0 or 3.x), which is certainly not by any means majority original work - most everyone is heavily inspired from someone somewhere for their ideas. Anyways, I was less talking the subject of original ideas and more specific technical implementations for a concept, which are certainly limited inside the Infinity Engine.

Link to comment

Ah, you meant stuff like Weidu techniques. I just meant that, once you start having the capability to mod the games, you start thinking “hm, I could do this, and with a but more work/learning I could do that...” and what you actually get done will never ever keep up with all the ideas you have. 

Link to comment

I've been very busy at work for the past two weeks but I've found some time to play and consider the feedback.

On 8/7/2020 at 1:33 PM, Salk said:

I'd be interested to hear polytope's counterargument to Bartimaeus' criticism though.

Well, @Salk I will just say that I avoided using opcode 226 in favor of 220 because certain nonmagical abilities are flagged as "Combat Protections", Hardiness and Greater Evasion for instance (those are also considered alteration magic in vanilla, my mod changes that); incidentally, this means they can be removed by Breach, but then it's the prerogative of Breach to make a creature easier to hit, whereas Dispel Magic really should be incapable of negating protections that aren't magical. Likewise, dispel magic should not counteract Psionic Blast or Psionic Domination which are schoolless and yet have the "Disabling" sectype.

On 8/7/2020 at 11:06 PM, DavidW said:

That was my fear. I quite like the +5%/-5% change, but I don't think I like it enough to want to maintain that kind of complexity. Too bad.

I generally design my own mods with a view toward retrocompatability with SCS (among others, like Rogue Rebalancing and aTweaks), the only scripting error I could imagine this one creating is that if the option to make 7th circle and higher spells undispellable is used there are potentially times when enemies will waste their round throwing a RM at a character who is buffed exclusively with 7th+ spells... but this is very unlikely considering that excludes all forms of haste, Resist Fear, Death Ward, Chaotic Commands etc. and nailing vulnerable party members with lethal or disabling spells should be higher priority in a script than stripping buffs from those who are protected.

You're right that it's complex, the number of effects in the feature block for each level dependent extended header depends upon the percentile increment that's used, for instance at 3% (not 5%) there are 31 effects at levels 16 to 21 (50% base plus 2 x 15 iterations of 3% above and below to cover the spectrum from 5% to 95% success against targets as low as 1st level or as high as 36th), at levels below 16 or above 21 there are obviously less. This is why I didn't include the option to select a percentage, such a spell would be difficult to build at install time with Weidu (on the other hand, it would be trivial to change, say, priestly Dispel Magic to a single target projectile so the AI can use it and I might include this choice for later versions).

Anyway, I've started a new campaign to play-test my mod for balance. Party is four humans; a priest of Helm dualled at level 9 to a mage, an elementalist druid (Prestige Kitpack) dualled at level 11 to a fighter, an assassin dualled at level 10 to a fighter and a duelist (also PPK). Starting in BG2 rather than BG1 because I'm interested mainly in how duals from spellcasting classes work out: This is the kind of party that I expect to benefit most from the changes (four people means fast leveling, and buffs are checked for dispel on the highest class level) so I'll soon be able to report whether it disproportionately favors the player.

Edited by polytope
Link to comment
1 hour ago, polytope said:

I generally design my own mods with a view toward retrocompatability with SCS (among others, like Rogue Rebalancing and aTweaks), the only scripting error I could imagine this one creating is that if the option to make 7th circle and higher spells undispellable is used there are potentially times when enemies will waste their round throwing a RM at a character who is buffed exclusively with 7th+ spells... but this is very unlikely considering that excludes all forms of haste, Resist Fear, Death Ward, Chaotic Commands etc. and nailing vulnerable party members with lethal or disabling spells should be higher priority in a script than stripping buffs from those who are protected.

I don't think there's any compatibility problem. I more meant that if implementation was simple enough then I'd consider this for SCS itself. But I don't generally like incorporating other people's code into SCS, because then I struggle to deal with bugs and compatibility issues down the line.

Link to comment

Thank you for this mod, @polytope! I'm trying in SoA on top of SCS, and I have to report that so far I'm having a really nice experience. I got into the planar sphere, and I wasn't too prepared, so when Tolgerias cast a trillion protections that I can't strip (Spell Trap with Spell Shield and some others; I'm playing on Insane), I gave Haer'Dalis a chance to cast Remove Magic, and it worked! He was only level 15, and Tolgerias is 21, so the chances are much more balanced with the mod. Sure, it's random, and there is always a 5% chance in vanilla anyway, but this is not the only case. In other circumstances I was over the level of the enemies (well, just Haer'Dalis and his higher caster level), and it did not work even in two attempts (no SI: Abjuration, it just didn't work).

Surely just for now is little experience, but I wanted to give some positive feedback. I'll try to see if I can comment further when I have the time to play more.

I also looked at the implementation, and the spell files are indeed big, with repetitive blocks that I hope are not done by hand. I suppose there is no other way to change the chances but go into engine-level modifications (which I will surely check, but it has close to no chance of happening if I have to do it).

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