源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

203 rindas
6.2 KiB

pirms 4 nedēļām
  1. SupremeVipShopItem = SupremeVipShopItem or BaseClass(BaseItem)
  2. local SupremeVipShopItem = SupremeVipShopItem
  3. SupremeVipShopItem.Width = 146
  4. SupremeVipShopItem.Height = 181
  5. function SupremeVipShopItem:__init()
  6. self.base_file = "supremeVip"
  7. self.layout_file = "SupremeVipShopItem"
  8. self.model = SupremeVipModel:getInstance()
  9. self.mainVo = RoleManager:getInstance():GetMainRoleVo()
  10. self.can_buy = false --是否能购买
  11. self:Load()
  12. end
  13. function SupremeVipShopItem:Load_callback()
  14. self.nodes = {
  15. "awardCon:obj",
  16. "limit:tmp",
  17. "moneyIcon:obj:img",
  18. "lock:obj", --神秘物品标志
  19. "emptyClick:obj",
  20. "price:tmp",
  21. "name:tmp",
  22. "lockTips:tmp",
  23. "bg:img"
  24. }
  25. self:GetChildren(self.nodes)
  26. self.awardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.awardCon, false)
  27. self.awardItem:SetItemSize(62, 62)
  28. self.awardItem:SetIsAct(true)
  29. self:AddEvents()
  30. if self.need_refreshData then
  31. self:UpdateView()
  32. end
  33. end
  34. function SupremeVipShopItem:AddEvents( )
  35. local on_click = function(click_obj,x,y)
  36. if self.emptyClick_obj == click_obj then --购买物品
  37. -- if self.can_buy then
  38. -- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45105,self.data.goods_id)
  39. -- else
  40. -- Message.show("已达到限购数量")
  41. -- end
  42. local limit_quota_type = 0
  43. if self.limit_type == 1 then
  44. limit_quota_type = 2
  45. elseif self.limit_type == 2 then
  46. limit_quota_type = 1
  47. else
  48. limit_quota_type = 0
  49. end
  50. local data = {
  51. shop_data = {
  52. price = self.money_cost,
  53. money_type = self.money_type,
  54. goods_id = self.data.goods_id,
  55. quota_num = self.limit_num,
  56. sold_out = self.sold_out,
  57. bind = false,
  58. quota_type = limit_quota_type,
  59. -- num = 1,
  60. discount = 100,
  61. is_supreme_vip_shop = true,
  62. },
  63. }
  64. UIToolTipMgr:getInstance():AppendGoodsTips(self.data.goods_id, x, y, nil, nil,data, true)
  65. end
  66. end
  67. AddClickEvent(self.emptyClick_obj, on_click)
  68. local function update_shop_item(vo)
  69. for k,v in pairs(vo.goods_list) do
  70. if v.goods_id == self.data.goods_id or vo.unlock_id == self.index then
  71. self:UpdateView()
  72. end
  73. end
  74. end
  75. self:BindEvent(self.model, SupremeVipConst.UPDATE_SUPREME_VIP_SHOP_ITEM,update_shop_item)
  76. end
  77. function SupremeVipShopItem:UpdateView( )
  78. local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId( self.data.goods_id )
  79. if goods_basic then
  80. lua_resM:setImageSprite(self, self.bg_img, "kfActShopBgExtra_asset", "kf_shop_item_color"..goods_basic.color)
  81. end
  82. --判断自己是否在解锁序列中,如果不在,展示为神秘物品
  83. local is_unlocked = self.model:IsInUnLockList(self.data.index)
  84. if is_unlocked then
  85. SetImageGray(self.bg_img,false)
  86. -- self:SetVisible(true)
  87. self:UpdateLimitTimes()
  88. self:UpdateMoneyCon()
  89. self:UpdateGoodsMsg()
  90. else
  91. -- self:SetVisible(false)
  92. self.limit_tmp.text = ""
  93. SetImageGray(self.bg_img,true)
  94. self.lockTips_tmp.text = "<#ff203a>购买前一道具后解锁</color>"
  95. self.emptyClick_obj:SetActive(false)
  96. if self.awardItem then
  97. self.awardItem:SetVisible(false)
  98. end
  99. self.name_tmp.text = "<#fdffc2>神秘道具</color>"
  100. self.price_tmp.text = ""
  101. self.moneyIcon_obj:SetActive(false)
  102. self.lock_obj:SetActive(true)
  103. end
  104. end
  105. --刷新限购次数
  106. function SupremeVipShopItem:UpdateLimitTimes()
  107. self.emptyClick_obj:SetActive(true)
  108. local limit_cfg = stringtotable(self.data.limit_buy)
  109. if limit_cfg and #limit_cfg ~= 0 then --限购
  110. self.limit_type = limit_cfg[1][1]--限购类型 1日限购|2周限购|3终身限购
  111. self.limit_num = limit_cfg[1][2]--限购数量
  112. local limit_data = self.model:GetLimitShopData(self.data.goods_id)--限购信息
  113. if limit_data then
  114. self.sold_out = limit_data.count
  115. if self.limit_num-limit_data.count > 0 then
  116. self.limit_tmp.text = SupremeVipConst.ShopLimitType[self.limit_type].." "
  117. .."<color=#2CF86F>"..self.limit_num-limit_data.count.."</color>/"..self.limit_num
  118. else
  119. self.limit_tmp.text = SupremeVipConst.ShopLimitType[self.limit_type].." "
  120. .."<color=#ff203a>"..self.limit_num-limit_data.count.."</color>/"..self.limit_num
  121. end
  122. self.can_buy = self.limit_num-limit_data.count > 0
  123. else
  124. self.sold_out = 0
  125. self.limit_tmp.text = SupremeVipConst.ShopLimitType[self.limit_type].." "
  126. ..self.limit_num.."/"..self.limit_num
  127. self.can_buy = true
  128. end
  129. else -- 不限购
  130. self.limit_tmp.text = ""
  131. self.can_buy = true
  132. end
  133. end
  134. --刷新货币信息
  135. function SupremeVipShopItem:UpdateMoneyCon()
  136. --货币类型 具体类型可看ConfigNotNormalGoods或Config.GoodsSubtype
  137. --此处常用 1|彩钻 2|红钻 11|星钻
  138. self.money_type = stringtotable(self.data.price)[1][1]
  139. self.money_cost = stringtotable(self.data.price)[1][2]--需要花费
  140. local is_level_enough = self.mainVo.level >= stringtotable(self.data.lv)[1]
  141. if is_level_enough then
  142. self.moneyIcon_obj:SetActive(true)
  143. self.lockTips_tmp.text = ""
  144. lua_resM:setImageSprite(self,self.moneyIcon_img,"common_asset","tyui_hb_"..self.money_type,true)
  145. self.price_tmp.text = self.money_cost
  146. else
  147. self.emptyClick_obj:SetActive(false)
  148. self.moneyIcon_obj:SetActive(false)
  149. self.lockTips_tmp.text = stringtotable(self.data.lv)[1].."级解锁"
  150. self.price_tmp.text = ""
  151. end
  152. SetAnchoredPositionX(self.moneyIcon,11-self.price_tmp.preferredWidth/2-18)
  153. end
  154. --刷新物品信息
  155. function SupremeVipShopItem:UpdateGoodsMsg()
  156. local bg_res = self.item_id%2 == 0 and "supremeVip_shop_top_2" or "supremeVip_shop_top_1"
  157. self.lock_obj:SetActive(false)
  158. local goodsVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.data.goods_id)
  159. local goods_name = GoodsModel:getInstance():getGoodsName(self.data.goods_id)
  160. self.name_tmp.text = HtmlColorTxt(goods_name, ShopItem.ColorStr[goodsVo.color])
  161. if self.awardItem then--设置awardItem
  162. self.awardItem:SetVisible(true)
  163. self.awardItem:SetData(self.data.goods_id)
  164. end
  165. end
  166. function SupremeVipShopItem:SetData(data,item_id)
  167. self.data = data
  168. self.index = self.data.index
  169. self.item_id = item_id
  170. if self.is_loaded then
  171. self.need_refreshData = false
  172. self:UpdateView()
  173. else
  174. self.need_refreshData = true
  175. end
  176. end
  177. function SupremeVipShopItem:__delete( )
  178. if self.awardItem then
  179. self.awardItem:ReleaseObj()
  180. self.awardItem = nil
  181. end
  182. end