The Fishing Game
# The Fishing Game
Hi!! This my fishing game. Here's a bit of an explanation that you also get ingame:
The aim of the game is to reach level 100 as quickly as possible. Catch the rarest fish you can and level up! You can sell your fish in the shop. Rarer fish bring in more gold. You can use this gold to purchase bait, which is needed to catch fish, and rods, which make catching rarer fish easier. New types of fish are unlocked as you level up, and at higher levels, it's easier to catch fish. The game saves your progress at the end of each day, so you can just log in again and pick up where you left off.
Not gonna lie, it's pretty fun.
***
## Backstory
I made this game last July. The reason I choose fishing was mainly because it makes plurals easier - the plural of most types of fish is the same as the singular ;) (This doesn't work for anchovies though... or mythical creatures. Oh well). To make it I did have to learn a little about using classes and objects - I find them really useful now though. My coding's definitely developed a bit since I made this (it's a mess), but I can't really be bothered to make the code any neater (I did a tiny bit). I have edited it a bit since I originally made it to make it ready for the game jam. Here are some of the additions (spoiler for past level 100!!) :
* There are new "mythicals" which are extremely rare fantasy creatures, like mermaids. They can only be encountered after level 100. You can't sell them, though the game remembers which ones and how many you've seen. You need the special new moonstone rod.
* The game's harder now, in that the XP needed to level up increases exponentially as you go up the levels. I really should have had that from the beginning, because levelling up was way too quick.
* Some new types of fish!
* Highscore board for how many days it takes to reach level 100. I'm not sure if this was in the original fishing game that I posted in July, but I don't think it was. It's empty currently because the new XP-level scale has made all the previous highscores made by me and my family during testing unfair. Let's see who get's the lowest!
* Rarest fish stat. Within the rarity boundaries like common, uncommon, rare ect, there are varying rarities based on a number. If you catch a fish with the same rarity number as your rarest fish stat, it counts as rarer if it's unlocked at a higher level. Basically, higher level is used to decide rarity in a couple of cases. The point is, I wanted to add something that made the game more orientated to getting the rarest fish - kinda like pokemon. Anyone got the blue whale?
* Changed the rod names from "default, alright, decent, good, great" ect. to "wooden, bamboo, copper, iron, steel" ect, just for added character. The only one that stayed the same was the awesome golden rod ;)
***
## In the Future...
I've got a few ideas for what I want to add to the fishing game...
* A little addition of telling you the current highscore when you sign up, or when you log in, or at the top each day in game. I just don't really know which one would be best. Let me know what you want!
* More fish of course! I just don't want to bombard you with them. Maybe if some of you guys really like the game I'll put a personalised fish in for you ;)
* More ideas post level 100. Maybe some cool non-mythical fish.
* Having the option to change rods using ones you've already bought, because at the moment if you want to change your rod you have to repurchase any you've already bought and that's just dumb.
* New rods with cool properties, like extra attempts per day, or unlocking specific types of fish, unlocked at certain levels.
* Maybe, but probably not, lengths of fish - they'd be a mean length for each type, and the fish you caught would be around this. The price could depend on length. There could be a new stat with longest fish caught? I feel like this is just too complicated for my simple little fishing game though.
* Music! I feel like it would really benefit from some tunes but I don't know how to implement that. I'd have to look in to it.
* Your suggestion here. Seriously, I would really love it if you guys could tell me what you want to see, if you like the game of course.
***
Well that's it. I really hope you guys like it. If there's any bugs let me know, and if you want any improvements, let me know too! Thanks so much for trying it out! (also sorry that it doesn't fit the cash theme. I edited it to make it more appropriate to the cash theme, but it kinda sucked. I prefer the cutesy fishing element)
On a final note, let me know if you encounter all the mythicals! That would be seriously cool!
Edit: don't really care if you don't like that it's in all lower case. I think it looks nicer.
***
## Change Log since posting
* Input validation for a, b, c at the start of the day, to avoid the "press enter and run up your days" error
* Input validation for logging in or signing up
* More input validation for selling some fish, plus added capability for selling multiple fish at a time (not all fish) and fixing a bug that would've prevented fish with spaces in their name - eg electric eel - to be sold.
* Fixed the printing of high scores so that it's in actually in the correct order, plus accounting for ties.
* Disallowed "-" characters in the username, which would've messed up the accounts file, had it been working anyway.
* Lowered the power of the rods and raised the prices for a more difficult game ... sorry if the highscores are now unfair but I can't let it be the same game forever :(
* More input validation in the shop... it never ends
* Weirdly, more input validation in the shop, I thought I caught it all, but nope. thanks for catching that, TechGamer
* Added the "fishedex"!! It's amazing! It's literally just a pokedex. go to the shop to see it. Unfortunately this is another thing you will need to tell me about to save on to your account (obviously if you don't care about the fishedex, there's no need to remember how many individual fish you've caught). Repl.it's file system is still broken and it's not working consistently for me either anymore, but you might be able to go into the accounts.txt file and copy the code for your account (the whole line beginning with your username) to easily tell me the pokedex data. Also, check out the crazy boolean code for a little congratulations message if you fill up the whole fishedex. I honestly have no idea if it works or not. If you do manage to catch em all then tell me if this crashes or you get a congratulations. hope you all like the fishedex, thanks to Hamloid for the idea!
***
### New: Competition!
Anyone who can reach level 100 in under 300 days can have a personalised mythical! Screenshot the highscore board once you reach 300 and tell about what you want your mythical to be. Maybe they'll have even more XP than normal mythicals. Good luck!!
***
**Important - known bug - the logging in account system is not working. Don't leave the page or refresh. I'm really sorry about this bug. It works for me but obviously not other users. edit - doesn't work for me either anymore :(**
**Temporary fix - screenshot or type in your stats - username, password, level, gold, bait, what number day you're on, rod, rarest fish, inventory contents and any mythicals encountered [and fishedex data if you care. Try going into accounts.txt to find your account; copy the line starting with your username and comment it here to make it easier for both of us. however, the file saving isn't working very consistently so it might not even save it during your repl anymore]. I'll manually save them for you so you can log in and return to that state. Also, if you reach level 100, tell me what day you did it on so I can save your highscore too.**
**Also - I know that the account system isn't secure. I'm looking into google API's to fix this problem, since it would be cool to learn something new. I'm sorry that I haven't got round to this yet; I'm really busy with school. Logging into someone else's account can't actually affect anything at the moment though because the account system is broken anyway :( I wasn't really thinking about security when I wrote the game.**
**Don't forget to upvote if you enjoyed the game! Thanks so much to everyone who has done so, or commented, already!**