public void StartTurn() { movesLeft = moveDistance; var playerPos = mapController.GetHexPositionFor(transform.position); navigationController.SetPossibleMoveDistance(playerPos, moveDistance); }
public void NavigateTo(HexPos toHexPos) { HexPos fromHexPos = mapController.GetHexPositionFor(player.transform.position); HexNode fromNode, toNode; if (navigationNodes.TryGetValue(fromHexPos, out fromNode) && navigationNodes.TryGetValue(toHexPos, out toNode)) { if (fromNode.CanReach(toHexPos, player.moveDistance)) { isPlayerNavigating = true; moveNodes = GetShortestPathAstar(fromNode, toNode); if (moveNodes.Count > 1) { // Remove start node moveNodes.RemoveAt(0); MoveTo(moveNodes[0], moveNodes.Count == 1); } } } }