PGRData/Script/matrix/xui/xuirift/grid/XUiGridRiftQuickDeployMember.lua
2024-09-01 22:49:41 +02:00

77 lines
No EOL
2.5 KiB
Lua

local XUiGridRiftQuickDeployMember = XClass(nil, "XUiGridRiftQuickDeployMember")
local MEMBER_POS_COLOR = {
"FF1111FF", -- red
"4F99FFFF", -- blue
"F9CB35FF", -- yellow
}
function XUiGridRiftQuickDeployMember:Ctor(ui, pos, clickCb)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.Pos = pos
self.ClickCb = clickCb
XTool.InitUiObject(self)
self:InitComponent()
end
function XUiGridRiftQuickDeployMember:InitComponent()
self.RImgRole.gameObject:SetActiveEx(false)
self.ImgLeader.gameObject:SetActiveEx(false)
self.ImgFirstRole.gameObject:SetActiveEx(false)
self.ImgAbility.gameObject:SetActiveEx(false)
self.ImgSelect.gameObject:SetActiveEx(false)
self.PanelEffect.gameObject:SetActiveEx(false)
self.BtnMember.CallBack = function() self:OnMemberClick() end
local color = XUiHelper.Hexcolor2Color(MEMBER_POS_COLOR[self.Pos])
self.ImgLeftSkill.color = color
self.ImgRightSkill.color = color
self.PanelEffectRT = self.PanelEffect:GetComponent("RectTransform")
self.PanelViewRT = self.Transform.parent.parent.parent.parent:GetComponent("RectTransform")
end
function XUiGridRiftQuickDeployMember:Refresh(xTeam)
self.XTeam = xTeam
local roleId = xTeam:GetEntityIdByTeamPos(self.Pos)
self.XRole = XDataCenter.RiftManager.GetEntityRoleById(roleId)
if self.XRole then
self.RImgRole.gameObject:SetActiveEx(true)
self.RImgRole:SetRawImage(self.XRole:GetSmallHeadIcon())
else
self.RImgRole.gameObject:SetActiveEx(false)
end
self.PanelEffect.gameObject:SetActiveEx(false)
self.TryTag.gameObject:SetActiveEx(self.XRole and self.XRole:GetIsRobot())
end
function XUiGridRiftQuickDeployMember:OnMemberClick()
if self.ClickCb then
self.ClickCb(self, self.XRole)
end
end
function XUiGridRiftQuickDeployMember:ShowEffect()
--判断特效父节点是否在滑动视口内
if not self.PanelEffectRT:Overlaps(self.PanelViewRT) then return end
self.PanelEffect.gameObject:SetActiveEx(false)
self.PanelEffect.gameObject:SetActiveEx(true)
end
function XUiGridRiftQuickDeployMember:SetSelect(value)
self.ImgSelect.gameObject:SetActiveEx(value)
end
function XUiGridRiftQuickDeployMember:RefreshCaptainPos(captainPos)
self.ImgLeader.gameObject:SetActiveEx(self.Pos == captainPos)
end
function XUiGridRiftQuickDeployMember:RefreshFirstFightPos(firstFightPos)
self.ImgFirstRole.gameObject:SetActiveEx(self.Pos == firstFightPos)
end
return XUiGridRiftQuickDeployMember