Skip to content

对AttributeAggregator里CalculateNewValue实现的疑问 #57

@fechen2

Description

@fechen2

CalculateNewValue 的实现和下面的实现不太一样。

CalculateNewValue 里是每个MMC的结果之后去执行GEOperation,得到结果。
下面的实现是找到每个MMC不同的类型执行GEOperation,然后得到结果。

https://github.com/BillEliot/GASDocumentation_Chinese
4.5.4.1 Multiply和Divide Modifier

float FAggregatorModChannel::EvaluateWithBase(float InlineBaseValue, const FAggregatorEvaluateParameters& Parameters) const
{
	...
	float Additive = SumMods(Mods[EGameplayModOp::Additive], GameplayEffectUtilities::GetModifierBiasByModifierOp(EGameplayModOp::Additive), Parameters);
	float Multiplicitive = SumMods(Mods[EGameplayModOp::Multiplicitive], GameplayEffectUtilities::GetModifierBiasByModifierOp(EGameplayModOp::Multiplicitive), Parameters);
	float Division = SumMods(Mods[EGameplayModOp::Division], GameplayEffectUtilities::GetModifierBiasByModifierOp(EGameplayModOp::Division), Parameters);
	...
	return ((InlineBaseValue + Additive) * Multiplicitive) / Division;
	...
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions