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); } }
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); }
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; } }
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); } } }
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; }
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 void OnDestroy() { prizeChestConfig = null; }