Initial version - 1.2.0.60
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
local BaseCtrl = require("GameCore.UI.BaseCtrl")
|
||||
local AffinityRewardCtrl = class("AffinityRewardCtrl", BaseCtrl)
|
||||
AffinityRewardCtrl._mapNodeConfig = {
|
||||
anit_window_01 = {sNodeName = "t_window", sComponentName = "Animator"},
|
||||
got_fullscreen_blur_black = {
|
||||
sNodeName = "t_fullscreen_blur_black",
|
||||
sComponentName = "GameObject"
|
||||
},
|
||||
btnsnapshot = {
|
||||
sNodeName = "snapshot",
|
||||
sComponentName = "Button",
|
||||
callback = "OnBtn_ClickClose"
|
||||
},
|
||||
btnClose = {
|
||||
sNodeName = "btnClose",
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtn_ClickClose"
|
||||
},
|
||||
svList = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
txtWindowTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "CharacterRelation_Favour_Reward"
|
||||
}
|
||||
}
|
||||
AffinityRewardCtrl._mapEventConfig = {}
|
||||
function AffinityRewardCtrl:Awake()
|
||||
local tbParam = self:GetPanelParam()
|
||||
self.curNpcId = tbParam[1]
|
||||
self.curNpcAffinityGroup = 0
|
||||
self.tbAffinityCfgData = {}
|
||||
self.mapGridCtrl = {}
|
||||
self.mapNPCAffinityData = PlayerData.StarTower:GetNpcAffinityData(self.curNpcId)
|
||||
local mapNpcCfgData = ConfigTable.GetData("StarTowerNPC", self.curNpcId)
|
||||
if mapNpcCfgData ~= nil then
|
||||
self.curNpcAffinityGroup = mapNpcCfgData.AffinityGroupId
|
||||
end
|
||||
end
|
||||
function AffinityRewardCtrl:OnEnable()
|
||||
self._mapNode.anit_window_01:Play("t_window_04_t_in")
|
||||
self._mapNode.got_fullscreen_blur_black:SetActive(true)
|
||||
local forEachNpcAffinity = function(mapData)
|
||||
if mapData.AffinityGroupId == self.curNpcAffinityGroup and mapData.Level > 0 then
|
||||
table.insert(self.tbAffinityCfgData, mapData)
|
||||
end
|
||||
end
|
||||
ForEachTableLine(DataTable.NPCAffinityGroup, forEachNpcAffinity)
|
||||
local sort = function(a, b)
|
||||
return a.Level < b.Level
|
||||
end
|
||||
table.sort(self.tbAffinityCfgData, sort)
|
||||
local nIdx = 1
|
||||
for i, mapData in ipairs(self.tbAffinityCfgData) do
|
||||
if self.mapNPCAffinityData.Level < mapData.Level then
|
||||
nIdx = i
|
||||
break
|
||||
end
|
||||
end
|
||||
for nInstanceId, objCtrl in pairs(self.mapGridCtrl) do
|
||||
self:UnbindCtrlByNode(objCtrl)
|
||||
self.mapGridCtrl[nInstanceId] = nil
|
||||
end
|
||||
self._mapNode.svList:Init(#self.tbAffinityCfgData, self, self.OnRefreshGrid, nil)
|
||||
if 2 <= nIdx then
|
||||
nIdx = nIdx - 2
|
||||
else
|
||||
nIdx = 0
|
||||
end
|
||||
self._mapNode.svList:SetScrollGridPos(nIdx)
|
||||
end
|
||||
function AffinityRewardCtrl:OnDisable()
|
||||
for nInstanceId, objCtrl in pairs(self.mapGridCtrl) do
|
||||
self:UnbindCtrlByNode(objCtrl)
|
||||
self.mapGridCtrl[nInstanceId] = nil
|
||||
end
|
||||
self.mapGridCtrl = {}
|
||||
end
|
||||
function AffinityRewardCtrl:OnRefreshGrid(goGrid, gridIndex)
|
||||
local nInstanceId = goGrid:GetInstanceID()
|
||||
local objCtrl = self.mapGridCtrl[nInstanceId]
|
||||
if objCtrl == nil then
|
||||
objCtrl = self:BindCtrlByNode(goGrid, "Game.UI.StarTowerBook.Affinity.AffinityRewardGridCtrl")
|
||||
self.mapGridCtrl[nInstanceId] = objCtrl
|
||||
end
|
||||
local mapCfgData = self.tbAffinityCfgData[gridIndex + 1]
|
||||
objCtrl:Refresh(mapCfgData, self.mapNPCAffinityData)
|
||||
end
|
||||
function AffinityRewardCtrl:OnBtn_ClickClose()
|
||||
self._mapNode.anit_window_01:Play("t_window_04_t_out")
|
||||
self._mapNode.got_fullscreen_blur_black:SetActive(false)
|
||||
self:AddTimer(1, 0.3, "OnCloseAnimFinish", true, true, true)
|
||||
end
|
||||
function AffinityRewardCtrl:OnCloseAnimFinish()
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.NpcAffinityRewardPanel)
|
||||
end
|
||||
return AffinityRewardCtrl
|
||||
Reference in New Issue
Block a user