Example #1
0
        public override Boolean Activate(PlayerVerticalShooter player, GameTime gameTime)
        {
            Vector2 centerDir   = new Vector2(0, -1.0f);
            double  longSpread  = Math.PI / 16;
            double  shortSpread = Math.PI / 3;

            for (int n = 0; n < longShotCount; n++)
            {
                FlameShot shot = new FlameShot(Game, spriteSheet);
                shot.PositionX = player.PositionX;
                shot.PositionY = player.PositionY;

                shot.Direction = MathFunctions.SpreadDir(centerDir, longSpread);
                shot.Initialize();
                shot.SetSpreadSpeed(random, 0.2f);
                Game.stateManager.shooterState.gameObjects.Add(shot);
            }

            for (int n = 0; n < shortShotCount; n++)
            {
                FlameShot shot = new FlameShot(Game, spriteSheet);
                shot.PositionX = player.PositionX;
                shot.PositionY = player.PositionY;

                shot.Direction = MathFunctions.SpreadDir(centerDir, shortSpread);
                shot.Initialize();
                shot.Speed *= 0.3f;
                shot.SetSpreadSpeed(random, 0.2f);
                Game.stateManager.shooterState.gameObjects.Add(shot);
            }

            return(true);
        }
        protected override void ShootingPattern(GameTime gameTime)
        {
            var spreadAngle = Math.PI / 3;

            EnemyMissileBullet missile = new EnemyMissileBullet(Game, spriteSheet);

            missile.Position  = Position;
            missile.Direction = new Vector2(0, 1.0f);
            missile.Direction = MathFunctions.SpreadDir(missile.Direction, spreadAngle);
            missile.Initialize();
            missile.Speed *= 0.6f;

            Game.stateManager.shooterState.gameObjects.Add(missile);
        }
        protected override void SecondaryShootingPattern(GameTime gameTime)
        {
            int numberOfShots = 8;

            for (int n = 0; n < numberOfShots; n++)
            {
                EnemyStrongBlueLaser bullet = new EnemyStrongBlueLaser(Game, spriteSheet);
                bullet.Position  = Position;
                bullet.Direction = MathFunctions.ScaleDirection(ShootObject.Position - Position);
                bullet.Direction = MathFunctions.SpreadDir(bullet.Direction, Math.PI / 16);
                bullet.Initialize();
                bullet.SetSpreadSpeed(random);
                bullet.Speed *= 0.35f;

                Game.stateManager.shooterState.gameObjects.Add(bullet);
            }
        }
        private void Explode()
        {
            for (int n = 0; n < fragments; n++)
            {
                MissileFragment fragment = new MissileFragment(Game, spriteSheet);
                fragment.Initialize();
                fragment.Position  = Position;
                fragment.Duration  = 400;
                fragment.Direction = MathFunctions.SpreadDir(new Vector2(0, -1), Math.PI / 3);

                float fragmentBaseSpeed = 0.6f;

                fragment.Speed  = (float)(random.NextDouble() * fragmentBaseSpeed + fragmentBaseSpeed);
                fragment.Speed *= 0.5f;

                Game.stateManager.shooterState.gameObjects.Add(fragment);
            }
        }
Example #5
0
        protected override void ShootingPattern(GameTime gameTime)
        {
            int numberOfShots = 10;

            for (int n = 0; n < numberOfShots; n++)
            {
                EnemyWeakBlueLaser laser1 = new EnemyWeakBlueLaser(Game, spriteSheet);
                laser1.Position  = Position;
                laser1.Direction = new Vector2(0, 1);
                laser1.Direction = MathFunctions.SpreadDir(laser1.Direction, Math.PI / 8);
                laser1.Initialize();
                laser1.DrawLayer = this.DrawLayer - 0.01f;
                laser1.SetSpreadSpeed(random);
                laser1.Duration *= 2;

                Game.AddGameObjToShooter(laser1);
            }
        }
        public override Boolean Activate(PlayerVerticalShooter player, GameTime gameTime)
        {
            Vector2 centerDir = new Vector2(0, -1.0f);
            double  spread    = Math.PI / 32;

            for (int n = 0; n < numberOfShots; n++)
            {
                DistanceSpreadBullet shot = new DistanceSpreadBullet(Game, spriteSheet);
                shot.PositionX = player.PositionX;
                shot.PositionY = player.PositionY;

                shot.Direction = MathFunctions.SpreadDir(centerDir, spread);
                shot.Initialize();

                shot.SetSpreadSpeed(random, 0.2f);

                Game.stateManager.shooterState.gameObjects.Add(shot);
            }

            return(true);
        }
Example #7
0
        protected override void ShootingPattern(GameTime gameTime)
        {
            int    nbrOfShots = 12;
            double spread     = Math.PI / 8;

            Vector2 initDir = MathFunctions.ScaleDirection(ShootObject.Position - Position);

            for (int n = 0; n < nbrOfShots; n++)
            {
                EnemyWeakRedLaser bullet = new EnemyWeakRedLaser(Game, spriteSheet);
                bullet.PositionX = PositionX;
                bullet.PositionY = PositionY;

                bullet.Direction = MathFunctions.SpreadDir(initDir, spread);
                bullet.Initialize();
                bullet.Duration *= 0.8f;
                bullet.Speed    *= 0.8f;

                bullet.SetSpreadSpeed(random);

                Game.stateManager.shooterState.gameObjects.Add(bullet);
            }
        }
Example #8
0
        public override Boolean Activate(PlayerVerticalShooter player, GameTime gameTime)
        {
            Vector2 centerDir = new Vector2(0, -1.0f);
            double  spread    = Math.PI / 8;

            for (int n = 0; n < numberOfShots; n++)
            {
                BasicLaser bullet = new BasicLaser(Game, spriteSheet);
                bullet.PositionX = player.PositionX;
                bullet.PositionY = player.PositionY;

                bullet.Direction = MathFunctions.SpreadDir(centerDir, spread);
                bullet.Initialize();
                bullet.Duration *= 0.8f;
                bullet.Speed    *= 1f;
                bullet.Damage   *= 0.7f;

                bullet.SetSpreadSpeed(random);

                Game.stateManager.shooterState.gameObjects.Add(bullet);
            }

            return(true);
        }