Things I added:
A key system - this was one of the hardest to get right since bools kept turning on and off when I didn’t want them to (for example, the hasKey bool would become false on death) - solved with a simple static int system of +1 -1 and =0 depending on the state the game is in.
Visual health representation - this was tricky because visual studio community would NOT accept the unityengine.UI reference for hell nor high water. I updated Unity, updated the visual studio community package manager, and googled for hours before asking on discord and when I went to screenshot the issue…it resolved its self.
Health gain - I added a max health value of 5 and life pick ups. If you pick up a life while on max health it gives you 100 points! This was easier than expected to add.
Sound and music - I managed the systems using Serialized Sound Clips so was all pretty easy.
Scene transition and death fadeout - again, pretty easy using CinemaMachine’s Storyboard function.
Ammo and ammo collection - simple-ish to add as a blend of the takelife system and the coinpickup system.
Enemy variants and health - most enemies have 1 health but the big boss has 4 and a different death sound. They also flip over when they’re killed.
Text - added a little instruction text as a static object and also a warning flashes on screen if you try to exit without the key. Added using UI - text linked to a serialized field on the level exit script.
Known issues:
Arrows: I believe there’s still a bug with this where a single arrow can be fired if you are on 0 at the start of a level or respawn.
Camera confiner not working on Level 2 - not sure why so some blue background is visible at the bottom.
Goobers float a little off the ground when they die. I could solve this by editing some sprites, but really couldn’t be bothered and considered it minor to the task at hand.
Learnt a lot and really encourage people to add to the base lectures to really hammer home the lessons at hand.