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.