少年修仙传客户端代码仓库
client_Wu Xijin
2018-08-21 376c3944ba531c212999292cc82994d887e80232
1889 【前端】神兽地界及界面相关
7个文件已修改
194 ■■■■ 已修改文件
Core/NetworkPackage/DTCFile/ServerPack/HA9_Function/DTCA904_tagGCDogzNPCRefreshTime.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonBreifInfoBehaviour.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonModel.cs 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonWin.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzEliteMonsterBehaviour.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousBossBriefInfoBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainInterfaceWin.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA9_Function/DTCA904_tagGCDogzNPCRefreshTime.cs
@@ -17,7 +17,7 @@
    {
        base.Done(vNetPack);
        var package = vNetPack as HA904_tagGCDogzNPCRefreshTime;
        model.UpdateBoxOrGuardRefreshTime(package);
        model.UpdateBoxOrEliteRefreshTime(package);
    }
}
System/DogzDungeon/DogzDungeonBreifInfoBehaviour.cs
@@ -6,6 +6,7 @@
using System.Collections;
using UnityEngine.UI;
using TableConfig;
using System;
namespace Snxxz.UI
{
@@ -33,8 +34,10 @@
                {
                    case 1:
                    case 2:
                        dieOrLocked = model.dogzDungeonBox.bigBoxSurplus <= 0;
                        break;
                    case 3:
                        dieOrLocked = false;
                        dieOrLocked = model.dogzDungeonElite.eliteSurplus <= 0;
                        break;
                    case 4:
                        dieOrLocked = !model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId);
@@ -76,6 +79,19 @@
            UpdateBossPortrait(interactorableState);
            OnSelected(bossId);
            model.dogzDungeonBox.refreshTimeEvent -= OnBoxRefreshTimeChange;
            model.dogzDungeonElite.refreshTimeEvent -= OnEliteRefreshTimeChange;
            switch (config.MonsterType)
            {
                case 1:
                case 2:
                    model.dogzDungeonBox.refreshTimeEvent += OnBoxRefreshTimeChange;
                    break;
                case 3:
                    model.dogzDungeonElite.refreshTimeEvent += OnEliteRefreshTimeChange;
                    break;
            }
            model.bossSelectedEvent -= OnSelected;
            model.bossSelectedEvent += OnSelected;
        }
@@ -84,6 +100,58 @@
        {
            base.Dispose();
            model.bossSelectedEvent -= OnSelected;
            model.dogzDungeonBox.refreshTimeEvent -= OnBoxRefreshTimeChange;
            model.dogzDungeonElite.refreshTimeEvent -= OnEliteRefreshTimeChange;
        }
        protected override void UpdateBossRebornCoolDown(bool _isUnLocked)
        {
            if (_isUnLocked)
            {
                var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(bossId);
                var refreshTime = DateTime.Now;
                switch (config.MonsterType)
                {
                    case 1:
                    case 2:
                        refreshTime = model.dogzDungeonBox.refreshTime;
                        break;
                    case 3:
                        refreshTime = model.dogzDungeonElite.refreshTime;
                        break;
                    case 4:
                        FindPreciousModel.BossInfo bossInfo;
                        if (findPreciousModel.TryGetBossInfo(bossId, out bossInfo) && !bossInfo.IsBossAlive())
                        {
                            refreshTime = bossInfo.refreshTime;
                        }
                        break;
                }
                if (refreshTime > DateTime.Now)
                {
                    m_CoolDown.Begin(refreshTime, OnBossCoolDownCompleted);
                }
                else
                {
                    m_CoolDown.gameObject.SetActive(false);
                }
            }
            else
            {
                m_CoolDown.gameObject.SetActive(false);
            }
        }
        private void OnBoxRefreshTimeChange()
        {
            UpdateBossRebornCoolDown(isUnLocked);
        }
        private void OnEliteRefreshTimeChange()
        {
            UpdateBossRebornCoolDown(isUnLocked);
        }
        private void OnSelected(int _bossId)
