So I've been tackling the game loop stuff, meaning developing the mechanics that you engage with throughout the entire game. There's now an introduction cutscene that sets up the whole premise (though a bit scant on details and potential characterization, but everythings still placeholder) and I also got some enemies spawning and chasing you with bullets.
This was the first bump in the road as I didn't really feel like figuring out how to teleport the player and spawn a whole new scene with Damian, there are some logistics to figure out like if I'm going to do anything simular down the line (will the date take place in multiple spots? can there be multiple NPCs in the same scene? will NPCs need to change location mid scene? etc). I grinded through it though and hacked together some very messy code, but it might be a good idea to clean it up later when I know what everything is going to be for and what needs to be re-used (and what can only be used once). Later on in the project there will be probably a lot of this.
To further re-inforce the groundhog day mechanic I added a Persona like clock in the top left that indicates what time of day it is. When you do significant events like talk to an NPC or take part in a mech battle, time will go forward for x number of minutes. I don't know what the ramifications of this will be other than some events only triggering later and you having to schedule around it, but for now it's just to indicate "Hey you're now 5 minutes before asking Singuilara out, this is how Damian's power works."
As for enemies I ran into a problem where the spawner would spawn an enemy, and then the enemy would spawn a bullet, but then that would cause an infinite loop error and I spent an hour or so not understanding why. Whenever I spawn something in Godot I tend to use owner.add_child(object) I use owner because I want the root scene to be the parent of the enemy or bullet, so that for example the bullet doesn't move with the enemy or the enemy moves with the spawner. What I didn't realize is that objects that are added dynamicly technically don't have an owner (thus a null error). The bullet is trying to be created at the enemy's owner, but there is no actual owner given. So the solution was actually get_parent().add_child(object) since everything has a parent usually. So note to self from now on.
Now I'm mainly going to focus on the rest of the date scenes with Singuilara and hack together something that at least seems complete, then figure out the mech section with the buildings blown up and stuff. Then we'll have a functioning complete video game, hopefully.