GodActivityResultView = GodActivityResultView or BaseClass(BaseView) local GodActivityResultView = GodActivityResultView function GodActivityResultView:__init() self.base_file = "godActivity" self.layout_file = "GodActivityResultView" self.layer_name = "Activity" self.destroy_imm = true self.use_background = true self.change_scene_close = true self.hide_maincancas = true --是否隐藏主界面 self.append_to_ctl_queue = false --是否要添加进界面堆栈 self.need_show_money = false --是否要显示顶部的金钱栏 self.blur_activity_bg = true self.use_show_anim = true self.use_hide_anim = true self.is_set_zdepth = true self.model = GodModel:getInstance() self.item_list = {} self.start_pos_x = 0 self.start_pos_y = 0 self.draw_num_type = 0 --结算数量类型 1|单抽 2|10连 self.last_draw_time = 0 self.load_callback = function () self:LoadSuccess() self:AddEvent() end self.open_callback = function ( ) self:OpenSuccess() end self.close_win_callback = function ( ) self:Close() end self.destroy_callback = function ( ) self:DestroySuccess() end end --普通/限时 --单抽/十连 --抽奖返回数据 function GodActivityResultView:Open(data) self.pool_type = data.pool_type self.draw_num_type = data.type self.data = data BaseView.Open(self) end function GodActivityResultView:LoadSuccess() local nodes = { "resultBg:img:obj", "itemCon:obj", "ScrollView", "ScrollView/Viewport/Content", "ScrollView/Viewport:img", "visCon:obj", "visCon/confirmBtn:obj", "visCon/againBtn:obj", "visCon/costIcon:img", "visCon/costPrice:tmp", "visCon/againBtn/againText:tmp", "scoreNum:tmp", "effectCon:obj", "visCon/lightEffect", } self:GetChildren(nodes) self.visCon_obj:SetActive(true) self.confirmBtn_obj:SetActive(true) SetLocalPosition(self.transform, 0, 0,-1000) local function bg_back_func( ... ) self.itemCon_obj:SetActive(false) self.awarditem = CapsuleEggAwardItem.New(self.itemCon) lua_resM:setOutsideImageSprite(self, self.resultBg_img, GameResPath.GetCapsuleEggRes("capsule_egg_result_shine_837_630")) if self.need_refreshData then self:UpdateView(self.pool_type) end end if self.background_wnd then bg_back_func() else self.bg_back_func = bg_back_func end SetAnchoredPosition(self.lightEffect,0,-40) self:AddUIEffect("ui_jihuoxinxitong01", self.lightEffect, self.layer_name, nil, 1.2, true,nil,nil, nil, nil,nil) end function GodActivityResultView:AddEvent() local on_click = function ( click_obj ) if self.confirmBtn_obj == click_obj then--关闭界面 self:Close() -- elseif self.againBtn_obj == click_obj then--再来 -- if TimeUtil:getServerTimeMs()/1000 - self.last_draw_time > 1 then -- self.last_draw_time = TimeUtil:getServerTimeMs()/1000 -- self:LuckStart() -- end end end AddClickEvent(self.confirmBtn_obj, on_click) -- AddClickEvent(self.againBtn_obj, on_click) end function GodActivityResultView:OpenSuccess() self:UpdateView(self.pool_type) end function GodActivityResultView:UpdateView(pool_type) self.pool_type = pool_type if self.is_loaded then self.need_refreshData = false else self.need_refreshData = true return end local award_data = {} local debug_test = false if debug_test then local temp_data = {} local tt = {0,230003,5} for i=1,10 do table.insert(temp_data,tt) end award_data = temp_data else award_data = self.data.award end self.reward_list = {} for k,v in pairs(award_data) do table.insert(self.reward_list,{gtype_id = v[2],goods_num = v[3]}) end self:Reset() if not self.reward_list or #self.reward_list == 0 then return end local reward_count = #self.reward_list if reward_count == 1 then self.draw_num_type = 1 self.againText_tmp.text = "再来1次" self.scoreNum_tmp.text = 1 elseif reward_count>1 and reward_count<=10 then self.draw_num_type = 2 self.againText_tmp.text = "再来10次" self.scoreNum_tmp.text = 10 end -- self:UpdateCost() self:UpdateRewardBoxes() end function GodActivityResultView:Reset( )--重置 if self.awarditem then self.awarditem:StopAction() self.awarditem:SetAwardItemVis(false) end self.Content.anchoredPosition = Vector2(self.start_pos_x,self.start_pos_y) for k,v in pairs(self.item_list) do v:SetAwardItemVis(false) v:StopAction() end end function GodActivityResultView:UpdateRewardBoxes() local reward_count = #self.reward_list if reward_count == 1 then self.itemCon_obj:SetActive(true) self.awarditem:SetData(self.reward_list[1],1) self.awarditem:StartAction(1) return end local x = 0 local y = 0 for i = 1, reward_count do local item = self.item_list[i] if not item then item = CapsuleEggAwardItem.New(self.Content) self.item_list[i] = item end item:SetData(self.reward_list[i],i) x = (84 + 42) * ((i-1)%5)+5 y = -(84 + 30)* math.floor((i-1)/5)-15 item:SetPosition(x,y) item:StartAction(i) end self.Content.sizeDelta = Vector2(0, (84 + 30)* math.floor(reward_count/5)+15) end --[[function GodActivityResultView:UpdateCost( ) local costIcon_res = 0 local cost_ticket_num_list = self.model:GetCostTicketNumList() if self.draw_num_type == 1 then costIcon_res = self.model:GetCostTicketGTypeId(self.pool_type,1) if cost_ticket_num_list[self.pool_type][1] < 1 then self.costPrice_tmp.text = string.format("<%s>%s/1", ColorUtil.RED_DARK, cost_ticket_num_list[self.pool_type][1]) else self.costPrice_tmp.text = string.format("<%s>%s/1", ColorUtil.GREEN_DARK, cost_ticket_num_list[self.pool_type][1]) end elseif self.draw_num_type == 2 then if self.model:GetCostTicketNumList()[self.pool_type][2] > 0 then costIcon_res = self.model:GetCostTicketGTypeId(self.pool_type,10) if cost_ticket_num_list[self.pool_type][2] < 1 then self.costPrice_tmp.text = string.format("<%s>%s/1", ColorUtil.RED_DARK, cost_ticket_num_list[self.pool_type][2]) else self.costPrice_tmp.text = string.format("<%s>%s/1", ColorUtil.GREEN_DARK, cost_ticket_num_list[self.pool_type][2]) end else costIcon_res = self.model:GetCostTicketGTypeId(self.pool_type,1) if cost_ticket_num_list[self.pool_type][1] < 9 then self.costPrice_tmp.text = string.format("<%s>%s/9", ColorUtil.RED_DARK, cost_ticket_num_list[self.pool_type][1]) else self.costPrice_tmp.text = string.format("<%s>%s/9", ColorUtil.GREEN_DARK, cost_ticket_num_list[self.pool_type][1]) end end end lua_resM:setOutsideImageSprite(self, self.costIcon_img, GameResPath.GetGoodsIcon(costIcon_res),true) end--]] --[[function GodActivityResultView:LuckStart( ) local ticket_num_list = self.model:GetCostTicketNumList() local price_asset, price_icon = WordManager:GetCommonMoneyIcon(1) local cost_price = 0 local tickets_goods_type_id = 102305 if self.pool_type == 1 then tickets_goods_type_id = 102305 elseif self.pool_type == 2 then tickets_goods_type_id = 102308 elseif self.pool_type == 3 then tickets_goods_type_id = 102311 end local tickets_price = Config.Goodsprice[tickets_goods_type_id].price if self.draw_num_type == 1 then if ticket_num_list[self.pool_type][1] >= 1 then--有单抽券直接抽 self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17003,self.pool_type,self.draw_num_type,0) return else--补齐 cost_price = tickets_price end elseif self.draw_num_type == 2 then if ticket_num_list[self.pool_type][2] >= 1 then self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17003,self.pool_type,self.draw_num_type,0) return else if ticket_num_list[self.pool_type][1] >= 9 then self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17003,self.pool_type,self.draw_num_type,0) return else cost_price = (9-ticket_num_list[self.pool_type][1])*tickets_price end end end local function close_callback( ... ) self:Close() end local function ok_callback() if GoodsModel:getInstance():IsJinEnough(cost_price) then self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17003,self.pool_type,self.draw_num_type,0) return else local qc_data = { price = cost_price, close_callback = close_callback, } GlobalEventSystem:Fire(EventName.OPEN_RECHARGE_TIP_VIEW, true, qc_data) end end local function toggle_function( flag ) self.model._again_draw_no_double_check = flag end local toggle_tip_data = { gold_ab_res = price_asset, gold_res = price_icon, price = cost_price, insufficientText = "", priceText = string.format("%s 补齐所需的单抽券",cost_price), titleText = "提示", ok_callback = ok_callback, toggle_function = toggle_function, is_complex_ok_callback = true, jump_recharge_callback = close_callback, } if not self.model._again_draw_no_double_check and cost_price ~= 0 then GlobalEventSystem:Fire(EventName.OPEN_COM_TOGGLE_TIP_VIEW, toggle_tip_data) else ok_callback() end end--]] function GodActivityResultView:DestroySuccess( ) if self.awarditem then self.awarditem:DeleteMe() self.awarditem = nil end for i,item in pairs(self.item_list) do item:DeleteMe() item = nil end self.item_list = {} self:ClearUIEffect(self.lightEffect) self:ClearUIEffect(self.effectCon) end