Files
SL1900 5e0d58cfad 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
2025-12-03 01:00:00 +09:00

104 lines
3.2 KiB
Lua

local PotentialDetailCtrl = class("PotentialDetailCtrl", BaseCtrl)
PotentialDetailCtrl._mapNodeConfig = {
aniBlur = {sComponentName = "Animator"},
btnBlur = {
sNodeName = "snapshot",
sComponentName = "Button",
callback = "OnBtnClick_Close"
},
animDetail = {sNodeName = "goDetail", sComponentName = "Animator"},
goDetail = {},
potentialDetail = {
sCtrlName = "Game.UI.StarTower.Potential.PotentialCardItemCtrl"
},
txtTips = {
sComponentName = "TMP_Text",
sLanguageId = "StarTower_Book_Close_Tip"
},
btnChangeDesc = {
sComponentName = "UIButton",
callback = "OnBtnClick_ChangeDesc"
},
txtDescChange = {
sComponentName = "TMP_Text",
sLanguageId = "Potential_Change_Desc"
},
imgSwitchOn = {},
imgSwitchOff = {}
}
PotentialDetailCtrl._mapEventConfig = {}
function PotentialDetailCtrl:Open()
self._mapNode.btnChangeDesc.gameObject:SetActive(false)
self._mapNode.aniBlur.gameObject:SetActive(true)
local wait = function()
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
self._mapNode.btnChangeDesc.gameObject:SetActive(true)
end
cs_coroutine.start(wait)
self:PlayInAni()
self:Refresh()
end
function PotentialDetailCtrl:PlayInAni()
self._mapNode.goDetail:SetActive(true)
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
end
function PotentialDetailCtrl:PlayOutAni()
self._mapNode.animDetail:Play("goCardDetail_out")
self._mapNode.aniBlur:SetTrigger("tOut")
local nAnimLen = NovaAPI.GetAnimClipLength(self._mapNode.animDetail, {
"goCardDetail_out"
})
self:AddTimer(1, nAnimLen, "Close", true, true, true)
EventManager.Hit(EventId.TemporaryBlockInput, nAnimLen)
end
function PotentialDetailCtrl:Close()
self._mapNode.goDetail:SetActive(false)
EventManager.Hit(EventId.ClosePanel, PanelId.PotentialDetail)
end
function PotentialDetailCtrl:Refresh()
self._mapNode.potentialDetail:SetPotentialItem(self.nId, self.nLevel, nil, self.bSimple, false, self.nAddLv, AllEnum.PotentialCardType.Detial)
self._mapNode.potentialDetail:ChangeWordRaycast(true)
end
function PotentialDetailCtrl:SetSimpleState()
self._mapNode.imgSwitchOff.gameObject:SetActive(not self.bSimple)
self._mapNode.imgSwitchOn.gameObject:SetActive(self.bSimple)
end
function PotentialDetailCtrl:Awake()
self._mapNode.goDetail:SetActive(false)
local tbParam = self:GetPanelParam()
if type(tbParam) == "table" then
self.nId = tbParam[1]
self.nLevel = tbParam[2]
self.nAddLv = tbParam[3]
end
if not self.nLevel then
self.nLevel = 1
end
if not self.nAddLv then
local mapCfg = ConfigTable.GetData("Potential", self.nId)
if mapCfg then
local tbPotentialAddLv = PlayerData.Char:GetCharEnhancedPotential(mapCfg.CharId)
self.nAddLv = tbPotentialAddLv[self.nId] or 0
end
end
end
function PotentialDetailCtrl:OnEnable()
self.bSimple = PlayerData.StarTower:GetPotentialDescSimple()
self:SetSimpleState()
self:Open()
end
function PotentialDetailCtrl:OnDisable()
end
function PotentialDetailCtrl:OnDestroy()
end
function PotentialDetailCtrl:OnBtnClick_Close()
self:PlayOutAni()
end
function PotentialDetailCtrl:OnBtnClick_ChangeDesc()
self.bSimple = not self.bSimple
PlayerData.StarTower:SetPotentialDescSimple(self.bSimple)
self:SetSimpleState()
self._mapNode.potentialDetail:ChangeDesc(self.bSimple)
end
return PotentialDetailCtrl