Esempio n. 1
0
 public override bool isOver(ScavengerManager scavengerManager)
 {
     if (enemiesOnScreen.Count > 0)
         return enemiesOnScreen[0].isLooted && scavengerManager.getActiveScavenger().action == 0;
     return false;
 }
Esempio n. 2
0
        public virtual void Update(GameTime gametime, ScavengerManager scavengerManager)
        {
            if (Alive && scavengerManager.getActiveScavenger().Alive)
            {
                if (wave.layout.pather.intersectsWith(Position, Width, Height, scavengerManager.getActiveScavenger().Position,
                    scavengerManager.getActiveScavenger().Width, scavengerManager.getActiveScavenger().Height))
                {
                    isFiring = true;
                    WaveManager.scavengerShotSound.Play();
                    scavengerManager.getActiveScavenger().Alive = false;
                    beginFiringTime = gametime.TotalGameTime.TotalMilliseconds;
                }
            }
            if (isFiring)
            {
                if (gametime.TotalGameTime.TotalMilliseconds - beginFiringTime > firingAnimationRate) isFiring = false;
            }

            if (Alive && !isFiring)
            {
                //Check if at trench
                if (wave.layout.pather.atTrenchEntrance(Position, Width, Height))
                {
                    //If the scavenger is there, kill both
                    if (scavengerManager.getActiveScavenger().Alive && scavengerManager.getActiveScavenger().action == 0)
                    {
                        WaveManager.scavengerShotSound.Play();
                        scavengerManager.getActiveScavenger().Alive = false;
                        beginFiringTime = gametime.TotalGameTime.TotalMilliseconds;
                        Alive = false;
                        toShoot = new Vector2(scavengerManager.getActiveScavenger().Position.X +
                            scavengerManager.getActiveScavenger().Width / 2, scavengerManager.getActiveScavenger().Position.Y
                            + scavengerManager.getActiveScavenger().Height / 4);
                    }
                    else //Otherwise, game over
                    {
                        MainGame.gameOver = true;
                    }
                }
                else
                {
                    Position = wave.layout.pather.Move(Position, true, speed);
                    EnemyTextureMap.Update();
                }
            }
        }