void _ToggleArrow(Cell cell, Direction dir) { if (cell.ToggleArrow(dir)) { playerCursor.AddAndExpireArrows(cell); } else { playerCursor.RemoveArrow(cell); } }
IEnumerator Play() { done = false; while (!done) { var size = board.boardDesc.size; Cell cell; if (Cell.CellsBeingWalkedOn.Count > 0 && Random.value > 0.2f) { cell = Cell.CellsBeingWalkedOn.ElementAt(Random.Range(0, Cell.CellsBeingWalkedOn.Count)); } else { cell = board.CellAtCoord(new Vector2Int(Random.Range(0, size.x), Random.Range(0, size.y))); } var screenPt = Camera.main.WorldToScreenPoint(cell.GetSurfaceCenter()); targetScreenPos = screenPt; yield return(RandomDelay(1.0f, 2.0f)); if (cell.IsEmpty()) { playerCursor.VisualClick(); var toHomebase = homebase.transform.position - cell.transform.position; toHomebase.y = 0; var dirToHomebase = NearestDirection(toHomebase.normalized); //var dir = Cell.RandomDirection(); var dir = dirToHomebase; if (cell.ToggleArrow(dir, PlayerIndex)) { playerCursor.AddAndExpireArrows(cell); } } yield return(RandomDelay(0.2f, 0.5f)); } coro = null; }