private void ModifyStats() { bool found; stats = targetStatsComponent.CharacterStats.FindStats(statsType, out found); if (found) { float value = CalculateValue(); ValueModifier valueModifier = stats.AddModifier(info.Smc.ShowStatsModifierOperator(), value); valueModifiers.Add(valueModifier); } for (int kIndex = 0; kIndex < info.Smc.extras.Count; kIndex++) { StatsModifierValue smv = info.Smc.extras[kIndex]; bool extraFound; Stats extraStats = targetStatsComponent.CharacterStats.FindStats(smv.ShowStatsType(), out extraFound); if (extraFound) { float extraValue = smv.statsModifierValue * powerScale; ValueModifier extraValueModifier = extraStats.AddModifier(smv.ShowOperator(), extraValue); if (extraValueModifiers.Count - 1 < kIndex) { extraValueModifiers.Add(new List <ValueModifier>()); } extraValueModifiers[kIndex].Add(extraValueModifier); } } }
public void StackValue(Modifier newOne) { StatsInfo statsInfoFromNewOne = (StatsInfo)newOne.Cookies()[0]; ValueModifier valueModifier = stats.AddModifier( statsInfoFromNewOne.Smc.ShowStatsModifierOperator(), ((StatsModifier)newOne).CalculateValue() ); valueModifiers.Add(valueModifier); for (int kIndex = 0; kIndex < statsInfoFromNewOne.Smc.extras.Count; kIndex++) { StatsModifierValue extra = statsInfoFromNewOne.Smc.extras[kIndex]; ValueModifier extraModifier = stats.AddModifier( extra.ShowOperator(), extra.statsModifierValue * powerScale ); if (extraValueModifiers.Count - 1 < kIndex) { extraValueModifiers.Add(new List <ValueModifier>()); } extraValueModifiers[kIndex].Add(extraModifier); } }