/// <summary> /// /// </summary> public void Lancer() { mFenetre.MouseButtonReleased += new EventHandler <MouseButtonEventArgs>(GestionJeu); objectifs = new String[3]; Random rand = new Random(); int rnd; int i = 0; do { rnd = rand.Next(3); if (!objectifs.Contains(liste_objectifs[rnd])) { objectifs[i] = liste_objectifs[rnd]; i++; } } while (i < 3); RessourceAudio.Instance.MusiqueMenu.Stop(); RessourceAudio.Instance.MusiqueJeu.Play(); while (mContinuer) { mFenetre.DispatchEvents(); if (Keyboard.IsKeyPressed(Keyboard.Key.Escape)) { mContinuer = false; break; } if (Mouse.IsButtonPressed(Mouse.Button.Left) && mSourisActivee) { StartTimer(); } switch (mEtape) { case Etape.ACTIVER_BONUS: mPopUpBonus.ActiverEcouteurs(); if (mPopUpBonus.Reponse == "OUI") { mEtape = Etape.CHOISIR_BONUS; mPopUpBonus.Reponse = "NDEF"; // reset Reponse PopUp } else if (mPopUpBonus.Reponse == "NON") { if (mMaisonPlacees == true) { mEtape = Etape.PIOCHER; } else { mEtape = Etape.PLACER_MAISON; } mPopUpBonus.Reponse = "NDEF"; // reset Reponse PopUp } break; case Etape.CHOISIR_BONUS: mScroll.ActiverEcouteurs(); mPopUpBonus.DesactiverEcouteurs(); break; case Etape.PIOCHER: mJoueurCourant.CarteTerrain = mJoueurCourant.Piocher(); mEtape = Etape.FIN_TOUR; break; case Etape.FIN_TOUR: mMaisonPlacees = false; compteurBonus = 0; SupprimerListeBonus(); mJoueurCourant.RecupererBonus(mPlateau); ChangerJoueur(); bonusDejaUtilise = false; if (mJoueurCourant.m_listeBonus.Count == 0) { mEtape = Etape.PLACER_MAISON; } else { mEtape = Etape.ACTIVER_BONUS; RemplirListeBonus(); } break; case Etape.FIN_PARTIE: foreach (JoueurHumain j in mJoueurs) { int score = j.m_maisonsPlacees.Count; foreach (String nomObjectif in objectifs) { if (nomObjectif == "Explorateur") { score += Objectif.Explorateur(mPlateau, j.Couleur); } if (nomObjectif == "Ouvrier") { foreach (KeyValuePair <Coordonnee, Terrain> c in mCaseSpeciales) { Tuple <Coordonnee, Terrain> c2 = new Tuple <Coordonnee, Terrain>(c.Key, c.Value); score += Objectif.Ouvrier(mPlateau, c2, j.Couleur); } } if (nomObjectif == "Chevalier") { score += Objectif.Chevalier(mPlateau, j.Couleur); } if (nomObjectif == "Mineur") { score += Objectif.Mineur(mPlateau, j.m_maisonsPlacees); } if (nomObjectif == "Pecheur") { score += Objectif.Pecheur(mPlateau, j.m_maisonsPlacees); } } j.Score = (Int16)score; } mContinuer = false; break; default: mScroll.DesactiverEcouteurs(); break; } m_boiteInfo.ModifierTextes(mJoueurCourant.Couleur, mJoueurCourant.CarteTerrain, mJoueurCourant.NbMaisons); mCamera.MiseAJour(); m_boiteInfo.PositionnerBoite(mCamera); Dessiner(); } RessourceAudio.Instance.MusiqueJeu.Stop(); Ins.Fenetre.SetView(Ins.Fenetre.DefaultView); }