|
|
- -- <*
- -- @Author: Saber
- -- @Description: 圣物系统技能tips界面
- -- *>
- PsionicSkillTipView = PsionicSkillTipView or BaseClass(BaseView)
- local PsionicSkillTipView = PsionicSkillTipView
-
- function PsionicSkillTipView:__init()
- self.base_file = "psionic"
- self.layout_file = "PsionicSkillTipView"
- self.layer_name = "Top"
- self.destroy_imm = true
- self.use_background = true --全屏界面默认使用这个参数,非全屏界面自行设置
- self.click_bg_toClose = true
- self:AddPreLoadList("psionic", {"PsionicSkillTipItem"})
- self.is_set_zdepth = true
- self.change_scene_close = true --是否切换场景时关闭(弹出界面使用)
- self.model = PsionicModel:getInstance()
-
- self.info_item = {}
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:AddEvent()
- end
- self.open_callback = function ( )
- self:OpenSuccess()
- end
- self.destroy_callback = function ( )
- self:DestroySuccess()
- end
- end
-
- function PsionicSkillTipView:Open(skill_data, x, y)
- self.skill_data = skill_data
- self.pos_x = x or 0
- self.pos_y = y or 0
- self.skill_cfg = ConfigItemMgr.Instance:GetSkillItem(self.skill_data.skill_id)
- BaseView.Open(self)
- end
-
- function PsionicSkillTipView:LoadSuccess()
- local nodes = {
- "content",
- "content/bg:raw",
- "content/skill_icon:img",
- "content/activated:img:obj",
- "content/info_scroll",
- "content/info_scroll/Viewport:img",
- "content/info_scroll/Viewport/info_con",
- "content/name:tmp",
- "content/level:tmp",
- }
- self:GetChildren(nodes)
- SetSizeDelta(self.transform, 0, 0)
- local size_x = self.content.sizeDelta.x
- local size_y = self.content.sizeDelta.y + 30
- self.pos_x = self.pos_x + size_x > ScreenWidth/2 and ScreenWidth/2 - size_x or self.pos_x
- self.pos_y = self.pos_y - size_y < -ScreenHeight/2 and size_y - ScreenHeight/2 or self.pos_y
- -- print("Saber:PsionicSkillTipView [55] self.pos_x, self.pos_y: ",self.pos_x, self.pos_y)
- SetAnchoredPosition(self.content, self.pos_x, self.pos_y)
- lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("ps_skill_tips_bg"))
- end
-
- function PsionicSkillTipView:AddEvent()
-
- end
-
- function PsionicSkillTipView:OpenSuccess()
- self:UpdateView()
- end
-
- function PsionicSkillTipView:UpdateView()
- self:UpdateBasicData()
- self:UpdateInfoItems()
- end
-
- -- 加载基础数据
- function PsionicSkillTipView:UpdateBasicData( )
- self.name_tmp.text = string.format("<color=%s>%s</color>", ColorUtil.PURPLE_DARK, Trim(self.skill_cfg.name))
- lua_resM:setOutsideImageSprite(self, self.skill_icon_img, GameResPath.GetSkillIcon(self.skill_data.skill_id), true)
- local lv = self.skill_data.skill_lv
- local lv_str = string.format("等级:%s", lv == 0 and 1 or lv) -- 未激活也显示1级
- lv_str = lv_str .. (lv > 0 and (lv >= self.skill_cfg.lvs.lvs_total and "" or "<color=#fdffc2><size=16>(圣物觉醒可升级)</size></color>") or "")
- self.level_tmp.text = lv_str
- lua_resM:setImageSprite(self, self.activated_img, "psionic_asset", lv == 0 and "ps_unactivated" or "ps_activated", true)
- self.activated_obj:SetActive(true)
- -- self.lvup_tip_tmp.text = lv > 0 and (lv >= self.skill_cfg.lvs.lvs_total and "" or "(觉醒圣物可升级)") or ""
- end
-
- -- 加载技能描述节点
- function PsionicSkillTipView:UpdateInfoItems( )
- local info_list = {}
-
- local lv = self.skill_data.skill_lv
- -- 获取不到等级配置就选用1级的配置
- local lvs_cfg = self.skill_cfg.lvs and self.skill_cfg.lvs[lv] or self.skill_cfg.lvs[1]
- if lvs_cfg then
- info_list[#info_list+1] = {title = "技能效果"}
- info_list[#info_list+1] = {desc = Trim(lvs_cfg.desc), show_line = true}
- -- local power = Trim(lvs_cfg.power)
- -- if power ~= "" then
- -- info_list[#info_list+1] = {power = power}
- -- end
- end
- info_list[#info_list+1] = {title = "激活条件"}
- local color_cfg = PsionicConst.RequireEquipColor[PsionicConst.TabId.PSkill]
- local color = WordManager.GetGoodsColor(color_cfg.color, true)
- info_list[#info_list+1] = {
- desc = string.format("穿戴 <color=%s>%s以上%s</color> 后解锁",
- color, color_cfg.str, PsionicConst.EquipSlotName[self.skill_data.pos])
- }
-
- local height = 2
- local item
- for k, v in ipairs(info_list) do
- item = self.info_item[k]
- if not item then
- item = PsionicSkillTipItem.New(self.info_con)
- self.info_item[k] = item
- end
- item:SetAnchoredPosition(0, -height)
- height = height + item:SetData(v)
- end
- SetSizeDeltaY(self.info_con, height + 5)
- self.Viewport_img.raycastTarget = height > self.info_scroll.sizeDelta.y
- end
-
- function PsionicSkillTipView:DestroySuccess( )
- for k, v in pairs(self.info_item) do
- v:DeleteMe()
- v = nil
- end
- self.info_item = nil
- end
|