public void Sweep() { for (var i = Levels.Count - 1; i >= 0; i--) { var level = Levels[i]; if (level.Marked == true) { if (Terrain != null && Terrain.OnCalculateLevel != null) { Terrain.OnCalculateLevel(level, null); } SgtTerrainLevel.MarkForDestruction(level); Levels.RemoveAt(i); } } }