class SCR_VoiceRangeDisplay: SCR_InfoDisplay { protected TextWidget m_wRangeText; protected SCR_FadeUIComponent m_FadeComponent; protected override event void OnStartDraw(IEntity owner) { super.OnStartDraw(owner); if (!m_wRoot) { m_wRoot = GetGame().GetWorkspace().CreateWidgets("68D6F5422C10ACFC/UI/layouts/VoiceRange/VoiceRangeDynamicNumber.layout"); if (!m_wRoot) return; } m_wRangeText = TextWidget.Cast(m_wRoot.FindAnyWidget("RangeText")); if (!m_wRangeText) return; m_FadeComponent = SCR_FadeUIComponent.Cast(m_wRangeText.FindHandler(SCR_FadeUIComponent)); m_wRangeText.SetVisible(false); } void UpdateRangeText(int range) { if (!m_wRangeText) return; m_wRangeText.SetText(range.ToString() + " m"); m_wRangeText.SetVisible(true); if (m_FadeComponent) { m_FadeComponent.FadeIn(true); } GetGame().GetCallqueue().Remove(StartFadeOut); GetGame().GetCallqueue().CallLater(StartFadeOut, 3000, false); } protected void StartFadeOut() { if (m_FadeComponent) { m_FadeComponent.FadeOut(false); } else if (m_wRangeText) { m_wRangeText.SetVisible(false); } } }