System/DogzDungeon/DogzDungeonModel.cs
@@ -74,7 +74,7 @@
        List<int> sortedBossIds = new List<int>();
        Dictionary<int, DogzDungeonBossData> bosses = new Dictionary<int, DogzDungeonBossData>();
        public DogzDungeonBox dogzDungeonBox = new DogzDungeonBox();
        public DogzDungeonGuard dogzDungeonGuard = new DogzDungeonGuard();
        public DogzDungeonElite dogzDungeonElite = new DogzDungeonElite();
        Redpoint redpoint = new Redpoint(DOGZDUNGEON_REDPOINT);
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
@@ -107,7 +107,12 @@
            return npcIds;
        }
        public int GetRecommendBoss()
        public List<int> GetBosses()
        {
            return new List<int>(bosses.Keys);
        }
        public int GetRecommendNpc()
        {
            if (bigBoxCollectCount < 2) //未疲劳
            {
@@ -135,6 +140,17 @@
            }
            return bigBoxNpcId;//大宝箱 npcid
        }
        public int GetRecommendKillElite()
        {
            var Elite = dogzDungeonElite.GetAliveElite();
            if (Elite == 0)
            {
                Elite = eliteMonsters[0];
            }
            return Elite;
        }
        public bool IsBossUnLocked(int _bossId)
@@ -206,7 +222,6 @@
            var updatedBox = false;
            var updatedElite = false;
            var eliteMonsterSurplus = 0;
            for (int i = 0; i < _npcInfoes.NPCInfoList.Length; i++)
            {
                var npcInfo = _npcInfoes.NPCInfoList[i];
@@ -224,7 +239,7 @@
                if (eliteMonsters.Contains((int)npcInfo.NPCID))
                {
                    eliteMonsterSurplus += (int)npcInfo.Cnt;
                    dogzDungeonElite.UpdateEliteInfo((int)npcInfo.NPCID, (int)npcInfo.Cnt);
                    updatedElite = true;
                }
            }
