Exemple #1
0
    private void ExploreNode(Node currentNode)
    {
        if (currentNode.CumulativeCost < AP)
        {
            foreach (Hex neighbor in BoardManager.GetNeighborsOfHex(currentNode.OwnedHex))
            {
                if (neighbor != null)
                {
                    if (currentNode.Source != neighbor && !neighbor.isOccupied())
                    {
                        Node neighborNode = MapNodes.Find(node => node == neighbor);

                        if (neighborNode == null)
                        {
                            Node NodeToAdd = GenerateNode(currentNode, neighbor);
                            if (NodeToAdd != null)
                            {
                                MapNodes.Add(NodeToAdd);
                            }
                        }
                        else
                        {
                            currentNode.Source  = CompareSourceNodes(currentNode, currentNode.Source, neighborNode);
                            neighborNode.Source = CompareSourceNodes(neighborNode, neighborNode.Source, currentNode);
                        }
                    }
                }
            }
        }
    }
Exemple #2
0
 public Node GetNodeForHex(Hex hex)
 {
     return(MapNodes.Find(node => node == hex));
 }