Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        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);
            }
        }