//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); }
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); }
//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); }