Beispiel #1
0
    private static CapaciteDTO getRessourceFromCarte(CapaciteDTO capaciteSource, IAvecCapacite cibleSelectionne, string typeRessource)
    {
        CapaciteDTO capaciteResult = capaciteSource.Clone();

        foreach (string conditionCible in capaciteSource.ConditionsCible)
        {
            if ((conditionCible.Contains(ConstanteIdObjet.ID_CONDITION_CIBLE_BATIMENT.ToString()) && cibleSelectionne is CarteBatimentMetier) ||
                (conditionCible.Contains(ConstanteIdObjet.ID_CONDITION_CIBLE_DEFENSE.ToString()) && cibleSelectionne is CarteDefenseMetier) ||
                (conditionCible.Contains(ConstanteIdObjet.ID_CONDITION_CIBLE_VAISSEAU.ToString()) && cibleSelectionne is CarteVaisseauMetier))
            {
                capaciteResult.ModeCalcul = ConstanteEnum.TypeCalcul.Ajout;
                int ajouterAuRessource = 0;
                if (typeRessource == "Metal")
                {
                    ajouterAuRessource = getNewValue(((CarteConstructionMetierAbstract)cibleSelectionne).getCoutMetalReelCarte(), capaciteSource.Quantite, capaciteSource.ModeCalcul);
                }
                else if (cibleSelectionne is CarteVaisseauMetier && typeRessource == "Carburant")
                {
                    ajouterAuRessource = getNewValue(((CarteVaisseauMetier)cibleSelectionne).getConsomationCarburant(), capaciteSource.Quantite, capaciteSource.ModeCalcul);
                }
                else if (typeRessource == "XP")
                {
                    ajouterAuRessource = getNewValue(((CarteConstructionMetierAbstract)cibleSelectionne).NiveauActuel, capaciteSource.Quantite, capaciteSource.ModeCalcul);
                }
                //TODO autre cible ?

                capaciteResult.Quantite = ajouterAuRessource;
            }
        }

        return(capaciteResult);
    }
Beispiel #2
0
    private static SelectionCiblesExecutionCapacite getCiblesOfCapacity(CarteMetierAbstract carteSourceCapacite, CarteMetierAbstract carteSourceAction, ISelectionnable cible, CapaciteDTO capaciteSource, NetworkInstanceId netIdJoueur, int actionAppelante)
    {
        SelectionCiblesExecutionCapacite selectionCiblesResult;

        CapaciteDTO capacite = capaciteSource.Clone();

        if (capacite.Capacite == ConstanteIdObjet.ID_CAPACITE_ACTION_HASARD)
        {
            capacite.Capacite = Random.Range(1, 40);
        }


        if (ConditionCarteUtils.listIdCapacitePourCarte.Contains(capacite.Capacite) && (null == cible || cible is CarteMetierAbstract))
        {
            List <CarteMetierAbstract> cartesCible = getCartesCible(carteSourceCapacite, (CarteMetierAbstract)cible, capacite, netIdJoueur);
            //TODO use ConstanteIdObjet.ID_CAPACITE_CONDITION
            selectionCiblesResult = new SelectionCiblesExecutionCapacite(capacite, carteSourceCapacite, actionAppelante);

            foreach (CarteMetierAbstract cibleProbable in cartesCible)
            {
                selectionCiblesResult.ListIdCiblesProbables.Add(cibleProbable.IdISelectionnable);
            }
        }
        else
        {
            selectionCiblesResult = findCiblesHorsCarte(capacite, carteSourceCapacite, carteSourceAction, netIdJoueur, NetworkInstanceId.Invalid /*TODO cible.netIdJoueurCible*/, actionAppelante);
        }

        return(selectionCiblesResult);
    }
Beispiel #3
0
    //CARTE INVOQUER
    //Niv CARTE INVOQUER

    public SelectionCiblesExecutionCapacite(CapaciteDTO capacite, CarteMetierAbstract carteSource, int idActionAppelante)
    {
        this.idTypeCapacite  = capacite.Capacite;
        this.libelleCapacite = capacite.Nom;         // TODO rajouter fonction descriptive de action
        this.choixManuelle   = capacite.ChoixCible;
        this.nbChoixCible    = capacite.NbCible;

        int newIdCapacityInUse = ActionEventManager.sequenceCapacityInUse++;

        this.idCapaciteSource = newIdCapacityInUse;
        ActionEventManager.capacityInUse.Add(newIdCapacityInUse, capacite.Clone());

        //this.capaciteBase = capacite.Clone ();
        this.idActionAppelante     = idActionAppelante;
        this.idCarteSource         = carteSource.netId;
        this.idJoueurCarteSource   = carteSource.JoueurProprietaire.netId;
        this.listIdCiblesProbables = new List <int> ();

        this.listIdRessouceCible = null;
    }