public void ShowArrows() { for (Direction dir = Direction.NORTH; dir <= Direction.WEST; dir++) { BoardSpaceEdge edge = currentTile.GetEdge(dir); arrows[(int)dir].gameObject.SetActive(!edge.blocked); } }
public void Walk(Direction dir) { BoardSpaceEdge edge = currentTile.GetEdge(dir); if (!edge.blocked) { stepsLeft--; onStepsLeftUpdated?.Invoke(playerNumber, stepsLeft); MoveToTile(edge.otherSpace); } }
public void ThrowStone(Direction dir) { HideArrows(); BoardSpace space = currentTile; BoardSpaceEdge edge = currentTile.GetEdge(dir); while (!edge.blocked) { space = edge.otherSpace; edge = space.GetEdge(dir); } space.isVisible = true; space.RefreshVisibility(); }
public void SetEdge(Direction direction, BoardSpaceEdge edge) { edges[(int)direction] = edge; initializedEdgeCount++; }