hch
2026-01-26 aa84cb62bebb9c8a4e586bcc1ec28eb7a16a8860
Main/System/ItemTip/ItemTipUtility.cs
@@ -19,30 +19,23 @@
        BoxItem,    //宝箱随机物品
        BoxChooseItem,    //宝箱自选物品
        TreasurePavilion, //古宝物品(碎片)
        Hero,   //武将
        Mingge,  //命格
    }
    public class TipData
    {
        public string guid;
        public int itemId;
        public int appointID;
        public int goodId;
        public int exchangeItemId;  //部分界面要动态变化物品的情况
        public BaseInfo baseInfo;
        public BaseProperty baseProperty;
        public BaseProperty petMountBaseProperty;
        public SpiritWeaponProperty spiritWeaponProperty;
        public ShenProperty shenProperty;
        public LegendProperty legendProperty;
        public SkillInfo skillInfo;
        public SuitInfo suitInfo;
        public StarInfo starInfo;
        public StrengthenProperty strengthenProperty;
        public GemInfo gemInfo;
        public TrainProperty trainProperty;
        public List<ItemOperateType> operates;
        public WingRefineMaterials refineMaterials;
        public GetWay getWay;
        public bool showAll;
    }
    public struct BaseInfo
@@ -204,6 +197,7 @@
        public bool isAuctionEquip;
        public LegendProperty legendProperty;
        public int score;
        public int appointID; //定制装备
    }
    // static PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
@@ -238,7 +232,7 @@
    //showGetWay 是否获取途径界面
    public static void Show(int itemId, bool showGetWay = false)
    public static void Show(int itemId, bool showGetWay = false, int _appointID = 0)
    {
        if (!ItemConfig.HasKey(itemId))
        {
@@ -246,10 +240,20 @@
            return;
        }
        if (showGetWay)
        {
            //验证有没配置获取途径
            if (ItemConfig.Get(itemId).GetWay.Length == 0)
            {
                showGetWay = false;
            }
        }
        Show(new ItemViewInfo()
        {
            itemId = itemId,
            unfoldGetWay = showGetWay
            unfoldGetWay = showGetWay,
            appointID = _appointID
        });
    }
@@ -271,26 +275,21 @@
        switch (tipType)
        {
            case TipType.Equip:
                // mainTipData = CreateNormalEquipData(itemId);
                // if (item.isAuctionEquip && !item.legendProperty.Equals(default(LegendProperty)))
                // {
                //     mainTipData.legendProperty = item.legendProperty;
                //     mainTipData.baseInfo.score = item.score;
                //     mainTipData.baseInfo.isPreview = false;
                // }
                // 来源无法确定的,没有GUID的,1.定制 2.如奖励获得展示
                mainTipData = new TipData()
                {
                    itemId = itemId,
                    appointID = item.appointID,
                };
                // if (item.compare)
                // {
                //     if (ItemLogicUtility.Instance.IsJobCompatibleItem(itemId))
                //     {
                //         var equipedGuid = equipModel.GetEquip(new Int2(config.LV, config.EquipPlace));
                //         if (equipedGuid != string.Empty)
                //         {
                //             secondaryData = CreateNormalEquipData(equipedGuid, false);
                //         }
                //     }
                // }
                // 装备默认会掉在掉落背包里
                if (item.appointID == 0)
                {
                    mainTipData.guid = PackManager.Instance.GetItemGUIDByID(itemId, true, PackType.DropItem);
                }
                break;
            default:
                mainTipData = CreateItemData(itemId);
                break;
@@ -307,13 +306,16 @@
        switch (tipType)
        {
            case TipType.Equip:
                // WindowCenter.Instance.Open<EquipTipWin>();
                UIManager.Instance.OpenWindow<EquipTipWin>();
                break;
            // case TipType.PetMount:
            //      WindowCenter.Instance.Open<PetMountTipWin>();
            //     break;
            case TipType.Hero:
                FirstChargeManager.Instance.heroItemID = itemId;
                UIManager.Instance.OpenWindow<FirstChargeHeroInfoWin>();
                break;
            case TipType.BoxItem:
                UIManager.Instance.OpenWindow<BoxItemWin>();
                break;
@@ -321,9 +323,7 @@
                UIManager.Instance.OpenWindow<ChooseItemsWin>();
                break;
            case TipType.TreasurePavilion:
                // TreasurePavilionModel.Instance.selectGubao = config.EffectValueA1;
                // TreasurePavilionModel.Instance.showTipFromPiece = config.ID;
                // WindowCenter.Instance.OpenIL<TreasurePavilionTipWin>();
                GubaoManager.Instance.ShowTip(itemId, 0);
                break;
            default:
                UIManager.Instance.OpenWindow<ItemTipWin>();
@@ -331,7 +331,8 @@
        }
    }
    public static void Show(string guid, bool operatable = true)
    // showAll 默认正常全部显示,命格点套装特殊不显示物品信息
    public static void Show(string guid, bool _showAll = true)
    {
        var item = PackManager.Instance.GetItemByGuid(guid);
        if (item == null)
@@ -349,44 +350,29 @@
                switch (packType)
                {
                    case PackType.Equip:
                    case PackType.DropItem:
                        mainTipData = new TipData() { guid = guid };
                        break;
                    default:
                        // if (item.isAuction)
                        // {
                        //     mainTipData = CreateEquipAuctionData(guid, operatable);
                        //     if (ItemLogicUtility.Instance.IsJobCompatibleItem(item.itemId))
                        //     {
                        //         var equipedGuid = equipModel.GetEquip(new Int2(item.config.LV, item.config.EquipPlace));
                        //         if (equipedGuid != string.Empty)
                        //         {
                        //             secondaryData = CreateNormalEquipData(equipedGuid, false);
                        //         }
                        //     }
                        // }
                        // else
                        // {
                        //     mainTipData = CreateNormalEquipData(guid, operatable);
                        //     var equipedGuid = equipModel.GetEquip(new Int2(item.config.LV, item.config.EquipPlace));
                        //     if (equipedGuid != guid)
                        //     {
                        //         secondaryData = CreateNormalEquipData(equipedGuid, false);
                        //     }
                        // }
                        break;
                }
                break;
            case TipType.Mingge:
                mainTipData = new TipData()
                {
                    guid = guid,
                    showAll = _showAll
                };
                break;
            default:
                mainTipData = CreateItemData(guid, operatable);
                mainTipData = CreateItemData(guid);
                break;
        }
        switch (tipType)
        {
            case TipType.Equip:
                isShowCustomEquip = false;
                UIManager.Instance.OpenWindow<EquipTipWin>();
                break;
            // case TipType.PetMount:
@@ -398,26 +384,14 @@
            case TipType.BoxChooseItem:
                UIManager.Instance.OpenWindow<ChooseItemsWin>();
                break;
            // case TipType.TreasurePavilion:
            //     TreasurePavilionModel.Instance.selectGubao = item.config.EffectValueA1;
            //     TreasurePavilionModel.Instance.showTipFromPiece = item.itemId;
            //     WindowCenter.Instance.OpenIL<TreasurePavilionTipWin>();
            //     break;
            case TipType.Mingge:
                UIManager.Instance.OpenWindow<MinggeSmallTipWin>();
                break;
            default:
                UIManager.Instance.OpenWindow<ItemTipWin>();
                break;
        }
    }
    public static bool isShowCustomEquip = false;
    public static int customEquipItemId;
    public static int customEquipAppointItemId;
    public static void ShowCustomEquip(int itemId, int appointItemId)
    {
        customEquipItemId = itemId;
        customEquipAppointItemId = appointItemId;
        isShowCustomEquip = true;
        UIManager.Instance.OpenWindow<EquipTipWin>();
    }
