public void FreeMovement(List <Node> p)
 {
     if (rnd.inCombat == true)
     {
         cutRoam      = true;
         isMoving     = true;
         currentNode  = p[moveCount];
         tempDestNode = currentNode;
         destination  = currentNode.worldObject.transform.position + this.gameObject.GetComponent <CharacterData>().alignMod;
         Invoke("ParentNode", 0.5f);
     }
     if (moveCount < p.Count && cutRoam == false)
     {
         moveCount = moveCount + 1;
         rnd.ArtificialTickUp();
     }
     if (moveCount > p.Count && cutRoam == false)
     {
         moveCount = p.Count;
     }
     if (moveCount >= p.Count - 1 && cutRoam == false)
     {
         isMoving     = true;
         currentNode  = p[p.Count - 1];
         tempDestNode = currentNode;
         destination  = currentNode.worldObject.transform.position + this.gameObject.GetComponent <CharacterData>().alignMod;
         Invoke("ParentNode", 0.5f);
     }
     else
     {
         currentNode = p[moveCount];
         isMoving    = true;
         destination = currentNode.worldObject.transform.position + this.gameObject.GetComponent <CharacterData>().alignMod;
     }
 }