源战役客户端
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 

173 строки
6.9 KiB

--[[
需要显示巅峰标志的人物等级item
--]]
RoleLevelItem = RoleLevelItem or BaseClass(BaseItem)
RoleLevelAlignType =
{
LEFT = 1,
MIDDLE = 2,
RIGHT = 3,
SPECIAL = 4,
}
function RoleLevelItem:__init()
self.base_file = "common"
self.layout_file = "RoleLevelItem"
self.is_delay_callback = true
self.level = 1
self.turn = 0
self.need_lv = true
self.alignment_type = RoleLevelAlignType.LEFT
self.add_str = ""
self.front_str = ""
self.font_color = ColorUtil.WHITE
self.font_size = 20
self.orign_pos = -1
self:Load()
end
function RoleLevelItem:Load_callback()
self.left_level = self:GetChild("left_level") -- 左对齐文本
self.middle_level = self:GetChild("middle_level") -- 居中文本
self.middle_lv = self:GetChild("middle_lv")
self.right_level = self:GetChild("right_level") -- 右对齐文本
self.top_symbol = self:GetChild("top_symbol") -- 巅峰标志
if self.need_refreshData then
self:SetData(self.level,self.turn,self.need_lv,self.alignment_type,self.add_str,self.font_color,self.font_size,self.front_str)
end
end
--[[
level:人物等级
turn:人物转生次数
need_lv:人物等级未达到巅峰时,是否需要 "等级" 前缀字样
alignment_type:文本对齐方式 1.左对齐 2.居中 3.右对齐
add_str:附加文字
font_color:字体颜色
font_size:字体大小
front_str:前缀
--]]
function RoleLevelItem:SetData(level,turn,need_lv,alignment_type,add_str,font_color,font_size,front_str)
self.level = level or self.level
self.turn = turn or self.turn
self.need_lv = need_lv or false
self.alignment_type = alignment_type or self.alignment_type
self.add_str = add_str or self.add_str
self.front_str = front_str or self.front_str
self.font_color = font_color or self.font_color
self.font_size = font_size or self.font_size
if self.is_loaded then
self.left_level.gameObject:SetActive(self.alignment_type == RoleLevelAlignType.LEFT or self.alignment_type == RoleLevelAlignType.SPECIAL)
self.middle_level.gameObject:SetActive(self.alignment_type == RoleLevelAlignType.MIDDLE)
self.middle_lv.gameObject:SetActive(self.alignment_type == RoleLevelAlignType.MIDDLE)
self.right_level.gameObject:SetActive(self.alignment_type == RoleLevelAlignType.RIGHT)
if self.alignment_type == RoleLevelAlignType.LEFT then
self:SetLeftRoleLevel()
elseif self.alignment_type == RoleLevelAlignType.MIDDLE then
self:SetMiddleRoleLevel()
elseif self.alignment_type == RoleLevelAlignType.RIGHT then
self:SetRightRoleLevel()
elseif self.alignment_type == RoleLevelAlignType.SPECIAL then
self:SetSpecialRoleLevel()
end
if self.orign_pos ~= -1 then
self:SetOrignPos(self.orign_pos)
end
self.need_refreshData = false
else
self.need_refreshData = true
end
end
-- 设置需要显示巅峰标志的等级(左对齐)
function RoleLevelItem:SetLeftRoleLevel()
self.left_level:GetComponent("Text").fontSize = self.font_size
self.left_level:GetComponent("Text").text = string.format("%s<color=%s>%s%s</color>",self.front_str,self.font_color,WordManager:GetRoleLevel(self.level,self.turn,self.need_lv,false),self.add_str)
if WordManager:RoleLevelIsTop(self.level,self.turn) then
--local text_len = self.left_level:GetComponent("Text").preferredWidth/2
local img_r = self.top_symbol.sizeDelta.x/2
local text_pos = self.left_level.localPosition
SetLocalPosition(self.top_symbol.transform,img_r-15,text_pos.y-5,text_pos.z)
SetLocalPosition(self.left_level.transform,(img_r+1)*2-15,text_pos.y,text_pos.z)
self.top_symbol.gameObject:SetActive(true)
else
SetLocalPosition(self.left_level.transform,0,0,0)
self.top_symbol.gameObject:SetActive(false)
end
end
-- 设置需要显示巅峰标志的等级(左对齐)
function RoleLevelItem:SetSpecialRoleLevel()
self.left_level:GetComponent("Text").fontSize = self.font_size
self.left_level:GetComponent("Text").text = string.format("<color=%s>%s%s%s</color>",self.font_color,self.front_str,WordManager:GetRoleLevel2(self.level,self.turn,self.need_lv,false),self.add_str)
if WordManager:RoleLevelIsTop(self.level,self.turn) then
--local text_len = self.left_level:GetComponent("Text").preferredWidth/2
local img_r = self.top_symbol.sizeDelta.x/2
local text_pos = self.left_level.localPosition
SetLocalPosition(self.top_symbol.transform,img_r,text_pos.y,text_pos.z)
SetLocalPosition(self.left_level.transform,(img_r+1)*2,text_pos.y,text_pos.z)
self.top_symbol.gameObject:SetActive(true)
else
SetLocalPosition(self.left_level.transform,0,0,0)
self.top_symbol.gameObject:SetActive(false)
end
end
-- 设置需要显示巅峰标志的等级(居中)
function RoleLevelItem:SetMiddleRoleLevel()
self.middle_level:GetComponent("Text").fontSize = self.font_size
self.middle_level:GetComponent("Text").text = string.format("%s<color=%s>%s</color>",self.front_str,self.font_color,self.add_str)
self.middle_lv:GetComponent("Text").fontSize = self.font_size
self.middle_lv:GetComponent("Text").text = string.format("<color=%s>%s</color>",self.font_color,WordManager:GetRoleLevel(self.level,self.turn,self.need_lv,false))
local text_len = self.middle_level:GetComponent("Text").preferredWidth
local length = -self.middle_level.transform.sizeDelta.x/2 +self.middle_lv.transform.sizeDelta.x/2
local text_pos = self.middle_level.localPosition
if WordManager:RoleLevelIsTop(self.level,self.turn) then
local img_r = self.top_symbol.sizeDelta.x/2 + 1
SetLocalPosition(self.top_symbol.transform, -self.middle_level.transform.sizeDelta.x/2+text_len+ img_r,self.top_symbol.transform.localPosition.y,text_pos.z)
SetLocalPosition(self.middle_lv.transform, text_len + length+(img_r+20),self.middle_lv.transform.localPosition.y,text_pos.z)
-- SetLocalPosition(self.top_symbol.transform,-(text_len + img_r),text_pos.y,text_pos.z)
self.top_symbol.gameObject:SetActive(true)
else
self.top_symbol.gameObject:SetActive(false)
SetLocalPosition(self.middle_lv.transform,text_len+length+20,self.middle_lv.transform.localPosition.y,text_pos.z)
end
end
-- 设置需要显示巅峰标志的等级(右对齐)
function RoleLevelItem:SetRightRoleLevel()
self.right_level:GetComponent("Text").fontSize = self.font_size
self.right_level:GetComponent("Text").text = string.format("%s<color=%s>%s%s</color>",self.front_str,self.font_color,WordManager:GetRoleLevel(self.level,self.turn,self.need_lv,false),self.add_str)
if WordManager:RoleLevelIsTop(self.level,self.turn) then
local text_len = self.right_level:GetComponent("Text").preferredWidth
local img_r = self.top_symbol.sizeDelta.x/2 + 1
local text_pos = self.right_level.localPosition
SetLocalPosition(self.top_symbol.transform,-(text_len + img_r),text_pos.y,text_pos.z)
self.top_symbol.gameObject:SetActive(true)
else
self.top_symbol.gameObject:SetActive(false)
end
end
function RoleLevelItem:__delete()
-- body
end
function RoleLevelItem:SetOrignPos(pos)
pos = pos == nil and -1 or pos
if self.is_loaded then
if pos ~= -1 then
self.transform.anchoredPosition = Vector2(pos.x,pos.y)
self.orign_pos = -1
end
else
self.orign_pos = pos
end
end