using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace Snxxz.UI { public class ServerTipDetails { #region 跑马灯 public static bool OnTweening = false; private static List m_Marquees = new List(); public static void ShowMarquee(string msg, ArrayList info, int _order, int loopCnt = 1) { m_Marquees.Add(new SystemHintData() { appendTime = DateTime.Now, message = msg, extentionData = info == null ? info : new ArrayList(info), order = _order }); m_Marquees.Sort(SysNotifyMgr.Instance.Compare); if (!CheckOpenMarquee()) { return; } if (!WindowCenter.Instance.CheckOpen()) { WindowCenter.Instance.Open(); } } public static void OnStageLoadFinish() { if (StageManager.Instance.CurrentStage is LoginStage || StageManager.Instance.CurrentStage is SelectRoleStage) { m_Marquees.Clear(); return; } SnxxzGame.Instance.StartCoroutine(Co_StageLoadFinish()); } static IEnumerator Co_StageLoadFinish() { yield return null; if (CheckOpenMarquee() && m_Marquees.Count > 0) { if (!WindowCenter.Instance.CheckOpen()) { WindowCenter.Instance.Open(); } } } static bool CheckOpenMarquee() { return (StageManager.Instance.CurrentStage is DungeonStage) && !StageManager.Instance.isLoading; } public static SystemHintData RequireMarquee() { if (m_Marquees.Count > 0) { var _hint = m_Marquees[0]; m_Marquees.RemoveAt(0); return _hint; } return null; } #endregion #region 固定全服消息 private static List hintTips = new List(); public static void ShowServerTip(string msg, ArrayList info, int order) { hintTips.Add(new SystemHintData() { message = msg, order = order, extentionData = info == null ? info : new ArrayList(info), appendTime = DateTime.Now, }); hintTips.Sort(SysNotifyMgr.Instance.Compare); MessageWin.Inst.ShowServerTip(); } public static SystemHintData RequireServerTip() { if (hintTips.Count > 0) { var _hint = hintTips[0]; hintTips.RemoveAt(0); return _hint; } return null; } #endregion public static void ClearHint() { hintTips.Clear(); m_Marquees.Clear(); queueTrumpetTips.Clear(); } #region 喇叭信息 private static Queue queueTrumpetTips = new Queue(); public static void ShowTrumpetTip(ChatTrumpetData trumpetData) { queueTrumpetTips.Enqueue(trumpetData); if (!WindowCenter.Instance.CheckOpen()) { WindowCenter.Instance.Open(); } } public static ChatTrumpetData RequireTrumpetTip() { if (queueTrumpetTips.Count > 0) { return queueTrumpetTips.Dequeue(); } return null; } public static int GetTrumpetSurplusCnt() { return queueTrumpetTips.Count; } #endregion } }