Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
 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)));
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
            }
        }