/// <summary> /// checks if any object has collided with the player or player bullets /// </summary> public void DetectColl() { List <Entity> dead_Badguy = new List <Entity>(); List <Entity> dead_playerBullet = new List <Entity>(); //loop through //Entities vs. player foreach (Entity enemy in current_Enemies) { if (enemy.hitbox.IntersectsWith(player.hitbox)) { if (player.HitPlayer(enemy)) { var sound = new MediaPlayer(); sound.Open(new Uri(System.Environment.CurrentDirectory + "/Resources/hurtplayer.wav", UriKind.Absolute)); Application.Current.Dispatcher.BeginInvoke(new Action(() => sound.Play())); } if (!(enemy is Boss)) { if (enemy.Hit()) { dead_Badguy.Add(enemy); } } if (enemy is Powerup) { player.powerup = (enemy as Powerup).type; // Added by Jo //if ((enemy as Powerup).type == PowerUp.ExtraLife || // (enemy as Powerup).type == PowerUp.ExtraBomb ) player.Activate_Powerup(); dead_Badguy.Add(enemy); } } } //Player Bullets vs. entities foreach (Entity bullet in player_fire) { foreach (Entity enemy in current_Enemies) { if (bullet.hitbox.IntersectsWith(enemy.hitbox)) { dead_playerBullet.Add(bullet); bullet.Hit(); if (enemy.Hit()) { var sound = new MediaPlayer(); sound.Open(new Uri(System.Environment.CurrentDirectory + "/Resources/damage.wav", UriKind.Absolute)); Application.Current.Dispatcher.BeginInvoke(new Action(() => sound.Play())); dead_Badguy.Add(enemy); score += 50 * 1; if (enemy is Powerup) { player.powerup = (enemy as Powerup).type; player.Activate_Powerup(); } } } } } foreach (Entity e in dead_Badguy) { current_Enemies.Remove(e); } foreach (Bullet b in dead_playerBullet) { player_fire.Remove(b); } }