Was sick and/or busy for a while. The maze now picks some minimally-distant starting points for the entrance, some treaure, and a new beast, the minotaur. A* pathing has been added for the minotaur, overriding regular AI. I found a bug (after a couple hours) in the MIT license A* pathfinding algorithm some guy provided. Left him a note, but he hasn’t updated his website in a year. :\
The minotaur is intermittently audible as it stalks you through the labyrinth, a temporary compass and verbal cue warning you of his direction and approximate distance.
The magic thread can now be used in the labyrinth to return to the entrance, if the minotaur is not on the entrance or right behind you. It’s not an item, just a permanent ability for being in the labyrinth. There’s a simple thread render in the labyrinth on the hero’s previous tile. Not tracking all thread yet.. that might be cool though.
Added minotaur and thread graphics for the labyrinth, introduced dynamic class instantiation for beasts. Broke labyrinth out from the maze class. Cleaned up some inheritence naming convention, LabyrinthPlans versus LabyrinthMaps and whatnot.
Found a great, subtle bug in a very low level piece of code, the grid. Grid keeps track of its dimensions explicitly, and in the case where it had to add a new column (as opposed to row, whatever) it was not doing so. This was exposed when I started rendering pre-scouted maps for debugging the labyrinth. If this were a serious business, we’d have unit tests to catch that sort of thing.