Jump to content

Berserker Rage and Level Drain


Nim

Recommended Posts

Hi,

think I've got one more bug for you :thumbsup:

Berserker Rage protects against Level Drain despite its description not mentioning it and the status bar saying that you lost levels.

 

Possible Solutions:

1) Update description and remove the message in the status bar.

2) Remove protection effect from rage.

 

Nim

Link to comment
Hi,

think I've got one more bug for you  :thumbsup:

Berserker Rage protects against Level Drain despite its description not mentioning it and the status bar saying that you lost levels.

 

Possible Solutions:

1) Update description and remove the message in the status bar.

2) Remove protection effect from rage.

 

Nim

I'd say the former.

Link to comment

But is it a bug...?

If you're a Beserker, you're likely lacking in the wits department. Add to this the fact you're in a "Rage" - would you really notice if you're loosing levels or not?

 

Perhaps you'd recognise that e.g. a vampire usually drains levels (or "makes you feel weaker" or something), so your mind says "Argh! I've been hit by a vampire. Everytime I get hit by a vampire, I feel a little woozy and miss more often" (ie the status message shows up), even though you don't loose any levels.

 

 

Oh come on, everyone else argues for days over what constitutes a bug - why can't I?

Link to comment

Barbarian Rage:

- Can rage once per day per every 4 levels (starts at 1st level with one use). Rage gives them +4 to Constitution and Strength for 5 rounds. Gives a 2 point armor class penalty and +2 to saves vs. magic (for 5 rounds). Rage also gives immunity to all charm, hold, fear, maze, confusion, and level drain spells.

 

Note, however, that the poster was probably referring to Berserker *En*rage, which doesn't list it in the description.

 

Berserker Enrage:

- All of that minus the level drain

 

Oh come on, everyone else argues for days over what constitutes a bug - why can't I?
For argument's sake, I agree with whichever side happens to be currently losing.
Link to comment
Note, however, that the poster was probably referring to Berserker *En*rage, which doesn't list it in the description.

/ sarcasm on /

Probably, huh ? Counting 'Berserker Rage' once in the topc title and once in the topic, mentioning of Barbarian Rage exactly zero times, and you're suggesting that "the poster" was probably referring to Berserker *En*rage ?

Gosh, guess I'll have to write it in bold Letters next time, not to forget the 'En' in Enrage.

/ sarcasm off /

 

Berserker Enrage:

- All of that minus the level drain

Well, there are a few more differences between Barbarian Rage and Berserker Enrage:

Both protect against Charm, Hold, Fear, Maze and Level Drain.

Barbarian Rage protects against Confusion

Berserker Enrage against Stun, Sleep and Imprisonment

Link to comment

1. Enrage gives immunity to level drain but the kit description does not mention it in the list of immunities.

 

2. When hit with level drain you still get the level drained message even though you do not get level drained.

 

3. When winded you are supposed to get a -2 to to hit -2 to damage and -2 to armor as per the description. The -2 to hit is missing however.

 

4. Don't know if its a bug, but when winded and you cast enrage the text box says "enrage: <charname>" just like normal but you do not get the benifits of enrage. A little misleading, it should probably say "cannot enrage while winded", kind of like when you try to cast friends twice.

 

5. An AI issue. When you have party AI on and a character becomes winded and takes 15 damage they will try to attack the last creature that attacked them. I had Korgan attack Viconia for some damage testing, then I seperated them, and when Korgan took his 15 damage from winded he went back to attacking Viconia. I can think of a few situations where this might be a problem.

Link to comment
1. Enrage gives immunity to level drain but the kit description does not mention it in the list of immunities.

The Barbarian kit descript already has it:

 

-  Can Enrage once per day per every 4 levels (starts at 1st level with one use).  Enrage gives +4 to constitution and strength for 5 rounds.  Gives a 2 point armor class penalty and +2 to saves vs magic (for 5 rounds).  Rage also gives immunity to all charm, hold, fear, maze, confusion and level drain spells.

 

2. When hit with level drain you still get the level drained message even though you do not get level drained.

Crap. I thought this was fixed, but the string suppression effects are after the spell adds immunity to itself. The short answer is we've added them, but in a place where they're ineffective. Will fix.

 

3. When winded you are supposed to get a -2 to to hit -2 to damage and -2 to armor as per the description. The -2 to hit is missing however.

This calls another EFF file with a THAC0 vs type effect. I suspect it's similar to the Blade's missing THAC0 bonus, which was applied but not reflected in the character sheet. We should change this.

 

4. Don't know if its a bug, but when winded and you cast enrage the text box says "enrage: " just like normal but you do not get the benifits of enrage. A little misleading, it should probably say "cannot enrage while winded", kind of like when you try to cast friends twice.

I think I'd feel better changing this to a null strref rather than the 'cannot enrage'string--it's not exactly correct either.

 

5. An AI issue. When you have party AI on and a character becomes winded and takes 15 damage they will try to attack the last creature that attacked them. I had Korgan attack Viconia for some damage testing, then I seperated them, and when Korgan took his 15 damage from winded he went back to attacking Viconia. I can think of a few situations where this might be a problem.

Hmm, I'm not sure what we can do here. I'm surprised that the character is prompted to attack anyone, as the target in the spell is designated as Self.

Link to comment
2. When hit with level drain you still get the level drained message even though you do not get level drained.

Crap. I thought this was fixed, but the string suppression effects are after the spell adds immunity to itself. The short answer is we've added them, but in a place where they're ineffective. Will fix.

 

Fixed as follows:

 

  
// enrage's effects misordering prevents immunity to level drain strings
COPY_EXISTING ~spcl321.spl~ ~override~
 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 // fix existing effects
   READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
   READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
   READ_ASCII ("%fx_off%" + (0x30 * (("%abil_fx_num%" + "%abil_fx_idx%") - 1))) "last_fx" (48) // reads last effect
   FOR (loops = abil_fx_num; loops > 0; loops = loops - 1) BEGIN
     READ_SHORT ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + ("%loops%" - 1)))) "opcode"
     READ_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%abil_fx_idx%" + ("%loops%" - 1)))) "spell"
     PATCH_IF (("%opcode%" = 206) AND ("%spell%" STRING_COMPARE_CASE "spcl321" = 0)) BEGIN // immunity to itself
       READ_ASCII            ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + ("%loops%" - 1)))) "immune_fx" (48) // insert new effect
       WRITE_EVALUATED_ASCII ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + ("%loops%" - 1)))) "%last_fx%" #48  // overwrite last effect
       WRITE_EVALUATED_ASCII ("%fx_off%" + (0x30 * (("%abil_fx_num%" + "%abil_fx_idx%") - 1))) "%immune_fx%" #48 // moves immunity to last
       SET "loops" = 0
     END
   END
 END
 BUT_ONLY_IF_IT_CHANGES

 

3. When winded you are supposed to get a -2 to to hit -2 to damage and -2 to armor as per the description. The -2 to hit is missing however.

This calls another EFF file with a THAC0 vs type effect. I suspect it's similar to the Blade's missing THAC0 bonus, which was applied but not reflected in the character sheet. We should change this.

 

4. Don't know if its a bug, but when winded and you cast enrage the text box says "enrage: " just like normal but you do not get the benifits of enrage. A little misleading, it should probably say "cannot enrage while winded", kind of like when you try to cast friends twice.

I think I'd feel better changing this to a null strref rather than the 'cannot enrage'string--it's not exactly correct either.

 

Enrage cooldown issues fixed as follows:

