Esempio n. 1
0
        public void UpdateCurrent(Stats stat01, Stats stat02, float delta)
        {
            fixed(float *ptr = m_cache)
            {
                StatValue *var01 = (StatValue *)(ptr + ((int)StatsOffset.Stats + ((int)stat01 - 1) * (int)StatIndex.Length));
                StatValue *var02 = (StatValue *)(ptr + ((int)StatsOffset.Stats + ((int)stat02 - 1) * (int)StatIndex.Length));

                if (var01->Cur != var02->Cur)
                {
                    var01->Cur = MathHelper.Clamp(var02->Max * delta, var01->Min, var01->Max);
                }
            }
        }
Esempio n. 2
0
        private static void Recalculate(StatValue *stat)
        {
            var coff = stat->Cur / stat->Max;

            stat->Max = (stat->Base + stat->Item + stat->Mod) * stat->Mul;
            if (stat->Max < stat->Min)
            {
                stat->Max = stat->Min;
            }
            if (stat->Cur > 0)
            {
                stat->Cur = stat->Max * coff;
            }
        }