5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
152 lines
4.1 KiB
Lua
152 lines
4.1 KiB
Lua
local GachaNewBieObtainResultCtrl = class("GachaNewBieObtainResultCtrl", BaseCtrl)
|
|
GachaNewBieObtainResultCtrl._mapNodeConfig = {
|
|
txtWindowTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Gacha_NewBieObtainTitle"
|
|
},
|
|
txtBtnCancel = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Gacha_NewBieObtainCancel"
|
|
},
|
|
txtBtnOk = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Gacha_NewBieObtainOk"
|
|
},
|
|
btnClose = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Close"
|
|
},
|
|
btnCancel = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Close"
|
|
},
|
|
btnConfirm1 = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Confirm"
|
|
},
|
|
rtItem = {
|
|
sNodeName = "item",
|
|
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl",
|
|
nCount = 10
|
|
},
|
|
imgRec = {sNodeName = "imgRec_", nCount = 10},
|
|
rtItemText = {
|
|
sNodeName = "item_name",
|
|
sComponentName = "TMP_Text",
|
|
nCount = 10
|
|
},
|
|
btnItem = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Item",
|
|
nCount = 10
|
|
},
|
|
CloseButton = {
|
|
sComponentName = "Button",
|
|
callback = "OnBtnClick_Close"
|
|
}
|
|
}
|
|
GachaNewBieObtainResultCtrl._mapEventConfig = {}
|
|
function GachaNewBieObtainResultCtrl:Awake()
|
|
end
|
|
function GachaNewBieObtainResultCtrl:FadeIn()
|
|
end
|
|
function GachaNewBieObtainResultCtrl:FadeOut()
|
|
end
|
|
function GachaNewBieObtainResultCtrl:OnEnable()
|
|
self.animRoot = self.gameObject:GetComponent("Animator")
|
|
self.bClose = true
|
|
end
|
|
function GachaNewBieObtainResultCtrl:OnDisable()
|
|
end
|
|
function GachaNewBieObtainResultCtrl:OnDestroy()
|
|
end
|
|
function GachaNewBieObtainResultCtrl:OnBtnClick_Item(btn, nIndex)
|
|
if self.items == nil then
|
|
return
|
|
end
|
|
local item = self.items[nIndex]
|
|
if item == nil then
|
|
return
|
|
end
|
|
local mapItemCfgData = ConfigTable.GetData_Item(item)
|
|
if mapItemCfgData == nil then
|
|
return
|
|
end
|
|
if mapItemCfgData.Type == nil then
|
|
return
|
|
end
|
|
if mapItemCfgData.Type == GameEnum.itemType.Disc then
|
|
EventManager.Hit(EventId.OpenPanel, PanelId.DiscSample, item)
|
|
elseif mapItemCfgData.Type == GameEnum.itemType.Char then
|
|
EventManager.Hit(EventId.OpenPanel, PanelId.CharBgTrialPanel, PanelId.CharInfoTrial, item)
|
|
end
|
|
end
|
|
function GachaNewBieObtainResultCtrl:OnBtnClick_Close()
|
|
if self.bClose then
|
|
return
|
|
end
|
|
local Close = function()
|
|
self.gameObject:SetActive(false)
|
|
end
|
|
self.animRoot:Play("t_window_04_t_out")
|
|
self:AddTimer(1, 0.2, Close, true, true, true)
|
|
self.bClose = true
|
|
end
|
|
function GachaNewBieObtainResultCtrl:OnBtnClick_Confirm()
|
|
if self.bClose then
|
|
return
|
|
end
|
|
local CheckNew = function(nTid)
|
|
local mapItemCfgData = ConfigTable.GetData_Item(nTid)
|
|
if mapItemCfgData == nil then
|
|
return false
|
|
end
|
|
if mapItemCfgData.Type == GameEnum.itemType.Char then
|
|
local mapChar = PlayerData.Char:GetCharDataByTid(nTid)
|
|
return mapChar == nil
|
|
elseif mapItemCfgData.Type == GameEnum.itemType.Disc then
|
|
local mapDisc = PlayerData.Disc:GetDiscById(nTid)
|
|
return mapDisc == nil
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
local tbItemId = {}
|
|
local tbNew = {}
|
|
for _, v in ipairs(self.items) do
|
|
local bNewHandBood = CheckNew(v)
|
|
local bNew = bNewHandBood and table.indexof(tbItemId, v) < 1
|
|
table.insert(tbItemId, v)
|
|
table.insert(tbNew, bNew)
|
|
end
|
|
local Callback = function(mapData)
|
|
EventManager.Hit("GachaNewbieObtainRecordOver", mapData, self.items, tbNew)
|
|
end
|
|
PlayerData.Gacha:SendGachaNewbieObtainReq(self.curPoolId, self.idx, Callback)
|
|
self.bClose = true
|
|
end
|
|
function GachaNewBieObtainResultCtrl:SetItems(id, idx, items)
|
|
self.idx = idx
|
|
self.curPoolId = id
|
|
self.items = items
|
|
for idx, v in ipairs(items) do
|
|
if v ~= 0 then
|
|
local mapCfg = ConfigTable.GetData_Item(v)
|
|
NovaAPI.SetTMPText(self._mapNode.rtItemText[idx], mapCfg.Title)
|
|
self._mapNode.rtItem[idx].gameObject:SetActive(true)
|
|
self._mapNode.rtItem[idx]:SetItem(v)
|
|
local mapItemCfg = ConfigTable.GetData_Item(v)
|
|
self._mapNode.imgRec[idx]:SetActive(mapItemCfg ~= nil and mapItemCfg.Rarity == GameEnum.itemRarity.SSR)
|
|
else
|
|
self._mapNode.rtItem[idx].gameObject:SetActive(false)
|
|
end
|
|
end
|
|
local wait = function()
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
self.animRoot:Play("t_window_04_t_in")
|
|
end
|
|
cs_coroutine.start(wait)
|
|
self.bClose = false
|
|
end
|
|
return GachaNewBieObtainResultCtrl
|