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,99 @@
|
||||
local TowerDefenseStoryCtrl = class("TowerDefenseStoryCtrl", BaseCtrl)
|
||||
TowerDefenseStoryCtrl._mapNodeConfig = {
|
||||
txtWindowTitle_Story = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "TowerDef_Story"
|
||||
},
|
||||
btnClose = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Close"
|
||||
},
|
||||
sv_story = {
|
||||
sComponentName = "LoopScrollView"
|
||||
}
|
||||
}
|
||||
TowerDefenseStoryCtrl._mapEventConfig = {}
|
||||
TowerDefenseStoryCtrl._mapRedDotConfig = {}
|
||||
function TowerDefenseStoryCtrl:Awake()
|
||||
self.animator = self.gameObject:GetComponent("Animator")
|
||||
end
|
||||
function TowerDefenseStoryCtrl:SetData(ActId)
|
||||
self.animator:Play("t_window_04_t_in")
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.2)
|
||||
self.TowerDefenseData = PlayerData.Activity:GetActivityDataById(ActId)
|
||||
self.tbStoryId = {}
|
||||
local forEach = function(data)
|
||||
if ActId == data.ActivityIdId then
|
||||
table.insert(self.tbStoryId, data.Id)
|
||||
end
|
||||
end
|
||||
ForEachTableLine(DataTable.TowerDefenseStory, forEach)
|
||||
local sortFunc = function(a, b)
|
||||
return a < b
|
||||
end
|
||||
table.sort(self.tbStoryId, sortFunc)
|
||||
self._mapNode.sv_story:Init(#self.tbStoryId, self, self.OnRefreshGrid)
|
||||
end
|
||||
function TowerDefenseStoryCtrl:OnRefreshGrid(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local bUnlock = self.TowerDefenseData:IsStoryUnlock(self.tbStoryId[nIndex])
|
||||
local go_lock = goGrid.transform:Find("btnGrid/lock")
|
||||
local go_AnimRoot = goGrid.transform:Find("btnGrid/AnimRoot")
|
||||
local storyConfig = ConfigTable.GetData("TowerDefenseStory", self.tbStoryId[nIndex])
|
||||
if storyConfig == nil then
|
||||
return
|
||||
end
|
||||
if bUnlock then
|
||||
go_lock.gameObject:SetActive(false)
|
||||
go_AnimRoot.gameObject:SetActive(true)
|
||||
local txt_index = go_AnimRoot.transform:Find("txtLevelIndex"):GetComponent("TMP_Text")
|
||||
NovaAPI.SetTMPText(txt_index, orderedFormat(ConfigTable.GetUIText("TowerDef_Story_Index"), nIndex))
|
||||
local txt_name = go_AnimRoot.transform:Find("txtLevelName"):GetComponent("TMP_Text")
|
||||
NovaAPI.SetTMPText(txt_name, storyConfig.Name)
|
||||
local imgReward = go_AnimRoot.transform:Find("img_reward"):GetComponent("Image")
|
||||
local txt_Reward = go_AnimRoot.transform:Find("txt_reward"):GetComponent("TMP_Text")
|
||||
if storyConfig.Item1 ~= 0 then
|
||||
local itemConfig = ConfigTable.GetData_Item(storyConfig.Item1)
|
||||
if itemConfig ~= nil then
|
||||
self:SetPngSprite(imgReward, itemConfig.Icon)
|
||||
NovaAPI.SetTMPText(txt_Reward, "x" .. storyConfig.Qty1)
|
||||
end
|
||||
end
|
||||
local btn_go = go_AnimRoot.transform:Find("btnSelect"):GetComponent("UIButton")
|
||||
btn_go.onClick:RemoveAllListeners()
|
||||
btn_go.onClick:AddListener(function()
|
||||
self.TowerDefenseData:PlayAvg(storyConfig.Id, storyConfig.AvgId)
|
||||
end)
|
||||
local reddot = go_AnimRoot.transform:Find("RedDot")
|
||||
RedDotManager.RegisterNode(RedDotDefine.Activity_TowerDefense_Story, storyConfig.Id, reddot)
|
||||
else
|
||||
go_lock.gameObject:SetActive(true)
|
||||
go_AnimRoot.gameObject:SetActive(false)
|
||||
local txtUnlock = go_lock.transform:Find("txtUnlock"):GetComponent("TMP_Text")
|
||||
local levelConfig = ConfigTable.GetData("TowerDefenseLevel", storyConfig.LevelId)
|
||||
if levelConfig == nil then
|
||||
NovaAPI.SetTMPText(txtUnlock, orderedFormat(ConfigTable.GetUIText("TowerDef_Story_Lock"), ""))
|
||||
else
|
||||
NovaAPI.SetTMPText(txtUnlock, orderedFormat(ConfigTable.GetUIText("TowerDef_Story_Lock"), levelConfig.LevelName))
|
||||
end
|
||||
local txt_reward_title = go_lock.transform:Find("txtreward_title"):GetComponent("TMP_Text")
|
||||
local imgReward = go_lock.transform:Find("img_reward"):GetComponent("Image")
|
||||
local txt_Reward = go_lock.transform:Find("txt_reward"):GetComponent("TMP_Text")
|
||||
if storyConfig.Item1 ~= 0 then
|
||||
local itemConfig = ConfigTable.GetData_Item("storyConfig.Item1")
|
||||
if itemConfig ~= nil then
|
||||
self:SetPngSprite(imgReward, itemConfig.Icon)
|
||||
NovaAPI.SetTMPText(txt_Reward, storyConfig.Qty1)
|
||||
NovaAPI.SetTMPText(txt_reward_title, ConfigTable.GetUIText("TowerDef_Story_RewardTitle"))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
function TowerDefenseStoryCtrl:OnBtnClick_Close()
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.2)
|
||||
self.animator:Play("t_window_04_t_out")
|
||||
self:AddTimer(1, 0.2, function()
|
||||
EventManager.Hit("CloseTowerDefenseStoryPanel")
|
||||
end, true, true, true)
|
||||
end
|
||||
return TowerDefenseStoryCtrl
|
||||
Reference in New Issue
Block a user