211 lines
5.8 KiB
Plaintext
211 lines
5.8 KiB
Plaintext
local BaseCell = autoImport("BaseCell");
|
|
TeamInviteMembCell = class("TeamInviteMembCell", BaseCell)
|
|
|
|
autoImport("PlayerFaceCell");
|
|
|
|
TeamInviteMemberType = {
|
|
Friend = 1,
|
|
GuildMember = 2,
|
|
NearlyTeamMember = 3,
|
|
MemberCat = 4,
|
|
}
|
|
|
|
function TeamInviteMembCell:Init()
|
|
self:InitCell();
|
|
end
|
|
|
|
function TeamInviteMembCell:InitCell()
|
|
local portrait = self:FindGO("Portrait");
|
|
self.faceCell = PlayerFaceCell.new(portrait);
|
|
self:AddClickEvent(portrait, function (go)
|
|
if(self.data)then
|
|
local type, sdata = self.data.type, self.data.data;
|
|
local ptdata = PlayerTipData.new();
|
|
local funckeys;
|
|
if(type == TeamInviteMemberType.Friend or type == TeamInviteMemberType.NearlyTeamMember)then
|
|
ptdata:SetByFriendData(sdata);
|
|
elseif(type == TeamInviteMemberType.GuildMember)then
|
|
ptdata:SetByGuildMemberData(sdata);
|
|
elseif(type == TeamInviteMemberType.MemberCat)then
|
|
funckeys = {"ShowDetail", "FireHireman"};
|
|
ptdata:SetByTeamMemberData(sdata);
|
|
end
|
|
local tipData = {
|
|
playerData = ptdata,
|
|
funckeys = funckeys,
|
|
};
|
|
local sp = portrait:GetComponent(UIWidget);
|
|
local playerTip = FunctionPlayerTip.Me():GetPlayerTip(sp, NGUIUtil.AnchorSide.Right);
|
|
playerTip:SetData(tipData);
|
|
playerTip.clickcallback = function (funcData)
|
|
if(funcData.key == "SendMessage")then
|
|
self.eventType = "CloseUI";
|
|
self:PassEvent(MouseEvent.MouseClick, self);
|
|
end
|
|
end
|
|
end
|
|
end);
|
|
|
|
self.name = self:FindComponent("Name", UILabel);
|
|
self.lv = self:FindComponent("Lv", UILabel);
|
|
self.pro = self:FindComponent("Pro", UILabel);
|
|
|
|
self.restTip = self:FindGO("RestTip");
|
|
self.restTime = self:FindComponent("RestTime", UILabel);
|
|
|
|
self.inviteButton = self:FindGO("InviteButton");
|
|
|
|
self:AddClickEvent(self.inviteButton, function (go)
|
|
if(self.buttonActive)then
|
|
self:PassEvent(MouseEvent.MouseClick, self);
|
|
-- self:ActiveInviteButton(false);
|
|
end
|
|
end);
|
|
|
|
self.inviteLabel = self:FindComponent("Label", UILabel, self.inviteButton);
|
|
end
|
|
|
|
function TeamInviteMembCell:SetData(data)
|
|
self.data = data;
|
|
if(data)then
|
|
self:Show(self.gameObject);
|
|
local sdata = data.data;
|
|
if(data.type == TeamInviteMemberType.Friend or
|
|
data.type == TeamInviteMemberType.NearlyTeamMember)then
|
|
self.name.text = sdata.name;
|
|
local proData = sdata.profession and Table_Class[sdata.profession]
|
|
if(proData)then
|
|
self.lv.text = "Lv."..sdata.level;
|
|
self.pro.text = proData.NameZh;
|
|
end
|
|
|
|
local headImageData = HeadImageData.new();
|
|
headImageData:TransByFriendData(sdata);
|
|
self.faceCell:SetData(headImageData);
|
|
elseif(data.type == TeamInviteMemberType.GuildMember)then
|
|
self.name.text = sdata.name;
|
|
self.lv.text = "Lv."..sdata.baselevel;
|
|
local proData = sdata.profession and Table_Class[sdata.profession]
|
|
if(proData)then
|
|
self.pro.text = proData.NameZh;
|
|
end
|
|
|
|
local headImageData = HeadImageData.new();
|
|
headImageData:TransByGuildMemberData(sdata);
|
|
self.faceCell:SetData(headImageData);
|
|
|
|
elseif(data.type == TeamInviteMemberType.MemberCat)then
|
|
self.name.text = sdata.name;
|
|
self.lv.text = "Lv."..tostring(sdata.baselv);
|
|
if(sdata:IsHireMember())then
|
|
self.pro.text = string.format(ZhString.TeamInviteMembCell_MasterTip, sdata.mastername);
|
|
else
|
|
local proData = sdata.profession and Table_Class[sdata.profession]
|
|
if(proData)then
|
|
self.pro.text = proData.NameZh;
|
|
end
|
|
end
|
|
UIUtil.WrapLabel (self.pro);
|
|
|
|
local headImageData = HeadImageData.new();
|
|
headImageData:TransByTeamMemberData(sdata);
|
|
self.faceCell:SetData(headImageData);
|
|
end
|
|
|
|
local isInTeam = TeamProxy.Instance:IsInMyTeam(data.id);
|
|
self:ActiveInviteButton(not isInTeam);
|
|
|
|
else
|
|
self:Hide(self.gameObject);
|
|
end
|
|
|
|
self:UpdateRestTip();
|
|
end
|
|
|
|
function TeamInviteMembCell:ActiveInviteButton(b, nosetlab)
|
|
self.buttonActive = b;
|
|
|
|
if(nosetlab ~= true)then
|
|
self.inviteLabel.text = b and ZhString.TeamInviteMembCell_Invite or ZhString.TeamInviteMembCell_Invited;
|
|
end
|
|
if(b)then
|
|
self:SetTextureColor(self.inviteButton, Color(1,1,1));
|
|
else
|
|
self:SetTextureGrey(self.inviteButton);
|
|
end
|
|
end
|
|
|
|
function TeamInviteMembCell:UpdateRestTip()
|
|
if(self.data == nil or TeamInviteMemberType.MemberCat ~= self.data.type)then
|
|
self:RemoveRestTimeTick();
|
|
self.eventType = "Invite";
|
|
self.restTip:SetActive(false);
|
|
return;
|
|
end
|
|
|
|
local sdata = self.data.data;
|
|
local expiretime = sdata.expiretime or 0;
|
|
|
|
local curtime = ServerTime.CurServerTime()/1000;
|
|
if(expiretime~=0 and curtime >= expiretime)then
|
|
self.eventType = "Hire";
|
|
|
|
self.faceCell:SetIconActive(false);
|
|
|
|
self.restTip:SetActive(true);
|
|
self.restTime.text = ZhString.TeamInviteMembCell_ExpireTime;
|
|
|
|
self.inviteLabel.text = ZhString.TeamInviteMembCell_ReHire;
|
|
if(sdata and sdata.masterid ~= Game.Myself.data.id)then
|
|
self:ActiveInviteButton(false, true);
|
|
end
|
|
else
|
|
self.eventType = "Invite";
|
|
|
|
local resttime = sdata and sdata.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.faceCell:SetIconActive(false);
|
|
else
|
|
self.restTip:SetActive(false);
|
|
|
|
self:RemoveRestTimeTick();
|
|
end
|
|
end
|
|
end
|
|
|
|
function TeamInviteMembCell:UpdateRestTime()
|
|
local sdata = self.data.data;
|
|
local resttime = sdata and sdata.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.TeamInviteMembCell_RestTime, min , sec)
|
|
else
|
|
self:RemoveRestTimeTick();
|
|
end
|
|
end
|
|
|
|
function TeamInviteMembCell:RemoveRestTimeTick()
|
|
if(self.restTimeTick)then
|
|
TimeTickManager.Me():ClearTick(self, 1)
|
|
self.restTimeTick = nil;
|
|
|
|
self.faceCell:SetIconActive(true);
|
|
self.restTime.text = "";
|
|
end
|
|
end
|
|
|
|
function TeamInviteMembCell:OnRemove()
|
|
self:RemoveRestTimeTick();
|
|
end
|
|
|
|
|