I'd add more damage to Two-Handed Fighting. The difference in base damage between one & twohanded weapons is small and a + 2 bonus isn't really noticable halfway in BG.
Theoretically, I could also do something interesting with Shield-Fighting. It might be possible to do something like, give a 10% chance to do a shield bash whenever struck in melee if you have two pips. But, the only way I can think to do it would be to have three separate repeating .effs casting spells on every character in the game, every six seconds. That's a lot of overhead for one single effect for the rare character who puts two pips into shield use.
Shield Use Eff to store its Shield Bash effect as a sequenced spell(OP:177->OP:256), Timing Mode 2. Shield applies(OP:326) subspell based on binary match of 2 stars in active class of stat 112(Single Weapon Style) SPLPROT entry: "#ROW 112 2 8" Subspell Removes self/prevent stacking(OP:321) Timing Mode 0, Use Eff/Cast subSpell2 On Condition(OP:177->OP:232)[Nearest Enemy, Range(Special): 2], Timing Mode 2. Subspell2 activate Shields stored sequencer(OP:258), Shield Bash Effect. Each shield can have unique or generic Shield Bash Effect. Wielder will attempt shield bash once per round on nearest enemy, if it's within melee range(2). I would advise against an "on-hit" trigger, as it triggers on any attack, physical, magical, ranged, or melee.
@kjeron thanks, that's very interesting and much less overhead. Only thing I wonder about is the 321 stacking-prevention effect... timing mode 0 is 'instant/limited' no? So timing mode 0 with 0 duration?
I was using timing mode 1 for that effect... is that a mistake?
As long as duration is 0 for timing mode 0, they work the same, nothing wrong with either.
@subtledocter I remembered an alternate way to do this:
Shield: Use Eff to store its Shield Bash effect as a sequenced spell(OP:177->OP:256), Timing Mode 2.
Shield: Cast subSpell On Condition(OP:232)[Nearest Enemy, Range(Special): 2], Timing Mode 2.
SPLPROT entry: "#ROW 112 2 9"
Subspell: Immune if not binary match of 2 stars in active class of stat 112(Single Weapon Style) (OP:318) Target: Original Caster(9),
Subspell: Activate Shield's stored sequencer(OP:258), Shield Bash Effect, Target: Original Caster(9).
EDIT - tried that, it seems to try to trigger, but just keeps saying "one of the spells has failed." I'm attaching the test mod folder. Any idea what's wrong?
Spells cast through Contingencies and Sequencer's measure distance differently from normal spellcasting, "d5_sns2a/b.spl" will need greater range, that's is what causes that message. You can safely set it to 255, since the range is already being enforced by the cast spell on condition effect. The .eff, "d5_sns2", also needs to have the name of the sequencer it will activate under("d5_sns2a") in its Parent Resource field, offset 0x94, in ALLCAPS - this is one of the only fields in the game that I've found to be case sensitive. It doesn't even matter what case the file or Sequencer activation effect is in, this field just doesn't work in lowercase. Do not set Resource type though, offset 0x90, it needs to remain "none".
- Shield-Fighting 1 pip: +1 thac0, +1 AC/+2 missile AC 2 pips: +2 thac0, +2 AC/+4 missile AC
I think that leaves Shield-Fighting much more powerful than Single-Weapon style.
Consider than when equipping a shield, you also get the shield's AC bonus and magical bonuses, which with the shields available in SoA/ToB/IWD can be quite a lot. By going single-weapon, you give up on all of that, so to make up for it its Fighting Style bonuses should be more, not less.
I think Dualwielding is fine. Being able to equip an extra weapon is actually quite powerful. 2-Handed Fighting can use a bigger boost: the average difference in damage between a Twohanded Sword and a longsword is 1 point! Anything wearing a helmet is immune to the extra damage from crits, so they only go so far. However, it is a cool effect.
The question in my mind is, how does SWS (thac0 bonus, AC bonus, +1/2 main-hand attack) compare with dual-wielding (thac0 penalty, +1 off-hand attack).
I think SWS is still underpowered compared to both Shield-Fighting Dual-Wielding, when taking into account how many shields and weapons with passive bonuses there are (except in BG1), and that dual-wielding already implies an extra attack even without any pips.
Comparing only the differences at 2 pips:
SINGLE: SHIELD: +1/2 APR +2 missile AC shield bash AC bonus from shield multiple passive bonuses from shield
SINGLE: DUAL: +1/2 APR +1 APR (the off-hand attack) +1 thac0 -2 main-hand thac0 +1 AC multiple passive bonuses from 2nd weapon
AC matters less and less at higher levels, and APR doesn't matter while using Greater Whirlwind – whereas the damage and crit bonus will be something a Fighter noticeably benefits from even at high levels.
A less radical approach would be something you've previously already done with weapon profs, I think: Make the bonuses from the second pip only kick in at a certain character level.
So you can take the pip whenever you want, but you won't have the larger bonuses from level 1.
How about the opposite? Instead of penalizing SWS/DW, reward 2H fighters and give Twohanded weapons a +1 bonus? I feel that one-handing something is your "normal" STR, but using two hands allows you more leverage. Does the -1 STR influence carry weight as well?
True, I had forgotten how limiting 2E's stat-table being capped at 25 is. Especially if you take the STR penalty along with your stat-revision, it isn't so bad at all. The only point I can bring up is the reduction is carrying capacity then. That doesn't make much sense, if it would be affected, right?
I'm not sure it's actually the shield bash but that's what i'm guessing right now. My enemies damage and knockback each other for a small amount of crushing damage every now and then. This happens even when they're not fighting.
On my characters, the trigger range seems very high and it feels more like enemies take random dmg than having a shield bash.
The crushing dmg + knockback effect and it happening only when there are ennemies with shields makes me think it's the shield bash but my shield wielding character doesn't have any proficiencies into shield style.
@subtledoctor The 318 opcode in "d5_sns2b" needs to target itself, "d5_sns2b", instead of "d5_sns2a". It would explain shield bashing without proficiency.
As for enemies shield bashing each other, I can only conclude that the "Nearest Enemy" trigger of Opcode 232 is not relative to the caster/source, but instead always targets hostile(red) creatures. It's odd that it would, but I still should have checked it thoroughly.
It would be easy to fix this by giving "d5_sns2a" an AoE projectile with both single-target and not-affecting-allies flags, as they do properly target enemy/ally relative to the caster. You won't need the "Cast Spell on Condition Effect" to check range anymore, since you can use the projectile Radius instead. I would suggest using an (HP% < 102%*) check (always true) and casting the spell on "self", using the projectile to control targeting and range.
Another idea I thought about for Shield-bashing was inspired by DDO, to give every melee attack a chance to inflict the shield bash, switching the "Cast spell on Condition" to "Melee hit Effect" on the shield. The Melee .eff would cast(OP:146) the existing "d5_sns2b" as it is, using desired probability ranges. You could add a second immunity (OP:206,target:9,duration:6) to "d5_sns2b" as it's last effect to limit it to triggering once per round.
*The reason to use 102 instead of 101 is because the first bit of the special field has overlapping functionality, such that any odd value will trigger the "a contingency spell has fired" feedback line.
Hm, I guess I have some work to do. Could I use an existing projectile, or will I have to make a new one?
I don't think there are any existing viable projectiles, but if you want a reference, "SMLLNPC" would just need the "Single-target" flag checked at offset 0x200, and its firing sound cleared (offset 0x10). It's range (50) is about as small as functionally possible for an AoE, which is fine for normal size creatures, but the very large creatures, like Verbeeg's in IWD, would not be able to shield bash anyone(provided they were given proficiency), as they would encompass the entire AoE themselves.
@subtledoctor@kjeron Seeing as i'm testing a bunch of stuff on EET and there are a number of mods after SoB, is there any chance one of you could tell me how to make a quick fix/disable of the shield bash? The ai reacts very weirdly to the way it works and large combat just leads to enemies disabling themselves over and over, it's fine in BG1 since there isn't many large battles but SoD has some pretty chaotic fights due to this.
Comments
Shield applies(OP:326) subspell based on binary match of 2 stars in active class of stat 112(Single Weapon Style)
SPLPROT entry: "#ROW 112 2 8"
Subspell Removes self/prevent stacking(OP:321) Timing Mode 0, Use Eff/Cast subSpell2 On Condition(OP:177->OP:232)[Nearest Enemy, Range(Special): 2], Timing Mode 2.
Subspell2 activate Shields stored sequencer(OP:258), Shield Bash Effect.
Each shield can have unique or generic Shield Bash Effect.
Wielder will attempt shield bash once per round on nearest enemy, if it's within melee range(2).
I would advise against an "on-hit" trigger, as it triggers on any attack, physical, magical, ranged, or melee.
I remembered an alternate way to do this: Slightly simply, fewer files needed.
The .eff, "d5_sns2", also needs to have the name of the sequencer it will activate under("d5_sns2a") in its Parent Resource field, offset 0x94, in ALLCAPS - this is one of the only fields in the game that I've found to be case sensitive. It doesn't even matter what case the file or Sequencer activation effect is in, this field just doesn't work in lowercase. Do not set Resource type though, offset 0x90, it needs to remain "none".
Consider than when equipping a shield, you also get the shield's AC bonus and magical bonuses, which with the shields available in SoA/ToB/IWD can be quite a lot.
By going single-weapon, you give up on all of that, so to make up for it its Fighting Style bonuses should be more, not less.
2-Handed Fighting can use a bigger boost: the average difference in damage between a Twohanded Sword and a longsword is 1 point! Anything wearing a helmet is immune to the extra damage from crits, so they only go so far. However, it is a cool effect.
Comparing only the differences at 2 pips: Maybe increase the APR bonus for SWS? Crit bonuses are cool and underrated, yeah.
I also don't think Two-Handed is currently weaker than Single: AC matters less and less at higher levels, and APR doesn't matter while using Greater Whirlwind – whereas the damage and crit bonus will be something a Fighter noticeably benefits from even at high levels.
So you can take the pip whenever you want, but you won't have the larger bonuses from level 1.
Does the -1 STR influence carry weight as well?
Especially if you take the STR penalty along with your stat-revision, it isn't so bad at all.
The only point I can bring up is the reduction is carrying capacity then. That doesn't make much sense, if it would be affected, right?
On my characters, the trigger range seems very high and it feels more like enemies take random dmg than having a shield bash.
The crushing dmg + knockback effect and it happening only when there are ennemies with shields makes me think it's the shield bash but my shield wielding character doesn't have any proficiencies into shield style.
The 318 opcode in "d5_sns2b" needs to target itself, "d5_sns2b", instead of "d5_sns2a". It would explain shield bashing without proficiency.
As for enemies shield bashing each other, I can only conclude that the "Nearest Enemy" trigger of Opcode 232 is not relative to the caster/source, but instead always targets hostile(red) creatures. It's odd that it would, but I still should have checked it thoroughly.
It would be easy to fix this by giving "d5_sns2a" an AoE projectile with both single-target and not-affecting-allies flags, as they do properly target enemy/ally relative to the caster. You won't need the "Cast Spell on Condition Effect" to check range anymore, since you can use the projectile Radius instead. I would suggest using an (HP% < 102%*) check (always true) and casting the spell on "self", using the projectile to control targeting and range.
Another idea I thought about for Shield-bashing was inspired by DDO, to give every melee attack a chance to inflict the shield bash, switching the "Cast spell on Condition" to "Melee hit Effect" on the shield. The Melee .eff would cast(OP:146) the existing "d5_sns2b" as it is, using desired probability ranges. You could add a second immunity (OP:206,target:9,duration:6) to "d5_sns2b" as it's last effect to limit it to triggering once per round.
*The reason to use 102 instead of 101 is because the first bit of the special field has overlapping functionality, such that any odd value will trigger the "a contingency spell has fired" feedback line.
Seeing as i'm testing a bunch of stuff on EET and there are a number of mods after SoB, is there any chance one of you could tell me how to make a quick fix/disable of the shield bash? The ai reacts very weirdly to the way it works and large combat just leads to enemies disabling themselves over and over, it's fine in BG1 since there isn't many large battles but SoD has some pretty chaotic fights due to this.