Answered Don't get xp from bump in quality from a perfect catch [Windows]

BlaDe

Farmer
FishingRod has this code:

C#:
        if (fishQuality >= 2 && wasPerfect)        {

            this.fishQuality = 4;

        }

        else if (fishQuality >= 1 && wasPerfect)

        {

            this.fishQuality = 2;

        }

        if (who == null)

        {

            return;

        }

        if (!Game1.isFestival() && who.IsLocalPlayer && !fromFishPond && fishIsObject)

        {

            int experience = Math.Max(1, (fishQuality + 1) * 3 + fishDifficulty / 3);
The fishQuality used to determine experience is the one passed into the method, not this.fishQuality.

This may be on purpose but felt it was worth posting about.
 

BeenASon

Planter
I'm sorry but could you explain a bit better? I don't know C# only basic Python so I'm confused.
FishingRod has this code:

C#:
        if (fishQuality >= 2 && wasPerfect)        {

            this.fishQuality = 4;

        }

        else if (fishQuality >= 1 && wasPerfect)

        {

            this.fishQuality = 2;

        }

        if (who == null)

        {

            return;

        }

        if (!Game1.isFestival() && who.IsLocalPlayer && !fromFishPond && fishIsObject)

        {

            int experience = Math.Max(1, (fishQuality + 1) * 3 + fishDifficulty / 3);
The fishQuality used to determine experience is the one passed into the method, not this.fishQuality.

This may be on purpose but felt it was worth posting about.
 

BlaDe

Farmer
I didn't include this line from further up:

this.fishQuality = fishQuality;

this.fishQuality is what the actual quality of the fish will be. It is set based on fishQuality, which has been passed into the method.

When you perfect a fish, if it had quality, the quality gets bumped to the next tier.

You also get xp based on quality.

The xp you get does not take into account the quality bump a perfect catch gives you.
 

FilthyGorilla

Local Legend
I've always just considered this deliberate, but that could just be me disillusioned by the fact that it's been like that for as long as perfect catches have been
 

Pathoschild

Developer
That's because there's a separate XP multiplier for perfect catches.

For example, let's say you caught a pufferfish (difficulty 80) with a perfect catch:
fish qualitycurrent (original quality + multiplier)proposed (raised quality)
silver32 * 2.4 = 76 XP35 XP
gold35 * 2.4 = 84 XP41 XP

Or for a carp (difficulty 15):
fish qualitycurrent (original quality + multiplier)proposed (raised quality)
silver11 * 2.4 = 26 XP14 XP
gold14 * 2.4 = 33 XP20 XP

So the current multiplier gives more XP than you'd get from just using the new quality level in the formula.
 

FilthyGorilla

Local Legend
That's because there's a separate XP multiplier for perfect catches.

For example, let's say you caught a pufferfish (difficulty 80) with a perfect catch:
fish qualitycurrent (original quality + multiplier)proposed (raised quality)
silver32 * 2.4 = 76 XP35 XP
gold35 * 2.4 = 84 XP41 XP

Or for a carp (difficulty 15):
fish qualitycurrent (original quality + multiplier)proposed (raised quality)
silver11 * 2.4 = 26 XP14 XP
gold14 * 2.4 = 33 XP20 XP

So the current multiplier gives more XP than you'd get from just using the new quality level in the formula.
I think the primary question was more about why both don't trigger (getting the perfect catch boosted xp for the iridium quality fish/gold quality fish).

Is it simply because the boosted quality is a secondary to perfect catches (you're technically catching a gold quality fish that's boosted or silver quality fish that's boosted), it gives some additional reason to use quality bobber, or something else?
 

BlaDe

Farmer
Im not proposing removing the perfect multiplier, just swapping out fishQuality with this.fishQuality

The boost from the quality bobber gets accounted for, this would make the boost from a perfect catch more consistent
 

Pathoschild

Developer
A perfect catch has two distinct effects:
  • multiplying the XP by 2.4;
  • and raising the caught fish by one quality level.
The XP formula uses the original quality because the perfect catch is already represented in the XP gain by the explicit multiplier, they're not meant to stack. So to answer the original question, yep that is deliberate.
 
Top