// enrage cooldown--suppress name from dialogue window and making THAC0 penalty appear in the window
COPY_EXISTING ~spcl321d.spl~ ~override~
 SAY NAME1 #-1 // removes name
 SAY NAME2 #-1 // removes name  
 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 // fix existing effects
   READ_SHORT  ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
   READ_SHORT  ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
   FOR (loops = 0; loops < abil_fx_num; loops = loops + 1) BEGIN
     READ_SHORT ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%loops%"))) "opcode"
     READ_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%abil_fx_idx%" + "%loops%"))) "eff"
     PATCH_IF (("%opcode%" = 177) AND ("%eff%" STRING_COMPARE_CASE "hitwindd" = 0)) BEGIN // replacing eff call with thac0 bonus
       WRITE_SHORT ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%loops%"))) 54  // thac0 bonus
       WRITE_BYTE  ("%fx_off%" + 0x02 + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 1   // target self
       WRITE_BYTE  ("%fx_off%" + 0x03 + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 0   // power
       WRITE_LONG  ("%fx_off%" + 0x04 + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 0xffffffff // value (-1)
       WRITE_LONG  ("%fx_off%" + 0x08 + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 0   // inc/dec
       WRITE_BYTE  ("%fx_off%" + 0x0c + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 0   // instant/limited
       WRITE_BYTE  ("%fx_off%" + 0x0d + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 2   // not dispel/not bypass
       WRITE_LONG  ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 30  // duration
       WRITE_BYTE  ("%fx_off%" + 0x12 + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 100 // prob 1
       WRITE_BYTE  ("%fx_off%" + 0x13 + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 0   // prob 2
       WRITE_LONG  ("%fx_off%" + 0x1c + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 0   // max level
       WRITE_LONG  ("%fx_off%" + 0x20 + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 0   // min level
       WRITE_LONG  ("%fx_off%" + 0x24 + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 0   // save type
       WRITE_LONG  ("%fx_off%" + 0x28 + (0x30 * ("%abil_fx_idx%" + "%loops%"))) 0   // save bonus
       SET "loops" = "%abil_fx_num%"
     END
   END
 END
 BUT_ONLY_IF_IT_CHANGES

 

Included in alpha 6.

Link to comment

Stoopid rages.

 

Barbarian rage claims and delivers: +4 str, +4 con, 2 AC penalty, and immunity to charm, hold, fear, maze, confusion, and level drain. It has undocumented stun and sleep immunities. It also claims a +2 bonus to saves v. magic but delivers a -2 penalty. I'd suggest changing the save penalty to a bonus to match the description and add the undocumented immunities to the description.

 

Berserker enrage claims and delivers: 15 HP bonus, 2 AC bonus, +2 damage, +2 THAC0, and provides immunities to charm, hold, fear, mae, imrisonment, and sleep. Berserker enrage claims to protect against stun but doesn't. It also has undocumented immunities to confusion, level drain, and feeblemind. I'd suggest adding the immunities to the description and adding stun immunity to the spell.

 

The berserker cooldown claims a -2 THAC0 penalty but only delivers -1. I'd suggest raising the penalty to -2.

Link to comment

Merged two topics on the issue, so the thread's a bit disjointed. Also glad to see that

 

The berserker cooldown claims a -2 THAC0 penalty but only delivers -1. I'd suggest raising the penalty to -2.

 

is due to a bug in my code. :)

 

Still, thoughts on the other issues in my previous post?

Link to comment

The nearest to canon I can find on berserkers and barbarians is The Complete Fighter's Handbook. And the kits abilities described therein are quite a bit different than the way the appear in BG2.

 

My opinion is that Barbarian Range and Beserker Enrage are too powerful, with no significant side effects.

 

That is why I like to include a Berserker and a Barbarian in any multi-player party that I make :)

Link to comment

Indeed, see my post at the bottom of this thread for some suggestions to make it more pnp-like. I originally thought these were simply differences between the Rashemaar Berserker and the regular version, but it seems the only difference between the two in terms of enrage is that the former gets the -3 to WIS and INT, while the latter suffers a penalty vs. missiles.

Link to comment

Archived

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

×
×
  • Create New...