public void LoadHitObjects() { if (Timer.Ticks < Duration.TotalMilliseconds && Timer.IsStarted == true) { foreach (HitObject o in Level.Beatmap.HitObjects) { if (Timer.Ticks == o.StartTime - (Level.Beatmap.DifficultyApproachRate * Speed[0])) { int index = HitObjects.FindIndex(f => f.X == o.StartPosition.X); if (index == -1) { TotalHits++; HitObjects.Add(new Cube(DefaultColor, o.StartPosition.X, -50, Size, Size, false, false)); Random gen = new Random(); if (gen.Next(100) < 40) { HitObjects.Add(new Cube(DefaultColor, o.StartPosition.X + 10, -150, 20, 20, false, true)); } } } } } else if (Timer.Ticks > Duration.TotalMilliseconds && State.GetType() != typeof(GameEnded)) { Timer.Stop(); SplashKit.StopMusic(); SetState(new GameEnded()); } }