BGforgeNet/Fallout2_Unofficial_Patch

Sajag in Klamath has inverted reputation checks

JuanCruzSanFran opened this issue · 4 comments

Being friendly, giving additional info and allowing to rent a room with low town reputation and being hostile, lying and denying a rent with high town reputation.
Lines in question:

Correct line could be found in Slim's script

Bug is present inside killap restoration version too.

Slim is an ok dude, Sajag is shifty dude, so this is questionable.

Sajag is shifty dude, so this is questionable.

I too though so, but it doesn't make sense in the end.

 if (TOWN_REPUTATION < 5) then
      Reply("You're our kind of people. You came to the right tavern to spend your money. What can I do for you, pal?");
   else
      Reply("You don't seem to be too popular in this part of town. Well, maybe the jury's still out on you. How can I help you?");

...

  if (TOWN_REPUTATION < 5) then
      NMessage("Looks as though you don't have enough money for that right now. Sorry, friend. No credit here. (smiles)");
   else
      NMessage("Just like one of your kind to try and get something for nothing. No money, no service; now get out.");

...

  if (TOWN_REPUTATION < 5) then
      Reply("Relax, pal; it's just what we call the beer here. (chuckles) This is the Golden Gecko, remember?");
   else
      Reply("It's just beer. Golden Gecko, Gecko Piss? Are you slow or what? (shakes his head) Tribals, sheesh.");

...

  if (TOWN_REPUTATION < 5) then
      Reply("Well, now that we've got first things first out of the way... how can I help you? (smiles)");
   else
      Reply("Nice of you to drink with us lowlifes. (snickers) Just what do you want anyway?");

...

   if (TOWN_REPUTATION < 5) then
      Reply("Well information's what it's all about, pal. What do you want to know about?");
   else
      Reply("Yeah? What the heck do you want to know about?");

...

   if (TOWN_REPUTATION < 5) then
      Reply("Always plenty of rooms here for our friends. Only going to cost you $20 for eight hours of safe and comfortable shut-eye. A whole room to yourself. Have a party.");
   else
      NMessage("We don't have any rooms here, pal. Sorry, full up.");

...

   if (TOWN_REPUTATION < 5) then begin
      Reply("Hey pal, thanks for the information. My friends down in the Den aren't worried about any competition anymore. (evil grin)");
   end else begin
      Reply("Thanks for the information, friend. The town council, um, voted, to shut down Whiskey Bob's still. He won't be poisoning anyone else for a while. (sincere looking smile)");

Killap`s version makes even less sense. Cult of Personality should make even bad guys like you, but against all logic - the better you are received in Klamath - the worse Sajag treats you.

Being shifty might be plausible explanation but when he asks you about Bob's still, answering
NOption("I might know that. What's it worth to you?",Node910,004);
will reduce town's reputation

procedure Node910 begin
   if (local_var(LVAR_910_before) == 0) then begin
      set_local_var(LVAR_910_before,1);
      tr:=global_var(GVAR_TOWN_REP_KLAMATH);
      set_global_var(GVAR_TOWN_REP_KLAMATH,tr-2);
   end
   call Node012;
end

Which will make him ... like you? Maybe I'm wrong, but something seems fishy.

Yes, with dialog lines your version seems more plausible. I'm convinced.

CoP is a separate issue. It affects reaction, but direct reputation checks don't acction for reaction, and I think changing that would be out of UP scope. See #4, if you have something to add, feel free to.

CoP is a separate issue

Nah, that thing doesn't bother me, really, just the usage here in Sajag`s convo:

if (TOWN_REPUTATION < 5 and not(has_trait(TRAIT_PERK, dude_obj, PERK_cult_of_personality))) then // added by killap - not(has_trait(TRAIT_PERK, dude_obj, PERK_cult_of_personality))

So as I said before – makes even less sense. But if you invert it to

if (TOWN_REPUTATION > 4 or (has_trait(TRAIT_PERK, dude_obj, PERK_cult_of_personality))) then (btw, it's still the same line from Slim's script)

it works perfectly.