294 lines
9.8 KiB
Plaintext
294 lines
9.8 KiB
Plaintext
local BaseCell = autoImport("BaseCell")
|
|
autoImport("UnionLogo")
|
|
SceneBottomNameFactionCell = reusableClass("SceneBottomNameFactionCell", BaseCell);
|
|
|
|
SceneBottomNameFactionCell.resId = ResourcePathHelper.UICell("SceneBottomNameFactionCell")
|
|
|
|
SceneBottomNameFactionCell.npcColor = Color(1,197/255,20/255,1)
|
|
SceneBottomNameFactionCell.playerOrMstColor = Color(251/255,241/255,232/255,1)
|
|
SceneBottomNameFactionCell.playerEnemyColor = Color(1,0,0,1)
|
|
|
|
SceneBottomNameFactionCell.OpitimizedMode = false
|
|
|
|
local tempVector3 = LuaVector3.zero
|
|
SceneBottomNameFactionCell.PoolSize = 50
|
|
|
|
function SceneBottomNameFactionCell:Construct(asArray, args)
|
|
self:DoConstruct(asArray, args)
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:DoConstruct(asArray, args)
|
|
self._alive = true
|
|
local gameObject = args[1]
|
|
local creature = args[2]
|
|
|
|
self.gameObject = gameObject
|
|
if(creature:GetCreatureType() == Creature_Type.Me)then
|
|
tempVector3:Set(0,-19,0)
|
|
else
|
|
tempVector3:Set(0,-10,0)
|
|
end
|
|
self.gameObject.transform.localPosition = tempVector3
|
|
self.gameObject.transform.localRotation = LuaGeometry.Const_Qua_identity
|
|
tempVector3:Set(1,1,1)
|
|
self.gameObject.transform.localScale = tempVector3
|
|
self:initData(creature)
|
|
self:initNameView()
|
|
self:initFactionView()
|
|
self:setNameFactionVisible(true)
|
|
self:SetName(creature)
|
|
self:SetFaction(creature)
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:initData(creature)
|
|
-- body
|
|
self.ismyselfPet = self.creatureType == Creature_Type.Pet and creature:IsMyPet()
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:Finalize()
|
|
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:Deconstruct(asArray)
|
|
if(not LuaGameObject.ObjectIsNull(self.gameObject))then
|
|
local parent = self.gameObject.transform.parent
|
|
if(SceneBottomNameFactionCell.OpitimizedMode and not self:ObjIsNil(parent)) then
|
|
SetParent(self.gameObject,parent.parent)
|
|
Game.GOLuaPoolManager:AddToSceneUIMovePool(SceneBottomNameFactionCell.resId, self.gameObject)
|
|
else
|
|
Game.GOLuaPoolManager:AddToSceneUIPool(SceneBottomNameFactionCell.resId, self.gameObject)
|
|
end
|
|
end
|
|
ReusableObject.Destroy(self.richName)
|
|
self.gameObject = nil
|
|
self._alive = false
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:initFactionView( )
|
|
-- body
|
|
self.factionIconAnchor = self:FindGO("factionIconAnchor"):GetComponent(UIWidget)
|
|
self.factionIcon = self:FindGO("factionIcon"):GetComponent(UISprite)
|
|
self.factionIcon_ = self:FindGO("factionIcon_"):GetComponent(UITexture)
|
|
self.factionName = self:FindGO("factionName"):GetComponent(UILabel)
|
|
self.factionJob = self:FindGO("factionJob"):GetComponent(UILabel)
|
|
self.factionInfo = self:FindGO("factionInfo")
|
|
self.factionTable = self.factionInfo:GetComponent(UITable)
|
|
self.factionAnchor = self.factionInfo:GetComponent(UIWidget)
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:initNameView( )
|
|
-- body
|
|
self.uiname = self:FindGO("playerName"):GetComponent(UILabel)
|
|
self.PcNameCt = self:FindGO("PcNameCt")
|
|
self.SpBloodContainer = self:FindGO("SpBloodContainer")
|
|
self.richName = SpriteLabel.new(self.uiname,500,26,24)
|
|
self.richName.richLabel.pivot = UIWidget.Pivot.Top
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:SetName( creature )
|
|
-- body
|
|
local creatureData = creature.data
|
|
local name = creatureData:GetName()
|
|
local camp = creatureData:GetCamp()
|
|
self.richName:Reset()
|
|
--調整npc顏色,顯示幫派公會資訊
|
|
local creatureType = creature:GetCreatureType()
|
|
local isNpc = creatureType == Creature_Type.Npc and camp ~= RoleDefines_Camp.ENEMY
|
|
local isPlayerEnemy = creatureType == Creature_Type.Player and camp == RoleDefines_Camp.ENEMY
|
|
local color = self.uiname.color
|
|
if(isNpc)then
|
|
if(color ~= SceneBottomNameFactionCell.npcColor)then
|
|
self.uiname.color = SceneBottomNameFactionCell.npcColor
|
|
end
|
|
elseif(isPlayerEnemy)then
|
|
if(color ~= SceneBottomNameFactionCell.playerEnemyColor)then
|
|
self.uiname.color = SceneBottomNameFactionCell.playerEnemyColor
|
|
end
|
|
else
|
|
if(color ~= SceneBottomNameFactionCell.playerOrMstColor)then
|
|
self.uiname.color = SceneBottomNameFactionCell.playerOrMstColor
|
|
end
|
|
end
|
|
|
|
local staticData = creatureData.staticData
|
|
|
|
if(staticData and staticData.Type == "WeaponPet")then
|
|
local masterName = TeamProxy.Instance:GetCatMasterName(creatureData:GetGuid())
|
|
if(masterName)then
|
|
name = string.format(ZhString.SceneNameView_MasterName,name,masterName)
|
|
end
|
|
end
|
|
if(creatureData.GetAchievementtitle)then
|
|
local titleId = creatureData:GetAchievementtitle()
|
|
local titleData = Table_Appellation[titleId]
|
|
if(titleData)then
|
|
if(titleData.OrderType == 1)then
|
|
name = name.." ["..titleData.Name.."]"
|
|
else
|
|
name = "["..titleData.Name.."] "..name
|
|
end
|
|
end
|
|
end
|
|
self.richName:SetText(name)
|
|
-- local myServantid = Game.Myself.data.userdata:Get(UDEnum.SERVANTID) or -1
|
|
|
|
-- if(staticData and staticData.id == myServantid)then
|
|
-- self.richName:SetText("")
|
|
-- else
|
|
-- self.richName:SetText(name)
|
|
-- end
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:SetQuestPrefixName( creature,isShow )
|
|
-- body
|
|
self.richName:Reset()
|
|
local name = creature.data:GetName()
|
|
if(isShow)then
|
|
name = string.format("{uiicon=%s}%s","icon_39",name)
|
|
end
|
|
self.richName:SetText(name)
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:SetFaction( creature )
|
|
-- body
|
|
local objNull = self:ObjIsNil(self.factionName)
|
|
if(objNull)then
|
|
return
|
|
end
|
|
local notHuSongPet = false
|
|
local creatureType = creature:GetCreatureType()
|
|
|
|
local ismyselfPet = creatureType == Creature_Type.Pet and creature:IsMyPet()
|
|
local camp = creature.data:GetCamp()
|
|
|
|
if(ismyselfPet and self.detailedType ~= NpcData.NpcDetailedType.Escort)then
|
|
notHuSongPet = true
|
|
end
|
|
|
|
--ZGBTODO
|
|
local npcOrMonstData = creature.data.staticData
|
|
|
|
local guildjob = ""
|
|
local guildname = ""
|
|
local guildicon
|
|
local customicon
|
|
local picType
|
|
local guildData = creature.data:GetGuildData()
|
|
if(guildData)then
|
|
guildjob = guildData.job
|
|
guildicon = guildData.icon
|
|
guildname = guildData.name
|
|
if guildData.customIconIndex and guildData.customIconIndex ~= 0 then
|
|
customicon = guildData.customIconIndex
|
|
picType = guildData.picType
|
|
end
|
|
|
|
end
|
|
-- LogUtility.InfoFormat("SceneBottomNameFactionCell:SetFaction guildname:{0},job:{1},icon:{2}",guildname.."_"..self.uiname.text,guildjob,guildicon)
|
|
if(npcOrMonstData and npcOrMonstData.Guild ~= "")then
|
|
self.factionName.text = npcOrMonstData.Guild
|
|
self:Show(self.factionName.gameObject)
|
|
elseif(guildname and guildname~="")then
|
|
self.factionName.text = guildname
|
|
self:Show(self.factionName.gameObject)
|
|
else
|
|
self:Hide(self.factionName.gameObject)
|
|
-- self.factionName.text = ""
|
|
end
|
|
|
|
if(npcOrMonstData and npcOrMonstData.Position ~= "")then
|
|
self.factionJob.text = npcOrMonstData.Position
|
|
self:Show(self.factionJob.gameObject)
|
|
elseif(guildjob and guildjob~="")then
|
|
self.factionJob.text = "["..'[c][FFC514FF]'..guildjob..'[-][/c]'.."]"
|
|
self:Show(self.factionJob.gameObject)
|
|
else
|
|
-- self.factionJob.text = ""
|
|
self:Hide(self.factionJob.gameObject)
|
|
end
|
|
local showFc = npcOrMonstData and npcOrMonstData.GuildEmblem and npcOrMonstData.GuildEmblem ~= ""
|
|
local lplayerFc = guildicon ~= nil
|
|
if(showFc or lplayerFc or customicon)then
|
|
self.factionAnchor.enabled = true
|
|
local guildEmblem = npcOrMonstData and npcOrMonstData.GuildEmblem or nil
|
|
local atlasOpt = npcOrMonstData and npcOrMonstData.AtlasOpt or nil
|
|
if(lplayerFc)then
|
|
self.factionIcon_.mainTexture = nil
|
|
IconManager:SetGuildIcon(guildicon,self.factionIcon)
|
|
elseif(customicon ~= nil)then
|
|
self.factionIcon.spriteName = ""
|
|
local texture = GuildPictureManager.Instance():GetThumbnailTexture(guildData.id,UnionLogo.CallerIndex.RoleFootDetail,customicon,guildData.customIconUpTime)
|
|
if(texture)then
|
|
self.factionIcon_.mainTexture = texture
|
|
else
|
|
self.factionIcon_.mainTexture = nil
|
|
GuildPictureManager.Instance():AddMyThumbnailInfos({{callIndex = UnionLogo.CallerIndex.RoleFootDetail, guild = guildData.id,index = customicon,time=guildData.customIconUpTime,picType = picType}})
|
|
end
|
|
elseif(atlasOpt and atlasOpt ~= "" and UIAtlasConfig.IconAtlas[atlasOpt])then
|
|
self.factionIcon_.mainTexture = nil
|
|
IconManager:SetIcon(guildEmblem,self.factionIcon,UIAtlasConfig.IconAtlas[atlasOpt]);
|
|
elseif(guildEmblem)then
|
|
self.factionIcon_.mainTexture = nil
|
|
IconManager:SetGuildIcon(guildEmblem,self.factionIcon)
|
|
end
|
|
self:Show(self.factionIcon.gameObject)
|
|
self.factionAnchor:UpdateAnchors()
|
|
self.factionIconAnchor:UpdateAnchors()
|
|
else
|
|
-- self.factionIcon.spriteName = ""
|
|
self.factionAnchor.enabled = false
|
|
tempVector3:Set(LuaGameObject.GetLocalPosition(self.factionInfo.transform))
|
|
tempVector3.x = -(self.factionJob.width + 2)/2
|
|
self.factionInfo.transform.localPosition = tempVector3
|
|
self:Hide(self.factionIcon.gameObject)
|
|
self.factionIcon_.mainTexture = nil
|
|
end
|
|
if(ismyselfPet and not notHuSongPet)then
|
|
self.factionName.text = ZhString.PlayerBottomViewCell_Husong
|
|
self.factionJob.text = ""
|
|
end
|
|
self:RefreshFactionLayout()
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:setNameFactionVisible( visible )
|
|
-- body
|
|
local objNull = self:ObjIsNil(self.uiname)
|
|
if(objNull)then
|
|
return
|
|
end
|
|
self.gameObject:SetActive(visible)
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:updateNameVisible( )
|
|
-- body
|
|
local objNull = self:ObjIsNil(self.uiname)
|
|
if(objNull)then
|
|
return
|
|
end
|
|
|
|
-- if maskSettingRet or maskNameselfIndex ~= nil or maskNameHornorFactionselfIndex ~= nil or maskBNHFEIndex ~= nil then
|
|
-- self.uiname.gameObject:SetActive(false)
|
|
-- else
|
|
-- if(not self:ObjIsNil(self.uiname))then
|
|
-- self.uiname.gameObject:SetActive(visible)
|
|
-- if(visible)then
|
|
-- if(not self.uibloodcontainer.activeSelf)then
|
|
-- tempVector3:Set(0,0,0)
|
|
-- self.PcNameCt.transform.localPosition = tempVector3
|
|
-- else
|
|
-- tempVector3:Set(0,-22,0)
|
|
-- self.PcNameCt.transform.localPosition = tempVector3
|
|
-- end
|
|
-- end
|
|
-- end
|
|
-- end
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:RefreshFactionLayout( )
|
|
-- body
|
|
self.factionTable:Reposition()
|
|
end
|
|
|
|
function SceneBottomNameFactionCell:Alive()
|
|
return self._alive
|
|
end |