/// <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); }
private bool Attaque(Club c) { bool res = false; int niv = (int)(c.NiveauMoyen(Poste.POURSUIVEUR) * 100); int nivGardien; if (c == Equipe1) { nivGardien = (int)(Equipe2.NiveauMoyen(Poste.GARDIEN) * 100); } else { nivGardien = (int)(Equipe1.NiveauMoyen(Poste.GARDIEN) * 100); } int rand = UnityEngine.Random.Range(0, niv + nivGardien); if (rand < niv) { res = true; } return(res); }