Пример #1
0
    public bool CanSendFriend()
    {
        ItemType type = this.m_type;

        if (type != ItemType.Hero)
        {
            if (type != ItemType.Skin)
            {
                return(false);
            }
        }
        else
        {
            if (this.m_heroData == null)
            {
                return(false);
            }
            return(CHeroSkinBuyManager.ShouldShowBuyForFriend(false, this.m_heroData.cfgID, 0));
        }
        if (this.m_skinData == null)
        {
            return(false);
        }
        return(CHeroSkinBuyManager.ShouldShowBuyForFriend(true, this.m_skinData.dwHeroID, this.m_skinData.dwSkinID));
    }
Пример #2
0
 public bool CanSendFriend()
 {
     CMallItem.ItemType type = this.m_type;
     if (type != CMallItem.ItemType.Hero)
     {
         return(type == CMallItem.ItemType.Skin && this.m_skinData != null && CHeroSkinBuyManager.ShouldShowBuyForFriend(true, this.m_skinData.dwHeroID, this.m_skinData.dwSkinID, false));
     }
     return(this.m_heroData != null && CHeroSkinBuyManager.ShouldShowBuyForFriend(false, this.m_heroData.cfgID, 0u, false));
 }
Пример #3
0
        private void OnBuyHeroNotOwn(CUIEvent uiEvent)
        {
            uint heroId = uiEvent.m_eventParams.heroId;

            DebugHelper.Assert(heroId != 0, "未拥有的英雄ID不能为0");
            if (heroId != 0)
            {
                ResHeroCfgInfo dataByKey = GameDataMgr.heroDatabin.GetDataByKey(heroId);
                DebugHelper.Assert(dataByKey != null, "神秘商店配置的英雄ID有错,英雄表里不存在");
                if (dataByKey != null)
                {
                    CMallMysteryProduct product = this.GetProduct(4, heroId);
                    if (product != null)
                    {
                        stPayInfoSet lowestPayInfoSetOfGood = CMallSystem.GetLowestPayInfoSetOfGood(dataByKey, CMallSystem.ResBuyTypeToPayType(product.Cfg.bMoneyType));
                        CHeroSkinBuyManager.OpenBuyHeroForm(uiEvent.m_srcFormScript, heroId, lowestPayInfoSetOfGood, enUIEventID.Mall_Mystery_On_Buy_Item);
                    }
                    else
                    {
                        CHeroSkinBuyManager.OpenBuyHeroForm(uiEvent.m_srcFormScript, heroId, new stPayInfoSet(), enUIEventID.None);
                    }
                }
            }
        }
