182 lines
6 KiB
Lua
182 lines
6 KiB
Lua
local XUiGridEquip = require("XUi/XUiEquip/XUiGridEquipResonanceSelectEquipV2P6")
|
|
local TabIndex = {
|
|
Equip = 1,
|
|
Item = 2,
|
|
}
|
|
|
|
local XUiEquipResonanceSelectEquipV2P6 = XLuaUiManager.Register(XLuaUi, "UiEquipResonanceSelectEquipV2P6")
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:OnAwake()
|
|
self.GridEquip.gameObject:SetActiveEx(false)
|
|
self:SetButtonCallBack()
|
|
self:InitTabGroup()
|
|
self:InitDynamicTable()
|
|
end
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:OnStart(equipId, confirmCb)
|
|
self.EquipId = equipId
|
|
self.ConfirmCb = confirmCb
|
|
self.TemplateId = XDataCenter.EquipManager.GetEquipTemplateId(equipId)
|
|
self.IsWeapon = XDataCenter.EquipManager.IsWeaponByTemplateId(self.TemplateId)
|
|
self.SelectEquipId = nil
|
|
self.SelectItemId = nil
|
|
end
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:OnEnable()
|
|
-- 按钮名称
|
|
local btnName = self.IsWeapon and XUiHelper.GetText("TypeWeapon") or XUiHelper.GetText("TypeWafer")
|
|
self.BtnTabEquip:SetNameByGroup(0, btnName)
|
|
|
|
-- 装备列表
|
|
self.EquipIdList = XDataCenter.EquipManager.GetResonanceCanEatEquipIds(self.EquipId)
|
|
XTool.ReverseList(self.EquipIdList) --这个UI要初始升序
|
|
|
|
-- 道具列表
|
|
self.ItemIdList = {}
|
|
local consumeItemId = XDataCenter.EquipManager.GetResonanceConsumeItemId(self.EquipId)
|
|
local consumeSelectSkillItemId = XDataCenter.EquipManager.GetResonanceConsumeSelectSkillItemId(self.EquipId)
|
|
if consumeItemId then
|
|
local count = XDataCenter.ItemManager.GetCount(consumeItemId)
|
|
if count > 0 then
|
|
table.insert(self.ItemIdList, consumeItemId)
|
|
end
|
|
end
|
|
if consumeSelectSkillItemId then
|
|
local count = XDataCenter.ItemManager.GetCount(consumeSelectSkillItemId)
|
|
if count > 0 then
|
|
table.insert(self.ItemIdList, consumeSelectSkillItemId)
|
|
end
|
|
end
|
|
|
|
self.PanelTabList:SelectIndex(TabIndex.Equip)
|
|
end
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:SetButtonCallBack()
|
|
self:RegisterClickEvent(self.BtnConfirm, self.OnBtnConfirmClick)
|
|
self:RegisterClickEvent(self.BtnClose, self.OnBtnCloseClick)
|
|
self:RegisterClickEvent(self.Btncancel, self.OnBtnCloseClick)
|
|
end
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:OnBtnCloseClick()
|
|
self:Close()
|
|
end
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:OnBtnConfirmClick()
|
|
if self.ConfirmCb and (self.SelectEquipId or self.SelectItemId) then
|
|
self.ConfirmCb(self.SelectEquipId, self.SelectItemId)
|
|
end
|
|
self:Close()
|
|
end
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:InitTabGroup()
|
|
self.TabGroup = {
|
|
self.BtnTabEquip,
|
|
self.BtnTabItem,
|
|
}
|
|
|
|
self.PanelTabList:Init(self.TabGroup, function(tabIndex)
|
|
self:OnClickTab(tabIndex)
|
|
end)
|
|
end
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:OnClickTab(index)
|
|
if self.CurTabIndex == index then
|
|
return
|
|
end
|
|
|
|
self.CurTabIndex = index
|
|
self.SelectEquipId = nil
|
|
self.SelectItemId = nil
|
|
self:UpdateBtnConfirm()
|
|
self:PlayAnimation("QieHuan")
|
|
|
|
if index == TabIndex.Equip then
|
|
self:UpdateEquipGridList()
|
|
else
|
|
self:UpdateItemGridList()
|
|
end
|
|
end
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:InitDynamicTable()
|
|
self.DynamicTable = XDynamicTableNormal.New(self.PanelEquipScroll)
|
|
self.DynamicTable:SetDelegate(self)
|
|
self.DynamicTable:SetProxy(XUiGridEquip, self)
|
|
end
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:UpdateEquipGridList()
|
|
self.DynamicTable:SetDataSource(self.EquipIdList)
|
|
self.DynamicTable:ReloadDataASync()
|
|
|
|
local isEmpty = self.EquipIdList == nil or #self.EquipIdList == 0
|
|
self.PanelEquipScroll.gameObject:SetActiveEx(not isEmpty)
|
|
self.PanelNoEquip.gameObject:SetActive(isEmpty)
|
|
if isEmpty then
|
|
if self.IsWeapon then
|
|
self.TxtNoEquip.text = CS.XTextManager.GetText("EquipResonanceNoWeaponTip")
|
|
else
|
|
self.TxtNoEquip.text = CS.XTextManager.GetText("EquipResonanceNoAwarenessTip")
|
|
end
|
|
end
|
|
end
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:UpdateItemGridList()
|
|
self.DynamicTable:SetDataSource(self.ItemIdList)
|
|
self.DynamicTable:ReloadDataASync()
|
|
|
|
local isEmpty = self.ItemIdList == nil or #self.ItemIdList == 0
|
|
self.PanelEquipScroll.gameObject:SetActiveEx(not isEmpty)
|
|
self.PanelNoEquip.gameObject:SetActive(isEmpty)
|
|
if isEmpty then
|
|
self.TxtNoEquip.text = CS.XTextManager.GetText("EquipResonanceNoItemTip")
|
|
end
|
|
end
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:OnDynamicTableEvent(event, index, grid)
|
|
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
|
|
grid:SetSelected(false)
|
|
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
|
|
local id = self.CurTabIndex == TabIndex.Equip and self.EquipIdList[index] or self.ItemIdList[index]
|
|
local isEquip = self.CurTabIndex == TabIndex.Equip
|
|
grid:Refresh(self, id, isEquip)
|
|
|
|
local isSelected = self.SelectEquipId == id or self.SelectItemId == id
|
|
if isSelected then
|
|
self.LastSelectGrid = grid
|
|
end
|
|
grid:SetSelected(isSelected)
|
|
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_TOUCHED then
|
|
if self.LastSelectGrid then
|
|
self.LastSelectGrid:SetSelected(false)
|
|
end
|
|
|
|
if self.CurTabIndex == TabIndex.Equip then
|
|
self.SelectEquipId = self.EquipIdList[index]
|
|
self.SelectItemId = nil
|
|
else
|
|
self.SelectItemId = self.ItemIdList[index]
|
|
self.SelectEquipId = nil
|
|
end
|
|
|
|
self.LastSelectGrid = grid
|
|
self.LastSelectGrid:SetSelected(true)
|
|
self:UpdateBtnConfirm()
|
|
end
|
|
end
|
|
|
|
function XUiEquipResonanceSelectEquipV2P6:GetGridIdByIndex(index)
|
|
if self.CurTabIndex == TabIndex.Equip then
|
|
local equipId = self.EquipIdList[index]
|
|
return equipId
|
|
else
|
|
local itemId = self.ItemIdList[index]
|
|
return itemId
|
|
end
|
|
end
|
|
|
|
-- 刷新确定按钮
|
|
function XUiEquipResonanceSelectEquipV2P6:UpdateBtnConfirm()
|
|
local isSelect = self.SelectEquipId or self.SelectItemId
|
|
self.BtnConfirm:SetDisable(not isSelect)
|
|
end
|
|
|
|
return XUiEquipResonanceSelectEquipV2P6
|