예제 #1
0
        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;
        }
예제 #2
0
 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;
     }
 }
예제 #3
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;
                        }
                }
            }
        }