| Main/System/HeroUI/HeroBestWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/HeroUI/HeroTrainWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/HeroUI/HeroUIManager.Collect.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Main/System/HeroUI/HeroBestWin.cs
@@ -127,7 +127,7 @@ allAttrScroll.verticalNormalizedPosition = 1; Display(); HeroUIManager.Instance.skinRedpoint.state = HeroUIManager.Instance.HeroAllSkinStateForRedpoint(HeroUIManager.Instance.selectForPreviewHeroID, true) > 0 ? RedPointState.Simple : RedPointState.None; } @@ -143,7 +143,7 @@ jobPosNameText.text = HeroUIManager.Instance.GetJobName(heroConfig.Class); descText.text = heroConfig.Desc; HeroUIManager.Instance.PlayerLHSound(skinID); RefreshConn(); normalSkillCell.Init(heroConfig.AtkSkillID, () => { @@ -193,8 +193,17 @@ { if (heroConfig.FetterIDList.Length > 0) { connetionForm.SetActive(true); connetionForm.Display(heroConfig.FetterIDList[0], Language.Get("herocard38") + "\n", true); int fetterID = heroConfig.FetterIDList[0]; HeroFetterConfig fetterConfig = HeroFetterConfig.Get(fetterID); if (fetterConfig != null && HeroUIManager.IsFetterAllHeroOpen(fetterConfig)) { connetionForm.SetActive(true); connetionForm.Display(fetterID, Language.Get("herocard38") + "\n", true); } else { connetionForm.SetActive(false); } } else { @@ -221,7 +230,7 @@ } HeroUIManager.Instance.selectForPreviewHeroID = HeroUIManager.Instance.heroCollectList[resultIndex]; Display(); //控制一级功能界面的皮肤按钮 var ui = UIManager.Instance.GetUI<HeroBestBaseWin>(); if (ui != null) @@ -330,7 +339,7 @@ } void RefreshAllPotential() { @@ -394,11 +403,21 @@ //羁绊 void RefreshFetter() { if (heroConfig.FetterIDList.Length == 0) if (heroConfig.FetterIDList.IsNullOrEmpty()) { fetterGo.SetActive(false); return; } // 检查第一个羁绊组合是否满足开服天条件,不满足则隐藏整个羁绊区域 int firstFetterID = heroConfig.FetterIDList[0]; HeroFetterConfig firstFetterConfig = HeroFetterConfig.Get(firstFetterID); if (firstFetterConfig == null || !HeroUIManager.IsFetterAllHeroOpen(firstFetterConfig)) { fetterGo.SetActive(false); return; } fetterGo.SetActive(true); for (int i = 0; i < fetterText.Length; i++) @@ -526,6 +545,5 @@ } } } } Main/System/HeroUI/HeroTrainWin.cs
@@ -371,8 +371,17 @@ { if (hero.heroConfig.FetterIDList.Length > 0) { connetionForm.SetActive(true); connetionForm.Display(hero.heroConfig.FetterIDList[0], Language.Get("herocard38") + "\n", true, guid); int fetterID = hero.heroConfig.FetterIDList[0]; HeroFetterConfig fetterConfig = HeroFetterConfig.Get(fetterID); if (fetterConfig != null && HeroUIManager.IsFetterAllHeroOpen(fetterConfig)) { connetionForm.SetActive(true); connetionForm.Display(fetterID, Language.Get("herocard38") + "\n", true, guid); } else { connetionForm.SetActive(false); } } else { @@ -694,6 +703,16 @@ fetterGo.SetActive(false); return; } // 检查第一个羁绊组合是否满足开服天条件,不满足则隐藏整个羁绊区域 int firstFetterID = hero.heroConfig.FetterIDList[0]; HeroFetterConfig firstFetterConfig = HeroFetterConfig.Get(firstFetterID); if (firstFetterConfig == null || !HeroUIManager.IsFetterAllHeroOpen(firstFetterConfig)) { fetterGo.SetActive(false); return; } fetterGo.SetActive(true); for (int i = 0; i < fetterText.Length; i++) Main/System/HeroUI/HeroUIManager.Collect.cs
@@ -162,8 +162,8 @@ HeroConfig heroConfig = HeroConfig.Get(heroID); if (heroConfig.PlayerCanUse == 0) continue; // 新增:开服第x天显示图鉴,0表示不限制开服天 if (heroConfig.OpenCollectionDay > 0 && TimeUtility.OpenDay + 1 < heroConfig.OpenCollectionDay) // 开服第x天显示图鉴,0表示不限制开服天 if (HasOpenCollectionDayLimit(heroID) && !IsOpenCollectionDayMet(heroID)) continue; if (!heroCollectDict.ContainsKey(heroConfig.Quality)) { @@ -414,6 +414,57 @@ } #region 开服天数相关方法 /// <summary> /// 检查武将是否配置了开服展示天数限制 /// </summary> /// <param name="heroID">武将ID</param> /// <returns>true: 有开服天限制; false: 无限制(OpenCollectionDay==0 或配置不存在)</returns> public static bool HasOpenCollectionDayLimit(int heroID) { HeroConfig heroConfig = HeroConfig.Get(heroID); if (heroConfig == null) return false; return heroConfig.OpenCollectionDay > 0; } /// <summary> /// 检查武将是否已满足开服展示天数要求(仅在有限制时调用有意义) /// </summary> /// <param name="heroID">武将ID</param> /// <returns>true: 已满足展示天数; false: 尚未满足</returns> public static bool IsOpenCollectionDayMet(int heroID) { HeroConfig heroConfig = HeroConfig.Get(heroID); if (heroConfig == null) return false; // OpenCollectionDay==0 无限制,视为已满足 if (heroConfig.OpenCollectionDay <= 0) return true; return TimeUtility.OpenDay + 1 >= heroConfig.OpenCollectionDay; } /// <summary> /// 检查羁绊组合中所有武将是否都满足开服展示天数 /// 只有配置了开服天限制的武将才需要检查,未配置限制的武将视为满足 /// </summary> /// <param name="fetterConfig">羁绊配置</param> /// <returns>true: 所有武将都满足; false: 有武将不满足</returns> public static bool IsFetterAllHeroOpen(HeroFetterConfig fetterConfig) { for (int i = 0; i < fetterConfig.HeroIDList.Length; i++) { int heroID = fetterConfig.HeroIDList[i]; // 有限制但未满足 -> 该羁绊不可显示 if (HasOpenCollectionDayLimit(heroID) && !IsOpenCollectionDayMet(heroID)) return false; } return true; } #endregion #endregion }