| Core/NetworkPackage/DTCFile/ServerPack/HA9_Function/DTCA904_tagGCDogzNPCRefreshTime.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/DogzDungeon/DogzDungeonBreifInfoBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/DogzDungeon/DogzDungeonModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/DogzDungeon/DogzDungeonWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/DogzDungeon/DogzEliteMonsterBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/FindPreciousBossBriefInfoBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/MainInterfaceWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | 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 {