예제 #1
0
        public void ajouter_attaque(Carte carteAttaquant, Carte carteMarchand)
        {
            if (carteAttaquant.afficher_nomCarte().Contains("capitaine"))
            {
                Carte temp = null;

                foreach (var carte in _attaquesEnCours)
                {
                    if (carte.Value.recuperer_idCarte() == carteMarchand.recuperer_idCarte())
                    {
                        if (carte.Key.afficher_nomCarte().Contains("capitaine"))
                        {
                            temp = carte.Key;
                        }
                    }
                }

                if (temp != null)
                {
                    _attaquesEnCours.Remove(temp);
                    _idCartesCapitaines_idJoueurs.Remove(temp.recuperer_idCarte());
                }
            }

            _attaquesEnCours.Add(carteAttaquant, carteMarchand);
        }
예제 #2
0
        public void poser_carte(Carte carte)
        {
            _nombreCartesEnMain -= 1;

            var recup = _cartesEnMain.First(x => x.Value.recuperer_idCarte() == carte.recuperer_idCarte());

            _cartesEnMain.Remove(recup.Key);
        }
예제 #3
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);
            }
        }