public SpaceShip(GameStructure i_Game, ePlayerNumber i_PlayerNumber, string i_AssteName, SpaceShipsManager i_SpaceShipManager) : base(i_AssteName, i_Game) { SpaceShipManager = i_SpaceShipManager; Bullets = new List <Bullet>(); ScoreAsText = new TextAsSprite(i_Game); m_PlayerNumber = i_PlayerNumber; Score = 0; m_Speed = 145; m_AssteName = i_AssteName; IsShootableActive = true; m_SpaceShipSouls = new List <Sprite>(); initSouls(); m_ShootSound = SoundFactoryMethod.CreateSound(i_Game, eSoundName.SSGunShot); m_LifeDie = SoundFactoryMethod.CreateSound(Game as GameStructure, eSoundName.LifeDie); }
public override void Initialize() { base.Initialize(); Background = new Background(Game, k_AssteNameForBackground, 1) { DrawOrder = int.MaxValue }; if (m_CurrentLevel == 1) { m_SpaceShipsManager = new SpaceShipsManager(GameStructure, this) { ShouldIDispose = false }; m_SpaceShipsManager.NotifiyGameOver += GameOver; Add(m_SpaceShipsManager); } else { Add(m_SpaceShipsManager); } m_MotherShip = new EnemyMotherShip(GameStructure) { GameScreen = this }; m_enemyMatrixManager = new EnemyMatrixManager(GameStructure, this) { Rows = m_Rows, Cols = m_Coll, ExtraEnemyPointsForLevel = m_ExtraEnemyPointsForLevel, MaxNumOfActiveBulletsForEnemy = m_MaxNumOfActiveBulletsForEnemy }; m_BarricadeManager = new BarricadeManager(GameStructure, this) { Velocity = m_BarricadeVelocity, DrawOrder = int.MinValue }; m_MotherShip.WhenIDie += m_SpaceShipsManager.onWhenMotherShipDie; m_enemyMatrixManager.NotifyEnemyDiedToGameManager += m_SpaceShipsManager.onWhenEnemyDie; m_enemyMatrixManager.NotifyAllEnemysAreDead += goToNextLevel; m_enemyMatrixManager.NotifyGameOver += GameOver; Add(m_MotherShip); Add(m_enemyMatrixManager); Add(m_BarricadeManager); Add(Background); }