I also worked a bit on the Paths, changing them over to the base/client/server pattern I've used with the other objects, as well as adding an "improvement" flagset for roads/rivers/teleporters. To help that, I made a movement definition class to take a set movement mode [walking/swimming/flying] and return the movement cost based upon the path. That then will likely be handled by a higher level "movement" action handler which will incorporate modifiers such as racial or technological bonuses. It will also likely include LoS and combat detection to assist client decision making.
I don't care for the design, but movement involves so many disparate areas [tiles, units, enemy units, tech, empire relations, FoW, racial bonuses, items...] it's neigh impossible to include it all to one spot, and hard to seperate the differing parts out cleanly.
In other news, the project is pushing 10,000 lines [9794], which is of course fairly useless as a metric. Still, I'm a little dismayed at how little the codebase actually does for such a number.