This project is in a good enough state to be played and was a personal learning exercise. The final build was with Unity 2018.2.0f2, but it can be opened and played with other version of Unity. A tilemap and pallet was used for map building and waypoints are used for the enemy AI pathfinding. This means each level must have its own waypoints manually placed, but it only takes a minute to do and is far simpler than using A* pathing.
I tried to keep my code naive throughout and as such there is no abstraction, and I never saw a good reason to implement it. I heavily relied on google and unity forums for troubleshooting and a few times I referenced Unity tutorials for help. I only watched a couple tutorial episodes before jumping in so there was a bunch of time spent debugging.
The current version lives and can be played at my website