public static float GetHitpoints(this BallMagnitude magnitude)
        {
            switch (magnitude)
            {
            case BallMagnitude.Standard:
                return(GameConstants.BallHitpoints.Standard);

                break;

            case BallMagnitude.Medium:
                return(GameConstants.BallHitpoints.Medium);

                break;

            case BallMagnitude.Large:
                return(GameConstants.BallHitpoints.Large);

                break;

            case BallMagnitude.Huge:
                return(GameConstants.BallHitpoints.Huge);

                break;

            default:
                throw new ArgumentOutOfRangeException("magnitude", magnitude, null);
            }
        }
Exemplo n.º 2
0
        public GridPosition FindGridPosition(IBallController ballInGrid, BallMagnitude magnitude, float angleOfImpact)
        {
            int offsetX = 0;
            int offsetY = 0;

            var magnitudeScale = magnitude.GetScale();

            if (angleOfImpact >= NORTH_EAST && angleOfImpact < SOUTH_EAST)
            {
                // Right side
                offsetX = (int)(1 * magnitudeScale);
            }
            else if (angleOfImpact >= SOUTH_EAST && angleOfImpact < SOUTH_WEST)
            {
                // Bottom side
                offsetY = (int)(1 * magnitudeScale);
            }
            else if (angleOfImpact >= SOUTH_WEST && angleOfImpact < NORTH_WEST)
            {
                // Left side
                offsetX = -1;
            }
            var gridPosition = ballInGrid.GridPosition;

            return(new GridPosition(gridPosition.X + offsetX, gridPosition.Y + offsetY));
        }
        public static float GetScale(this BallMagnitude magnitude)
        {
            switch (magnitude)
            {
            case BallMagnitude.Standard:
                return(1f);

                break;

            case BallMagnitude.Medium:
                return(2f);

                break;

            case BallMagnitude.Large:
                return(3f);

                break;

            case BallMagnitude.Huge:
                return(4f);

                break;

            default:
                throw new ArgumentOutOfRangeException("magnitude", magnitude, null);
            }
        }
Exemplo n.º 4
0
 public void SetData(BallLevelData ballLevelData)
 {
     transform.position = new Vector3(ballLevelData.XPos, ballLevelData.YPos);
     BallType           = ballLevelData.BallType;
     Magnitude          = ballLevelData.Magnitude;
 }