| | |
| | | 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)) |
| | | { |
| | |
| | | |
| | | } |
| | | |
| | | #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 |
| | | } |
| | | |