public IEnumerator Move() { ShowMove(); ToggleWindow(false, false); QuadTile target = null; // Wait for click while (!target) { if (Input.GetButtonDown("Fire1")) { target = QuadTileMap.GetTarget(LayerMask.GetMask("Viable Marker")); } yield return(null); } mover.StopUpdatingPath = true; ConfirmationDialog dialog = Instantiate(dialogPrefab, transform.parent); // Wait for dialog input while (dialog.Result == DialogResult.None) { yield return(null); } if (dialog.Result == DialogResult.Yes) { Destroy(dialog.gameObject); CharacterData data = turnManager.CurrentCharacter.Data; MoveParams moveParams = moved ? data.rushParams : data.moveParams; yield return(StartCoroutine(mover.Move(turnManager.CurrentCharacter, target.Path(), moveParams, data.jumpParams))); turnManager.CurrentCharacter.LoseActionPoints(moveCost); moveCost++; if (moved) { MoveButton.interactable = false; } moved = true; } else { Destroy(dialog.gameObject); } mover.Clear(PathfindingClear.Both); ToggleWindow(true, false); }