//methods /// <summary> /// when the enemy runs into the player it takes damage /// </summary> /// <param name="enemy"></param> public override void ArmorAction(Enemies enemy) { enemy.Health -= 3; }
public virtual void WeaponAction(Enemies attacked, GameTime gameTime) { }
//overload for AmorAction() also overriden by child classes public virtual void ArmorAction(Enemies enemy) { }
//methods public virtual void WeaponAction(Enemies attacked) { }
/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { /*foreach (Enemies enemy in enemies) * { * enemy.Update(graphics.GraphicsDevice, ship.realPosition()); * if (ship.rectanglebox().Intersects(enemy.enemyBox)) * { * CurrentGameState = GameState.GameOver; * } * }*/ MouseState mouse = Mouse.GetState(); if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) { Exit(); } switch (CurrentGameState) { case GameState.ShDoomed: if (bgWellcome.IsClicked() == true) { CurrentGameState = GameState.MainMenu; } bgWellcome.Update(mouse); break; case GameState.MainMenu: if (btnPlay.IsClicked() == true) { CurrentGameState = GameState.Playing; } btnMenu.Update(mouse); btnPlay.Update(mouse); break; case GameState.Playing: spawn += (float)gameTime.ElapsedGameTime.TotalSeconds; ship.Move(gameTime); for (int i = 0; i < enemies.Count; i++) { Enemies enemy = enemies[i]; if (ship.KillEnemy(enemy)) { enemy.lifenemy--; if (enemy.lifenemy == 0) { enemies.Remove(enemy); if (enemy.level == 1) { PlayerStatus.AddPoints(5); } else if (enemy.level == 2) { PlayerStatus.AddPoints(20); } else if (enemy.level == 3) { PlayerStatus.AddPoints(30); } else if (enemy.level == 4) { PlayerStatus.AddPoints(50); } } i--; } } for (int i = 0; i < boss.Count; i++) { Boss bos = boss[i]; if (ship.KillBoss(bos)) { bos.lifeboss--; if (bos.lifeboss == 0) { boss.Remove(bos); PlayerStatus.AddPoints(1000); } i--; } } foreach (Boss bos in boss) { bos.Update(graphics.GraphicsDevice, ship.realPosition()); } foreach (Enemies enemy in enemies) { enemy.Update(graphics.GraphicsDevice, ship.realPosition()); if (ship.rectanglebox().Intersects(enemy.enemyBox)) { playerDead.Play(); PlayerStatus.RemoveLife(); for (int i = 0; i < enemies.Count; i++) { Enemies enemy1 = enemies[i]; if (ship.rectanglebox().Intersects(enemy1.enemyBox)) { enemies.Remove(enemy1); } } if (PlayerStatus.IsGameOver) { CurrentGameState = GameState.GameOver; } break; } } foreach (Boss bos in boss) { bos.Update(graphics.GraphicsDevice, ship.realPosition()); if (ship.rectanglebox().Intersects(bos.bossBox)) { playerDead.Play(); PlayerStatus.RemoveLife(); for (int i = 0; i < boss.Count; i++) { Boss bos1 = boss[i]; boss.Remove(bos1); } if (PlayerStatus.IsGameOver) { CurrentGameState = GameState.GameOver; } int sec = 3; while (sec > 0) { sec--; } break; } } LoadEnemies(); if (Input.WasKeyPressed(Keys.P)) { paused = !paused; } if (Input.WasKeyPressed(Keys.B)) { useBloom = !useBloom; } break; case GameState.GameOver: break; } base.Update(gameTime); }