Beispiel #1
0
 private static void traitementAutreCible(IAvecCapacite cible, CapaciteDTO capacite, NetworkInstanceId netIdCarteSourceCapacite)
 {
     //TODO utilisation de nbCible
     if (capacite.Capacite == ConstanteIdObjet.ID_CAPACITE_MODIF_NB_CARTE_PIOCHE)
     {
         if (cible is DeckMetierAbstract)
         {
             CapaciteMetier capaciteMetier = convertCapaciteDTOToMetier(capacite, netIdCarteSourceCapacite);
             cible.addCapacity(capaciteMetier);
         }
         //TODO autre cible?
     }
     else if (capacite.Capacite == ConstanteIdObjet.ID_CAPACITE_PERTE_TOUR_JEU || capacite.Capacite == ConstanteIdObjet.ID_CAPACITE_DISSIMULER_PLATEAU)
     {
         if (cible is Joueur)
         {
             CapaciteMetier capaciteMetier = convertCapaciteDTOToMetier(capacite, netIdCarteSourceCapacite);
             cible.addCapacity(capaciteMetier);
         }
         //TODO autre cible
     }
     else if (capacite.Capacite == ConstanteIdObjet.ID_CAPACITE_MODIF_NB_PLACE_PLATEAU)
     {
         //TODO en cas de nombre nzgatif desactiver emplacement
         //TODO en cas de nombre positif mettre l'emplacement sur un autre
     }
 }
Beispiel #2
0
    /*******************IAvecCapacity*****************/

    public void addCapacity(CapaciteMetier capaToAdd)
    {
        if (capaToAdd.IdTypeCapacite == ConstanteIdObjet.ID_CAPACITE_MODIF_PRODUCTION_RESSOURCE)
        {
            capaToAdd.transformToAddMode(ProductionWithCapacity);
        }
        else if (capaToAdd.IdTypeCapacite == ConstanteIdObjet.ID_CAPACITE_MODIF_STOCK_RESSOURCE)
        {
            capaToAdd.transformToAddMode(StockWithCapacity);
        }

        listCapaciteRessource.Add(capaToAdd);
    }
Beispiel #3
0
 /*********************************IAvecCapacite*********************/
 public void addCapacity(CapaciteMetier capaToAdd)
 {
     listCapaciteDeck.Add(capaToAdd);
 }
Beispiel #4
0
 /*********************************IAvecCapacite*********************/
 public void addCapacity(CapaciteMetier capaToAdd)
 {
     listEffetCapacite.Add(capaToAdd);
 }
Beispiel #5
0
    private static void traitementCapaciteRessource(CapaciteDTO capacite, List <RessourceMetier> ressourcesCible, IAvecCapacite cibleSelectionne, Joueur joueurCarteSource, NetworkInstanceId netIdCarteSource /*, NetworkInstanceId netIdJoueurAction, NetworkInstanceId netIdJoueurCible, int actionAppelante*/)
    {
        if (capacite.Capacite == ConstanteIdObjet.ID_CAPACITE_MODIF_PRODUCTION_RESSOURCE ||
            capacite.Capacite == ConstanteIdObjet.ID_CAPACITE_MODIF_STOCK_RESSOURCE)
        {
            //Cas ou l on rajoute une capaciteMetier
            foreach (RessourceMetier ressource in ressourcesCible)
            {
                if (cibleSelectionne is CarteBatimentMetier || cibleSelectionne is CarteDefenseMetier || cibleSelectionne is CarteVaisseauMetier)
                {
                    CapaciteDTO    capaciteRessource = getRessourceFromCarte(capacite, cibleSelectionne, ressource.TypeRessource);
                    CapaciteMetier capaciteMetier    = convertCapaciteDTOToMetier(capaciteRessource, netIdCarteSource);
                    ressource.addCapacity(capaciteMetier);
                }
                else
                {
                    CapaciteMetier capaciteMetier = convertCapaciteDTOToMetier(capacite, netIdCarteSource);
                    ressource.addCapacity(capaciteMetier);
                }
            }
        }
        else if (capacite.Capacite == ConstanteIdObjet.ID_CAPACITE_VOL_RESSOURCE && null != joueurCarteSource)
        {
            foreach (RessourceMetier ressource in ressourcesCible)
            {
                CapaciteDTO capaciteUtile = null;
                if (ressource.NetIdJoueur != joueurCarteSource.netId)                   //on ne peut se voler soit même

                {
                    if (cibleSelectionne is CarteBatimentMetier || cibleSelectionne is CarteDefenseMetier || cibleSelectionne is CarteVaisseauMetier)
                    {
                        capaciteUtile = getRessourceFromCarte(capacite, cibleSelectionne, ressource.TypeRessource);
                    }
                    else
                    {
                        capaciteUtile = capacite;
                    }



                    int stockActuel = ressource.Stock;

                    int newStock     = getNewValue(stockActuel, capaciteUtile.Quantite, capaciteUtile.ModeCalcul);
                    int montantVoler = newStock - stockActuel;

                    if (ressource.Stock < montantVoler)
                    {
                        montantVoler = ressource.Stock;
                    }

                    ressource.Stock -= montantVoler;
                    int montantReelVole = joueurCarteSource.addRessourceServer(ressource.TypeRessource, montantVoler);

                    if (montantReelVole != montantVoler)
                    {
                        ressource.Stock += montantVoler - montantReelVole;
                    }
                }
            }
        }
        else if (capacite.Capacite == ConstanteIdObjet.ID_CAPACITE_MODIF_TYPE_RESSOURCE)
        {
            foreach (RessourceMetier ressource in ressourcesCible)
            {
                CapaciteDTO capaciteUtile;
                if (cibleSelectionne is CarteBatimentMetier || cibleSelectionne is CarteDefenseMetier || cibleSelectionne is CarteVaisseauMetier)
                {
                    capaciteUtile = getRessourceFromCarte(capacite, cibleSelectionne, ressource.TypeRessource);
                }
                else
                {
                    capaciteUtile = capacite;
                }

                int stockActuel = ressource.Stock;

                int newStock       = getNewValue(stockActuel, capaciteUtile.Quantite, capaciteUtile.ModeCalcul);
                int montantEchange = newStock - stockActuel;

                if (ressource.Stock < montantEchange)
                {
                    montantEchange = ressource.Stock;
                }

                ressource.Stock -= montantEchange;

                string ressourceOppose = "";
                if (ressource.TypeRessource == "Metal")
                {
                    ressourceOppose = "Carburant";
                }
                else if (ressource.TypeRessource == "Carburant")
                {
                    ressourceOppose = "Metal";
                }

                Joueur joueurRessource = JoueurUtils.getJoueur(ressource.NetIdJoueur);

                int montantReelEchange = joueurRessource.addRessourceServer(ressourceOppose, montantEchange);

                if (montantReelEchange != montantEchange)
                {
                    ressource.Stock += montantEchange - montantReelEchange;
                }
            }
        }
    }