예제 #1
0
    /// <summary>
    /// Simule le match et donne directement le résultat final
    /// </summary>
    public void Simuler()
    {
        float n1    = Equipe1.NiveauMoyen(Poste.POURSUIVEUR);
        float n2    = Equipe2.NiveauMoyen(Poste.POURSUIVEUR);
        int   n1i   = (int)(n1 * 10);                              //Niveau moyen poursuiveur equipe 1
        int   n2i   = (int)(n2 * 10);                              //Niveau moyen poursuiveur equipe 2
        int   nV1   = (int)(Equipe1.NiveauMoyen(Poste.ATTRAPEUR)); //Niveau attrapeur equipe 1
        int   nV2   = (int)(Equipe2.NiveauMoyen(Poste.ATTRAPEUR)); //Niveau attrapeur equipe 2
        int   temps = 0;

        while (!_termine)
        {
            temps++;
            int rand = UnityEngine.Random.Range(0, n1i + n2i);
            if (rand < n1i) //Equipe 1
            {
                AjouterPossession1(60);
                if (Attaque(Equipe1))
                {
                    Score1 += 10;
                    Evenements.Add(new EvenementMatch(Equipe1, Buteur(Equipe1), temps, TypeEvenement.BUT));
                }
            }
            else
            {
                AjouterPossession2(60);
                if (Attaque(Equipe2))
                {
                    Score2 += 10;
                    Evenements.Add(new EvenementMatch(Equipe2, Buteur(Equipe2), temps, TypeEvenement.BUT));
                }
            }
            int randVif = UnityEngine.Random.Range(0, 4500);
            if (randVif < nV1)
            {
                _termine = true;
                _score1 += 150;
                _vif     = true;
                Evenements.Add(new EvenementMatch(Equipe1, Attrapeur(Equipe1), temps, TypeEvenement.VIF_ATTRAPE));
            }
            else if (randVif >= nV1 && randVif < nV2)
            {
                _termine = true;
                _score2 += 150;
                Evenements.Add(new EvenementMatch(Equipe2, Attrapeur(Equipe2), temps, TypeEvenement.VIF_ATTRAPE));
            }
        }
        Temps = Temps.AddMinutes(temps);
    }