Ejemplo n.º 1
0
    public AbilityData(
        string ID,
        string baseID      = null,
        string abilityName = null,

        IEnumerable <AbilityTag> tags = null,

        AbilityEffect[] effects = null,

        bool combineBaseEffects = false,
        EffectDatabase.AbilityEff.AbilityEffect[] effectsNew = null)
    {
        this.ID          = ID;
        this.baseID      = baseID;
        this.abilityName = abilityName;

        this.tags = new HashSet <AbilityTag>();
        if (tags != null)
        {
            this.tags.UnionWith(tags);
        }

        this.effects = (effects == null) ? new AbilityEffect[0] : new AbilityEffect[effects.Length];
        if (effects != null)
        {
            for (int i = 0; i < effects.Length; i++)
            {
                this.effects[i] = AbilityEffect.Clone(effects[i]);
            }
        }

        this.combineBaseEffects = combineBaseEffects;
        this.effectsNew         = new List <EffectDatabase.AbilityEff.AbilityEffect>();
        if (effectsNew != null)
        {
            List <EffectDatabase.AbilityEff.AbilityEffect> addableEffects = new List <EffectDatabase.AbilityEff.AbilityEffect>();
            for (int i = 0; i < effectsNew.Length; i++)
            {
                addableEffects.Add(effectsNew[i].Clone());
            }
            this.effectsNew = addableEffects;
        }
    }