Esempio n. 1
0
    //TODO revoir la definition de provenance pour la methode
    public static List <IConteneurCarte> getEmplacementsLigneVertical(NetworkInstanceId netidJoueur, string conditionAllierEnnemie, IConteneurCarte emplacementCarteOrigin, CarteMetierAbstract carteCible)
    {
        List <IConteneurCarte> listEmplacementsCible = new List <IConteneurCarte> ();
        bool            isProvenance    = conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_PROVENANCE);
        IConteneurCarte conteneurOrigin = fillConteneur(emplacementCarteOrigin, carteCible.getConteneur(), isProvenance);

        if (null != conteneurOrigin && conteneurOrigin is EmplacementMetierAbstract)
        {
            EmplacementMetierAbstract        emplacementOrigne = (EmplacementMetierAbstract)conteneurOrigin;
            List <EmplacementMetierAbstract> listEmplacement   = new List <EmplacementMetierAbstract>();

            if (isProvenance || conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ALLIER))
            {
                listEmplacement.AddRange(EmplacementUtils.getListEmplacementJoueur <EmplacementMetierAbstract>(netidJoueur));
            }

            if (isProvenance || conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ENNEMIE))
            {
                listEmplacement.AddRange(EmplacementUtils.getListEmplacementJoueur <EmplacementMetierAbstract>(EmplacementUtils.netIdJoueurEnFaceEmplacement(emplacementOrigne.NumColonne, netidJoueur)));
            }

            foreach (EmplacementMetierAbstract emplacementCible in listEmplacement)
            {
                if (emplacementCible.NumColonne == emplacementOrigne.NumColonne)
                {
                    listEmplacementsCible.Add(emplacementCible);
                }
            }
        }

        return(listEmplacementsCible);
    }
Esempio n. 2
0
    //TODO revoir la definition de provenance pour la methode
    public static List <IConteneurCarte> getEmplacementsDiagonalMontante(NetworkInstanceId netidJoueur, string conditionAllierEnnemie, IConteneurCarte emplacementCarteOrigin, CarteMetierAbstract carteCible)
    {
        List <IConteneurCarte> listEmplacementsCible = new List <IConteneurCarte> ();
        bool            isProvenance    = conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_PROVENANCE);
        IConteneurCarte conteneurOrigin = fillConteneur(emplacementCarteOrigin, carteCible.getConteneur(), isProvenance);

        if (null != conteneurOrigin && conteneurOrigin is EmplacementMetierAbstract)
        {
            EmplacementMetierAbstract        emplacementOrigin = (EmplacementMetierAbstract)conteneurOrigin;
            List <EmplacementMetierAbstract> listEmplacement   = new List <EmplacementMetierAbstract> ();

            List <EmplacementMetierAbstract> listEmplacementRangerSup = EmplacementUtils.getRangerSuperieur(emplacementOrigin, netidJoueur, EmplacementUtils.netIdJoueurEnFaceEmplacement(emplacementOrigin.NumColonne, netidJoueur));
            List <EmplacementMetierAbstract> listEmplacementRangerInf = EmplacementUtils.getRangerInferieur(emplacementOrigin, netidJoueur, EmplacementUtils.netIdJoueurEnFaceEmplacement(emplacementOrigin.NumColonne, netidJoueur));

            listEmplacement.AddRange(EmplacementUtils.getEmplacementByNumColonne(listEmplacementRangerSup, emplacementOrigin.NumColonne + 1));
            listEmplacement.AddRange(EmplacementUtils.getEmplacementByNumColonne(listEmplacementRangerInf, emplacementOrigin.NumColonne - 1));

            foreach (EmplacementMetierAbstract emplacementCible in listEmplacement)
            {
                if (isProvenance ||
                    (conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ALLIER) && emplacementCible.isConteneurAllier(netidJoueur)) ||
                    (conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ENNEMIE) && !emplacementCible.isConteneurAllier(netidJoueur)))
                {
                    listEmplacementsCible.Add(emplacementCible);
                }
            }
        }

        return(listEmplacementsCible);
    }
