源战役客户端
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.

266 rivejä
8.6 KiB

4 viikkoa sitten
  1. --冲级礼包领取列表
  2. FuliLimitPackageRewardView = FuliLimitPackageRewardView or BaseClass(BaseView)
  3. local FuliLimitPackageRewardView = FuliLimitPackageRewardView
  4. function FuliLimitPackageRewardView:__init()
  5. self.base_file = "fuli"
  6. self.layout_file = "FuliLimitPackageRewardView"
  7. self.layer_name = "Activity"
  8. --self.use_local_view = true
  9. self.click_bg_toClose = true
  10. self.destroy_imm = true
  11. self.use_background = true
  12. self.is_set_zdepth = true
  13. self.close_mode = CloseMode.CloseDestroy
  14. self.model = FuliModel:getInstance()
  15. self.mainVo = RoleManager.Instance.mainRoleInfo
  16. self.no = false
  17. self.item_list_one = {}
  18. self.item_list_two = {}
  19. self.load_callback = function ()
  20. self:LoadSuccess()
  21. self:AddEvents()
  22. end
  23. self.open_callback = function ()
  24. GlobalEventSystem:Fire(SceneEventType.CLOSE_DIALOGUE_VIEW)
  25. GlobalEventSystem:Fire(EventName.STOP_AUTO_DO_TASK)
  26. GlobalEventSystem:Fire(EventName.STOPAUTOFIGHT)
  27. self:SetData()
  28. end
  29. self.close_callback = function ()
  30. end
  31. self.destroy_callback = function ()
  32. self:DestroySuccess()
  33. end
  34. self.ReOpen_callback = function ()
  35. self:SetData()
  36. end
  37. end
  38. function FuliLimitPackageRewardView:Open(no)
  39. self.no = no
  40. BaseView.Open(self)
  41. end
  42. function FuliLimitPackageRewardView:DestroySuccess()
  43. self:ClearUIEffect(self.effect_forever)
  44. self:ClearUIEffect(self.effect)
  45. if self.slow_effect_id then
  46. GlobalTimerQuest:CancelQuest(self.slow_effect_id)
  47. self.slow_effect_id = nil
  48. end
  49. self:StopPlayTimer()
  50. self:ClearRewardShow()
  51. if self.timer_countdown then
  52. TimerQuest.CancelQuest(GlobalTimerQuest, self.timer_countdown)
  53. self.timer_countdown = nil
  54. end
  55. GlobalEventSystem:Fire(EventName.FORCE_TO_DO_TASK)
  56. GlobalEventSystem:Fire(EventName.START_AUTO_DO_TASK)
  57. end
  58. function FuliLimitPackageRewardView:LoadSuccess()
  59. local nodes = {
  60. "center/mask_bg:obj",
  61. "center/bg:raw",
  62. "center/titlebg:img",
  63. "center/tips:txt",
  64. "center/effect_forever",
  65. "center/effect",
  66. "center/item_scroll_one:obj",
  67. "center/item_scroll_one/Viewport/item_con_one",
  68. "center/next_img/next_text:txt",
  69. "center/line:obj",
  70. "center/item_scroll_two:obj",
  71. "center/item_scroll_two/Viewport/item_con_two",
  72. "center/cur_img:obj",
  73. "center/next_img:obj",
  74. "center/ok_btn:obj",
  75. "icon_cont:obj",
  76. "center:obj"
  77. }
  78. self:GetChildren(nodes)
  79. lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("com_award_result_view_bg"),false)
  80. lua_resM:setOutsideImageSprite(self, self.titlebg_img, GameResPath.GetCommonImage("com_award_result_view_bg"),false)
  81. local function onDelay()
  82. local function end_call_func( ... )
  83. if self.effect_forever then
  84. self:AddUIEffect("getgoods_02",self.effect_forever, self.layer_name, nil, 1, true,nil,nil,nil)
  85. end
  86. end
  87. self:AddUIEffect("getgoods_01",self.effect, self.layer_name, nil, 1, false,nil,nil,end_call_func)
  88. end
  89. self.slow_effect_id = GlobalTimerQuest:AddDelayQuest(onDelay, 0.1)
  90. self.tips_txt.text = ""
  91. end
  92. function FuliLimitPackageRewardView:CheckLeftTime()
  93. if self.timer_countdown then
  94. TimerQuest.CancelQuest(GlobalTimerQuest, self.timer_countdown)
  95. self.timer_countdown = nil
  96. end
  97. local leftTime = 10
  98. local function timer_func()
  99. leftTime = leftTime - 1
  100. if leftTime <= 0 then
  101. self:Continue()
  102. else
  103. self.tips_txt.text = string.format("%s 秒后自动关闭界面", HtmlColorTxt( leftTime, "#0CE148") )
  104. end
  105. end
  106. self.timer_countdown = TimerQuest.AddPeriodQuest(GlobalTimerQuest, timer_func, 1)
  107. timer_func()
  108. end
  109. function FuliLimitPackageRewardView:AddEvents()
  110. local function click_func(target)
  111. if target == self.mask_bg_obj then
  112. self:Continue()
  113. elseif target == self.ok_btn_obj then
  114. self:Continue()
  115. end
  116. end
  117. AddClickEvent(self.mask_bg_obj, click_func)
  118. AddClickEvent(self.ok_btn_obj, click_func)
  119. end
  120. function FuliLimitPackageRewardView:SetData()
  121. if not self.no then
  122. self:Close()
  123. return
  124. end
  125. self.cfg = DeepCopy(self.model:GetFuliLevelCFG(self.mainVo.career))
  126. if not self.cfg[self.no] then
  127. self:Close()
  128. return
  129. end
  130. local list_one = self.cfg[self.no].award_limit_list or self.cfg[self.no].award_list
  131. if #list_one > 0 then
  132. for i,v in ipairs(list_one) do
  133. local item = self.item_list_one[i]
  134. if item == nil then
  135. item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_con_one)
  136. self.item_list_one[i] = item
  137. end
  138. if v.is_limit then
  139. item:SetNumLimitVisible( true, 4 )
  140. item:SetData(v[2], 1, nil, nil)
  141. else
  142. item:SetNumLimitVisible( false )
  143. item:SetData(v[2], v[3], nil, nil)
  144. end
  145. item:SetItemSize(84, 84)
  146. item:SetVisible(true)
  147. item:SetAnchoredPosition((i - 1) * 95 + 8,-8)
  148. end
  149. end
  150. SetSizeDeltaX(self.item_con_one, 95 * #list_one)
  151. if self.no + 1 > #self.cfg then
  152. self.item_scroll_two_obj:SetActive(false)
  153. self.next_img_obj:SetActive(false)
  154. self.line_obj:SetActive(false)
  155. self.ok_btn_obj:SetActive(false)
  156. SetAnchoredPositionY(self.item_scroll_one, -40)
  157. SetAnchoredPositionY(self.cur_img, -38)
  158. else
  159. local list_two = self.cfg[self.no + 1].award_limit_list or self.cfg[self.no + 1].award_list
  160. if #list_two > 0 then
  161. for i,v in ipairs(list_two) do
  162. local item = self.item_list_two[i]
  163. if item == nil then
  164. item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_con_two)
  165. self.item_list_two[i] = item
  166. end
  167. if v.is_limit then
  168. item:SetNumLimitVisible( true, 4 )
  169. item:SetData(v[2], 1, nil, nil)
  170. else
  171. item:SetNumLimitVisible( false )
  172. item:SetData(v[2], v[3], nil, nil)
  173. end
  174. item:SetItemSize(84, 84)
  175. item:SetVisible(true)
  176. item:SetAnchoredPosition((i - 1) * 95 + 8,-8)
  177. end
  178. end
  179. SetSizeDeltaX(self.item_con_two, 95 * #list_two)
  180. self.item_scroll_two_obj:SetActive(true)
  181. self.next_img_obj:SetActive(true)
  182. self.line_obj:SetActive(true)
  183. self.ok_btn_obj:SetActive(true)
  184. SetAnchoredPositionY(self.item_scroll_one, 40)
  185. SetAnchoredPositionY(self.cur_img, 42)
  186. self.next_text_txt.text = tostring(self.cfg[self.no + 1].level)
  187. end
  188. self:CheckLeftTime()
  189. end
  190. function FuliLimitPackageRewardView:UpdateItemList( )
  191. end
  192. function FuliLimitPackageRewardView:StopPlayTimer()
  193. if self.award_timer_id then
  194. GlobalTimerQuest:CancelQuest(self.award_timer_id)
  195. self.award_timer_id = nil
  196. end
  197. end
  198. --删除奖励
  199. function FuliLimitPackageRewardView:ClearRewardShow()
  200. for i,item in pairs(self.item_list_one) do
  201. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, item)
  202. end
  203. self.item_list_one = {}
  204. for i,item in pairs(self.item_list_two) do
  205. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, item)
  206. end
  207. self.item_list_two = {}
  208. end
  209. function FuliLimitPackageRewardView:InitActoin()
  210. self.image_obj = UiFactory.createChild(self.icon_cont, UIType.ImageExtend)
  211. self.image_icon = self.image_obj:GetComponent("ImageExtend")
  212. SetLocalPosition(self.image_obj.transform, 0, 0, 0)
  213. lua_resM:setImageSprite(self, self.image_icon, "activityIcon_asset", "icon_jl_1", true)
  214. self.image_obj.transform.sizeDelta = Vector2(60, 60)
  215. end
  216. --动画开始
  217. function FuliLimitPackageRewardView:PlayAction( )
  218. local callback = function()
  219. self:Close()
  220. end
  221. local pos = ActivityIconManager:getInstance():GetActivityIconPos(16000)
  222. if pos and self.image_obj then
  223. self.center_obj:SetActive(false)
  224. self.icon_cont_obj:SetActive(true)
  225. self.tween_id = TweenLite.to(self, self.image_obj.transform, TweenLite.UiAnimationType.POS, pos, 0.8, callback)
  226. else
  227. callback()
  228. end
  229. end
  230. function FuliLimitPackageRewardView:Continue()
  231. self:InitActoin()
  232. self:PlayAction()
  233. end