| System/DogzDungeon/DogzBoxBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/DogzDungeon/DogzDungeonModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/DogzDungeon/DogzDungeonWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/DogzDungeon/DogzEliteMonsterBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/BossIntroduceBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/FindPreciousBossRebornBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/FindPreciousModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/WorldBossWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/GeneralConfig/GeneralConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/InGamePushContainer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Utility/EnumHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/DogzDungeon/DogzBoxBehaviour.cs
@@ -6,11 +6,43 @@ using System.Collections; using UnityEngine.UI; namespace Snxxz.UI { namespace Snxxz.UI { public class DogzBoxBehaviour:MonoBehaviour { public class DogzBoxBehaviour : MonoBehaviour { [SerializeField] Text m_BigBoxCount; [SerializeField] Text m_SmallBoxCount; [SerializeField] RawImage m_RawImage; DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } public void Display() { UI3DModelExhibition.Instance.BeginShowNPC(999, Vector3.zero, m_RawImage); DisplayBoxSurplusInfo(); model.boxSurplusChangeEvent += OnBoxInfoUpdate; } public void Dispose() { model.boxSurplusChangeEvent -= OnBoxInfoUpdate; UI3DModelExhibition.Instance.StopShowNPC(); } private void OnBoxInfoUpdate() { DisplayBoxSurplusInfo(); } private void DisplayBoxSurplusInfo() { var boxInfo = model.dogzDungeonBox; m_BigBoxCount.text = boxInfo.bigBoxSurplus.ToString(); m_BigBoxCount.color = UIHelper.GetUIColor(boxInfo.bigBoxSurplus > 0 ? TextColType.White : TextColType.Red); m_SmallBoxCount.text = boxInfo.smallBoxSurplus.ToString(); m_SmallBoxCount.color = UIHelper.GetUIColor(boxInfo.smallBoxSurplus > 0 ? TextColType.White : TextColType.Red); } } System/DogzDungeon/DogzDungeonModel.cs
@@ -12,7 +12,6 @@ public const int DOGZDUNGEON_REDPOINT = 76009; public const int DATA_MAPID = 1010010; int m_SelectedBoss = 0; public int selectedBoss { get { @@ -30,10 +29,47 @@ } } int m_WearyValue = 0; public int wearyValue { get { return m_WearyValue; } set { if (m_WearyValue != value) { m_WearyValue = value; if (bossWearyValueChangeEvent != null) { bossWearyValueChangeEvent(); } } } } int m_BigBoxCollectCount = 0; public int bigBoxCollectCount { get { return m_BigBoxCollectCount; } set { if (m_BigBoxCollectCount != value) { m_BigBoxCollectCount = value; if (bigBoxCollectCountChangeEvent != null) { bigBoxCollectCountChangeEvent(); } } } } public event Action<int> bossSelectedEvent; public event Action bossWearyValueChangeEvent; public event Action bigBoxCollectCountChangeEvent; public event Action boxSurplusChangeEvent; public event Action eliteSurplusChangeEvent; List<int> sortedBossIds = new List<int>(); Dictionary<int, DogzDungeonBossData> bosses = new Dictionary<int, DogzDungeonBossData>(); public DogzDungeonBox dogzDungeonBox = new DogzDungeonBox(); public DogzDungeonGuard dogzDungeonGuard = new DogzDungeonGuard(); Redpoint redpoint = new Redpoint(DOGZDUNGEON_REDPOINT); FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } } @@ -55,25 +91,56 @@ return new List<int>(bosses.Keys); } public int GetLatestUnLockBoss() public int GetRecommendBoss() { var playerLevel = PlayerDatas.Instance.baseData.LV; for (int i = sortedBossIds.Count - 1; i >= 0; i--) if (bigBoxCollectCount < 2) //未疲劳 { var bossId = sortedBossIds[i]; var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(bossId); if (IsBossUnLocked(bossId) && findPreciousModel.IsBossAlive(bossId) && playerLevel >= npcConfig.NPCLV) { return bossId; } return 999;//大宝箱npc id } return sortedBossIds[0]; if (wearyValue < GeneralConfig.Instance.bossWearyValues[1]) { var playerLevel = PlayerDatas.Instance.baseData.LV; for (int i = sortedBossIds.Count - 1; i >= 0; i--) { var bossId = sortedBossIds[i]; var dogzConfig = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(bossId); if (dogzConfig.MonsterType == 3 || dogzConfig.MonsterType == 4) { var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(bossId); if (IsBossUnLocked(bossId) && findPreciousModel.IsBossAlive(bossId) && playerLevel >= npcConfig.NPCLV) { return bossId; } } } return sortedBossIds[0]; } return 999;//大宝箱 npcid } public bool IsBossUnLocked(int _bossId) { return bosses.ContainsKey(_bossId) && bosses[_bossId].isUnLocked; } public void UpdateBoxSurplusInfo() { if (boxSurplusChangeEvent != null) { boxSurplusChangeEvent(); } } public void UpdateEliteSurplusInfo() { if (eliteSurplusChangeEvent != null) { eliteSurplusChangeEvent(); } } private void ParseConfig() @@ -87,9 +154,29 @@ sortedBossIds.Sort(DogzDungeonBossData.LevelCompare); } } public class DogzDungeonBox { public int bigBoxSurplus; public int smallBoxSurplus; public void UpdateBoxInfo(int _big, int _small) { bigBoxSurplus = _big; smallBoxSurplus = _small; } } public class DogzDungeonGuard { public int guardSurplus; public void UpdateGuardInfo(int _surplus) { guardSurplus = _surplus; } } public class DogzDungeonBossData { System/DogzDungeon/DogzDungeonWin.cs
@@ -17,16 +17,19 @@ { [SerializeField] CyclicScroll m_Bosses; [SerializeField] Transform m_ContainerMonster; [SerializeField] Text m_MonsterLevel; [SerializeField] RawImage m_MonsterPortrait; [SerializeField] DogzBoxBehaviour m_BoxBehaviour; [SerializeField] DogzEliteMonsterBehaviour m_EliteMonsterBehaviour; [SerializeField] BossIntroduceBehaviour m_BossIntroduce; [SerializeField] Button m_Goto; [SerializeField] Button m_KillRecord; [SerializeField] Transform m_SurpassLevel; [SerializeField] ToggleButton m_Subscribe; [SerializeField] TextEx m_WearyValue; [SerializeField] RectTransform m_ContainerBoxCollectWeary; [SerializeField] TextEx m_BoxCollectWearyValue; [SerializeField] RectTransform m_ContainerBossKillWeary; [SerializeField] TextEx m_BossKillWearyValue; DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } } @@ -73,33 +76,13 @@ private void ShowBosses() { var bosses = model.GetBosses(); model.selectedBoss = model.GetLatestUnLockBoss(); model.selectedBoss = model.GetRecommendBoss(); m_Bosses.Init(bosses); m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss)); var config = ConfigManager.Instance.GetTemplate<BossHomeConfig>(model.selectedBoss); var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(model.selectedBoss); switch (config.MonsterType) { case 1: m_KillRecord.gameObject.SetActive(false); m_BossIntroduce.gameObject.SetActive(false); m_ContainerMonster.gameObject.SetActive(true); m_BossIntroduce.Dispose(); UI3DModelExhibition.Instance.BeginShowNPC(model.selectedBoss, Vector3.zero, m_MonsterPortrait); m_MonsterLevel.text = Language.Get("Z1024", npcConfig.NPCLV); break; case 2: m_KillRecord.gameObject.SetActive(true); m_BossIntroduce.gameObject.SetActive(true); m_BossIntroduce.Display(model.selectedBoss, true); m_ContainerMonster.gameObject.SetActive(false); m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss); break; } var npcDropConfig = ConfigManager.Instance.GetTemplate<NPCDropItemConfig>(model.selectedBoss); m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV); DisplayItemDropTip(model.selectedBoss); DisplayBossBaseInfo(model.selectedBoss); DisplayWearyValue(model.selectedBoss); } private void ShowKillRecords() @@ -133,38 +116,93 @@ private void OnBossSelected(int _bossId) { var config = ConfigManager.Instance.GetTemplate<BossHomeConfig>(_bossId); var npcDropConfig = ConfigManager.Instance.GetTemplate<NPCDropItemConfig>(_bossId); m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV); DisplayItemDropTip(_bossId); DisplayBossBaseInfo(_bossId); DisplayWearyValue(_bossId); } private void DisplayBossBaseInfo(int _bossId) { var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(_bossId); switch (config.MonsterType) { case 1: m_KillRecord.gameObject.SetActive(false); m_BossIntroduce.gameObject.SetActive(false); m_ContainerMonster.gameObject.SetActive(true); m_BossIntroduce.Dispose(); UI3DModelExhibition.Instance.BeginShowNPC(_bossId, Vector3.zero, m_MonsterPortrait); var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(_bossId); m_MonsterLevel.text = Language.Get("Z1024", npcConfig.NPCLV); m_BossIntroduce.gameObject.SetActive(false); m_EliteMonsterBehaviour.Dispose(); m_EliteMonsterBehaviour.gameObject.SetActive(false); m_BoxBehaviour.gameObject.SetActive(true); m_BoxBehaviour.Display(); break; case 2: if (m_BossIntroduce.gameObject.activeInHierarchy) { m_BossIntroduce.Display(_bossId, false); } else { m_BossIntroduce.gameObject.SetActive(true); m_BossIntroduce.Display(_bossId, true); } m_KillRecord.gameObject.SetActive(false); m_BossIntroduce.Dispose(); m_BossIntroduce.gameObject.SetActive(false); m_BoxBehaviour.gameObject.SetActive(false); m_BoxBehaviour.Dispose(); m_EliteMonsterBehaviour.gameObject.SetActive(true); m_EliteMonsterBehaviour.Display(); break; case 3: case 4: m_KillRecord.gameObject.SetActive(true); m_ContainerMonster.gameObject.SetActive(false); m_BoxBehaviour.Dispose(); m_BoxBehaviour.gameObject.SetActive(false); m_EliteMonsterBehaviour.Dispose(); m_EliteMonsterBehaviour.gameObject.SetActive(false); m_BossIntroduce.gameObject.SetActive(true); m_BossIntroduce.Display(_bossId, true); m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(_bossId); break; } } private void DisplayItemDropTip(int _bossId) { var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(model.selectedBoss); switch (config.MonsterType) { case 1: case 2: m_SurpassLevel.gameObject.SetActive(false); break; case 3: case 4: var npcDropConfig = ConfigManager.Instance.GetTemplate<NPCDropItemConfig>(_bossId); m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV); m_SurpassLevel.gameObject.SetActive(true); break; } } private void DisplayWearyValue(int _bossId) { var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(model.selectedBoss); switch (config.MonsterType) { case 1: m_ContainerBoxCollectWeary.gameObject.SetActive(true); m_ContainerBossKillWeary.gameObject.SetActive(false); var bigBoxCollectCountLimit = 2; m_BossKillWearyValue.text = StringUtility.Contact(model.wearyValue, "/", bigBoxCollectCountLimit); m_BossKillWearyValue.colorType = model.bigBoxCollectCount >= bigBoxCollectCountLimit ? TextColType.Red : TextColType.DarkGreen; break; case 2: case 3: case 4: m_ContainerBoxCollectWeary.gameObject.SetActive(false); m_ContainerBossKillWeary.gameObject.SetActive(true); var wearyValueLimit = GeneralConfig.Instance.bossWearyValues[1]; m_BossKillWearyValue.text = StringUtility.Contact(model.wearyValue, "/", wearyValueLimit); m_BossKillWearyValue.colorType = model.wearyValue >= wearyValueLimit ? TextColType.Red : TextColType.DarkGreen; break; } } private void EnterDogzDungeon() { var error = 0; System/DogzDungeon/DogzEliteMonsterBehaviour.cs
@@ -6,11 +6,40 @@ using System.Collections; using UnityEngine.UI; namespace Snxxz.UI { namespace Snxxz.UI { public class DogzEliteMonsterBehaviour:MonoBehaviour { public class DogzEliteMonsterBehaviour : MonoBehaviour { [SerializeField] Text m_Elite; [SerializeField] RawImage m_RawImage; DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } public void Display() { UI3DModelExhibition.Instance.BeginShowNPC(999, Vector3.zero, m_RawImage); DisplayGuardSurplusInfo(); model.boxSurplusChangeEvent += OnGuardInfoUpdate; } public void Dispose() { model.boxSurplusChangeEvent -= OnGuardInfoUpdate; UI3DModelExhibition.Instance.StopShowNPC(); } private void OnGuardInfoUpdate() { DisplayGuardSurplusInfo(); } 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); } } System/FindPrecious/BossIntroduceBehaviour.cs
@@ -123,6 +123,9 @@ undoubtedlyRewards = demonJarConfig.MustItemID; unusualRewards = demonJarConfig.RareItemID; break; case FindPreciousType.DogzDungeon: undoubtedlyRewards = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(bossId).RareItemID; break; } if (m_UndoubtedlyRewardGroup != null) System/FindPrecious/FindPreciousBossRebornBehaviour.cs
@@ -27,6 +27,7 @@ DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } DemonJarModel demonJarModel { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } } BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } } DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } private void OnEnable() { @@ -45,7 +46,7 @@ if (model.currentBossNotify != 0) { var type = model.GetBossFindPreciousType(model.currentBossNotify); if (type == FindPreciousModel.FindPreciousType.DemonJar) if (type == FindPreciousType.DemonJar) { if (demonJarModel.GetSurplusTimes() <= 0) { @@ -83,19 +84,22 @@ switch (type) { case FindPreciousModel.FindPreciousType.DemonJar: case FindPreciousType.DemonJar: GotoKillDemonJarBoss(bossId); break; case FindPreciousModel.FindPreciousType.WorldBoss: case FindPreciousType.WorldBoss: GotoKillWorldBoss(bossId); break; case FindPreciousModel.FindPreciousType.BossHome: case FindPreciousType.BossHome: GotoKillBossHomeBoss(bossId); break; case FindPreciousModel.FindPreciousType.ElderGodArea: case FindPreciousType.ElderGodArea: GotoKillElderGodAreaBoss(bossId); break; case FindPreciousModel.FindPreciousType.PersonalBoss: case FindPreciousType.PersonalBoss: break; case FindPreciousType.DogzDungeon: GotoKillDogzDungeonBoss(bossId); break; } @@ -244,6 +248,11 @@ } private void GotoKillDogzDungeonBoss(int _bossId) { } private void EnterBossHome(int _floor) { var error = 0; System/FindPrecious/FindPreciousModel.cs
@@ -424,6 +424,10 @@ { return FindPreciousType.PersonalBoss; } else if (ConfigManager.Instance.ContainKey<DogzDungeonConfig>(_bossId)) { return FindPreciousType.DogzDungeon; } return FindPreciousType.None; } @@ -647,16 +651,6 @@ return _lhs.time > _rhs.time ? -1 : 1; } } public enum FindPreciousType { None, WorldBoss, BossHome, PersonalBoss, ElderGodArea, DemonJar, } } System/FindPrecious/WorldBossWin.cs
@@ -43,8 +43,9 @@ protected override void OnPreOpen() { m_WearyValue.text = StringUtility.Contact(model.wearyValue, "/", GeneralConfig.Instance.bossWearyValues[0] + model.extraBossWearyValue); m_WearyValue.colorType = model.wearyValue >= GeneralConfig.Instance.bossWearyValues[0]+model.extraBossWearyValue ? TextColType.Red : TextColType.DarkGreen; var wearyValueLimit = GeneralConfig.Instance.bossWearyValues[0] + model.extraBossWearyValue; m_WearyValue.text = StringUtility.Contact(model.wearyValue, "/", wearyValueLimit); m_WearyValue.colorType = model.wearyValue >= wearyValueLimit ? TextColType.Red : TextColType.DarkGreen; } protected override void OnAfterOpen() System/GeneralConfig/GeneralConfig.cs
@@ -115,6 +115,7 @@ public List<int> bossHomeNoRebornRemindMaps = null; public List<int> elderGodNoRebornRemindMaps = null; public List<int> demonJarNoRebornRemindMaps = null; public List<int> dogzNoRebornRemindMaps = null; public string[][] ModeDefaultConfig { get; private set; } public int[] RealmGroup { get; private set; } @@ -396,6 +397,7 @@ bossHomeNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 2)); elderGodNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 3)); demonJarNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 4)); dogzNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 5)); if (ModeDefaultConfig == null) { System/MainInterfacePanel/InGamePushContainer.cs
@@ -180,18 +180,20 @@ var mapId = PlayerDatas.Instance.baseData.MapID; switch (findPreciousType) { case FindPreciousModel.FindPreciousType.WorldBoss: case FindPreciousType.WorldBoss: show = !GeneralConfig.Instance.worldBossNoRebornRemindMaps.Contains(mapId); break; case FindPreciousModel.FindPreciousType.BossHome: case FindPreciousType.BossHome: show = !GeneralConfig.Instance.bossHomeNoRebornRemindMaps.Contains(mapId); break; case FindPreciousModel.FindPreciousType.ElderGodArea: case FindPreciousType.ElderGodArea: show = !GeneralConfig.Instance.elderGodNoRebornRemindMaps.Contains(mapId); break; case FindPreciousModel.FindPreciousType.DemonJar: case FindPreciousType.DemonJar: show = !GeneralConfig.Instance.demonJarNoRebornRemindMaps.Contains(mapId); break; case FindPreciousType.DogzDungeon: break; } if (show) Utility/EnumHelper.cs
@@ -1114,11 +1114,13 @@ public enum FindPreciousType { None, WorldBoss, BossHome, PersonalBoss, ElderGodArea, DemonJar, DogzDungeon, } public enum GotServerRewardType