From bb2d2bae05da9eed93e13071b0f3bb9f5e058aa8 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 16 四月 2019 19:52:14 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/HazyRegion/HazyGrassDungeonWin.cs | 121 ++++++++++++++++++++++++++++++++++++----
1 files changed, 108 insertions(+), 13 deletions(-)
diff --git a/System/HazyRegion/HazyGrassDungeonWin.cs b/System/HazyRegion/HazyGrassDungeonWin.cs
index b038997..91518d8 100644
--- a/System/HazyRegion/HazyGrassDungeonWin.cs
+++ b/System/HazyRegion/HazyGrassDungeonWin.cs
@@ -6,6 +6,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
+using System.Text;
using UnityEngine;
using UnityEngine.UI;
@@ -15,13 +16,10 @@
public class HazyGrassDungeonWin : Window
{
[SerializeField] DungeonTargetBehaviour m_DungeonTarget;
- [SerializeField] Text m_BasicGrassCount;
- [SerializeField] Text m_FairyGrassCount;
- [SerializeField] Text m_BasicGrassRefreshTime;
- [SerializeField] Text m_FairyGrassRefreshTime;
+ [SerializeField] HazyGrassCountBeha[] m_GrassCountBehas;
+ [SerializeField] Text[] m_GrassTimes;
- [SerializeField] Transform m_ContainerCollectSucc;
- [SerializeField] Text m_GainRemind;
+ float timer = 0f;
DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
HazyRegionModel hazyRegionModel { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
@@ -37,11 +35,13 @@
protected override void OnPreOpen()
{
- m_ContainerCollectSucc.gameObject.SetActive(false);
-
Display();
+ timer = 0f;
+ RequestGrassCount();
+
GlobalTimeEvent.Instance.secondEvent += PerSecond;
+ hazyGrassModel.onMapNpcCountRefresh += OnMapNpcCountRefresh;
}
protected override void OnAfterOpen()
@@ -51,10 +51,22 @@
protected override void OnPreClose()
{
GlobalTimeEvent.Instance.secondEvent -= PerSecond;
+ hazyGrassModel.onMapNpcCountRefresh -= OnMapNpcCountRefresh;
}
protected override void OnAfterClose()
{
+ }
+
+ protected override void LateUpdate()
+ {
+ base.LateUpdate();
+ timer += Time.deltaTime;
+ if (timer >= 5f)
+ {
+ timer = 0f;
+ RequestGrassCount();
+ }
}
#endregion
@@ -77,19 +89,102 @@
}
DisplayGrassRefreshTime();
+ DisplayGrassCount();
}
void DisplayGrassCount()
{
-
+ var mapId = hazyGrassModel.GetGrassMapId(hazyRegionModel.processingIncidentId);
+ var npcInfos = hazyGrassModel.GetGrassNpcInfos(mapId);
+ for (int i = 0; i < m_GrassCountBehas.Length; i++)
+ {
+ if (npcInfos != null && i < npcInfos.Count)
+ {
+ m_GrassCountBehas[i].SetActive(true);
+ m_GrassCountBehas[i].Display(npcInfos[i].npcId,
+ hazyGrassModel.GetMapNpcCount(npcInfos[i].npcId));
+ }
+ else
+ {
+ m_GrassCountBehas[i].SetActive(false);
+ }
+ }
}
void DisplayGrassRefreshTime()
{
- var used = Mathf.Max(0, (int)(TimeUtility.ServerNow - hazyGrassModel.grassBornTime).TotalSeconds);
- var refreshSeconds = hazyGrassModel.grassRefreshSeconds - used % hazyGrassModel.grassRefreshSeconds;
- m_BasicGrassRefreshTime.text = Language.Get("HazyBasicGrassRefresh", TimeUtility.SecondsToMS(refreshSeconds));
- m_FairyGrassRefreshTime.text = Language.Get("HazyFairyGrassRefresh", TimeUtility.SecondsToMS(refreshSeconds));
+ var mapId = hazyGrassModel.GetGrassMapId(hazyRegionModel.processingIncidentId);
+ var npcInfos = hazyGrassModel.GetGrassNpcInfos(mapId);
+ for (int i = 0; i < m_GrassTimes.Length; i++)
+ {
+ if (npcInfos != null && i < npcInfos.Count)
+ {
+ m_GrassTimes[i].gameObject.SetActive(true);
+ var used = TimeUtility.Minute * 60 + TimeUtility.Second;
+ var refreshSeconds = npcInfos[i].refreshMinute * 60;
+ var seconds = refreshSeconds - used % refreshSeconds;
+ var npcConfig = NPCConfig.Get(npcInfos[i].npcId);
+ m_GrassTimes[i].text = string.Format("{0}{1}鍚庡埛鏂�", npcConfig.charName,
+ TimeUtility.SecondsToMS(seconds));
+ }
+ else
+ {
+ m_GrassTimes[i].gameObject.SetActive(false);
+ }
+ }
+ }
+
+ void RequestGrassCount()
+ {
+ if (!ClientDungeonStageUtility.isClientDungeon)
+ {
+ var config = HazyRegionConfig.Get(hazyRegionModel.processingIncidentId);
+ if (config != null)
+ {
+ var npcInfos = hazyGrassModel.GetGrassNpcInfos(config.dungeonId);
+ if (npcInfos != null)
+ {
+ int[] npcs = new int[npcInfos.Count];
+ for (int i = 0; i < npcInfos.Count; i++)
+ {
+ npcs[i] = npcInfos[i].npcId;
+ }
+
+ var pak = new CA227_tagCMQueryNPCCntInfo();
+ pak.MapID = (uint)config.dungeonId;
+ pak.LineID = (ushort)config.lineId;
+ pak.NPCIDList = LitJson.JsonMapper.ToJson(npcs);
+ pak.NPCIDListLen = (byte)pak.NPCIDList.Length;
+ GameNetSystem.Instance.SendInfo(pak);
+ }
+ }
+ }
+ }
+
+ private void OnMapNpcCountRefresh()
+ {
+ DisplayGrassCount();
+ }
+
+ [Serializable]
+ public class HazyGrassCountBeha
+ {
+ [SerializeField] Transform m_Container;
+ [SerializeField] Text m_Title;
+ [SerializeField] Text m_Count;
+
+ public void Display(int npcId, int count)
+ {
+ var npcConfig = NPCConfig.Get(npcId);
+ m_Title.text = string.Format("鍓╀綑{0}鏁伴噺锛�", npcConfig.charName);
+ m_Count.text = count.ToString();
+ m_Count.color = UIHelper.GetUIColor(count > 0 ? TextColType.Green : TextColType.Red);
+ }
+
+ public void SetActive(bool active)
+ {
+ m_Container.gameObject.SetActive(active);
+ }
}
}
--
Gitblit v1.8.0