local GachaShowResultCtrl = class("GachaShowResultCtrl", BaseCtrl) local WwiseAudioMgr = CS.WwiseAudioManager.Instance GachaShowResultCtrl._mapNodeConfig = { Item = { sCtrlName = "Game.UI.GachaEx.GachaShowResultGrid", nCount = 10 }, rtItem = {sNodeName = "rtItem_", nCount = 3}, imgItemIcon = {sComponentName = "Image", nCount = 3}, TMPItemCount = {sComponentName = "TMP_Text", nCount = 3}, TMPTitle = { sComponentName = "TMP_Text", sLanguageId = "GachaItemTIpsTitle" }, btnClose = { nCount = 2, sComponentName = "Button", callback = "OnBtnClick_Close" }, imgItemsBg = {} } GachaShowResultCtrl._mapEventConfig = {} function GachaShowResultCtrl:Awake() end function GachaShowResultCtrl:FadeIn() end function GachaShowResultCtrl:FadeOut() end function GachaShowResultCtrl:OnEnable() self.gameObject:SetActive(false) end function GachaShowResultCtrl:OnDisable() end function GachaShowResultCtrl:OnDestroy() end function GachaShowResultCtrl:OnRelease() end function GachaShowResultCtrl:ShowResult(tbReward, mapRewardItem, tbGiveItems) WwiseAudioMgr:PlaySound("ui_recuit_gacha_result") self.curStep = 1 self._mapNode.imgItemsBg:SetActive(false) local nDelayTime = 0 for i = 1, 10 do if tbReward[i] ~= nil then self._mapNode.Item[i].gameObject:SetActive(true) local itemTime = self._mapNode.Item[i]:Refresh(tbReward[i].id, tbReward[i].bNew, nDelayTime) nDelayTime = nDelayTime + itemTime else self._mapNode.Item[i].gameObject:SetActive(false) end end local AllCardShowCallback = function() self.curStep = 2 self.delayTimer = nil local tbItem = {} for nTid, nQty in pairs(mapRewardItem) do table.insert(tbItem, {nTid = nTid, nQty = nQty}) end local bRewardActive = false for i = 1, 3 do if tbItem[i] ~= nil then self._mapNode.rtItem[i].gameObject:SetActive(true) local mapItemCfgData = ConfigTable.GetData_Item(tbItem[i].nTid) if mapItemCfgData == nil then printError("ItemDataMisssing:" .. tbItem[i].nTid) self._mapNode.rtItem[i].gameObject:SetActive(false) else self:SetPngSprite(self._mapNode.imgItemIcon[i], mapItemCfgData.Icon) NovaAPI.SetTMPText(self._mapNode.TMPItemCount[i], string.format("×%d", tbItem[i].nQty)) bRewardActive = true end else self._mapNode.rtItem[i].gameObject:SetActive(false) end end if tbGiveItems[1] ~= nil then self._mapNode.rtItem[3].gameObject:SetActive(true) local mapItemCfgData = ConfigTable.GetData_Item(tbGiveItems[1].Tid) if mapItemCfgData == nil then printError("ItemDataMisssing:" .. tbGiveItems[1].Tid) self._mapNode.rtItem[3].gameObject:SetActive(false) else self:SetPngSprite(self._mapNode.imgItemIcon[3], mapItemCfgData.Icon) NovaAPI.SetTMPText(self._mapNode.TMPItemCount[3], string.format("×%d", tbGiveItems[1].Qty)) bRewardActive = true end else self._mapNode.rtItem[3].gameObject:SetActive(false) end self._mapNode.imgItemsBg:SetActive(bRewardActive) for i = 1, 10 do self._mapNode.Item[i]:ShowAllCardEnd() end local wait = function() local animtorItemContent = self._mapNode.imgItemsBg:GetComponent("Animator") animtorItemContent:Play("GachaShowResult_imgItemsBg_in") end cs_coroutine.start(wait) self:BlockJump(0.5) end self.delayTimer = self:AddTimer(1, nDelayTime, AllCardShowCallback, true, true, nil, nil) end function GachaShowResultCtrl:BlockJump(nTime) self.bBlockJump = true local unBlockJump = function() self.bBlockJump = false end self:AddTimer(1, nTime, unBlockJump, true, true, nil, nil) end function GachaShowResultCtrl:OnBtnClick_Close() if self.bBlockJump then return end if self.curStep == 1 then for i = 1, 10 do self._mapNode.Item[i]:JumpDelay() end if self.delayTimer ~= nil then self.delayTimer:Cancel(true) end else self.gameObject:SetActive(false) WwiseAudioMgr:SetState("recruit_rarity", "None") for i = 1, 10 do self._mapNode.Item[i].gameObject:SetActive(false) end PlayerData.Item:TryOpenFragmentsOverflow(function() PlayerData.Phone:CheckNewChat() end) end end return GachaShowResultCtrl