Esempio n. 3
0
    //TODO revoir la definition de provenance pour la methode
    public static List <IConteneurCarte> getEmplacementsLigneHorizontal(NetworkInstanceId netidJoueur, string conditionAllierEnnemie, IConteneurCarte emplacementCarteOrigin, CarteMetierAbstract carteCible)
    {
        List <IConteneurCarte> listEmplacementsCible = new List <IConteneurCarte> ();
        bool            isProvenance    = conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_PROVENANCE);
        IConteneurCarte conteneurOrigin = fillConteneur(emplacementCarteOrigin, carteCible.getConteneur(), isProvenance);

        if (null != conteneurOrigin && conteneurOrigin is EmplacementMetierAbstract)
        {
            EmplacementMetierAbstract emplacementOrigine = (EmplacementMetierAbstract)conteneurOrigin;

            List <EmplacementMetierAbstract> listEmplacementRanger = EmplacementUtils.getRanger(emplacementOrigine);

            foreach (EmplacementMetierAbstract emplacementCible in listEmplacementRanger)
            {
                if (isProvenance ||
                    (conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ALLIER) && emplacementCible.isConteneurAllier(netidJoueur)) ||
                    (conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ENNEMIE) && !emplacementCible.isConteneurAllier(netidJoueur)))
                {
                    listEmplacementsCible.Add(emplacementCible);
                }
            }
        }

        return(listEmplacementsCible);
    }
Esempio n. 4
0
    public static void invoquerCarteServer(GameObject carteAInvoquer, int niveauInvocation, IConteneurCarte emplacementCible, Joueur joueurPossesseur)
    {
        NetworkServer.Spawn(carteAInvoquer);

        CarteMetierAbstract carteScript = carteAInvoquer.GetComponent <CarteMetierAbstract> ();

        if (carteScript is CarteConstructionMetierAbstract)
        {
            ((CarteConstructionMetierAbstract)carteScript).NiveauActuel = niveauInvocation;
        }

        if (joueurPossesseur.isServer)
        {
            EmplacementUtils.putCardFromServer(emplacementCible, carteScript);
        }
        else
        {
            emplacementCible.putCard(carteScript);
        }

        NetworkUtils.assignObjectToPlayer(carteScript.GetComponent <NetworkIdentity> (), joueurPossesseur.GetComponent <NetworkIdentity> (), .2f);
        byte[] carteRefData = SerializeUtils.SerializeToByteArray(carteScript.getCarteDTORef());


        if (carteScript is CarteConstructionMetierAbstract)
        {
            ((CarteConstructionMetierAbstract)carteScript).RpcGenerate(carteRefData, NetworkInstanceId.Invalid);
        }         //TODO carte amelioration
    }
Esempio n. 5
0
    public static List <IConteneurCarte> getEmplacementsLigneAtmosphere(NetworkInstanceId netidJoueur, string conditionAllierEnnemie, IConteneurCarte emplacementCarteOrigin, CarteMetierAbstract carteCible)
    {
        List <IConteneurCarte> listEmplacementsCible = new List <IConteneurCarte> ();
        bool            isProvenance = conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_PROVENANCE);
        IConteneurCarte conteneurCible;

        if (null != carteCible)
        {
            conteneurCible = carteCible.getConteneur();
        }
        else
        {
            conteneurCible = null;
        }


        IConteneurCarte conteneurOrigin = fillConteneur(emplacementCarteOrigin, conteneurCible, isProvenance);

        if (null != conteneurOrigin && conteneurOrigin is EmplacementMetierAbstract)
        {
            EmplacementMetierAbstract          emplacementOrigne = (EmplacementMetierAbstract)conteneurOrigin;
            List <EmplacementAtomsphereMetier> listEmplacement   = new List <EmplacementAtomsphereMetier> ();

            if ((isProvenance && emplacementOrigne.isConteneurAllier(netidJoueur)) || conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ALLIER))
            {
                listEmplacement.AddRange(EmplacementUtils.getListEmplacementJoueur <EmplacementAtomsphereMetier>(netidJoueur));
            }

            if ((isProvenance && emplacementOrigne.isConteneurAllier(netidJoueur)) || conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ENNEMIE))
            {
                //TODO voir cas si plusieur ennemie
                listEmplacement.AddRange(EmplacementUtils.getListEmplacementJoueur <EmplacementAtomsphereMetier>(EmplacementUtils.netIdJoueurEnFaceEmplacement(emplacementOrigne.NumColonne, netidJoueur)));
            }

            foreach (EmplacementMetierAbstract emplacementCible in listEmplacement)
            {
                listEmplacementsCible.Add(emplacementCible);
            }
        }

        return(listEmplacementsCible);
    }
