5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
152 lines
4.6 KiB
Lua
152 lines
4.6 KiB
Lua
local BaseCtrl = require("GameCore.UI.BaseCtrl")
|
|
local NPCFavorLevelUpCtrl = class("NPCFavorLevelUpCtrl", BaseCtrl)
|
|
local Actor2DManager = require("Game.Actor2D.Actor2DManager")
|
|
local WwiseAudioMgr = CS.WwiseAudioManager.Instance
|
|
NPCFavorLevelUpCtrl._mapNodeConfig = {
|
|
trActor2D_PNG = {
|
|
sNodeName = "----Actor2D_PNG----",
|
|
sComponentName = "Transform"
|
|
},
|
|
aniActor2D_PNG = {
|
|
sNodeName = "----Actor2D_PNG----",
|
|
sComponentName = "Animator"
|
|
},
|
|
got_fullscreen_blur_black = {
|
|
sNodeName = "t_fullscreen_blur_black",
|
|
sComponentName = "GameObject"
|
|
},
|
|
btnsnapshot = {
|
|
sNodeName = "snapshot",
|
|
sComponentName = "Button",
|
|
callback = "OnBtn_ClickClose"
|
|
},
|
|
rtBg = {
|
|
sNodeName = "goBg",
|
|
sComponentName = "RectTransform"
|
|
},
|
|
goLevelUp = {},
|
|
TMPRewardTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "NPCFavor_LevelUp_RewardTitle"
|
|
},
|
|
affinityLevel = {
|
|
sCtrlName = "Game.UI.StarTower.NpcAffinityLevelUp.TemplateAffinityLevelCtrl"
|
|
},
|
|
affinityLevelBefore = {
|
|
sCtrlName = "Game.UI.StarTower.NpcAffinityLevelUp.TemplateAffinityLevelCtrl"
|
|
},
|
|
trContent = {
|
|
sNodeName = "--Content--",
|
|
sComponentName = "RectTransform"
|
|
},
|
|
btnSkipAnim = {
|
|
sNodeName = "btnSkipAnim",
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtn_SkipAnim"
|
|
},
|
|
aniSafeRoot = {
|
|
sNodeName = "----SafeRoot----",
|
|
sComponentName = "Animator"
|
|
},
|
|
goSafeRoot = {
|
|
sNodeName = "----SafeRoot----",
|
|
sComponentName = "GameObject"
|
|
},
|
|
rtItem = {
|
|
sNodeName = "tc_item_",
|
|
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl",
|
|
nCount = 3
|
|
},
|
|
btnItem = {
|
|
sComponentName = "UIButton",
|
|
nCount = 3,
|
|
callback = "OnBtn_ClickItem"
|
|
}
|
|
}
|
|
NPCFavorLevelUpCtrl._mapEventConfig = {}
|
|
function NPCFavorLevelUpCtrl:Awake()
|
|
end
|
|
function NPCFavorLevelUpCtrl:OnEnable()
|
|
local tbParam = self:GetPanelParam()
|
|
self.tbLevelUpList = tbParam[1]
|
|
self.closeCallback = tbParam[2]
|
|
self._mapNode.got_fullscreen_blur_black:SetActive(true)
|
|
self:RefreshPanel()
|
|
end
|
|
function NPCFavorLevelUpCtrl:RefreshPanel(bNext)
|
|
if bNext == nil then
|
|
end
|
|
if self.tbLevelUpList ~= nil and #self.tbLevelUpList > 0 then
|
|
local data = table.remove(self.tbLevelUpList, 1)
|
|
self.curNPCId = data.NPCId
|
|
self.affinityLevel = data.affinityLevel
|
|
self.affinityLevelBefore = data.affinityLevelBefore
|
|
self.tbItem = data.Items
|
|
end
|
|
self._mapNode.aniSafeRoot.speed = 1
|
|
self._mapNode.aniActor2D_PNG.speed = 1
|
|
self._mapNode.goSafeRoot:SetActive(true)
|
|
CS.WwiseAudioManager.Instance:PostEvent("ui_charInfo_favour_up")
|
|
local nSkinId = ConfigTable.GetData("StarTowerNPC", self.curNPCId).NPCSkin
|
|
if not bNext then
|
|
self._mapNode.aniSafeRoot:Play("NpcFavourLevelUpPanel_in")
|
|
else
|
|
self._mapNode.aniSafeRoot:Play("NpcFavourLevelUpPanel_Next_in")
|
|
end
|
|
local wait = function()
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
Actor2DManager.SetBoardNPC2D_PNG(self._mapNode.trActor2D_PNG, PanelId.NPCAffinityLevelUp, self.curNPCId, nSkinId)
|
|
if not bNext then
|
|
self._mapNode.aniActor2D_PNG:Play("Actor2D_PNG_NpcFavour")
|
|
else
|
|
self._mapNode.aniActor2D_PNG:Play("Actor2D_PNG_NpcFavour_in")
|
|
end
|
|
end
|
|
cs_coroutine.start(wait)
|
|
self._mapNode.affinityLevel:SetInfo(self.affinityLevel, self.curNPCId)
|
|
self._mapNode.affinityLevelBefore:SetInfo(self.affinityLevelBefore, self.curNPCId)
|
|
for i = 1, 3 do
|
|
if self.tbItem[i] ~= nil then
|
|
self._mapNode.btnItem[i].gameObject:SetActive(true)
|
|
self._mapNode.rtItem[i]:SetItem(self.tbItem[i].Tid, nil, self.tbItem[i].Qty)
|
|
else
|
|
self._mapNode.btnItem[i].gameObject:SetActive(false)
|
|
end
|
|
end
|
|
self._mapNode.btnSkipAnim.gameObject:SetActive(true)
|
|
end
|
|
function NPCFavorLevelUpCtrl:OnBtn_SkipAnim()
|
|
self._mapNode.aniSafeRoot.speed = 1000
|
|
self._mapNode.aniActor2D_PNG.speed = 1000
|
|
self._mapNode.btnSkipAnim.gameObject:SetActive(false)
|
|
end
|
|
function NPCFavorLevelUpCtrl:OnBtn_ClickClose()
|
|
if self.bClose == true then
|
|
return
|
|
end
|
|
if self.tbLevelUpList ~= nil and #self.tbLevelUpList > 0 then
|
|
self:RefreshPanel(true)
|
|
return
|
|
end
|
|
self.bClose = true
|
|
local WaitAnim = function()
|
|
if self.closeCallback ~= nil then
|
|
self.closeCallback()
|
|
end
|
|
EventManager.Hit(EventId.ClosePanel, PanelId.NPCAffinityLevelUp)
|
|
end
|
|
self._mapNode.aniSafeRoot.speed = 1
|
|
self._mapNode.aniActor2D_PNG.speed = 1
|
|
self._mapNode.aniActor2D_PNG:Play("Actor2D_PNG_NpcFavour_Out")
|
|
self._mapNode.aniSafeRoot:Play("NpcFavourLevelUpPanel_Next_out")
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 0.35)
|
|
self:AddTimer(1, 0.35, WaitAnim, true, true, true)
|
|
end
|
|
function NPCFavorLevelUpCtrl:OnBtn_ClickItem(btn, nIdx)
|
|
if self.tbItem[nIdx] == nil then
|
|
return
|
|
end
|
|
UTILS.ClickItemGridWithTips(self.tbItem[nIdx].Tid, btn.transform, false, true, false)
|
|
end
|
|
return NPCFavorLevelUpCtrl
|