5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
180 lines
5.2 KiB
Lua
180 lines
5.2 KiB
Lua
local GachaNewBieShowResultCtrl = class("GachaNewBieShowResultCtrl", BaseCtrl)
|
|
local WwiseAudioMgr = CS.WwiseAudioManager.Instance
|
|
GachaNewBieShowResultCtrl._mapNodeConfig = {
|
|
Item = {
|
|
sCtrlName = "Game.UI.GachaEx.GachaShowResultGrid",
|
|
nCount = 10
|
|
},
|
|
txt_newbie_result_save = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Gacha_NewBieSaveResult"
|
|
},
|
|
txt_newbie_result_summon = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Gacha_NewBieResultSummonAgain"
|
|
},
|
|
txt_newbie_result_summon_remain = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Gacha_NewBieRecordResultRemain"
|
|
},
|
|
txt_newbie_result_record = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Gacha_NewBieRecordResult"
|
|
},
|
|
btnClose = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Close"
|
|
},
|
|
btn_newbie_save = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Save"
|
|
},
|
|
btn_newbie_summon = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Summon"
|
|
},
|
|
btn_newbie_record = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Record"
|
|
}
|
|
}
|
|
GachaNewBieShowResultCtrl._mapEventConfig = {
|
|
Guide_GachaStart = "OnEvent_Guide_GachaStart"
|
|
}
|
|
function GachaNewBieShowResultCtrl:Awake()
|
|
self.remainCount = -1
|
|
end
|
|
function GachaNewBieShowResultCtrl:FadeIn()
|
|
end
|
|
function GachaNewBieShowResultCtrl:FadeOut()
|
|
end
|
|
function GachaNewBieShowResultCtrl:OnEnable()
|
|
self.GuideBlock = false
|
|
self.gameObject:SetActive(false)
|
|
end
|
|
function GachaNewBieShowResultCtrl:OnDisable()
|
|
end
|
|
function GachaNewBieShowResultCtrl:OnDestroy()
|
|
end
|
|
function GachaNewBieShowResultCtrl:OnRelease()
|
|
end
|
|
function GachaNewBieShowResultCtrl:RefreshInfo()
|
|
if self.curPoolId == nil then
|
|
return
|
|
end
|
|
local newbie = ConfigTable.GetData("GachaNewbie", self.curPoolId)
|
|
if newbie == nil then
|
|
return
|
|
end
|
|
local newbieData = PlayerData.Gacha:GetGachaNewbieData(self.curPoolId)
|
|
if newbieData == nil then
|
|
return
|
|
end
|
|
local c = tostring(#newbieData.Cards) .. "/" .. tostring(newbie.SaveCount)
|
|
local nTotalCount = newbie.SpinCount
|
|
local remainCount = nTotalCount - newbieData.Times
|
|
if #newbieData.Temp == 0 or remainCount == 0 then
|
|
self._mapNode.btn_newbie_save.gameObject:SetActive(false)
|
|
else
|
|
self._mapNode.btn_newbie_save.gameObject:SetActive(true)
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txt_newbie_result_record, orderedFormat(ConfigTable.GetUIText("Gacha_NewBieRecordResult") or "", c))
|
|
NovaAPI.SetTMPText(self._mapNode.txt_newbie_result_summon_remain, orderedFormat(ConfigTable.GetUIText("Gacha_NewBieRecordResultRemain") or "", remainCount))
|
|
if remainCount <= 0 then
|
|
NovaAPI.SetTMPText(self._mapNode.txt_newbie_result_summon, ConfigTable.GetUIText("Gacha_Newbie_BtnShowRecord"))
|
|
end
|
|
self.remainCount = remainCount
|
|
end
|
|
function GachaNewBieShowResultCtrl:ShowResult(tbReward, poolId)
|
|
self.curPoolId = poolId
|
|
WwiseAudioMgr:PlaySound("ui_recuit_gacha_result")
|
|
self:RefreshInfo()
|
|
self.curStep = 1
|
|
local nDelayTime = 0
|
|
self.hasSSR = false
|
|
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)
|
|
local mapItemCfg = ConfigTable.GetData_Item(tbReward[i].id)
|
|
nDelayTime = nDelayTime + itemTime
|
|
if mapItemCfg ~= nil and mapItemCfg.Rarity == GameEnum.itemRarity.SSR then
|
|
self.hasSSR = true
|
|
end
|
|
else
|
|
self._mapNode.Item[i].gameObject:SetActive(false)
|
|
end
|
|
end
|
|
local AllCardShowCallback = function()
|
|
self.curStep = 2
|
|
self.delayTimer = nil
|
|
for i = 1, 10 do
|
|
self._mapNode.Item[i]:ShowAllCardEnd()
|
|
end
|
|
EventManager.Hit("Guide_GachaFinish")
|
|
self:BlockJump(0.5)
|
|
end
|
|
self.delayTimer = self:AddTimer(1, nDelayTime, AllCardShowCallback, true, true, nil, nil)
|
|
end
|
|
function GachaNewBieShowResultCtrl:BlockJump(nTime)
|
|
self.bBlockJump = true
|
|
local unBlockJump = function()
|
|
self.bBlockJump = false
|
|
end
|
|
self:AddTimer(1, nTime, unBlockJump, true, true, nil, nil)
|
|
end
|
|
function GachaNewBieShowResultCtrl: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
|
|
function GachaNewBieShowResultCtrl:OnBtnClick_Save()
|
|
if self.GuideBlock then
|
|
return
|
|
end
|
|
EventManager.Hit("GachaNewbieSaveRecord")
|
|
self.hasSSR = false
|
|
end
|
|
function GachaNewBieShowResultCtrl:OnBtnClick_Summon()
|
|
local ConfirmCallback = function()
|
|
EventManager.Hit("GachaNewbieSpin")
|
|
end
|
|
local msg = {
|
|
nType = AllEnum.MessageBox.Confirm,
|
|
sContent = ConfigTable.GetUIText("Gacha_Newbie_RecordSSRHint"),
|
|
callbackConfirm = ConfirmCallback,
|
|
bDisableSnap = false
|
|
}
|
|
if self.remainCount == 0 then
|
|
self:OnBtnClick_Record()
|
|
elseif self.hasSSR then
|
|
EventManager.Hit(EventId.OpenMessageBox, msg)
|
|
else
|
|
ConfirmCallback()
|
|
end
|
|
end
|
|
function GachaNewBieShowResultCtrl:OnBtnClick_Record()
|
|
EventManager.Hit("GachaNewbieRecord")
|
|
end
|
|
function GachaNewBieShowResultCtrl:OnEvent_Guide_GachaStart(bBlock)
|
|
self.GuideBlock = bBlock
|
|
end
|
|
return GachaNewBieShowResultCtrl
|