EmpowerShopView = EmpowerShopView or BaseClass(BaseItem) local EmpowerShopView = EmpowerShopView function EmpowerShopView:__init() self.base_file = "empower" self.layout_file = "EmpowerShopView" self.emShop_item_list ={} self.model = EmpowerModel:GetInstance() self:Load() end function EmpowerShopView:Load_callback() self.nodes = { "freshBtn/confirmBtnText:tmp", "lb_des:tmp", "freshBtn:obj" } self:GetChildren(self.nodes) self.itemCon = self:GetChild("ScrollView/Viewport/Content") self.girlIcon = self:GetChild("girlIcon"):GetComponent("RawImage") lua_resM:setOutsideRawImage(self, self.girlIcon, GameResPath.GetRoleBg("empower_shop_girl"), false) -- self.freshBtn = self:GetChild("freshBtn").gameObject self.num_txt = self:GetChild("moneyBg/num"):GetComponent("TextMeshProUGUI") self.timeText = self:GetChild("text"):GetComponent("TextMeshProUGUI") self.lb_des_tmp.text = string.format('%s均会刷出%s', HtmlColorTxt( "每次重置", ColorUtil.GREEN_DARK) , HtmlColorTxt( "免费材料", ColorUtil.PURPLE_DARK) ) SetAnchoredPositionX(self.freshBtn, 280) SetAnchoredPositionX(self.lb_des, 85) self:AddEvents() if self.need_refreshData then self:UpdateView() end end function EmpowerShopView:AddEvents( ) local function UPDATA_EMTREASURE_SHOP_INFO_fun(vo) self:UpdateView() end self.updata_emtreasure_shop_info = self.model:Bind(EmpowerConst.UPDATA_EMTREASURE_SHOP_INFO, UPDATA_EMTREASURE_SHOP_INFO_fun) --41404成功后返回 local function onBtnClickHandler(target, x, y) --Message.show("刷新") self.model:Fire(EmpowerConst.EMPOWER_REQ_EVENT, 41407) end AddClickEvent(self.freshBtn_obj, onBtnClickHandler, 1) end function EmpowerShopView:UpdateView( ) local list = self.model:GetEquipShopList() --local bool = self.model:GetEmpowerRedDotList()[EmpowerConst.EmpowerViewType.EmpowerShop] -- self.shopRedDot_obj:SetActive(bool) for k,v in pairs(list) do local item = self.emShop_item_list[k] if item == nil then item = EmpowerShopItem.New(self.itemCon) self.emShop_item_list[k] = item end local goodsList = ErlangParser:GetInstance():Parse(v.shopList.goods)[1] local data = {} data.goods_id = goodsList[2] data.num = goodsList[3] data.price = v.shopList.price data.discount = v.shopList.discount data.is_pay = v.shopList.is_pay data.state = v.state data.money_type = 1--EmpowerConst.EmpowerMoneyId if v.state == 1 then data.is_gray = true else data.is_gray = false end if goodsList[1] == 100 then data.bind = true else data.bind = false end self.emShop_item_list[k]:SetData(data,v.shopList.index) end -------------------重置金额 local equipShopResetNextNum = self.model:GetEquipShopResetNum() +1 local freshCost = Config.Latticekv["shop_reset_cost"].val -- 升品寻宝和弹珠寻宝区分开 self.model:GetConfigMarbleKvVal("shop_reset_cost") freshCost = stringtotable(freshCost) local money_num = 0 local index_num = 0 for k,v in pairs(freshCost) do if equipShopResetNextNum >= v[1] and index_num < v[1] then index_num = v[1] end end self.num_txt.text = "" for k,v in pairs(freshCost) do if v[1] == index_num then -- print('Msh:EmpowerShopView.lua[93] data', WordManager:GetMoneyFaceStr( 0 )) -- self.num_txt.text = WordManager:GetMoneyFaceStr( 1 ) .. v[2][3] self.confirmBtnText_tmp.text = WordManager:GetMoneyFaceStr( 1 ) .. v[2][3] .. " 重置" end end local empower_coin_good_id = self.model:GetEmpowerCoinGoodId() self.model:Fire(EmpowerConst.UPDATA_EMTREASURE_COIN_NUM,GoodsModel:getInstance():GetTypeGoodsNum(empower_coin_good_id)) ----------time self:ClearHideTimer() local function hide_timer() if not self.model:GetEquipShopResetTime() then return end self.left_time = self.model:GetEquipShopResetTime() - TimeUtil:getServerTime() local time_str = TimeUtil:timeConvert(math.ceil(self.left_time+1), "hh:mm:ss") self.timeText.text = self.left_time >= 0 and string.format("重置倒计时 %s", HtmlColorTxt( time_str, ColorUtil.GREEN_DARK)) or "" if self.left_time < 0 then self:ClearHideTimer( ) end end hide_timer() self.hide_timer_id = GlobalTimerQuest:AddPeriodQuest(hide_timer, 0.1, -1) end function EmpowerShopView:ClearHideTimer() if self.hide_timer_id then GlobalTimerQuest:CancelQuest(self.hide_timer_id) self.hide_timer_id = nil end end function EmpowerShopView:SetData( data ) self.data = data if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function EmpowerShopView:__delete( ) self:ClearHideTimer() for i, v in ipairs(self.emShop_item_list) do v:DeleteMe() v = nil end self.emShop_item_list = {} if self.updata_emtreasure_shop_info then self.model:UnBind(self.updata_emtreasure_shop_info) self.updata_emtreasure_shop_info = nil end end