Changes

Jump to navigation Jump to search
Changed formulas to use the code text, simplified references to match other pages, made some minor wording changes
Line 76: Line 76:     
===Fish Size & Quality===
 
===Fish Size & Quality===
The size of each fish caught using a Fishing Rod is dependent on the Fishing Zone, the farmer's Fishing Level, the type of fish, and how close to "Perfect" the catch was. When catching a fish, a "size factor", <samp>fishSize</samp>, is determined by the equation '''<samp>fishSize = Zone/5 * (Skill+2)/10 * Random</samp>''', where "Zone" refers to the Fishing Zone, "Skill" refers to the farmer's Fishing Level (rounded down to the nearest even value), and "Random" is a random value between 0.9 and 1.11. This size factor is then limited to a range of 0 to 1 (inclusive), where 0 represents the minimum possible fish size, and 1 represents the maximum possible fish size.<ref name="fishSize"/>
+
The size of each fish caught using a Fishing Rod is dependent on the Fishing Zone, the farmer's Fishing Level, the type of fish, and how close to "Perfect" the catch was. When catching a fish, a "size factor", <samp>fishSize</samp>, is determined by the equation <code>fishSize = Zone/5 * (Skill+2)/10 * Random</code>, where "Zone" refers to the Fishing Zone, "Skill" refers to the farmer's Fishing Level (rounded down to the nearest even value), and "Random" is a random value between 0.9 and 1.11. Also note that if the player has not reached Fishing level 10 yet, the value for Skill ranges ranges between all possible even numbers from the farmer's Fishing Level (rounded down to the nearest even value) and 10 inclusive. This size factor is then limited to a range of 0 to 1 inclusive.<ref name="fishSize"/>
   −
Each type of fish has a minimum and maximum size. When a fish is hooked, it is given an initial size based on these values and the size factor, equal to '''<samp>minFishSize + (maxFishSize - minFishSize) * fishSize + 1</samp>''', rounded down, in inches.<ref name="fishSizeRange"/> Every 0.8 seconds that the fish is not being reeled in, it shrinks by 1", to a minimum of <samp>minFishSize</samp>. Additionally, if the catch was imperfect, and the final size is equal to <samp>maxFishSize</samp> exactly, the fish size is reduced by 1".<ref name="fishShrinking"/> A consequence of this procedure is that the maximum possible fish size observed in game is typically 1 higher than the value specified in the data, which can be obtained with perfect or near-perfect catch (less than 0.8 seconds not reeling in the fish). In addition, some fish have the same <samp>minFishSize</samp> and <samp>maxFishSize</samp> in the data, such as the [[Fish#Legendary_Fish|Legendary Fish]] and non-Ghostfish Mines fish; due to the adjustment for non-perfect catches, the minimum possible size for these fish is 1 lower than the value specified in the data.
+
Each type of fish has a minimum and maximum size. When a fish is hooked, it is given an initial size based on these values and the size factor, equal to <code>minFishSize + (maxFishSize - minFishSize) * fishSize + 1</code>, rounded down, in inches.<ref name="fishSizeRange"/> The size shrinks by 1" for every 0.8 seconds that the fish is not being reeled in. However, the size cannot go below <samp>minFishSize</samp>. Additionally, if the catch was imperfect and the final size is equal to <samp>maxFishSize</samp> exactly, the fish size is reduced by 1".<ref name="fishShrinking"/> A consequence of this procedure is that the maximum possible fish size observed in game is always 1 higher than the value for <samp>maxFishSize</samp>, which can be obtained with perfect or near-perfect catch (less than 0.8 seconds not reeling in the fish). In addition, some fish have the same values for <samp>minFishSize</samp> and <samp>maxFishSize</samp>, such as the [[Fish#Legendary Fish|Legendary Fish]] and non-Ghostfish Mines fish. Due to the final adjustment for non-perfect catches, the minimum possible size for these fish is 1 lower than the value for <samp>minFishSize</samp> specified in the data.
   −
Some fish, such as the [[Desert#Fishing|Desert fish]] or [[Goby]], cannot be caught at their maximum theoretical size, as they are limited by the size of their ponds which prevent a high enough Fishing Zone for maximum size factor.
+
Some fish, namely the [[Sandfish]], [[Scorpion Carp]], and [[Goby]], cannot be caught at their maximum theoretical size, as they are limited by the size of their ponds which only have a maximum [[#Fishing Zone|Fishing Zone]] of 2.
   −
Base fish quality is directly determined by the size factor, rather than final size: a value below 0.33 corresponds to normal quality, a value between 0.33 and 0.66 corresponds to silver quality, and a value of 0.66 or higher corresponds to gold quality. This quality can be improved by one grade for each [[Quality Bobber]] equipped. It can also be improved by one grade with a perfect catch as long as the fish was at least silver quality initially. These boosts stack, with the Quality Bobber boost considered before the Perfect Catch boost. Since the maximum base fish quality is gold, the only way to get an iridium quality fish is by either getting a perfect catch or using the Quality Bobber.<ref name="fishQuality" />
+
Base fish quality is determined directly by the value of <samp>fishSize</samp>. A value below 0.33 corresponds to normal quality, a value between 0.33 and 0.66 corresponds to silver quality, and a value of 0.66 or higher corresponds to gold quality. This quality can be improved by one grade for each [[Quality Bobber]] equipped. It can also be improved by one grade with a perfect catch as long as the fish was at least silver quality initially. These boosts stack, with the Quality Bobber boost considered before the Perfect Catch boost. Since the maximum base fish quality is gold, the only way to get an iridium quality fish is by either getting a perfect catch or using the Quality Bobber.<ref name="fishQuality" />
   −
Any fish caught using a [[Training Rod]] has its size set to the minimum, and its quality set to normal, overriding the above procedure.<ref name="fishSizeTrainingRod"/>
+
Any fish caught using a [[Training Rod]] has its size set to the minimum and its quality set to normal, overriding the above procedure.<ref name="fishSizeTrainingRod"/>
    
Below is the table for the possible quality of the fish depending on the base fish quality, if the catch was perfect, and how many Quality Bobbers were used.
 
Below is the table for the possible quality of the fish depending on the base fish quality, if the catch was perfect, and how many Quality Bobbers were used.
Line 1,122: Line 1,122:  
==References==
 
==References==
 
<references>
 
<references>
<ref name="max_cast"> See <samp>Tools/FishingRod::doStartCasting</samp> in the game code.</ref>
+
<ref name="max_cast"> See <samp>FishingRod::doStartCasting</samp> in the game code.</ref>
 
<ref name="fishing_zone">The fishing zone is calculated by the function <samp>FishingRod::distanceToLand</samp>; the value is assigned to the variable <samp>clearWaterDistance</samp>.</ref>
 
<ref name="fishing_zone">The fishing zone is calculated by the function <samp>FishingRod::distanceToLand</samp>; the value is assigned to the variable <samp>clearWaterDistance</samp>.</ref>
<ref name="fishSize">The size factor is determined in the function <samp>Tools/FishingRod::startMinigameEndFunction</samp> in the game code.</ref>
+
<ref name="fishSize">The size factor is determined in the function <samp>FishingRod::startMinigameEndFunction</samp> in the game code.</ref>
<ref name="fishSizeTrainingRod">The effect of the Training Rod on Fish Size and Quality is determined in <samp>Menus/BobberBar::BobberBar</samp> in the game code.</ref>
+
<ref name="fishSizeTrainingRod">The effect of the Training Rod on Fish Size and Quality is determined in <samp>BobberBar::BobberBar</samp> in the game code.</ref>
<ref name="fishSizeRange">The values for <samp>minFishSize</samp> and <samp>maxFishSize</samp> are given in <samp>Data/Fish.xnb</samp>, while the procedure to actually calculate initial fish size is given in <samp>Menus/BobberBar::BobberBar</samp> in the game code.</ref>
+
<ref name="fishSizeRange">The values for <samp>minFishSize</samp> and <samp>maxFishSize</samp> are given in <samp>Data/Fish.xnb</samp> in the game files, while the procedure to actually calculate initial fish size is given in <samp>BobberBar::BobberBar</samp> in the game code.</ref>
<ref name="fishShrinking">The shrinking of fish from their initial size to their final size can be found in <samp>Menus/BobberBar::Update</samp> in the game code</ref>
+
<ref name="fishShrinking">The shrinking of fish from their initial size to their final size can be found in <samp>BobberBar::Update</samp> in the game code</ref>
<ref name="fishQuality">The conversion from <samp>fishSize</samp> to <samp>fishQuality</samp> can be found in <samp>Menus/BobberBar::BobberBar</samp> in the game code.</ref>
+
<ref name="fishQuality">The conversion from <samp>fishSize</samp> to <samp>fishQuality</samp> can be found in <samp>BobberBar::BobberBar</samp> in the game code.</ref>
 
<ref name="bubbles">The effects of bubbles on fishing bite times is handled in <samp>FishingRod::DoFunction</samp>, specifically at <samp>if (location.fishSplashPoint != null)</samp>.  The effect of bubbles on fish type is also in <samp>FishingRod::doFunction</samp> in the call to <samp>location.getFish</samp>, where the argument <samp>waterDepth</samp> is set to <samp>clearWaterDistance + (splashPoint ? 1 : 0)</samp>.</ref>
 
<ref name="bubbles">The effects of bubbles on fishing bite times is handled in <samp>FishingRod::DoFunction</samp>, specifically at <samp>if (location.fishSplashPoint != null)</samp>.  The effect of bubbles on fish type is also in <samp>FishingRod::doFunction</samp> in the call to <samp>location.getFish</samp>, where the argument <samp>waterDepth</samp> is set to <samp>clearWaterDistance + (splashPoint ? 1 : 0)</samp>.</ref>
<ref name="fishexp">See <samp>Tools/FishingRod::doPullFishFromWater</samp> in the game code.</ref>
+
<ref name="fishexp">See <samp>FishingRod::doPullFishFromWater</samp> in the game code.</ref>
<ref name="treasure_chance">See <samp>Tools/FishingRod::startMinigameEndFunction</samp> in the game code.</ref>
+
<ref name="treasure_chance">See <samp>FishingRod::startMinigameEndFunction</samp> in the game code.</ref>
 
<ref name="treasure">The contents of a treasure chest are determined by <samp>FishingRod::openTreasureMenuEndFunction</samp>.</ref>
 
<ref name="treasure">The contents of a treasure chest are determined by <samp>FishingRod::openTreasureMenuEndFunction</samp>.</ref>
 
<ref name="treasure_artifact">The chance of an artifact appearing in a treasure chest is higher if [[Lost Books]] are not possible, ''e.g.,'' after the Museum's collection is complete.</ref>
 
<ref name="treasure_artifact">The chance of an artifact appearing in a treasure chest is higher if [[Lost Books]] are not possible, ''e.g.,'' after the Museum's collection is complete.</ref>
 
<ref name="treasure_special">The chance of a special item appearing in a treasure chest is adjusted by <samp>LuckModifier</samp>, which is set to <samp>(1 + DailyLuck) * FishingZone/5</samp>. This means that fishing zone is the most important factor, as special items are 5x more likely to be found when caught in a fishing zone of 5 instead of 1. Special items are only 1.25x more likely to be found with maximum daily luck (0.125) instead of minimum (-0.1). For example, the chance of finding a Broken Trident varies from 0.075% (DailyLuck=-0.1, FishingZone=1) to 0.469% (DailyLuck=0.125, FishingZone=5). The page lists the chance of finding special items with neutral luck and Zone=5.</ref>
 
<ref name="treasure_special">The chance of a special item appearing in a treasure chest is adjusted by <samp>LuckModifier</samp>, which is set to <samp>(1 + DailyLuck) * FishingZone/5</samp>. This means that fishing zone is the most important factor, as special items are 5x more likely to be found when caught in a fishing zone of 5 instead of 1. Special items are only 1.25x more likely to be found with maximum daily luck (0.125) instead of minimum (-0.1). For example, the chance of finding a Broken Trident varies from 0.075% (DailyLuck=-0.1, FishingZone=1) to 0.469% (DailyLuck=0.125, FishingZone=5). The page lists the chance of finding special items with neutral luck and Zone=5.</ref>
<ref name="roe_book">If the player has not obtained the [[Jewels Of The Sea]] book before, the chances of the book appearing is <samp>0.02+0.001*X</samp>, where <samp>X</samp> is the total amount of treasure chests the player has opened. If the player has obtained the book before, the chance is constant at <samp>0.02</samp>.</ref>
+
<ref name="roe_book">If the player has not obtained the [[Jewels Of The Sea]] book before, the chances of the book appearing is <samp>0.02+0.001*X</samp>, where <samp>X</samp> is the total amount of treasure chests the player has opened. If the player has obtained the book before, the chance is constant at <samp>0.021</samp>.</ref>
 
<ref name="performtenminuteupdate">The bubbles, or 'fishSplashPoint' is placed in <samp>GameLocation::performTenMinuteUpdate</samp>.</ref>
 
<ref name="performtenminuteupdate">The bubbles, or 'fishSplashPoint' is placed in <samp>GameLocation::performTenMinuteUpdate</samp>.</ref>
 
</references>
 
</references>
4,029

edits

Navigation menu