public void defenseSimultanee(CarteVaisseauMetier vaisseauAttaquant, NetworkInstanceId netIdTaskEvent) { bool attaqueEvite = 0 < CapaciteUtils.valeurAvecCapacite(0, listEffetCapacite, ConstanteIdObjet.ID_CAPACITE_EVITE_ATTAQUE); if (!attaqueEvite) { bool attaqueReoriente = 0 < CapaciteUtils.valeurAvecCapacite(0, listEffetCapacite, ConstanteIdObjet.ID_CAPACITE_REORIENTE_ATTAQUE); if (attaqueReoriente) { List <CarteMetierAbstract> listCartes = CarteUtils.getListCarteCibleReorientation(vaisseauAttaquant, this); CarteMetierAbstract cible = listCartes [Random.Range(0, listCartes.Count)]; if (cible is CarteConstructionMetierAbstract) { vaisseauAttaquant.attaqueCarte((CarteConstructionMetierAbstract)cible, netIdTaskEvent); } else if (cible is CartePlaneteMetier) { vaisseauAttaquant.attaquePlanete((CartePlaneteMetier)cible, netIdTaskEvent); } } else { bool attaquePriorite = 0 < CapaciteUtils.valeurAvecCapacite(0, listEffetCapacite, ConstanteIdObjet.ID_CAPACITE_ATTAQUE_OPPORTUNITE); int degatInfliger = getPointDegat(); int degatRecu = vaisseauAttaquant.getPointDegat(); if (attaquePriorite) { this.recevoirAttaque(vaisseauAttaquant, netIdTaskEvent, false); if (this.PV > 0) { vaisseauAttaquant.recevoirAttaque(this, netIdTaskEvent, false); } } else { vaisseauAttaquant.recevoirAttaque(this, netIdTaskEvent, true); this.recevoirAttaque(vaisseauAttaquant, netIdTaskEvent, true); } } } }
public void preDefense(CarteVaisseauMetier vaisseauAttaquant, NetworkInstanceId netIdTaskEvent) { vaisseauAttaquant.recevoirAttaque(this, netIdTaskEvent, false); defenduCeTour = true; if (!isCapableDefendre()) { this.JoueurProprietaire.CarteSelectionne = null; this.EtatSelectionnable = SelectionnableUtils.ETAT_NON_SELECTION; } }