源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

218 行
7.1 KiB

  1. SupremeVipMainView = SupremeVipMainView or BaseClass(BaseItem)
  2. local SupremeVipMainView = SupremeVipMainView
  3. function SupremeVipMainView:__init()
  4. self.base_file = "supremeVip"
  5. self.layout_file = "SupremeVipMainView"
  6. self.model = SupremeVipModel:getInstance()
  7. self.item_list = {}
  8. self.seven_item_list = {}
  9. self:Load()
  10. end
  11. function SupremeVipMainView:Load_callback()
  12. self.nodes = {
  13. "des1Img:img",
  14. "normalCon/dailyGiftBg:img",
  15. "normalCon/getRewardBtn:obj:img", -- 领奖按钮
  16. "normalCon/rewardCon", --奖励展示框
  17. "normalCon/getRewardBtn/getRewardRed:obj",
  18. "normalCon/desc:tmp",
  19. "normalCon:obj", "sevenCon:obj", "sevenCon/sevenRewardCon",
  20. }
  21. self:GetChildren(self.nodes)
  22. self.getReward_tmp = self:GetChild("normalCon/getRewardBtn/Text"):GetComponent("TextMeshProUGUI")
  23. lua_resM:setOutsideImageSprite(self,self.dailyGiftBg_img,GameResPath.GetSupremeVipIcon("supremeVip_right_bg_short"),false,nil)
  24. self.desc_tmp.text = SupremeVipConst.ViewDesc[SupremeVipConst.RED_DOT_TYPE.DailyGift] or ""
  25. self:AddEvents()
  26. if self.need_refreshData then
  27. self:UpdateView()
  28. end
  29. end
  30. function SupremeVipMainView:AddEvents( )
  31. local on_click = function ( click_obj )
  32. if self.getRewardBtn_obj == click_obj then -- 领奖
  33. self:GetReward()
  34. end
  35. end
  36. AddClickEvent(self.getRewardBtn_obj, on_click)
  37. --刷新红点
  38. local function on_update_red(tab_id)
  39. if not self.is_loaded or self._use_delete_method then return end
  40. if tab_id == SupremeVipConst.RED_DOT_TYPE.DailyGift then
  41. self:UpdateBtnState()
  42. self:UpdateRedDot()
  43. end
  44. end
  45. self:BindEvent(self.model, SupremeVipConst.ANS_UPDATE_RED_DOT,on_update_red)
  46. --刷新七日登录
  47. local function on_update_view()
  48. if not self.is_loaded or self._use_delete_method then return end
  49. self:UpdateView()
  50. end
  51. self:BindEvent(self.model, SupremeVipConst.UPDATE_SUPREME_VIP_SEVEN_LOGIN_VIEW,on_update_view)
  52. end
  53. function SupremeVipMainView:UpdateRedDot( )
  54. local red = self.model:GetDailyGiftRed()
  55. self.getRewardRed_obj:SetActive(red)
  56. end
  57. --领取奖励
  58. function SupremeVipMainView:GetReward( )
  59. local rest_daily_gift_counts = self.model:GetExchangeRestCount(SupremeVipConst.ExchangeType.DailyGift)--拿到剩余的兑换次数
  60. if self.model:IsForeverSupremeVip() then -- 永久贵族
  61. if rest_daily_gift_counts > 0 then -- 还有兑换次数
  62. self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45103,1,0,0)
  63. else
  64. Message.show("领取次数已用完","fault")
  65. end
  66. else
  67. if rest_daily_gift_counts > 0 then -- 还有兑换次数
  68. self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45103,1,0,0)
  69. else
  70. Alert.show("成为<#04bd27>二阶贵族</color>,可再领取一次<#ff6519>贵族专属礼包</color>", Alert.Type.Two, function()
  71. self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW)
  72. end, nil, "前往升级", "取消")
  73. end
  74. end
  75. end
  76. function SupremeVipMainView:UpdateView( )
  77. local login_days = self.model:GetSupremeVipSevenLoginDays()
  78. if login_days > 7 then
  79. lua_resM:setOutsideImageSprite(self,self.des1Img_img,GameResPath.GetSupremeVipIcon("supremeVip_des_10_pointfilter"),true)
  80. SetAnchoredPosition(self.des1Img,142,172)
  81. self.normalCon_obj:SetActive(true)
  82. self.sevenCon_obj:SetActive(false)
  83. self:UpdateDailyGiftCon()
  84. self:UpdateBtnState()
  85. else
  86. lua_resM:setOutsideImageSprite(self,self.des1Img_img,GameResPath.GetSupremeVipIcon("supremeVip_des_11_pointfilter"),true)
  87. SetAnchoredPosition(self.des1Img,126,193)
  88. self.normalCon_obj:SetActive(false)
  89. self.sevenCon_obj:SetActive(true)
  90. self:UpdateSevenLogin()
  91. end
  92. self:UpdateRedDot()
  93. end
  94. function SupremeVipMainView:UpdateSevenLogin( )
  95. for k,v in pairs(self.seven_item_list) do
  96. v:SetVisible(false)
  97. end
  98. for i=1,7 do
  99. local item = self.seven_item_list[i]
  100. if not item then
  101. item = SupremeVipSevenLoginItem.New(self.sevenRewardCon)
  102. self.seven_item_list[i] = item
  103. end
  104. item:SetVisible(true)
  105. item:SetData(i)
  106. item:SetAnchoredPosition(-4+(i-1)*(86+13),0)
  107. end
  108. end
  109. function SupremeVipMainView:UpdateBtnState( )
  110. local rest_daily_gift_counts = self.model:GetExchangeRestCount(SupremeVipConst.ExchangeType.DailyGift)--拿到剩余的兑换次数
  111. if not self.model:IsForeverSupremeVip() then -- 一阶贵族
  112. if rest_daily_gift_counts <= 0 then
  113. self.getReward_tmp.text = "再领一次"
  114. SetImageGray(self.getRewardBtn_img,false)
  115. -- lua_resM:setImageSprite(self, self.getRewardBtn_img, "alphaCommon_asset","tyui_btn_1")
  116. -- SetTMPSharedMaterial(self.getReward_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkBlueBtn)
  117. lua_resM:setImageSprite(self, self.getRewardBtn_img, "alphaCommon_asset","tyui_btn_2")
  118. SetTMPSharedMaterial(self.getReward_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  119. self.getRewardRed_obj:SetActive(false)
  120. else
  121. self.getReward_tmp.text = "立即领取"
  122. SetImageGray(self.getRewardBtn_img,false)
  123. lua_resM:setImageSprite(self, self.getRewardBtn_img, "alphaCommon_asset","tyui_btn_2")
  124. SetTMPSharedMaterial(self.getReward_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  125. self.getRewardRed_obj:SetActive(true)
  126. end
  127. else
  128. if rest_daily_gift_counts == 2 then
  129. self.getReward_tmp.text = "立即领取"
  130. SetImageGray(self.getRewardBtn_img,false)
  131. lua_resM:setImageSprite(self, self.getRewardBtn_img, "alphaCommon_asset","tyui_btn_2")
  132. SetTMPSharedMaterial(self.getReward_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  133. self.getRewardRed_obj:SetActive(true)
  134. elseif rest_daily_gift_counts == 1 then
  135. self.getReward_tmp.text = "再领一次"
  136. SetImageGray(self.getRewardBtn_img,false)
  137. lua_resM:setImageSprite(self, self.getRewardBtn_img, "alphaCommon_asset","tyui_btn_2")
  138. SetTMPSharedMaterial(self.getReward_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  139. self.getRewardRed_obj:SetActive(true)
  140. else
  141. self.getReward_tmp.text = "已领完"
  142. SetImageGray(self.getRewardBtn_img,true)
  143. lua_resM:setImageSprite(self, self.getRewardBtn_img, "alphaCommon_asset","tyui_btn_2")
  144. SetTMPSharedMaterial(self.getReward_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  145. self.getRewardRed_obj:SetActive(false)
  146. end
  147. end
  148. end
  149. --刷新每日礼包展示
  150. function SupremeVipMainView:UpdateDailyGiftCon( )
  151. for k,v in pairs(self.item_list) do
  152. v:SetVisible(false)
  153. end
  154. local daily_gift_cfg = self.model:GetDailyGiftCfg()
  155. for i,v in ipairs(daily_gift_cfg) do
  156. local item = self.item_list[i]
  157. if not item then
  158. item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.rewardCon)
  159. item:SetIsAct(true)
  160. self.item_list[i] = item
  161. end
  162. item:SetItemSize(78, 78)
  163. item:SetVisible(true)
  164. local goods_type_id = v[2]
  165. local goods_num = v[3]
  166. item:SetData(goods_type_id,goods_num)
  167. item:SetDataWithMapId(goods_type_id,goods_num,v[1])
  168. end
  169. end
  170. function SupremeVipMainView:SetData( data )
  171. self.data = data
  172. if self.is_loaded then
  173. self.need_refreshData = false
  174. self:UpdateView()
  175. else
  176. self.need_refreshData = true
  177. end
  178. end
  179. function SupremeVipMainView:__delete( )
  180. for k,v in pairs(self.item_list) do
  181. if v then
  182. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v)
  183. v = nil
  184. end
  185. end
  186. self.item_list = {}
  187. for i, v in ipairs(self.seven_item_list) do
  188. v:DeleteMe()
  189. end
  190. self.seven_item_list = {}
  191. end