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); } } }