Exemple #1
0
    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);
                }
            }
        }
    }
Exemple #2
0
    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;
        }
    }