Esempio n. 6
0
    public static List <CarteConstructionMetierAbstract> getListCarteCapableAttaque(NetworkInstanceId netIdJoueurAttaque)
    {
        List <CarteConstructionMetierAbstract> listeAttaque = new List <CarteConstructionMetierAbstract> ();

        List <EmplacementAttaque> listEmplacementAttaqueJoueur = EmplacementUtils.getListEmplacementOccuperJoueur <EmplacementAttaque> (netIdJoueurAttaque);

        foreach (EmplacementAttaque emplacementAttaqueJoueur in listEmplacementAttaqueJoueur)
        {
            List <CarteMetierAbstract> listCarteContenu = emplacementAttaqueJoueur.getCartesContenu();
            if (null != listCarteContenu && listCarteContenu.Count > 0)
            {
                CarteMetierAbstract carteContenue = listCarteContenu [0];
                if (null != carteContenue && carteContenue is IAttaquer && ((IAttaquer)carteContenue).isCapableAttaquer() && carteContenue is CarteConstructionMetierAbstract)
                {
                    listeAttaque.Add((CarteConstructionMetierAbstract)carteContenue);
                }
            }
        }

        return(listeAttaque);
    }
Esempio n. 7
0
    public static List <CarteConstructionMetierAbstract> getListCarteCapableDefendrePlanete(Joueur joueurPlanete)
    {
        List <CarteConstructionMetierAbstract> listeDefenseur = new List <CarteConstructionMetierAbstract> ();

        List <EmplacementSolMetier> listEmplacementSolJoueur = EmplacementUtils.getListEmplacementOccuperJoueur <EmplacementSolMetier> (joueurPlanete.netId);

        foreach (EmplacementSolMetier emplacementSolJoueur in listEmplacementSolJoueur)
        {
            List <CarteMetierAbstract> listCarteContenu = emplacementSolJoueur.getCartesContenu();
            if (null != listCarteContenu && listCarteContenu.Count > 0)
            {
                CarteMetierAbstract carteContenue = listCarteContenu [0];
                if (null != carteContenue && carteContenue is IDefendre && ((IDefendre)carteContenue).isCapableDefendre() && carteContenue is CarteConstructionMetierAbstract)
                {
                    listeDefenseur.Add((CarteConstructionMetierAbstract)carteContenue);
                }
            }
        }

        return(listeDefenseur);
    }
Esempio n. 8
0
    public static List <CarteMetierAbstract> getListCarteCibleReorientation(CarteMetierAbstract carteSource, CarteMetierAbstract carteCible)
    {
        List <CarteMetierAbstract> listCarteCibleReorientation = new List <CarteMetierAbstract> ();

        List <EmplacementAttaque> listEmplacementAttaqueAllier = EmplacementUtils.getListEmplacementOccuperJoueur <EmplacementAttaque>(carteSource.JoueurProprietaire.netId);

        foreach (EmplacementMetierAbstract emplacement in listEmplacementAttaqueAllier)
        {
            foreach (CarteMetierAbstract carteContenu in emplacement.getCartesContenu())
            {
                if (carteContenu is CarteConstructionMetierAbstract && carteContenu != carteSource)
                {
                    listCarteCibleReorientation.Add(carteContenu);
                }
            }
        }

        List <EmplacementSolMetier> listEmplacementSolEnnemie = EmplacementUtils.getListEmplacementOccuperJoueur <EmplacementSolMetier>(carteCible.JoueurProprietaire.netId);

        foreach (EmplacementMetierAbstract emplacement in listEmplacementSolEnnemie)
        {
            foreach (CarteMetierAbstract carteContenu in emplacement.getCartesContenu())
            {
                if (carteContenu is CarteConstructionMetierAbstract && carteContenu != carteSource)
                {
                    listCarteCibleReorientation.Add(carteContenu);
                }
            }
        }


        listCarteCibleReorientation.Add(carteCible.JoueurProprietaire.CartePlaneteJoueur);

        if (listCarteCibleReorientation.Contains(carteSource))
        {
            listCarteCibleReorientation.Remove(carteSource);
        }

        return(listCarteCibleReorientation);
    }
