AStar is in serious need of updating. I've been writing in Flash and Perl just recently so I haven't had the time.
I've worked on
Dijkstra recently and it made me realise that extra dimensions didn't make sense when it came to travelling along a path with a specific cost. In fact AStar I've realised is pretty impossible to configure in this respect.
Teleportation won't work with AStar. It is in fact impossible to configure any 'A*' algorithm for teleportation because if it doesn't walk by the teleporter it won't find it. Only Dijkstra would account for teleportation because it doesn't search using distance, it considers the lines travelled.
And AStar is limited to a
hypercube. The makeCuboidNodes accept an array of dimensions which could have no limit, but the nodes can only measure up to 4 dimensions. But if I had connectors - no need for measuring - faster algorithm.
So...Best I can offer is this, either write your own Dijkstra, or you could adapt my Dijkstra example to your situation. It can handle non-euclidean paths - that's what it's good at, and it builds a search for the whole damned map. You would need a method though to deal with the distances built in to the Connectors so you can multiply them for your map.
Code:
void mulDistance(Node n, float m){
for(int i = 0; i < n.links.size(); i++){
Connector c = (Connector)n.links.get(i);
c.d *= m;
for(int j = 0; j < c.n.links.size(); j++){
Connector r = (Connector)c.n.links.get(j);
if(r.n == n){
r.d *= m;
}
}
}
}
My apologies for my flaky library.