public override void Update() { if (base.Input.Tap.HasValue) { Widget widget = HitTestGlobal(base.Input.Tap.Value); if (widget != null && (widget == this || widget.IsChildWidgetOf(this))) { m_tapsCount++; } } if (m_tapsCount >= 5) { m_tapsCount = 0; MotdManager.ForceRedownload(); AudioManager.PlaySound("Audio/UI/ButtonClick", 1f, 0f, 0f); } if (base.Input.IsKeyDownOnce(Key.PageUp)) { GotoLine(m_currentLineIndex - 1); } if (base.Input.IsKeyDownOnce(Key.PageDown)) { GotoLine(m_currentLineIndex + 1); } if (m_lines.Count > 0) { m_currentLineIndex %= m_lines.Count; double realTime = Time.RealTime; if (m_lastLineChangeTime == 0.0 || realTime - m_lastLineChangeTime >= (double)m_lines[m_currentLineIndex].Time) { GotoLine((m_lastLineChangeTime != 0.0) ? (m_currentLineIndex + 1) : 0); } float num = 0f; float num2 = (float)(realTime - m_lastLineChangeTime); float num3 = (float)(m_lastLineChangeTime + (double)m_lines[m_currentLineIndex].Time - 0.33000001311302185 - realTime); SetWidgetPosition(position: new Vector2((!(num2 < num3)) ? (base.ActualSize.X * (1f - MathUtils.PowSign(MathUtils.Sin(MathUtils.Saturate(1.5f * num3) * (float)Math.PI / 2f), 0.33f))) : (base.ActualSize.X * (MathUtils.PowSign(MathUtils.Sin(MathUtils.Saturate(1.5f * num2) * (float)Math.PI / 2f), 0.33f) - 1f)), 0f), widget: m_containerWidget); m_containerWidget.Size = base.ActualSize; } else { m_containerWidget.Children.Clear(); } }