Jump to content

"Secret Word" oddities


Anomaly

Recommended Posts

About the level 4 spell "Secret Word" :

 

The spell is supposed to cancel one spell protection of level 8 or lower. But not only the spell isn't able to dispel a globe of invulnerability (of level 6), it isn't even able to pierce through to dispel another protection.

 

On the other hand, the level 3 spell "Spell Thrust" is able to pierce the globe of invulnerability to cancel other protections. It won't dispel the globe of invulnerability itself, which is correct behavior since the spell is supposed to only affect level 5 and lower spells.

 

Currently, "Spell Thrust" is nearly always better than "Secret Word". The only case the latter is more powerful would be to dispel either "Spell Turning" or "Spell Deflection", providing that no globe of invulnerability has been cast.

 

I think the minimum that should be done is allowing "Secret Word" to be effective even with a globe of invulnerability up, like "Spell Thrust" does. Ideally, I also think the spell should be able to dispel the globe as well, since it is supposed to dispel one spell protection of level 8 or lower.

Link to comment

The description of Secret Word only specifically mentions that it should dispel a Minor Globe of Invulnerability though it can be inferred from the context that it should also remove the 6th level Globe of Invulnerability as well. In order to do that, we need to raise its power to 5 or reduce it to 0 (as is the case with Spell Thrust).

 

Note that if we choose the latter, Secret Word would also gain the power to affect creatures that are immune to regular level 4 spells (i.e. Liches and Rakshasas) which may not be intended. Therefore, my proposal is to stick with the stricter interpretation and merely raise the power level to 5. Code:

 

 

// Secret Word should dispel a Globe of Invulnerability

COPY_EXISTING  ~spwi419.spl~ ~override~ // Secret Word
 READ_LONG  0x64 "abil_off"
 READ_SHORT 0x68 "abil_num"
 READ_LONG  0x6a "fx_off"
 FOR (index = 0 ; index < abil_num ; index = index + 1 ) BEGIN // cycle through abilities
	READ_SHORT  ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
	READ_SHORT  ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
	FOR (index2 = 0 ; index2 < abil_fx_num ; index2 = index2 + 1) BEGIN
	  WRITE_BYTE ("%fx_off%" + 0x03 + (0x30 * ("%index2%" + "%abil_fx_idx%"))) "5" // power
	END
 END
BUT_ONLY_IF_IT_CHANGES

 

EDIT - just realized that it's the fixpack that actually changes Spell Thrust to power 0. In the unmodded game it's at level 4. However, this is unnecessary as Spell Thrust can already remove all spells that are mentioned in its description. We might need to roll back that change.

 

--- setup-bg2fixpack.tp2    2010-03-15 19:54:10.000000000 +0100
+++ setup-bg2fixpack.v10    2012-01-13 23:47:55.734375000 +0100
@@ -18109,7 +18109,6 @@
// spells using wrong power level
COPY_EXISTING ~sppr303.spl~ ~override~ // (divine dispel magic) : all opcodes are power 0 except its visual effect and removing feeblemind, which are at 3. To work v. magic protections, all of these should be 0.
		   ~spwi302.spl~ ~override~ // (remove magic): visual effect at power 3, all others at 0. Should add removal of feeblemind to this spell.
-			  ~spwi321.spl~ ~override~ // (spell thrust): all effects at power 4. Testing needs to be done here--secondary type of magic attack causes target MR to be ignored, possibly also power levels? If yes, no changes needed. If not, needs to be raised to 5 so it can dispel minor spell turning, per its description.
		   ~spwi326.spl~ ~override~ // (arcane dispel magic) : all opcodes are power 0 except its visual effect and removing feeblemind, which are at 3. To work v. magic protections, all of these should be 0.
  READ_LONG  0x64 "abil_off"
  READ_SHORT 0x68 "abil_num"

Link to comment

Isn't it as, or more, likely that it's typo/omission that they forgot to specifically mention GOI? For me "When this spell is cast at a target creature, it will dispel one spell protection of 8th level and lower" is pretty unambiguous - that they then forgot to specifically list all affected spells is the actual error (= the one that should be rectified) here. That's why, in legislation and contract law you use the formula "[Will be applied on all spell protections of x level], for instance, but not limited to, [insert spells]".

 

I digress, but the fact is that I believe the first statement of the spell should take precedence. In other words, make it work as described and amend the list in the description.

 

