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,181 @@
|
||||
local BuildAttrPreviewCtrl = class("BuildAttrPreviewCtrl", BaseCtrl)
|
||||
local GamepadUIManager = require("GameCore.Module.GamepadUIManager")
|
||||
BuildAttrPreviewCtrl._mapNodeConfig = {
|
||||
blur = {
|
||||
sNodeName = "t_fullscreen_blur_blue"
|
||||
},
|
||||
aniBlur = {
|
||||
sNodeName = "t_fullscreen_blur_blue",
|
||||
sComponentName = "Animator"
|
||||
},
|
||||
btnCloseBg = {
|
||||
sNodeName = "snapshot",
|
||||
sComponentName = "Button",
|
||||
callback = "OnBtnClick_Close"
|
||||
},
|
||||
txtWindowTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Build_Attribute_Title"
|
||||
},
|
||||
window = {},
|
||||
aniWindow = {sNodeName = "window", sComponentName = "Animator"},
|
||||
btnClose = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Close"
|
||||
},
|
||||
txtTip = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Build_Attribute_DescTip"
|
||||
},
|
||||
All = {sNodeName = "--All---"},
|
||||
svAll = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
Cur = {sNodeName = "--Cur---"},
|
||||
svCur = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
txtCurScoreCn = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Build_Attribute_CurScore"
|
||||
},
|
||||
imgBuildIcon = {sComponentName = "Image"},
|
||||
txtCurScore = {sComponentName = "TMP_Text"},
|
||||
ActionBar = {
|
||||
sCtrlName = "Game.UI.ActionBar.ActionBarCtrl"
|
||||
},
|
||||
btnShortcutClose = {
|
||||
sComponentName = "NaviButton",
|
||||
callback = "OnBtnClick_Close"
|
||||
}
|
||||
}
|
||||
BuildAttrPreviewCtrl._mapEventConfig = {}
|
||||
function BuildAttrPreviewCtrl:Open()
|
||||
self._mapNode.blur:SetActive(true)
|
||||
self:PlayInAni()
|
||||
self._mapNode.All:SetActive(not self.nRankId)
|
||||
self._mapNode.Cur:SetActive(self.nRankId)
|
||||
if self.nRankId then
|
||||
self:RefreshCur()
|
||||
else
|
||||
self:RefreshAll()
|
||||
end
|
||||
end
|
||||
function BuildAttrPreviewCtrl:RefreshCur()
|
||||
local mapCfg = ConfigTable.GetData("StarTowerBuildRank", self.nRankId)
|
||||
if not mapCfg then
|
||||
return
|
||||
end
|
||||
local sScore = "Icon/BuildRank/BuildRank_" .. self.nRankId
|
||||
self:SetPngSprite(self._mapNode.imgBuildIcon, sScore)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtCurScore, self.nScore)
|
||||
self.tbRank = PlayerData.Build:GetBuildRank()
|
||||
local nCount = #self.tbRank
|
||||
self._mapNode.svCur.gameObject:SetActive(0 < nCount)
|
||||
if 0 < nCount then
|
||||
self._mapNode.svCur:Init(nCount, self, self.OnGridRefresh_Cur)
|
||||
self._mapNode.svCur:SetScrollGridPos(self.nRankId - 1, 0.1, -1)
|
||||
end
|
||||
end
|
||||
function BuildAttrPreviewCtrl:OnGridRefresh_Cur(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local rtGrid = goGrid.transform:Find("btnGrid/AnimRoot")
|
||||
local imgOn = rtGrid.transform:Find("imgOnBg").gameObject
|
||||
local imgOff = rtGrid.transform:Find("imgOffBg").gameObject
|
||||
local txtDesc = rtGrid.transform:Find("txtDesc"):GetComponent("TMP_Text")
|
||||
local txtLevel = rtGrid.transform:Find("txtLevel"):GetComponent("TMP_Text")
|
||||
local txtScore = rtGrid.transform:Find("txtScore"):GetComponent("TMP_Text")
|
||||
local txtScoreCn = rtGrid.transform:Find("txtScore/imgBg/txtScoreCn"):GetComponent("TMP_Text")
|
||||
local imgSelect = rtGrid.transform:Find("imgSelect").gameObject
|
||||
local imgIcon = rtGrid.transform:Find("imgIcon"):GetComponent("Image")
|
||||
local mapData = self.tbRank[nIndex]
|
||||
local bOn = nIndex == self.nRankId
|
||||
imgSelect:SetActive(bOn)
|
||||
imgOn:SetActive(bOn)
|
||||
imgOff:SetActive(not bOn)
|
||||
NovaAPI.SetTMPText(txtLevel, orderedFormat(ConfigTable.GetUIText("Build_Attribute_Level"), mapData.Level))
|
||||
NovaAPI.SetTMPText(txtScoreCn, ConfigTable.GetUIText("Build_Score"))
|
||||
NovaAPI.SetTMPText(txtScore, mapData.MinGrade)
|
||||
NovaAPI.SetTMPText(txtDesc, UTILS.ParseParamDesc(ConfigTable.GetUIText(mapData.Desc), mapData, nil, nil, "#ec6d21"))
|
||||
local sScore = "Icon/BuildRank/BuildRank_" .. nIndex
|
||||
self:SetPngSprite(imgIcon, sScore)
|
||||
end
|
||||
function BuildAttrPreviewCtrl:RefreshAll()
|
||||
self.tbRank = PlayerData.Build:GetBuildRank()
|
||||
local nCount = #self.tbRank
|
||||
self._mapNode.svAll.gameObject:SetActive(0 < nCount)
|
||||
if 0 < nCount then
|
||||
self._mapNode.svAll:Init(nCount, self, self.OnGridRefresh_All)
|
||||
end
|
||||
end
|
||||
function BuildAttrPreviewCtrl:OnGridRefresh_All(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local rtGrid = goGrid.transform:Find("btnGrid/AnimRoot")
|
||||
local imgOn = rtGrid.transform:Find("imgOnBg").gameObject
|
||||
local imgOff = rtGrid.transform:Find("imgOffBg").gameObject
|
||||
local txtDesc = rtGrid.transform:Find("txtDesc"):GetComponent("TMP_Text")
|
||||
local txtLevel = rtGrid.transform:Find("txtLevel"):GetComponent("TMP_Text")
|
||||
local txtScore = rtGrid.transform:Find("txtScore"):GetComponent("TMP_Text")
|
||||
local txtScoreCn = rtGrid.transform:Find("txtScore/imgBg/txtScoreCn"):GetComponent("TMP_Text")
|
||||
local imgIcon = rtGrid.transform:Find("imgIcon"):GetComponent("Image")
|
||||
local mapData = self.tbRank[nIndex]
|
||||
local bOn = true
|
||||
imgOn:SetActive(bOn)
|
||||
imgOff:SetActive(not bOn)
|
||||
NovaAPI.SetTMPText(txtLevel, orderedFormat(ConfigTable.GetUIText("Build_Attribute_Level"), mapData.Level))
|
||||
NovaAPI.SetTMPText(txtScoreCn, ConfigTable.GetUIText("Build_Score"))
|
||||
NovaAPI.SetTMPText(txtScore, mapData.MinGrade)
|
||||
NovaAPI.SetTMPText(txtDesc, UTILS.ParseParamDesc(ConfigTable.GetUIText(mapData.Desc), mapData, nil, nil, "#ec6d21"))
|
||||
local sScore = "Icon/BuildRank/BuildRank_" .. nIndex
|
||||
self:SetPngSprite(imgIcon, sScore)
|
||||
end
|
||||
function BuildAttrPreviewCtrl:PlayInAni()
|
||||
self._mapNode.window:SetActive(true)
|
||||
self._mapNode.aniWindow:Play("t_window_04_t_in")
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
|
||||
end
|
||||
function BuildAttrPreviewCtrl:PlayOutAni()
|
||||
self._mapNode.aniWindow:Play("t_window_04_t_out")
|
||||
self._mapNode.aniBlur:SetTrigger("tOut")
|
||||
self:AddTimer(1, 0.2, "Close", true, true, true)
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.2)
|
||||
end
|
||||
function BuildAttrPreviewCtrl:Close()
|
||||
self._mapNode.window:SetActive(false)
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.BuildAttrPreview)
|
||||
end
|
||||
function BuildAttrPreviewCtrl:Awake()
|
||||
self._mapNode.window:SetActive(false)
|
||||
local tbParam = self:GetPanelParam()
|
||||
if type(tbParam) == "table" then
|
||||
self.nRankId = tbParam[1]
|
||||
self.nScore = tbParam[2]
|
||||
end
|
||||
self._mapNode.btnShortcutClose.gameObject:SetActive(GamepadUIManager.GetInputState())
|
||||
if GamepadUIManager.GetInputState() then
|
||||
local tbConfig = {
|
||||
{
|
||||
sAction = "Back",
|
||||
sLang = "ActionBar_Back"
|
||||
}
|
||||
}
|
||||
self._mapNode.ActionBar:InitActionBar(tbConfig)
|
||||
end
|
||||
end
|
||||
function BuildAttrPreviewCtrl:OnEnable()
|
||||
if GamepadUIManager.GetInputState() then
|
||||
GamepadUIManager.EnableGamepadUI("BuildAttrPreviewCtrl", self:GetGamepadUINode(), nil, true)
|
||||
end
|
||||
self:Open()
|
||||
end
|
||||
function BuildAttrPreviewCtrl:OnDisable()
|
||||
if GamepadUIManager.GetInputState() then
|
||||
GamepadUIManager.DisableGamepadUI("BuildAttrPreviewCtrl")
|
||||
end
|
||||
end
|
||||
function BuildAttrPreviewCtrl:OnDestroy()
|
||||
end
|
||||
function BuildAttrPreviewCtrl:OnBtnClick_Close()
|
||||
self:PlayOutAni()
|
||||
end
|
||||
return BuildAttrPreviewCtrl
|
||||
Reference in New Issue
Block a user