public override void Update()
            {
                base.Update();

                if (m_stat != null)
                {
                    var totalValue = m_potentialChange;
                    var effects    = m_stat.GetEffects();
                    foreach (var effect in effects)
                    {
                        if (effect.Value.Duration >= 0)
                        {
                            totalValue += effect.Value.Amount;
                        }
                    }

                    if (totalValue < 0)
                    {
                        m_effectArrow.Visible              = true;
                        m_effectArrow.BackgroundTexture    = m_arrowDown;
                        m_progressBar.PotentialBar.Visible = false;
                    }
                    else if (totalValue > 0)
                    {
                        m_effectArrow.Visible           = true;
                        m_effectArrow.BackgroundTexture = m_arrowUp;

                        if (m_stat.MaxValue != 0)
                        {
                            if (!m_progressBar.PotentialBar.Visible || m_lastTotalValue != totalValue)
                            {
                                m_progressBar.PotentialBar.Visible = true;
                                m_recalculatePotential             = true;
                            }
                        }
                    }
                    else
                    {
                        m_effectArrow.Visible = false;
                        m_progressBar.PotentialBar.Visible = false;
                    }
                    m_lastTotalValue = totalValue;


                    if (m_stat.CurrentRatio <= m_stat.StatDefinition.GuiDef.CriticalRatio)
                    {
                        m_flashingProgress              = (MySandboxGame.TotalGamePlayTimeInMilliseconds - m_lastFlashTime) * 0.001f;
                        m_progressBarBorder.Visible     = true;
                        m_progressBarBorder.BorderColor = Vector4.Lerp(m_criticalValueColorFrom, m_criticalValueColorTo, m_flashingProgress);
                        if (m_flashingProgress >= 1f)
                        {
                            m_lastFlashTime = MySandboxGame.TotalGamePlayTimeInMilliseconds;
                        }
                    }
                    else
                    {
                        m_progressBarBorder.Visible = false;
                    }
                }
            }
            public override void Update()
            {
                base.Update();

                if (m_stat != null)
                {
                    var totalValue = 0.0f;
                    var effects    = m_stat.GetEffects();
                    foreach (var effect in effects)
                    {
                        if (effect.Value.Duration >= 0)
                        {
                            totalValue += effect.Value.Amount;
                        }
                    }

                    m_effectArrow.Visible = true;
                    m_effectArrow.Enabled = true;
                    if (totalValue < 0)
                    {
                        m_effectArrow.BackgroundTexture = m_arrowDown;
                    }
                    else if (totalValue > 0)
                    {
                        m_effectArrow.BackgroundTexture = m_arrowUp;
                    }
                    else
                    {
                        m_effectArrow.Visible = false;
                        m_effectArrow.Enabled = false;
                    }
                }
            }
Example #3
0
            public override void Update()
            {
                base.Update();

                if (m_stat != null)
                {
                    var totalValue = 0.0f;
                    var effects    = m_stat.GetEffects();
                    foreach (var effect in effects)
                    {
                        if (effect.Value.Duration >= 0)
                        {
                            totalValue += effect.Value.Amount;
                        }
                    }

                    if (totalValue < 0)
                    {
                        m_effectArrow.Visible              = true;
                        m_effectArrow.BackgroundTexture    = m_arrowDown;
                        m_progressBar.PotentialBar.Visible = false;
                    }
                    else if (totalValue > 0)
                    {
                        m_effectArrow.Visible           = true;
                        m_effectArrow.BackgroundTexture = m_arrowUp;

                        if (m_stat.MaxValue != 0)
                        {
                            if (!m_progressBar.PotentialBar.Visible || m_lastTotalValue != totalValue)
                            {
                                m_progressBar.PotentialBar.Visible = true;
                                m_recalculatePotential             = true;
                            }
                        }
                    }
                    else
                    {
                        m_effectArrow.Visible = false;
                        m_progressBar.PotentialBar.Visible = false;
                    }
                    m_lastTotalValue = totalValue;
                }
            }