protected override int GetGameSpeed(SettingOptions.GameSpeed gameSpeedSetting) { var levelIndex = (int)Math.Floor(Level / increaseFallingSpeedLevelCount); var fallingSpeed = baseFallingSpeed; var normalFallingSpeed = MathHelper.Clamp((int)(baseFallingSpeed * (1f - fallingSpeedFactor * levelIndex)), minFallingSpeed, baseFallingSpeed); switch (gameSpeedSetting) { case GameSpeed.Normal: fallingSpeed = normalFallingSpeed; if (ActiveBonus?.Type == BonusType.TimeSlowdown) { fallingSpeed = fallingSpeed * slowDownPower; // if is slowdown activated return slower speeds } break; case GameSpeed.Speedup: fallingSpeed = MathHelper.Min(normalFallingSpeed, 50); // since i don't want to fall slower than normal speed is, i return slowest speed break; case GameSpeed.Falling: fallingSpeed = 5; break; } return(fallingSpeed); }
protected override int GetGameSpeed(SettingOptions.GameSpeed gameSpeedSetting) { var fallingSpeed = 16; switch (gameSpeedSetting) { case GameSpeed.Normal: if (LevelsToSpeedDic.ContainsKey(Level)) { fallingSpeed = LevelsToSpeedDic[Level]; } break; case GameSpeed.Speedup: fallingSpeed = 50; break; case GameSpeed.Falling: fallingSpeed = 5; break; } return(fallingSpeed); }
/// <summary> /// Game speed is defined by game score /// </summary> protected virtual int GetGameSpeed(SettingOptions.GameSpeed gameSpeedSetting) { return(0); }