BGforgeNet/Fallout2_Unofficial_Patch

v18 : Balthas's script has an incorrect karma check

Question2 opened this issue · 2 comments

From MCBALTHA.ssl :

procedure Node995 begin
   if ( (global_var(TOWN_REP_VAR) < 0) or (global_var(TOWN_REP_VAR) <= KARMA_SWORD_OF_DESPAIR) ) then begin
      call Node017;
   end else if (global_var(TOWN_REP_VAR) == 0) then begin
      call Node018;
   end else begin
      call Node011;
   end
end

This is the part that gets called when you introduce yourself to Balthas and ask what the problem is. He responds in one of three ways :

  • If the player's town rep is below 0 OR town rep is lower than -500, he will say that he wants no trouble from you
  • If the player's town rep is exactly 0, he will respond as if he has not heard about you
  • Otherwise, he will that he has heard good things about you from a passing caravan and will tell you to take Laddie with you to find Jonny

The first check should obviously be checking the player's karma stat with KARMA_SWORD_OF_DESPAIR, not TOWN_REP_VAR which is their reputation in Modoc.

The second problem is that there is supposed to be a karma check for low karma players, but none for high karma players. This is inconsistent and doesnt make sense given the dialog text (he specifically says that he has heard good things about you from a passing caravan).

Here's the fix :

procedure Node995 begin
   if ( (global_var(TOWN_REP_VAR) >= 0) or (check_general_rep >= KARMA_SHIELD_OF_HOPE) ) or (dude_perk(PERK_cult_of_personality)) then begin // ( (global_var(TOWN_REP_VAR) < 0) or (check_general_rep <= KARMA_SWORD_OF_DESPAIR) ) then begin
      //call Node017; low rep response
      call Node011;
   end else if ( (global_var(TOWN_REP_VAR) < 0) or (check_general_rep <= KARMA_SWORD_OF_DESPAIR) ) then begin // ( (global_var(TOWN_REP_VAR) >= 0) or (check_general_rep >= KARMA_SHIELD_OF_HOPE) ) or (dude_perk(PERK_cult_of_personality)) then begin
      //call Node018; // no rep response
      call Node017;
   end else begin
      //call Node011; // high rep response
      call Node018;
   end
end

What this does :

  • If the player's town rep is above 0 OR their karma is above 500 OR the player has the cult of personality perk, he will tell you that he has heard good things about you and ask Laddie to help you find Jonny
  • If the player's town rep is below 0 OR their karma is below -500, he will tell you that he wants no trouble from you
  • Otherwise, he has not heard about you

Karma is a bitch... in Fallout 2.
There's evidence that critters should use general reaction check, not direct values.
I did some work here, but it's far from being complete.

The fact that its checking KARMA_SWORD_OF_DESPAIR heavily implies its supposed to be a karma check, but its checking the modoc rep gvar instead so it doesnt work.