源战役客户端
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

289 řádky
9.4 KiB

před 1 měsícem
  1. ChildHandbookUpgradeView = ChildHandbookUpgradeView or BaseClass(BaseView)
  2. local ChildHandbookUpgradeView = ChildHandbookUpgradeView
  3. -- ChildHandbookUpgradeView.TabData = {
  4. -- [1] = {name = "人物", level = 1},
  5. -- [2] = {name = "人", level = 1},
  6. -- [3] = {name = "物", level = 1},
  7. -- }
  8. function ChildHandbookUpgradeView:__init()
  9. self.base_file = "child"
  10. self.layout_file = "ChildHandbookUpgradeView"
  11. self.layer_name = "Activity"
  12. self.destroy_imm = true
  13. self.use_background = true --全屏界面默认使用这个参数
  14. self.hide_maincancas = true
  15. self.change_scene_close = true
  16. self.append_to_ctl_queue = false --是否要添加进界面堆栈
  17. self.need_show_money = false --是否要显示顶部的金钱栏
  18. self.is_set_zdepth = true
  19. self.model = ChildModel:GetInstance()
  20. self.blur_activity_bg = true
  21. self.attr_item_list = {}
  22. self.attr_item_sum_list = {}
  23. self.suit_tab_item_list = {}
  24. self.load_callback = function ()
  25. self:LoadSuccess()
  26. self:AddEvent()
  27. end
  28. self.open_callback = function ( )
  29. self:OpenSuccess()
  30. end
  31. self.switch_callback = function(index)
  32. self:SwitchTab(index)
  33. end
  34. self.destroy_callback = function ( )
  35. self:DestroySuccess()
  36. end
  37. end
  38. function ChildHandbookUpgradeView:Open( )
  39. --self.data = data
  40. BaseView.Open(self)
  41. end
  42. function ChildHandbookUpgradeView:LoadSuccess()
  43. local nodes = {
  44. "con_money",
  45. "container/bg:raw",
  46. "container/btn_level_up:obj",
  47. "container/btn_level_up/red_dot_up:obj",
  48. -- "container/collectCon/fight_num:txt",
  49. "container/collectCon/collect_num:tmp","container/collectCon/percent_num:tmp",
  50. "container/collectCon:obj", "container/levelCon:obj",
  51. "container/collectCon/ScrollView_attr/Viewport/Content_attr_collect",
  52. "container/levelCon/ScrollView_attr/Viewport/Content_attr_level",
  53. "container/levelCon/level_num:txt", "container/levelCon/level_num_after:txt",
  54. -- "container/levelCon/fight_num_level:txt",
  55. "container/levelCon/money_con/money_num:tmp",
  56. "container/ScrollView_item/Viewport/Content_item",
  57. "container/levelCon/effectCon",
  58. "container/levelCon/maxTxt:obj:tmp",
  59. }
  60. self:GetChildren(nodes)
  61. local closeWin_callback = function()
  62. self:Close()
  63. end
  64. self.tabWindowComponent = UITabWindow.New(self.transform,{},select_callback,closeWin_callback,
  65. self.background_wnd,self.container, UITabWindow.SizeSmallNoTab, false,nil,true)
  66. self.tabWindowComponent:SetBackgroundRes("child_handbook_upgrade_bg_945_533")
  67. self.tabWindowComponent:SetTitleText("玩具加成")
  68. self.tabWindowComponent:ChangeShowFlag("Child")
  69. --lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetChildIcon("child_hb_upgrade_bg"),false)
  70. local child_coin_good_id = self.model:GetChildCoinId()
  71. self.model:Fire(ChildConst.UPDATA_CHILD_COIN_NUM,GoodsModel:getInstance():GetTypeGoodsNum(child_coin_good_id))
  72. end
  73. function ChildHandbookUpgradeView:AddEvent()
  74. local function onBreakSuccess()
  75. if self:HasOpen() then
  76. self:UpdateView()
  77. end
  78. end
  79. self.onBreakSuccess_id = GlobalEventSystem:Bind(EventName.GOODS_DECOMPOSE_RESULT, onBreakSuccess)
  80. local function updata_child_dif_suit_info_fun()
  81. self:SetBoxDesCon()
  82. end
  83. self.updata_child_dif_suit_info = self.model:Bind(ChildConst.UPDATA_CHILD_HB_SUIT_INFO, updata_child_dif_suit_info_fun) --
  84. local function updata_Child_RED_DOT_VIEW_fun(id)
  85. if id ~= ChildConst.TabId.ChildHandbook then return end
  86. self:UpdateRedDot()
  87. end
  88. self.updata_Child_RED_DOT_VIEW_id = self.model:Bind(ChildConst.Child_RED_DOT_VIEW, updata_Child_RED_DOT_VIEW_fun) --红点更新
  89. local function onBtnClickHandler(target, x, y)
  90. if target == self.btn_level_up_obj then
  91. self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16537) -- 升级
  92. end
  93. end
  94. AddClickEvent(self.btn_level_up_obj, onBtnClickHandler)
  95. end
  96. function ChildHandbookUpgradeView:OpenSuccess()
  97. self:UpdateView()
  98. end
  99. function ChildHandbookUpgradeView:UpdateView()
  100. self:SetBoxDesCon()
  101. self:UpdateRedDot()
  102. local toy_suit_list = self.model:GetToySuitInfo()
  103. local function callback( item )
  104. end
  105. for k,v in pairs(toy_suit_list) do
  106. local item = self.suit_tab_item_list[k]
  107. if item == nil then
  108. item = ChildHandbookSuitItem.New(self.Content_item)
  109. self.suit_tab_item_list[k] = item
  110. end
  111. --local data = self.model:GetConfigChildSkillInfo(v.skill_id,v.skill_lv)
  112. self.suit_tab_item_list[k]:SetData(v,callback)
  113. end
  114. end
  115. function ChildHandbookUpgradeView:SetBoxDesCon( ) --改为整个玩具箱的而不是单独的
  116. local handbook_list = self.model:GetSuitToyList()
  117. local level = self.model:GetSuitToyBoxLv()
  118. self.level_num_after_txt.text = level + 1
  119. local last_level = tonumber(self.level_num_txt.text)
  120. self.level_num_txt.text = level
  121. local up_grade_list = self.model:GetChildHandbookToyUpgradeList(level)
  122. -- self.fight_num_level_txt.text = "f"..GetFighting(stringtotable(up_grade_list.add_attr))
  123. self.money_num_tmp.text = stringtotable(up_grade_list.next_cost)[1][3]
  124. local up_grade_list_next = self.model:GetChildHandbookToyUpgradeList(level+1)
  125. if TableSize(up_grade_list_next) <= 0 then--满级
  126. self.level_num_after_txt.text = ""
  127. self.maxTxt_tmp.text = "已满级"
  128. else
  129. self.maxTxt_tmp.text = ""
  130. end
  131. if self.has_init then
  132. if (not self.show_fight_effect) and last_level < level then
  133. self.show_fight_effect = true
  134. local function call_back( )
  135. self.show_fight_effect = false
  136. end
  137. self:ClearUIEffect(self.effectCon)
  138. self:AddUIEffect("ui_jinjieshuxing", self.effectCon,
  139. self.layer_name, Vector3(-220, 20, 0), 1.2, false, 0.75, nil, call_back)
  140. end
  141. end
  142. if not self.has_init then -- 第一次初始化标志
  143. self.has_init = true
  144. end
  145. ----升级属性
  146. --local attr_list = self.model:GetChildVehicleShowAttrList(vehicle_id,stage)
  147. local attr_list = self.model:GetChildHandbookItemAttrList(level) -- stringtotable(item.data.attr_list)
  148. for i=1,#self.attr_item_list do
  149. self.attr_item_list[i]:SetVisible(false)
  150. end
  151. for k,v in pairs(attr_list) do
  152. local item = self.attr_item_list[k]
  153. if item == nil then
  154. item = ChildHandbookAttrItem.New(self.Content_attr_level)
  155. self.attr_item_list[k] = item
  156. end
  157. self.attr_item_list[k]:SetData(v.attr_id,v.num_before,v.num_after)
  158. item:SetVisible(true)
  159. end
  160. --------总属性,总进度
  161. local suitRewardList = self.model:GetChildSuitRewardList()
  162. local progress = 0
  163. local collectMaxNum = 0
  164. for k,v in pairs(suitRewardList) do
  165. progress = progress + v.progress
  166. collectMaxNum = collectMaxNum + v.collectMaxNum
  167. end
  168. self.collect_num_tmp.text = ""..progress.."/"..collectMaxNum..""
  169. self.percent_num_tmp.text = (progress*100 / collectMaxNum).."%"
  170. --------总战力计算,总属性显示handbook_list
  171. local sum_attr_list = {}
  172. for k,v in pairs(handbook_list) do
  173. if v.isActive then
  174. local attr_list = stringtotable(v.attr_list)
  175. for k,v_attr in pairs(attr_list) do
  176. local isHad = false
  177. for k,v_sum in pairs(sum_attr_list) do
  178. if v_sum[1] == v_attr[1] then
  179. isHad = true
  180. v_sum[2] = v_sum[2] + v_attr[2]
  181. end
  182. end
  183. if isHad == false then
  184. table.insert(sum_attr_list,v_attr)
  185. end
  186. end
  187. end
  188. end
  189. for i=1,#self.attr_item_sum_list do
  190. self.attr_item_sum_list[i]:SetVisible(false)
  191. end
  192. for k,v in pairs(sum_attr_list) do
  193. local item = self.attr_item_sum_list[k]
  194. if item == nil then
  195. item = ChildHandbookAttrItem.New(self.Content_attr_collect)
  196. self.attr_item_sum_list[k] = item
  197. end
  198. self.attr_item_sum_list[k]:SetData(v[1],v[2],"collect")
  199. item:SetVisible(true)
  200. end
  201. -- self.fight_num_txt.text = "f"..GetFighting(sum_attr_list)
  202. end
  203. function ChildHandbookUpgradeView:SwitchTab( index )
  204. end
  205. function ChildHandbookUpgradeView:UpdateRedDot( )
  206. local red_dot_list = self.model:GetRedDotChildHandbook()
  207. self.red_dot_up_obj:SetActive(red_dot_list.is_level_up)
  208. end
  209. function ChildHandbookUpgradeView:DestroySuccess( )
  210. if self.onBreakSuccess_id then
  211. self.model:UnBind(self.onBreakSuccess_id)
  212. self.onBreakSuccess_id = nil
  213. end
  214. if self.updata_child_dif_suit_info then
  215. self.model:UnBind(self.updata_child_dif_suit_info)
  216. self.updata_child_dif_suit_info = nil
  217. end
  218. if self.updata_Child_RED_DOT_VIEW_id then
  219. self.model:UnBind(self.updata_Child_RED_DOT_VIEW_id)
  220. self.updata_Child_RED_DOT_VIEW_id = nil
  221. end
  222. if self.tabWindowComponent then
  223. self.tabWindowComponent:DeleteMe()
  224. self.tabWindowComponent = nil
  225. end
  226. for i, v in ipairs(self.attr_item_sum_list) do
  227. v:DeleteMe()
  228. v = nil
  229. end
  230. self.attr_item_sum_list = {}
  231. for i, v in ipairs(self.suit_tab_item_list) do
  232. v:DeleteMe()
  233. v = nil
  234. end
  235. self.suit_tab_item_list = {}
  236. for i, v in ipairs(self.attr_item_list) do
  237. v:DeleteMe()
  238. v = nil
  239. end
  240. self.attr_item_list = {}
  241. end