PGRData/Script/matrix/xui/xuiequip/XUiEquipAwarenessReplaceV2P6.lua
2024-09-01 22:49:41 +02:00

612 lines
23 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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