EDIT: I know the fixpack philosophy is to - whenever possible - go with the stricter interpretation of developer intent when there are colliding views, but I think that going with the actual description of the spell is the stricter interpretation.

Link to comment

Isn't it as, or more, likely that it's typo/omission that they forgot to specifically mention GOI? For me "When this spell is cast at a target creature, it will dispel one spell protection of 8th level and lower" is pretty unambiguous - that they then forgot to specifically list all affected spells is the actual error (= the one that should be rectified) here.

 

I agree, but the point is actually moot since GoI doesn't stop spells of power level 5 (which Secret Word becomes with the abovementioned code).

Link to comment

Oh well .. :) but still, both MGoI and GoI should be included in the description of SW as being affected by it, and SW patched to make it work like advertised?

 

EDIT: You can tell I like litigation by the fact that I argue on this fix; but I and play with SR 100% of the time, thereby making this entire fix moot for me (as far as I can tell) ;)

Link to comment

Dispels and magic attacks shouldn't be subject to level immunities.

 

So power = 0 for all? Sounds reasonable, but I fear that it may be seen as a bit tweakish if we suddenly make all anti-magic spells affect Liches and Rakshasas (i.e. SCSII has an optional component which specifically does this for Breach).

 

In theory I agree that this approach makes the most sense but, at the moment, the fixpack is not doing it in a very consistent manner. So far it only changes Spell Thrust to power 0 which actually has no bearing on its anti-magic capabilities, as pointed out above. If we change all anti-magic spells to power 0 it would have a fairly big gameplay impact, and I'm not sure that's really warranted after all this time. Perhaps in an OBC component?

Link to comment

Aren't they already 0 in most cases? It's been a long time, but I thought that was one of the things BioWare did right.

 

In any case, changing it to 5 solely so that it bypasses globe of invulnerability is not a solution. It's not a Level 5 effect. It's either subject to level immunity or it's not, and if it is, then it won't bypass globe of invulnerability.

 

If that is seen as a bug, then obviously it should not be subject to level immunity. If it isn't a bug, then turn to another mod for a more sane implementation.

Link to comment

Aren't they already 0 in most cases? It's been a long time, but I thought that was one of the things BioWare did right.

 

Nope, they're all using standard power assignments which correspond to the spell's level (i.e. Pierce Magic has power=6, Ruby Ray has power=7 etc.). Spell Thrust is the sole exception to this rule. For reference, it's a level 3 spell but its power is set to 4. There's a possibility that one of the developers figured out that it couldn't take down a Minor Globe otherwise and that this was a deliberate design decision. The fixpack currently changes Spell Thrust to to power=0 but, as noted before, that is unnecessary as the spell functions fine in its unmodded state.

 

Since Bioware already made an exception for Spell Thrust, I figure we could make one for Secret Word as well.

Link to comment

I am in favor of changing Spell Thrust Power Level back to 4 from 0. Tactically it would be better for it to have Power Level 3 and thus be blocked by MGOI, but that's minor and clearly not within the purview of Fix Pack's mission.

 

I am not in favor of changing Secret Word Power Level to 5. Doing so will greatly reduce the utility of Pierce Magic, relegating it to Anti-Lich duty only. It is already too easy to take down enemy mages. This just makes it cheaper in the early game.

 

In any event I don't think there is a slam dunk case for believing that the designers wanted Secret Word to take down GOI. The spell description clearly does not mention it. If anything I think that the Spell Thrust programming was the exception. The Secret Word description states:

 

"When this spell is cast at a target creature it will dispel one spell protection of 8th level or lower." It then lists those spells which are affected. It does not say that it will dispel any one spell protection of 8th level or lower. Only those mentioned.

 

The original post complains that Spell Thrust ignores GOI while Secret Word is blocked by GOI, and therefore L3 Spell Thrust was almost always superior to L4 Secret Word.

 

But the solution put forward here is to make L4 Secret Word almost always better than L6 Pierce Magic.

 

In vanilla, the original descriptions of Spell Thrust, Secret Word, and GoI are all consistent with the actual spell effects, and only MGOI is inconsistent since it fails to block L3 Spell Thrust.

 

Philosophically, I understand the feeling that spell protection removal spells should not themselves be affected by spell level immunities. However, the tactical nature of spell defenses vs. Spell protection removals cannot work properly unless at least GOI blocks Secret Word and Spell Thrust.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...