public override void LoadContent() { // Adjust for testing. LevelType levelType = MyGame.Manager.ConfigManager.GlobalConfigData.LevelType; if (LevelType.Test == levelType) { // Load level configuration data. Byte levelNo = Constants.TEST_LEVEL_NUM - 1; MyGame.Manager.LevelManager.LoadLevelConfigData(levelType, levelNo); LevelConfigData levelConfigData = MyGame.Manager.LevelManager.LevelConfigData; levelType = (LevelType)Enum.Parse(typeof(LevelType), levelConfigData.LevelType, true); levelNo = Convert.ToByte(levelConfigData.LevelNo); MyGame.Manager.LevelManager.SetLevelType(levelType); MyGame.Manager.LevelManager.SetLevelNo(levelNo); LevelType = MyGame.Manager.LevelManager.LevelType; LevelIndex = MyGame.Manager.LevelManager.LevelIndex; } else { LevelType = MyGame.Manager.LevelManager.LevelType; LevelIndex = MyGame.Manager.LevelManager.LevelIndex; MyGame.Manager.LevelManager.LoadLevelConfigData(LevelType, LevelIndex); } LevelConfigData = MyGame.Manager.LevelManager.LevelConfigData; // Resets all relevant score level info, MyGame.Manager.ScoreManager.ResetLevel(); // Bullets. MyGame.Manager.BulletManager.Reset(LevelConfigData.BulletMaxim, LevelConfigData.BulletFrame, LevelConfigData.BulletShoot); // Enemies. MyGame.Manager.EnemyManager.Reset(LevelType, LevelConfigData); // Explosions. MyGame.Manager.ExplosionManager.Reset(LevelConfigData.EnemySpawn, LevelConfigData.ExplodeDelay); // Sprites. MyGame.Manager.SpriteManager.Reset(LevelType, MyGame.Manager.LevelManager.LevelNo); levelName = MyGame.Manager.LevelManager.LevelName; levelValu = MyGame.Manager.LevelManager.LevelValu; base.LoadContent(); // Must set this after base load content. enemyTotalText = EnemyTotal.ToString().PadLeft(3, '0'); MyGame.Manager.RenderManager.SetGridDelay(LevelConfigData.GridDelay); MyGame.Manager.StateManager.SetKillSpace(Vector2.Zero); MyGame.Manager.EnemyManager.SpawnAllEnemies(); MyGame.Manager.SpriteManager.LargeTarget.SetHomeSpot(); MyGame.Manager.SoundManager.StopMusic(); SongType songType = MyGame.Manager.SoundManager.GetGameMusic(LevelIndex); MyGame.Manager.SoundManager.PlayGameMusic(songType); }
public void Reset(LevelType theLevelType, LevelConfigData theLevelConfigData) { levelType = theLevelType; levelConfigData = theLevelConfigData; maxEnemySpawn = levelConfigData.EnemySpawn; if (maxEnemySpawn <= 0) { maxEnemySpawn = 1; } if (maxEnemySpawn > Constants.MAX_ENEMYS_SPAWN) { maxEnemySpawn = Constants.MAX_ENEMYS_SPAWN; } EnemyTotal = levelConfigData.EnemyTotal; if (EnemyTotal <= 0) { EnemyTotal = 1; } // Ensure max total takes precedence over spawn. if (maxEnemySpawn > EnemyTotal) { maxEnemySpawn = EnemyTotal; } // Reset all enemies but not the list as will clear. for (Byte index = 0; index < maxEnemySpawn; index++) { EnemyList[index].Reset(); } // Important: collections MUST be cleared on Reset() to ensure stability! Clear(); enemyDelays.Clear(); enemyRotates.Clear(); enemyMoves.Clear(); EnemyStart = 0; EnemySpawn = 0; EnemyStartText = EnemyStart.ToString().PadLeft(3, '0'); EnemyTotalText = EnemyTotal.ToString().PadLeft(3, '0'); EnemyPercentage = 0.0f; }