少年修仙传客户端代码仓库
client_linchunjie
2018-08-28 7ae0227d6a43261faf38c5e74b960855fde25f54
2960 抢Boss活动(提交封包代码)
6个文件已修改
174 ■■■■■ 已修改文件
Core/NetworkPackage/DTCFile/ServerPack/HAC_Activity/DTCAC10_tagGCAllFamilyBossHurtInfoList.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAC_Activity/HAC10_tagGCAllFamilyBossHurtInfoList.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossBehaviour.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossModel.cs 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossWin.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/LootPreciousFrameWin.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | 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()