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

149 lines
4.7 KiB

LimitGiftModel = LimitGiftModel or BaseClass(BaseVo, true)
local LimitGiftModel = LimitGiftModel
LimitGiftModel.REQUEST_INFO = "LimitGiftModel.REQUEST_INFO"
LimitGiftModel.OPEN_LIMIT_GIFT_VIEW = "LimitGiftModel.OPEN_LIMIT_GIFT_VIEW"--打开主界面
LimitGiftModel.UPDATE_LIMIT_GIFT_VIEW = "LimitGiftModel.UPDATE_LIMIT_GIFT_VIEW"--更新主界面
LimitGiftModel.REQUEST_INFO = "LimitGiftModel.REQUEST_INFO"--请求协议
LimitGiftModel.SubID = {
RUNE = 1,--御魂
Peak = 2,
Extreme = 3,
Rune = 4,
}
function LimitGiftModel:__init()
LimitGiftModel.Instance = self
self.login_red = {}--登陆红点
self:Reset()
end
function LimitGiftModel:Reset()
self.view_info = {}--界面信息
end
function LimitGiftModel:getInstance()
if LimitGiftModel.Instance == nil then
LimitGiftModel.Instance = LimitGiftModel.New()
end
return LimitGiftModel.Instance
end
function LimitGiftModel:CheckMainIconRedDot()
local show = false
if self.login_red then
show = true
else
for k,v in pairs(self.red_dot_info) do
if v == true then
show = v
break
end
end
end
GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS, 331003, show)
end
--检查限购礼包红点
function LimitGiftModel:CheckLimitGiftRedDot( )
return self.red_dot_info
end
--检测限购礼包活动图标是否需要开启[兼顾设置限购礼包活动内部的活动列表]
function LimitGiftModel:CheckIconBoolOpen()
self.act_base_list = {} --限购礼包活动内部的活动列表
local all_list = CustomActivityModel:getInstance():getAllActListByBaseType(CustomActivityModel.CustomActBaseType.LIMIT_GIFT) or {}
all_list = DeepCopy(all_list)
local server_time = TimeUtil:getServerTime()
local my_level = RoleManager.Instance.mainRoleInfo.level
self.red_dot_info = {}--红点信息
for k,v in pairs(all_list) do
local open_level = Config.Modulesub["331@3"].open_lv or 1
for l,w in pairs(v.condition_list) do
if type(w) == "table" and w[1] == "role_lv" then
open_level = tonumber(w[2])
end
end
if server_time > v.stime and v.etime > server_time then
if my_level >= open_level and GetModuleIsOpen(331,CustomActivityModel.CustomActBaseType.LIMIT_GIFT) then
v.sort_index = v.sub_type or 999
self.red_dot_info[v.sub_type] = v.is_first_open == 1
if not self.red_dot_info[v.sub_type] then
local award_data = CustomActivityModel:getInstance():getOneActRewardList(v.base_type,v.sub_type)
if award_data then
for ii,vv in pairs(award_data.reward_list) do
local conditon = vv.condition_list
if conditon and not self.red_dot_info[v.sub_type] then
local cur_price = nil
for iii,vvv in ipairs(conditon) do
if vvv[1] == "limit_cost" then
cur_price = tonumber(vvv[2])
break
end
end
self.red_dot_info[v.sub_type] = vv.status == 1 and cur_price == 0
end
end
end
end
table.insert(self.act_base_list, v)
end
end
end
if self.login_red == nil then
for k,v in pairs(all_list) do
local award_data = CustomActivityModel:getInstance():getOneActRewardList(v.base_type,v.sub_type)
if award_data and award_data.reward_list then
for ii,vv in pairs(award_data.reward_list) do
if not self.login_red then
self.login_red = vv.status ~= 2
elseif self.login_red then
break
end
end
end
end
end
--排序
local function sort_func(a, b)
return a.sort_index < b.sort_index
end
table.sort(self.act_base_list, sort_func)
-- if #self.act_base_list > 0 then
-- ActivityIconManager:getInstance():addIcon(331003, -1)
-- else
-- ActivityIconManager:getInstance():deleteIcon(331003)
-- end
-- self:CheckMainIconRedDot()
self:Fire(LimitGiftModel.UPDATE_LIMIT_GIFT_VIEW)
end
--获得活动信息列表
function LimitGiftModel:GetTabInfo( )
self.act_base_list = {} --限购礼包活动内部的活动列表
local all_list = CustomActivityModel:getInstance():getAllActListByBaseType(CustomActivityModel.CustomActBaseType.LIMIT_GIFT) or {}
all_list = DeepCopy(all_list)
-- print("huangcong:LimitGiftModel [start:92] :", TableSize(all_list))
-- PrintTable(all_list)
local server_time = TimeUtil:getServerTime()
local my_level = RoleManager.Instance.mainRoleInfo.level
for k,v in pairs(all_list) do
local open_level = Config.Modulesub["331@3"].open_lv or 1
for l,w in pairs(v.condition_list) do
if type(w) == "table" and w[1] == "role_lv" then
open_level = tonumber(w[2])
end
end
if server_time > v.stime and v.etime > server_time then
if my_level >= open_level and GetModuleIsOpen(331,CustomActivityModel.CustomActBaseType.LIMIT_GIFT) then
v.sort_index = v.sub_type or 999
table.insert(self.act_base_list, v)
end
end
end
return self.act_base_list
end