From fc714208ff3a320c3bb52bddd5ea3d91f647a206 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 16 四月 2019 15:18:21 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/HazyRegion/ClientHazyGrassStage.cs | 308 ++++++++++++++++++++++++++++++---------------------
1 files changed, 180 insertions(+), 128 deletions(-)
diff --git a/System/HazyRegion/ClientHazyGrassStage.cs b/System/HazyRegion/ClientHazyGrassStage.cs
index 1c56035..c675610 100644
--- a/System/HazyRegion/ClientHazyGrassStage.cs
+++ b/System/HazyRegion/ClientHazyGrassStage.cs
@@ -1,166 +1,218 @@
-锘縰sing System;
+锘縰sing Snxxz.UI;
+using System;
using System.Collections;
using System.Collections.Generic;
-using UnityEngine;
-namespace Snxxz.UI
+using UnityEngine;
+public class ClientHazyGrassStage : DungeonStage
{
- public class ClientHazyGrassStage : DungeonStage
+ static readonly Vector3 PlayerBornPosition1 = new Vector3(17.25f, 5.12f, 3.70f);
+ static readonly Vector3 PlayerBornPosition2 = new Vector3(17.25f, 5.12f, 3.70f);
+
+ static List<HazyMapNpcScriptableObject.NpcInfo> s_NpcInfos = new List<HazyMapNpcScriptableObject.NpcInfo>();
+ static Dictionary<Vector3, GA_NpcClientCollect> s_CollectNpcs = new Dictionary<Vector3, GA_NpcClientCollect>();
+ static Dictionary<uint, Vector3> s_Sid2NpcPos = new Dictionary<uint, Vector3>();
+ static Dictionary<uint, int> s_Sid2NpcIds = new Dictionary<uint, int>();
+ static List<GA_NpcClientFightNorm> s_ClientFightNpcs = new List<GA_NpcClientFightNorm>();
+
+ static int grassRefreshCount = 0;
+
+ bool mapLoadFinish = false;
+ bool initedFightNpc = false;
+
+ HazyRegionIncidentType incidentType;
+
+ HazyGrassModel model { get { return ModelCenter.Instance.GetModel<HazyGrassModel>(); } }
+ HazyRegionModel hazyRegionModel { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
+
+ public override void Initialize()
{
- static readonly Vector3 PlayerBornPosition = new Vector3(17.25f, 5.12f, 3.70f);
+ base.Initialize();
- static List<HazyMapNpcScriptableObject.NpcInfo> s_NpcInfos = new List<HazyMapNpcScriptableObject.NpcInfo>();
- static Dictionary<Vector3, GA_NpcClientCollect> s_CollectNpcs = new Dictionary<Vector3, GA_NpcClientCollect>();
- static Dictionary<uint, Vector3> s_Sid2NpcPos = new Dictionary<uint, Vector3>();
- static Dictionary<uint, int> s_Sid2NpcIds = new Dictionary<uint, int>();
+ s_NpcInfos.Clear();
+ s_Sid2NpcIds.Clear();
+ s_Sid2NpcPos.Clear();
- static int grassRefreshCount = 0;
+ mapLoadFinish = false;
+ initedFightNpc = false;
- bool mapLoadFinish = false;
+ grassRefreshCount = 0;
- HazyGrassModel model { get { return ModelCenter.Instance.GetModel<HazyGrassModel>(); } }
-
- public override void Initialize()
+ var config = HazyRegionConfig.Get(hazyRegionModel.processingIncidentId);
+ if (config != null)
{
- base.Initialize();
-
- s_NpcInfos.Clear();
- s_Sid2NpcIds.Clear();
- s_Sid2NpcPos.Clear();
-
- mapLoadFinish = false;
-
- grassRefreshCount = 0;
-
- UnloadAllNpc();
-
- GA_NpcClientCollect.OnCollectFinished += OnCollectFinished;
+ incidentType = (HazyRegionIncidentType)config.incidentType;
}
- protected override void OnStageLoadFinish()
+ UnloadAllNpc();
+
+ GA_NpcClientCollect.OnCollectFinished += OnCollectFinished;
+ }
+
+ protected override void OnStageLoadFinish()
+ {
+ base.OnStageLoadFinish();
+
+ mapLoadFinish = true;
+ model.RefreshGrassBornTime(TimeUtility.ServerNow);
+
+ InitialPlayer();
+ InitializeNpc();
+
+ initedFightNpc = true;
+ }
+
+ protected override void OnUpdate()
+ {
+ base.OnUpdate();
+
+ if (mapLoadFinish)
{
- base.OnStageLoadFinish();
-
- mapLoadFinish = true;
- model.RefreshGrassBornTime(TimeUtility.ServerNow);
-
- InitialPlayer();
- InitializeNpc();
- }
-
- protected override void OnUpdate()
- {
- base.OnUpdate();
-
- if (mapLoadFinish)
+ var used = Mathf.Max(0, (int)(TimeUtility.ServerNow - model.grassBornTime).TotalSeconds);
+ var count = used / model.grassRefreshSeconds;
+ if (count != grassRefreshCount)
{
- var used = Mathf.Max(0, (int)(TimeUtility.ServerNow - model.grassBornTime).TotalSeconds);
- var count = used / model.grassRefreshSeconds;
- if (count != grassRefreshCount)
- {
- RebornCollectedNpc();
- grassRefreshCount = count;
- }
- }
- }
-
- public override void UnInitialize()
- {
- base.UnInitialize();
-
- UnloadAllNpc();
-
- GA_NpcClientCollect.OnCollectFinished -= OnCollectFinished;
- }
-
- private void OnCollectFinished(uint _sid)
- {
- if (s_Sid2NpcIds.ContainsKey(_sid))
- {
- var npcId = s_Sid2NpcIds[_sid];
- Debug.Log("閲囬泦浜哊pc:--" + npcId);
- }
-
- if (s_Sid2NpcPos.ContainsKey(_sid))
- {
- var pos = s_Sid2NpcPos[_sid];
- if (s_CollectNpcs.ContainsKey(pos))
- {
- s_CollectNpcs.Remove(pos);
- }
- }
- }
-
- void InitializeNpc()
- {
- s_NpcInfos.Clear();
-
- var config = ScriptableObjectLoader.LoadSoHazyMapNpc(ClientDungeonStageUtility.clientMapId);
- var npcInfos = config.GetAllNpcInfos();
- if (npcInfos != null)
- {
- s_NpcInfos.AddRange(npcInfos);
RebornCollectedNpc();
+ grassRefreshCount = count;
}
}
+ }
- void InitialPlayer()
+ public override void UnInitialize()
+ {
+ base.UnInitialize();
+
+ UnloadAllNpc();
+
+ GA_NpcClientCollect.OnCollectFinished -= OnCollectFinished;
+ }
+
+ private void OnCollectFinished(uint _sid)
+ {
+ if (s_Sid2NpcIds.ContainsKey(_sid))
{
- var hero = PlayerDatas.Instance.hero;
- hero.Pos = PlayerBornPosition;
- CameraController.Instance.Apply();
+ var npcId = s_Sid2NpcIds[_sid];
+ Debug.Log("閲囬泦浜哊pc:--" + npcId);
}
- void RebornCollectedNpc()
+ if (s_Sid2NpcPos.ContainsKey(_sid))
{
- foreach (var npcInfo in s_NpcInfos)
+ var pos = s_Sid2NpcPos[_sid];
+ if (s_CollectNpcs.ContainsKey(pos))
{
- switch (npcInfo.npcType)
- {
- case E_NpcType.Collect:
- GA_NpcClientCollect _npc = null;
- if (!s_CollectNpcs.TryGetValue(npcInfo.position, out _npc)
- || _npc == null || _npc.ActorInfo.serverDie)
+ s_CollectNpcs.Remove(pos);
+ }
+ }
+ }
+
+ void InitializeNpc()
+ {
+ s_NpcInfos.Clear();
+
+ var config = ScriptableObjectLoader.LoadSoHazyMapNpc(ClientDungeonStageUtility.clientMapId);
+ var npcInfos = config.GetAllNpcInfos();
+ if (npcInfos != null)
+ {
+ s_NpcInfos.AddRange(npcInfos);
+ RebornCollectedNpc();
+ }
+ }
+
+ void InitialPlayer()
+ {
+ var hero = PlayerDatas.Instance.hero;
+ if (incidentType == HazyRegionIncidentType.ReikiGrass)
+ {
+ hero.Pos = PlayerBornPosition1;
+ }
+ else if (incidentType == HazyRegionIncidentType.FairyGrass)
+ {
+ hero.Pos = PlayerBornPosition2;
+ }
+ CameraController.Instance.Apply();
+ }
+
+ void RebornCollectedNpc()
+ {
+ foreach (var npcInfo in s_NpcInfos)
+ {
+ switch (npcInfo.npcType)
+ {
+ case E_NpcType.Collect:
+ GA_NpcClientCollect _npc = null;
+ if (!s_CollectNpcs.TryGetValue(npcInfo.position, out _npc)
+ || _npc == null || _npc.ActorInfo.serverDie)
+ {
+ _npc = GAMgr.Instance.ReqClntNoFightNpc<GA_NpcClientCollect>((uint)npcInfo.npcId,
+ E_ActorGroup.FuncNpc);
+ if (_npc != null)
{
- _npc = GAMgr.Instance.ReqClntNoFightNpc<GA_NpcClientCollect>((uint)npcInfo.npcId,
- E_ActorGroup.FuncNpc);
- if (_npc != null)
- {
- _npc.Pos = npcInfo.position;
- s_CollectNpcs[npcInfo.position] = _npc;
+ _npc.Pos = npcInfo.position;
+ s_CollectNpcs[npcInfo.position] = _npc;
- s_Sid2NpcIds[_npc.ServerInstID] = npcInfo.npcId;
- s_Sid2NpcPos[_npc.ServerInstID] = npcInfo.position;
- }
+ s_Sid2NpcIds[_npc.ServerInstID] = npcInfo.npcId;
+ s_Sid2NpcPos[_npc.ServerInstID] = npcInfo.position;
}
- break;
- }
+ }
+ break;
+ case E_NpcType.Fight:
+ if (!initedFightNpc)
+ {
+ var fightNpc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>((uint)npcInfo.npcId,
+ E_ActorGroup.Enemy);
+ if (fightNpc != null)
+ {
+ fightNpc.Pos = npcInfo.position;
+ fightNpc.OnAttacked -= OnAttackNpc;
+ fightNpc.OnAttacked += OnAttackNpc;
+ }
+ s_ClientFightNpcs.Add(fightNpc);
+ }
+ break;
+ }
+ }
+ }
+
+ private void OnAttackNpc()
+ {
+ Debug.Log("鏀诲嚮浜嗗疂绠辨��");
+ }
+
+ void UnloadAllNpc()
+ {
+ foreach (var _npc in s_CollectNpcs.Values)
+ {
+ if (_npc != null)
+ {
+ _npc.KillerServerInstID = PlayerDatas.Instance.PlayerId;
+ _npc.ActorInfo.serverDie = true;
+ GAMgr.Instance.ServerDie(_npc.ServerInstID);
+ GAMgr.Instance.Release(_npc);
}
}
- void UnloadAllNpc()
+ foreach (var _npc in s_ClientFightNpcs)
{
- foreach (var _npc in s_CollectNpcs.Values)
+ if (_npc != null)
{
- if (_npc != null)
- {
- _npc.KillerServerInstID = PlayerDatas.Instance.PlayerId;
- _npc.ActorInfo.serverDie = true;
- GAMgr.Instance.ServerDie(_npc.ServerInstID);
- GAMgr.Instance.Release(_npc);
- }
+ _npc.OnAttacked -= OnAttackNpc;
+ _npc.ActorInfo.serverDie = true;
+ GAMgr.Instance.ServerDie(_npc.ServerInstID);
+ GAMgr.Instance.Release(_npc);
}
- s_CollectNpcs.Clear();
}
+
+ s_ClientFightNpcs.Clear();
+ s_CollectNpcs.Clear();
+ }
#if UNITY_EDITOR
- private void OnGUI()
+ private void OnGUI()
+ {
+ if (GUILayout.Button("Exit"))
{
- if (GUILayout.Button("Exit"))
- {
- model.RequestExitClientDungeon();
- }
+ model.RequestExitClientDungeon();
}
-#endif
}
-}
+#endif
+}
--
Gitblit v1.8.0