public override bool isOver(ScavengerManager scavengerManager) { if (enemiesOnScreen.Count > 0) return enemiesOnScreen[0].isLooted && scavengerManager.getActiveScavenger().action == 0; return false; }
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(); } } }