This is the continuation of BONUS Fishing Guide
Our task is to catch all the fish. Of course, we can sail a little on the sea and fish for fish, but after a while we realize that we will catch many but certainly not all the fish in a finite amount of time this way.
If we look in the JavaScript console, we can see that there are two actions behind the button for casting and reeling in the fishing rod: castReelBtn.click()
and reelItInBtn.click()
. So let's try it directly in the console with a DOS attack (Duration On Sea :-) ):
PROMPT: Please create a Javascript code wich executes castReelBtn.click();
then waits 1 second then executes reelItInBtn.click();
, all in a endless loop
ChatGPT: Certainly! To create a JavaScript code that clicks a button with an ID castReelBtn
, waits for 1 second, and then clicks another button with an ID reelItInBtn
, and does this in an endless loop, you can use setInterval()
and setTimeout()
. Here's a simple script to accomplish this:
Update: I have modified my first script with a newer version which is less "intrusive". This one reels in the fish only if one has been caught, not every 2 seconds regardless if there is a fish or not. Please ignore the script in the screenshot.
setInterval(() => {
// Wait for 1 second and then click 'reelItInBtn' button
setTimeout(() => {
if (getComputedStyle(reelItInBtn)['backgroundColor'] == 'rgb(255, 0, 0)') {
console.log("reel in");
reelItInBtn.click();
} else if (castReelBtn.style.display == 'block') {
console.log("cast reel");
castReelBtn.click();
}
}, 500); // 1000 milliseconds = 1 second
}, 1000); // This sets the interval to 2 seconds (1 second waiting +1 second for action)
So we position our boat in a nice spot and let the automatic fish angler do the work for us. After a while, our basket is completely full except for 3 fish.
We got the tip that there must be a hint in the source code that shows where the fish can be found. By right-clicking on Investigate, we quickly see that the developers have "hidden" a fish heatmap. If we call up this page, we can see for each fish the place where it is most frequently found.
First we have to find the fish that we are missing. Of course, we don't count them ourselves, but use simple Linux on-board tools.
First we download the fish heatmap and save it as fishdensityref.html
. Then we look at our playerData
object and copy the fish found into a fish_caught.txt
file:
cat fish.txt | grep "\"name\"" | cut -d "\"" -f 4 | sed "s/The//g" | sed "s/^ //g" | sort | uniq > fish_caught.txt
cat fishdensityref.html | grep "<h3>" | egrep -o "<h3>.*?</h3>" | sed "s/<h3>//g" | sed "s/<\/h3>//g" | sed "s/The//g" | sed "s/^ //g" | sort | uniq > fish_available.txt
diff fish_caught.txt fish_available.txt
52a53
> Flippity Flan Flopper
79a81
> Glittering Gummy Whipray
112a115
> Piscis Cyberneticus Skodo
To find the right spot with the boat, simply replace the minimap shown at the bottom left with the relevant heatmap for the fish. If we fish there for a while, we can also get the missing fish.
Poinsettia McMittens says at the end
You managed to catch every fish? You're like the fishing version of a Christmas miracle!
Now, if only you could teach me your ways... but then again, I'm already pretty fabulous at everything I do.
And that's my beautiful collage (AI generated btw.):