Beispiel #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);
    }
Beispiel #2
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);
    }
Beispiel #3
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);
    }
    public void putCard(CarteMetierAbstract cartePoser)
    {
        if (null != cartePoser && null != cartePoser.getConteneur() && cartePoser.getConteneur() is Mains)
        {
            ((Mains)cartePoser.getConteneur()).removeCarte(cartePoser);
        }

        if (null != cartePoser && null != cartePoser.JoueurProprietaire && cartePoser.JoueurProprietaire.isLocalPlayer)
        {
            Transform trfmCard = cartePoser.transform;
            trfmCard.parent = transform;;

            cartePoser.CmdChangeParent(this.netId, "");


            trfmCard.localPosition = new Vector3(0, .01f, 0);
            trfmCard.localRotation = Quaternion.identity;
            trfmCard.localScale    = Vector3.one;

            cartePoser.JoueurProprietaire.CarteSelectionne = null;
        }
    }
Beispiel #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);
    }
Beispiel #6
0
    public static List <IConteneurCarte> getEmplacementsCible(NetworkInstanceId netidJoueur, string conditionAllierEnnemie, IConteneurCarte emplacementOrigin, CarteMetierAbstract carteCible)
    {
        List <IConteneurCarte> listEmplacementCible = new List <IConteneurCarte> ();

        if (conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_PROVENANCE) && null != emplacementOrigin.getCartesContenu())
        {
            listEmplacementCible.Add(emplacementOrigin);
        }

        IConteneurCarte conteneurCible = carteCible.getConteneur();

        if (conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ALLIER) && null != conteneurCible && conteneurCible.isConteneurAllier(netidJoueur))
        {
            listEmplacementCible.Add(conteneurCible);
        }

        if (conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ENNEMIE) && null != conteneurCible && !conteneurCible.isConteneurAllier(netidJoueur))
        {
            listEmplacementCible.Add(conteneurCible);
        }

        return(listEmplacementCible);
    }
Beispiel #7
0
    private static List <CarteMetierAbstract> getCartesCible(CarteMetierAbstract carteOrigin, CarteMetierAbstract carteCible, CapaciteDTO capacite, NetworkInstanceId netIdJoueur)
    {
        List <CarteMetierAbstract> listCartesCible = new List <CarteMetierAbstract> ();

        List <IConteneurCarte> listEmplacementsCible = new List <IConteneurCarte> ();

        foreach (string conditionEmplacement in capacite.ConditionsEmplacement)
        {
            string[] tabConditionEmplacement = conditionEmplacement.Split(char.Parse("-"));
            if (tabConditionEmplacement.Length >= 2)
            {
                int idEmplacement = int.Parse(tabConditionEmplacement [0]);

                listEmplacementsCible.AddRange(ConditionEmplacementUtils.getMethodeEmplacement(idEmplacement, tabConditionEmplacement[1], carteOrigin.getConteneur(), carteCible, netIdJoueur));
            }
        }

        //TODO si capacite a cible pas besoin de faire la suite
        foreach (string conditionCible in capacite.ConditionsCible)
        {
            string[] tabConditionCible = conditionCible.Split(char.Parse("-"));
            if (tabConditionCible.Length >= 2)
            {
                int idCible = int.Parse(tabConditionCible [0]);
                List <CarteMetierAbstract> listCartesCibleProbable = ConditionCarteUtils.getMethodeCarteCible(idCible, tabConditionCible[1], listEmplacementsCible, carteOrigin, netIdJoueur);

                if (capacite.AppelUnique)
                {
                    foreach (CarteMetierAbstract carteProbable in listCartesCibleProbable)
                    {
                        //On vérifie que la carte ne possède pas déjà l'effet
                        if (!carteProbable.containCapacityWithId(capacite.Id))
                        {
                            listCartesCible.Add(carteProbable);
                        }
                    }
                }
                else
                {
                    listCartesCible.AddRange(listCartesCibleProbable);
                }
            }
        }

        return(listCartesCible);
    }