private void UpdateItemPricePnl(CUIFormScript form, Transform pricePnlTrans, Transform tagTrans, ref stPayInfoSet payInfoSet)
        {
            GameObject obj2            = Utility.FindChild(pricePnlTrans.gameObject, "oldPricePanel");
            Text       componetInChild = Utility.GetComponetInChild <Text>(pricePnlTrans.gameObject, "oldPricePanel/oldPriceText");
            Image      image           = Utility.GetComponetInChild <Image>(pricePnlTrans.gameObject, "newPricePanel/costImage");
            Text       text2           = Utility.GetComponetInChild <Text>(pricePnlTrans.gameObject, "newPricePanel/newCostText");
            Text       text3           = Utility.GetComponetInChild <Text>(tagTrans.gameObject, "Text");

            tagTrans.gameObject.CustomSetActive(false);
            obj2.CustomSetActive(false);
            for (int i = 0; i < payInfoSet.m_payInfoCount; i++)
            {
                stPayInfo info = payInfoSet.m_payInfos[i];
                if (!Singleton <CMallMysteryShop> .GetInstance().HasGotDiscount)
                {
                    tagTrans.gameObject.CustomSetActive(true);
                    text3.text = "?折";
                    text2.text = info.m_payValue.ToString();
                    image.SetSprite(CMallSystem.GetPayTypeIconPath(info.m_payType), form, true, false, false);
                }
                else if (Singleton <CMallMysteryShop> .GetInstance().HasGotDiscount&& ((info.m_discountForDisplay == 0x2710) || (info.m_oriValue == info.m_payValue)))
                {
                    text2.text = info.m_payValue.ToString();
                    image.SetSprite(CMallSystem.GetPayTypeIconPath(info.m_payType), form, true, false, false);
                }
                else
                {
                    tagTrans.gameObject.CustomSetActive(true);
                    float num2 = ((float)info.m_discountForDisplay) / 1000f;
                    if (Math.Abs((float)(num2 % 1f)) < float.Epsilon)
                    {
                        text3.text = string.Format("{0}折", ((int)num2).ToString("D"));
                    }
                    else
                    {
                        text3.text = string.Format("{0}折", num2.ToString("0.0"));
                    }
                    obj2.CustomSetActive(true);
                    componetInChild.text = info.m_oriValue.ToString();
                    text2.text           = info.m_payValue.ToString();
                    image.SetSprite(CMallSystem.GetPayTypeIconPath(info.m_payType), form, true, false, false);
                }
            }
        }
