Turtle Shop™!

Last time, I posted a quick video of various UI/HUD elements in action, and said that the Turtle Shopa"c was up next.

Well... here it is, in all its splendor!

Amazing, isn't it?

Upon entering or exiting the shop, I simply enable and disable (as appropriate) the ingame HUD and the shop HUD -- I did this by placing the contents of each in a empty GameObject "folder", and enabling/disabling those folders.

Currently, you can upgrade your default projectile's fire rate and damage per hit. There are 3 levels to each (including the starting level). I had to shift some data around and put them on the actual projectile instead of more globally, but it was an easy & expected change.

While in the shop, the game is paused. I did this by setting the Time.timeScale value to 0.0f when entering the shop, and back to 1.0f again when exiting the shop.

The shop buttons change color to indicate whether or not you can afford the next level, as well as whether or not the selected upgrade has been maxed out. I did this by setting the disabled color, and toggling the interactable flag of the button. There's a tiny bug here where the colors aren't set directly when the shop is opened, so it will fade from "too expensive" to "can buy" instead just being the correct color immediately. This will be fixed before the next update.

I display the currency cost associated with each upgrade level, as well as your current currency.

Next I'll be wanting to add some "restart level" functionality (while keeping upgrade levels/currency intact). I've been holding off on doing this for no reason in particular, and I should just get it done.

Once that's out of the way, I think I'll implement some object pooling for enemies, currency and projectiles -- again mainly to just get it done. Once complete, I think I'll take stock of what I have and make some sort of rough plan for moving forwards. I think it's looking not-too-horrible compared to my initial scoping, which is always nice, but I wouldn't be too surprised if some of the more ambitious features will have to be cut.