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

264 lines
10 KiB

  1. SupremeVipDiamondExchangeView = SupremeVipDiamondExchangeView or BaseClass(BaseItem)
  2. local SupremeVipDiamondExchangeView = SupremeVipDiamondExchangeView
  3. function SupremeVipDiamondExchangeView:__init()
  4. self.base_file = "supremeVip"
  5. self.layout_file = "SupremeVipDiamondExchangeView"
  6. self.model = SupremeVipModel:getInstance()
  7. self.mainVo = RoleManager.Instance.mainRoleInfo
  8. self:Load()
  9. end
  10. function SupremeVipDiamondExchangeView:Load_callback()
  11. self.nodes = {
  12. "oneBtn:obj:img", "active_btn:obj", "des2Img:img:obj",
  13. "tenBtn:obj:img",
  14. "des1Img:img", --使用绑定的红钻……
  15. "rightConBg:img", --底栏bg
  16. "awardCon1", "awardCon2",
  17. "moneyTxt2:tmp", "moneyTxt1:tmp", "desc:tmp:obj",
  18. "leftTimes:tmp",
  19. "exchangeBg:img",
  20. "moneyIcon1",
  21. "oneBtn/oneRed:obj",
  22. }
  23. self:GetChildren(self.nodes)
  24. self.oneText = self:GetChild("oneBtn/Text"):GetComponent("TextMeshProUGUI")
  25. self.tenText = self:GetChild("tenBtn/Text"):GetComponent("TextMeshProUGUI")
  26. -- lua_resM:setOutsideImageSprite(self,self.des2Img_img,GameResPath.GetSupremeVipIcon("supremeVip_des_3_pointfilter"),false,nil)
  27. lua_resM:setOutsideImageSprite(self,self.des1Img_img,GameResPath.GetSupremeVipIcon("supremeVip_des_8_pointfilter"),false,nil)
  28. lua_resM:setOutsideImageSprite(self,self.rightConBg_img,GameResPath.GetSupremeVipIcon("supremeVip_right_bg_long"),false,nil)
  29. lua_resM:setOutsideImageSprite(self,self.exchangeBg_img,GameResPath.GetSupremeVipIcon("supremeVip_right_exchange_bg"),false,nil)
  30. self.desc_tmp.text = SupremeVipConst.ViewDesc[SupremeVipConst.RED_DOT_TYPE.DiamondExchange] or ""
  31. self.award_item_1 = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.awardCon1)
  32. self.award_item_1:SetItemSize(78, 78)
  33. self.award_item_1:SetIsAct(true)
  34. self.award_item_1:SetData(100001)
  35. self.award_item_2 = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.awardCon2)
  36. self.award_item_2:SetItemSize(78, 78)
  37. self.award_item_2:SetIsAct(true)
  38. -- self.award_item_2:SetData(100000)
  39. self:AddEvents()
  40. if self.need_refreshData then
  41. self:UpdateView()
  42. end
  43. end
  44. function SupremeVipDiamondExchangeView:DoExchange(times)
  45. self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45103,2,0,times)
  46. -- local jinLock_ratio,jin_ratio = self.model:GetDiamondExchangeRatio()--彩钻红钻兑换比例数
  47. -- local cost_price = jinLock_ratio*times
  48. -- local function ok_callback( ... )
  49. -- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45103,2,0,times)
  50. -- end
  51. -- local function toggle_function( flag )
  52. -- self.model._diamond_exchange_no_double_check = flag
  53. -- end
  54. -- local function use_function( toggle_tip_data,call_fun_sum )
  55. -- if not self.model._diamond_exchange_no_double_check and cost_price ~= 0 then
  56. -- GlobalEventSystem:Fire(EventName.OPEN_COM_TOGGLE_TIP_VIEW, toggle_tip_data)
  57. -- else
  58. -- call_fun_sum()
  59. -- end
  60. -- end
  61. -- local buy_tip_data = {
  62. -- gold_type = 2,--货币类型
  63. -- cost_price = cost_price,--消耗金额
  64. -- ok_callback = ok_callback,--成功
  65. -- toggle_function = toggle_function,--多选
  66. -- togglePriceStr = string.format("<#fdffc2>%s</color> 进行兑换",cost_price),--提示语
  67. -- use_function = use_function,--最终调用
  68. -- diamond_nonuse = true,
  69. -- }
  70. -- CustomActivityModel:getInstance():BuyTips(buy_tip_data)
  71. end
  72. function SupremeVipDiamondExchangeView:AddEvents( )
  73. local on_click = function ( click_obj )
  74. if self.oneBtn_obj == click_obj then -- 单次
  75. local is_simple_svip = self.model:IsMomentSupremeVip()
  76. if not is_simple_svip then
  77. if self.rest_counts >= 1 then
  78. self:DoExchange(1)
  79. else
  80. Message.show("兑换次数不足","fault")
  81. end
  82. else--一阶贵族要给一次体验机会
  83. if self.rest_counts >= 1 then
  84. self:DoExchange(1)
  85. else
  86. Alert.show("成为<#04bd27>二阶贵族</color>,享<#ff6519>点金手</color>特权,红钻免费兑换彩钻", Alert.Type.Two, function()
  87. self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW)
  88. end, nil, "前往升级", "取消")
  89. end
  90. end
  91. elseif self.tenBtn_obj == click_obj then -- 十次
  92. local have_supreme_vip_right = self.model:HaveSupremeVipRight(2)
  93. if have_supreme_vip_right then
  94. if self.rest_counts >= 10 then
  95. self:DoExchange(10)
  96. else
  97. Message.show("兑换次数不足","fault")
  98. end
  99. else
  100. -- Message.show("成为二阶贵族后可激活新特权","fault")
  101. Alert.show("成为<#04bd27>二阶贵族</color>,享<#ff6519>点金手</color>特权,红钻免费兑换彩钻", Alert.Type.Two, function()
  102. self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW)
  103. end, nil, "前往升级", "取消")
  104. end
  105. elseif self.active_btn_obj == click_obj then -- 激活永久特权
  106. self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW)
  107. end
  108. end
  109. AddClickEvent(self.oneBtn_obj, on_click)
  110. AddClickEvent(self.tenBtn_obj, on_click)
  111. AddClickEvent(self.active_btn_obj, on_click,1)
  112. local function onChangeJinLockHandler()
  113. if not self.is_loaded or self._use_delete_method then return end
  114. self:UpdateDiamondNum()
  115. end
  116. self.change_lockJin_id = self.mainVo:BindOne("jinLock",onChangeJinLockHandler)
  117. --刷新兑换剩余次数
  118. local function update_exchange_rest_counts()
  119. if not self.is_loaded or self._use_delete_method then return end
  120. self:UpdateExchangeRestCounts()
  121. end
  122. self:BindEvent(self.model, SupremeVipConst.REFRESH_EXCHANGE_REST_COUNTS,update_exchange_rest_counts)
  123. --刷新红点
  124. local function on_update_red(tab_id)
  125. if not self.is_loaded or self._use_delete_method then return end
  126. if tab_id == SupremeVipConst.RED_DOT_TYPE.DiamondExchange then
  127. self:UpdateRedDot()
  128. end
  129. end
  130. self:BindEvent(self.model, SupremeVipConst.ANS_UPDATE_RED_DOT,on_update_red)
  131. end
  132. function SupremeVipDiamondExchangeView:UpdateRedDot( )
  133. local sup_vip_type = RoleManager.Instance.mainRoleInfo.sup_vip_type
  134. if sup_vip_type == 1 then--体验贵族 一次兑换有体验次数时给红点
  135. local rest_counts_red = self.model:GetDiamondExchangeRed()
  136. if rest_counts_red then
  137. self.oneRed_obj:SetActive(true)
  138. else
  139. self.oneRed_obj:SetActive(false)
  140. end
  141. else
  142. self.oneRed_obj:SetActive(false)
  143. end
  144. end
  145. function SupremeVipDiamondExchangeView:UpdateView( )
  146. self:UpdateExchangeRestCounts()
  147. self:UpdateDiamondNum()
  148. self:UpdateRedDot()
  149. end
  150. --刷新剩余兑换次数以及相应的按钮样式
  151. function SupremeVipDiamondExchangeView:UpdateExchangeRestCounts( )
  152. -- do return end
  153. self.rest_counts = self.model:GetExchangeRestCount(SupremeVipConst.ExchangeType.Diamond)
  154. -- self.leftTimes_tmp.text = self.rest_counts.."次"
  155. local sup_vip_type = RoleManager.Instance.mainRoleInfo.sup_vip_type
  156. -- SetImageGray(self.oneBtn_img,self.rest_counts<1 or sup_vip_type < 2)
  157. -- SetImageGray(self.tenBtn_img,self.rest_counts<10 or sup_vip_type < 2)
  158. -- SetTMPSharedMaterial(self.takeBtn_txt, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  159. -- SetTMPSharedMaterial(self.takeBtn_txt, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  160. if sup_vip_type == 1 then--一阶贵族按钮常亮,引导玩家去点
  161. SetImageGray(self.oneBtn_img, false)
  162. SetImageGray(self.tenBtn_img, false)
  163. SetTMPSharedMaterial(self.oneText, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  164. SetTMPSharedMaterial(self.tenText, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  165. elseif sup_vip_type == 2 then
  166. if self.rest_counts < 1 then
  167. SetImageGray(self.oneBtn_img, true)
  168. SetImageGray(self.tenBtn_img, true)
  169. SetTMPSharedMaterial(self.oneText, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  170. SetTMPSharedMaterial(self.tenText, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  171. elseif self.rest_counts >= 1 and self.rest_counts < 10 then
  172. SetImageGray(self.oneBtn_img, false)
  173. SetImageGray(self.tenBtn_img, true)
  174. SetTMPSharedMaterial(self.oneText, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  175. SetTMPSharedMaterial(self.tenText, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  176. else
  177. SetImageGray(self.oneBtn_img, false)
  178. SetImageGray(self.tenBtn_img, false)
  179. SetTMPSharedMaterial(self.oneText, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  180. SetTMPSharedMaterial(self.tenText, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  181. end
  182. else
  183. SetImageGray(self.oneBtn_img, true)
  184. SetImageGray(self.tenBtn_img, true)
  185. SetTMPSharedMaterial(self.oneText, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  186. SetTMPSharedMaterial(self.tenText, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  187. end
  188. if sup_vip_type == 2 then
  189. local num_color = self.rest_counts == 0 and ColorUtil.RED_DARK or ColorUtil.GREEN_TIPS
  190. self.leftTimes_tmp.text = string.format("今日剩余:<%s>%s</color>", num_color, self.rest_counts)
  191. else
  192. self.leftTimes_tmp.text = ""
  193. end
  194. end
  195. --刷新货币数量显示
  196. function SupremeVipDiamondExchangeView:UpdateDiamondNum( )
  197. local jinLock_num = WordManager:ConvertNum(self.mainVo.jinLock)--红钻数量
  198. local jinLock_ratio,jin_ratio = self.model:GetDiamondExchangeRatio()--彩钻红钻兑换比例数
  199. local sup_vip_type = RoleManager.Instance.mainRoleInfo.sup_vip_type
  200. if sup_vip_type == 2 then
  201. self.moneyTxt1_tmp.text = jinLock_num.."/"..jinLock_ratio
  202. else
  203. self.moneyTxt1_tmp.text = jinLock_ratio
  204. end
  205. SetAnchoredPositionX(self.moneyIcon1,-49-self.moneyTxt1_tmp.preferredWidth/2-18)
  206. self.moneyTxt2_tmp.text = jin_ratio
  207. -- self.award_item_2:SetData(100000,jin_ratio)
  208. self.award_item_2:SetData(100000)
  209. end
  210. function SupremeVipDiamondExchangeView:SetData( data )
  211. self.data = data
  212. if self.is_loaded then
  213. self.need_refreshData = false
  214. self:UpdateView()
  215. else
  216. self.need_refreshData = true
  217. end
  218. end
  219. function SupremeVipDiamondExchangeView:__delete( )
  220. if self.award_item_1 then
  221. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.award_item_1)
  222. self.award_item_1 = nil
  223. end
  224. if self.award_item_2 then
  225. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.award_item_2)
  226. self.award_item_2 = nil
  227. end
  228. if self.change_lockJin_id then
  229. self.mainVo:UnBind(self.change_lockJin_id)
  230. self.change_lockJin_id = nil
  231. end
  232. end