Exemplo n.º 1
0
        public virtual void GetHit(float damage)
        {
            if (hitTimer.Test() && explosionTimer == null)
            {
                isHit        = true;
                jetColor     = Color.OrangeRed;
                dimension.X += 5;
                dimension.Y += 5;
                hitTimer.ResetToZero();
            }

            health -= damage;

            if (health > 0)
            {
                hitEffect.Play();
            }

            if (health <= 0 && explosionTimer == null)
            {
                speed          = 0f;
                canShoot       = false;
                model          = Globals.content.Load <Texture2D>("explosion");
                explosionTimer = new CustomTimer(200);
            }
        }
 public CorporalEnemyJet(Vector2 position, float speed) : base("corporal", position, speed, 5.0f)
 {
     itemChanceToSpawn    = 20;
     shootTimer           = new CustomTimer(1000);
     missileShootCooldown = new CustomTimer(10000);
     items.Add(new MedKit(position));
 }
        public MajorEnemyJet(Vector2 position, float speed)
            : base("major", position, speed, 15f)
        {
            right      = (int)(Globals.screenWidth - position.X + dimension.X);
            left       = (int)position.X;
            shootTimer = new CustomTimer(300);

            int moveTimerInterval;

            if (rand.Next(0, 2) == 1)
            {
                movesRight        = true;
                movesLeft         = false;
                moveTimerInterval = (int)(right / speed) * 14;
            }
            else
            {
                movesRight        = false;
                movesLeft         = true;
                moveTimerInterval = (int)(left / speed) * 14;
            }
            moveTimer = new CustomTimer(moveTimerInterval);

            itemChanceToSpawn = 65;
            items.Add(new Shield(position));
            items.Add(new AccuracyIncreaser(position));
            items.Add(new FireSpeedIncreaser(position));
            items.Add(new MaxHealthIncreaser(position));
        }
        public override void BehaveArtificially()
        {
            shootTimer.UpdateTimer();
            missileShootCooldown.UpdateTimer();

            MoveLeftOrRight();

            if (moveTimer != null && moveTimer.Test())
            {
                moveTimer = null;
            }

            if (moveTimer == null || (moveTimer != null && moveTimer.Test()))
            {
                Move();
            }

            if (position.Y < Globals.screenHeight / 4)
            {
                position += Physics.RadialMovement(GameGlobals.playerJet.position, position, speed);
            }

            if (!GameGlobals.playerJet.destroyed)
            {
                Rotate();
                Shoot();
            }
        }
 public ModelSpawner(string path, Vector2 position, Vector2 dimension, int maxModelCount, int spawnInterval)
     : base(path, position, dimension)
 {
     finished           = false;
     modelCounter       = 0;
     this.maxModelCount = maxModelCount < 0 ? int.MaxValue : maxModelCount;
     spawnTimer         = new CustomTimer(spawnInterval);
 }
Exemplo n.º 6
0
 public PlayerJet() : base("jet", new Vector2(Globals.screenWidth / 2, Globals.screenHeight / 2 + 100),
                           new Vector2(60, 60), 2.5f, 20f)
 {
     accuracyValue        = 10;
     bulletFireSpeed      = 700;
     missileFireSpeed     = 5000;
     isShieldActive       = false;
     shootTimer           = new CustomTimer(1000 - bulletFireSpeed);
     missileShootCooldown = new CustomTimer(10000 - missileFireSpeed);
 }
 public ItemSpawner()
 {
     spawnableItemTypes.Add(typeof(MedKit));
     spawnableItemTypes.Add(typeof(JetSpeedIncreaser));
     spawnableItemTypes.Add(typeof(FireSpeedIncreaser));
     spawnableItemTypes.Add(typeof(AccuracyIncreaser));
     spawnableItemTypes.Add(typeof(Shield));
     spawnableItemTypes.Add(typeof(MaxHealthIncreaser));
     spawnTimer = new CustomTimer(3000);
 }
        public GeneralEnemyJet(Vector2 position, float speed)
            : base("general", position, speed, 30)
        {
            shootTimer = new CustomTimer(1000);
            movesRight = true;
            movesLeft  = false;

            itemChanceToSpawn = 85;
            items.Add(new AccuracyIncreaser(position));
            items.Add(new JetSpeedIncreaser(position));
            items.Add(new MaxHealthIncreaser(position));
        }