Пример #4
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;
            }
            }
        }
    private void Draw(CMail mail)
    {
        if (this.form != null)
        {
            Text componetInChild  = Utility.GetComponetInChild <Text>(this.form.gameObject, "Panel/msgContainer/name");
            Text componetInChild2 = Utility.GetComponetInChild <Text>(this.form.gameObject, "Panel/msgContainer/msg");
            Text componetInChild3 = Utility.GetComponetInChild <Text>(this.form.gameObject, "Panel/msgContainer/from");
            if (componetInChild == null || componetInChild2 == null || componetInChild3 == null)
            {
                return;
            }
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            if (masterRoleInfo == null)
            {
                DebugHelper.Assert(false, "Master Role Info is null");
                return;
            }
            componetInChild.set_text(string.Format(Singleton <CTextManager> .GetInstance().GetText("Mail_Ask_For_Myself"), masterRoleInfo.Name));
            componetInChild2.set_text(mail.mailContent);
            componetInChild3.set_text(string.Format(Singleton <CTextManager> .GetInstance().GetText("Mail_Ask_For_From", new string[]
            {
                mail.from
            }), new object[0]));
            if (mail.accessUseable == null || mail.accessUseable.Count == 0)
            {
                return;
            }
            CUseable cUseable = mail.accessUseable[0];
            switch (cUseable.m_type)
            {
            case COM_ITEM_TYPE.COM_OBJTYPE_HERO:
            {
                ResHeroCfgInfo dataByKey = GameDataMgr.heroDatabin.GetDataByKey(cUseable.m_baseID);
                DebugHelper.Assert(dataByKey != null);
                if (dataByKey != null)
                {
                    Text component = this.form.transform.Find("Panel/Title/titleText").GetComponent <Text>();
                    component.set_text(Singleton <CTextManager> .GetInstance().GetText("Ask_For_Hero_Friend_Title"));
                    Text component2 = this.form.transform.Find("Panel/skinBgImage/skinNameText").GetComponent <Text>();
                    component2.set_text(StringHelper.UTF8BytesToString(ref dataByKey.szName));
                    Image component3 = this.form.transform.Find("Panel/skinBgImage/skinIconImage").GetComponent <Image>();
                    component3.SetSprite(CUIUtility.s_Sprite_Dynamic_BustHero_Dir + StringHelper.UTF8BytesToString(ref dataByKey.szImagePath), this.form, false, true, true, true);
                    this.form.transform.Find("Panel/Panel_Prop").gameObject.CustomSetActive(false);
                    Transform transform = this.form.transform.Find("Panel/skinPricePanel");
                    Transform costIcon  = transform.Find("costImage");
                    CHeroSkinBuyManager.SetPayCostIcon(this.form, costIcon, enPayType.DianQuan);
                    Transform costTypeText = transform.Find("costTypeText");
                    CHeroSkinBuyManager.SetPayCostTypeText(costTypeText, enPayType.DianQuan);
                    uint             payValue         = 0u;
                    IHeroData        heroData         = CHeroDataFactory.CreateHeroData(cUseable.m_baseID);
                    ResHeroPromotion resPromotion     = heroData.promotion();
                    stPayInfoSet     payInfoSetOfGood = CMallSystem.GetPayInfoSetOfGood(dataByKey, resPromotion);
                    for (int i = 0; i < payInfoSetOfGood.m_payInfoCount; i++)
                    {
                        if (payInfoSetOfGood.m_payInfos[i].m_payType == enPayType.Diamond || payInfoSetOfGood.m_payInfos[i].m_payType == enPayType.DianQuan || payInfoSetOfGood.m_payInfos[i].m_payType == enPayType.DiamondAndDianQuan)
                        {
                            payValue = payInfoSetOfGood.m_payInfos[i].m_payValue;
                            break;
                        }
                    }
                    Transform transform2 = transform.Find("costPanel");
                    if (transform2)
                    {
                        Transform currentPrice = transform2.Find("costText");
                        CHeroSkinBuyManager.SetPayCurrentPrice(currentPrice, payValue);
                    }
                }
                break;
            }

            case COM_ITEM_TYPE.COM_OBJTYPE_HEROSKIN:
            {
                uint heroId = 0u;
                uint skinId = 0u;
                CSkinInfo.ResolveHeroSkin(cUseable.m_baseID, out heroId, out skinId);
                ResHeroSkin heroSkin = CSkinInfo.GetHeroSkin(cUseable.m_baseID);
                DebugHelper.Assert(heroSkin != null, "heroSkin is null");
                if (heroSkin != null)
                {
                    Text component4 = this.form.transform.Find("Panel/Title/titleText").GetComponent <Text>();
                    component4.set_text(Singleton <CTextManager> .GetInstance().GetText("Ask_For_Skin_Friend_Title"));
                    Image  component5 = this.form.transform.Find("Panel/skinBgImage/skinIconImage").GetComponent <Image>();
                    string prefabPath = string.Format("{0}{1}", CUIUtility.s_Sprite_Dynamic_BustHero_Dir, StringHelper.UTF8BytesToString(ref heroSkin.szSkinPicID));
                    component5.SetSprite(prefabPath, this.form, false, true, true, true);
                    Text component6 = this.form.transform.Find("Panel/skinBgImage/skinNameText").GetComponent <Text>();
                    component6.set_text(StringHelper.UTF8BytesToString(ref heroSkin.szSkinName));
                    this.form.transform.Find("Panel/Panel_Prop").gameObject.CustomSetActive(true);
                    GameObject gameObject = this.form.transform.Find("Panel/Panel_Prop/List_Prop").gameObject;
                    CSkinInfo.GetHeroSkinProp(heroId, skinId, ref CHeroInfoSystem2.s_propArr, ref CHeroInfoSystem2.s_propPctArr, ref CHeroInfoSystem2.s_propImgArr);
                    CUICommonSystem.SetListProp(gameObject, ref CHeroInfoSystem2.s_propArr, ref CHeroInfoSystem2.s_propPctArr);
                    Transform transform3 = this.form.transform.Find("Panel/skinPricePanel");
                    Transform costIcon2  = transform3.Find("costImage");
                    CHeroSkinBuyManager.SetPayCostIcon(this.form, costIcon2, enPayType.DianQuan);
                    Transform costTypeText2 = transform3.Find("costTypeText");
                    CHeroSkinBuyManager.SetPayCostTypeText(costTypeText2, enPayType.DianQuan);
                    uint         payValue2      = 0u;
                    stPayInfoSet skinPayInfoSet = CSkinInfo.GetSkinPayInfoSet(heroId, skinId);
                    for (int j = 0; j < skinPayInfoSet.m_payInfoCount; j++)
                    {
                        if (skinPayInfoSet.m_payInfos[j].m_payType == enPayType.Diamond || skinPayInfoSet.m_payInfos[j].m_payType == enPayType.DianQuan || skinPayInfoSet.m_payInfos[j].m_payType == enPayType.DiamondAndDianQuan)
                        {
                            payValue2 = skinPayInfoSet.m_payInfos[j].m_payValue;
                            break;
                        }
                    }
                    Transform transform4 = transform3.Find("costPanel");
                    if (transform4 != null)
                    {
                        Transform currentPrice2 = transform4.Find("costText");
                        CHeroSkinBuyManager.SetPayCurrentPrice(currentPrice2, payValue2);
                    }
                }
                break;
            }
            }
        }
    }
Пример #6
0
        public void OpenBuy(CUIFormScript form, Transform srcTrans)
        {
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

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

                            return;
                        }
                        stPayInfoSet lowestPayInfoSetOfGood = CMallSystem.GetLowestPayInfoSetOfGood(dataByKey, CMallSystem.ResBuyTypeToPayType(this.Cfg.bMoneyType));
                        CHeroSkinBuyManager.OpenBuyHeroForm(form, dataByKey.dwCfgID, lowestPayInfoSetOfGood, enUIEventID.Mall_Mystery_On_Buy_Item);
                        break;
                    }
                    return;
                }

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

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

                            return;
                        }
                        stPayInfoSet payInfoSet = CMallSystem.GetLowestPayInfoSetOfGood(heroSkin, CMallSystem.ResBuyTypeToPayType(this.Cfg.bMoneyType));
                        CHeroSkinBuyManager.OpenBuyHeroSkinForm(heroSkin.dwHeroID, heroSkin.dwSkinID, true, payInfoSet, enUIEventID.Mall_Mystery_On_Buy_Item);
                        break;
                    }
                    return;
                }
                }
            }
        }