BGforgeNet / Fallout2_Unofficial_Patch

Fallout 2 Unofficial Patch, updated
https://forums.bgforge.net/viewforum.php?f=39
135 stars 10 forks source link

Sajag in Klamath has inverted reputation checks #42

Closed JuanCruzSanFran closed 4 years ago

JuanCruzSanFran commented 4 years ago

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.

burner1024 commented 4 years ago

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

JuanCruzSanFran commented 4 years ago

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.

burner1024 commented 4 years ago

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.

JuanCruzSanFran commented 4 years ago

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.