304 lines
7.5 KiB
Plaintext
304 lines
7.5 KiB
Plaintext
local BaseCell = autoImport("BaseCell");
|
|
PlayerFaceCell = class("PlayerFaceCell", BaseCell)
|
|
|
|
autoImport("HeadIconCell");
|
|
autoImport("FrameCell");
|
|
|
|
PlayerFaceCell_SymbolType = {
|
|
JoinHand = "SymbolType_JoinHand",
|
|
Follow = "SymbolType_Follow",
|
|
ImageCreate = "SymbolType_ImageCreate",
|
|
}
|
|
|
|
function PlayerFaceCell:Init()
|
|
self.profession = self:FindGO("profession");
|
|
|
|
|
|
|
|
self.proIcon = self:FindComponent("Icon", UISprite, self.profession);
|
|
self.proColor = self:FindComponent("Color", UISprite, self.profession);
|
|
-- temp change
|
|
if(self.proIcon)then
|
|
self.proIcon.transform.localPosition = Vector3(0,4.5,0);
|
|
end
|
|
if(self.proColor)then
|
|
self.proColor.width = 32;
|
|
self.proColor.height = 32;
|
|
self.proColor.spriteName = "com_icon_profession";
|
|
self.proColor.transform.localPosition = Vector3(0,4.5,0);
|
|
end
|
|
|
|
self.name = self:FindComponent("name", UILabel);
|
|
self.level = self:FindComponent("level", UILabel);
|
|
self.vip = self:FindComponent("vip", UILabel);
|
|
self.hp = self:FindComponent("hp", UISlider);
|
|
self.mp = self:FindComponent("mp", UISlider);
|
|
|
|
self.levelBg = self:FindGO("bg_head")
|
|
self.leadsymbol1 = self:FindGO("leadsymbol1");
|
|
self.leadsymbol2 = self:FindGO("leadsymbol2");
|
|
|
|
self.headIconCell = HeadIconCell.new();
|
|
self.headIconCell:CreateSelf(self.gameObject);
|
|
self.headIconCell:SetMinDepth(3);
|
|
|
|
self:UpdateHeadIconPos();
|
|
|
|
local frameObj = self:FindGO("PlayerFrameCell");
|
|
if(frameObj)then
|
|
self.frame = FrameCell.new(frameObj);
|
|
end
|
|
|
|
self:InitSymbols();
|
|
|
|
self:AddCellClickEvent();
|
|
end
|
|
|
|
function PlayerFaceCell:InitSymbols()
|
|
self.symbols = {};
|
|
self.symbols.rePosition = self:FindComponent("SymbolsGrid", UIGrid);
|
|
|
|
self.symbols[PlayerFaceCell_SymbolType.ImageCreate] = self:FindComponent("ImageCreateor", UISprite);
|
|
self.symbols[PlayerFaceCell_SymbolType.Follow] = self:FindComponent("FollowState", UISprite);
|
|
|
|
self.symbols.RePosition = function (symbols)
|
|
if(symbols.rePosition)then
|
|
symbols.rePosition:Reposition();
|
|
end
|
|
end
|
|
|
|
self.symbols.SetSprite = function (symbols, symbolType, spriteName)
|
|
if(symbols[symbolType])then
|
|
symbols[symbolType].spriteName = spriteName;
|
|
end
|
|
end
|
|
|
|
self.symbols.Active = function (symbols, symbolType, b)
|
|
if(symbols[symbolType])then
|
|
symbols[symbolType].gameObject:SetActive(b);
|
|
symbols:RePosition();
|
|
end
|
|
end
|
|
end
|
|
|
|
function PlayerFaceCell:HideHpMp()
|
|
self:Hide(self.hp)
|
|
self:Hide(self.mp)
|
|
self:UpdateHeadIconPos();
|
|
end
|
|
|
|
function PlayerFaceCell:UpdateHeadIconPos()
|
|
if(self.headIconCell)then
|
|
local isUp = self.hp and self.mp and self.hp.gameObject.activeSelf and self.mp.gameObject.activeSelf
|
|
self:SetHeadIconPos(isUp);
|
|
end
|
|
end
|
|
|
|
function PlayerFaceCell:SetHeadIconPos(isUp)
|
|
local avatarPars = self.headIconCell.avatarPars;
|
|
if(isUp)then
|
|
avatarPars.transform.localPosition = Vector3(0, -38, 0);
|
|
else
|
|
avatarPars.transform.localPosition = Vector3(0, -54, 0);
|
|
end
|
|
end
|
|
|
|
function PlayerFaceCell:HideLevel( )
|
|
self:Hide(self.level.gameObject)
|
|
self:Hide(self.levelBg)
|
|
end
|
|
|
|
-- HeadImageData
|
|
function PlayerFaceCell:SetData(data)
|
|
self.data = data;
|
|
|
|
if(nil == data)then
|
|
self:Hide();
|
|
return;
|
|
end
|
|
self:Show();
|
|
|
|
if(self.name)then
|
|
self.name.text = data.name or "";
|
|
UIUtil.WrapLabel (self.name)
|
|
end
|
|
if(self.headIconCell)then
|
|
if(data.iconData)then
|
|
if(data.iconData.type == HeadImageIconType.Avatar)then
|
|
self.headIconCell:SetData(data.iconData);
|
|
elseif(data.iconData.type == HeadImageIconType.Simple)then
|
|
self.headIconCell:SetSimpleIcon(data.iconData.icon);
|
|
end
|
|
-- 頭像置灰
|
|
self:SetIconActive(data.offline ~= true, true);
|
|
end
|
|
end
|
|
|
|
self:SetPlayerPro( data );
|
|
|
|
if(self.level)then
|
|
self.level.text = data.level and string.format("Lv.%s", data.level) or "";
|
|
end
|
|
if(self.vip)then
|
|
self.vip.text = data.vip and string.format("Lv.%s", data.vip) or "";
|
|
end
|
|
|
|
self:SetTeamLeaderSymbol(data.job);
|
|
|
|
self:UpdateHp(data.hp);
|
|
self:UpdateMp(data.mp);
|
|
end
|
|
|
|
function PlayerFaceCell:SetPlayerPro( data )
|
|
if(self.profession)then
|
|
if(type(data.profession) == "number")then
|
|
local proData = Table_Class[data.profession];
|
|
if(proData)then
|
|
if(IconManager:SetProfessionIcon(proData.icon, self.proIcon))then
|
|
self.profession.gameObject:SetActive(true);
|
|
local colorKey = "CareerIconBg"..proData.Type;
|
|
self.proColorSave = ColorUtil[colorKey]
|
|
self.proColor.color = ColorUtil[colorKey];
|
|
else
|
|
self.profession.gameObject:SetActive(false);
|
|
end
|
|
else
|
|
errorLog(string.format("%d not Config", data.profession));
|
|
end
|
|
|
|
elseif(type(data.profession) == "string")then
|
|
if(IconManager:SetProfessionIcon(data.profession, self.proIcon)
|
|
or IconManager:SetUIIcon(data.profession, self.proIcon))then
|
|
self.profession.gameObject:SetActive(true);
|
|
else
|
|
self.profession.gameObject:SetActive(false);
|
|
end
|
|
else
|
|
self.profession.gameObject:SetActive(false);
|
|
end
|
|
self.proIcon.width = 32;
|
|
|
|
self:SetGoGrey(self.profession, data.offline);
|
|
end
|
|
end
|
|
|
|
function PlayerFaceCell:SetIconActive(b, anim)
|
|
self.headIconCell:SetActive(b, anim)
|
|
end
|
|
|
|
function PlayerFaceCell:SetGoGrey(go, isTo)
|
|
if(isTo)then
|
|
self:SetTextureGrey(go);
|
|
else
|
|
local sprites = UIUtil.GetAllComponentsInChildren(go, UISprite, true);
|
|
for i=1,#sprites do
|
|
if(sprites[i].color == Color(1/255,2/255,3/255))then
|
|
sprites[i].color = Color(1,1,1);
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function PlayerFaceCell:SetGoGreyMP()
|
|
self:SetIconActive(false, true)
|
|
|
|
self.profession = self:FindGO("profession");
|
|
local sprites = UIUtil.GetAllComponentsInChildren(self.profession, UISprite, true);
|
|
for i=1,#sprites do
|
|
sprites[i].color = Color(1/255,2/255,3/255)
|
|
end
|
|
|
|
end
|
|
|
|
function PlayerFaceCell:SetGoNormalMP()
|
|
self:SetIconActive(true, true)
|
|
|
|
self.profession = self:FindGO("profession");
|
|
local sprites = UIUtil.GetAllComponentsInChildren(self.profession, UISprite, true);
|
|
for i=1,#sprites do
|
|
sprites[i].color = Color(1,1,1)
|
|
end
|
|
|
|
if self.proColorSave~=nil then
|
|
self.proColor.color = self.proColorSave
|
|
end
|
|
|
|
end
|
|
|
|
function PlayerFaceCell:SetTeamLeaderSymbol(jobType)
|
|
if(self.leadsymbol1)then
|
|
self.leadsymbol1:SetActive(jobType == SessionTeam_pb.ETEAMJOB_LEADER);
|
|
end
|
|
if(self.leadsymbol2)then
|
|
self.leadsymbol2:SetActive(jobType == SessionTeam_pb.ETEAMJOB_TEMPLEADER);
|
|
end
|
|
end
|
|
|
|
function PlayerFaceCell:UpdateHp(value)
|
|
if(self.hp~=nil and value~=nil)then
|
|
value = math.floor(value * 100)/100;
|
|
self.hp.value = value;
|
|
end
|
|
end
|
|
|
|
function PlayerFaceCell:UpdateMp(value)
|
|
if(self.mp~=nil and value~=nil)then
|
|
value = math.floor(value * 100)/100;
|
|
self.mp.value = value;
|
|
end
|
|
end
|
|
|
|
function PlayerFaceCell:UpdateVoice(value)
|
|
if self.headIconCell then
|
|
|
|
if self.VoiceBan == true then
|
|
|
|
else
|
|
if value == true then
|
|
self.headIconCell:SetVoiceState(HeadVoiceState.Open)
|
|
else
|
|
self.headIconCell:SetVoiceState(HeadVoiceState.Close)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function PlayerFaceCell:SetVoiceBan(value)
|
|
if self.headIconCell then
|
|
if value == true then
|
|
self.VoiceBan = true
|
|
self.headIconCell:SetVoiceState(HeadVoiceState.Ban)
|
|
else
|
|
self.VoiceBan = false
|
|
end
|
|
end
|
|
end
|
|
|
|
function PlayerFaceCell:AddIconEvent()
|
|
if(self.headIconCell)then
|
|
self.headIconCell:OnAdd();
|
|
end
|
|
end
|
|
|
|
function PlayerFaceCell:RemoveIconEvent()
|
|
if(self.headIconCell)then
|
|
self.headIconCell:OnRemove();
|
|
end
|
|
end
|
|
|
|
function PlayerFaceCell:SetMinDepth(minDepth)
|
|
self.headIconCell:SetMinDepth(minDepth);
|
|
end
|
|
|
|
function PlayerFaceCell:HideIcon()
|
|
self.headIconCell:Hide(self.headIconCell.avatarPars)
|
|
self.headIconCell:Hide(self.headIconCell.simpleIcon.gameObject)
|
|
end
|
|
|
|
function PlayerFaceCell:ActiveCell(b)
|
|
self.gameObject:SetActive(b);
|
|
end
|
|
|
|
function PlayerFaceCell:ActiveSelf()
|
|
return self.gameObject.activeSelf;
|
|
end |