From 3a4eb38542bf8cc2cdf7f835a559ade8a8457ea3 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期六, 29 九月 2018 03:02:47 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/Message/BattleHint.cs |  115 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 103 insertions(+), 12 deletions(-)

diff --git a/System/Message/BattleHint.cs b/System/Message/BattleHint.cs
index f61b04d..a2c1ac4 100644
--- a/System/Message/BattleHint.cs
+++ b/System/Message/BattleHint.cs
@@ -6,50 +6,140 @@
 {
     public class BattleHint : Singleton<BattleHint>
     {
+        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
+
         public BattleHint()
         {
-            StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
+            SysNotifyMgr.Instance.OnSystemNotifyEvent += OnSystemNotifyEvent;
         }
 
-        private void OnStageLoadFinish()
+        public void OnStageLoadFinish()
         {
             Clear();
+            //var mapId = PlayerDatas.Instance.baseData.MapID;
+            //if (cacheMapId != 0 && cacheMapId != 31160
+            //    && mapId == 31160)
+            //{
+            //    SnxxzGame.Instance.StartCoroutine(Co_LoadFinish());
+            //}
+            //var help = dungeonModel.mission;
+            //ancientKing = mapId != 31160 ? 0 : help.topPlayerID;
+            //cacheMapId = PlayerDatas.Instance.baseData.MapID;
         }
 
         public event Action battleHintUpdate;
+        public event Action evenKillUpdate;
 
-        Queue<string> battleHints = new Queue<string>();
+        Queue<int> battleHints = new Queue<int>();
+        Queue<string> evenKills = new Queue<string>();
 
-        public void Receive(string msg)
+        int ancientKing = 0;
+        int cacheMapId = 0;
+
+        IEnumerator Co_LoadFinish()
         {
-            if (!(StageManager.Instance.CurrentStage is DungeonStage))
+            yield return WaitingForSecondConst.WaitMS300;
+            var mapId = PlayerDatas.Instance.baseData.MapID;
+            if (mapId == 31160)
+            {
+                Receive(3);
+            }
+        }
+
+        public void UpdateDungeonHelp()
+        {
+            var help = dungeonModel.mission;
+            if (DTC0403_tagPlayerLoginLoadOK.finishedLogin)
+            {
+                if (PlayerDatas.Instance.baseData.MapID == 31160
+                    && help.topPlayerID == PlayerDatas.Instance.baseData.PlayerID
+                    && ancientKing != help.topPlayerID)
+                {
+                    ancientKing = help.topPlayerID;
+                    //Receive(1);
+                }
+            }
+            ancientKing = help.topPlayerID;
+        }
+
+        private void OnSystemNotifyEvent(string msg)
+        {
+            if (!(StageManager.Instance.CurrentStage is DungeonStage)
+                || StageManager.Instance.isLoading)
             {
                 return;
             }
-            battleHints.Enqueue(msg);
-            if (StageManager.Instance.isLoading)
+            if (msg.Equals("AncientBattlefield_8"))
+            {
+                //Receive(2);
+            }
+        }
+
+        public void Receive(int ancientType)
+        {
+            //battleHints.Enqueue(ancientType);
+            //if (!WindowCenter.Instance.IsOpen<BattleHintWin>())
+            //{
+            //    WindowCenter.Instance.Open<BattleHintWin>();
+            //}
+            //else
+            //{
+            //    if (battleHintUpdate != null)
+            //    {
+            //        battleHintUpdate();
+            //    }
+            //}
+        }
+
+        public void ReceiveEvenKill(string message, ArrayList list)
+        {
+            if (PlayerDatas.Instance.baseData.MapID != 31160
+                || !(StageManager.Instance.CurrentStage is DungeonStage)
+                || StageManager.Instance.isLoading)
             {
                 return;
             }
+            var evenKillCount = 0;
+            if (list != null && list.Count > 0)
+            {
+                int.TryParse(list[0].ToString(), out evenKillCount);
+            }
+            if (evenKillCount == 0)
+            {
+                return;
+            }
+            message = message.Replace("%s0", evenKillCount.ToString());
+            evenKills.Enqueue(message);
             if (!WindowCenter.Instance.IsOpen<BattleHintWin>())
             {
                 WindowCenter.Instance.Open<BattleHintWin>();
             }
             else
             {
-                if (battleHintUpdate != null)
+                if (evenKillUpdate != null)
                 {
-                    battleHintUpdate();
+                    evenKillUpdate();
                 }
             }
         }
 
-        public bool TryGetBattleHint(out string msg)
+        public bool TryGetBattleHint(out int ancientType)
         {
-            msg = string.Empty;
+            ancientType = 0;
             if (battleHints.Count > 0)
             {
-                msg = battleHints.Dequeue();
+                ancientType = battleHints.Dequeue();
+                return true;
+            }
+            return false;
+        }
+
+        public bool TryGetEvenKill(out string message)
+        {
+            message = string.Empty;
+            if (evenKills.Count > 0)
+            {
+                message = evenKills.Dequeue();
                 return true;
             }
             return false;
@@ -58,6 +148,7 @@
         public void Clear()
         {
             battleHints.Clear();
+            evenKills.Clear();
         }
     }
 }

--
Gitblit v1.8.0