Esempio n. 9
0
    public void RpcRemiseEnPlaceCarte(NetworkInstanceId netIdJoueur)
    {
        if (JoueurUtils.getJoueurLocal().netId == netIdJoueur)
        {
            List <CarteMetierAbstract> listCarteJoueur = CarteUtils.getListCarteJoueur(netIdJoueur);

            foreach (CarteMetierAbstract carteJoueur in listCarteJoueur)
            {
                if (carteJoueur is IAttaquer)
                {
                    ((IAttaquer)carteJoueur).AttaqueCeTour = false;
                }

                if (carteJoueur is IDefendre)
                {
                    ((IDefendre)carteJoueur).reinitDefenseSelectTour();
                }
            }

            List <EmplacementAttaque> listEmplacementAttaqueOccuper = EmplacementUtils.getListEmplacementOccuperJoueur <EmplacementAttaque> (netIdJoueur);

            if (listEmplacementAttaqueOccuper.Count > 0)
            {
                List <EmplacementAtomsphereMetier> listEmplacementAtmosJoueurLibre = EmplacementUtils.getListEmplacementLibreJoueur <EmplacementAtomsphereMetier> (netIdJoueur);

                //On essaye d'abord de replacer les vaisseaux au bonne endroit
                if (listEmplacementAtmosJoueurLibre.Count > 0)
                {
                    List <EmplacementAttaque>          listEmplacementAttaqueToujoursOccuper = new List <EmplacementAttaque> (listEmplacementAttaqueOccuper);
                    List <EmplacementAtomsphereMetier> listEmplacementAtmosToujoursLibre     = new List <EmplacementAtomsphereMetier> (listEmplacementAtmosJoueurLibre);

                    foreach (EmplacementAttaque emplacementAttaqueJoueur in listEmplacementAttaqueOccuper)
                    {
                        foreach (EmplacementAtomsphereMetier emplacementAtmosJoueur in listEmplacementAtmosJoueurLibre)
                        {
                            if (emplacementAttaqueJoueur.NumColonne == emplacementAtmosJoueur.NumColonne)
                            {
                                CarteConstructionMetierAbstract carteADeplacer = emplacementAttaqueJoueur.gameObject.GetComponentInChildren <CarteConstructionMetierAbstract> ();
                                emplacementAtmosJoueur.putCard(carteADeplacer);
                                listEmplacementAttaqueToujoursOccuper.Remove(emplacementAttaqueJoueur);
                                listEmplacementAtmosToujoursLibre.Remove(emplacementAtmosJoueur);
                                break;
                            }
                        }
                    }


                    listEmplacementAttaqueToujoursOccuper.Sort((p1, p2) => p1.NumColonne.CompareTo(p2.NumColonne));
                    listEmplacementAtmosToujoursLibre.Sort((p1, p2) => p1.NumColonne.CompareTo(p2.NumColonne));
                    while (0 < listEmplacementAttaqueToujoursOccuper.Count && 0 < listEmplacementAtmosToujoursLibre.Count)
                    {
                        CarteConstructionMetierAbstract carteADeplacer = listEmplacementAttaqueToujoursOccuper [0].gameObject.GetComponentInChildren <CarteConstructionMetierAbstract> ();
                        listEmplacementAtmosToujoursLibre [0].putCard(carteADeplacer);
                        listEmplacementAttaqueToujoursOccuper.RemoveAt(0);
                        listEmplacementAtmosToujoursLibre.RemoveAt(0);
                    }

                    if (listEmplacementAttaqueToujoursOccuper.Count > 0)
                    {
                        foreach (EmplacementAttaque emplacementAVider   in listEmplacementAttaqueToujoursOccuper)
                        {
                            CarteConstructionMetierAbstract carteADeplacer = emplacementAVider.gameObject.GetComponentInChildren <CarteConstructionMetierAbstract> ();

                            if (carteADeplacer is CarteVaisseauMetier)
                            {
                                ((CarteVaisseauMetier)carteADeplacer).sacrificeCarte();
                            }
                            else
                            {
                                //TODO
                            }
                        }
                    }

                    //On fait de même avec les emplacement de sol
                    if (listEmplacementAtmosToujoursLibre.Count > 0)
                    {
                        List <EmplacementSolMetier> listEmplacementSolJoueur = EmplacementUtils.getListEmplacementOccuperJoueur <EmplacementSolMetier> (netIdJoueur);


                        List <EmplacementSolMetier>        listEmplacementSolAvecCarteVaisseau = new List <EmplacementSolMetier> (listEmplacementSolJoueur);
                        List <EmplacementAtomsphereMetier> listEmplacementAtmosToujoursLibre2  = new List <EmplacementAtomsphereMetier> (listEmplacementAtmosJoueurLibre);

                        foreach (EmplacementSolMetier emplacementSolJoueur in listEmplacementSolJoueur)
                        {
                            foreach (EmplacementAtomsphereMetier emplacementAtmosJoueur in listEmplacementAtmosJoueurLibre)
                            {
                                if (emplacementSolJoueur.NumColonne == emplacementAtmosJoueur.NumColonne)
                                {
                                    CarteConstructionMetierAbstract carteADeplacer = emplacementSolJoueur.gameObject.GetComponentInChildren <CarteConstructionMetierAbstract> ();
                                    if (null != carteADeplacer && carteADeplacer is CarteVaisseauMetier)
                                    {
                                        emplacementAtmosJoueur.putCard(carteADeplacer);
                                        listEmplacementSolAvecCarteVaisseau.Remove(emplacementSolJoueur);
                                        listEmplacementAtmosToujoursLibre2.Remove(emplacementAtmosJoueur);
                                    }
                                    else
                                    {
                                        listEmplacementSolAvecCarteVaisseau.Remove(emplacementSolJoueur);
                                    }
                                    break;
                                }
                            }
                        }


                        listEmplacementSolAvecCarteVaisseau.Sort((p1, p2) => p1.NumColonne.CompareTo(p2.NumColonne));
                        listEmplacementAtmosToujoursLibre.Sort((p1, p2) => p1.NumColonne.CompareTo(p2.NumColonne));
                        while (0 < listEmplacementSolAvecCarteVaisseau.Count && 0 < listEmplacementAtmosToujoursLibre.Count)
                        {
                            CarteConstructionMetierAbstract carteADeplacer = listEmplacementSolAvecCarteVaisseau [0].gameObject.GetComponentInChildren <CarteConstructionMetierAbstract> ();
                            listEmplacementAtmosToujoursLibre [0].putCard(carteADeplacer);
                            listEmplacementSolAvecCarteVaisseau.RemoveAt(0);
                            listEmplacementAtmosToujoursLibre.RemoveAt(0);
                        }
                    }
                }
            }
        }
    }
