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

154 regels
5.0 KiB

4 weken geleden
  1. EmpowerShopView = EmpowerShopView or BaseClass(BaseItem)
  2. local EmpowerShopView = EmpowerShopView
  3. function EmpowerShopView:__init()
  4. self.base_file = "empower"
  5. self.layout_file = "EmpowerShopView"
  6. self.emShop_item_list ={}
  7. self.model = EmpowerModel:GetInstance()
  8. self:Load()
  9. end
  10. function EmpowerShopView:Load_callback()
  11. self.nodes = {
  12. "freshBtn/confirmBtnText:tmp",
  13. "lb_des:tmp", "freshBtn:obj"
  14. }
  15. self:GetChildren(self.nodes)
  16. self.itemCon = self:GetChild("ScrollView/Viewport/Content")
  17. self.girlIcon = self:GetChild("girlIcon"):GetComponent("RawImage")
  18. lua_resM:setOutsideRawImage(self, self.girlIcon, GameResPath.GetRoleBg("empower_shop_girl"), false)
  19. -- self.freshBtn = self:GetChild("freshBtn").gameObject
  20. self.num_txt = self:GetChild("moneyBg/num"):GetComponent("TextMeshProUGUI")
  21. self.timeText = self:GetChild("text"):GetComponent("TextMeshProUGUI")
  22. self.lb_des_tmp.text = string.format('%s均会刷出%s', HtmlColorTxt( "每次重置", ColorUtil.GREEN_DARK) , HtmlColorTxt( "免费材料", ColorUtil.PURPLE_DARK) )
  23. SetAnchoredPositionX(self.freshBtn, 280)
  24. SetAnchoredPositionX(self.lb_des, 85)
  25. self:AddEvents()
  26. if self.need_refreshData then
  27. self:UpdateView()
  28. end
  29. end
  30. function EmpowerShopView:AddEvents( )
  31. local function UPDATA_EMTREASURE_SHOP_INFO_fun(vo)
  32. self:UpdateView()
  33. end
  34. self.updata_emtreasure_shop_info = self.model:Bind(EmpowerConst.UPDATA_EMTREASURE_SHOP_INFO, UPDATA_EMTREASURE_SHOP_INFO_fun) --41404成功后返回
  35. local function onBtnClickHandler(target, x, y)
  36. --Message.show("刷新")
  37. self.model:Fire(EmpowerConst.EMPOWER_REQ_EVENT, 41407)
  38. end
  39. AddClickEvent(self.freshBtn_obj, onBtnClickHandler, 1)
  40. end
  41. function EmpowerShopView:UpdateView( )
  42. local list = self.model:GetEquipShopList()
  43. --local bool = self.model:GetEmpowerRedDotList()[EmpowerConst.EmpowerViewType.EmpowerShop]
  44. -- self.shopRedDot_obj:SetActive(bool)
  45. for k,v in pairs(list) do
  46. local item = self.emShop_item_list[k]
  47. if item == nil then
  48. item = EmpowerShopItem.New(self.itemCon)
  49. self.emShop_item_list[k] = item
  50. end
  51. local goodsList = ErlangParser:GetInstance():Parse(v.shopList.goods)[1]
  52. local data = {}
  53. data.goods_id = goodsList[2]
  54. data.num = goodsList[3]
  55. data.price = v.shopList.price
  56. data.discount = v.shopList.discount
  57. data.is_pay = v.shopList.is_pay
  58. data.state = v.state
  59. data.money_type = 1--EmpowerConst.EmpowerMoneyId
  60. if v.state == 1 then
  61. data.is_gray = true
  62. else
  63. data.is_gray = false
  64. end
  65. if goodsList[1] == 100 then
  66. data.bind = true
  67. else
  68. data.bind = false
  69. end
  70. self.emShop_item_list[k]:SetData(data,v.shopList.index)
  71. end
  72. -------------------重置金额
  73. local equipShopResetNextNum = self.model:GetEquipShopResetNum() +1
  74. local freshCost = Config.Latticekv["shop_reset_cost"].val -- 升品寻宝和弹珠寻宝区分开 self.model:GetConfigMarbleKvVal("shop_reset_cost")
  75. freshCost = stringtotable(freshCost)
  76. local money_num = 0
  77. local index_num = 0
  78. for k,v in pairs(freshCost) do
  79. if equipShopResetNextNum >= v[1] and index_num < v[1] then
  80. index_num = v[1]
  81. end
  82. end
  83. self.num_txt.text = ""
  84. for k,v in pairs(freshCost) do
  85. if v[1] == index_num then
  86. -- print('Msh:EmpowerShopView.lua[93] data', WordManager:GetMoneyFaceStr( 0 ))
  87. -- self.num_txt.text = WordManager:GetMoneyFaceStr( 1 ) .. v[2][3]
  88. self.confirmBtnText_tmp.text = WordManager:GetMoneyFaceStr( 1 ) .. v[2][3] .. " 重置"
  89. end
  90. end
  91. local empower_coin_good_id = self.model:GetEmpowerCoinGoodId()
  92. self.model:Fire(EmpowerConst.UPDATA_EMTREASURE_COIN_NUM,GoodsModel:getInstance():GetTypeGoodsNum(empower_coin_good_id))
  93. ----------time
  94. self:ClearHideTimer()
  95. local function hide_timer()
  96. if not self.model:GetEquipShopResetTime() then return end
  97. self.left_time = self.model:GetEquipShopResetTime() - TimeUtil:getServerTime()
  98. local time_str = TimeUtil:timeConvert(math.ceil(self.left_time+1), "hh:mm:ss")
  99. self.timeText.text = self.left_time >= 0 and string.format("重置倒计时 %s", HtmlColorTxt( time_str, ColorUtil.GREEN_DARK)) or ""
  100. if self.left_time < 0 then
  101. self:ClearHideTimer( )
  102. end
  103. end
  104. hide_timer()
  105. self.hide_timer_id = GlobalTimerQuest:AddPeriodQuest(hide_timer, 0.1, -1)
  106. end
  107. function EmpowerShopView:ClearHideTimer()
  108. if self.hide_timer_id then
  109. GlobalTimerQuest:CancelQuest(self.hide_timer_id)
  110. self.hide_timer_id = nil
  111. end
  112. end
  113. function EmpowerShopView:SetData( data )
  114. self.data = data
  115. if self.is_loaded then
  116. self.need_refreshData = false
  117. self:UpdateView()
  118. else
  119. self.need_refreshData = true
  120. end
  121. end
  122. function EmpowerShopView:__delete( )
  123. self:ClearHideTimer()
  124. for i, v in ipairs(self.emShop_item_list) do
  125. v:DeleteMe()
  126. v = nil
  127. end
  128. self.emShop_item_list = {}
  129. if self.updata_emtreasure_shop_info then
  130. self.model:UnBind(self.updata_emtreasure_shop_info)
  131. self.updata_emtreasure_shop_info = nil
  132. end
  133. end