516 lines
No EOL
20 KiB
Lua
516 lines
No EOL
20 KiB
Lua
local XUiPanelSkillDetailsInfo = XClass(nil, "XUiPanelSkillDetailsInfo")
|
||
|
||
-- 触发拖拽前的延时
|
||
local LONG_CLICK_OFFSET = 0.2
|
||
local LONG_PRESS_PARAMS = 500
|
||
local SIGNAL_BAL_MEMBER = 3 --信号球技能(红黄蓝)
|
||
local DescribeType = {
|
||
Title = 1,
|
||
Specific = 2,
|
||
}
|
||
|
||
function XUiPanelSkillDetailsInfo:Ctor(ui, rootUi)
|
||
self.GameObject = ui.gameObject
|
||
self.Transform = ui.transform
|
||
self.RootUi = rootUi
|
||
XTool.InitUiObject(self)
|
||
---@type XCharacterAgency
|
||
local ag = XMVCA:GetAgency(ModuleId.XCharacter)
|
||
self.CharacterAgency = ag
|
||
|
||
self:RegisterUiEvents()
|
||
self:ResetLongPressData()
|
||
self.Attribute.gameObject:SetActiveEx(false)
|
||
self.TxtSkillTitle.gameObject:SetActiveEx(false)
|
||
self.TxtSkillSpecific.gameObject:SetActiveEx(false)
|
||
|
||
self.SkillTag = {}
|
||
self.TxtSkillTitleGo = {}
|
||
self.TxtSkillSpecificGo = {}
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:Refresh(characterId, subSkill, isDetails)
|
||
self.CharacterId = characterId
|
||
self.SubSkill = subSkill
|
||
self.IsDetails = isDetails
|
||
self:RefreshSubSkillInfoPanel(subSkill)
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:RefreshSubSkillInfoPanel(subSkill)
|
||
-- 切换按钮
|
||
local showSwithBtn = subSkill.Level > 0 and XCharacterConfigs.CanSkillSwith(subSkill.SubSkillId)
|
||
self.BtnSwitch.gameObject:SetActiveEx(showSwithBtn)
|
||
|
||
self:RefreshSkillLevel(subSkill)
|
||
self:RefreshSkillView()
|
||
self:RefreshEntryBtn()
|
||
|
||
local min_max = XCharacterConfigs.GetSubSkillMinMaxLevel(self.SubSkillId)
|
||
if (subSkill.Level >= min_max.Max) then
|
||
self.PanelCondition.gameObject:SetActiveEx(false)
|
||
self.PanelConsume.gameObject:SetActiveEx(false)
|
||
self.BtnUpgrade.gameObject:SetActiveEx(false)
|
||
self.BtnUnlock.gameObject:SetActiveEx(false)
|
||
self.PanelMax.gameObject:SetActiveEx(true)
|
||
return
|
||
else
|
||
self.PanelMax.gameObject:SetActiveEx(false)
|
||
end
|
||
|
||
local passCondition = true
|
||
local conditionDes = ""
|
||
local conditions = subSkill.config.ConditionId
|
||
if conditions then
|
||
for _, conditionId in pairs(conditions) do
|
||
if conditionId ~= 0 then
|
||
passCondition, conditionDes = XConditionManager.CheckCondition(conditionId, self.CharacterId)
|
||
if not passCondition then
|
||
break
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
self.PanelConsume.gameObject:SetActiveEx(passCondition)
|
||
self.PanelCondition.gameObject:SetActiveEx(not passCondition)
|
||
self.TxtConditionOk.gameObject:SetActiveEx(passCondition)
|
||
self.TxtConditionBad.gameObject:SetActiveEx(not passCondition)
|
||
|
||
if passCondition then
|
||
self.TxtConditionOk.text = conditionDes
|
||
--消耗技能点
|
||
local showSkillPoint = subSkill.config.UseSkillPoint > 0
|
||
self.PanelSkillPoint.gameObject:SetActiveEx(showSkillPoint)
|
||
if showSkillPoint then
|
||
local isSkillPointMeet = self.CharacterAgency:IsUseItemEnough({ XDataCenter.ItemManager.ItemId.SkillPoint }, { subSkill.config.UseSkillPoint })
|
||
if isSkillPointMeet then
|
||
self.TxtSkillPointOk.text = subSkill.config.UseSkillPoint
|
||
else
|
||
self.TxtSkillPointBad.text = subSkill.config.UseSkillPoint
|
||
end
|
||
local icon = XDataCenter.ItemManager.GetItemIcon(XDataCenter.ItemManager.ItemId.SkillPoint)
|
||
self.PanelSkillPointOk:Find("Icon"):GetComponent("RawImage"):SetRawImage(icon)
|
||
self.PanelSkillPointBad:Find("Icon"):GetComponent("RawImage"):SetRawImage(icon)
|
||
|
||
self.PanelSkillPointBad.gameObject:SetActiveEx(not isSkillPointMeet)
|
||
self.PanelSkillPointOk.gameObject:SetActiveEx(isSkillPointMeet)
|
||
end
|
||
|
||
--消耗螺母
|
||
local showCoin = subSkill.config.UseCoin > 0
|
||
self.PanelCoin.gameObject:SetActiveEx(showCoin)
|
||
if showCoin then
|
||
local isUseCoinMeet = self.CharacterAgency:IsUseItemEnough({ XDataCenter.ItemManager.ItemId.Coin }, { subSkill.config.UseCoin })
|
||
if isUseCoinMeet then
|
||
self.TxtCoinOk.text = subSkill.config.UseCoin
|
||
else
|
||
self.TxtCoinBad.text = subSkill.config.UseCoin
|
||
end
|
||
|
||
local icon = XDataCenter.ItemManager.GetItemIcon(XDataCenter.ItemManager.ItemId.Coin)
|
||
self.PanelCoinOk:Find("Icon"):GetComponent("RawImage"):SetRawImage(icon)
|
||
self.PanelCoinBad:Find("Icon"):GetComponent("RawImage"):SetRawImage(icon)
|
||
|
||
self.PanelCoinBad.gameObject:SetActiveEx(not isUseCoinMeet)
|
||
self.PanelCoinOk.gameObject:SetActiveEx(isUseCoinMeet)
|
||
end
|
||
|
||
if not showCoin and not showSkillPoint then
|
||
self.PanelConsume.gameObject:SetActiveEx(false)
|
||
end
|
||
else
|
||
self.TxtConditionBad.text = conditionDes
|
||
end
|
||
|
||
if (subSkill.Level <= 0) then
|
||
self.BtnUnlock:SetDisable(not passCondition)
|
||
self.BtnUnlock.gameObject:SetActiveEx(true)
|
||
self.BtnUpgrade.gameObject:SetActiveEx(false)
|
||
elseif (subSkill.Level < min_max.Max and subSkill.Level > 0) then
|
||
local canUpdate = self.CharacterAgency:CheckCanUpdateSkill(self.CharacterId, subSkill.SubSkillId, subSkill.Level)
|
||
self.BtnUpgrade:SetDisable(not canUpdate)
|
||
self.BtnUpgrade.gameObject:SetActiveEx(true)
|
||
self.BtnUnlock.gameObject:SetActiveEx(false)
|
||
end
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:RefreshSkillLevel(subSkill)
|
||
self.SubSkillId = subSkill.SubSkillId
|
||
local levelStr = subSkill.Level
|
||
|
||
local addLevel = 0
|
||
local addLevelStr = ""
|
||
local resonanceLevel = self.CharacterAgency:GetResonanceSkillLevel(self.CharacterId, self.SubSkillId)
|
||
local assignLevel = XDataCenter.FubenAssignManager.GetSkillLevel(self.CharacterId, self.SubSkillId)
|
||
|
||
if (resonanceLevel and resonanceLevel > 0) then
|
||
addLevel = addLevel + resonanceLevel
|
||
end
|
||
|
||
if (assignLevel and assignLevel > 0) then
|
||
addLevel = addLevel + assignLevel
|
||
end
|
||
|
||
if addLevel ~= 0 then
|
||
addLevelStr = addLevelStr .. CS.XTextManager.GetText("CharacterSkillLevelDetail", addLevel)
|
||
levelStr = levelStr .. addLevelStr
|
||
self.BtnDetails.gameObject:SetActiveEx(true)
|
||
else
|
||
self.BtnDetails.gameObject:SetActiveEx(false)
|
||
end
|
||
|
||
self.SubSkillLevel = subSkill.Level + addLevel
|
||
self.GradeConfig = XCharacterConfigs.GetSkillGradeDesConfig(self.SubSkillId, self.SubSkillLevel)
|
||
self.TxtSkillLevel.text = levelStr
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:RefreshSkillView()
|
||
local configDes = self.GradeConfig
|
||
-- 技能名称
|
||
self.TxtSkillName.text = configDes.Name
|
||
-- 技能类型
|
||
self.TxtSkillType.text = configDes.TypeDes and CSXTextManagerGetText("CharacterSkillTypeText", configDes.TypeDes) or ""
|
||
-- 技能图标
|
||
local skillType = XCharacterConfigs.GetSkillType(self.SubSkillId)
|
||
local isSignalBal = skillType <= SIGNAL_BAL_MEMBER
|
||
self.ImgSkillPointIcon:SetRawImage(configDes.Icon)
|
||
self.ImgBlueBall:SetRawImage(configDes.Icon)
|
||
self.ImgSkillPointIcon.gameObject:SetActiveEx(not isSignalBal)
|
||
self.ImgBlueBall.gameObject:SetActiveEx(isSignalBal)
|
||
-- 技能标签
|
||
for index, tag in pairs(configDes.Tag or {}) do
|
||
local grid = self.SkillTag[index]
|
||
if not grid then
|
||
grid = XUiHelper.Instantiate(self.Attribute, self.PanelAttribute)
|
||
self.SkillTag[index] = grid
|
||
end
|
||
local tagUi = {}
|
||
XTool.InitUiObjectByUi(tagUi, grid)
|
||
tagUi.Name.text = tag
|
||
grid.gameObject:SetActiveEx(true)
|
||
end
|
||
for i = #configDes.Tag + 1, #self.SkillTag do
|
||
self.SkillTag[i].gameObject:SetActiveEx(false)
|
||
end
|
||
-- 技能描述
|
||
self:RefreshSkillDescribe(self.IsDetails)
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:RefreshSkillDescribe(isDetails)
|
||
-- 隐藏
|
||
for _, go in pairs(self.TxtSkillTitleGo) do
|
||
go:SetActiveEx(false)
|
||
end
|
||
for _, go in pairs(self.TxtSkillSpecificGo) do
|
||
go:SetActiveEx(false)
|
||
end
|
||
-- 显示
|
||
local messageDes = {}
|
||
if isDetails then
|
||
messageDes = self.GradeConfig.SpecificDes
|
||
else
|
||
messageDes = self.GradeConfig.BriefDes
|
||
end
|
||
for index, message in pairs(messageDes or {}) do
|
||
local title = self.GradeConfig.Title[index]
|
||
if title then
|
||
self:SetTextInfo(DescribeType.Title, index, title)
|
||
end
|
||
self:SetTextInfo(DescribeType.Specific, index, message)
|
||
end
|
||
-- 每次刷新技能描述时,都从最开头进行显示
|
||
if self.GridSkillInfo then
|
||
self.GridSkillInfo.verticalNormalizedPosition = 1
|
||
end
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:SetTextInfo(txtType, index, info)
|
||
local txtSkillGo = {}
|
||
local target
|
||
if txtType == DescribeType.Title then
|
||
txtSkillGo = self.TxtSkillTitleGo
|
||
target = self.TxtSkillTitle.gameObject
|
||
else
|
||
txtSkillGo = self.TxtSkillSpecificGo
|
||
target = self.TxtSkillSpecific.gameObject
|
||
end
|
||
local txtGo = txtSkillGo[index]
|
||
if not txtGo then
|
||
txtGo = XUiHelper.Instantiate(target, self.PanelReward)
|
||
txtSkillGo[index] = txtGo
|
||
end
|
||
txtGo:SetActiveEx(true)
|
||
local goTxt = txtGo:GetComponent("Text")
|
||
goTxt.text = XUiHelper.ConvertLineBreakSymbol(info)
|
||
txtGo.transform:SetAsLastSibling()
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:RefreshEntryBtn()
|
||
if not XTool.IsNumberValid(self.SubSkillId) then
|
||
self.BtnNounParsing.gameObject:SetActiveEx(false)
|
||
return
|
||
end
|
||
|
||
self.EntryList = XCharacterConfigs.GetSkillGradeDesConfigEntryList(self.SubSkillId, self.SubSkillLevel)
|
||
if XTool.IsTableEmpty(self.EntryList) then
|
||
self.BtnNounParsing.gameObject:SetActiveEx(false)
|
||
return
|
||
end
|
||
|
||
self.BtnNounParsing.gameObject:SetActiveEx(true)
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:CheckUpgradeSubSkill()
|
||
local subSkill = self.SubSkill
|
||
local conditions = subSkill.config.ConditionId
|
||
if not conditions then
|
||
return true
|
||
end
|
||
|
||
for _, conditionId in pairs(conditions) do
|
||
local passCondition
|
||
local conditionDes
|
||
if conditionId ~= 0 then
|
||
passCondition, conditionDes = XConditionManager.CheckCondition(conditionId, self.CharacterId)
|
||
if not passCondition then
|
||
XUiManager.TipMsg(conditionDes)
|
||
return false
|
||
end
|
||
end
|
||
end
|
||
|
||
if (not self.CharacterAgency:IsUseItemEnough(XDataCenter.ItemManager.ItemId.SkillPoint, subSkill.config.UseSkillPoint)) then
|
||
XUiManager.TipText("CharacterUngradeSkillSkillPointNotEnough")
|
||
return false
|
||
end
|
||
|
||
return true
|
||
end
|
||
|
||
--region 按钮相关
|
||
|
||
function XUiPanelSkillDetailsInfo:RegisterUiEvents()
|
||
XUiHelper.RegisterClickEvent(self, self.BtnDetails, self.OnBtnDetails)
|
||
XUiHelper.RegisterClickEvent(self, self.BtnNounParsing, self.OnBtnNounParsing)
|
||
XUiHelper.RegisterClickEvent(self, self.BtnSwitch, self.OnBtnSwitchClick)
|
||
XUiHelper.RegisterClickEvent(self, self.BtnUnlock, self.OnBtnUnlockClick)
|
||
XUiHelper.RegisterClickEvent(self, self.BtnSkillPoint, self.OnBtnSkillPointClick)
|
||
XUiHelper.RegisterClickEvent(self, self.BtnCoin, self.OnBtnCoinClick)
|
||
|
||
self:RegisterLongPressLevelUp()
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:OnBtnNounParsing()
|
||
if XTool.IsTableEmpty(self.EntryList) then return end
|
||
|
||
if not XLuaUiManager.IsUiShow("UiCharSkillOtherParsing") then
|
||
XLuaUiManager.Open("UiCharSkillOtherParsing", self.EntryList)
|
||
end
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:OnBtnDetails()
|
||
self.RootUi:ShowLevelDetail(self.SubSkillId)
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:OnBtnSwitchClick()
|
||
local addLevel = self.CharacterAgency:GetSkillPlusLevel(self.CharacterId, self.SubSkillId)
|
||
local totalLevel = self.SubSkill.Level + addLevel
|
||
XLuaUiManager.Open("UiCharacterSkillSwich", self.SubSkillId, totalLevel, function()
|
||
self.RootUi:RefreshData()
|
||
end)
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:OnBtnUnlockClick()
|
||
if (not self:CheckUpgradeSubSkill()) then
|
||
return
|
||
end
|
||
|
||
if XTool.IsTableEmpty(self.SubSkill) or not XDataCenter.ItemManager.DoNotEnoughBuyAsset(XDataCenter.ItemManager.ItemId.Coin,
|
||
self.SubSkill.config.UseCoin,
|
||
1,
|
||
function()
|
||
self:OnBtnUnlockClick()
|
||
end,
|
||
"CharacterUngradeSkillCoinNotEnough") then
|
||
return
|
||
end
|
||
|
||
self.CharacterAgency:UnlockSubSkill(self.SubSkillId, self.CharacterId, function()
|
||
-- XEventManager.DispatchEvent(XEventId.EVENT_CHARACTER_INCREASE_TIP, CS.XTextManager.GetText("CharacterUnlockSkillComplete"))
|
||
XUiManager.PopupLeftTip(CS.XTextManager.GetText("CharacterUnlockSkillComplete"))
|
||
self.RootUi:RefreshData()
|
||
end)
|
||
end
|
||
|
||
--endregion
|
||
|
||
--region 技能长按功能
|
||
|
||
function XUiPanelSkillDetailsInfo:ResetLongPressData()
|
||
self.ClientShowLevelParam = 0 --要升级到的等级
|
||
self.ClientLongPressIncreaseLevel = 0 --等级变量依据长按时间增加
|
||
self.LongPressCostCoin = 0
|
||
self.LongPressCostSkillPoint = 0
|
||
self.NotMaskShow = true
|
||
self.PanelMask.gameObject:SetActiveEx(false)
|
||
end
|
||
|
||
--技能长按
|
||
function XUiPanelSkillDetailsInfo:RegisterLongPressLevelUp()
|
||
-- 添加长按事件
|
||
local btnClickPointer = self.BtnUpgrade.gameObject:GetComponent("XUiPointer")
|
||
if not btnClickPointer then
|
||
btnClickPointer = self.BtnUpgrade.gameObject:AddComponent(typeof(CS.XUiPointer))
|
||
end
|
||
self.Clicker = XUiButtonLongClick.New(btnClickPointer, math.floor(1000/ CS.XGame.ClientConfig:GetInt("LongPressPerLevelUp")), self, self.OnBtnUpgradeClick, self.OnLongPress, function()
|
||
self:OnLongPressUp()
|
||
end, false, nil,true,true)
|
||
self.Clicker:SetTriggerOffset(LONG_CLICK_OFFSET)
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:OnBtnUpgradeClick(ClientLongPressIncreaseLevel)
|
||
if not self.NotMaskShow then
|
||
self.NotMaskShow = true
|
||
self.PanelMask.gameObject:SetActiveEx(false)
|
||
end
|
||
if not ClientLongPressIncreaseLevel then --过滤掉不正确的弹窗
|
||
if (not self:CheckUpgradeSubSkill())then
|
||
return
|
||
end
|
||
end
|
||
|
||
if XTool.IsTableEmpty(self.SubSkill) then
|
||
return
|
||
end
|
||
|
||
if not XDataCenter.ItemManager.DoNotEnoughBuyAsset(XDataCenter.ItemManager.ItemId.Coin,
|
||
self.SubSkill.config.UseCoin,
|
||
1,
|
||
function()
|
||
self:OnBtnUpgradeClick()
|
||
end,
|
||
"CharacterUngradeSkillCoinNotEnough") then
|
||
return
|
||
end
|
||
self.CharacterAgency:UpgradeSubSkillLevel(self.CharacterId, self.SubSkillId, function()
|
||
-- XEventManager.DispatchEvent(XEventId.EVENT_CHARACTER_INCREASE_TIP, CS.XTextManager.GetText("CharacterUngradeSkillComplete"))
|
||
if not self.RootUi.GameObject or XTool.UObjIsNil(self.RootUi.GameObject) then
|
||
return
|
||
end
|
||
XUiManager.PopupLeftTip(CS.XTextManager.GetText("CharacterUngradeSkillComplete"))
|
||
self.RootUi:RefreshData()
|
||
end, ClientLongPressIncreaseLevel)
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:OnLongPress(pressingTime)
|
||
if self.NotMaskShow then --增加mask,阻止长按时候玩家的其他操作
|
||
self.NotMaskShow = false
|
||
self.PanelMask.gameObject:SetActiveEx(true)
|
||
end
|
||
local clientShowLevelParam = 0
|
||
local minMax
|
||
if pressingTime > LONG_CLICK_OFFSET * LONG_PRESS_PARAMS then
|
||
--控制延时刷新,避免点击一次就刷新技能升级预览
|
||
local originalLevel = self.CharacterAgency:GetSkillLevel(self.SubSkillId)
|
||
minMax = XCharacterConfigs.GetSubSkillMinMaxLevel(self.SubSkillId)
|
||
self.ClientLongPressIncreaseLevel = self.ClientLongPressIncreaseLevel + 1
|
||
clientShowLevelParam = self.ClientLongPressIncreaseLevel + originalLevel
|
||
local canUpdate = self.CharacterAgency:CheckCanUpdateSkillMultiLevel(self.CharacterId, self.SubSkillId, originalLevel, clientShowLevelParam - 1)--当前等级的消耗是升级到下一级的,所以判断升级的时候-1
|
||
if canUpdate then
|
||
if (clientShowLevelParam > minMax.Max) then
|
||
clientShowLevelParam = minMax.Max
|
||
end
|
||
self.ClientShowLevelParam = clientShowLevelParam
|
||
self.RootUi:RefreshData(self.ClientShowLevelParam, self.SubSkill)
|
||
else
|
||
return true, true --回调参数即使时间短也要加弹窗提示
|
||
end
|
||
end
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:OnLongPressUp()
|
||
self.NotMaskShow = true
|
||
self.PanelMask.gameObject:SetActiveEx(false)
|
||
if XTool.IsTableEmpty(self.SubSkill) then
|
||
return
|
||
end
|
||
local originalLevel = self.CharacterAgency:GetSkillLevel(self.SubSkillId)
|
||
local minMax = XCharacterConfigs.GetSubSkillMinMaxLevel(self.SubSkillId)
|
||
for i = originalLevel, self.ClientShowLevelParam - 1 do --当前等级的消耗是升级到下一级的需要减一操作
|
||
local gradeConfig = XCharacterConfigs.GetSkillGradeConfig(self.SubSkillId, i)
|
||
if not gradeConfig then break end
|
||
self.LongPressCostCoin = self.LongPressCostCoin + gradeConfig.UseCoin
|
||
self.LongPressCostSkillPoint = self.LongPressCostSkillPoint + gradeConfig.UseSkillPoint
|
||
end
|
||
if self.LongPressCostCoin <= 0 and self.LongPressCostSkillPoint <= 0 then --无消耗就无升级
|
||
return
|
||
end
|
||
local textParam = "LongPressLevelUpSkill"
|
||
if minMax and minMax.Max == self.ClientShowLevelParam then
|
||
textParam = "LongPressLevelUpSkillMax"
|
||
end
|
||
local content = CSXTextManagerGetText(textParam, self.LongPressCostCoin, self.LongPressCostSkillPoint, self.ClientShowLevelParam)
|
||
local tempClientShowLevelParam = self.ClientShowLevelParam
|
||
local sureCallBack = function()
|
||
self:OnBtnUpgradeClick(tempClientShowLevelParam - originalLevel)
|
||
end
|
||
|
||
local closeCallback = function()
|
||
self.RootUi:RefreshData()
|
||
end
|
||
self:ResetLongPressData()
|
||
local title = CS.XTextManager.GetText("TipTitle")
|
||
XUiManager.DialogTip(title, content, XUiManager.DialogType.Normal, closeCallback, sureCallBack)
|
||
end
|
||
|
||
--endregion
|
||
|
||
function XUiPanelSkillDetailsInfo:OnDisable()
|
||
self.Clicker:Reset()
|
||
self:ResetLongPressData()
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:OnBtnSkillPointClick()
|
||
XLuaUiManager.Open("UiTip", XDataCenter.ItemManager.ItemId.SkillPoint)
|
||
end
|
||
|
||
function XUiPanelSkillDetailsInfo:OnBtnCoinClick()
|
||
local itemId = XDataCenter.ItemManager.ItemId.Coin
|
||
|
||
if itemId == XDataCenter.ItemManager.ItemId.FreeGem then
|
||
XLuaUiManager.Open("UiPurchase", XPurchaseConfigs.TabsConfig.HK)
|
||
elseif itemId == XDataCenter.ItemManager.ItemId.HongKa then
|
||
if XLuaUiManager.IsUiShow("UiMain") then
|
||
XUiHelper.RecordBuriedSpotTypeLevelOne(XGlobalVar.BtnBuriedSpotTypeLevelOne.BtnUiMainBtnAddFreeGem)
|
||
end
|
||
XLuaUiManager.Open("UiPurchase", XPurchaseConfigs.TabsConfig.Pay)
|
||
elseif itemId == XDataCenter.ItemManager.ItemId.DoubleTower then
|
||
--展示物品详情
|
||
local item = XDataCenter.ItemManager.GetItem(itemId)
|
||
local data = {
|
||
Id = itemId,
|
||
Count = item ~= nil and tostring(item.Count) or "0"
|
||
}
|
||
if self.QueryFunc then
|
||
data = XTool.Clone(XGoodsCommonManager.GetGoodsShowParamsByTemplateId(itemId))
|
||
data.IsTempItemData = true
|
||
data.Count = self.QueryFunc(item) or data.Count
|
||
data.Description = XGoodsCommonManager.GetGoodsDescription(itemId)
|
||
data.WorldDesc = XGoodsCommonManager.GetGoodsWorldDesc(itemId)
|
||
end
|
||
XLuaUiManager.Open("UiTip", data, self.HideSkipBtn)
|
||
elseif itemId == XDataCenter.PivotCombatManager.GetActivityCoinId()
|
||
or itemId == XDataCenter.ItemManager.ItemId.SkillPoint
|
||
or itemId == XMazeConfig.GetTicketItemId()
|
||
then
|
||
local id = itemId
|
||
XLuaUiManager.Open("UiTip", id)
|
||
elseif not XDataCenter.ItemManager.GetBuyAssetTemplate(itemId, 1, true) then -- 没有购买数据的话就打开详情
|
||
local id = itemId
|
||
XLuaUiManager.Open("UiTip", id)
|
||
else
|
||
XUiManager.OpenBuyAssetPanel(itemId)
|
||
end
|
||
end
|
||
|
||
return XUiPanelSkillDetailsInfo |