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