From c591cb6e215ea5e762560afdae059f1d4fd7f4ec Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 28 九月 2018 16:32:37 +0800
Subject: [PATCH] Merge branch 'master' into 3687天赋功能
---
System/Message/BattleHint.cs | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 102 insertions(+), 11 deletions(-)
diff --git a/System/Message/BattleHint.cs b/System/Message/BattleHint.cs
index f61b04d..17183b1 100644
--- a/System/Message/BattleHint.cs
+++ b/System/Message/BattleHint.cs
@@ -6,31 +6,78 @@
{
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"))
{
- return;
+ Receive(2);
}
+ }
+
+ public void Receive(int ancientType)
+ {
+ battleHints.Enqueue(ancientType);
if (!WindowCenter.Instance.IsOpen<BattleHintWin>())
{
WindowCenter.Instance.Open<BattleHintWin>();
@@ -44,12 +91,55 @@
}
}
- public bool TryGetBattleHint(out string msg)
+ public void ReceiveEvenKill(string message, ArrayList list)
{
- msg = string.Empty;
+ 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 (evenKillUpdate != null)
+ {
+ evenKillUpdate();
+ }
+ }
+ }
+
+ public bool TryGetBattleHint(out int ancientType)
+ {
+ 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