More puzzles -- bombchu maze
This month I worked on another type of puzzle room: the bombchu maze. Starting out I was actually experimenting with tile passability, and it turns out to work differently than I'd thought. I expected you could make one-way tiles, but instead the arrows indicate that a tile can be entered OR exited through the side pointed to, as if there's a thin wall on any edges with no arrow pointing to them. After figuring this out, I determined that this can be used to form pipe-like maze structures using less space than would be needed when you just use entire tiles for walls. So I came up with the idea of having a maze that can be changed by flipping switches to guide something through to a goal -- and what Zelda item springs to mind for such a task other than the motorized explosive, bombchus?
The technical details of this puzzle type have turned out rather difficult. I'm using DynRPG code similar to what I implemented for controlling monsters to give map events the behavior of a bombchu, but it has to pay attention to its surroundings and switch direction when it hits a pipe corner (which could be either a regular tile or a an event that looks like a tile), then explode when it hits an obstacle. It turns out that the internal IDs of the map tiles are a little more complicated than you'd think at first glance; there are ranges of IDs for the tiles that could have different appearances, like the animated water tiles and the dirt path tiles that morph according to what's around them. I had to figure out how the IDs worked and write a function to convert from them into the indices for tile passability in order to look up the passability data. It did occur to me partway through implementing this that I could just write pre-ordained paths for bombchus to follow in every puzzle I make, but that would involve making a different path for every permutation of a given maze. Besides, it sorta feels like cheating. X)