5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
141 lines
5.0 KiB
Lua
141 lines
5.0 KiB
Lua
local CharTalentInfoTrialCtrl = class("CharTalentInfoTrialCtrl", BaseCtrl)
|
|
local LocalData = require("GameCore.Data.LocalData")
|
|
local newDayTime = UTILS.GetDayRefreshTimeOffset()
|
|
CharTalentInfoTrialCtrl._mapNodeConfig = {
|
|
sv = {sComponentName = "ScrollRect"},
|
|
txtNodeName = {sComponentName = "TMP_Text"},
|
|
txtTitleDesc = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "CharTalent_Title_Desc"
|
|
},
|
|
TMP_Link1 = {
|
|
sNodeName = "txtSkillDesc",
|
|
sComponentName = "TMPHyperLink",
|
|
callback = "OnLinkClick_Word"
|
|
},
|
|
txtSkillDesc = {sComponentName = "TMP_Text"}
|
|
}
|
|
CharTalentInfoTrialCtrl._mapEventConfig = {}
|
|
function CharTalentInfoTrialCtrl:RefreshKey(mapGroup, mapTalent)
|
|
local mapTalentCfg = ConfigTable.GetData("Talent", mapGroup.nKeyTalent)
|
|
local mapGroupCfg = ConfigTable.GetData("TalentGroup", mapGroup.nId)
|
|
if not mapTalentCfg or not mapGroupCfg then
|
|
return
|
|
end
|
|
self.sKeyName = mapTalentCfg.Title
|
|
self.nGroupId = mapGroup.nId
|
|
NovaAPI.SetTMPText(self._mapNode.txtNodeName, mapTalentCfg.Title)
|
|
NovaAPI.SetTMPText(self._mapNode.txtSkillDesc, UTILS.ParseDesc(mapTalentCfg, nil, nil, nil, nil, {
|
|
nCharId = self._panel.nCharId
|
|
}))
|
|
local bActive = mapTalent.tbActiveTalent[mapGroup.nKeyTalent]
|
|
if bActive then
|
|
else
|
|
local nLeft = mapGroupCfg.NodeLimit - mapGroup.nNormalCount
|
|
local mapCharCfg = ConfigTable.GetData_Character(self._panel.nCharId)
|
|
if not mapCharCfg then
|
|
return
|
|
end
|
|
local mapGradeCfg = ConfigTable.GetData("CharGrade", mapCharCfg.Grade)
|
|
if not mapGradeCfg then
|
|
return
|
|
end
|
|
end
|
|
NovaAPI.SetVerticalNormalizedPosition(self._mapNode.sv, 1)
|
|
end
|
|
function CharTalentInfoTrialCtrl:RefreshNormal(nTalentId, mapGroup, mapTalent)
|
|
self.nTalentId = nTalentId
|
|
local mapTalentCfg = ConfigTable.GetData("Talent", nTalentId)
|
|
if not mapTalentCfg then
|
|
return
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtNodeName, mapTalentCfg.Title)
|
|
NovaAPI.SetTMPText(self._mapNode.txtSkillDesc, UTILS.ParseParamDesc(mapTalentCfg.Desc, mapTalentCfg, nil, {
|
|
nCharId = self._panel.nCharId
|
|
}))
|
|
NovaAPI.SetVerticalNormalizedPosition(self._mapNode.sv, 1)
|
|
end
|
|
function CharTalentInfoTrialCtrl:ActiveLayer(active)
|
|
local isSelectAgain = false
|
|
local confirmCallback = function()
|
|
if isSelectAgain then
|
|
local _curTimeStamp = CS.ClientManager.Instance.serverTimeStampWithTimeZone
|
|
local _fixedTimeStamp = _curTimeStamp + newDayTime * 3600
|
|
local _nYear = tonumber(os.date("!%Y", _fixedTimeStamp))
|
|
local _nMonth = tonumber(os.date("!%m", _fixedTimeStamp))
|
|
local _nDay = tonumber(os.date("!%d", _fixedTimeStamp))
|
|
local _nowD = _nYear * 366 + _nMonth * 31 + _nDay
|
|
LocalData.SetPlayerLocalData("TalentActiveLayer_Tips_Time", tostring(_nowD))
|
|
end
|
|
active()
|
|
end
|
|
local againCallback = function(isSelect)
|
|
isSelectAgain = isSelect
|
|
end
|
|
if not self.nLayerCost then
|
|
return
|
|
end
|
|
local mapCharCfg = ConfigTable.GetData_Character(self._panel.nCharId)
|
|
if not mapCharCfg then
|
|
return
|
|
end
|
|
local mapGradeCfg = ConfigTable.GetData("CharGrade", mapCharCfg.Grade)
|
|
if not mapGradeCfg then
|
|
return
|
|
end
|
|
local nGeneralCount = PlayerData.Item:GetItemCountByID(mapGradeCfg.GeneralFragmentId)
|
|
local nFragmentCount = PlayerData.Item:GetItemCountByID(mapCharCfg.FragmentsId)
|
|
local sFragment = ConfigTable.GetData_Item(mapCharCfg.FragmentsId).Title
|
|
local sGeneral = ConfigTable.GetData_Item(mapGradeCfg.GeneralFragmentId).Title
|
|
local sChar = mapCharCfg.Name
|
|
if nFragmentCount >= self.nLayerCost then
|
|
local msg = {
|
|
nType = AllEnum.MessageBox.Confirm,
|
|
sContent = orderedFormat(ConfigTable.GetUIText("CharTalent_ActiveLayerTip_CharFragment"), sFragment, self.nLayerCost, sChar, self.sKeyName),
|
|
callbackConfirm = confirmCallback,
|
|
callbackAgain = againCallback
|
|
}
|
|
EventManager.Hit(EventId.OpenMessageBox, msg)
|
|
elseif self.nLayerCost <= nFragmentCount + nGeneralCount then
|
|
local sTip = ""
|
|
if nFragmentCount == 0 then
|
|
sTip = orderedFormat(ConfigTable.GetUIText("CharTalent_ActiveLayerTip_GeneralFragment"), sGeneral, self.nLayerCost, sChar, self.sKeyName)
|
|
else
|
|
sTip = orderedFormat(ConfigTable.GetUIText("CharTalent_ActiveLayerTip_BothFragment"), sFragment, nFragmentCount, sGeneral, self.nLayerCost - nFragmentCount, sChar, self.sKeyName)
|
|
end
|
|
local msg = {
|
|
nType = AllEnum.MessageBox.Confirm,
|
|
sContent = sTip,
|
|
callbackConfirm = confirmCallback,
|
|
callbackAgain = againCallback
|
|
}
|
|
EventManager.Hit(EventId.OpenMessageBox, msg)
|
|
end
|
|
end
|
|
function CharTalentInfoTrialCtrl:Awake()
|
|
end
|
|
function CharTalentInfoTrialCtrl:OnEnable()
|
|
end
|
|
function CharTalentInfoTrialCtrl:OnDisable()
|
|
end
|
|
function CharTalentInfoTrialCtrl:OnDestroy()
|
|
end
|
|
function CharTalentInfoTrialCtrl:OnBtnClick_Tips(btn, nIndex)
|
|
local mapCharCfg = ConfigTable.GetData_Character(self._panel.nCharId)
|
|
if not mapCharCfg then
|
|
return
|
|
end
|
|
local mapData = {
|
|
nTid = mapCharCfg.FragmentsId,
|
|
bShowDepot = true,
|
|
bShowJumpto = true
|
|
}
|
|
EventManager.Hit(EventId.OpenPanel, PanelId.ItemTips, btn.transform, mapData)
|
|
end
|
|
function CharTalentInfoTrialCtrl:OnLinkClick_Word(link, sWordId)
|
|
UTILS.ClickWordLink(link, sWordId, {
|
|
nCharId = self._panel.nCharId
|
|
})
|
|
end
|
|
return CharTalentInfoTrialCtrl
|