Despite not feeling so great, I was able to redo the scripting language framework I was using. What I decided to do was this: since I already decided to keep the map editor super-bare bones, it would make more sense to simply use C# + the super-simple scripting system I already have in place. This basically means that I make a unique function for each room that gets called when a room is loaded. It sounds kind of unwieldy but it’s not that bad, actually.
I knew that C#’s “delegates” were a lot like C/C++’s “function pointers”, so that helped a lot in implementing the above. Delegates also made it a cinch for me to take it a step further and include continuous condition checking. It’s hard to explain how important/useful this is, but in the video above you can see how already I was able to implement things like “shutter doors” that open when you defeat all the enemies, switches that you interact with to do stuff, and more.
Even though it isn’t much, you can start to get a sense of how much easier it is to do complex things with this new system. For fun, I made the boss say something when it has 1 HP left. Having this flexibility will definitely make for easier development and more interesting in-game stuff.
I still have a lot of things to implement until this demo of the intro dungeon is nearly finished, but it’s already looking nice!