|
|
- --[[
- 需要显示巅峰标志的人物等级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
-
|