Exemplo n.º 1
0
    /// <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);
    }