167 lines
5.1 KiB
Lua
167 lines
5.1 KiB
Lua
|
|
local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
|
|
local PANEL_ID = PanelId.WeaponExhibitPreview
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPreviewCtrl = HL.Class('WeaponExhibitPreviewCtrl', uiCtrl.UICtrl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPreviewCtrl.s_messages = HL.StaticField(HL.Table) << {
|
|
|
|
}
|
|
|
|
|
|
|
|
WeaponExhibitPreviewCtrl.m_curBreakthroughLv = HL.Field(HL.Number) << 0
|
|
|
|
|
|
WeaponExhibitPreviewCtrl.m_weaponExhibitInfo = HL.Field(HL.Table)
|
|
|
|
|
|
WeaponExhibitPreviewCtrl.m_requireItemCelLCache = HL.Field(HL.Forward("UIListCache"))
|
|
|
|
|
|
WeaponExhibitPreviewCtrl.m_effectCor = HL.Field(HL.Thread)
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPreviewCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
|
|
local weaponTemplateId = arg.weaponTemplateId
|
|
local weaponInstId = arg.weaponInstId
|
|
local weaponExhibitInfo = CharInfoUtils.getWeaponExhibitBasicInfo(weaponTemplateId, weaponInstId)
|
|
local previewBreakthroughLv = weaponExhibitInfo.curBreakthroughLv
|
|
local maxBreak, breakLv2StageLv = CharInfoUtils.getWeaponBreakLv2StageLv(weaponExhibitInfo.weaponInst.templateId)
|
|
|
|
previewBreakthroughLv = lume.clamp(previewBreakthroughLv, 0, maxBreak - 1)
|
|
|
|
self:_InitActionEvent()
|
|
|
|
self.m_weaponExhibitInfo = weaponExhibitInfo
|
|
self.m_curBreakthroughLv = previewBreakthroughLv
|
|
self.m_requireItemCelLCache = UIUtils.genCellCache(self.view.itemSmall)
|
|
|
|
self:_PreviewWeaponBreakthrough(weaponExhibitInfo, previewBreakthroughLv)
|
|
|
|
self.view.controllerHintPlaceholder:InitControllerHintPlaceholder({self.view.inputGroup.groupId})
|
|
end
|
|
|
|
|
|
|
|
WeaponExhibitPreviewCtrl._InitActionEvent = HL.Method() << function(self)
|
|
self.view.btnLeftArrow.onClick:AddListener(function()
|
|
self:_StartPageTransitionTween(function()
|
|
local weaponExhibitInfo = self.m_weaponExhibitInfo
|
|
local breakthroughLv = self.m_curBreakthroughLv - 1
|
|
|
|
self.m_curBreakthroughLv = breakthroughLv
|
|
|
|
self:_PreviewWeaponBreakthrough(weaponExhibitInfo, breakthroughLv)
|
|
end)
|
|
end)
|
|
|
|
self.view.btnRightArrow.onClick:AddListener(function()
|
|
self:_StartPageTransitionTween(function()
|
|
local weaponExhibitInfo = self.m_weaponExhibitInfo
|
|
local breakthroughLv = self.m_curBreakthroughLv + 1
|
|
|
|
self.m_curBreakthroughLv = breakthroughLv
|
|
|
|
self:_PreviewWeaponBreakthrough(weaponExhibitInfo, breakthroughLv)
|
|
end)
|
|
end)
|
|
|
|
self.view.btnClose.onClick:AddListener(function()
|
|
self:PlayAnimationOut(UIConst.PANEL_PLAY_ANIMATION_OUT_COMPLETE_ACTION_TYPE.Close)
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPreviewCtrl._StartPageTransitionTween = HL.Method(HL.Function) << function(self, action)
|
|
self:_ClearCoroutine(self.m_effectCor)
|
|
self.m_effectCor = self:_StartCoroutine(function()
|
|
self.view.animation:Play("weapon_view_nextpage_out")
|
|
coroutine.wait(self.view.config.SWITCH_PAGE_DURATION)
|
|
|
|
if action then
|
|
action(self)
|
|
end
|
|
self.view.animation:Play("weapon_view_nextpage_in")
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
WeaponExhibitPreviewCtrl._PreviewWeaponBreakthrough = HL.Method(HL.Table, HL.Number) << function(self, weaponExhibitInfo, breakthroughLv)
|
|
|
|
|
|
|
|
local maxBreak, breakLv2StageLv = CharInfoUtils.getWeaponBreakLv2StageLv(weaponExhibitInfo.weaponInst.templateId)
|
|
local fromBreakthroughLv = breakthroughLv
|
|
local breakthroughTemplate = weaponExhibitInfo.breakthroughTemplateCfg
|
|
|
|
local toBreakthroughLv = fromBreakthroughLv + 1
|
|
local toBreakthroughCfg = breakthroughTemplate.list[toBreakthroughLv]
|
|
|
|
self.view.levelBreakNode:InitLevelBreakNode(fromBreakthroughLv, true, weaponExhibitInfo.breakthroughInfoList)
|
|
|
|
local breakItemList = toBreakthroughCfg.breakItemList
|
|
self.m_requireItemCelLCache:Refresh(breakItemList.Count, function(cell, index)
|
|
local itemInfo = breakItemList[CSIndex(index)]
|
|
cell:InitItem({
|
|
id = itemInfo.id,
|
|
count = itemInfo.count,
|
|
}, true)
|
|
cell:SetExtraInfo({
|
|
isSideTips = DeviceInfo.usingController,
|
|
})
|
|
end)
|
|
|
|
self.view.fromWeaponSkillNode:InitWeaponSkillNode(weaponExhibitInfo.weaponInst.instId, {
|
|
tryGemInstId = 0,
|
|
tryRefineLv = weaponExhibitInfo.weaponInst.refineLv,
|
|
tryBreakthroughLv = fromBreakthroughLv,
|
|
fromBreakthroughLv = fromBreakthroughLv,
|
|
fromRefineLv = weaponExhibitInfo.weaponInst.refineLv,
|
|
})
|
|
|
|
self.view.toWeaponSkillNode:InitWeaponSkillNode(weaponExhibitInfo.weaponInst.instId, {
|
|
tryGemInstId = 0,
|
|
tryRefineLv = weaponExhibitInfo.weaponInst.refineLv,
|
|
tryBreakthroughLv = toBreakthroughLv,
|
|
fromBreakthroughLv = fromBreakthroughLv,
|
|
fromRefineLv = weaponExhibitInfo.weaponInst.refineLv,
|
|
})
|
|
self.view.btnLeftArrow.gameObject:SetActive(fromBreakthroughLv > 0)
|
|
self.view.btnRightArrow.gameObject:SetActive(toBreakthroughLv < weaponExhibitInfo.maxBreakthroughLv)
|
|
|
|
|
|
local fromStageLv = breakLv2StageLv[fromBreakthroughLv]
|
|
local toStageLv = breakLv2StageLv[toBreakthroughLv]
|
|
self.view.fromLv.text = fromStageLv
|
|
self.view.fromStageLv.text = fromStageLv
|
|
self.view.toLv.text = fromStageLv
|
|
self.view.toStageLv.text = toStageLv
|
|
end
|
|
|
|
HL.Commit(WeaponExhibitPreviewCtrl)
|