@@ -682,7 +656,7 @@
            //suitInfo = GetSuitInfo(itemId),
            //gemInfo = GetGemInfo(itemId),
            //starInfo = GetStarInfo(itemId),
            operates = GetGoodOperates(goodId),
            // operates = GetGoodOperates(goodId),
            //shenProperty = GetShenProperty(itemId)
        };
    }
@@ -720,7 +694,7 @@
    //     };
    // }
    static TipData CreateItemData(string guid, bool operatable)
    static TipData CreateItemData(string guid)
    {
        var item = PackManager.Instance.GetItemByGuid(guid);
        if (item == null)
@@ -771,7 +745,7 @@
            // legendProperty = GetLegendProperty(itemId),
            // spiritWeaponProperty = GetSpiritWeaponProperty(itemId),
            // petMountBaseProperty = GetPetMountBaseProperty(itemId),
            operates = GetGoodOperates(goodId),
            // operates = GetGoodOperates(goodId),
            // shenProperty = GetShenProperty(itemId)
        };
    }
@@ -1606,28 +1580,6 @@
    private static List<ItemOperateType> GetGoodOperates(int goodId)
    {
        var operates = new List<ItemOperateType>();
        var countLimit = BuyItemController.Instance.GetBuyCountLimit(goodId, PlayerDatas.Instance.baseData.VIPLv);
        if (countLimit == -1 || countLimit > 0)
        {
            var config = StoreConfig.Get(goodId);
            int curVipIndex = -1;
            int nextVipIndex = -1;
            bool isVipBuy = BuyItemController.Instance.CheckIsVipBuy(config, out curVipIndex, out nextVipIndex);
            if ((isVipBuy && curVipIndex == -1) || PlayerDatas.Instance.baseData.LV < config.LV)
            {
                return operates;
            }
            operates.Add(ItemOperateType.buy);
        }
        return operates;
    }
    // private static bool IsEquipGemHoleOpen(Int2 equipPosition, int maxStar, int hole)
    // {
    //     GemHoleCondition condition;
@@ -1678,12 +1630,25 @@
            case 111:
            case 112:
                return TipType.Equip;
            // case 26:
            // case 41:
            // case 42:
            //     return TipType.PetMount;
            case 147:
                return TipType.TreasurePavilion;
            case 150:
                return TipType.Hero;
            case 201:
            case 202:
            case 203:
            case 204:
            case 205:
            case 206:
            case 207:
            case 208:
            case 209:
            case 210:
            case 211:
            case 212:
                return TipType.Mingge;
            default:
                return TipType.Item;
        }