Esempio n. 10
0
    private static HashSet <ISelectionnable> getRessourceProvenanceCible(CapaciteDTO capaciteSource, NetworkInstanceId netIdJoueurSource, NetworkInstanceId netIdJoueurCible, CarteMetierAbstract carteSource)
    {
        HashSet <ISelectionnable> listResult = new HashSet <ISelectionnable> ();

        foreach (string conditionCible in capaciteSource.ConditionsCible)
        {
            string[] tabConditionCible = conditionCible.Split(char.Parse("-"));
            if (tabConditionCible.Length >= 2)
            {
                int    idConditionCible = int.Parse(tabConditionCible [0]);
                string allegeance       = tabConditionCible [1];

                if (idConditionCible == ConstanteIdObjet.ID_CONDITION_CIBLE_RESSOURCE)
                {
                    HashSet <Joueur> joueursCible = getJoueursCible(conditionCible, netIdJoueurSource, netIdJoueurCible, carteSource);
                    foreach (Joueur joueurRessource in joueursCible)
                    {
                        if (!capaciteSource.AppelUnique || !joueurRessource.RessourceMetal.containCapacityWithId(capaciteSource.Id))
                        {
                            listResult.Add(joueurRessource.RessourceMetal);
                        }

                        if (!capaciteSource.AppelUnique || !joueurRessource.RessourceCarburant.containCapacityWithId(capaciteSource.Id))
                        {
                            listResult.Add(joueurRessource.RessourceCarburant);
                        }

                        if (!capaciteSource.AppelUnique || !joueurRessource.RessourceXP.containCapacityWithId(capaciteSource.Id))
                        {
                            listResult.Add(joueurRessource.RessourceXP);
                        }
                    }
                }
                else if (ConditionCarteUtils.listIdCondtionCibleCarte.Contains(idConditionCible))
                {
                    List <IConteneurCarte> emplacementsOccuper = ConvertUtils.convertToListParent <IConteneurCarte, EmplacementMetierAbstract>(EmplacementUtils.getListEmplacementOccuperJoueur <EmplacementMetierAbstract> (NetworkInstanceId.Invalid));

                    List <CarteMetierAbstract> listCartesCibleProbable = ConditionCarteUtils.getMethodeCarteCible(idConditionCible, allegeance, emplacementsOccuper, carteSource, netIdJoueurSource);

                    if (capaciteSource.AppelUnique)
                    {
                        foreach (CarteMetierAbstract carteProbable in listCartesCibleProbable)
                        {
                            //On vérifie que la carte ne possède pas déjà l'effet
                            if (!carteProbable.containCapacityWithId(capaciteSource.Id))
                            {
                                listResult.Add(carteProbable);
                            }
                        }
                    }
                    else
                    {
                        listResult.UnionWith(ConvertUtils.convertToListParent <ISelectionnable, CarteMetierAbstract> (listCartesCibleProbable));
                    }
                }
            }
        }

        return(listResult);
    }
