| | |
| | | int useCnt = manager.GetUnlockNeedCnt(type, id); |
| | | if (useCnt > hasCnt) |
| | | { |
| | | if (!ItemConfig.HasKey(unlockValue)) |
| | | return; |
| | | if (!ItemConfig.HasKey(unlockValue)) return; |
| | | string name = ItemConfig.Get(unlockValue).ItemName; |
| | | SysNotifyMgr.Instance.ShowTip("UnLockFail2", name); |
| | | return; |
| | | } |
| | | } |
| | | else if (unlockWay == 3) |
| | | else if (unlockWay != 1) // 统一处理 3, 4, 5 以及未来自定义的类型 |
| | | { |
| | | bool hasHero = HeroManager.Instance.HasHero(unlockValue); |
| | | if (!hasHero) |
| | | // UI 层不再硬编码含义,直接调用基于 Type 的校验 |
| | | bool canUnlock = manager.CheckTableSpecificUnlock(type, unlockWay, unlockValue); |
| | | if (!canUnlock) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("UnLockFail1"); |
| | | // 这里统一复用 UnLockFail1,或未来在 CheckTableSpecificUnlock 中返回更具体的错误枚举 |
| | | SysNotifyMgr.Instance.ShowTip("UnLockFail1"); |
| | | return; |
| | | } |
| | | } |
| | | else if (unlockWay == 4) // 新增:如果是皮肤解锁 |
| | | { |
| | | bool hasSkin = HeroUIManager.Instance.IsHeroSkinActive(HeroConfig.GetHeroIDBySkinID(unlockValue), unlockValue); |
| | | if (!hasSkin) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("UnLockFail1"); |
| | | return; |
| | | } |
| | | } |
| | | else if (unlockWay == 5) // 如果是形象解锁 |
| | | { |
| | | bool hasModel = manager.IsUnlock(PhantasmPavilionType.Model, unlockValue); |
| | | if (!hasModel) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("UnLockFail1"); // 可以根据需要换成对应的语言包 Key,如 "形象未解锁" |
| | | return; |
| | | } |
| | | } |
| | | |
| | | manager.SendOPPack(type, PhantasmPavilionOperation.Activate, (uint)id); |
| | | SysNotifyMgr.Instance.ShowTip("UnLockSuccess"); |
| | | }); |