| Core/GameEngine/Model/TelPartialConfig/tagStoreConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/DemonTreasureDungeonVictoryWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/TreasureDungeonMissionHintWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/Model/TelPartialConfig/tagStoreConfig.cs
@@ -8,12 +8,16 @@ { private static Dictionary<StoreItem, StoreConfig> s_StoreItemDict = new Dictionary<StoreItem, StoreConfig>(); private static Dictionary<int, List<StoreConfig>> storeConfigs = new Dictionary<int, List<StoreConfig>>(); static readonly int[] shop1Types = new int[] { 2, 3 }; static readonly int[] shop2Types = new int[] { 4 }; public void OnConfigParseCompleted() { if (ShopType == 0) return; var _storeItem = new StoreItem() { shopType = this.ShopType, item = this.ItemID, type = this.MoneyType, }; @@ -31,16 +35,60 @@ list.Add(this); } public static StoreConfig GetStoreCfg(int _item, int _moneyType) public static StoreConfig GetStoreCfg(int _item, int _moneyType, int shopType = 0) { var _storeItem = new StoreItem() if (shopType != 0) { item = _item, type = _moneyType, }; if (s_StoreItemDict.ContainsKey(_storeItem)) var storeItem = new StoreItem() { item = _item, type = _moneyType, shopType = shopType, }; if (s_StoreItemDict.ContainsKey(storeItem)) { return s_StoreItemDict[storeItem]; } } else { return s_StoreItemDict[_storeItem]; switch (_moneyType) { case 1: { for (int i = 0; i < shop1Types.Length; i++) { var storeItem = new StoreItem() { item = _item, type = _moneyType, shopType = shop1Types[i], }; if (s_StoreItemDict.ContainsKey(storeItem)) { return s_StoreItemDict[storeItem]; } } } break; case 2: { for (int i = 0; i < shop2Types.Length; i++) { var storeItem = new StoreItem() { item = _item, type = _moneyType, shopType = shop2Types[i], }; if (s_StoreItemDict.ContainsKey(storeItem)) { return s_StoreItemDict[storeItem]; } } } break; } } return null; } @@ -52,13 +100,14 @@ public struct StoreItem { public int shopType; public int item; public int type; public override bool Equals(object x) { StoreItem _storeItem = (StoreItem)x; return this.item == _storeItem.item && this.type == _storeItem.type; return this.item == _storeItem.item && this.type == _storeItem.type && this.shopType == _storeItem.shopType; } public override int GetHashCode() System/Dungeon/DemonTreasureDungeonVictoryWin.cs
@@ -17,6 +17,8 @@ [SerializeField] PropertyBehaviour[] m_Propertys; [SerializeField] Button m_ChallengeNextLevel; public static event Action challengeNextEvent; TreasureModel model { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } @@ -63,6 +65,7 @@ { m_Propertys[index].gameObject.SetActive(true); m_Propertys[index].Display(key, propertyDict[key]); index++; } } } @@ -84,6 +87,13 @@ pak.ActionType = 0; pak.ActionInfo = 0; GameNetSystem.Instance.SendInfo(pak); dungeonModel.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0); dungeonModel.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0); CloseClick(); if (challengeNextEvent != null) { challengeNextEvent(); } } } } System/Dungeon/TreasureDungeonMissionHintWin.cs
@@ -48,6 +48,7 @@ m_ScreenMoveTo.gameObject.SetActive(false); BossNotify.OnNotifyStateEvent += OnNotifyStateEvent; BossShowModel.Instance.bossShowCompletedEvent += BossShowCompletedEvent; DemonTreasureDungeonVictoryWin.challengeNextEvent += ChallengeNextEvent; var allConfigs = Config.Instance.GetAllValues<TreasureConfig>(); foreach (var value in allConfigs) @@ -70,6 +71,7 @@ { BossNotify.OnNotifyStateEvent -= OnNotifyStateEvent; BossShowModel.Instance.bossShowCompletedEvent -= BossShowCompletedEvent; DemonTreasureDungeonVictoryWin.challengeNextEvent -= ChallengeNextEvent; m_ContainerDisplay.gameObject.SetActive(true); } @@ -134,6 +136,14 @@ } } private void ChallengeNextEvent() { if (demonTreasureDungeon) { DisplayDemonTreasureDungeon(); } } void DisplayNormalTreasureDungeon() { var config = Config.Instance.Get<TreasureConfig>(treasureId); @@ -187,22 +197,12 @@ demonTreasureDungeon = false; if (mapId == 41110) { var list = model.GetTreasureCategory(TreasureCategory.Demon); for (int i = 0; i < list.Count; i++) TreasureDungeon treasureDungeon; if (model.TryGetTreasureDungeon(mapId, lineId, out treasureDungeon)) { TreasureDungeon treasureDungeon; if (model.TryGetTreasureDungeon(list[i], out treasureDungeon)) if (treasureDungeon.currentLevel < treasureDungeon.maxLevel - 1) { var count = treasureDungeon.dungeonInfos.Count; if (count > 0 && treasureDungeon.dungeonInfos[0].lineId == lineId) { var maxLevel = treasureDungeon.dungeonInfos[count - 1].level; if (treasureDungeon.currentLevel < maxLevel - 1) { demonTreasureDungeon = true; break; } } demonTreasureDungeon = true; } } }