Esempio n. 11
0
    public static void launchEventAction(int idActionEvent, NetworkInstanceId netIdSourceAction, NetworkInstanceId netIdJoueurSourceAction, int idSelectionCible, NetworkInstanceId netIdEventTask)
    {
        NetworkBehaviour scriptSource = ConvertUtils.convertNetIdToScript <NetworkBehaviour> (netIdSourceAction, false);

        //TODO remplacer les -1

        if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_PIOCHE_CONSTRUCTION)
        {
            if (scriptSource is CarteConstructionMetierAbstract)
            {
                ((CarteConstructionMetierAbstract)scriptSource).CmdPiocheCard(netIdJoueurSourceAction);
            }
            else
            {
                aucuneActionEffectuer();
            }
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_PIOCHE_AMELIORATION)
        {
            //TODO
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_POSE_CONSTRUCTION ||
                 idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_POSE_AMELIORATION ||
                 idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_DEPLACEMENT_STANDART ||
                 idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_DEPLACEMENT_LIGNE_ATTAQUE)
        {
            ISelectionnable cible = SelectionnableUtils.getSelectiobleById(idSelectionCible);

            if (null != cible && cible is IConteneurCarte && scriptSource is CarteConstructionMetierAbstract)
            {
                if (((CarteConstructionMetierAbstract)scriptSource).isDeplacable())
                {
                    EmplacementUtils.putCardFromServer((IConteneurCarte)cible, (CarteConstructionMetierAbstract)scriptSource);
                }
            }
            else
            {
                aucuneActionEffectuer();
            }
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_DEBUT_TOUR)
        {
            Joueur joueur = ConvertUtils.convertNetIdToScript <Joueur> (netIdJoueurSourceAction, false);
            if (null != joueur)
            {
                TourJeuSystem.getTourSystem().debutTour(joueur);
            }
            else
            {
                aucuneActionEffectuer();
            }
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_FIN_TOUR)
        {
            Joueur joueur = ConvertUtils.convertNetIdToScript <Joueur> (netIdJoueurSourceAction, false);
            if (null != joueur)
            {
                TourJeuSystem.getTourSystem().finTour(joueur);
            }
            else
            {
                aucuneActionEffectuer();
            }
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_ATTAQUE && scriptSource is IAttaquer)
        {
            ISelectionnable cible = SelectionnableUtils.getSelectiobleById(idSelectionCible);

            if (null != cible && cible is CarteConstructionMetierAbstract)
            {
                ((IAttaquer)scriptSource).attaqueCarte((CarteConstructionMetierAbstract)cible, netIdEventTask);
            }
            else if (null != cible && cible is CartePlaneteMetier)
            {
                ((IAttaquer)scriptSource).attaquePlanete((CartePlaneteMetier)cible, netIdEventTask);
            }
            else
            {
                aucuneActionEffectuer();
            }
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_DEFEND && scriptSource is CarteMetierAbstract)
        {
            ISelectionnable cible = SelectionnableUtils.getSelectiobleById(idSelectionCible);

            if (null != cible && cible is CarteVaisseauMetier && scriptSource is IDefendre)
            {
                ((IDefendre)scriptSource).defenseSimultanee((CarteVaisseauMetier)cible, netIdEventTask);
            }
            else if (scriptSource is CartePlaneteMetier)
            {
                List <CarteConstructionMetierAbstract> listDefenseur = CarteUtils.getListCarteCapableDefendrePlanete(((CartePlaneteMetier)scriptSource).JoueurProprietaire);

                if (null != listDefenseur && listDefenseur.Count > 0)
                {
                    SelectionCiblesExecutionCapacite selectionCible = new SelectionCiblesExecutionCapacite(1, (CartePlaneteMetier)scriptSource, idActionEvent);

                    foreach (CarteConstructionMetierAbstract defenseur in listDefenseur)
                    {
                        selectionCible.ListIdCiblesProbables.Add(defenseur.IdISelectionnable);
                    }

                    ActionEventManager.EventActionManager.createTaskChooseTarget(selectionCible, scriptSource.netId, ((CartePlaneteMetier)scriptSource).JoueurProprietaire.netId, cible.IdISelectionnable, idActionEvent, netIdEventTask);
                }

                ActionEventManager.EventActionManager.CreateTask(scriptSource.netId, ((CartePlaneteMetier)scriptSource).JoueurProprietaire.netId, cible.IdISelectionnable, ConstanteIdObjet.ID_CONDITION_ACTION_RECOIT_DEGAT, netIdEventTask, false);
            }
            else
            {
                aucuneActionEffectuer();
            }
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_UTILISE)
        {
            //TODO
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_DESTRUCTION_CARTE && scriptSource is IVulnerable)
        {
            ((IVulnerable)scriptSource).destruction(netIdEventTask);
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_FIN_ATTAQUE)
        {
            ActionEventManager.EventActionManager.CreateTask(NetworkInstanceId.Invalid, netIdJoueurSourceAction, -1, ConstanteIdObjet.ID_CONDITION_ACTION_FIN_TOUR, NetworkInstanceId.Invalid, false);
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_GAIN_XP)
        {
            //TODO
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_INVOCATION)
        {
            //TODO
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_RECOIT_DEGAT && scriptSource is IVulnerable)
        {
            ISelectionnable cible = SelectionnableUtils.getSelectiobleById(idSelectionCible);

            if (null != cible && cible is CarteVaisseauMetier)
            {
                ((IVulnerable)scriptSource).recevoirDegat(((CarteVaisseauMetier)cible).getPointDegat(), (CarteVaisseauMetier)cible, netIdEventTask);
            }
            else if (null != cible && cible is CarteDefenseMetier)
            {
                ((IVulnerable)scriptSource).recevoirDegat(((CarteDefenseMetier)cible).getPointDegat(), (CarteDefenseMetier)cible, netIdEventTask);
            }
            else
            {
                aucuneActionEffectuer();
            }
        }
        else if (idActionEvent == ConstanteIdObjet.ID_CONDITION_ACTION_EVOLUTION_CARTE)
        {
            //TODO
        }
        else
        {
            aucuneActionEffectuer();
        }
    }