@@ -239,7 +254,6 @@
            if (updatedElite)
            {
                dogzDungeonGuard.guardSurplus = eliteMonsterSurplus;
                if (eliteSurplusChangeEvent != null)
                {
                    eliteSurplusChangeEvent();
@@ -248,7 +262,7 @@
        }
        public void UpdateBoxOrGuardRefreshTime(HA904_tagGCDogzNPCRefreshTime _refreshTimes)
        public void UpdateBoxOrEliteRefreshTime(HA904_tagGCDogzNPCRefreshTime _refreshTimes)
        {
            for (int i = 0; i < _refreshTimes.InfoList.Length; i++)
            {
@@ -261,7 +275,7 @@
                if (eliteMonsters.Contains((int)info.NPCID))
                {
                    dogzDungeonGuard.UpdateGuardInfo((int)info.RefreshSecond);
                    dogzDungeonElite.UpdateEliteRefreshTime((int)info.RefreshSecond);
                    RequestEliteSurplusInfo();
                }
            }
@@ -300,6 +314,8 @@
        public int smallBoxSurplus;
        public DateTime refreshTime { get; private set; }
        public event Action refreshTimeEvent;
        public void UpdateBoxInfo(int _big, int _small)
        {
            bigBoxSurplus = _big;
@@ -309,22 +325,57 @@
        public void UpdateBoxRefreshTime(int _seconds)
        {
            refreshTime = DateTime.Now + new TimeSpan(_seconds * TimeSpan.TicksPerSecond);
            DebugEx.Log("宝箱刷新时间:" + refreshTime);
            if (refreshTimeEvent != null)
            {
                refreshTimeEvent();
            }
        }
    }
    public class DogzDungeonGuard
    public class DogzDungeonElite
    {
        public int guardSurplus;
        public DateTime refreshTime { get; private set; }
        public void UpdateGuardInfo(int _surplus)
        {
            guardSurplus = _surplus;
        public Dictionary<int, int> eliteCounts = new Dictionary<int, int>();
        public int eliteSurplus {
            get {
                var count = 0;
                foreach (var eliteCount in eliteCounts.Values)
                {
                    count += eliteCount;
                }
                return count;
            }
        }
        public void UpdateGuardRefreshTime(int _seconds)
        public DateTime refreshTime { get; private set; }
        public event Action refreshTimeEvent;
        public void UpdateEliteInfo(int _npcId, int _count)
        {
            eliteCounts[_npcId] = _count;
        }
        public void UpdateEliteRefreshTime(int _seconds)
        {
            refreshTime = DateTime.Now + new TimeSpan(_seconds * TimeSpan.TicksPerSecond);
            if (refreshTimeEvent!=null)
            {
                refreshTimeEvent();
            }
            DebugEx.Log("精英刷新时间:" + refreshTime);
        }
        public int GetAliveElite()
        {
            foreach (var EliteCount in eliteCounts)
            {
                if (EliteCount.Key > 0)
                {
                    return EliteCount.Value;
                }
            }
            return 0;
        }
    }
System/DogzDungeon/DogzDungeonWin.cs
@@ -22,6 +22,7 @@
        [SerializeField] BossIntroduceBehaviour m_BossIntroduce;
        [SerializeField] Button m_Goto;
        [SerializeField] ImageEx m_ImageGoto;
        [SerializeField] Button m_KillRecord;
        [SerializeField] Transform m_SurpassLevel;
        [SerializeField] ToggleButton m_Subscribe;
@@ -78,7 +79,7 @@
        private void ShowBosses()
        {
            var bosses = model.GetNpcIds();
            model.selectedBoss = model.GetRecommendBoss();
            model.selectedBoss = model.GetRecommendNpc();
            m_Bosses.Init(bosses);
            m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
@@ -112,7 +113,24 @@
                WindowCenter.Instance.Close<LootPreciousFrameWin>();
                WindowCenter.Instance.Open<MainInterfaceWin>();
            }
            EnterDogzDungeon();
            var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(model.selectedBoss);
            switch (config.MonsterType)
            {
                case 1:
                case 2:
                case 3:
                    if (PlayerDatas.Instance.baseData.MapID != DogzDungeonModel.DATA_MAPID)
                    {
                        var map = ConfigManager.Instance.GetTemplate<MapConfig>(DogzDungeonModel.DATA_MAPID);
                        var position = new Vector3(map.BornPoints[0].x, 0, map.BornPoints[0].y);
                        MapTransferUtility.Send_WorldTransfer(DogzDungeonModel.DATA_MAPID, position, MapTransferType.WorldTransport, 0, 0);
                    }
                    break;
                case 4:
                    MapTransferUtility.Instance.MoveToNPC(model.selectedBoss);
                    break;
            }
        }
        private void OnSubscribeBoss(int _bossId)
System/DogzDungeon/DogzEliteMonsterBehaviour.cs
@@ -37,9 +37,9 @@
        private void DisplayGuardSurplusInfo()
        {
            var guard = model.dogzDungeonGuard;
            m_Elite.text = guard.guardSurplus.ToString();
            m_Elite.color = UIHelper.GetUIColor(guard.guardSurplus > 0 ? TextColType.White : TextColType.Red);
            var guard = model.dogzDungeonElite;
            m_Elite.text = guard.eliteSurplus.ToString();
            m_Elite.color = UIHelper.GetUIColor(guard.eliteSurplus > 0 ? TextColType.White : TextColType.Red);
        }
        float timer = 0f;
System/FindPrecious/FindPreciousBossBriefInfoBehaviour.cs
@@ -134,7 +134,7 @@
            m_Portrait.material = isGray ? m_GrayMaterial : m_NormalMaterial;
        }
        protected void UpdateBossRebornCoolDown(bool _isUnLocked)
        protected virtual void UpdateBossRebornCoolDown(bool _isUnLocked)
        {
            if (_isUnLocked)
            {
System/MainInterfacePanel/MainInterfaceWin.cs
@@ -298,7 +298,16 @@
                if (isNeutralMap)
                {
                    m_BossBriefInfos.gameObject.SetActive(true);
                    m_BossBriefInfos.Display(ModelCenter.Instance.GetModel<WorldBossModel>().GetWorldBosses(PlayerDatas.Instance.baseData.MapID));
                    if (PlayerDatas.Instance.baseData.MapID==DogzDungeonModel.DATA_MAPID)
                    {
                        var bosses = ModelCenter.Instance.GetModel<DogzDungeonModel>().GetBosses();
                        m_BossBriefInfos.Display(bosses);
                    }
                    else
                    {
                        var bosses = ModelCenter.Instance.GetModel<WorldBossModel>().GetWorldBosses(PlayerDatas.Instance.baseData.MapID);
                        m_BossBriefInfos.Display(bosses);
                    }
                }
                else
                {