Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
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);
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
 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);
     }
 }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }
Пример #9
0
        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++;
            }
        }
Пример #10
0
        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);
            }
        }
Пример #11
0
        //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);
        }
Пример #12
0
        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);
            }
        }
Пример #13
0
        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);
            }
        }
Пример #14
0
        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);
        }
Пример #15
0
        // 显示
        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);
        }
Пример #16
0
        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);
        }
Пример #17
0
        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);
        }
Пример #18
0
        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);
        }
Пример #19
0
        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);
        }