|
|
- CapsuleEggModel = CapsuleEggModel or BaseClass(BaseVo, true)
- local CapsuleEggModel = CapsuleEggModel
-
- function CapsuleEggModel:__init()
- CapsuleEggModel.Instance = self
- self:Reset()
- end
-
- function CapsuleEggModel:Reset()
- self.stick_record_max_count = 0--1类记录最大条数(1、2档)
- self.normal_record_max_count = 0--2类记录最大条数(3档)
- self.max_record_count = 0--全服记录最大条数
-
- self.score_gtype_id = 100012--积分物品id
-
- self.ten_ticket_type_id = 102306
-
- self.is_show_warehouse_view = false --是否在临时仓库界面
- self.can_take_out_flag = false--物品tips是否展示取出按钮
-
- self.capsule_egg_kv_cfg = {}--扭蛋常量配置
- self.capsule_egg_reward_cfg = {}--扭蛋物品配置
- self.capsule_egg_score_shop_cfg = {}--扭蛋积分商城配置
- self.capsule_egg_time_reward_cfg = {}--扭蛋次数奖励配置
-
- self.capsule_egg_free_data = {}--免费抽奖信息
- self.capsule_egg_time_reward_data = false--次数抽奖信息
-
- self.normal_record_list = {}--普通记录
- self.stick_record_list = {}--置顶的两条极品记录
- self.all_record_list = {}--记录总表
-
- self.server_lucky = {}--全服幸运值列表
-
- self.score = 0--积分
-
- self.score_shop_data = {}--商城商品购买数据
-
- self.warehouse_data = {}--仓库物品数据
-
- self.now_reward_list = {}--当前抽奖的奖励列表
-
- self.now_choose_goods_id = nil--当前选中的仓库物品唯一id
-
- self.capsule_egg_red_dot_info = {}
- self.capsule_egg_timereward_red_dot_info = {}
- self.draw_btn_red_list = {}--pool_type|
- self.have_see_red_dot = false --单抽券的红点,只显示一次
-
- self:InitCapsuleEggCfg()
- end
-
- function CapsuleEggModel:getInstance()
- if CapsuleEggModel.Instance == nil then
- CapsuleEggModel.Instance = CapsuleEggModel.New()
- end
- return CapsuleEggModel.Instance
- end
-
- -------配置相关--------------------S
- --初始化配置信息
- function CapsuleEggModel:InitCapsuleEggCfg( )
- --常量配置
- for k,v in pairs(Config.Capsuleeggkv) do
- self.capsule_egg_kv_cfg[Trim(v.key)] = v
- end
-
- --奖品配置 奖池类型|奖品位置
- local t = {}
- for k,v in pairs(Config.Capsuleeggreward) do
- t[v.pool_type] = t[v.pool_type] or {}
-
- if v.client_pos ~= 0 then
- t[v.pool_type][v.client_pos] = v
- end
- end
- for i,v in ipairs(t) do
- self.capsule_egg_reward_cfg[i] = self.capsule_egg_reward_cfg[i] or {}
- for ii,vv in ipairs(v) do
- local reward_list = stringtotable(vv.reward)
- for iii,vvv in ipairs(reward_list) do
- table.insert(self.capsule_egg_reward_cfg[i], vvv)
- end
- end
- end
- --附属奖励配置特殊处理
- if self.capsule_egg_reward_cfg[1] then
- local cfg = self.capsule_egg_kv_cfg["giving_reward"]
- if cfg then
- local reward = stringtotable(Trim(cfg.value))
- table.insert(self.capsule_egg_reward_cfg[1], 2, reward[1])
- end
- end
-
- --积分商城配置
- for k,v in pairs(Config.Capsuleeggexchange) do
- self.capsule_egg_score_shop_cfg[v.id] = v
- end
-
- --次数奖励配置
- for k,v in pairs(Config.Capsuleeggtimesreward) do
- self.capsule_egg_time_reward_cfg[v.pool_type] = self.capsule_egg_time_reward_cfg[v.pool_type] or {}
- table.insert(self.capsule_egg_time_reward_cfg[v.pool_type], v)
- end
- for i,v in ipairs(self.capsule_egg_time_reward_cfg) do
- table.sort( v, function( a, b)
- return a.draw_times < b.draw_times
- end )
- end
-
- self.stick_record_max_count = self.capsule_egg_kv_cfg["show_num_one"].value
- self.normal_record_max_count = self.capsule_egg_kv_cfg["show_num_two"].value
- self.max_record_count = self.stick_record_max_count + self.normal_record_max_count
- end
-
- --根据池子类型和抽的次数获取代币券id
- function CapsuleEggModel:GetCostTicketGTypeId(pool_type,nums)
- local id = 0
- if nums == 1 then
- id = self:GetOneCostData(pool_type)
- elseif nums == 10 then
- id = self:GetTenCostData(pool_type)
- elseif nums == 50 then
- id = self:GetFiftyCostData(pool_type)
- end
- return id
- end
-
- --获取代币券数量列表
- function CapsuleEggModel:GetCostTicketNumList( )
- local ticket_num_list = {}
- for i=1,3 do
- ticket_num_list[i] = ticket_num_list[i] or {}
- ticket_num_list[i][1] = GoodsModel:getInstance():GetGoodsNumFromType(0,self:GetCostTicketGTypeId(i,1))
- ticket_num_list[i][2] = GoodsModel:getInstance():GetGoodsNumFromType(0,self:GetCostTicketGTypeId(i,10))
- ticket_num_list[i][3] = GoodsModel:getInstance():GetGoodsNumFromType(0,self:GetCostTicketGTypeId(i,50))
- end
- return ticket_num_list
- end
-
- --获取单抽的消耗
- function CapsuleEggModel:GetOneCostData(pool_type)
- if pool_type == 1 then
- return stringtotable(self.capsule_egg_kv_cfg["long_one_cost_ticket"].value)[1][2]
- elseif pool_type == 2 then
- return stringtotable(self.capsule_egg_kv_cfg["xuan_one_cost_ticket"].value)[1][2]
- elseif pool_type == 3 then
- return stringtotable(self.capsule_egg_kv_cfg["hua_one_cost_ticket"].value)[1][2]
- end
- end
-
- --获取十连的消耗
- function CapsuleEggModel:GetTenCostData(pool_type)
- if pool_type == 1 then
- return stringtotable(self.capsule_egg_kv_cfg["long_ten_cost_ticket"].value)[1][2]
- elseif pool_type == 2 then
- return stringtotable(self.capsule_egg_kv_cfg["xuan_ten_cost_ticket"].value)[1][2]
- elseif pool_type == 3 then
- return stringtotable(self.capsule_egg_kv_cfg["hua_ten_cost_ticket"].value)[1][2]
- end
- end
-
- --获取五十连的消耗
- function CapsuleEggModel:GetFiftyCostData(pool_type)
- if pool_type == 1 then
- return stringtotable(self.capsule_egg_kv_cfg["long_fifty_cost_ticket"].value)[1][2]
- elseif pool_type == 2 then
- return stringtotable(self.capsule_egg_kv_cfg["xuan_fifty_cost_ticket"].value)[1][2]
- elseif pool_type == 3 then
- return stringtotable(self.capsule_egg_kv_cfg["hua_fifty_cost_ticket"].value)[1][2]
- end
- end
-
- --根据奖品配置id获取其配置
- function CapsuleEggModel:GetCfgByRewardCfgId(reward_cfg_id)
- if Config.Capsuleeggreward[reward_cfg_id] then
- return Config.Capsuleeggreward[reward_cfg_id]
- else
- return nil
- end
- end
-
- --获取pooltype类型奖池的奖品配置
- function CapsuleEggModel:GetRewardCfg(pool_type)
- if self.capsule_egg_reward_cfg[pool_type] then
- return self.capsule_egg_reward_cfg[pool_type]
- else
- return nil
- end
- end
-
- --获取pooltype类型奖池的次数奖励配置
- function CapsuleEggModel:GetTimeRewardCfg(pool_type)
- if self.capsule_egg_time_reward_cfg[pool_type] then
- return self.capsule_egg_time_reward_cfg[pool_type]
- else
- return nil
- end
- end
-
- --获取pooltype类型奖池的次数奖励展示配置
- function CapsuleEggModel:GetShowTimeRewardCfg()
- local cfg = self.capsule_egg_kv_cfg["show_reward"]
- local reward_list = {}
- if cfg then
- reward_list = stringtotable(Trim(cfg.value))
- end
- return reward_list
- end
-
- --获取pooltype类型奖池的pos位置的奖品配置
- function CapsuleEggModel:GetRewardCfgByPos(pool_type,pos)
- if self.capsule_egg_reward_cfg[pool_type] and self.capsule_egg_reward_cfg[pool_type][pos] then
- return self.capsule_egg_reward_cfg[pool_type][pos]
- else
- return nil
- end
- end
-
- --获取积分商城配置
- function CapsuleEggModel:GetScoreShopCfg( )
- return self.capsule_egg_score_shop_cfg
- end
- -------配置相关--------------------E
-
-
- --设置扭蛋免费信息 17000\17003
- function CapsuleEggModel:SetCapsuleEggFreeDrawData(vo)
- -- print('Cat:CapsuleEggModel.lua[217] SetCapsuleEggFreeDrawData')
- -- PrintTable(vo)
- self.capsule_egg_free_data[vo.pool_type] = {}
- self.capsule_egg_free_data[vo.pool_type].pool_type = vo.pool_type
- self.capsule_egg_free_data[vo.pool_type].free_times = vo.free_times
- self.capsule_egg_free_data[vo.pool_type].next_free_draw = vo.next_free_draw
- self.capsule_egg_free_data[vo.pool_type].sum_draw_times = vo.sum_draw_times
- self:CountDownFreeTime(vo.pool_type)
- self:UpdateTimeRewardRedDot(vo.pool_type)
- self:Fire(CapsuleEggConst.UPDATE_CAPSULE_EGG_FREE_COUNT_DOWN,vo.pool_type)
-
- self:Fire(CapsuleEggConst.UPDATE_RED_DOT, vo.pool_type)
- end
-
- --获取免费抽奖次数
- function CapsuleEggModel:GetFreeDrawTimesByPoolType(pool_type)
- if self.capsule_egg_free_data[pool_type] then
- return self.capsule_egg_free_data[pool_type].free_times
- else
- return 0
- end
- end
-
- --获取下一次抽奖的时间戳
- function CapsuleEggModel:GetNextFreeDrawTimeByPoolType(pool_type)
- if self.capsule_egg_free_data[pool_type] then
- return self.capsule_egg_free_data[pool_type].next_free_draw
- else
- return 0
- end
- end
-
- --获取抽奖次数
- function CapsuleEggModel:GetSumDrawTimesByPoolType(pool_type)
- if self.capsule_egg_free_data[pool_type] then
- return self.capsule_egg_free_data[pool_type].sum_draw_times
- else
- return 0
- end
- end
-
- --判断该记录是否是需要置顶的|2档以上
- function CapsuleEggModel:IsRecordNeedStick(reward_cfg_id)
- return self:GetCfgByRewardCfgId(reward_cfg_id).color <= 2
- end
-
- --判断该记录是否需要筛选掉 4档的记录前端不需要,但是需要通过17002协议来刷新全服幸运值
- function CapsuleEggModel:IsRecordNeedIgnore(reward_cfg_id)
- return self:GetCfgByRewardCfgId(reward_cfg_id).color >= 4
- end
-
- --设置全服记录 17001
- function CapsuleEggModel:SetRecord(vo)--1|龙神扭蛋 2|炫武扭蛋 3|华裳扭蛋
- --记录全服幸运值
- self:SetServerlucky(vo.pool_type,vo.server_lucky)
-
- self.normal_record_list[vo.pool_type] = {}
- self.stick_record_list[vo.pool_type] = {}
- self.all_record_list[vo.pool_type] = {}
- --分类记录
- for k,v in pairs(vo.draw_log) do
- v.pool_type = vo.pool_type
- if v.is_stick == 1 then
- table.insert(self.stick_record_list[vo.pool_type],v)
- else
- table.insert(self.normal_record_list[vo.pool_type],v)
- end
- table.insert(self.all_record_list[vo.pool_type],v)
- end
- --排序记录
- local function sort(a, b)
- return a.record_time < b.record_time
- end
- table.sort(self.stick_record_list[vo.pool_type], sort)
- table.sort(self.normal_record_list[vo.pool_type], sort)
- table.sort(self.all_record_list[vo.pool_type], sort)
- end
-
- --添加全服记录 17002
- function CapsuleEggModel:AddRecord(vo)
- --记录全服幸运值
- self:SetServerlucky(vo.pool_type,vo.server_lucky)
-
- self.normal_record_list[vo.pool_type] = self.normal_record_list[vo.pool_type] or {}
- self.stick_record_list[vo.pool_type] = self.stick_record_list[vo.pool_type] or {}
-
- if vo.is_stick == 1 then
- table.insert(self.stick_record_list[vo.pool_type], vo)
- if #self.stick_record_list[vo.pool_type] > self.stick_record_max_count then
- table.remove(self.stick_record_list[vo.pool_type], 1)
- end
- else
- table.insert(self.normal_record_list[vo.pool_type], vo)
- if #self.normal_record_list[vo.pool_type] > self.normal_record_max_count then
- table.remove(self.normal_record_list[vo.pool_type], 1)
- end
- end
-
- self.all_record_list[vo.pool_type] = {}
- for i,v in ipairs(self.stick_record_list[vo.pool_type]) do
- self.all_record_list[vo.pool_type][#self.all_record_list[vo.pool_type]+1] = v
- end
- for i,v in ipairs(self.normal_record_list[vo.pool_type]) do
- self.all_record_list[vo.pool_type][#self.all_record_list[vo.pool_type]+1] = v
- end
- local function sort(a, b)
- return a.record_time < b.record_time
- end
- table.sort(self.all_record_list[vo.pool_type], sort)
- end
-
- --获取置顶记录列表
- function CapsuleEggModel:GetStickRecordList(pool_type)
- return self.stick_record_list[pool_type] and self.stick_record_list[pool_type] or {}
- end
-
- --获取普通记录列表
- function CapsuleEggModel:GetNormalRecordList(pool_type)
- return self.normal_record_list[pool_type] and self.normal_record_list[pool_type] or {}
- end
-
- --获取全服记录总列表
- function CapsuleEggModel:GetAllRecordList(pool_type)
- return self.all_record_list[pool_type] or {}
- end
-
- --设置全服幸运值 17001\17002\17010
- function CapsuleEggModel:SetServerlucky(pool_type,lucky)
- self.server_lucky[pool_type] = lucky
- self:Fire(CapsuleEggConst.UPDATE_CAPSULE_SERVER_LUCKY)
- end
-
- --获取全服幸运值
- function CapsuleEggModel:GetServerlucky(pool_type)
- return self.server_lucky[pool_type] and self.server_lucky[pool_type] or 0
- end
-
- --设置积分 17004
- function CapsuleEggModel:SetCapsuleEggScore(score)
- self.score = score
- self:Fire(CapsuleEggConst.UPDATE_CAPSULE_EGG_SCORE)
- end
-
- --获取积分
- function CapsuleEggModel:GetCapsuleEggScore( )
- return self.score
- end
-
- --设置商城商品购买信息 17005 |pos:商品位置|gtype_id:商品类型Id|type:兑换类型|num:剩余兑换的次数
- function CapsuleEggModel:SetCapsuleEggScoreShopData(vo)
- for k,v in pairs(vo.goods_list) do
- self.score_shop_data[v.pos] = {}
- self.score_shop_data[v.pos].pos = v.pos
- self.score_shop_data[v.pos].gtype_id = v.gtype_id
- self.score_shop_data[v.pos].num = v.num
- end
- end
-
- --兑换商品后刷新数据 17006
- function CapsuleEggModel:UpdateCapsuleEggScoreShopData(vo)
- self.score_shop_data[vo.pos] = {}
- self.score_shop_data[vo.pos].pos = vo.pos
- self.score_shop_data[vo.pos].gtype_id = vo.gtype_id
- self.score_shop_data[vo.pos].num = vo.num
- end
-
- --根据pos位置获取商品购买信息
- function CapsuleEggModel:GetCapsuleEggScoreShopDataByPos(pos)
- return self.score_shop_data[pos] and self.score_shop_data[pos] or nil
- end
-
- --设置仓库物品数据 17007
- function CapsuleEggModel:SetWarehouseData(vo)
- self.warehouse_data = {}
- for k,v in pairs(vo.goods_list) do
- table.insert(self.warehouse_data,v)
- end
- local function sort(a, b)
- return a.create_time < b.create_time
- end
- table.sort(self.warehouse_data, sort)
- self:SetWarehouseRed(#self.warehouse_data > 0)
- end
-
- --获取仓库物品列表
- function CapsuleEggModel:GetWarehouseData( )
- return self.warehouse_data
- end
-
- --清空仓库物品列表
- function CapsuleEggModel:ClearWarehouseData( )
- self.warehouse_data = {}
- self:SetWarehouseRed(false)
- end
-
- --物品tips是否展示“取出”按钮
- function CapsuleEggModel:IsShowCapsuleEggTakeOutBtn( )
- return self.is_show_warehouse_view and self.can_take_out_flag
- end
-
- --获取当前选中的仓库物品唯一id
- function CapsuleEggModel:GetWarehouseNowSelectedGoodsId( )
- return self.now_choose_goods_id
- end
-
- --重置选中的仓库物品唯一id
- function CapsuleEggModel:ResetWarehouseNowSelectedGoodsId( )
- self.now_choose_goods_id = nil
- self.can_take_out_flag = false
- end
-
- --返回奖励列表中的最高档位
- function CapsuleEggModel:GetRewardMaxGear(reward_list)
- local max_gear = 4
- local reward_cfg = {}
- for k,v in pairs(reward_list) do
- reward_cfg = self:GetCfgByRewardCfgId(v.reward_cfg_id)
- if reward_cfg.color < max_gear then
- max_gear = reward_cfg.color
- end
- end
- return max_gear
- end
-
- --保存当前抽奖的奖励列表
- function CapsuleEggModel:SetNowRewardList(reward_list)
- self.now_reward_list = reward_list
- self:SetWarehouseRed(#self.now_reward_list > 0)
- end
-
- --获取当前抽奖的奖励列表
- function CapsuleEggModel:GetNowRewardList()
- return self.now_reward_list
- end
-
- --是否能免费单抽
- function CapsuleEggModel:CanFreeDraw(pool_type)
- return self:GetFreeDrawTimesByPoolType(pool_type) > 0
- end
-
- --免费单抽倒计时
- function CapsuleEggModel:CountDownFreeTime(pool_type)
- self:CancelTimer(pool_type)
- local timer_func = function()
- self:CancelTimer(pool_type)
- self:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17000,pool_type)
- end
- if self:GetNextFreeDrawTimeByPoolType(pool_type) ~= 0 then
- self["timer_id"..pool_type] = GlobalTimerQuest:AddPeriodQuest(timer_func, self:GetNextFreeDrawTimeByPoolType(pool_type)+1)
- end
- end
-
- function CapsuleEggModel:CancelTimer(pool_type)
- if self["timer_id"..pool_type] then
- GlobalTimerQuest:CancelQuest(self["timer_id"..pool_type])
- self["timer_id"..pool_type] = nil
- end
- end
-
- --该奖池是否开放
- function CapsuleEggModel:IsPoolOpen(pool_type)
- -- if not GetModuleIsOpen(170) then
- -- return false
- -- else
- -- if pool_type == 1 then
- -- return true
- -- elseif pool_type == 2 then
- -- return RoleManager.Instance.mainRoleInfo.level >= self.capsule_egg_kv_cfg["open_lv"].value
- -- elseif pool_type == 3 then
- -- return ServerTimeModel:getInstance():GetOpenServerDay() >= self.capsule_egg_kv_cfg["open_day"].value
- -- end
- -- -- return GetModuleIsOpen(170,pool_type)
- -- end
- local is_open = GetModuleIsOpen(170,pool_type)
- return is_open
- end
-
- --红点
- function CapsuleEggModel:IsNeedRedAll( )
- for k,v in pairs(CapsuleEggConst.RedType) do
- self:IsNeedRed(v)
- end
- end
-
- function CapsuleEggModel:IsNeedRed( tab_id )
- local bool = false
- if tab_id == CapsuleEggConst.RedType.Dragon then
- bool = self:CheckCapsuleEggRed(1)
- elseif tab_id == CapsuleEggConst.RedType.Weapon then
- bool = self:CheckCapsuleEggRed(2)
- elseif tab_id == CapsuleEggConst.RedType.Clothes then
- bool = self:CheckCapsuleEggRed(3)
- -- elseif tab_id == CapsuleEggConst.RedType.Warehouse then
- -- bool = self:CheckWarehouseRed()
- end
- self.capsule_egg_red_dot_info[tab_id] = bool
- self:Fire(CapsuleEggConst.ANS_UPDATE_RED_DOT,tab_id,bool)
- end
-
- function CapsuleEggModel:GetAllRedDot( )
- return self.capsule_egg_red_dot_info
- end
-
- function CapsuleEggModel:CheckCapsuleEggRed(pool_type)
- if not self:IsPoolOpen(pool_type) then return false end
- local cost_ticket_num_list = self:GetCostTicketNumList()
- local is_ticket_enough = false
-
- for i,v in ipairs(cost_ticket_num_list[pool_type]) do
- self.draw_btn_red_list[pool_type] = self.draw_btn_red_list[pool_type] or {}
- self.draw_btn_red_list[pool_type][i] = false
- --优化文档需求:如果是单抽券 大于6张或以上给红点,如果是十连五十连券 大于1张或以上就给红点
- if i == 1 then
- if v >= 6 then
- is_ticket_enough = true
- self.draw_btn_red_list[pool_type][i] = true
- end
- elseif i == 3 then--50连屏蔽
- self.draw_btn_red_list[pool_type][i] = false
- else
- if v > 0 then
- is_ticket_enough = true
- self.draw_btn_red_list[pool_type][i] = true
- end
- end
- end
-
- local can_free = self:GetFreeDrawTimesByPoolType(pool_type) > 0
-
- return can_free or is_ticket_enough
- end
-
- --获取抽奖按钮红点 btn_type: 1|单抽 2|十连 3|五十连
- function CapsuleEggModel:GetDrawBtnRed(pool_type,btn_type)
- if not self:IsPoolOpen(pool_type) then return false end
- if self.draw_btn_red_list[pool_type] then
- return self.draw_btn_red_list[pool_type][btn_type]
- else
- return false
- end
- end
-
- function CapsuleEggModel:SetWarehouseRed(bool)
- self.warehouse_red = bool
- self:Fire(CapsuleEggConst.UPDATE_RED_DOT,CapsuleEggConst.RedType.Warehouse)
- end
-
- function CapsuleEggModel:CheckWarehouseRed( )
- return self.warehouse_red
- end
-
- function CapsuleEggModel:GetRedByRedType(RedType)
- return self.capsule_egg_red_dot_info[RedType] or false
- end
-
- --代币券数量刷新
- function CapsuleEggModel:UpdateCostTicketNum( )
- self:Fire(CapsuleEggConst.UPDATE_CPASULE_EGG_GOODS_NUM)
- -- self:Fire(CapsuleEggConst.UPDATE_RED_DOT,CapsuleEggConst.RedType.Dragon)
- -- self:Fire(CapsuleEggConst.UPDATE_RED_DOT,CapsuleEggConst.RedType.Weapon)
- -- self:Fire(CapsuleEggConst.UPDATE_RED_DOT,CapsuleEggConst.RedType.Clothes)
- self:Fire(CapsuleEggConst.UPDATE_RED_DOT)
- end
-
- --设置次数奖励信息
- function CapsuleEggModel:SetTimesRewardInfo(vo)
- self.capsule_egg_time_reward_data = self.capsule_egg_time_reward_data or {}
- self.capsule_egg_time_reward_data[vo.pool_type] = vo.reward_status_list
- self:UpdateTimeRewardRedDot(vo.pool_type)
- self:Fire(CapsuleEggConst.OPEN_CAPSULE_EGG_REWARD_UPDATE, vo.pool_type)
- self:Fire(CapsuleEggConst.UPDATE_RED_DOT)
- end
-
- --更新次数奖励红点
- function CapsuleEggModel:UpdateTimeRewardRedDot(pool_type)
- local cfg = self:GetTimeRewardCfg(pool_type)
- if cfg then
- local draw_times = self:GetSumDrawTimesByPoolType(pool_type)
- self.capsule_egg_timereward_red_dot_info[pool_type] = {}
- for k,v in pairs(cfg) do
- local status = self:GetTimesRewardStatusByTimes(pool_type, v.draw_times)
- if status == false and draw_times >= v.draw_times then
- self.capsule_egg_timereward_red_dot_info[pool_type] = true
- break
- end
- end
- end
- end
-
- --获取次数奖励红点
- function CapsuleEggModel:GetTimeRewardRedDot()
- local b = false
- for k,v in pairs(self.capsule_egg_timereward_red_dot_info) do
- if v == true then
- b = true
- break
- end
- end
- return b
- end
-
- --获取次数奖励状态
- function CapsuleEggModel:GetTimesRewardStatusByTimes(pool_type, times)
- local b = false
- if not self.capsule_egg_time_reward_data then
- b = nil
- else
- if self.capsule_egg_time_reward_data[pool_type] then
- for k,v in pairs(self.capsule_egg_time_reward_data[pool_type]) do
- if times == v.times then
- b = v.status == 1
- end
- end
- end
- end
-
- return b
- end
-
- --获取次数奖励时间戳
- function CapsuleEggModel:GetTimesRewarResetTime()
- local openDay = ServerTimeModel:getInstance():GetOpenServerDay()
- local current_week = tonumber(TimeUtil:GetCurrentWeekDay())
- current_week = current_week == 0 and 7 or current_week
- local next_monday = 7 - current_week + 1
- --如果开服是 周 5,6,7则下周1才算奖励
- if openDay <= 3 then
- local week = tonumber(TimeUtil:GetWeekStrByOpenDay(1))
- if week and week >= 5 and next_monday < 7 then
- next_monday = next_monday + 7
- end
- end
- local next_monday_time_stamp = TimeUtil:GetFutureZeroStampServer(next_monday)
- return next_monday_time_stamp
- end
-
- --单抽券的红点,只显示一次
- function CapsuleEggModel:CheckHaveSeeRedDot()
- self.have_see_red_dot = true
- self:Fire(CapsuleEggConst.UPDATE_RED_DOT)
- end
-
- --获取列表中需要展示的ssr,usr,大奖附赠列表
- function CapsuleEggModel:GetBigRewardList(reward_list)
-
- -- reward_list = {
- -- [1] = {gtype_id = 330902},
- -- [2] = {gtype_id = 330903},
- -- [3] = {gtype_id = 330213},
- -- [4] = {gtype_id = 330309},
- -- [5] = {gtype_id = 330310},
- -- [6] = {gtype_id = 330107},
- -- [7] = {gtype_id = 330107},
- -- [8] = {gtype_id = 330107},
- -- [9] = {gtype_id = 330107},
- -- [10] = {gtype_id = 330107},
- -- }
-
- -- gtype_id = 330310
- -- goods_num = 1
- -- reward_cfg_id = 43
- local show_reward_list = {}
- -- local dragon_reward_cfg = self:GetRewardCfgByPos(1,1)[2]
- local dragon_reward_type_id = self:GetRewardCfgByPos(1,1)[2]
- for k,v in pairs(reward_list) do
- local war_soul_cfg = WarSoulModel:getInstance():GetWarSoulCfg(v.gtype_id)
- if war_soul_cfg and war_soul_cfg.color >= 4 and war_soul_cfg.type ~= 999 then
- local temp_data = {}
- temp_data.gtype_id = v.gtype_id
- temp_data.cfg_war_soul = war_soul_cfg
- if dragon_reward_type_id == v.gtype_id then--获得了超级大奖
- temp_data.sort_id = 2
- temp_data.is_war_soul = 1
- table.insert(show_reward_list,temp_data)
- local dargon_temp_data = {
- gtype_id = stringtotable(Config.Capsuleeggkv[29].value)[1][2],
- sort_id = 2,
- is_war_soul = 2,
- cfg_war_soul = nil,
- }
- table.insert(show_reward_list,dargon_temp_data)
- else--其他的战魂
- if war_soul_cfg.color >= 5 then
- temp_data.sort_id = 3
- temp_data.is_war_soul = 1
- else
- temp_data.sort_id = 1
- temp_data.is_war_soul = 1
- end
- table.insert(show_reward_list,temp_data)
- end
- end
- end
-
- local arg = {"sort_id","is_war_soul"}
- local condition = {Array.UPPER,Array.UPPER}
- SortTools.MoreKeysSorter(show_reward_list, arg, condition)
-
- return show_reward_list
- end
|