Thank you
I'm proud of what I made this Ludum Dare 46. I didn't really care about my placings but I am surprised that my Innovation place to be higher than my placing on other categories. I enjoyed playing my game when I was testing it and I'm glad other people also enjoyed it. To be honest this is a game idea of mine for a long time already except for the timed destruction of the towers that was inspired by the theme. The key input mechanic was inspired by one of my favorite games in the PS1: Trap Gunner.
I'm happy that I was able to implement the things I wanted to implement because as the deadline was nearing I was losing motivation but I told myself to just do it because I know it will be worth it in the end. I managed to stay on track and prioritize the things needed for a playable game.

I am currently working on a post jam version with the feedbacks taken into account and I am losing some motivation again :D but I will make sure to finish it even if I'm working on it slowly and bit by bit. After that, I wanna move on and join some jams in itch.io :)
Now, I want to document some of my experiences for my future self to read. You can go ahead and skip this.
What went wrong
When I was testing, I came across a bug that the tower never gets fixed but never gets destroyed either. My implementation for the tower fixing was that after the player successfully inputs the combination, there will be a short delay before the tower is restarted. Initially the delay was 1 second so I tried changing it to .2 and I thought I got rid of the bug but later on I came across the same problem. Upon further debugging and researching I found out that any Coroutine that was started will stop working if the object running it is deactivated.
As a way to show (when overheated) or hide the fix inputs when the tower is selected or unselected I was deactivating the object that contained the fix inputs. To fix it, I added a bool so that the object isn't deactivated when the tower is about to be restarted.
Another "problem" I came across is related to object pooling. The tower keeps on firing at the same enemy even if it already died (and reused again for another enemy) and is out of range. I spent a day or so debugging it. I even guessed that it might be because the enemy died in the same frame and the tower hasn't changed target. The next day I decided to look for help in the Unity forums. It was a long post. When I was about to click the submit button, I thought suddenly came to mind: "Have you set your currentTarget variable to null before acquiring another target?". So I did that and my problem was fixed! WHAT!
What went right
I had a lot of motivation right at the start and I focused on the core mechanic which is the key sequence inputs for the tower. It felt like I knew what to do and how to do it so I didn't really have problems with it.
I was quite satisfied with the organization of my code such as separation of concerns, singletone managers and all that.