Пример #1
0
    //TODO revoir la definition de provenance pour la methode
    //TODO attention si le filtre carte n'est pas bon, pas de sélection doit on crée une liste Hasardeuse
    public static List <IConteneurCarte> getEmplacementsHasard(NetworkInstanceId netidJoueur, string conditionAllierEnnemie, IConteneurCarte emplacementCarteOrigin)
    {
        List <IConteneurCarte> listEmplacementsCible = new List <IConteneurCarte> ();
        bool isProvenance = conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_PROVENANCE);

        List <IConteneurCarte> listConteneurs = GameObject.FindObjectsOfType <MonoBehaviour> ().OfType <IConteneurCarte>().ToList <IConteneurCarte>();
        int nbIteration = listConteneurs.Count * 2;

        while (nbIteration > 0)
        {
            IConteneurCarte conteneurHasard = listConteneurs [Random.Range(0, listConteneurs.Count)];

            if (conteneurHasard.isConteneurAllier(netidJoueur) && ((isProvenance && null != emplacementCarteOrigin && emplacementCarteOrigin.isConteneurAllier(netidJoueur)) || conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ALLIER)))
            {
                listEmplacementsCible.Add(conteneurHasard);
                break;
            }

            if (!conteneurHasard.isConteneurAllier(netidJoueur) && ((isProvenance && null != emplacementCarteOrigin && emplacementCarteOrigin.isConteneurAllier(netidJoueur)) || conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ENNEMIE)))
            {
                //TODO voir cas si plusieur ennemie
                listEmplacementsCible.Add(conteneurHasard);
                break;
            }

            nbIteration--;
        }

        return(listEmplacementsCible);
    }
Пример #2
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);
    }
Пример #3
0
    //TODO revoir la definition de provenance pour la methode
    public static List <IConteneurCarte> getCarteEmplacementPlanete(NetworkInstanceId netidJoueur, string conditionAllierEnnemie, IConteneurCarte emplacementCarteOrigin)
    {
        List <IConteneurCarte> listEmplacementsCible = new List <IConteneurCarte> ();
        bool isProvenance = conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_PROVENANCE);

        CartePlaneteMetier[] listPlanetes = GameObject.FindObjectsOfType <CartePlaneteMetier> ();

        foreach (CartePlaneteMetier planete in listPlanetes)
        {
            if (planete.isConteneurAllier(netidJoueur) && ((isProvenance && null != emplacementCarteOrigin && emplacementCarteOrigin.isConteneurAllier(netidJoueur)) || conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ALLIER)))
            {
                listEmplacementsCible.Add(planete);
            }

            if (!planete.isConteneurAllier(netidJoueur) && ((isProvenance && null != emplacementCarteOrigin && emplacementCarteOrigin.isConteneurAllier(netidJoueur)) || conditionAllierEnnemie.Contains(ConstanteIdObjet.STR_CONDITION_POUR_ENNEMIE)))
            {
                //TODO voir cas si plusieur ennemie
                listEmplacementsCible.Add(planete);
            }
        }

        return(listEmplacementsCible);
    }