2025-06-04 05:02:57 +08:00

168 lines
5.3 KiB
Plaintext

local BaseCell = autoImport("BaseCell");
GuildMemberCell = class("GuildMemberCell", BaseCell);
-- autoImport("ItemCell")
local MAXARTIFACT = 6
function GuildMemberCell:Init()
self.widget = self.gameObject:GetComponent(UIWidget);
self.name = self:FindComponent("Name", UILabel);
self.lv = self:FindComponent("Lv", UILabel);
self.pro = self:FindComponent("Pro", UILabel);
self.job = self:FindComponent("Job", UILabel);
self.weekContri = self:FindComponent("WeekContri", UILabel);
self.contribution = self:FindComponent("Contribution", UILabel);
self.offlineTime = self:FindComponent("OffTime", UILabel);
self.sex = self:FindComponent("Sex", UISprite);
self.currentline = self:FindComponent("CurrentLine", UILabel);
self.artifactPos = self:FindGO("ArtifactPos")
self.Voice = self:FindGO("Voice")
self.VoiceSwitch = self:FindGO("VoiceSwitch")
self.VoiceSwitchOpen = self:FindGO("Open",self.VoiceSwitch)
self.Voice_UISpirte = self:FindGO("Voice"):GetComponent(UISprite)
if self:FindGO("VoiceSwitch") then
self.VoiceSwitch_UISprite = self:FindGO("VoiceSwitch"):GetComponent(UISprite)
self.VoiceSwitchOpen_UISprite = self:FindGO("Open",self.VoiceSwitch):GetComponent(UISprite)
self.VoiceSwitchOpen_UISprite.spriteName = "Voice_btn_circle"
self:AddClickEvent(self.VoiceSwitch.gameObject,function ()
if GVoiceProxy.Instance:GetCurGuildRealTimeVoiceCount()+1>GameConfig.Guild.realtime_voice_limit and self.curVoiceSwitchState==false then
--25860
MsgManager.ShowMsgByID(25860)
else
if self.curVoiceSwitchState == true then
helplog("if curVoiceSwitchState == true then")
ServiceGuildCmdProxy.Instance:CallOpenRealtimeVoiceGuildCmd(self.data.id,false)
else
helplog("if curVoiceSwitchState == false then")
ServiceGuildCmdProxy.Instance:CallOpenRealtimeVoiceGuildCmd(self.data.id,true)
end
end
end)
self.VoiceSwitch.gameObject:SetActive(false)
self.VoiceSwitchOpen.gameObject:SetActive(false)
end
self:AddCellClickEvent();
end
function GuildMemberCell:ShowVoiceSwitch()
self.VoiceSwitch.gameObject:SetActive(true)
self.Voice.gameObject:SetActive(true)
self.VoiceSwitch.gameObject:SetActive(true)
self.VoiceSwitchOpen.gameObject:SetActive(true)
end
local tempVector3 = LuaVector3.zero
function GuildMemberCell:SetVoiceSwitchState(b)
if self.VoiceSwitchOpen_UISprite then
self.VoiceSwitchOpen_UISprite.height = 40
self.VoiceSwitchOpen_UISprite.width = 40
if b then
self.VoiceSwitchOpen_UISprite.spriteName = "Voice_btn_circle"
self.VoiceSwitch_UISprite.spriteName = "Voice_bg_line"
self.Voice_UISpirte.spriteName = "ui_guild_microphone_JM"
tempVector3:Set(-19,0,0)
self.VoiceSwitchOpen.gameObject.transform.localPosition = tempVector3
else
self.VoiceSwitchOpen_UISprite.spriteName = "Voice_btn_circle"
self.VoiceSwitch_UISprite.spriteName = "Voice_bg_line2"
self.Voice_UISpirte.spriteName = "ui_team_voice"
tempVector3:Set(19,0,0)
self.VoiceSwitchOpen.gameObject.transform.localPosition = tempVector3
end
self.curVoiceSwitchState = b
end
end
function GuildMemberCell:SetData(data)
self.data = data;
if(data)then
self.gameObject:SetActive(true);
-- helplog("-------> member charID: ",data.id);
self.artiData = ArtifactProxy.Instance:GetMemberArti(data.id)
if(self.artiData)then
self:Show(self.artifactPos)
self:SetMemberArtifact(self.artiData)
else
self:Hide(self.artifactPos)
end
self.name.text = data.name;
self.lv.text = data.baselevel;
self.pro.text = data.profession and Table_Class[data.profession] and Table_Class[data.profession].NameZh;
self.job.text = data:GetJobName();
self.contribution.text = data.totalcontribution or 0;
self.weekContri.text = data.weekcontribution;
self.sex.spriteName = data:IsBoy() and "friend_icon_man" or "friend_icon_woman"
self.widget.alpha = data:IsOffline() and 0.7 or 1;
self:UpdateTimeSymbol();
if GVoiceProxy.Instance:IsThisCharIdRealtimeVoiceAvailable(data.id) then
self:SetVoiceSwitchState(true)
self.Voice.gameObject:SetActive(true)
else
self:SetVoiceSwitchState(false)
end
else
self.gameObject:SetActive(false);
end
end
local baseDepth = 9
function GuildMemberCell:SetMemberArtifact(artiData)
-- helplog("#artiData : ",#artiData,"self.id: ",self.id)
if(not self.artifacts)then
self.artifacts = {};
for i=1,MAXARTIFACT do
self.artifacts[i] = self:FindComponent("arti"..i,UISprite);
end
end
for i=1,MAXARTIFACT do
if(self.artifacts[i] and #artiData>=i)then
self:Show(self.artifacts[i].gameObject)
if(artiData[i] and artiData[i].itemID)then
local icon = artiData[i].itemStaticData and artiData[i].itemStaticData.Icon or ""
IconManager:SetItemIcon(icon, self.artifacts[i]);
end
else
self:Hide(self.artifacts[i].gameObject)
end
end
end
function GuildMemberCell:UpdateTimeSymbol()
local data = self.data;
self.offlineTime.text = ClientTimeUtil.GetFormatOfflineTimeStr(data.offlinetime);
if(not data:IsOffline() and data.zoneid ~= MyselfProxy.Instance:GetZoneId())then
self.currentline.gameObject:SetActive(true);
self.offlineTime.gameObject:SetActive(false);
self.currentline.text = ChangeZoneProxy.Instance:ZoneNumToString(data.zoneid); -- ZhString.GuildMemberCell_line
else
self.offlineTime.gameObject:SetActive(true);
self.currentline.gameObject:SetActive(false);
end
end