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,184 @@
|
||||
local InfinityTowerPlot = class("InfinityTowerPlot", BaseCtrl)
|
||||
InfinityTowerPlot._mapNodeConfig = {
|
||||
goPlot = {},
|
||||
tex_plot_Title = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "InfinityTower_Plot_Review"
|
||||
},
|
||||
plotList = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
goPlotRoot = {},
|
||||
rtWindowAni = {sNodeName = "rtWindow", sComponentName = "Animator"},
|
||||
txtGoPlotTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "InfinityTower_Plot_Review"
|
||||
},
|
||||
cancelPlotAvgBtnTex = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "MessageBox_Cancel"
|
||||
},
|
||||
goPlotAvgBtnTex = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "WorldMap_MainLine_Avg_Btn"
|
||||
},
|
||||
txtGoPlotReward = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "STRanking_Reward_Btn"
|
||||
},
|
||||
goPlotRootMask = {
|
||||
sComponentName = "Button",
|
||||
callback = "OnBtn_ClickCloseGoPlotPanel"
|
||||
},
|
||||
btnGoPlotClose = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtn_ClickCloseGoPlotPanel"
|
||||
},
|
||||
btnCancelGoPlot = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtn_ClickCloseGoPlotPanel"
|
||||
},
|
||||
btnSureGoPlot = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtn_ClickPlayPlot"
|
||||
},
|
||||
goRewardInfo = {},
|
||||
goPlotLvNum = {sComponentName = "TMP_Text"},
|
||||
goPlotLvName = {sComponentName = "TMP_Text"},
|
||||
goPlotLvDes = {sComponentName = "TMP_Text"},
|
||||
imgGoPlotReward = {sComponentName = "Image"},
|
||||
txtGoPlotRewardCount = {sComponentName = "TMP_Text"}
|
||||
}
|
||||
InfinityTowerPlot._mapEventConfig = {
|
||||
Refresh_Infinity_PlotList = "OnEvent_RefreshInfinityPlotList"
|
||||
}
|
||||
function InfinityTowerPlot:OpenPlotView()
|
||||
self.AniRoot = self.gameObject:GetComponent("Animator")
|
||||
self._mapNode.goPlot.gameObject:SetActive(false)
|
||||
local wait = function()
|
||||
self:InitPlotMsg()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
self.AniRoot.enabled = true
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
self._mapNode.goPlot.gameObject:SetActive(true)
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
self.gameObject:SetActive(true)
|
||||
end
|
||||
function InfinityTowerPlot:InitPlotMsg()
|
||||
local count = 0
|
||||
self.tabPlot = {}
|
||||
local foreach_Base = function(baseData)
|
||||
count = count + 1
|
||||
self.tabPlot[count] = baseData
|
||||
end
|
||||
ForEachTableLine(DataTable.InfinityTowerPlot, foreach_Base)
|
||||
self._mapNode.plotList:Init(count, self, self.InitPlotList)
|
||||
local tmpCount = 1
|
||||
for i = 1, count do
|
||||
if PlayerData.InfinityTower:GetPlotUnLock(self.tabPlot[i].Id) and not PlayerData.InfinityTower:GetPlotGetReward(self.tabPlot[i].Id) then
|
||||
tmpCount = i
|
||||
break
|
||||
end
|
||||
end
|
||||
if 0 < count then
|
||||
self._mapNode.plotList:SetScrollGridPos(tmpCount, 0.1, 0)
|
||||
end
|
||||
end
|
||||
function InfinityTowerPlot:OnEvent_RefreshInfinityPlotList()
|
||||
self:InitPlotMsg()
|
||||
end
|
||||
function InfinityTowerPlot:InitPlotList(goGrid, gridIndex)
|
||||
local index = gridIndex + 1
|
||||
local plotData = self.tabPlot[index]
|
||||
local isUnLock = PlayerData.InfinityTower:GetPlotUnLock(plotData.Id)
|
||||
local plot_item_bg = goGrid.transform:Find("gridRt/plot_item_bg"):GetComponent("Image")
|
||||
local unlock = goGrid.transform:Find("gridRt/unlock").gameObject
|
||||
local lock = goGrid.transform:Find("gridRt/lock").gameObject
|
||||
if isUnLock then
|
||||
NovaAPI.SetImageColor(plot_item_bg, Color(1, 1, 1, 1))
|
||||
unlock:SetActive(true)
|
||||
lock:SetActive(false)
|
||||
local plot_item_Index = unlock.transform:Find("plot_item_Index"):GetComponent("TMP_Text")
|
||||
local plot_item_Name = unlock.transform:Find("plot_item_Name"):GetComponent("TMP_Text")
|
||||
local plot_item_Reward = unlock.transform:Find("plot_item_Reward").gameObject
|
||||
local plot_item_RewardReview = unlock.transform:Find("plot_item_RewardReview"):GetComponent("UIButton")
|
||||
local redDot = unlock.transform:Find("redDot").gameObject
|
||||
local isGet = PlayerData.InfinityTower:GetPlotGetReward(plotData.Id)
|
||||
if isGet then
|
||||
plot_item_Reward:SetActive(false)
|
||||
redDot:SetActive(false)
|
||||
else
|
||||
local plot_item_RewardIcon = unlock.transform:Find("plot_item_Reward/plot_item_RewardIcon"):GetComponent("Image")
|
||||
local plot_item_RewardCount = unlock.transform:Find("plot_item_Reward/plot_item_RewardCount"):GetComponent("TMP_Text")
|
||||
self:SetPngSprite(plot_item_RewardIcon, ConfigTable.GetData_Item(plotData.RewardItemId).Icon2)
|
||||
NovaAPI.SetTMPText(plot_item_RewardCount, "×" .. plotData.RewardItemQty)
|
||||
plot_item_Reward:SetActive(true)
|
||||
redDot:SetActive(true)
|
||||
end
|
||||
NovaAPI.SetTMPText(plot_item_Index, plotData.Name)
|
||||
NovaAPI.SetTMPText(plot_item_Name, plotData.Desc)
|
||||
plot_item_RewardReview.onClick:RemoveAllListeners()
|
||||
local clickCb = function()
|
||||
self:ShowGoPlotPanel(plotData)
|
||||
end
|
||||
plot_item_RewardReview.onClick:AddListener(clickCb)
|
||||
else
|
||||
NovaAPI.SetImageColor(plot_item_bg, Color(1, 1, 1, 0.6))
|
||||
unlock:SetActive(false)
|
||||
lock:SetActive(true)
|
||||
local plot_item_LockMsg = lock.transform:Find("plot_item_LockMsg"):GetComponent("TMP_Text")
|
||||
local _cond = plotData.UnlockCond
|
||||
if _cond ~= 0 then
|
||||
if _cond == GameEnum.InfinityTowerCond.LevelClearWithSpecificId then
|
||||
local lvId = plotData.CondParam[1]
|
||||
local lvData = ConfigTable.GetData("InfinityTowerLevel", lvId)
|
||||
NovaAPI.SetTMPText(plot_item_LockMsg, orderedFormat(ConfigTable.GetUIText("InfinityTower_Cond_WithSpecificId"), lvData.Name))
|
||||
elseif _cond == GameEnum.InfinityTowerCond.InfinityTowerWithSpecificLevelTotal then
|
||||
NovaAPI.SetTMPText(plot_item_LockMsg, orderedFormat(ConfigTable.GetUIText("InfinityTower_Cond_WithSpecificLevelTotal"), plotData.CondParam[1]))
|
||||
elseif _cond == GameEnum.InfinityTowerCond.AnyTowerWithSpecificTotalLevel then
|
||||
NovaAPI.SetTMPText(plot_item_LockMsg, orderedFormat(ConfigTable.GetUIText("InfinityTower_Cond_TotalLevel"), plotData.CondParam[1], plotData.CondParam[2]))
|
||||
elseif _cond == GameEnum.InfinityTowerCond.BountyLevelSpecific then
|
||||
NovaAPI.SetTMPText(plot_item_LockMsg, orderedFormat(ConfigTable.GetUIText("InfinityTower_Cond_LevelSpecific"), plotData.CondParam[1]))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
function InfinityTowerPlot:OnBtnClick_Close()
|
||||
local ClosePanel = function()
|
||||
self._mapNode.goPlot.gameObject:SetActive(false)
|
||||
self.gameObject:SetActive(false)
|
||||
self.AniRoot.enabled = false
|
||||
end
|
||||
self:AddTimer(1, 0.12, ClosePanel, true, true)
|
||||
self.AniRoot:Play("MatList_out")
|
||||
end
|
||||
function InfinityTowerPlot:ShowGoPlotPanel(plotData)
|
||||
self.SelectPlotData = plotData
|
||||
local isGet = PlayerData.InfinityTower:GetPlotGetReward(plotData.Id)
|
||||
if isGet then
|
||||
self._mapNode.goRewardInfo:SetActive(false)
|
||||
else
|
||||
self:SetPngSprite(self._mapNode.imgGoPlotReward, ConfigTable.GetData_Item(plotData.RewardItemId).Icon2)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtGoPlotRewardCount, "×" .. plotData.RewardItemQty)
|
||||
self._mapNode.goRewardInfo:SetActive(true)
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.goPlotLvNum, plotData.Name)
|
||||
NovaAPI.SetTMPText(self._mapNode.goPlotLvName, plotData.Desc)
|
||||
NovaAPI.SetTMPText(self._mapNode.goPlotLvDes, plotData.PlotSum)
|
||||
self._mapNode.goPlotRoot.gameObject:SetActive(true)
|
||||
self._mapNode.goPlotRootMask.gameObject:SetActive(true)
|
||||
self._mapNode.rtWindowAni:Play("t_window_04_t_in")
|
||||
end
|
||||
function InfinityTowerPlot:OnBtn_ClickPlayPlot()
|
||||
PlayerData.InfinityTower:PlayPlot(self.SelectPlotData.Id)
|
||||
self:OnBtn_ClickCloseGoPlotPanel()
|
||||
end
|
||||
function InfinityTowerPlot:OnBtn_ClickCloseGoPlotPanel()
|
||||
self._mapNode.goPlotRootMask.gameObject:SetActive(false)
|
||||
self._mapNode.rtWindowAni:Play("t_window_04_t_out")
|
||||
self:AddTimer(1, 0.3, function()
|
||||
self._mapNode.goPlotRoot:SetActive(false)
|
||||
end, true, true, true)
|
||||
end
|
||||
return InfinityTowerPlot
|
||||
Reference in New Issue
Block a user