示例#1
0
 public void ajouter_mainJoueur(int index, Carte carte)
 {
     _cartesEnMain.Add(index, carte);
     _nombreCartesEnMain += 1;
 }
示例#2
0
        public void poser_carte(Carte carte)
        {
            if (_attaqueValide == false)
            {
                if (_estEnTrainDAttaquer == true && _attaqueActuel.Count != 0)
                {
                    var attaque = _attaqueActuel.First(x => x.Key == _attaqueActuel.Count);

                    if (attaque.Value.afficher_nomCarte().Contains("pirate"))
                    {
                        _idCartesPirates_idJoueurs.Remove(attaque.Value.recuperer_idCarte());
                    }
                    else if (attaque.Value.afficher_nomCarte().Contains("capitaine"))
                    {
                        _idCartesCapitaines_idJoueurs.Remove(attaque.Value.recuperer_idCarte());
                    }
                    else if (attaque.Value.afficher_nomCarte().Contains("amiral"))
                    {
                        _idCarteAmiral_idJoueur.Remove(attaque.Value.recuperer_idCarte());
                    }
                }

                if (carte.GetType() == typeof(CarteMarchand))
                {
                    _cartesMarchandsTapis_etape_1.Add(_cartesMarchandsTapis_etape_1.Count + 1, carte);
                    _idCartesMarchands_idJoueurs.Add(carte.recuperer_idCarte(), _etape);
                    _aPoserMarchand      = true;
                    _estEnTrainDAttaquer = false;
                }
                else if (carte.GetType() == typeof(CartePirate))
                {
                    if (_cartesMarchandsTapis_etape_1.Count != 0 || _cartesMarchandsTapis_etape_2.Count != 0 || _cartesMarchandsTapis_etape_3.Count != 0 || _cartesMarchandsTapis_etape_4.Count != 0)
                    {
                        _idCartesPirates_idJoueurs.Add(carte.recuperer_idCarte(), _etape);
                        _attaqueActuel.Add(_attaqueActuel.Count + 1, carte);
                        _estEnTrainDAttaquer = true;
                    }
                }
                else if (carte.GetType() == typeof(CarteCapitaine))
                {
                    if (_attaquesEnCours.Count != 0)
                    {
                        _idCartesCapitaines_idJoueurs.Add(carte.recuperer_idCarte(), _etape);
                        _attaqueActuel.Add(_attaqueActuel.Count + 1, carte);
                        _estEnTrainDAttaquer = true;
                    }
                }
                else if (carte.GetType() == typeof(CarteAmiral))
                {
                    if (_attaquesEnCours.Count != 0)
                    {
                        _idCarteAmiral_idJoueur.Add(carte.recuperer_idCarte(), _etape);
                        _attaqueActuel.Add(_attaqueActuel.Count + 1, carte);
                        _estEnTrainDAttaquer = true;
                    }
                }
            }

            if (_aPoserMarchand || _attaqueValide)
            {
                _attaqueActuel = new Dictionary <int, Carte>();
                Joueur jonh = recupererJoueurCourant();
                jonh.poser_carte(carte);
                modifier_aPoserUneCarte_joueurCourant(true);
                _aPoserMarchand = false;
                _attaqueValide  = false;

                if (carte.afficher_nomCarte().Contains("pirate"))
                {
                    _cartesPiratesTapis_etape_1.Add(_cartesPiratesTapis_etape_1.Count + 1, carte);
                }
                else if (carte.afficher_nomCarte().Contains("capitaine"))
                {
                    _cartesCapitainesTapis_etape_1.Add(_cartesCapitainesTapis_etape_1.Count + 1, carte);
                }
                else if (carte.afficher_nomCarte().Contains("amiral"))
                {
                    _carteAmiralTapis_etape_1.Add(_carteAmiralTapis_etape_1.Count + 1, carte);
                }

                Dictionary <int, Carte> newCartesEnMain = new Dictionary <int, Carte>();

                foreach (var carteMain in jonh.recuperer_mainJoueur())
                {
                    newCartesEnMain.Add(carteMain.Key, carteMain.Value);
                }

                jonh.modifier_mainJoueur(newCartesEnMain);
            }
        }