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)); }
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)); }
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); } } } }
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; } } } }
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; } } } }