PGRData/Script/matrix/xui/xuiequip/XUiEquipAwarenessReplaceV2P6.lua

613 lines
23 KiB
Lua
Raw Normal View History

2024-09-01 20:49:41 +00:00
local XUiGridSuitDetail = XClass(nil, "XUiGridSuitDetail")
local XUiPanelSuitList = XClass(nil, "XUiPanelSuitList")
local XUiGridEquip = require("XUi/XUiEquipAwarenessReplace/XUiGridEquip")
local XUiGridResonanceSkill = require("XUi/XUiEquipResonanceSkill/XUiGridResonanceSkill")
local Dropdown = CS.UnityEngine.UI.Dropdown
local CSInstantiate = CS.UnityEngine.Object.Instantiate
local ALL_SUIT_ID = 0 -- 显示全部对应的套装id
local SKILL_DES_COLOR = {
[true] = XUiHelper.Hexcolor2Color("188649"),
[false] = XUiHelper.Hexcolor2Color("1B3750")
}
local SELECT = CS.UiButtonState.Select
local NORMAL = CS.UiButtonState.Normal
local XUiEquipAwarenessReplaceV2P6 = XLuaUiManager.Register(XLuaUi, "UiEquipAwarenessReplaceV2P6")
function XUiEquipAwarenessReplaceV2P6:OnAwake()
self.CompareEffect = self.Transform:Find("SafeAreaContentPane/Right/Effect")
self.SuitItem.gameObject:SetActiveEx(false)
self.SuitList.gameObject:SetActiveEx(false)
self.EquipDetail1.gameObject:SetActiveEx(false)
self.EquipDetail2.gameObject:SetActiveEx(false)
self.IsOpenSuitList = false
self.SuitGoList = {}
self.AssetPanel = XUiPanelAsset.New(self, self.PanelAsset, XDataCenter.ItemManager.ItemId.FreeGem, XDataCenter.ItemManager.ItemId.ActionPoint, XDataCenter.ItemManager.ItemId.Coin)
self:SetButtonCallBack()
self:InitDynamicTable()
end
function XUiEquipAwarenessReplaceV2P6:OnStart(characterId, equipSite, notShowStrengthenBtn)
self.CharacterId = characterId
self.SelectSite = equipSite or XEnumConst.EQUIP.EQUIP_SITE.AWARENESS.ONE
self.SelectSuitId = ALL_SUIT_ID
self.NotShowStrengthenBtn = notShowStrengthenBtn == true
-- 刷新套装页签、位置选中
self:UpdateSuitTitle()
self.PanelTogPos:SelectIndex(self.SelectSite) -- 由于self.SelectSite == site只刷UI不会重复筛选、刷新列表
end
function XUiEquipAwarenessReplaceV2P6:OnEnable()
self.IsEnableShow = true
self:UpdateView()
end
function XUiEquipAwarenessReplaceV2P6:OnDisable()
self.FxUiLihuiChuxian01.gameObject:SetActiveEx(false)
self:OnBtnSuitTitleClick(false)
end
function XUiEquipAwarenessReplaceV2P6:OnDestroy()
self:ReleaseModel()
self:ReleaseLihuiTimer()
end
--注册监听事件
function XUiEquipAwarenessReplaceV2P6:OnGetEvents()
return {
XEventId.EVENT_EQUIP_PUTON_NOTYFY
, XEventId.EVENT_EQUIPLIST_TAKEOFF_NOTYFY
, XEventId.EVENT_EQUIP_LOCK_STATUS_CHANGE_NOTYFY
, XEventId.EVENT_EQUIP_RECYCLE_STATUS_CHANGE_NOTYFY
, XEventId.EVENT_EQUIP_RECYCLE_NOTIFY
}
end
--处理事件监听
function XUiEquipAwarenessReplaceV2P6:OnNotify(evt, ...)
local args = { ... }
if evt == XEventId.EVENT_EQUIP_PUTON_NOTYFY then
self:UpdateView()
local grid = self.DynamicTable:GetGridByIndex(1)
local effect = grid.Transform:Find("Effect")
effect.gameObject:SetActive(false)
effect.gameObject:SetActive(true)
elseif evt == XEventId.EVENT_EQUIPLIST_TAKEOFF_NOTYFY then
self:UpdateView()
end
end
function XUiEquipAwarenessReplaceV2P6:SetButtonCallBack()
self:RegisterClickEvent(self.BtnBack, self.OnBtnBackClick)
self:RegisterClickEvent(self.BtnMainUi, self.OnBtnMainClick)
self:RegisterClickEvent(self.BtnBg, self.OnBtnBgClick)
self:RegisterClickEvent(self.SuitTitle, function() self:OnBtnSuitTitleClick(true) end)
self:RegisterClickEvent(self.SuitTitleSelect, function() self:OnBtnSuitTitleClick(false) end)
-- 位置按钮
self.PosTogList = {self.Tog1, self.Tog2, self.Tog3, self.Tog4, self.Tog5, self.Tog6}
self.PanelTogPos:Init(self.PosTogList, function(index)
self:OnSelectSite(index)
end)
-- 装备详情操作按钮
self:RegisterClickEvent(self.EquipDetail1:GetObject("BtnStrengthen"), function() self:OnBtnStrengthenClick(self.DetailEquipId1) end)
self:RegisterClickEvent(self.EquipDetail1:GetObject("BtnPutOn"), function() self:OnBtnPutOnClick(self.DetailEquipId1) end)
self:RegisterClickEvent(self.EquipDetail1:GetObject("BtnTakeOff"), function() self:OnBtnTakeOffClick(self.DetailEquipId1) end)
end
function XUiEquipAwarenessReplaceV2P6:OnBtnBackClick()
self:Close()
end
function XUiEquipAwarenessReplaceV2P6:OnBtnMainClick()
XLuaUiManager.RunMain()
end
function XUiEquipAwarenessReplaceV2P6:OnBtnBgClick()
self:OnBtnSuitTitleClick(false)
if self.IsDetail2Show then
self.IsDetail2Show = false
self:PlayAnimation("EquipDetail2Disable", function()
self.EquipDetail2.gameObject:SetActiveEx(false)
end)
end
end
function XUiEquipAwarenessReplaceV2P6:OnBtnSuitTitleClick(isOpen)
if self.IsOpenSuitList == isOpen then
return
end
self.IsOpenSuitList = isOpen
self.SuitTitle.gameObject:SetActiveEx(not isOpen)
self.SuitTitleSelect.gameObject:SetActiveEx(isOpen)
if isOpen then
self.SuitList.gameObject:SetActiveEx(true)
self:PlayAnimation("SuitListEnable")
self:UpdateSuitList()
else
self:PlayAnimation("SuitListDisable", function()
self.SuitList.gameObject:SetActiveEx(false)
end)
end
end
function XUiEquipAwarenessReplaceV2P6:OnSelectSite(site)
self:OnBtnSuitTitleClick(false)
if self.SelectSite == site then
return
end
self:PlayAnimation("SuitQieHuan")
self:PlayAnimation("EquipDetail2QieHuan")
-- 非选中 "全部" 页签,筛选无意识则不给切换
local awarenessList
if self.SelectSuitId ~= ALL_SUIT_ID then
awarenessList = self._Control:GetAwarenessList(self.CharacterId, site, self.SelectSuitId)
if #awarenessList == 0 then
XUiManager.TipText("FilterAwarenessEmpty")
self.PanelTogPos:SelectIndex(self.SelectSite)
return
end
end
self.SelectSite = site
self:UpdateAwarenessList(awarenessList)
self:UpdateEquipDetail()
end
function XUiEquipAwarenessReplaceV2P6:OnSelectSuit(suitId)
self.SelectSuitId = suitId
self:OnBtnSuitTitleClick(false)
self:UpdateSuitTitle()
self:UpdateAwarenessList()
self:UpdateEquipDetail()
end
function XUiEquipAwarenessReplaceV2P6:OnBtnStrengthenClick(equipId)
XMVCA:GetAgency(ModuleId.XEquip):OpenUiEquipDetail(equipId, nil, self.CharacterId, nil, nil, nil, true)
end
function XUiEquipAwarenessReplaceV2P6:OnBtnPutOnClick(equipId)
local characterId = self.CharacterId
local wearingCharacterId = XDataCenter.EquipManager.GetEquipWearingCharacterId(equipId)
if wearingCharacterId and wearingCharacterId > 0 then
local fullName = XCharacterConfigs.GetCharacterFullNameStr(wearingCharacterId)
local content = CSXTextManagerGetText("EquipAwarenessReplaceTip", fullName)
XUiManager.DialogTip(
CSXTextManagerGetText("TipTitle"),
content,
XUiManager.DialogType.Normal,
function()
end,
function()
XMVCA:GetAgency(ModuleId.XEquip):PutOn(characterId, equipId)
end
)
else
XMVCA:GetAgency(ModuleId.XEquip):PutOn(characterId, equipId)
end
end
function XUiEquipAwarenessReplaceV2P6:OnBtnTakeOffClick(equipId)
XMVCA:GetAgency(ModuleId.XEquip):TakeOff({equipId})
end
-- 刷新界面
function XUiEquipAwarenessReplaceV2P6:UpdateView()
self:UpdateAwarenessList()
self:UpdateEquipDetail()
end
-- 刷新意识列表
function XUiEquipAwarenessReplaceV2P6:UpdateAwarenessList(awarenessList)
self.AwarenessList = awarenessList or self._Control:GetAwarenessList(self.CharacterId, self.SelectSite, self.SelectSuitId)
-- 检测当前选中角色是否失效
if self.SelectEquipId then
local isExitEquip = false
for _, equip in ipairs(self.AwarenessList) do
if equip.Id == self.SelectEquipId then
isExitEquip = true
break
end
end
if not isExitEquip then
self.SelectEquipId = nil
end
end
-- 默认选中第一个装备
if not self.SelectEquipId and #self.AwarenessList > 0 then
self.SelectEquipId = self.AwarenessList[1].Id
end
self.DynamicTable:SetDataSource(self.AwarenessList)
self.DynamicTable:ReloadDataSync(#self.AwarenessList > 0 and 1 or -1)
local isEmpty = #self.AwarenessList == 0
self.PanelNoEquip.gameObject:SetActiveEx(isEmpty)
end
function XUiEquipAwarenessReplaceV2P6:InitDynamicTable()
self.DynamicTable = XDynamicTableNormal.New(self.PanelEquipList)
self.DynamicTable:SetProxy(XUiGridEquip, self)
self.DynamicTable:SetDelegate(self)
end
function XUiEquipAwarenessReplaceV2P6:OnDynamicTableEvent(event, index, grid)
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
grid:InitRootUi(self)
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
local equip = self.AwarenessList[index]
local isSelect = self.SelectEquipId == equip.Id
grid:Refresh(equip.Id)
grid:SetSelected(isSelect)
grid.Transform:Find("Effect").gameObject:SetActiveEx(false)
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_TOUCHED then
local grids = self.DynamicTable:GetGrids()
for _, grid in pairs(grids) do
grid:SetSelected(false)
end
self.SelectEquipId = self.AwarenessList[index].Id
grid:SetSelected(true)
self:UpdateEquipDetail()
end
end
-- 刷新装备详情
function XUiEquipAwarenessReplaceV2P6:UpdateEquipDetail()
-- 刷新装备详情
local wearEquipId = XDataCenter.EquipManager.GetWearingEquipIdBySite(self.CharacterId, self.SelectSite)
local isCompare = false
if self.SelectEquipId and wearEquipId and self.SelectEquipId ~= wearEquipId then
self.DetailEquipId1 = self.SelectEquipId
self.DetailEquipId2 = wearEquipId
isCompare = true
else
self.DetailEquipId1 = self.SelectEquipId or wearEquipId
self.DetailEquipId2 = nil
end
self:UpdateOneEquipDetail(1, self.DetailEquipId1, wearEquipId, isCompare)
self:UpdateOneEquipDetail(2, self.DetailEquipId2, wearEquipId, isCompare)
-- 刷新模型
self:UpdateModel(self.DetailEquipId1)
end
-- 刷新一个装备详情
function XUiEquipAwarenessReplaceV2P6:UpdateOneEquipDetail(equipIndex, equipId, wearEquipId, isCompare)
local uiObj = equipIndex == 1 and self.EquipDetail1 or self.EquipDetail2
local isShow = equipId ~= nil
-- 播放动画
if equipIndex == 1 then
uiObj.gameObject:SetActiveEx(isShow)
else
if isShow ~= self.IsDetail2Show then
self.IsDetail2Show = isShow
if isShow then
uiObj.gameObject:SetActiveEx(true)
self:PlayAnimation("EquipDetail2Enable")
self.CompareEffect.gameObject:SetActive(false)
self.CompareEffect.gameObject:SetActive(true)
else
self:PlayAnimation("EquipDetail2Disable", function()
uiObj.gameObject:SetActiveEx(false)
end)
end
elseif isShow then
self:PlayAnimation("EquipDetail2QieHuan")
self.CompareEffect.gameObject:SetActive(false)
self.CompareEffect.gameObject:SetActive(true)
end
end
if not isShow then
return
end
-- 刷新面板
local equip = XMVCA:GetAgency(ModuleId.XEquip):GetEquip(equipId)
local isWear = equipId == wearEquipId
local icon = XDataCenter.EquipManager.GetEquipIconBagPath(equip.TemplateId, equip.Breakthrough)
uiObj:GetObject("RImgIcon"):SetRawImage(icon)
local name = XMVCA:GetAgency(ModuleId.XEquip):GetEquipName(equip.TemplateId)
uiObj:GetObject("TxtName").text = name
uiObj:GetObject("TxtLv").text = equip.Level
-- 意识属性
local attrMap = XMVCA:GetAgency(ModuleId.XEquip):GetEquipAttrMap(equipId)
for i = 1, XEnumConst.EQUIP.MAX_ATTR_COUNT do
local attrInfo = attrMap[i]
local isShow = attrInfo ~= nil
uiObj:GetObject("PanelAttr" .. i).gameObject:SetActiveEx(isShow)
if isShow then
uiObj:GetObject("TxtName" .. i).text = attrInfo.Name
uiObj:GetObject("TxtAttr" .. i).text = attrInfo.Value
end
end
-- 套装技能
local suitId = XMVCA:GetAgency(ModuleId.XEquip):GetEquipSuitId(equip.TemplateId)
local activeCount, siteCheckDic = XDataCenter.EquipManager.GetActiveSuitEquipsCount(self.CharacterId, suitId)
if not isWear then
local wearSuitId
if wearEquipId then
local wearEquip = XMVCA:GetAgency(ModuleId.XEquip):GetEquip(wearEquipId)
wearSuitId = XMVCA:GetAgency(ModuleId.XEquip):GetEquipSuitId(wearEquip.TemplateId)
end
if wearSuitId ~= suitId then
activeCount = activeCount + 1 -- 预览穿上的激活效果
end
end
local isOverrun = XMVCA:GetAgency(ModuleId.XEquip):IsCharacterOverrunSuit(self.CharacterId, suitId)
local skillDesList = XMVCA:GetAgency(ModuleId.XEquip):GetSuitActiveSkillDesList(suitId, activeCount, isOverrun, isOverrun)
for i = 1, XEnumConst.EQUIP.MAX_SUIT_SKILL_COUNT do
local skillInfo = skillDesList[i]
local isShow = skillInfo ~= nil
local txtSkillDes = uiObj:GetObject("TxtSkillDes" .. i)
txtSkillDes.gameObject:SetActiveEx(isShow)
if isShow then
local color = SKILL_DES_COLOR[skillInfo.IsActive]
txtSkillDes.text = skillInfo.SkillDes
txtSkillDes.color = color
local txtPos = uiObj:GetObject("TxtPos" .. i)
txtPos.color = color
end
end
-- 共鸣、超频
local canResonance = XDataCenter.EquipManager.CanResonanceByTemplateId(equip.TemplateId)
uiObj:GetObject("PanelResonanceTitle").gameObject:SetActiveEx(canResonance)
uiObj:GetObject("PanelResonance").gameObject:SetActiveEx(canResonance)
if canResonance then
for pos = 1, XEnumConst.EQUIP.AWARENESS_RESONANCE_COUNT do
local resonanceUiObj = uiObj:GetObject("ResonanceSkill" .. pos)
self:UpdateResonanceSkill(equipIndex, resonanceUiObj, equipId, pos)
end
end
-- 按钮
-- 在比较2件装备时当前穿戴的装备不显示穿戴/卸下按钮,显示“当前装备”
local showCurWear = isCompare and isWear
uiObj:GetObject("PanelCurrentEquipment").gameObject:SetActiveEx(showCurWear)
uiObj:GetObject("BtnStrengthen").gameObject:SetActiveEx(not showCurWear and not self.NotShowStrengthenBtn)
uiObj:GetObject("BtnTakeOff").gameObject:SetActiveEx(not showCurWear and isWear)
uiObj:GetObject("BtnPutOn").gameObject:SetActiveEx(not showCurWear and not isWear)
end
-- 刷新单个意识共鸣
function XUiEquipAwarenessReplaceV2P6:UpdateResonanceSkill(equipIndex, resonanceUiObj, equipId, pos)
local isEquip = XDataCenter.EquipManager.CheckEquipPosResonanced(equipId, pos) ~= nil
local panelNoResnoance = resonanceUiObj:GetObject("PanelNoResnoance")
panelNoResnoance.gameObject:SetActive(not isEquip)
if not isEquip then
panelNoResnoance:GetObject("BtnClick").CallBack = function()
self:OnBtnResonanceSkill(equipIndex, pos)
end
end
local skillGo = resonanceUiObj:GetObject("GridResnanceSkill")
skillGo.gameObject:SetActive(isEquip)
if isEquip then
self.ResonanceSkillDic = self.ResonanceSkillDic or {}
local hashCode = skillGo.transform:GetHashCode()
local grid = self.ResonanceSkillDic[hashCode]
if not grid then
grid = XUiGridResonanceSkill.New(skillGo, equipId, pos, self.CharacterId, function()
self:OnBtnResonanceSkill(equipIndex)
end, nil, self.ForceShowBindCharacter)
self.ResonanceSkillDic[hashCode] = grid
end
grid:SetEquipIdAndPos(equipId, pos)
grid:Refresh()
end
end
-- 点击意识共鸣
function XUiEquipAwarenessReplaceV2P6:OnBtnResonanceSkill(equipIndex, pos)
local equipId = equipIndex == 1 and self.DetailEquipId1 or self.DetailEquipId2
XLuaUiManager.Open("UiEquipDetailV2P6", equipId, nil, self.CharacterId, nil, XEnumConst.EQUIP.UI_EQUIP_DETAIL_BTN_INDEX.RESONANCE, nil, pos)
end
-- 刷新模型
function XUiEquipAwarenessReplaceV2P6:UpdateModel(modelEquipId)
if not modelEquipId then
self.FxUiLihuiChuxian01.gameObject:SetActiveEx(false)
return
end
self:ReleaseModel()
local equip = XMVCA:GetAgency(ModuleId.XEquip):GetEquip(modelEquipId)
local resPath = XDataCenter.EquipManager.GetEquipLiHuiPath(equip.TemplateId, equip.Breakthrough)
self.Resource = CS.XResourceManager.Load(resPath)
local texture = self.Resource.Asset
self.MeshLihui.sharedMaterial:SetTexture("_MainTex", texture)
self.ModelEquipId = modelEquipId
local delayTime = self.IsEnableShow and 500 or 300
self.IsEnableShow = false
self:ReleaseLihuiTimer()
self.FxUiLihuiChuxian01.gameObject:SetActive(false)
self.LihuiTimer = XScheduleManager.ScheduleOnce(function()
self.FxUiLihuiChuxian01.gameObject:SetActive(true)
self.LihuiTimer = nil
end, delayTime)
end
-- 释放模型
function XUiEquipAwarenessReplaceV2P6:ReleaseModel()
if self.Resource then
CS.XResourceManager.Unload(self.Resource)
self.Resource = nil
end
end
-- 释放定时器
function XUiEquipAwarenessReplaceV2P6:ReleaseLihuiTimer()
if self.LihuiTimer then
XScheduleManager.UnSchedule(self.LihuiTimer)
self.LihuiTimer = nil
end
end
-- 刷新套装标题
function XUiEquipAwarenessReplaceV2P6:UpdateSuitTitle()
local isAll = self.SelectSuitId == ALL_SUIT_ID
self.ImgSuitIcon.gameObject:SetActiveEx(not isAll)
self.ImgSuitIconSelect.gameObject:SetActiveEx(not isAll)
local suitName
if isAll then
suitName = XUiHelper.GetText("ScreenAll")
else
suitName = XMVCA:GetAgency(ModuleId.XEquip):GetEquipSuitName(self.SelectSuitId)
local iconPath = XMVCA:GetAgency(ModuleId.XEquip):GetEquipSuitIconPath(self.SelectSuitId)
self.ImgSuitIcon:SetSprite(iconPath)
self.ImgSuitIconSelect:SetSprite(iconPath)
end
local title = XUiHelper.GetText("CurrentFilterSuit", suitName)
self.TxtSuitTitle.text = title
self.TxtSuitTitleSelect.text = title
end
-- 刷新套装列表
function XUiEquipAwarenessReplaceV2P6:UpdateSuitList()
if not self.UiPanelSuitList then
self.UiPanelSuitList = XUiPanelSuitList.New(self, self.SuitList)
end
local suitInfoList = self:GetSuitInfoList()
self.UiPanelSuitList:UpdateSuitList(suitInfoList)
end
-- 获取套装列表
function XUiEquipAwarenessReplaceV2P6:GetSuitInfoList()
local priorityDic = {}
local suitPriorityCfg = self._Control:GetConfigCharacterSuitPriority(self.CharacterId)
if suitPriorityCfg then
for index, suitType in ipairs(suitPriorityCfg.PriorityType) do
priorityDic[suitType] = index
end
end
-- 排序
local suitInfoList = self._Control:GetSuitInfoList(self.CharacterId, self.SelectSite)
table.sort(suitInfoList, function(a, b)
-- 专属套装优先
if suitPriorityCfg.ExclusiveSuitId ~= 0 then
local isExclusiveA = suitPriorityCfg.ExclusiveSuitId == a.SuitId
local isExclusiveB = suitPriorityCfg.ExclusiveSuitId == b.SuitId
if isExclusiveA ~= isExclusiveB then
return isExclusiveA
end
end
-- 根据优先级排序
local suitTypeA = XMVCA:GetAgency(ModuleId.XEquip):GetEquipSuitSuitType(a.SuitId)
local suitTypeB = XMVCA:GetAgency(ModuleId.XEquip):GetEquipSuitSuitType(b.SuitId)
local priorityA = priorityDic[suitTypeA] or 100000
local priorityB = priorityDic[suitTypeB] or 100000
if priorityA ~= priorityB then
return priorityA < priorityB
end
-- 按照意识套装ID从大到小排序
return a.SuitId > b.SuitId
end)
-- 全部按钮
local allCount = 0
for _, suitInfo in ipairs(suitInfoList) do
allCount = allCount + suitInfo.Count
end
table.insert(suitInfoList, 1, { SuitId = 0, Count = allCount})
return suitInfoList
end
-------------------------------------#region 意识套装滑动列表 XUiPanelSuitList --------------------------------
function XUiPanelSuitList:Ctor(rootUi, ui)
self.RootUi = rootUi
self.GameObject = ui.gameObject
self.Transform = ui.transform
self:InitDynamicTable()
end
function XUiPanelSuitList:InitDynamicTable()
self.DynamicTable = XDynamicTableNormal.New(self.GameObject)
self.DynamicTable:SetDelegate(self)
self.DynamicTable:SetProxy(XUiGridSuitDetail)
end
function XUiPanelSuitList:UpdateSuitList(suitInfoList)
XTool.ReverseList(suitInfoList) -- 从下往上反序显示
self.SuitInfoList = suitInfoList
self.DynamicTable:SetDataSource(self.SuitInfoList)
self.DynamicTable:ReloadDataASync(#self.SuitInfoList > 0 and #self.SuitInfoList or -1)
end
function XUiPanelSuitList:OnDynamicTableEvent(event, index, grid)
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
grid:Init(self.RootUi)
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
local suitInfo = self.SuitInfoList[index]
local isSelect = suitInfo.SuitId == self.RootUi.SelectSuitId
grid:Refresh(suitInfo, isSelect)
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_TOUCHED then
local suitInfo = self.SuitInfoList[index]
self.RootUi:OnSelectSuit(suitInfo.SuitId)
end
end
-------------------------------------#endregion 意识套装滑动列表 XUiPanelSuitList --------------------------------
-------------------------------------#region XUiGridSuitDetail --------------------------------
function XUiGridSuitDetail:Ctor(ui)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XTool.InitUiObject(self)
end
function XUiGridSuitDetail:Init(rootUi)
self.RootUi = rootUi
end
function XUiGridSuitDetail:Refresh(suitInfo, isSelect)
local state = isSelect and SELECT or NORMAL
self.UiButton:SetButtonState(state)
self.UiButton.TempState = state
local stateObjList = { self.Normal, self.Press, self.Select }
for _, showObj in ipairs(stateObjList) do
local isAll = suitInfo.SuitId == ALL_SUIT_ID
showObj:GetObject("ImgSuitIcon").gameObject:SetActiveEx(not isAll)
showObj:GetObject("TxtSuitDesc").gameObject:SetActiveEx(not isAll)
if isAll then
showObj:GetObject("TxtSuitName").text = XUiHelper.GetText("ScreenAll")
showObj:GetObject("TxtNumber").text = "x" .. suitInfo.Count
else
showObj:GetObject("TxtSuitName").text = XMVCA:GetAgency(ModuleId.XEquip):GetEquipSuitName(suitInfo.SuitId)
showObj:GetObject("TxtNumber").text = "x" .. suitInfo.Count
local iconPath = XMVCA:GetAgency(ModuleId.XEquip):GetEquipSuitIconPath(suitInfo.SuitId)
showObj:GetObject("ImgSuitIcon"):SetSprite(iconPath)
showObj:GetObject("TxtSuitDesc").text = XMVCA:GetAgency(ModuleId.XEquip):GetEquipSuitDescription(suitInfo.SuitId)
end
end
end
-------------------------------------#endregion XUiGridSuitDetail --------------------------------
return XUiEquipAwarenessReplaceV2P6