lcy
2 天以前 eb08b17ddd08424eb03e1d6e5606933f0034ac45
Main/System/PhantasmPavilion/PhantasmPavilionUnlockButton.cs
@@ -24,40 +24,24 @@
                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");
        });