Exemplo n.º 1
0
        public void OnMsgBoxOpenWinInfo()
        {
            {
                int nOpenChestID = LogicDataCenter.prizeChestDataManager.OpenChestID;
                int nCostMoney   = 0;
                SSchemePrizeChestConfig chestConfig = ActorPrizeConfig.Instance.GetPrizeChestConfig(nOpenChestID);
                if (chestConfig != null)
                {
                    GemStoneProductData productData             = LogicDataCenter.crownPageDataManager.CrownGemstoneProductInfo;
                    SSchemeCrownGemstoneRandomConfig randConfig = CrownPageConfigPage.Instance.GetCrownPageGemsRandomConfig(chestConfig.nPrizeGroupID);
                    if (randConfig != null && productData != null)
                    {
                        int nGemstoneGroupID = chestConfig.nPrizeGroupID;
                        int nBaseTicket      = randConfig.nOpenWinCost;;
                        int nAdditionTicket  = randConfig.nAdditionWinCost;
                        nCostMoney = nBaseTicket + GetListEffectiveCount(productData.data.windowGemstoneIDList) * nAdditionTicket;
                    }
                }

                UIDialogData data = new UIDialogData(title: "透视宝石",
                                                     message: "消耗" + nCostMoney + "点券,获得一次透视矿石机会",
                                                     buttons: new UIWidgets.DialogActions()
                {
                    { "确认", OnMsgBoxOpenWinHandelSave },
                    { "取消", OnMsgBoxOpenWinHandelCancel }
                },
                                                     closeButtonAction: new UnityEngine.Events.UnityAction(OnMsgBoxOpenWinHandelCancelEx)

                                                     );
                UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_COMMON_DIALOG, data);
            }
        }
Exemplo n.º 2
0
 public void SetData(SSchemePrizeChestConfig config, int num)
 {
     prizeChestConfig = config;
     prizeChestCount  = num;
     Count.text       = num.ToString();
     Name.text        = config.strChestName;
     Icon.sprite      = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_PrizeChest, "ChestIcon_" + config.nChestIcon, WndID.WND_ID_PRIZECHEST);
 }
Exemplo n.º 3
0
        private void DoLoadListData(cmd_Crown_Gemstone_Product_Info data)
        {
            if (m_GenstoneChestFlopList == null)
            {
                return;
            }

            if (data.cobblestonGemstoneIDList.Length != data.windowGemstoneIDList.Length)
            {
                return;
            }

            int nGradeMax = 0;

            for (int i = 0; i < data.cobblestonGemstoneIDList.Length; ++i)
            {
                bool bWin           = false;
                int  nCobGemstoneID = data.cobblestonGemstoneIDList[i];
                if (nCobGemstoneID <= 0)
                {
                    continue;
                }

                SSchemeCrownGemstoneConfig config = CrownPageConfigPage.Instance.GetCrownPageGemstoneConfig(nCobGemstoneID);
                if (config == null)
                {
                    continue;
                }

                nGradeMax = config.nGradeUpper > nGradeMax ? config.nGradeUpper : nGradeMax;
                for (int j = 0; j < data.windowGemstoneIDList.Length; ++j)
                {
                    if (data.windowGemstoneIDList[i] == nCobGemstoneID)
                    {
                        bWin = true;
                        break;
                    }
                }

                m_GenstoneChestFlopList[i].UpdateItem(nCobGemstoneID, bWin, data.bOpenWinEnd > 0, data.cobStoneIDList[i], config);
            }

            OperationStateText.text = data.bOpenWinEnd > 0 ? "点击抽取其中一颗宝石" : "请选择开窗宝石";

            if (nGradeMax >= 0 && nGradeMax < UDefines.sGemstoneGradeDesc.Length)
            {
                BestGemstoneTipText.text = "最高品级 : " + UDefines.sGemstoneGradeDesc[nGradeMax];
            }

            int nOpenChestID = LogicDataCenter.prizeChestDataManager.OpenChestID;
            SSchemePrizeChestConfig chestConfig = ActorPrizeConfig.Instance.GetPrizeChestConfig(nOpenChestID);

            if (chestConfig != null)
            {
                ChestDescText.text = chestConfig.strChestName;
            }
        }
Exemplo n.º 4
0
        public void OnTimer(int nTimerID)
        {
            if (nTimerID == chestAnimTimer)
            {
                SceneEffectParamBase tmpParam = null;
                for (int i = 0; i < CakeTrailEffectParamList.Count; ++i)
                {
                    tmpParam = CakeTrailEffectParamList[i];
                    SceneEffectManager.Instance.DestroySceneEffect(ref tmpParam);
                }
                CakeTrailEffectParamList.Clear();

                ResNode.DestroyRes(ref tempPriezeChestModel);  //删除开宝箱创建的临时模型
                tempPriezeChestModel = null;

                resultPageObj.SetActive(true);        //显示结果页面UI
                Invoke("OpenAwardClickTip", 1f);
                TimerManager.KillTimer(this, 1);

                SSchemePrizeChestConfig prizeChestConfig = FindNextChestPrize();
                if (prizeChestConfig != null)
                {
                    m_nextChestId = prizeChestConfig.nChestId;
                    nextChestBtn.gameObject.SetActive(true);
                    nextChestBtn.interactable = false;
                    if (m_nResultPageChestType == prizeChestConfig.nChestId)
                    {
                        nextChestHint.gameObject.SetActive(false);
                        int nNextChestCount = 0;
                        if (LogicDataCenter.prizeChestDataManager.ChestInfo.ContainsKey(m_nextChestId))
                        {
                            nNextChestCount = LogicDataCenter.prizeChestDataManager.ChestInfo[m_nextChestId];
                        }
                        nextChestBtn.gameObject.GetComponentInChildren <Text>().text = String.Format("{0}({1})", ULocalizationService.Instance.Get("UIView", "PrizeChest", "NextChestBtn"), nNextChestCount);
                    }
                    else
                    {
                        nextChestHint.gameObject.SetActive(true);
                        nextChestHint.text = String.Format(ULocalizationService.Instance.Get("UIView", "PrizeChest", "WillOpenDifferentChest"), prizeChestConfig.strChestName);
                        nextChestBtn.gameObject.GetComponentInChildren <Text>().text = ULocalizationService.Instance.Get("UIView", "PrizeChest", "NextChestBtn");
                    }
                }
                else
                {
                    m_nextChestId = -1;
                    nextChestHint.gameObject.SetActive(false);
                    nextChestBtn.gameObject.SetActive(false);
                }
            }
        }
Exemplo n.º 5
0
        private void Clear()
        {
            foreach (PrizeResultItem item in prizeResultList)
            {
                item.Clear();
            }
            ClearContainer(prizeResultObjContainer);
            ClearContainer(chestObjContainer);

            prizeResultObjContainer = null;

            m_nResultPageChestType = -1;
            m_nextChestId          = -1;
            prizeChestConfig       = null;
            m_camEffectID          = -1;
        }
Exemplo n.º 6
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);
        }
Exemplo n.º 7
0
 public void OnDestroy()
 {
     prizeChestConfig = null;
 }