Exemplo n.º 1
0
        public virtual void Update()
        {
            this.m_syncFlag = false;
            this.UpdateRegenAmountMultiplier();
            foreach (KeyValuePair <int, MyEntityStatRegenEffect> pair in this.m_effects)
            {
                MyEntityStatRegenEffect effect = pair.Value;
                if ((effect.Duration >= 0f) && (effect.AliveTime >= (effect.Duration * 1000f)))
                {
                    m_tmpRemoveEffects.Add(pair.Key);
                }
                if (Sync.IsServer && effect.Enabled)
                {
                    if (this.m_regenAmountMultiplierActive)
                    {
                        effect.Update(this.m_regenAmountMultiplier);
                    }
                    else
                    {
                        effect.Update(1f);
                    }
                }
            }
            foreach (int num in m_tmpRemoveEffects)
            {
                this.RemoveEffect(num);
            }
            m_tmpRemoveEffects.Clear();
            int updateCounter = this.m_updateCounter;

            this.m_updateCounter = updateCounter + 1;
            if ((((updateCounter % 10) == 0) || (Math.Abs((float)(this.Value - this.MinValue)) <= 0.001)) && (this.m_lastSyncValue != this.m_currentValue))
            {
                this.m_syncFlag      = true;
                this.m_lastSyncValue = this.m_currentValue;
            }
        }