GC can now climb up and down hills, as long as a given step is no more than one layer above or below his location (specifiable, of course, so that flying units can be less limited than groundies). The change was relatively simple: adding a layer to the hexmap to store cell height, and adding a simple check to getPath() that discards a potential path node if the elevation climb is larger than a specified maximum climb. Of course, the animation problem I mentioned in the previous post still stands. Right now, he "floats" to his destination cell, and it looks odd. Maybe tomorrow I'll implement a jump/climb/other type of animation and have the animation state switch to that if necessary.
All in all, I'm glad I decided to do this. It could open up some more tactical options and depth.