658 lines
21 KiB
Lua
658 lines
21 KiB
Lua
|
|
local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
|
|
local PANEL_ID = PanelId.WeaponExhibitPotential
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl = HL.Class('WeaponExhibitPotentialCtrl', uiCtrl.UICtrl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.s_messages = HL.StaticField(HL.Table) << {
|
|
[MessageConst.ON_WEAPON_REFINE] = 'OnWeaponRefine',
|
|
[MessageConst.ON_GEM_DETACH] = 'OnGemDetach',
|
|
[MessageConst.ON_ITEM_LOCKED_STATE_CHANGED] = 'OnItemLockedStateChanged',
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.m_weaponInfo = HL.Field(HL.Table)
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.m_bottomWeaponCellCache =HL.Field(HL.Forward("UIListCache"))
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.m_lastClickItemId = HL.Field(HL.Any)
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.m_lastClickItemInfo = HL.Field(HL.Table)
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.m_costItemInfoDict = HL.Field(HL.Table)
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.m_isFocusJump = HL.Field(HL.Boolean) << false
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.m_effectCor = HL.Field(HL.Thread)
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.m_selectMaterialsInputBindingId = HL.Field(HL.Number) << -1
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.m_materialsDecreaseCountInputBindingId = HL.Field(HL.Number) << -1
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.m_naviMaterialCell = HL.Field(HL.Any)
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.m_naviMaterialItemInfo = HL.Field(HL.Table)
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.OnItemLockedStateChanged = HL.Method(HL.Table) << function(self, arg)
|
|
local itemId, instId, isLock = unpack(arg)
|
|
if not isLock then
|
|
return
|
|
end
|
|
|
|
if not instId or instId <= 0 then
|
|
return
|
|
end
|
|
|
|
local costItemInfoDict = self.m_costItemInfoDict
|
|
if costItemInfoDict[instId] ~= nil then
|
|
Notify(MessageConst.SHOW_TOAST, Language.LUA_WEAPON_EXHIBIT_ITEM_LOCK_TOAST)
|
|
self:_RemoveFromCostItemDict(costItemInfoDict[instId])
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.OnGemDetach = HL.Method(HL.Table) << function(self, arg)
|
|
self.view.commonWeaponList:RefreshAllCells()
|
|
end
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.OnWeaponRefine = HL.Method(HL.Table) << function(self, arg)
|
|
local weaponInfo = self.m_weaponInfo
|
|
local weaponInst = CharInfoUtils.getWeaponByInstId(weaponInfo.weaponInstId)
|
|
local maxRefineLv = CS.Beyond.Gameplay.WeaponUtil.GetWeaponMaxRefineLv(weaponInfo.weaponTemplateId)
|
|
local weaponExhibitInfo = CharInfoUtils.getWeaponExhibitBasicInfo(weaponInfo.weaponTemplateId, weaponInfo.weaponInstId)
|
|
|
|
self.m_costItemInfoDict = {}
|
|
|
|
self:_ToggleExpandNode(false, true)
|
|
if weaponInst.refineLv >= maxRefineLv then
|
|
AudioAdapter.PostEvent("Au_UI_Event_WeaponPotentialLevelMax")
|
|
self.m_effectCor = self:_ClearCoroutine(self.m_effectCor)
|
|
self.m_effectCor = self:_StartCoroutine(function()
|
|
self:_RefreshPotentialPanelBasic(weaponExhibitInfo)
|
|
self.view.weaponSkillNodeBefore.gameObject:SetActive(false)
|
|
self.view.potentialNode:Play("weaponpotential_fullfinsh_in")
|
|
coroutine.wait(0.3)
|
|
self:_RefreshWeaponPotentialStar(weaponExhibitInfo.weaponInst.templateId, weaponExhibitInfo.weaponInst.instId)
|
|
end)
|
|
else
|
|
AudioAdapter.PostEvent("Au_UI_Event_WeaponPotentialLevelUp")
|
|
self.m_effectCor = self:_StartCoroutine(function()
|
|
self.view.potentialAfter.view.animation:Play("weaponexhibitpotential_finishglow_break")
|
|
self:_RefreshPotentialPanelBasic(weaponExhibitInfo)
|
|
self.view.potentialAfter:InitWeaponPotentialStar(weaponInst.refineLv, {
|
|
showMaxPotentialHint = false,
|
|
fromLv = weaponInst.refineLv
|
|
})
|
|
coroutine.wait(0.2)
|
|
self.view.potentialBefore:InitWeaponPotentialStar(weaponInst.refineLv, {
|
|
showCurLevelTransition = true,
|
|
showMaxPotentialHint = false,
|
|
fromLv = weaponInst.refineLv
|
|
})
|
|
end)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
|
|
self:_InitActionEvent()
|
|
|
|
self.m_weaponInfo = arg.weaponInfo
|
|
self.m_isFocusJump = arg.isFocusJump == true
|
|
end
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._InitActionEvent = HL.Method() << function(self)
|
|
self.view.m_bottomWeaponCellCache = UIUtils.genCellCache(self.view.listCellWeaponUpgrade)
|
|
self.view.btnBack.onClick:AddListener(function()
|
|
if UIManager:IsShow(PanelId.ItemTips) then
|
|
Notify(MessageConst.HIDE_ITEM_TIPS)
|
|
end
|
|
|
|
if self.m_isFocusJump then
|
|
Notify(MessageConst.WEAPON_EXHIBIT_BLEND_EXIT, {
|
|
finishCallback = function()
|
|
PhaseManager:ExitPhaseFast(PhaseId.WeaponInfo)
|
|
end
|
|
})
|
|
self:PlayAnimationOut()
|
|
return
|
|
end
|
|
|
|
self:Notify(MessageConst.WEAPON_EXHIBIT_PAGE_CHANGE, {
|
|
pageType = UIConst.WEAPON_EXHIBIT_PAGE_TYPE.OVERVIEW,
|
|
})
|
|
end)
|
|
self.view.btnEmpty.onClick:AddListener(function()
|
|
self:_ToggleExpandNode(false, DeviceInfo.usingController)
|
|
end)
|
|
self.view.btnLevelUp.onClick:AddListener(function()
|
|
if not self.m_costItemInfoDict or lume.count(self.m_costItemInfoDict) == 0 then
|
|
self:Notify(MessageConst.SHOW_TOAST, Language.LUA_WEAPON_EXHIBIT_POTENTIAL_EMPTY_INGREDIENT)
|
|
return
|
|
end
|
|
|
|
local costWeapons = {}
|
|
local costItem2Count = {}
|
|
for i, costItemInfo in pairs(self.m_costItemInfoDict) do
|
|
if costItemInfo.isWeapon then
|
|
table.insert(costWeapons, costItemInfo.itemInst.instId)
|
|
else
|
|
local itemId = costItemInfo.id
|
|
costItem2Count[itemId] = (costItem2Count[itemId] or 0) + costItemInfo.count
|
|
end
|
|
end
|
|
local addRefineLv = self:_GetCurAddRefineLv()
|
|
local weaponInst = CharInfoUtils.getWeaponByInstId(self.m_weaponInfo.weaponInstId)
|
|
GameInstance.player.charBag:WeaponRefine(self.m_weaponInfo.weaponInstId, weaponInst.refineLv + addRefineLv, costItem2Count, costWeapons)
|
|
end)
|
|
self.m_selectMaterialsInputBindingId = self:BindInputPlayerAction("char_info_weapon_select_materials", function()
|
|
self:_ToggleExpandNode(true)
|
|
end, self.view.leftNodeInputGroup.groupId)
|
|
self.m_materialsDecreaseCountInputBindingId = self:BindInputPlayerAction("char_info_weapon_materials_decrease_count", function()
|
|
self:_OnItemBtnMinusClicked(self.m_naviMaterialCell, self.m_naviMaterialItemInfo)
|
|
end)
|
|
InputManagerInst:ToggleBinding(self.m_materialsDecreaseCountInputBindingId, false)
|
|
self.view.controllerHintPlaceholder:InitControllerHintPlaceholder({self.view.inputGroup.groupId})
|
|
UIUtils.bindHyperlinkPopup(self, "WeaponSkill", self.view.leftNodeInputGroup.groupId)
|
|
end
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl.OnShow = HL.Override() << function(self)
|
|
local weaponInfo = self.m_weaponInfo
|
|
local weaponExhibitInfo = CharInfoUtils.getWeaponExhibitBasicInfo(weaponInfo.weaponTemplateId, weaponInfo.weaponInstId)
|
|
|
|
self.m_costItemInfoDict = {}
|
|
|
|
self:_RefreshPotentialPanelBasic(weaponExhibitInfo, true)
|
|
self:_RefreshWeaponPotentialStar(weaponExhibitInfo.weaponInst.templateId, weaponExhibitInfo.weaponInst.instId)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._RefreshPotentialPanelBasic = HL.Method(HL.Table, HL.Opt(HL.Boolean)) << function(self, weaponExhibitInfo, isInit)
|
|
self.view.title.text = string.format(Language.LUA_WEAPON_EXHIBIT_POTENTIAL_TITLE, weaponExhibitInfo.itemCfg.name)
|
|
self.view.expandNode.gameObject:SetActive(false)
|
|
self:_RefreshSkillNode(weaponExhibitInfo.weaponInst.templateId, weaponExhibitInfo.weaponInst.instId, isInit == true)
|
|
self:_RefreshButtonNode(weaponExhibitInfo)
|
|
self:_RefreshCommonItemList(weaponExhibitInfo)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._RefreshButtonNode = HL.Method(HL.Table) << function(self, weaponExhibitInfo)
|
|
local isMaxPotential = weaponExhibitInfo.weaponInst.refineLv >= UIConst.CHAR_MAX_POTENTIAL
|
|
if isMaxPotential then
|
|
self.view.btnLevelUp.gameObject:SetActive(false)
|
|
self.view.upgradeNode.gameObject:SetActive(false)
|
|
return
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._RefreshCommonItemList = HL.Method(HL.Table) << function(self, weaponExhibitInfo)
|
|
self.view.commonWeaponList:InitCommonItemList({
|
|
listType = UIConst.COMMON_ITEM_LIST_TYPE.WEAPON_EXHIBIT_POTENTIAL,
|
|
filter_templateId = weaponExhibitInfo.weaponInst.templateId,
|
|
filter_not_instId = weaponExhibitInfo.weaponInst.instId,
|
|
filter_not_equipped = true,
|
|
filter_not_maxPotential = true,
|
|
|
|
onClickItem = function(args)
|
|
local itemInfo = args.itemInfo
|
|
local curCell = args.curCell
|
|
local nextCell = args.nextCell
|
|
|
|
self:_OnClickExpandCostItemCell(itemInfo, args.realClick)
|
|
|
|
if curCell then
|
|
end
|
|
|
|
if nextCell then
|
|
self:_RefreshWeaponCellAddOn(nextCell, itemInfo)
|
|
end
|
|
end,
|
|
refreshItemAddOn = function(cell, itemInfo)
|
|
self:_RefreshWeaponCellAddOn(cell, itemInfo)
|
|
end,
|
|
onItemIsNaviTargetChanged = function(cell, itemInfo, isTarget)
|
|
self:_OnItemIsNaviTargetChanged(cell, itemInfo, isTarget)
|
|
end,
|
|
clickItemControllerHintText = Language.ui_weapon_controller_Increase_materials,
|
|
})
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._RefreshWeaponCellAddOn = HL.Method(HL.Any, HL.Opt(HL.Table)) << function(self, cell, itemInfo)
|
|
cell.emptyNode.onClick:RemoveAllListeners()
|
|
cell.emptyNode.onClick:AddListener(function()
|
|
self:_ToggleExpandNode(true)
|
|
end)
|
|
|
|
|
|
if itemInfo == nil then
|
|
cell.selectNode.gameObject:SetActive(false)
|
|
cell.multiSelectNode.gameObject:SetActive(false)
|
|
cell.emptyNode.gameObject:SetActive(true)
|
|
return
|
|
end
|
|
|
|
cell.btnMinus.onClick:RemoveAllListeners()
|
|
cell.btnMinus.onClick:AddListener(function()
|
|
self:_OnItemBtnMinusClicked(cell, itemInfo)
|
|
end)
|
|
|
|
cell.emptyNode.gameObject:SetActive(false)
|
|
|
|
cell.selectNode.gameObject:SetActive(itemInfo.count ~= nil and itemInfo.count > 0)
|
|
cell.multiSelectNode.gameObject:SetActive(not itemInfo.isWeapon)
|
|
cell.selectCount.text = itemInfo.count
|
|
|
|
if cell == self.m_naviMaterialCell then
|
|
InputManagerInst:ToggleBinding(self.m_materialsDecreaseCountInputBindingId, itemInfo.count and itemInfo.count > 0)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._OnItemBtnMinusClicked = HL.Method(HL.Any, HL.Table) << function(self, cell, itemInfo)
|
|
self:_RefreshWeaponCellAddOn(cell, itemInfo)
|
|
self:_RemoveFromCostItemDict(itemInfo, 1)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._OnItemIsNaviTargetChanged = HL.Method(HL.Any, HL.Table, HL.Boolean) << function(self, cell, itemInfo, isTarget)
|
|
if isTarget and cell.gameObject.activeSelf then
|
|
InputManagerInst:ToggleBinding(self.m_materialsDecreaseCountInputBindingId, itemInfo.count and itemInfo.count > 0)
|
|
self.m_naviMaterialCell = cell
|
|
self.m_naviMaterialItemInfo = itemInfo
|
|
|
|
Notify(MessageConst.SHOW_ITEM_TIPS, {
|
|
transform = self.view.expandNode.tipPos,
|
|
itemId = itemInfo.itemCfg.id,
|
|
instId = itemInfo.indexId,
|
|
noJump = true,
|
|
autoClose = false,
|
|
isSideTips = true,
|
|
posType = UIConst.UI_TIPS_POS_TYPE.RightMid,
|
|
})
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._OnClickExpandCostItemCell = HL.Method(HL.Table, HL.Boolean) << function(self, costItemInfo, realClick)
|
|
if not realClick then
|
|
return
|
|
end
|
|
|
|
if self.m_lastClickItemId ~= costItemInfo.indexId and not DeviceInfo.usingController then
|
|
Notify(MessageConst.SHOW_ITEM_TIPS, {
|
|
transform = self.view.expandNode.tipPos,
|
|
itemId = costItemInfo.itemCfg.id,
|
|
instId = costItemInfo.instId,
|
|
noJump = true,
|
|
autoClose = false,
|
|
isSideTips = true,
|
|
posType = UIConst.UI_TIPS_POS_TYPE.RightMid,
|
|
})
|
|
end
|
|
|
|
self.m_lastClickItemId = costItemInfo.indexId
|
|
self.m_lastClickItemInfo = costItemInfo
|
|
|
|
self:_AddIntoCostItemDict(costItemInfo, 1)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._AddIntoCostItemDict = HL.Method(HL.Table, HL.Number) << function(self, itemInfo, count)
|
|
local weaponInfo = self.m_weaponInfo
|
|
|
|
self:_TryAddIntoCostItemDict(itemInfo, count)
|
|
|
|
self:_RefreshBottomCostItem(true)
|
|
self:_RefreshSkillNode(weaponInfo.weaponTemplateId, weaponInfo.weaponInstId)
|
|
self:_RefreshWeaponPotentialStar(weaponInfo.weaponTemplateId, weaponInfo.weaponInstId)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._RemoveFromCostItemDict = HL.Method(HL.Table, HL.Opt(HL.Number)) << function(self, itemInfo, count)
|
|
local costItemInfoDict = self.m_costItemInfoDict
|
|
local weaponInfo = self.m_weaponInfo
|
|
|
|
local id = itemInfo.indexId
|
|
itemInfo.count = 0
|
|
|
|
if costItemInfoDict[id] and itemInfo.count <= 0 then
|
|
costItemInfoDict[id] = nil
|
|
end
|
|
|
|
self:_RefreshBottomCostItem(true)
|
|
self:_RefreshSkillNode(weaponInfo.weaponTemplateId, weaponInfo.weaponInstId)
|
|
self:_RefreshWeaponPotentialStar(weaponInfo.weaponTemplateId, weaponInfo.weaponInstId)
|
|
self.view.commonWeaponList:RefreshCellById(itemInfo.indexId)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._TryAddIntoCostItemDict = HL.Method(HL.Table, HL.Number) << function(self, itemInfo, count)
|
|
local curCount = itemInfo.count or 0
|
|
local nextCount = curCount + count
|
|
|
|
if count <= 0 then
|
|
return nextCount
|
|
end
|
|
|
|
local isLock = itemInfo.isWeapon and
|
|
GameInstance.player.inventory:IsItemLocked(Utils.getCurrentScope(), itemInfo.itemInst.templateId, itemInfo.itemInst.instId)
|
|
if isLock then
|
|
self:Notify(MessageConst.SHOW_TOAST, Language.LUA_WEAPON_EXHIBIT_UPGRADE_WEAPON_LOCKED)
|
|
return
|
|
end
|
|
|
|
local addRefineLv
|
|
if itemInfo.isWeapon then
|
|
local addRefineWeaponInst = CharInfoUtils.getWeaponByInstId(itemInfo.instId)
|
|
addRefineLv = addRefineWeaponInst.refineLv + 1
|
|
else
|
|
addRefineLv = 1
|
|
end
|
|
|
|
|
|
local refineWeaponInst = CharInfoUtils.getWeaponByInstId(self.m_weaponInfo.weaponInstId)
|
|
local maxRefineLv = CS.Beyond.Gameplay.WeaponUtil.GetWeaponMaxRefineLv(refineWeaponInst.templateId)
|
|
|
|
local costItemInfoDict = self.m_costItemInfoDict
|
|
local alreadyAddRefineLv = self:_GetCurAddRefineLv()
|
|
|
|
if alreadyAddRefineLv == maxRefineLv - refineWeaponInst.refineLv then
|
|
self:Notify(MessageConst.SHOW_TOAST, Language.LUA_WEAPON_EXHIBIT_POTENTIAL_MAX_TOAST)
|
|
return
|
|
end
|
|
|
|
local newRefineLv = refineWeaponInst.refineLv + addRefineLv + alreadyAddRefineLv
|
|
|
|
if newRefineLv > maxRefineLv then
|
|
self:Notify(MessageConst.SHOW_TOAST, Language.LUA_WEAPON_REFINE_OVERFLOW)
|
|
return
|
|
end
|
|
|
|
local hasGemAttached = itemInfo.isWeapon and itemInfo.itemInst.attachedGemInstId > 0
|
|
if hasGemAttached then
|
|
local gemInst = CharInfoUtils.getGemByInstId(itemInfo.itemInst.attachedGemInstId)
|
|
local gemItemCfg = Tables.itemTable:GetValue(gemInst.templateId)
|
|
Notify(MessageConst.SHOW_POP_UP, {
|
|
content = string.format(Language.LUA_WEAPON_EXHIBIT_UPGRADE_GEM_EQUIPPED, gemItemCfg.name),
|
|
onConfirm = function()
|
|
GameInstance.player.charBag:DetachGem(itemInfo.itemInst.instId)
|
|
end,
|
|
onCancel = function()
|
|
end
|
|
})
|
|
return
|
|
end
|
|
|
|
if itemInfo.inventoryCount ~= 0 and nextCount > itemInfo.inventoryCount then
|
|
if not itemInfo.isWeapon then
|
|
self:Notify(MessageConst.SHOW_TOAST, Language.LUA_WEAPON_EXHIBIT_UPGRADE_MAX_ITEM_COUNT)
|
|
end
|
|
|
|
nextCount = itemInfo.inventoryCount
|
|
elseif itemInfo.inventoryCount == 0 then
|
|
nextCount = 0
|
|
end
|
|
|
|
itemInfo.count = nextCount
|
|
|
|
if itemInfo.count > 0 then
|
|
local indexId = itemInfo.indexId
|
|
costItemInfoDict[indexId] = itemInfo
|
|
end
|
|
end
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._GetCurAddRefineLv = HL.Method().Return(HL.Number) << function(self)
|
|
local addRefineLv = 0
|
|
for i, itemInfo in pairs(self.m_costItemInfoDict) do
|
|
if itemInfo.isWeapon then
|
|
local weaponInst = CharInfoUtils.getWeaponByInstId(itemInfo.indexId)
|
|
addRefineLv = addRefineLv + weaponInst.refineLv + 1
|
|
else
|
|
addRefineLv = addRefineLv + 1 * itemInfo.count
|
|
end
|
|
end
|
|
|
|
return addRefineLv
|
|
end
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._RefreshBottomCostItem = HL.Method(HL.Opt(HL.Boolean)) << function(self, skipGraduallyShow)
|
|
local costItemInfoList = self:_CollectCostItemInfoList()
|
|
local costCellCount = math.max(#costItemInfoList, UIConst.WEAPON_EXHIBIT_UPGRADE_MIN_SLOT_NUM)
|
|
|
|
self.view.m_bottomWeaponCellCache:Refresh(costCellCount, function(cell, index)
|
|
local costItemInfo = costItemInfoList[index]
|
|
|
|
cell.emptyNode.gameObject:SetActive(costItemInfo == nil)
|
|
cell.item.gameObject:SetActive(costItemInfo ~= nil)
|
|
self:_RefreshWeaponCellAddOn(cell, costItemInfo)
|
|
|
|
cell.btnMinus.onClick:AddListener(function()
|
|
self:_RemoveFromCostItemDict(costItemInfo, 1)
|
|
end)
|
|
|
|
if costItemInfo then
|
|
cell.item:InitItem({
|
|
id = costItemInfo.itemCfg.id,
|
|
instId = costItemInfo.isWeapon and costItemInfo.indexId or 0,
|
|
}, function()
|
|
self:_ToggleExpandNode(true)
|
|
end)
|
|
end
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._ToggleExpandNode = HL.Method(HL.Boolean, HL.Opt(HL.Boolean)) << function(self, isOn, closeAll)
|
|
self.m_lastClickItemId = nil
|
|
self.m_lastClickItemInfo = nil
|
|
|
|
if UIManager:IsShow(PanelId.ItemTips) then
|
|
Notify(MessageConst.HIDE_ITEM_TIPS)
|
|
if not closeAll then
|
|
return
|
|
end
|
|
end
|
|
|
|
if isOn then
|
|
UIUtils.PlayAnimationAndToggleActive(self.view.commonWeaponList.view.animationWrapper, true)
|
|
self.view.expandNode.gameObject:SetActive(true)
|
|
if DeviceInfo.usingController then
|
|
self.view.commonWeaponList:PlayGraduallyShow(1, false)
|
|
else
|
|
self.view.commonWeaponList:PlayGraduallyShow()
|
|
end
|
|
else
|
|
UIUtils.PlayAnimationAndToggleActive(self.view.commonWeaponList.view.animationWrapper, false, function()
|
|
self.view.expandNode.gameObject:SetActive(false)
|
|
end)
|
|
InputManagerInst:ToggleBinding(self.m_materialsDecreaseCountInputBindingId, false)
|
|
end
|
|
|
|
InputManagerInst:ToggleGroup(self.view.leftNodeInputGroup.groupId, not isOn)
|
|
if DeviceInfo.usingController then
|
|
InputManagerInst:ToggleGroup(self.view.btnLevelUp.groupId, not isOn)
|
|
else
|
|
InputManagerInst:ToggleGroup(self.view.btnLevelUp.groupId, true)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._RefreshWeaponPotentialStar = HL.Method(HL.String, HL.Number, HL.Opt(HL.Boolean)) << function(self, templateId, instId)
|
|
local weaponInst = CharInfoUtils.getWeaponByInstId(instId)
|
|
local addRefineLv = self:_GetCurAddRefineLv()
|
|
|
|
local isMaxPotential = weaponInst.refineLv >= UIConst.CHAR_MAX_POTENTIAL
|
|
if isMaxPotential then
|
|
self.view.arrowNode.gameObject:SetActive(false)
|
|
self.view.maxPotentialNode.gameObject:SetActive(true)
|
|
self.view.potentialBefore.gameObject:SetActive(false)
|
|
self.view.potentialAfter.gameObject:SetActive(false)
|
|
else
|
|
self.view.potentialBefore:InitWeaponPotentialStar(weaponInst.refineLv)
|
|
self.view.potentialAfter:InitWeaponPotentialStar(weaponInst.refineLv + addRefineLv, {
|
|
showMaxPotentialHint = false,
|
|
fromLv = weaponInst.refineLv
|
|
})
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._RefreshSkillNode = HL.Method(HL.String, HL.Number, HL.Opt(HL.Boolean)) << function(self, templateId, instId, isInit)
|
|
local weaponInst = CharInfoUtils.getWeaponByInstId(instId)
|
|
|
|
local addRefineLv = self:_GetCurAddRefineLv()
|
|
|
|
local maxRefineLv = CS.Beyond.Gameplay.WeaponUtil.GetWeaponMaxRefineLv(templateId)
|
|
local isMaxRefineLv = weaponInst.refineLv >= maxRefineLv
|
|
self.view.weaponSkillNodeBefore.gameObject:SetActive(not isMaxRefineLv)
|
|
|
|
|
|
self:_RefreshBottomCostItem()
|
|
|
|
if not isMaxRefineLv then
|
|
self.view.weaponSkillNodeBefore:InitWeaponSkillNode(instId, {
|
|
tryGemInstId = weaponInst.attachedGemInstId,
|
|
tryBreakthroughLv = weaponInst.breakthroughLv,
|
|
tryRefineLv = weaponInst.refineLv,
|
|
onlyPotentialSkill = true,
|
|
})
|
|
end
|
|
self.view.weaponSkillNodeAfter:InitWeaponSkillNode(instId, {
|
|
tryGemInstId = weaponInst.attachedGemInstId,
|
|
tryBreakthroughLv = weaponInst.breakthroughLv,
|
|
tryRefineLv = weaponInst.refineLv + addRefineLv,
|
|
onlyPotentialSkill = true,
|
|
})
|
|
self.view.weaponIntroduction:InitWeaponIntroduction(templateId, instId)
|
|
end
|
|
|
|
|
|
|
|
WeaponExhibitPotentialCtrl._CollectCostItemInfoList = HL.Method().Return(HL.Table) << function(self)
|
|
local costItemList = {}
|
|
for i, itemInfo in pairs(self.m_costItemInfoDict) do
|
|
table.insert(costItemList, itemInfo)
|
|
end
|
|
|
|
return costItemList
|
|
end
|
|
|
|
HL.Commit(WeaponExhibitPotentialCtrl)
|