public bool OnOpen(PointShopBuyGoodsInitData uiData) { if (uiData == null) { return(false); } m_curGoodsConfig = PointShopConfig.Instance.GetPointShopGoodsConfig(uiData.nSellID); if (m_curGoodsConfig == null) { return(false); } m_curPrizeConfig = ActorPrizeConfig.Instance.GetActorPrizeConfig(m_curGoodsConfig.nPrizeID); if (m_curPrizeConfig == null) { return(false); } numSelectFrame.SetActive(true); if (m_curPrizeConfig.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HERO) { numSelectFrame.SetActive(false); } shopGoodsItem.SetGoodsInfo(m_curGoodsConfig); m_nBuyNum = 1; ReflushTopDesc(); ReflushNumBtn(); ReflushMoneyZone(); ReflushBottomDesc(); return(true); }
public int GetPointShopSellIDBySkinID(int nHeroID, int nSkinID) { if (m_goodsTypeList == null || m_goodsTypeList[(int)PointShopGoodsType.Goods_Skin] == null) { return(0); } List <SSchemePointShopGoodsConfig> skinSellList = m_goodsTypeList[(int)PointShopGoodsType.Goods_Skin]; foreach (var config in skinSellList) { SSchemeActorPrizeConfig prizeConfig = ActorPrizeConfig.ActorPrizeConfig.Instance.GetActorPrizeConfig(config.nPrizeID); if (prizeConfig == null) { continue; } if (prizeConfig.nPrizeType != (int)EMActorPrizeType.ACTOR_PRIZE_HEROSKIN) { continue; } if (prizeConfig.nPrizeParam[0] == nHeroID && prizeConfig.nPrizeParam[1] == nSkinID) { return(config.nSellID); } } return(0); }
public void SetData(PrizeChestWndView wndView, int index, int nPrizeID, SSchemeActorPrizeConfig config) { if (config == null || wndView == null) { return; } m_wndView = wndView; m_Index = index; actorPrizeConfig = config; prizeName.text = config.strPrizeName; //prizeGradeImage.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_PrizeChest, "PrizeBase" + config.nPrizeGrade, WndID.WND_ID_PRIZECHEST); prizeIconImage.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_PrizeChest, "PrizeIconFrame" + config.nPrizeGrade, WndID.WND_ID_PRIZECHEST); prizeTypeImage.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_PrizeChest, "PrizeType" + config.nPrizeType, WndID.WND_ID_PRIZECHEST); //prizeTypeImage.SetNativeSize(); prizeIcon = LogicDataCenter.pointShopDataManager.CreatePrizeIconItem(prizeIconContainer); prizeIcon.SetPrizeID(nPrizeID); TimerManager.SetTimer(this, (int)EMPrizeResultTimerType.EMTimer_ResultCreatEffect, 4.3f); prizeChestClickBtn.onClick.RemoveAllListeners(); prizeChestClickBtn.onClick.AddListener(ShowDetailInfo); prizeChestClickBtn.interactable = true; DetailFrame.SetActive(false); }
public void SetData(int prizeID) { SSchemeActorPrizeConfig actorPrizeConfig = ActorPrizeConfig.Instance.GetActorPrizeConfig(prizeID); if (actorPrizeConfig != null) { this.PrizeIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_ActorPrize, WndID.WND_ID_LIFE_HERO_CULTURE, actorPrizeConfig.nPrizeType, actorPrizeConfig.nPrizeIcon);; this.prizeName.text = actorPrizeConfig.strPrizeName; this.gameObject.GetComponent <UTooltipTrigger>().SetText(UTooltipParamName.BodyText, actorPrizeConfig.strPrizeDesc); } }
private int CompareMember(SSchemeActorPrizeConfig A, SSchemeActorPrizeConfig B) { if (A.nPrizeParam[1] != B.nPrizeParam[1]) { return(A.nPrizeParam[1] > B.nPrizeParam[1] ? -1 : 1); } else { return(A.nPrizeParam[0] < B.nPrizeParam[0] ? -1 : 1); } }
public void SetData(int prizeID) { SSchemeActorPrizeConfig actorPrizeConfig = ActorPrizeConfig.Instance.GetActorPrizeConfig(prizeID); if (actorPrizeConfig != null) { prizeImage.sprite = LogicDataCenter.playerSystemDataManager.GetIconByPrize(actorPrizeConfig, WndID.WND_ID_GAME_PROMOTION); prizeNameText.text = actorPrizeConfig.strPrizeName; GetComponent <UTooltipTrigger>().SetText(UTooltipParamName.BodyText, actorPrizeConfig.strPrizeDesc); } }
public override bool Init(LoudspeakerItemText obj, Text uiText, LoudspeakerManager.SLoudspeakerObjectInfo data) { base.Init(obj, uiText, data); if (m_itemData.param == null || !m_itemData.param.ContainsKey("id")) { return(false); } m_nPrizeID = Convert.ToInt32(m_itemData.param["id"]); SSchemeActorPrizeConfig prizeConfig = ActorPrizeConfig.Instance.GetActorPrizeConfig(m_nPrizeID); if (prizeConfig != null) { m_defaultColor = Color.white; if (prizeConfig.nPrizeGrade == 1) { m_defaultColor = Color.green; } else if (prizeConfig.nPrizeGrade == 2) { m_defaultColor = Color.blue; } else if (prizeConfig.nPrizeGrade == 3) { m_defaultColor = new Color(0.5f, 0f, 0.5f); } else if (prizeConfig.nPrizeGrade == 4) { m_defaultColor = Color.yellow; } else if (prizeConfig.nPrizeGrade == 5) { m_defaultColor = Color.red; } else if (prizeConfig.nPrizeGrade == 6) { m_defaultColor = new Color(1f, 0.647f, 0f); } m_UIText.color = m_defaultColor; m_UIText.text = "[" + prizeConfig.strPrizeName + "]"; } return(true); }
int GetCanBuyMax(int nMinValue = 1) { SSchemeActorPrizeConfig prizeConfig = ActorPrizeConfig.Instance.GetActorPrizeConfig(m_curGoodsConfig.nPrizeID); if (prizeConfig == null) { return(nMinValue); } int nPointCanBuyMax = 0; int nMoneyCanBuyMax = 0; int nCurPoint = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_TICKET); //int nCurBindGold = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_BINDGOLD); int nCurBindGold = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_GOLD); if (m_curGoodsConfig.nNumLimitID > 0) { nPointCanBuyMax = LogicDataCenter.pointShopDataManager.CalcNumLimitBuyMax(m_curGoodsConfig.nNumLimitID, m_curGoodsConfig.nSellID, 0, nCurPoint); nMoneyCanBuyMax = LogicDataCenter.pointShopDataManager.CalcNumLimitBuyMax(m_curGoodsConfig.nNumLimitID, m_curGoodsConfig.nSellID, 1, nCurBindGold); } else { if (m_curGoodsConfig.nPointPrice > 0) { nPointCanBuyMax = nCurPoint / m_curGoodsConfig.nPointPrice; } if (m_curGoodsConfig.nMoneyPrice > 0) { nMoneyCanBuyMax = nCurBindGold / m_curGoodsConfig.nMoneyPrice; } } int nResult = Mathf.Max(nPointCanBuyMax, nMoneyCanBuyMax); // 限制购买的最大数量:(1)当前最大输入3位数,(2)不同种类有不同数量限制,未限制的默认为999 int nMaxValue = LogicDataCenter.pointShopDataManager.CalcMaxNumByPriceType(prizeConfig.nPrizeType); nResult = Mathf.Min(nResult, nMaxValue); nResult = Mathf.Max(nResult, nMinValue); //if (nResult < nMinValue) // nResult = nMinValue; return(nResult); }
public void OnReturnRandCardInfo(IntPtr ptrParam, int nPtrLen) { IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen); int nPrizeID = helper.get <int>(); int nCount = helper.get <int>(); SSchemeActorPrizeConfig config = ActorPrizeConfig.Instance.GetActorPrizeConfig(nPrizeID); for (int i = 0; i < nCount; i++) { cmd_entity_hero_card data = helper.get <cmd_entity_hero_card>(); // 已经有则合并数量 bool bInResult = false; foreach (var item in m_randCardResult) { if (item.Value.nPrizeParam[0] == data.nHeroID) { item.Value.nPrizeParam[1] += data.nCount; item.Value.strPrizeName = data.chHeroCardName + "*" + item.Value.nPrizeParam[1].ToString(); bInResult = true; } } if (bInResult) { continue; } // 没有则加入 SSchemeActorPrizeConfig cardInfo = new SSchemeActorPrizeConfig(); cardInfo.nPrizeID = m_randCardIndex; cardInfo.strPrizeName = data.chHeroCardName + "*" + data.nCount.ToString(); cardInfo.nPrizeGrade = config.nPrizeGrade; cardInfo.nPrizeType = 5; cardInfo.nPrizeParam = new int[3]; cardInfo.nCakeTrailEffectID = 9; cardInfo.nPedestalEffectID = 15; cardInfo.nPedestalGlowEffectID = 21; cardInfo.nPrizeParam[0] = data.nHeroID; cardInfo.nPrizeParam[1] = data.nCount; cardInfo.strPrizeDesc = data.chHeroCardDesc; m_randCardResult[cardInfo.nPrizeID] = cardInfo; m_randCardIndex++; } }
internal override void SetRendererVisible(bool visible) { base.SetRendererVisible(visible); if (!visible) { m_curGoodsConfig = null; m_curPrizeConfig = null; } if (visible) { EntityFactory.SetEntityNumPropHandler(OnCommand_UpdateNumProp); } else { EntityFactory.RemoveEntityNumPropHandler(OnCommand_UpdateNumProp); } }
//public void OnOpenChestResult(IntPtr ptrParam, int nPtrLen) //{ // m_openChestResult = IntPtrHelper.toData<cmd_entity_open_chest_result>(ptrParam); // UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_PRIZECHEST_OPENCHESTRESULT, null); //} //public void OnReturnRandCardInfo(IntPtr ptrParam, int nPtrLen) //{ // IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen); // int nPrizeID = helper.get<int>(); // int nCount = helper.get<int>(); // SRandCardResult cardInfo = new SRandCardResult(); // cardInfo.nPrizeId = nPrizeID; // cardInfo.cardResult = new List<cmd_entity_hero_card>(); // for (int i = 0; i < nCount; i++) // { // cmd_entity_hero_card data = helper.get<cmd_entity_hero_card>(); // cardInfo.cardResult.Add(data); // } // cardInfo.cardResult.Sort(CompareMember); // m_randCardResult.Add(cardInfo); //} public void OnOpenChestResult(IntPtr ptrParam, int nPtrLen) { m_openChestResult = IntPtrHelper.toData <cmd_entity_open_chest_result>(ptrParam); // 卡包要拆成具体卡牌显示,所以去除卡包奖励,加入已赋值过的m_randCardResult(type为6的为策划卡包ID,901为策划预留卡牌ID) for (int i = 0; i < m_openChestResult.nPrizeID.Length; i++) { m_PrizeIdList.Add(m_openChestResult.nPrizeID[i]); } //m_PrizeIdList.RemoveAll(it => (it == 0 || (it >= 1511 && it <= 1514))); for (int i = m_PrizeIdList.Count - 1; i >= 0; --i) { if (m_PrizeIdList[i] == 0) { m_PrizeIdList.Remove(m_PrizeIdList[i]); continue; } SSchemeActorPrizeConfig config = ActorPrizeConfig.Instance.GetActorPrizeConfig(m_PrizeIdList[i]); if (config != null && config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HEROCARD_RANDOM) { m_PrizeIdList.Remove(m_PrizeIdList[i]); } } // 按数量从大到小排序 List <SSchemeActorPrizeConfig> temp = new List <SSchemeActorPrizeConfig>(); foreach (var item in m_randCardResult) { temp.Add(item.Value); } temp.Sort(CompareMember); foreach (var config in temp) { m_PrizeIdList.Add(config.nPrizeID); } UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_PRIZECHEST_OPENCHESTRESULT, null); }
public virtual void SetData(UListItemMailGoods item) { if (goodsTooltipTrigger == null) { goodsTooltipTrigger = transform.GetComponentInChildren <UTooltipTrigger>(true); } SSchemeActorPrizeConfig config = new SSchemeActorPrizeConfig(); config = ActorPrizeConfig.Instance.GetActorPrizeConfig(item.nGoodsID); if (config != null) { goodsName.text = config.strPrizeName; goodsNum.text = item.nCount.ToString(); goodsImage.sprite = LogicDataCenter.playerSystemDataManager.GetIconByPrize(config, WndID.WND_ID_MAILBOX); String szDesc = config.strPrizeDesc; UBB.toHtml(ref szDesc, UBB_FORMAT_TYPE.UGUI); goodsTooltipTrigger.SetText(UTooltipParamName.BodyText, szDesc); } }
private void ShowMentorshipAwardData() { masterFWinPrizeBtnDes.text = ULocalizationService.Instance.Get("UIView", "MentorshipPerson", "RecvFirstPrizeBtnDesc"); prenticeFWinPrizeBtnDes.text = ULocalizationService.Instance.Get("UIView", "MentorshipPerson", "RecvFirstPrizeBtnDesc"); if (masterFWinPrizeImg != null && mFWinAwardTooltipTrigger == null) { mFWinAwardTooltipTrigger = masterFWinPrizeImg.transform.GetComponentInChildren <UTooltipTrigger>(true); } if (prenticeFWinPrizeImg != null && pFWinAwardTooltipTrigger == null) { pFWinAwardTooltipTrigger = prenticeFWinPrizeImg.transform.GetComponentInChildren <UTooltipTrigger>(true); } SSchemeActorPrizeConfig configMaster = new SSchemeActorPrizeConfig(); configMaster = ActorPrizeConfig.Instance.GetActorPrizeConfig(MentorshipConfig.Instance.tMentorshipConfig.nMFWinPrizeID); if (configMaster != null) { masterFWinPrizeImg.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_ActorPrize, WndID.WND_ID_SOCIALCONTACT, configMaster.nPrizeType, configMaster.nPrizeIcon); String szMasterPrizeDesc = configMaster.strPrizeDesc; UBB.toHtml(ref szMasterPrizeDesc, UBB_FORMAT_TYPE.UGUI); mFWinAwardTooltipTrigger.SetText(UTooltipParamName.BodyText, szMasterPrizeDesc); } SSchemeActorPrizeConfig configPrentice = new SSchemeActorPrizeConfig(); configPrentice = ActorPrizeConfig.Instance.GetActorPrizeConfig(MentorshipConfig.Instance.tMentorshipConfig.nPFWinPrizeID); if (configPrentice != null) { prenticeFWinPrizeImg.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_ActorPrize, WndID.WND_ID_SOCIALCONTACT, configPrentice.nPrizeType, configPrentice.nPrizeIcon); String szPrenticePrizeDesc = configPrentice.strPrizeDesc; UBB.toHtml(ref szPrenticePrizeDesc, UBB_FORMAT_TYPE.UGUI); pFWinAwardTooltipTrigger.SetText(UTooltipParamName.BodyText, szPrenticePrizeDesc); } }
public void SetData(int nParam, ECupPrizeType eType = ECupPrizeType.ECPT_Personal, UEffectPrefabType effectType = UEffectPrefabType.UEPT_None, bool bShowPrizeDes = true) { string sGold = ULocalizationService.Instance.Get("UIView", "LegendCupPrize", "Gold"); string sExp = ULocalizationService.Instance.Get("UIView", "LegendCupPrize", "Exp"); BaseIcon.gameObject.SetActive(false); if (eType == ECupPrizeType.ECPT_Gold) { PrizeIcon.sprite = GetPrizeIconSprite((int)EPrizeIconType.EPIT_Gold); PrizeDes.text = nParam + sGold; toolTip.SetText(UTooltipParamName.BodyText, nParam + sGold); } else if (eType == ECupPrizeType.ECPT_Exp) { PrizeIcon.sprite = GetPrizeIconSprite((int)EPrizeIconType.EPIT_ActorExp); PrizeDes.text = nParam + sExp; toolTip.SetText(UTooltipParamName.BodyText, nParam + sExp); } else if (eType == ECupPrizeType.ECPT_Personal) { // 与商城奖励图标一致 SSchemeActorPrizeConfig prizeConfig = ActorPrizeConfig.Instance.GetActorPrizeConfig(nParam); if (prizeConfig == null) { return; } if (prizeConfig.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HERO) { PrizeIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, WndID.WND_ID_POINTSHOP, 1, 3, prizeConfig.nPrizeParam[0]); } else if (prizeConfig.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HEROCARD) { PrizeIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, WndID.WND_ID_POINTSHOP, 1, 7, prizeConfig.nPrizeParam[0]); BaseIcon.gameObject.SetActive(true); } else if (prizeConfig.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_RUNE) { SSchemeRuneConfig runeConfig = RunePage.Instance.allRunePageTable[prizeConfig.nPrizeParam[0]] as SSchemeRuneConfig; if (runeConfig != null) { PrizeIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_Rune, WndID.WND_ID_POINTSHOP, runeConfig.nRuneInlayType, runeConfig.nRuneIconId); } } else if (prizeConfig.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HEROXPSKILL) { PrizeIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_ActorPrize, WndID.WND_ID_POINTSHOP, prizeConfig.nPrizeType, prizeConfig.nPrizeIcon); } else if (prizeConfig.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HEROSKIN) { SkinInfoScheme skinConfig = new SkinInfoScheme(); if (GameLogicAPI.GetHeroSkinInfo(prizeConfig.nPrizeParam[1], ref skinConfig)) { PrizeIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, WndID.WND_ID_POINTSHOP, skinConfig.nSkinIconID, 3, prizeConfig.nPrizeParam[0]); } } else { PrizeIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_ActorPrize, WndID.WND_ID_POINTSHOP, prizeConfig.nPrizeType, prizeConfig.nPrizeIcon); } PrizeDes.text = prizeConfig.strPrizeName; toolTip.SetText(UTooltipParamName.BodyText, prizeConfig.strPrizeDesc); } PrizeDes.gameObject.SetActive(bShowPrizeDes); if (effectType != UEffectPrefabType.UEPT_None) { if (param != null) { UEffectManager.Instance.DestroyEffect(UEffectType.UET_EffectPrefab, ref param); param = null; } param = new UEffectPrefabParam(_eType: effectType, _tfAttachParent: PrizeEffect.transform, _bAutoDestroy: false); UEffectManager.Instance.CreateEffect(UEffectType.UET_EffectPrefab, ref param); } this.gameObject.SetActive(true); }
// 显示 public void SetData(int nPrizeID, int nPrizeCount, bool bFirstWinType = false, bool bShowClan = false, bool bShowNoVave = false) { SSchemeActorPrizeConfig config = new SSchemeActorPrizeConfig(); config = ActorPrizeConfig.Instance.GetActorPrizeConfig(nPrizeID); if (config != null) { if (config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_GOLD && bFirstWinType) { nPrizeCount = config.nPrizeParam[0]; } if (nPrizeCount > 1) { prizeName.text = String.Format("{0}+{1}", config.strPrizeName, nPrizeCount); } else { prizeName.text = config.strPrizeName; } //prizeNum.text = nPrizeCount.ToString(); prizeNum.gameObject.SetActive(false); if (config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HERO) { prizeImage.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, WndID.WND_ID_TASK_UNFOLD, 1, 3, config.nPrizeParam[0]); } else if (config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HEROCARD) { prizeImage.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, WndID.WND_ID_TASK_UNFOLD, 1, 7, config.nPrizeParam[0]); } else if (config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_RUNE) { SSchemeRuneConfig runeConfig = RunePage.Instance.allRunePageTable[config.nPrizeParam[0]] as SSchemeRuneConfig; if (runeConfig != null) { prizeImage.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_Rune, WndID.WND_ID_TASK_UNFOLD, runeConfig.nRuneInlayType, runeConfig.nRuneIconId); } } else if (config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HEROXPSKILL) { prizeImage.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_ActorPrize, WndID.WND_ID_TASK_UNFOLD, config.nPrizeType, config.nPrizeIcon); } else if (config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HEROSKIN) { SkinInfoScheme skinConfig = new SkinInfoScheme(); if (GameLogicAPI.GetHeroSkinInfo(config.nPrizeParam[1], ref skinConfig)) { prizeImage.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, WndID.WND_ID_TASK_UNFOLD, skinConfig.nSkinIconID, 3, config.nPrizeParam[0]); } } else { prizeImage.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_ActorPrize, WndID.WND_ID_TASK_UNFOLD, config.nPrizeType, config.nPrizeIcon); } //prizeImage.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_ActorPrize, WndID.WND_ID_TASK_UNFOLD, config.nPrizeType, config.nPrizeIcon); String szDesc = config.strPrizeDesc; UBB.toHtml(ref szDesc, UBB_FORMAT_TYPE.UGUI); prizeTooltipTrigger.SetText(UTooltipParamName.BodyText, szDesc); //prizeName.gameObject.SetActive(!bShowClan); ClanIcon.gameObject.SetActive(bShowClan); if (bShowNoVave) { prizeImage.color = UDefines.CommomColor(ECommonColor.ECC_Gray2); } else { prizeImage.color = UDefines.CommomColor(ECommonColor.ECC_White); } } this.gameObject.SetActive(true); }
private void LoadPrizeResultEffectAndSetUIData() { //获取当前开启的宝箱配置 prizeChestConfig = ActorPrizeConfig.Instance.GetPrizeChestConfig(m_nResultPageChestType); if (prizeChestConfig == null) { return; } //创建临时模型 tempModelID = Mathf.Clamp(prizeChestConfig.nChestModelID - 1, 0, 2); if (prizeChestResNodeList[tempModelID] != null) { GameObject prizeChestObj = prizeChestResNodeList[tempModelID].InstanceMainRes(); if (prizeChestObj != null) { prizeChestObj.transform.SetParent(prizeResultObjContainer); prizeChestObj.transform.localPosition = Vector3.zero; tempPriezeChestModel = prizeChestObj; } } else { Debug.LogError(String.Format("not find model ID in prizeChestResNodeList[{0}]", tempModelID)); return; } //播放模型打开动画的光效 SceneEffectParamBase openEffectParam = new SceneEffectParamBase(prizeChestConfig.nOpenEffect, tempPriezeChestModel.transform); SceneEffectManager.Instance.CreateSceneEffect(ref openEffectParam); Data.UISoundConfig.SSchemeUSoundData soundData = new Data.UISoundConfig.SSchemeUSoundData(); if (Data.UISoundConfig.UISoundConfig.Instance.GetData(SoundFilter_AnimStart, SoundKey_AnimStart, ref soundData)) { SoundManager.CreateUISound(soundData.USoundID); } Transform[] tempChestModelChilds = tempPriezeChestModel.transform.GetComponentsInChildren <Transform>(); //挂载摄像机动画 Transform cmdTr = prizeResultObjContainer.parent.FindChild("CamTarget"); if (cmdTr != null) { DestroyObject(cmdTr.gameObject); } GameObject camTarget = new GameObject(); camTarget.name = "CamTarget"; camTarget.transform.SetParent(prizeResultObjContainer.parent); camTarget.transform.localPosition = prizeResultObjContainer.localPosition; camTarget.transform.localEulerAngles = Vector3.zero; LightingEffectManager lem = EntityFactory.EffectGroup.GetComponent <LightingEffectManager>(); if (lem != null) { LightEffectParam param = new LightEffectParam(); param.srcObject = camTarget; param.sourcePos = camTarget.transform.position; param.targetPos = camTarget.transform.position; m_camEffectID = prizeChestConfig.nCamEffectID; lem.AddLighting(prizeChestConfig.nCamEffectID, param); } List <int> prizeIdList = LogicDataCenter.prizeChestDataManager.PrizeIdList; openPrizeCount = 0; prizeCount = Mathf.Clamp(prizeIdList.Count, 0, 7); //增加Tooltip if (continueOpenBtn != null) { continueOpenBtn.interactable = prizeCount > 0 ? false : true; if (!continueOpenBtn.interactable) { UTooltipTrigger tooltip = continueOpenBtn.gameObject.GetComponent <UTooltipTrigger>(); if (tooltip == null) { tooltip = continueOpenBtn.gameObject.AddComponent <UTooltipTrigger>(ETooltipStyle.ETS_Default); } tooltip.SetText(UTooltipParamName.BodyText, openTips); } } foreach (PrizeResultItem item in prizeResultList) { UTooltipTrigger trigger = item.transform.GetComponent <UTooltipTrigger>(); if (trigger != null) { trigger.enabled = false; } } //奖励宝箱模型上挂载光效 for (int i = 0; i < prizeIdList.Count; ++i) { //PrizeID必须大于0,界面大小,图标最多放12个 if (prizeIdList[i] <= 0 || i >= 7) { break; } int nPrizeID = prizeIdList[i]; SSchemeActorPrizeConfig config = null; if (nPrizeID >= RAND_CARD_FIRST_INDEX && nPrizeID < LogicDataCenter.prizeChestDataManager.RandCardIndex) { config = LogicDataCenter.prizeChestDataManager.RandCardResult[nPrizeID]; } else { config = ActorPrizeConfig.Instance.GetActorPrizeConfig(nPrizeID); } if (config == null) { return; } //骨骼上挂载奖励光效 foreach (Transform tr in tempChestModelChilds) { if (tr != null && tr.name.Equals(bonesName[i])) { SceneEffectParamBase effectParam = new SceneEffectParamBase(config.nCakeTrailEffectID, tr, null, true, 2700); SceneEffectManager.Instance.CreateSceneEffect(ref effectParam); CakeTrailEffectParamList.Add(effectParam); } } //奖励UI数据填充 prizeResultList[i].SetData(this, i, prizeIdList[i], config); } //开启动画定时器 TimerManager.SetTimer(this, chestAnimTimer, 4.2f); }
public bool CheckCanBuyGoods(int nSellID, int nNum) { SSchemePointShopGoodsConfig goodsConfig = PointShopConfig.Instance.GetPointShopGoodsConfig(nSellID); if (goodsConfig == null) { return(false); } SSchemeActorPrizeConfig prizeConfig = ActorPrizeConfig.Instance.GetActorPrizeConfig(goodsConfig.nPrizeID); if (prizeConfig == null) { return(false); } if (prizeConfig.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HERO) { int nHeroID = prizeConfig.nPrizeParam[0]; ActorHeroInfo actorHeroInfo = LogicDataCenter.playerSystemDataManager.GetActorAllHero(); if (actorHeroInfo == null) { return(false); } cmd_entity_hero_info heroData; if (actorHeroInfo.dicEntityHeroInfo.TryGetValue(nHeroID, out heroData)) { if (heroData.bIsBuy > 0) { return(false); } } } if (prizeConfig.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HEROSKIN) { cmd_Hero_Skin_Info cmdSkinInfo = new cmd_Hero_Skin_Info(); SkinInfoScheme skinConfig = new SkinInfoScheme(); if (!GameLogicAPI.GetHeroSkinInfo(prizeConfig.nPrizeParam[1], ref skinConfig)) { return(false); } bool bHaveSkin; if (LogicDataCenter.heroSkinDataManager.GetHeroSkinInfo(prizeConfig.nPrizeParam[0], prizeConfig.nPrizeParam[1], ref cmdSkinInfo)) { bHaveSkin = true; } else { bHaveSkin = skinConfig.nSkinLevel == (int)SKIN_LEVEL_TYPE.ESLT_NORMAL ? true : false; } if (bHaveSkin) { return(false); } } return(true); }
public void SetData(int nPrizeID, int nConditionGrade, int nConditionWinCount, int nWinCount, bool bHaveState, string strCondition) { SSchemeActorPrizeConfig config = ActorPrizeConfig.Instance.GetActorPrizeConfig(nPrizeID); if (config == null) { this.gameObject.SetActive(false); return; } this.gameObject.SetActive(true); // 头像 if (config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HERO) { PrizeIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, WndID.WND_ID_POINTSHOP, 1, 3, config.nPrizeParam[0]); } else if (config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HEROCARD) { PrizeIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, WndID.WND_ID_POINTSHOP, 1, 7, config.nPrizeParam[0]); } else if (config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HEROSKIN) { SkinInfoScheme skinConfig = new SkinInfoScheme(); if (GameLogicAPI.GetHeroSkinInfo(config.nPrizeParam[1], ref skinConfig)) { PrizeIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, WndID.WND_ID_POINTSHOP, skinConfig.nSkinIconID, 3, config.nPrizeParam[0]); } } else if (config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HEROXPSKILL) { PrizeIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_ActorPrize, WndID.WND_ID_POINTSHOP, config.nPrizeType, config.nPrizeIcon); } else { PrizeIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_ActorPrize, WndID.WND_ID_POINTSHOP, config.nPrizeType, config.nPrizeIcon); } // 数量 int nCount = 1; if (config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_GOLD || config.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_ACTOREXP) { nCount = config.nPrizeParam[0]; } PrizeCount.text = nCount.ToString(); // Tip string strTip = config.strPrizeName; UBB.toHtml(ref strTip); Trigger.SetText(UTooltipParamName.BodyText, strTip); // FinishCondition UBB.toHtml(ref strCondition); FinishCondition.text = strCondition; // FinishState string str1 = nWinCount >= nConditionWinCount ? "完成" : "未完成"; string str2 = String.Format("{0}<br><color=#ffca27>{1}/{2}</color>", str1, nWinCount, nConditionWinCount); UBB.toHtml(ref str2); FinishState.text = str2; FinishState.gameObject.SetActive(bHaveState); }
public Sprite GetIconByPrize(SSchemeActorPrizeConfig prizeConfig, WndID wndID) { if (prizeConfig == null) { return(null); } Sprite sprite = null; switch (prizeConfig.nPrizeType) { case (int)EMActorPrizeType.ACTOR_PRIZE_HERO: { int iconIndex; if (wndID == WndID.WND_ID_MAILBOX) { iconIndex = 4; } else { iconIndex = 3; } sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, wndID, 1, iconIndex, prizeConfig.nPrizeParam[0]); } break; case (int)EMActorPrizeType.ACTOR_PRIZE_HEROCARD: { int iconIndex; if (wndID == WndID.WND_ID_MAILBOX) { iconIndex = 4; } else { iconIndex = 7; } sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, wndID, 1, iconIndex, prizeConfig.nPrizeParam[0]); } break; case (int)EMActorPrizeType.ACTOR_PRIZE_RUNE: { SSchemeRuneConfig runeConfig = RunePage.Instance.allRunePageTable[prizeConfig.nPrizeParam[0]] as SSchemeRuneConfig; if (runeConfig != null) { sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_Rune, wndID, runeConfig.nRuneInlayType, runeConfig.nRuneIconId); } } break; case (int)EMActorPrizeType.ACTOR_PRIZE_HEROSKIN: { SkinInfoScheme skinConfig = new SkinInfoScheme(); if (GameLogicAPI.GetHeroSkinInfo(prizeConfig.nPrizeParam[1], ref skinConfig)) { sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, wndID, skinConfig.nSkinIconID, 3, prizeConfig.nPrizeParam[0]); } } break; default: { sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_ActorPrize, wndID, prizeConfig.nPrizeType, prizeConfig.nPrizeIcon); } break; } return(sprite); }