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); } }
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); } }
public void SetData(BallLevelData ballLevelData) { transform.position = new Vector3(ballLevelData.XPos, ballLevelData.YPos); BallType = ballLevelData.BallType; Magnitude = ballLevelData.Magnitude; }