public static bool Collision_Heros_ExplosionStatues(List<Statue> _statues, Heros heros1, Heros heros2, MoteurParticule particule, SoundBank soundBank) { if (_statues.Count != 0) { for (int i = 0; i < _statues.Count; i++) { if (heros1.Rectangle.Intersects(particule.Rectangle_Hadoken_Statue(_statues[i]))) { ServiceHelper.Get<IGamePadService>().Vibration(50); soundBank.PlayCue("CriMortHero"); return true; } if (heros2 != null) { if (heros2.Rectangle.Intersects(particule.Rectangle_Hadoken_Statue(_statues[i]))) { ServiceHelper.Get<IGamePadService>().Vibration(50); soundBank.PlayCue("CriMortHero"); return true; } } } } return false; }
public void Update(GameTime gameTime, MoteurParticule particule) { timer += gameTime.ElapsedGameTime.TotalSeconds; if (timer > 2) { AudioEngine.SoundBank.PlayCue("Bruitage des statues"); particule.UpdateExplosions_statue(this); timer = 0; } }
public static void Collision_Armes_Ennemis(Heros heros1, Heros heros2, List<Garde> _gardes, List<Patrouilleur> _Patrouilleurs, List<Patrouilleur_a_cheval> _PatrouilleursAChevaux, List<Boss> _Boss, List<Shuriken> listeShuriken, MoteurParticule particule, SoundBank soundBank, ref List<EnnemiMort> morts, ContentManager content) { if (_gardes.Count != 0) { for (int i = 0; i < _gardes.Count; i++) { if (_gardes[i].Rectangle.Intersects(particule.Rectangle_Hadoken_heros1(heros1)) || _gardes[i].Rectangle.Intersects(particule.Rectangle_Ball_heros1(heros1)) || heros1.AttaqueAuSabre(_gardes[i].X, _gardes[i].Y)) { soundBank.PlayCue("cri"); morts.Add(new EnnemiMort(new Vector2(28 * _gardes[i].X, 28 * _gardes[i].Y), content, EnnemiMort.TypeEnnemiMort.garde)); if (_gardes[i].Alerte) GameplayScreen.Alerte = false; _gardes.RemoveAt(i); break; } if (heros2 != null) { if (_gardes[i].Rectangle.Intersects(particule.Rectangle_Hadoken_heros2(heros2)) || _gardes[i].Rectangle.Intersects(particule.Rectangle_Ball_heros2(heros2)) || heros2.AttaqueAuSabre(_gardes[i].X, _gardes[i].Y)) { soundBank.PlayCue("cri"); morts.Add(new EnnemiMort(new Vector2(28 * _gardes[i].X, 28 * _gardes[i].Y), content, EnnemiMort.TypeEnnemiMort.garde)); if (_gardes[i].Alerte) GameplayScreen.Alerte = false; _gardes.RemoveAt(i); break; } } for (int j = 0; j < listeShuriken.Count; j++) if (_gardes[i].Rectangle.Intersects(listeShuriken[j].Rectangle)) { soundBank.PlayCue("cri"); ServiceHelper.Get<IGamePadService>().Vibration(20); morts.Add(new EnnemiMort(new Vector2(28 * _gardes[i].X, 28 * _gardes[i].Y), content, EnnemiMort.TypeEnnemiMort.garde)); if (_gardes[i].Alerte) GameplayScreen.Alerte = false; _gardes.RemoveAt(i); listeShuriken.RemoveAt(j); break; } } } if (_Patrouilleurs.Count != 0) { for (int i = 0; i < _Patrouilleurs.Count; i++) { if (_Patrouilleurs[i].Rectangle.Intersects(particule.Rectangle_Hadoken_heros1(heros1)) || _Patrouilleurs[i].Rectangle.Intersects(particule.Rectangle_Ball_heros1(heros1)) || heros1.AttaqueAuSabre(_Patrouilleurs[i].X, _Patrouilleurs[i].Y)) { soundBank.PlayCue("Bruitage patrouilleur"); morts.Add(new EnnemiMort(new Vector2(28 * _Patrouilleurs[i].X, 28 * _Patrouilleurs[i].Y), content, EnnemiMort.TypeEnnemiMort.patrouilleur)); if (_Patrouilleurs[i].Alerte) GameplayScreen.Alerte = false; _Patrouilleurs.RemoveAt(i); break; } if (heros2 != null) { if (_Patrouilleurs[i].Rectangle.Intersects(particule.Rectangle_Hadoken_heros2(heros2)) || _Patrouilleurs[i].Rectangle.Intersects(particule.Rectangle_Ball_heros2(heros2)) || heros2.AttaqueAuSabre(_Patrouilleurs[i].X, _Patrouilleurs[i].Y)) { soundBank.PlayCue("Bruitage patrouilleur"); morts.Add(new EnnemiMort(new Vector2(28 * _Patrouilleurs[i].X, 28 * _Patrouilleurs[i].Y), content, EnnemiMort.TypeEnnemiMort.patrouilleur)); if (_Patrouilleurs[i].Alerte) GameplayScreen.Alerte = false; _Patrouilleurs.RemoveAt(i); break; } } for (int j = 0; j < listeShuriken.Count; j++) if (_Patrouilleurs[i].Rectangle.Intersects(listeShuriken[j].Rectangle)) { soundBank.PlayCue("Bruitage patrouilleur"); morts.Add(new EnnemiMort(new Vector2(28 * _Patrouilleurs[i].X, 28 * _Patrouilleurs[i].Y), content, EnnemiMort.TypeEnnemiMort.patrouilleur)); if (_Patrouilleurs[i].Alerte) GameplayScreen.Alerte = false; _Patrouilleurs.RemoveAt(i); listeShuriken.RemoveAt(j); break; } } } if (_PatrouilleursAChevaux.Count != 0) { for (int i = 0; i < _PatrouilleursAChevaux.Count; i++) { if ((_PatrouilleursAChevaux[i].Rectangle.Intersects(particule.Rectangle_Hadoken_heros1(heros1)) || _PatrouilleursAChevaux[i].Rectangle.Intersects(particule.Rectangle_Ball_heros1(heros1))) || heros1.AttaqueAuSabre(_PatrouilleursAChevaux[i].X, _PatrouilleursAChevaux[i].Y)) { soundBank.PlayCue("Bruitage cheval"); morts.Add(new EnnemiMort(new Vector2(28 * _PatrouilleursAChevaux[i].X, 28 * _PatrouilleursAChevaux[i].Y), content, EnnemiMort.TypeEnnemiMort.patrouilleurACheval)); if (_PatrouilleursAChevaux[i].Alerte) GameplayScreen.Alerte = false; _PatrouilleursAChevaux.RemoveAt(i); break; } if (heros2 != null) { if (_PatrouilleursAChevaux[i].Rectangle.Intersects(particule.Rectangle_Hadoken_heros2(heros2)) || _PatrouilleursAChevaux[i].Rectangle.Intersects(particule.Rectangle_Ball_heros2(heros2)) || heros2.AttaqueAuSabre(_PatrouilleursAChevaux[i].X, _PatrouilleursAChevaux[i].Y)) { soundBank.PlayCue("Bruitage cheval"); morts.Add(new EnnemiMort(new Vector2(28 * _PatrouilleursAChevaux[i].X, 28 * _PatrouilleursAChevaux[i].Y), content, EnnemiMort.TypeEnnemiMort.patrouilleurACheval)); if (_PatrouilleursAChevaux[i].Alerte) GameplayScreen.Alerte = false; _PatrouilleursAChevaux.RemoveAt(i); break; } } for (int j = 0; j < listeShuriken.Count; j++) if (_PatrouilleursAChevaux[i].Rectangle.Intersects(listeShuriken[j].Rectangle)) { soundBank.PlayCue("Bruitage cheval"); morts.Add(new EnnemiMort(new Vector2(28 * _PatrouilleursAChevaux[i].X, 28 * _PatrouilleursAChevaux[i].Y), content, EnnemiMort.TypeEnnemiMort.patrouilleurACheval)); if (_PatrouilleursAChevaux[i].Alerte) GameplayScreen.Alerte = false; _PatrouilleursAChevaux.RemoveAt(i); listeShuriken.RemoveAt(j); break; } } } if (_Boss.Count != 0) { for (int i = 0; i < _Boss.Count; i++) { if (_Boss[i].Vie < 0 || heros1.AttaqueAuSabre(_Boss[i].X, _Boss[i].Y)) { _Boss[i].Vie = 5; morts.Add(new EnnemiMort(new Vector2(28 * _Boss[i].X, 28 * _Boss[i].Y), content, EnnemiMort.TypeEnnemiMort.boss)); if (_Boss[i].Alerte) GameplayScreen.Alerte = false; _Boss.RemoveAt(i); soundBank.PlayCue("cri"); } else if (_Boss[i].Rectangle.Intersects(particule.Rectangle_Hadoken_heros1(heros1))) { _Boss[i].Vie = _Boss[i].Vie - 2; soundBank.PlayCue("Bruitage boss touche"); particule.Rectangle_Hadoken_Est_Present_Hero1 = false; } else if (_Boss[i].Rectangle.Intersects(particule.Rectangle_Ball_heros1(heros1))) { _Boss[i].Vie = _Boss[i].Vie - 2; soundBank.PlayCue("Bruitage boss touche"); particule.Rectangle_Ball_Est_Present_Hero1 = false; } else if (heros2 != null) { if (_Boss[i].Vie < 0 || heros2.AttaqueAuSabre(_Boss[i].X, _Boss[i].Y)) { _Boss[i].Vie = 5; morts.Add(new EnnemiMort(new Vector2(28 * _Boss[i].X, 28 * _Boss[i].Y), content, EnnemiMort.TypeEnnemiMort.boss)); if (_Boss[i].Alerte) GameplayScreen.Alerte = false; _Boss.RemoveAt(i); soundBank.PlayCue("cri"); } else if (_Boss[i].Rectangle.Intersects(particule.Rectangle_Hadoken_heros2(heros2))) { _Boss[i].Vie = _Boss[i].Vie - 2; soundBank.PlayCue("Bruitage boss touche"); particule.Rectangle_Hadoken_Est_Present_Hero2 = false; } else if (_Boss[i].Rectangle.Intersects(particule.Rectangle_Ball_heros2(heros2))) { _Boss[i].Vie = _Boss[i].Vie - 2; soundBank.PlayCue("Bruitage boss touche"); particule.Rectangle_Ball_Est_Present_Hero2 = false; } } for (int j = 0; j < listeShuriken.Count; j++) if (_Boss.Count > 0 && _Boss[i].Rectangle.Intersects(listeShuriken[j].Rectangle)) { // une fois que le shuriken a touché le boss, le boss regarder vers le heros if (listeShuriken[j].Direction == Vector2.UnitY) _Boss[i].SourceRectangle = new Rectangle(26, 0, 16, 24); else if (listeShuriken[j].Direction == -Vector2.UnitX) _Boss[i].SourceRectangle = new Rectangle(26, 33, 16, 24); else if (listeShuriken[j].Direction == -Vector2.UnitY) _Boss[i].SourceRectangle = new Rectangle(26, 64, 16, 24); else if (listeShuriken[j].Direction == Vector2.UnitX) _Boss[i].SourceRectangle = new Rectangle(26, 97, 16, 24); soundBank.PlayCue("Bruitage boss touche"); _Boss[i].Vie--; listeShuriken.RemoveAt(j); break; } } } }