214 lines
6.0 KiB
Plaintext
214 lines
6.0 KiB
Plaintext
autoImport("PlayerFaceCell")
|
|
|
|
local BaseCell = autoImport("BaseCell")
|
|
TMInfoCell = class("TMInfoCell", BaseCell)
|
|
|
|
function TMInfoCell:Init()
|
|
TMInfoCell.super.Init(self);
|
|
|
|
local teamHead = self:FindGO("TeamHead");
|
|
self.teamHead = PlayerFaceCell.new(teamHead);
|
|
self.teamHead:AddIconEvent();
|
|
self.teamHead:SetMinDepth(40);
|
|
self.teamHead:SetHeadIconPos(false);
|
|
|
|
self.headData = HeadImageData.new();
|
|
|
|
-- self.proObj = {};
|
|
-- table.insert(self.proObj, self.proIcon.gameObject);
|
|
-- local dirObj = self:FindGO("PosDir");
|
|
-- table.insert(self.proObj, dirObj);
|
|
|
|
self.emptyButton = self:FindGO("EmptyButton");
|
|
self.emptyButton_None = self:FindGO("None", self.emptyButton);
|
|
self.emptyButton_SearchingTeam = self:FindGO("SearchingTeam", self.emptyButton);
|
|
self.emptyButton_InviteMember = self:FindGO("InviteMember", self.emptyButton);
|
|
self.zoneInfo = self:FindGO("ZoneInfo");
|
|
self.zoneId = self:FindComponent("ZoneId", UILabel);
|
|
self.zoneHead = self:FindComponent("ZoneHead", UISprite);
|
|
self.restTip = self:FindGO("RestTip");
|
|
self.restTime = self:FindComponent("RestTime", UILabel);
|
|
|
|
self:AddCellClickEvent();
|
|
end
|
|
|
|
function TMInfoCell:SetData(data)
|
|
self.data = data;
|
|
|
|
--Debug.Log("----------------------self.data.id:"..self.data.id)
|
|
|
|
if(data == MyselfTeamData.EMPTY_STATE)then
|
|
self.teamHead:SetData(nil);
|
|
self.emptyButton:SetActive( true );
|
|
|
|
self:UpdateEmptyState();
|
|
self:SetZoneId();
|
|
self:RemoveRestTimeTick();
|
|
elseif(data ~= nil)then
|
|
self.id = self.data.id
|
|
self.headData:Reset();
|
|
self.headData:TransByTeamMemberData(data);
|
|
self.teamHead:SetData(self.headData);
|
|
|
|
self:UpdateFollow();
|
|
self:UpdateImageCreator();
|
|
self:SetZoneId( data.zoneid, data:IsOffline(), data.gender );
|
|
|
|
self.teamHead.level.text = data.baselv;
|
|
|
|
UIUtil.WrapLabel(self.teamHead.name);
|
|
|
|
self.emptyButton:SetActive( false );
|
|
|
|
self:UpdateRestTip();
|
|
else
|
|
self.teamHead:SetData(nil);
|
|
end
|
|
end
|
|
|
|
function TMInfoCell:UpdateEmptyState()
|
|
if( not TeamProxy.Instance:IHaveTeam() )then
|
|
self.emptyButton_InviteMember:SetActive(false);
|
|
|
|
local isEntering = TeamProxy.Instance:IsQuickEntering();
|
|
self.emptyButton_SearchingTeam:SetActive(isEntering);
|
|
self.emptyButton_None:SetActive(not isEntering);
|
|
else
|
|
self.emptyButton_InviteMember:SetActive(true);
|
|
|
|
self.emptyButton_SearchingTeam:SetActive(false);
|
|
self.emptyButton_None:SetActive(false);
|
|
end
|
|
end
|
|
|
|
function TMInfoCell:UpdateFollow()
|
|
local data = self.data;
|
|
if(data and data~=MyselfTeamData.EMPTY_STATE)then
|
|
local followid = Game.Myself:Client_GetFollowLeaderID();
|
|
local handFollowerId = Game.Myself:Client_GetHandInHandFollower();
|
|
local isHanding = Game.Myself:Client_IsFollowHandInHand();
|
|
|
|
local handTargetId = isHanding and followid or handFollowerId;
|
|
if(handTargetId == data.id)then
|
|
self.teamHead.symbols:Active(PlayerFaceCell_SymbolType.Follow, true);
|
|
self.teamHead.symbols:SetSprite(PlayerFaceCell_SymbolType.Follow, "icon_hands");
|
|
elseif(followid == data.id)then
|
|
self.teamHead.symbols:Active(PlayerFaceCell_SymbolType.Follow, true);
|
|
self.teamHead.symbols:SetSprite(PlayerFaceCell_SymbolType.Follow, "main_icon_2");
|
|
else
|
|
self.teamHead.symbols:Active(PlayerFaceCell_SymbolType.Follow, false);
|
|
end
|
|
else
|
|
self.teamHead.symbols:Active(PlayerFaceCell_SymbolType.Follow, false);
|
|
end
|
|
end
|
|
|
|
function TMInfoCell:UpdateImageCreator()
|
|
if(type(self.data) == "table")then
|
|
local imageUserId = TeamProxy.Instance:GetItemImageUser()
|
|
self.teamHead.symbols:Active(PlayerFaceCell_SymbolType.ImageCreate, self.data.id == imageUserId);
|
|
else
|
|
self.teamHead.symbols:Active(PlayerFaceCell_SymbolType.ImageCreate, false);
|
|
end
|
|
end
|
|
|
|
function TMInfoCell:SetZoneId( zoneId, offline, gender )
|
|
if(not offline and zoneId and zoneId~=0 and zoneId~=MyselfProxy.Instance:GetZoneId() )then
|
|
self.teamHead:HideIcon();
|
|
self.zoneInfo:SetActive(true);
|
|
|
|
self.zoneId.text = ChangeZoneProxy.Instance:ZoneNumToString(zoneId); -- ZhString.TMInfoCell_line
|
|
|
|
self.zoneHead.spriteName = gender == 1 and "persona_bg_hair1" or "persona_bg_hair2";
|
|
else
|
|
self.zoneInfo:SetActive(false);
|
|
end
|
|
end
|
|
|
|
function TMInfoCell:UpdateHp(value)
|
|
self.teamHead:UpdateHp(value);
|
|
end
|
|
|
|
function TMInfoCell:UpdateMp(value)
|
|
self.teamHead:UpdateMp(value);
|
|
end
|
|
|
|
function TMInfoCell:UpdateRestTip()
|
|
if(type(self.data)~="table")then
|
|
self.restTip:SetActive(false);
|
|
self:RemoveRestTimeTick();
|
|
return;
|
|
end
|
|
|
|
local expiretime = self.data.expiretime;
|
|
local curtime = ServerTime.CurServerTime()/1000;
|
|
if(expiretime ~= 0 and curtime >= expiretime)then
|
|
self.teamHead:SetIconActive(false);
|
|
|
|
self.restTip:SetActive(true);
|
|
self.restTime.text = ZhString.TeamInviteMembCell_ExpireTime;
|
|
self.teamHead.name.gameObject:SetActive(false);
|
|
else
|
|
local resttime = self.data.resttime;
|
|
resttime = resttime or 0;
|
|
local restSec = resttime - curtime;
|
|
if(restSec > 0)then
|
|
self.restTip:SetActive(true);
|
|
|
|
if(not self.restTimeTick)then
|
|
self.restTimeTick = TimeTickManager.Me():CreateTick(0, 1000, self.UpdateRestTime, self)
|
|
end
|
|
self.teamHead:SetIconActive(false);
|
|
self.teamHead.name.gameObject:SetActive(false);
|
|
else
|
|
self.restTip:SetActive(false);
|
|
|
|
self:RemoveRestTimeTick();
|
|
end
|
|
end
|
|
end
|
|
|
|
function TMInfoCell:UpdateRestTime()
|
|
if(type(self.data)~="table")then
|
|
self.restTip:SetActive(false);
|
|
self:RemoveRestTimeTick();
|
|
return;
|
|
end
|
|
|
|
local resttime = self.data and self.data.resttime;
|
|
resttime = resttime or 0;
|
|
local restSec = resttime - ServerTime.CurServerTime()/1000;
|
|
if(restSec > 0)then
|
|
local min,sec = ClientTimeUtil.GetFormatSecTimeStr( restSec )
|
|
self.restTime.text = string.format(ZhString.TMInfoCell_RestTip, min , sec)
|
|
else
|
|
self:RemoveRestTimeTick();
|
|
end
|
|
end
|
|
|
|
function TMInfoCell:RemoveRestTimeTick()
|
|
if(self.restTimeTick)then
|
|
TimeTickManager.Me():ClearTick(self, 1)
|
|
self.restTimeTick = nil;
|
|
|
|
self.restTime.text = "";
|
|
end
|
|
if(self.headData and self.headData.offline~=true)then
|
|
self.teamHead:SetIconActive(true, true);
|
|
else
|
|
self.teamHead:SetIconActive(false, false);
|
|
end
|
|
self.teamHead.name.gameObject:SetActive(true);
|
|
end
|
|
|
|
function TMInfoCell:UpdateMemberPos()
|
|
end
|
|
|
|
function TMInfoCell:OnRemove()
|
|
self.teamHead:RemoveIconEvent();
|
|
self:RemoveRestTimeTick();
|
|
end
|
|
|
|
|
|
|