| Core/NetworkPackage/DTCFile/ServerPack/HAC_Activity/DTCAC10_tagGCAllFamilyBossHurtInfoList.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/ServerPack/HAC_Activity/HAC10_tagGCAllFamilyBossHurtInfoList.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FairyAu/FairyGrabBossBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FairyAu/FairyGrabBossModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FairyAu/FairyGrabBossWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/LootPreciousFrameWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/NetworkPackage/DTCFile/ServerPack/HAC_Activity/DTCAC10_tagGCAllFamilyBossHurtInfoList.cs
@@ -6,14 +6,15 @@ using System; using System.Collections; using System.Collections.Generic; public class DTCAC10_tagGCAllFamilyBossHurtInfoList : DtcBasic { using Snxxz.UI; public class DTCAC10_tagGCAllFamilyBossHurtInfoList : DtcBasic { public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); var package = vNetPack as HAC10_tagGCAllFamilyBossHurtInfoList; ModelCenter.Instance.GetModel<FairyGrabBossModel>().UpdateBossProgress(package); } } Core/NetworkPackage/ServerPack/HAC_Activity/HAC10_tagGCAllFamilyBossHurtInfoList.cs
@@ -4,8 +4,7 @@ // AC 10 仙盟抢Boss所有Boss伤血进度信息 #tagGCAllFamilyBossHurtInfoList public class HAC10_tagGCAllFamilyBossHurtInfoList : GameNetPackBasic { public uint NPCID; public ushort NPCCount; // 个数 public byte NPCCount; // 个数 public tagGCFamilyBossHurtInfo[] NPCHurtInfo; // NPC伤血信息列表 public HAC10_tagGCAllFamilyBossHurtInfoList () { @@ -13,8 +12,7 @@ } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out NPCID, vBytes, NetDataType.DWORD); TransBytes (out NPCCount, vBytes, NetDataType.WORD); TransBytes (out NPCCount, vBytes, NetDataType.BYTE); NPCHurtInfo = new tagGCFamilyBossHurtInfo[NPCCount]; for (int i = 0; i < NPCCount; i ++) { NPCHurtInfo[i] = new tagGCFamilyBossHurtInfo(); System/FairyAu/FairyGrabBossBehaviour.cs
@@ -1,4 +1,5 @@ using System.Collections; using System; using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; @@ -11,6 +12,8 @@ [SerializeField] AutoSelectCyclicScroll m_Scroll; [SerializeField] RectTransform m_CenterSign; [SerializeField] RectTransform m_ContainerSelect; [SerializeField] RectTransform m_ContainerKilling; [SerializeField] RectTransform m_ContainerKilled; [SerializeField] Image m_BossPortrait; [SerializeField] Text m_MapName; [SerializeField] Text m_BossName; @@ -36,16 +39,23 @@ bossId = (int)_data; DrawBossBaseInfo(); DisplayProgress(); OnSelected(model.selectBoss); model.bossSelectedEvent -= OnSelected; model.bossSelectedEvent += OnSelected; model.bossProgressUpdate -= BossProgressUpdate; model.bossProgressUpdate += BossProgressUpdate; model.stateUpdate -= StateUpdate; model.stateUpdate += StateUpdate; } public override void Dispose() { base.Dispose(); model.bossSelectedEvent -= OnSelected; model.bossProgressUpdate -= BossProgressUpdate; model.stateUpdate -= StateUpdate; } private void OnSelected(int _bossId) @@ -64,6 +74,34 @@ m_BossName.text = npcConfig.charName; } private void BossProgressUpdate(int _bossId) { if (_bossId == bossId) { DisplayProgress(); } } private void StateUpdate() { DisplayProgress(); } void DisplayProgress() { FairyGrabBossModel.BossProgressInfo bossProgress; bool killed = false; bool opened = model.IsOpen; if (model.TryGetBossProgress(bossId, out bossProgress)) { var progress = (float)bossProgress.currentHp / bossProgress.totalHp; m_Progress.text = StringUtility.Contact((int)progress * 100, "%"); killed = (float)bossProgress.currentHp / bossProgress.totalHp >= 1; } m_ContainerKilled.gameObject.SetActive(killed && opened); m_ContainerKilling.gameObject.SetActive(!killed && opened); } protected virtual void LateUpdate() { if (m_Scroll.autoSelectable && model.selectBoss != bossId && bossId > 0) System/FairyAu/FairyGrabBossModel.cs
@@ -10,6 +10,7 @@ public List<int> bosses { get; private set; } Dictionary<int, List<Item>> dropItemDict = new Dictionary<int, List<Item>>(); Dictionary<int, Dictionary<int, FairyGrabBossInfo>> fairyGrabBossDict = new Dictionary<int, Dictionary<int, FairyGrabBossInfo>>(); Dictionary<int, BossProgressInfo> bossProgressDict = new Dictionary<int, BossProgressInfo>(); public bool IsOpen { @@ -62,6 +63,7 @@ public event Action stateUpdate; public event Action<int> bossSelectedEvent; public event Action<int, int> bossHurtUpdate; public event Action<int> bossProgressUpdate; DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } } @@ -70,6 +72,7 @@ ParseConfig(); GlobalTimeEvent.Instance.secondEvent += SecondEvent; StageManager.Instance.onStageLoadFinish += OnStageLoadFinish; DailyQuestActionTimer.Instance.RefreshDailyQuestState += RefreshDailyQuestState; } public void OnBeforePlayerDataInitialize() @@ -84,6 +87,9 @@ public override void UnInit() { GlobalTimeEvent.Instance.secondEvent -= SecondEvent; StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish; DailyQuestActionTimer.Instance.RefreshDailyQuestState -= RefreshDailyQuestState; } private void OnStageLoadFinish() @@ -91,6 +97,14 @@ if (!(StageManager.Instance.CurrentStage is DungeonStage)) { fairyGrabBossDict.Clear(); } } private void RefreshDailyQuestState() { if (stateUpdate != null) { stateUpdate(); } } @@ -162,6 +176,44 @@ GameNetSystem.Instance.SendInfo(pak); } public void UpdateBossProgress(HAC10_tagGCAllFamilyBossHurtInfoList package) { for (int i = 0; i < package.NPCCount; i++) { var sBossProgress = package.NPCHurtInfo[i]; var bossProgress = new BossProgressInfo() { NPCID = (int)sBossProgress.NPCID, CurHP = (int)sBossProgress.CurHP, CurHPEx = (int)sBossProgress.CurHPEx, MaxHP = (int)sBossProgress.MaxHP, MaxHPEx = (int)sBossProgress.MaxHPEx, FamilyID = (int)sBossProgress.FamilyID, FamilyName = UIHelper.ServerStringTrim(sBossProgress.FamilyName), }; bossProgressDict[(int)package.NPCHurtInfo[i].NPCID] = bossProgress; if (bossProgressUpdate != null) { bossProgressUpdate(bossProgress.NPCID); } } } public bool TryGetBossProgress(int bossId,out BossProgressInfo bossProgressInfo) { return bossProgressDict.TryGetValue(bossId, out bossProgressInfo); } public bool TryGetBossHurt(int bossId, int queryType, out FairyGrabBossInfo fairyGrabBossInfo) { fairyGrabBossInfo = null; if (fairyGrabBossDict.ContainsKey(bossId)) { return fairyGrabBossDict[bossId].TryGetValue(queryType, out fairyGrabBossInfo); } return false; } private void SecondEvent() { if (!serverInited) @@ -234,6 +286,33 @@ } } } public struct BossProgressInfo { public int NPCID; public int CurHP; public int CurHPEx; public int MaxHP; public int MaxHPEx; public int FamilyID; public string FamilyName; public long currentHp { get { return CurHP + (long)CurHPEx * Constants.ExpPointValue; } } public long totalHp { get { return MaxHP + (long)MaxHPEx * Constants.ExpPointValue; } } } } } System/FairyAu/FairyGrabBossWin.cs
@@ -36,8 +36,11 @@ { DisplaySurplusTime(); DisplayBossInfo(); DisplayHighestFairy(); GlobalTimeEvent.Instance.secondEvent += SecondEvent; model.bossSelectedEvent += BossSelectedEvent; model.bossProgressUpdate += BossProgressUpdate; model.stateUpdate += StateUpdate; } protected override void OnActived() @@ -54,6 +57,8 @@ { GlobalTimeEvent.Instance.secondEvent -= SecondEvent; model.bossSelectedEvent -= BossSelectedEvent; model.bossProgressUpdate -= BossProgressUpdate; model.stateUpdate -= StateUpdate; } protected override void OnAfterClose() @@ -96,6 +101,20 @@ } } void DisplayHighestFairy() { m_FairyName.text = string.Empty; if (!model.IsOpen) { return; } FairyGrabBossModel.BossProgressInfo bossProgress; if (model.TryGetBossProgress(model.selectBoss, out bossProgress)) { m_FairyName.text = bossProgress.FamilyName; } } int DefaultSelect() { return model.bosses[0]; @@ -130,7 +149,21 @@ private void BossSelectedEvent(int bossId) { DisplayBossInfo(); DisplayHighestFairy(); } private void BossProgressUpdate(int bossId) { if (bossId == model.selectBoss) { DisplayHighestFairy(); } } private void StateUpdate() { DisplayHighestFairy(); } } } System/FindPrecious/LootPreciousFrameWin.cs
@@ -40,8 +40,6 @@ protected override void OnPreOpen() { fairyGrabBossModel.stateUpdate += FairyGrabBossUpdate; m_FairyGrabBoss.state = fairyGrabBossModel.IsOpen ? TitleBtnState.Normal : TitleBtnState.Locked; } protected override void OnAfterOpen() @@ -50,8 +48,6 @@ protected override void OnPreClose() { fairyGrabBossModel.stateUpdate -= FairyGrabBossUpdate; CloseSubWindows(); if (!WindowJumpMgr.Instance.IsJumpState) { @@ -87,11 +83,6 @@ CloseSubWindows(); WindowCenter.Instance.Open<FairyGrabBossWin>(); functionOrder = m_FairyGrabBoss.order; } private void FairyGrabBossUpdate() { m_FairyGrabBoss.state = fairyGrabBossModel.IsOpen ? TitleBtnState.Normal : TitleBtnState.Locked; } private void CloseSubWindows()