public void OnBoardClickedPrimary(Vector3 position) { var coords = HexCoordinates.FromPosition(position); switch (state) { case States.Moving: MoveIfValid(unit, coords); break; case States.Attacking: AttackIfValid(unit, coords); break; case States.OwnUnitSelected: HandleUnitSelectedAction(coords); break; case States.Building: HandleBuildAction(coords); break; default: HandleBoardClick(coords); break; } }
public bool IsProjectedCellInPlacementGrid() { // TODO this is only valid by technicality. Active indicators are all indicators, // and this will work only because during build, all active indicators are in range if (projectedCell == null) { return(false); } return(activeIndicators.Any(i => HexCoordinates.FromPosition(i.transform.position).Equals(projectedCell.Coordinates))); }
private HexCoordinates ShowPositionHandles(HexCoordinates coords, int player) { var pos = HexCoordinates.ToPosition(coords); Handles.color = Color.black; Handles.DrawSolidDisc(pos, Vector3.up, 1f); Handles.color = player == 1 ? Color.white : Color.black; Handles.DrawSolidDisc(pos, Vector3.up, 0.9f); var newPos = Handles.PositionHandle(pos, Quaternion.identity); var newCoord = HexCoordinates.FromPosition(newPos); return(newCoord); }
public void Update() { input.HandleInput(); var boardPosition = input.GetMousePositionOnBoard(); var coords = HexCoordinates.FromPosition(boardPosition); if (coords.Equals(currentCoords)) { return; } currentCoords = coords; if (isPlayerTurn) { UpdateCursor(coords); } }