Example #1
0
        private void FireEnemyMissle()
        {
            int activeEnemyCount = 0;

            foreach (Enemy enemy in enemies)
            {
                if (enemy.CurrentState == Enemy.State.ALIVE)
                {
                    activeEnemyCount++;
                }
            }

            int drawnEnemy = random.Next(activeEnemyCount);

            foreach (Enemy enemy in enemies)
            {
                if (enemy.CurrentState == Enemy.State.ALIVE)
                {
                    drawnEnemy--;
                    if (drawnEnemy <= 0)
                    {
                        if (unusedMissles.Count > 0 && enemyMissles.Count < activeEnemyCount)
                        {
                            Missle enemyMissle = unusedMissles[0];
                            unusedMissles.RemoveAt(0);
                            enemyMissles.Add(enemyMissle);
                            enemyMissle.SetPos(enemy.GetPos());
                            SoundPlayer.Instance.PlaySound("laser");
                        }
                        return;
                    }
                }
            }
        }
Example #2
0
        public BattleScreen(GraphicsDevice device) :
            base(device)
        {
            player = new Player();
            player.RegisterListener(this);
            random = new Random();
            //enemy = new Enemy();
            playerMissle        = new Missle(-10f, -10f, true);
            playerMissle.Speed *= 1.5f;     // FIXME: jesli jest za szybki, to przelatuje przez wroga, bo nie jest wykrywana kolizja

            backgroundColor = Constans.BATTLESCREEN_BACKGROUND_COLORS[0];

            enemies = new Enemy[Constans.ENEMY_COLS, Constans.ENEMY_ROWS];

            motherShip = new MotherShip(1.1f, 0.1f);
            motherShip.CurrentState = MotherShip.State.DEAD;
            motherShipPos           = 0.0f;

            enemyMissles  = new List <Missle>();
            unusedMissles = new List <Missle>();

            for (int i = 0; i < 5; i++)
            {
                unusedMissles.Add(new Missle(-10f, -10f, false));
            }
            ;

            SetupEnemies();

            transitionState = TransitionState.NOT_VISIBLE;

            //            startBattleButton = new core2d.Button("start_battle_button");

            World.Instance.RegisterListener(this);
            GameScreenManager.Instance.LoadContentEventListeners += this.OnLoadContentEvent;
            GameScreenManager.Instance.OnActivatedEventListeners += this.OnActivatedEvent;
        }