Exemplo n.º 9
0
 private void UpdateShield()
 {
     if (shieldTimer != null)
     {
         shieldTimer.UpdateTimer();
         if (shieldTimer.Test())
         {
             jetColor       = Color.White;
             isShieldActive = false;
             shieldTimer    = null;
         }
     }
 }
        public override void BehaveArtificially()
        {
            shootTimer.UpdateTimer();

            if (moveTimer != null)
            {
                moveTimer.UpdateTimer();
                if (movesRight)
                {
                    position.X += speed;
                    if (Physics.IsOutOfArena(position))
                    {
                        movesRight = false;
                        movesLeft  = true;
                    }
                }
                else if (movesLeft)
                {
                    position.X -= speed;
                    if (Physics.IsOutOfArena(position))
                    {
                        movesRight = true;
                        movesLeft  = false;
                    }
                }
            }

            if (moveTimer != null && moveTimer.Test())
            {
                moveTimer = null;
            }

            if (moveTimer == null || (moveTimer != null && moveTimer.Test()))
            {
                Move();
            }

            if (position.Y < Globals.screenHeight / 4)
            {
                position += Physics.RadialMovement(GameGlobals.playerJet.position, position, speed);
            }

            if (!GameGlobals.playerJet.destroyed)
            {
                Rotate();
                Shoot();
            }
        }
Exemplo n.º 11
0
        public Jet(string PATH, Vector2 POSITION, Vector2 DIMENSION, float speed,
                   float _maxHealth) : base(PATH, POSITION, DIMENSION)
        {
            shootEffect     = Globals.content.Load <SoundEffect>("laser-shoot");
            explosionEffect = Globals.content.Load <SoundEffect>("explosion-effect");
            missileEffect   = Globals.content.Load <SoundEffect>("missile-effect");
            hitEffect       = Globals.content.Load <SoundEffect>("hit-effect");
            isHit           = false;
            canShoot        = true;
            this.speed      = speed;
            hitDistance     = 35f;

            jetColor  = Color.White;
            health    = _maxHealth;
            maxHealth = health;

            hitTimer  = new CustomTimer(100);
            destroyed = false;
            velocity  = new Vector2(0, 0);
        }
        public SergeantEnemyJet(Vector2 position, float speed)
            : base("sergeant", position, speed, 10)
        {
            shootTimer           = new CustomTimer(800);
            missileShootCooldown = new CustomTimer(7000);

            if (rand.Next(0, 2) == 0)
            {
                movesRight = true;
                movesLeft  = false;
            }
            else
            {
                movesRight = false;
                movesLeft  = true;
            }
            itemChanceToSpawn = 45;
            items.Add(new MedKit(position));
            items.Add(new Shield(position));
            items.Add(new MaxHealthIncreaser(position));
        }
        private void Move()
        {
            List <Bullet2D> bullets = new List <Bullet2D>(GameGlobals.playerBullets);

            foreach (Bullet2D bullet in bullets)
            {
                Vector2 playerToMe     = GameGlobals.playerJet.position - position;
                Vector2 playerToBullet = bullet.position
                                         - GameGlobals.playerJet.position;


                playerToMe.Normalize();
                playerToBullet.Normalize();



                float dotProduct = -1 * Vector2.Dot(playerToMe, playerToBullet);

                if (
                    Physics.GetDistance(position, bullet.position) < hitDistance * 10
                    &&
                    dotProduct >= 0.99f
                    )
                {
                    moveTimer = new CustomTimer(1000);
                    if (rand.Next(0, 2) == 0)
                    {
                        movesRight = true;
                        movesLeft  = false;
                    }
                    else
                    {
                        movesRight = false;
                        movesLeft  = true;
                    }
                    return;
                }
            }
        }
Exemplo n.º 14
0
        public World(Game game, Globals.PassObject resetWorld)
        {
            this.game  = game;
            ResetWorld = resetWorld;

            levelFont          = Globals.content.Load <SpriteFont>("LevelFont");
            levelShowTextTimer = new CustomTimer(3000);
            level = 1;

            playerJet                 = new PlayerJet();
            GameGlobals.playerJet     = playerJet;
            GameGlobals.playerBullets = new List <Bullet2D>();
            destroyedJetCount         = 0;

            bg1 = new ScrollingBackground("star1", new Rectangle(0, 0, 900, 675), 1);
            bg2 = new ScrollingBackground("star2", new Rectangle(0, -675, 900, 675), 1);
            GameGlobals.PassBullet   = AddBullet;
            GameGlobals.PassEnemyJet = AddEnemyJet;
            offset = Vector2.Zero;
            spawners.Add(new CorporalSpawner(new Vector2(200, -200), 20));
            mainMenuSong = Globals.content.Load <Song>("main-music");
            ui           = new UserInterface();
        }
Exemplo n.º 15
0
 public void ActivateShield()
 {
     jetColor       = Color.CornflowerBlue;
     isShieldActive = true;
     shieldTimer    = new CustomTimer(5000);
 }