[(BG1, BG2) Bug] Improved Invisibility (SPWI405.SPL) doesn't confer save bonuses (0629)
Current behaviour: When casting Improved Invisibility (SPWI405.SPL), the recipient isn't granted the +4 bonus to all saving throws mentioned in the spell's description.
Expected behaviour: Improved Invisibility should grant the recipient the +4 bonuses to saving throws.
Games affected: BG1, BG2, BGEE.
Notes: See second post for more background. This bug is still present as of Build 0629.
Expected behaviour: Improved Invisibility should grant the recipient the +4 bonuses to saving throws.
Games affected: BG1, BG2, BGEE.
Notes: See second post for more background. This bug is still present as of Build 0629.
Post edited by Bhryaen on
2
Comments
I would recommend, then, that Opcode #20 be fixed to include the save bonuses for improved invisible states.
[1] http://iesdp.gibberlings3.net/opcodes/bg2tob.htm
[2] http://forums.gibberlings3.net/index.php?showtopic=1805
1. AC and saving throw bonuses should only work against creatures whose stat SEEINVISIBLE=0, and are employing non-area effect spells or items (word 0x08 != 3 of the .pro file used by the header of the .spl or .itm in question).
2. All .bams, lighting effects, and overlays should not be drawn over an invisible characters (like the hardcoded behaviour of minor globe in BG1/2). I'd allow for a list of .bam resrefs to be specified in an external .2da file that are exceptions to this rule. For example, placing SPFLSRIN and SPFLSTI
3. Improved invisibility should refresh itself (make the .cre go completely invisible again) whenever one of the following conditions return true:
a. no one is actively targeting the improved invisible .cre with an attack or spell
b. no one is actively engaging in dialogue with the improved invisible .cre
c. the improved invisible .cre in question is out of sight from any enemy who is actively targeting the .cre (can happen if you flee away from the LOS of someone who is pursuing).
-Galactygon
"Note, however, that there are sometimes telltale traces, a shimmering, so that an observant opponent can attack the invisible spell recipient. These traces are only noticeable when specifically looked for ..."
-Galactygon
OP is potentially fixed
@Galactygon - Unfortunately, the engine seems to be set up specifically to make all those requests horrifically difficult.
1. The code that determines the saves has no access to the cause of the save as the source adds its effects to a list and destroys itself.
2. These effects are spread pretty thin throughout the code (not centralized) and are hiding in some strange places.
3. This one would involve some potentially heavy state checking involving every source in the map/area or a rework of several systems to keep track of this information.
It might be possible eventually, but for now would you mind saving these points for a feature request?
What I did was add the bonuses when invisibility is checked by the character sheet (making sure that invisibility_improved is also active) as well as added a check for invisibility_improved and the appropriate bonuses in the code that checks for a successful save.
Does that sound OK, or should I rework it somehow?
As for opcodes, I'm coming from a modder's point of view, i.e. effects on spells or items or creatures. Remember, the engine is a black box from my perspective. I think these are ... maybe effectIDs? ... in the source. Basically, I want to know if I use an invisibility opcode/effectID (improved) on my spell or item, do I also need to include separate opcode/effectID to apply the save bonuses, or if they'll be automagically applied the same way that AC bonuses currently are.
Confirmed Fixed in Build 0815
Method:
- Teached Improved Invisibility to my Sorcerer.
- Spawned a bunch of Faldorns
- A level 1 Faldorn has a Save vs Spell of 15
- The spell Entangle gives the target a +3 bonus to saving throws to attempt to bypass its effects (which is actually a penalty @AndreaColombo, @Aosaw)
- Casted Entangle and observed that the best Saving Throw a Faldorn could achieve was 18 (which is correct).
- Casted Improve Invisibility on one of the Faldorns.
- This Faldorn could now save vs Entangle starting at 14.
Note: I didn't test the other save types, but if it works for one of them, it hopefully works for all of them.
I also just noticed that the Improved Invisibility bonus to save rolls is actually reflected on the Record screen. So I think its safe to move this one to confirmed fixed too.