Exemple #2
0
        public void OpenBuy(CUIFormScript form, ref COMDT_AKALISHOP_GOODS productInfo)
        {
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            DebugHelper.Assert(masterRoleInfo != null, "master roleInfo is null");
            if (masterRoleInfo == null)
            {
                return;
            }
            switch (productInfo.wItemType)
            {
            case 4:
            {
                ResHeroCfgInfo dataByKey = GameDataMgr.heroDatabin.GetDataByKey(productInfo.dwItemID);
                DebugHelper.Assert(dataByKey != null, "神秘商店配置的英雄ID有错,英雄表里不存在");
                if (dataByKey == null)
                {
                    return;
                }
                if (masterRoleInfo.IsHaveHero(dataByKey.dwCfgID, false))
                {
                    stUIEventParams par = default(stUIEventParams);
                    par.openHeroFormPar.heroId = dataByKey.dwCfgID;
                    Singleton <CUIEventManager> .GetInstance().DispatchUIEvent(enUIEventID.HeroInfo_OpenForm, par);

                    return;
                }
                stPayInfoSet payInfoSet = default(stPayInfoSet);
                payInfoSet.m_payInfoCount = 1;
                payInfoSet.m_payInfos     = new stPayInfo[1];
                stPayInfo stPayInfo = default(stPayInfo);
                stPayInfo.m_oriValue     = productInfo.dwOrigPrice;
                stPayInfo.m_payValue     = productInfo.dwRealPrice;
                stPayInfo.m_payType      = enPayType.DianQuan;
                payInfoSet.m_payInfos[0] = stPayInfo;
                CHeroSkinBuyManager.OpenBuyHeroForm(form, dataByKey.dwCfgID, payInfoSet, enUIEventID.Mall_Mystery_On_Buy_Item);
                break;
            }

            case 7:
            {
                ResHeroSkin heroSkin = CSkinInfo.GetHeroSkin(productInfo.dwItemID);
                DebugHelper.Assert(heroSkin != null, "神秘商店配置的皮肤ID有错,皮肤表里不存在");
                if (heroSkin == null)
                {
                    return;
                }
                ResHeroCfgInfo dataByKey2 = GameDataMgr.heroDatabin.GetDataByKey(heroSkin.dwHeroID);
                DebugHelper.Assert(dataByKey2 != null, "神秘商店配置的皮肤ID有错,皮肤对应的英雄不存在");
                if (dataByKey2 == null)
                {
                    return;
                }
                if (masterRoleInfo.IsHaveHeroSkin(heroSkin.dwHeroID, heroSkin.dwSkinID, false))
                {
                    stUIEventParams par2 = default(stUIEventParams);
                    par2.openHeroFormPar.heroId  = heroSkin.dwHeroID;
                    par2.openHeroFormPar.skinId  = heroSkin.dwSkinID;
                    par2.openHeroFormPar.openSrc = enHeroFormOpenSrc.SkinBuyClick;
                    Singleton <CUIEventManager> .GetInstance().DispatchUIEvent(enUIEventID.HeroInfo_OpenForm, par2);

                    return;
                }
                if (masterRoleInfo.IsCanBuySkinButNotHaveHero(heroSkin.dwHeroID, heroSkin.dwSkinID))
                {
                    stUIEventParams par3 = default(stUIEventParams);
                    par3.heroId = heroSkin.dwHeroID;
                    Singleton <CUIManager> .GetInstance().OpenMessageBoxWithCancel(string.Format("暂未拥有英雄{0},是否购买", StringHelper.UTF8BytesToString(ref dataByKey2.szName)), enUIEventID.Mall_Mystery_On_Buy_Hero_Not_Own, enUIEventID.None, par3, false);

                    return;
                }
                stPayInfoSet payInfoSet2 = default(stPayInfoSet);
                payInfoSet2.m_payInfoCount = 1;
                payInfoSet2.m_payInfos     = new stPayInfo[1];
                stPayInfo stPayInfo2 = default(stPayInfo);
                stPayInfo2.m_oriValue     = productInfo.dwOrigPrice;
                stPayInfo2.m_payValue     = productInfo.dwRealPrice;
                stPayInfo2.m_payType      = enPayType.DianQuan;
                payInfoSet2.m_payInfos[0] = stPayInfo2;
                CHeroSkinBuyManager.OpenBuyHeroSkinForm(heroSkin.dwHeroID, heroSkin.dwSkinID, true, payInfoSet2, enUIEventID.Mall_Mystery_On_Buy_Item);
                break;
            }
            }
        }
        public static stPayInfoSet GetPayInfoSetOfGood(COM_ITEM_TYPE itemType, uint itemID)
        {
            CMallMysteryShop instance = Singleton <CMallMysteryShop> .GetInstance();

            stPayInfoSet        set       = new stPayInfoSet(2);
            long                doubleKey = GameDataMgr.GetDoubleKey((uint)itemType, itemID);
            CMallMysteryProduct product   = new CMallMysteryProduct();

            if (!instance.m_ProductDic.TryGetValue(doubleKey, out product))
            {
                return(set);
            }
            uint      index = (instance.Discount / 10) - 1;
            stPayInfo info  = new stPayInfo();

            switch (product.ItemType)
            {
            case COM_ITEM_TYPE.COM_OBJTYPE_HERO:
            {
                ResHeroCfgInfo dataByKey = GameDataMgr.heroDatabin.GetDataByKey(itemID);
                DebugHelper.Assert(dataByKey != null, "神秘商店配置的英雄ID有错,英雄表里不存在");
                if (dataByKey != null)
                {
                    info.m_payType = CMallSystem.ResBuyTypeToPayType(product.Cfg.bMoneyType);
                    switch (info.m_payType)
                    {
                    case enPayType.GoldCoin:
                        info.m_oriValue = (uint)dataByKey.dwBuyCoin;
                        goto Label_01A7;

                    case enPayType.DianQuan:
                        info.m_oriValue = (uint)dataByKey.dwBuyCoupons;
                        goto Label_01A7;

                    case enPayType.Diamond:
                    case enPayType.DiamondAndDianQuan:
                        info.m_oriValue = (uint)dataByKey.dwBuyDiamond;
                        goto Label_01A7;
                    }
                    break;
                }
                return(set);
            }

            case COM_ITEM_TYPE.COM_OBJTYPE_HEROSKIN:
            {
                ResHeroSkin heroSkin = CSkinInfo.GetHeroSkin(itemID);
                DebugHelper.Assert(heroSkin != null, "神秘商店配置的皮肤ID有错,皮肤表里不存在");
                if (heroSkin != null)
                {
                    info.m_payType = CMallSystem.ResBuyTypeToPayType(product.Cfg.bMoneyType);
                    switch (info.m_payType)
                    {
                    case enPayType.DianQuan:
                        info.m_oriValue = heroSkin.dwBuyCoupons;
                        goto Label_01A7;

                    case enPayType.Diamond:
                    case enPayType.DiamondAndDianQuan:
                        info.m_oriValue = heroSkin.dwBuyDiamond;
                        goto Label_01A7;
                    }
                    break;
                }
                return(set);
            }
            }
Label_01A7:
            if (info.m_oriValue == 0)
            {
                info.m_oriValue = (uint)product.Cfg.RouZheKou[product.Cfg.RouZheKou.Length - 1];
            }
            if ((index < 0) || (index >= product.Cfg.RouZheKou.Length))
            {
                info.m_payValue           = info.m_oriValue;
                info.m_discountForDisplay = 0x2710;
            }
            else if (instance.IsRandomDiscount)
            {
                info.m_payValue           = (uint)product.Cfg.RouZheKou[index];
                info.m_discountForDisplay = instance.Discount * 100;
            }
            else
            {
                info.m_payValue           = (uint)product.Cfg.iConfirmZheKou;
                info.m_discountForDisplay = instance.Discount * 100;
            }
            set.m_payInfos[set.m_payInfoCount] = info;
            set.m_payInfoCount++;
            return(set);
        }