//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); }
//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); }
//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 static List <EmplacementMetierAbstract> getRangerInferieur(EmplacementMetierAbstract emplacementReference, NetworkInstanceId netIdJoueurPlateau, NetworkInstanceId netIdPlateauOppose) { List <EmplacementMetierAbstract> listEmplacementRetour = new List <EmplacementMetierAbstract> (); if (emplacementReference is EmplacementSolMetier && emplacementReference.IdJoueurPossesseur != netIdJoueurPlateau) { listEmplacementRetour.AddRange(getListEmplacementJoueur <EmplacementAtomsphereMetier>(netIdPlateauOppose).ConvertAll(x => (EmplacementMetierAbstract)x)); } else if (emplacementReference is EmplacementAtomsphereMetier) { if (emplacementReference.IdJoueurPossesseur == netIdJoueurPlateau) { listEmplacementRetour.AddRange(getListEmplacementJoueur <EmplacementSolMetier>(netIdJoueurPlateau).ConvertAll(x => (EmplacementMetierAbstract)x)); } else { listEmplacementRetour.AddRange(getListEmplacementJoueur <EmplacementAttaque>(netIdPlateauOppose).ConvertAll(x => (EmplacementMetierAbstract)x)); } } else if (emplacementReference is EmplacementAttaque) { if (emplacementReference.IdJoueurPossesseur == netIdJoueurPlateau) { listEmplacementRetour.AddRange(getListEmplacementJoueur <EmplacementAtomsphereMetier>(netIdJoueurPlateau).ConvertAll(x => (EmplacementMetierAbstract)x)); } else { listEmplacementRetour.AddRange(getListEmplacementJoueur <EmplacementAttaque>(netIdJoueurPlateau).ConvertAll(x => (EmplacementMetierAbstract)x)); } } return(listEmplacementRetour); }
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); }
public static List <EmplacementMetierAbstract> getRanger(EmplacementMetierAbstract emplacementReference) { List <EmplacementMetierAbstract> listEmplacementRetour = new List <EmplacementMetierAbstract> (); if (null != emplacementReference) { if (emplacementReference is EmplacementSolMetier) { listEmplacementRetour.AddRange(getListEmplacementJoueur <EmplacementSolMetier> (emplacementReference.IdJoueurPossesseur).ConvertAll(x => (EmplacementMetierAbstract)x)); } else if (emplacementReference is EmplacementAtomsphereMetier) { listEmplacementRetour.AddRange(getListEmplacementJoueur <EmplacementAtomsphereMetier> (emplacementReference.IdJoueurPossesseur).ConvertAll(x => (EmplacementMetierAbstract)x)); } else if (emplacementReference is EmplacementAttaque) { listEmplacementRetour.AddRange(getListEmplacementJoueur <EmplacementAttaque> (emplacementReference.IdJoueurPossesseur).ConvertAll(x => (EmplacementMetierAbstract)x)); } } return(listEmplacementRetour); }