public EntityEquipableAbilityResourcesInfluences Build(int level)
        {
            float flat   = _useFlatFormula ? _flatFormula.Evaluate(level) : 0f;
            float factor = _useFactorFormula ? _factorFormula.Evaluate(level) : 1f;
            EntityEquipableAbilityResourcesInfluences arInfluences = new EntityEquipableAbilityResourcesInfluences(AbilitiesResourcesInfluences, _useFlatFormula, flat, _useFactorFormula, factor);

            return(arInfluences);
        }
        public EntityEquipableAbility Build(int level)
        {
            EntityEquipableAbilityResourcesInfluences[] eeari = new EntityEquipableAbilityResourcesInfluences[_abilitiesResourcesInfluencesBuilders.Length];
            for (int i = 0; i < eeari.Length; i++)
            {
                eeari[i] = _abilitiesResourcesInfluencesBuilders[i].Build(level);
            }

            return(new EntityEquipableAbility(Ability, OverrideTrigger, TriggerData, OverrideCooldown, Cooldown, eeari));
        }
        private void ApplyInfluenceToImpact(AbilityResourceImpactData impact, EntityEquipableAbilityResourcesInfluences influence)
        {
            bool signPositive = impact.ResourceChange >= 0;

            if (influence.UseFactor)
            {
                if (influence.AbilitiesResourcesInfluences.InfluencesGlobal ||
                    signPositive && influence.AbilitiesResourcesInfluences.InfluencesPositive ||
                    signPositive == false && influence.AbilitiesResourcesInfluences.InfluencesNegative)
                {
                    impact.SetResourceChange(impact.ResourceChange * influence.Factor);
                }
            }
            if (influence.UseFlat)
            {
                if (influence.AbilitiesResourcesInfluences.InfluencesGlobal ||
                    signPositive && influence.AbilitiesResourcesInfluences.InfluencesPositive ||
                    signPositive == false && influence.AbilitiesResourcesInfluences.InfluencesNegative)
                {
                    impact.SetResourceChange(impact.ResourceChange + influence.Flat);
                }
            }
        }