Quality
Quality (not to be confused with Tier) is an attribute assigned to creatures and objects fished up by the player. Quality is determined by the bait the player uses and, influences the sale price of objects.
Only one fishable item does not have randomized quality; the Treasure Chest, which always has a quality of Normal.
Qualities
There are 6 qualities of fish: Normal, Shining, Glistening, Opulent, Radiant, and Alpha.
The quality of the caught fish can be determined by the number of stars displayed while reeling, and by the message displayed after catching the fish.
The likelihood of catching each quality of fish depends on the bait the player uses.
*Worms are the only tier-limited bait, and are only able to catch tier 1 and 2 fish. All other bait can catch all tiers of fish. As such, if one is attempting to catch tier 3 fish of Normal quality for Journal completion, crickets should be used and not worms.
These values are calculated by multiplying the chance of succeeding the roll by the chance of failing every roll for every higher quality.
Sale price
Quality is one of the factors for a fish's sale price. After an item's base value has been calculated based on loot weight and tier, the base value is multiplied by Quality and the size of the fish relative to the "average size".
The multipliers for quality are as so:
Normal | Shining | Glistening | Opulent | Radiant | Alpha |
---|---|---|---|---|---|
x1 | x1.8 | x4 | x6 | x10 | x15 |
Technical
In player.gd there is a dictionary containing bait data called BAIT_DATA. This dictionary contains catch_chance
, max_tier
, and quality
.
- For worms, the value of
quality
is[1.0]
. - For crickets, the value of
quality
is[1.0, 0.05]
- For leeches, the value of
quality
is[1.0, 0.15, 0.05]
- For minnows, the value of
quality
is[1.0, 0.5, 0.25, 0.05]
- For squid, the value of
quality
is[1.0, 0.8, 0.45, 0.15, 0.05]
- For nautilus, the value of
quality
is[1.0, 0.98, 0.75, 0.55, 0.25, 0.05]
- For gilded worms, the value of
quality
is[1.0, 0.99, 0.85, 0.75, 0.55, 0.12]
To determine rolled fish quality, the game:
- First defaults
quality
to "Normal" - Begins a "for" loop that iterates
q
for as many values as there are in theITEM_QUALITIES
list. As of v1.06,ITEM_QUALITIES
contains 6 values. This iteratesq
with values 0 to 5. - If a random float is less than the value in position
q
of thequality
value, thequality
variable is chance to the value ofq
. - If the size of the
quality
value minus one is less thanq
, the for loop immediately breaks. This ends the for loop once all quality chances have been rolled. e.g. rolling for the quality using squid will check 5 qualities. Onceq
's value is 5,BAIT_DATA[casted_bait]["quality"].size() - 1
(which in this case equals 5-1 which is 4) will be less thanq
(which is now 5). Subtracting 1 is required since Godot is zero-indexed and the value ofq
starts at 0. - The for loop ends and the value of the
quality
variable is printed.
- A
quality
variable value of 0 corresponds to Normal. - A
quality
variable value of 1 corresponds to Shining. - A
quality
variable value of 2 corresponds to Glistening. - A
quality
variable value of 3 corresponds to Opulent. - A
quality
variable value of 4 corresponds to Radiant. - A
quality
variable value of 5 corresponds to Alpha.