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

226 line
6.8 KiB

  1. PetVoteView = PetVoteView or BaseClass(BaseView)
  2. local PetVoteView = PetVoteView
  3. function PetVoteView:__init()
  4. self.base_file = "pet"
  5. self.layout_file = "PetVoteView"
  6. self.layer_name = "Activity"
  7. self.destroy_imm = true
  8. self.use_background = true
  9. self.change_scene_close = true
  10. self.hide_maincancas = false --是否隐藏主界面
  11. self.append_to_ctl_queue = false --是否要添加进界面堆栈
  12. self.need_show_money = false --是否要显示顶部的金钱栏\
  13. self.is_set_zdepth = true
  14. self.blur_activity_bg = true
  15. -- self.use_show_anim = true
  16. -- self.use_hide_anim = true
  17. self.model = PetModel:getInstance()
  18. self.load_callback = function ()
  19. self:LoadSuccess()
  20. self:AddEvent()
  21. end
  22. self.open_callback = function ( )
  23. self:OpenSuccess()
  24. end
  25. self.destroy_callback = function ( )
  26. self:DestroySuccess()
  27. end
  28. end
  29. function PetVoteView:Open(index)
  30. self.current_index = index or 1
  31. BaseView.Open(self)
  32. end
  33. function PetVoteView:LoadSuccess()
  34. local nodes = {
  35. "bg:raw", "mainTitle:img",
  36. "rankBtn:obj", "shareBtn:obj", "close:obj",
  37. "voteTimes:tmp",
  38. "rankBtn/rankRewardBtn:obj",
  39. "ScrollView", "ScrollView/Viewport/Content",
  40. "tips2:tmp", "tips1:tmp",
  41. "endTime:tmp",
  42. "empty/image:raw", "empty/girl:raw",
  43. "empty:obj",
  44. }
  45. self:GetChildren(nodes)
  46. self.tips1_tmp.text = "每日4:00更新统计全服宠物战力排行前8位的宠物 <#fdffc2>(4日后开启跨服模式)</color>"
  47. self.tips2_tmp.text = "上榜宠物主人可获得排行大礼,其他玩家每日点赞可获得点赞奖励"
  48. lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetViewBigBg("pet_vote_bg"))
  49. lua_resM:setOutsideImageSprite(self, self.mainTitle_img, GameResPath.GetPetImage("pet_vote_slogan"))
  50. lua_resM:setOutsideRawImage(self, self.girl_raw, GameResPath.GetRoleBg("com_empty_dialogueGirl1_590x560"), false)
  51. lua_resM:setOutsideRawImage(self, self.image_raw, GameResPath.GetViewBigBg("com_empty_bg1"))
  52. end
  53. function PetVoteView:AddEvent()
  54. local on_click = function ( click_obj )
  55. if self.rankBtn_obj == click_obj then
  56. if self.model:CanVotePetRank() then
  57. self.model:Fire(PetConst.OPEN_PET_SUPPORT_RANK_VIEW)
  58. else
  59. Message.show("上榜宠物不足,请耐心等候哦!")
  60. end
  61. elseif self.shareBtn_obj == click_obj then
  62. local content = "快来pick人气宠物吧!<a@showPetVote><color=#2cf89a>[点击前往]</color></a>"
  63. ChatModel:getInstance():Fire(ChatModel.SEND_MSG,ChatModel.CHANNEL_WORLD,content,nil,nil,ChatModel.CHAT_COMMON_TYPE.SYSTEM)
  64. Message.show("已分享至世界频道!","success")
  65. elseif self.close_obj == click_obj then
  66. self:Close()
  67. end
  68. end
  69. AddClickEvent(self.rankBtn_obj, on_click)
  70. AddClickEvent(self.shareBtn_obj, on_click)
  71. AddClickEvent(self.close_obj, on_click)
  72. local function onUpdateVoteView()
  73. self:UpdateView()
  74. end
  75. self:BindEvent(self.model, PetConst.UPDATE_VOTE_VIEW, onUpdateVoteView)
  76. local function onUpdateVoteTimes()
  77. self:UpdateLeftVoteTimes()
  78. end
  79. self:BindEvent(self.model, PetConst.UPDATE_LEFT_VOTE_TIMES, onUpdateVoteTimes)
  80. --红点更新
  81. local function on_ans_update_red_dot(tab_id)
  82. if not self.is_loaded then return end
  83. if tab_id == PetConst.RED_DOT_TYPE.Reward then
  84. self:RefreshRed()
  85. end
  86. end
  87. self:BindEvent(self.model, PetConst.ANS_UPDATE_RED_DOT, on_ans_update_red_dot)
  88. end
  89. function PetVoteView:RefreshRed( )
  90. local reward_vote = self.model:GetPetRewardRed()
  91. self.rankRewardBtn_obj:SetActive(reward_vote)
  92. end
  93. function PetVoteView:OpenSuccess()
  94. -- self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16312)
  95. self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16309)
  96. end
  97. function PetVoteView:UpdateView( )
  98. local time_four = TimeUtil:GetToDayNHourStr(4)
  99. if TimeUtil:getServerTime() <= time_four then--还没到今天4点,显示昨天4点结算
  100. self.endTime_tmp.text = string.format("本次统计截止 <#fdffc2>%s 凌晨4:00</color>",TimeUtil:timeConversion(TimeUtil:getServerTime()-86400,"mm月dd日"))
  101. else--超过了就是今日的4点结算
  102. self.endTime_tmp.text = string.format("本次统计截止 <#fdffc2>%s 凌晨4:00</color>",TimeUtil:timeConversion(TimeUtil:getServerTime(),"mm月dd日"))
  103. end
  104. local pet_vote_data = self.model:GetRankData()
  105. -- if not pet_vote_data or #pet_vote_data == 0 then
  106. if not self.model:CanVotePetRank() then
  107. self.empty_obj:SetActive(true)
  108. return
  109. else
  110. self.empty_obj:SetActive(false)
  111. end
  112. if not self.item_list_com then
  113. self.item_list_com = self:AddUIComponent(UI.ItemListCreator)
  114. end
  115. local info = {
  116. data_list = pet_vote_data,
  117. item_con = self.Content,
  118. item_class = PetVoteItem,
  119. item_width = 176,
  120. item_height = 235,
  121. space_x = 7,
  122. space_y = 16,
  123. start_x = 5,
  124. start_y = -4,
  125. scroll_view = self.ScrollView,
  126. -- create_frequency = 0.01,
  127. on_update_item = function(item, i, v)
  128. item:SetData(v,i)
  129. end,
  130. }
  131. self.item_list_com:UpdateItems(info)
  132. -- local pet_vote_data_1 = self.model:GetPetVoteDataByRare(1)
  133. -- local pet_vote_data_2 = self.model:GetPetVoteDataByRare(2)
  134. -- local pet_vote_data_3 = self.model:GetPetVoteDataByRare(3)
  135. -- if not self.item_list_com_1 then
  136. -- self.item_list_com_1 = self:AddUIComponent(UI.ItemListCreator)
  137. -- end
  138. -- local info = {
  139. -- data_list = pet_vote_data_1,
  140. -- item_con = self.Content_1,
  141. -- item_class = PetVoteItem,
  142. -- item_height = 90,
  143. -- space_y = -3,
  144. -- start_x = 0,
  145. -- start_y = 2,
  146. -- scroll_view = self.ScrollView_2,
  147. -- create_frequency = 0.01,
  148. -- on_update_item = function(item, i, v)
  149. -- item:SetData(v,i,1)
  150. -- end,
  151. -- }
  152. -- self.item_list_com_1:UpdateItems(info)
  153. -- if not self.item_list_com_2 then
  154. -- self.item_list_com_2 = self:AddUIComponent(UI.ItemListCreator)
  155. -- end
  156. -- local info = {
  157. -- data_list = pet_vote_data_2,
  158. -- item_con = self.Content_2,
  159. -- item_class = PetVoteItem,
  160. -- item_height = 90,
  161. -- space_y = -3,
  162. -- start_x = 0,
  163. -- start_y = 2,
  164. -- scroll_view = self.ScrollView_2,
  165. -- create_frequency = 0.01,
  166. -- on_update_item = function(item, i, v)
  167. -- item:SetData(v,i,2)
  168. -- end,
  169. -- }
  170. -- self.item_list_com_2:UpdateItems(info)
  171. -- if not self.item_list_com_3 then
  172. -- self.item_list_com_3 = self:AddUIComponent(UI.ItemListCreator)
  173. -- end
  174. -- local info = {
  175. -- data_list = pet_vote_data_3,
  176. -- item_con = self.Content_3,
  177. -- item_class = PetVoteItem,
  178. -- item_height = 90,
  179. -- space_y = -3,
  180. -- start_x = 0,
  181. -- start_y = 2,
  182. -- scroll_view = self.ScrollView_3,
  183. -- create_frequency = 0.01,
  184. -- on_update_item = function(item, i, v)
  185. -- item:SetData(v,i,3)
  186. -- end,
  187. -- }
  188. -- self.item_list_com_3:UpdateItems(info)
  189. self:RefreshRed()
  190. end
  191. function PetVoteView:UpdateLeftVoteTimes( )
  192. local left_vote_times = self.model:GetMyLeftVoteTimes()
  193. local str_color = left_vote_times > 0 and ColorUtil.GREEN_TIPS or ColorUtil.RED_DARK
  194. self.voteTimes_tmp.text = string.format("今日剩余点赞次数:<%s>%s</color>", str_color, left_vote_times)
  195. end
  196. function PetVoteView:DestroySuccess( )
  197. end