Skip to content

[Bug report] Something fishy with recent APR changes and the extra APR Quest Reward (new thresholds incorrect?) #402

@Silver-D

Description

@Silver-D

This is my first time playing this game ever so I'm not exactly familiar with the game's intended mechanics.
Few days ago I was in the middle of a playthrough when the new APR changes got released and my hero's APR got fixed to match the tooltips for his appropriate level (yay, thanks!).

However, I just finished Selena's second extra quest and something really doesn't seem right when she gains an extra APR. The APR level thresholds change and go haywire. I'm attaching a screenshot before and after she gets the buff. (And also how I was able to fix? it in the source for myself)

Also, as soon as she levels up after getting the buff, she even gets another APR even though she is not at the threshold for the next APR -- for a total of 5 at level 37. This shouldn't be possible according to the original tooltip?
I may be missing something as I'm not familiar with this game. Forgive if I'm misunderstanding, or if the tooltips are incorrect, etc.

Image

Additional context
I'm building from source so here is my version of the fix for my save game. Not sure if this is the correct fix, but I fixed it for myself because I can't play with 5 APR when I think shouldn't have it :(

In Game.cs in the case RewardEvent.RewardType.AttacksPerRound: block we are determining var currentAttacksPerRoundIncreaseLevels = using the partyMember.AttacksPerRound -- AFTER it has already been increased by rewardEvent.Value. So I changed

partyMember.AttacksPerRound to oldAttacksPerRound, which is the saved value calculated from the original APR before partyMember.AttacksPerRound is increased by rewardEvent.Value.

from:

if (partyMember.AttacksPerRound != oldAttacksPerRound)
{
    var currentAttacksPerRoundIncreaseLevels = partyMember.Level / Math.Max(1, (int)partyMember.AttacksPerRound);
// ...
}

to:

if (partyMember.AttacksPerRound != oldAttacksPerRound)
{
    var currentAttacksPerRoundIncreaseLevels = partyMember.Level / Math.Max(1, oldAttacksPerRound);
// ...
}

Desktop (please complete the following information):

  • OS: Linux (Fedora 42)
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingfixed in code or dataFixed in code/data but not released yet

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions