源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

178 lines
5.9 KiB

  1. CommonSkillTips = CommonSkillTips or BaseClass(BaseView)
  2. local CommonSkillTips = CommonSkillTips
  3. --[[
  4. self.data = {
  5. skill_id = 0,
  6. skill_lv = 1,
  7. title_name = "界面标题",--界面标题
  8. skill_name = "技能名",
  9. active_des = "激活状态",
  10. need_fight = false,,01
  11. -------------------------
  12. tab_title_1 = "技能效果",
  13. tab_title_2 = "内容标题栏2(激活条件)",
  14. content_1 = "技能描述1(技能效果描述)",
  15. content_2 = "技能描述2(技能激活条件)",
  16. is_pet_skill = false,--是否是宠物技能,单独对宠物技能界面做些处理
  17. }
  18. --]]
  19. function CommonSkillTips:__init()
  20. self.base_file = "common"
  21. self.layout_file = "CommonSkillTips"
  22. self.layer_name = "Activity"
  23. self.destroy_imm = true
  24. self.use_background = true
  25. self.change_scene_close = true
  26. self.append_to_ctl_queue = false --是否要添加进界面堆栈
  27. self.need_show_money = false --是否要显示顶部的金钱栏
  28. self.click_bg_toClose = true
  29. self.is_set_zdepth = true
  30. self.blur_activity_bg = true
  31. self:AddPreLoadList("common", {"CommonSkillTipsDesItem"})
  32. self.model = PetModel:getInstance()
  33. self.item_list = {}
  34. self.load_callback = function ()
  35. self:LoadSuccess()
  36. self:AddEvent()
  37. end
  38. self.open_callback = function ( )
  39. self:OpenSuccess()
  40. end
  41. self.destroy_callback = function ( )
  42. self:DestroySuccess()
  43. end
  44. end
  45. function CommonSkillTips:Open(data)
  46. self.data = data
  47. BaseView.Open(self)
  48. end
  49. function CommonSkillTips:SetShow( data )
  50. self.data = data
  51. self:UpdateView()
  52. end
  53. function CommonSkillTips:LoadSuccess()
  54. local nodes = {
  55. "title:tmp","skillName:tmp","activedFlag:img:obj","conSkill:img",
  56. "close:obj", "lb_fight:txt", "skillTypeImg:img",
  57. "desc_scroll/Viewport/desc_con", "desc_scroll:scroll", "bg:raw",
  58. }
  59. self:GetChildren(nodes)
  60. lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("common_skill_tip_bg"), false)
  61. end
  62. function CommonSkillTips:AddEvent()
  63. local function call_back( target )
  64. if target == self.close_obj then
  65. self:Close()
  66. end
  67. end
  68. AddClickEvent(self.close_obj,call_back,false)
  69. end
  70. function CommonSkillTips:OpenSuccess()
  71. self:UpdateView()
  72. end
  73. function CommonSkillTips:UpdateView()
  74. if (not self.data) or (not self.data.skill_id) then return end
  75. local skill_conf = SkillManager:getInstance():getSkillFromConfig(self.data.skill_id)
  76. --宠物技能尚未同步至技能表,这里暂时不能因为没有技能配置而跳过界面刷新
  77. if self.data.is_pet_skill then skill_conf = {} end
  78. if not skill_conf then return end
  79. lua_resM:setOutsideImageSprite(self, self.conSkill_img, GameResPath.GetSkillIcon(self.data.skill_id),false)
  80. self:UpdateSkillDescData(skill_conf)
  81. self.title_tmp.text = self.data.title_name or "技能"
  82. self.skillName_tmp.text = self.data.skill_name or Trim(skill_conf.name)
  83. if self.data.need_show_lock_state then
  84. if self.data.is_lock then
  85. lua_resM:setImageSprite(self, self.activedFlag_img, "common_asset","active_state_2")
  86. else
  87. lua_resM:setImageSprite(self, self.activedFlag_img, "common_asset","active_state_1")
  88. end
  89. self.activedFlag_obj:SetActive(true)
  90. else
  91. self.activedFlag_obj:SetActive(false)
  92. end
  93. if self.data.need_fight then
  94. local _,fight = GetSkillAttrBySkill( self.data.skill_id, self.data.skill_lv or 1, true ,self.data.need_fight == 1)
  95. self.lb_fight_txt.text = "f" .. fight
  96. else
  97. self.lb_fight_txt.text = ""
  98. end
  99. if self.data.skill_type then
  100. lua_resM:setImageSprite(self, self.skillTypeImg_img, "common_asset", "warSoul_skill_type_img"..self.data.skill_type,true)
  101. end
  102. -- self.tab_title_1_tmp.text = self.data.tab_title_1 or "技能效果"
  103. -- self.tab_title_2_tmp.text = self.data.tab_title_2 or "激活条件"
  104. -- -------------------------
  105. -- if self.data.content_1 then
  106. -- self.content_1_tmp.text = self.data.content_1
  107. -- else
  108. -- local skill_lv = self.data.skill_lv or 1
  109. -- if skill_conf.lvs and skill_conf.lvs[skill_lv] then
  110. -- self.content_1_tmp.text = Trim(skill_conf.lvs[skill_lv].desc or "")
  111. -- else
  112. -- self.content_1_tmp.text = ""
  113. -- end
  114. -- end
  115. -- self.content_2_tmp.text = self.data.content_2 or "无"
  116. end
  117. -- 加载属性信息
  118. -- (只是将动态加载标题和内容节点的逻辑拿了过来,方便以后进行拓展,具体的界面数据内容都是临时的,非正式数据结构体!)
  119. function CommonSkillTips:UpdateSkillDescData(skill_conf)
  120. if not self.desc_list then
  121. self.desc_list = {}
  122. -- 技能效果
  123. self.desc_list[#self.desc_list+1] = {title = "技能效果"}
  124. local label1 = ""
  125. if self.data.content_1 then
  126. label1 = self.data.content_1
  127. else
  128. local skill_lv = self.data.skill_lv or 1
  129. if skill_conf.lvs and skill_conf.lvs[skill_lv] then
  130. label1 = Trim(skill_conf.lvs[skill_lv].desc or "")
  131. end
  132. end
  133. self.desc_list[#self.desc_list+1] = {label = label1}
  134. -- 激活条件
  135. self.desc_list[#self.desc_list+1] = {title = "学习条件"}
  136. self.desc_list[#self.desc_list+1] = {label = self.data.content_2 or "暂无学习条件", isShowBg = self.data.isShowBg == nil and true or self.data.isShowBg, isShowIcon = self.data.isShowIcon == nil and true or self.data.isShowIcon}
  137. end
  138. self:UpdateDescItems()
  139. end
  140. function CommonSkillTips:UpdateDescItems(reset_pos)
  141. local item, height = nil, 0
  142. for k, v in ipairs(self.desc_list) do
  143. item = self.item_list[k]
  144. if not item then
  145. item = CommonSkillTipsDesItem.New(self.desc_con)
  146. self.item_list[k] = item
  147. end
  148. item:SetVisible(true)
  149. item:SetAnchoredPosition(0, -height)
  150. height = height + item:SetData(v)
  151. end
  152. -- 设置滚动容器的滚动条件
  153. self.desc_scroll_scroll.enabled = height > self.desc_scroll.sizeDelta.y
  154. SetSizeDeltaY(self.desc_con, height + 37)
  155. end
  156. function CommonSkillTips:DestroySuccess( )
  157. for k, v in pairs(self.item_list) do
  158. v:DeleteMe()
  159. v = nil
  160. end
  161. self.item_list = nil
  162. end