|
GuildSpeedModel = GuildSpeedModel or BaseClass(BaseVo, true)
|
|
local GuildSpeedModel = GuildSpeedModel
|
|
|
|
GuildSpeedModel.REQUEST_INFO = "GuildSpeedModel.REQUEST_INFO"
|
|
GuildSpeedModel.OPEN_GUILD_SPEED_VIEW = "GuildSpeedModel.OPEN_GUILD_SPEED_VIEW"--打开主界面
|
|
GuildSpeedModel.UPDATE_GUILD_SPEED_VIEW = "GuildSpeedModel.UPDATE_GUILD_SPEED_VIEW"--更新主界面
|
|
GuildSpeedModel.REQUEST_INFO = "GuildSpeedModel.REQUEST_INFO"--请求协议
|
|
GuildSpeedModel.UPDATE_TASK_INFO = "GuildSpeedModel.UPDATE_TASK_INFO"--更新任务信息
|
|
|
|
|
|
GuildSpeedModel.SubID = {
|
|
RUNE = 1,--御魂
|
|
Peak = 2,
|
|
Extreme = 3,
|
|
Rune = 4,
|
|
}
|
|
|
|
function GuildSpeedModel:__init()
|
|
GuildSpeedModel.Instance = self
|
|
self:Reset()
|
|
end
|
|
|
|
function GuildSpeedModel:Reset()
|
|
self.login_red = true--登陆红点
|
|
self.my_guild_rank = nil--个人公会排行
|
|
self.my_rank = nil--个人排行
|
|
self.my_live = nil--个人活跃
|
|
self.my_guild_live_rank = nil--个人活跃社团排行
|
|
self.show_rank_award_index = 0--当前大奖展示index
|
|
self.guild_rank_list_info = {}--社团排行榜数据
|
|
self.rank_list_info = {}--个人排行榜数据
|
|
self.active_rank_list_info = {}--活跃值排行
|
|
self.award_state_info = {}--1-战力奖励 2-活跃奖励 3-战力榜团长专属 4-活跃榜团长专属
|
|
self.task_info = {}--任务信息
|
|
self:InitCfg()
|
|
end
|
|
|
|
function GuildSpeedModel:getInstance()
|
|
if GuildSpeedModel.Instance == nil then
|
|
GuildSpeedModel.Instance = GuildSpeedModel.New()
|
|
end
|
|
return GuildSpeedModel.Instance
|
|
end
|
|
|
|
--初始化配置
|
|
function GuildSpeedModel:InitCfg( )
|
|
self.guildSpeed_com_cfg = {}--社团竞榜常量配置
|
|
local guildSpeed_com_cfg = DeepCopy(Config.Guildracerankkv)
|
|
for k,v in pairs(guildSpeed_com_cfg) do
|
|
self.guildSpeed_com_cfg[Trim(v.key)] = v
|
|
end
|
|
|
|
self.guildSpeed_task_cfg = {}--社团竞榜常量配置
|
|
local guildSpeed_task_cfg = DeepCopy(Config.Guildraceranktask)
|
|
for k,v in ipairs(guildSpeed_task_cfg) do
|
|
v.task_name = Trim(v.task_name)
|
|
v.task_desc = Trim(v.task_desc)
|
|
v.reward = stringtotable(v.reward)
|
|
v.condition = stringtotable(v.condition)
|
|
v.client_skip = stringtotable(v.client_skip)
|
|
self.guildSpeed_task_cfg[v.id] = v
|
|
end
|
|
|
|
self.guildSpeed_last_day = self.guildSpeed_com_cfg["last_day"].value
|
|
self.guildSpeed_clear_time = stringtotable(self.guildSpeed_com_cfg["reward_time"].value)
|
|
self.guildSpeed_common_reward = stringtotable(self.guildSpeed_com_cfg["common_reward"].value)[1]
|
|
self.guildSpeed_active_reward = stringtotable(self.guildSpeed_com_cfg["active_common_reward"].value)
|
|
self.guildSpeed_leader_fight_reward = stringtotable(self.guildSpeed_com_cfg["power_chairman_reward"].value)
|
|
self.guildSpeed_leader_active_reward = stringtotable(self.guildSpeed_com_cfg["active_chairman_reward"].value)
|
|
|
|
self.guildSpeed_award_cfg = {}--社团竞榜奖励配置
|
|
local guildSpeed_award_cfg = DeepCopy(Config.Guildracerankreward)
|
|
for k,v in pairs(guildSpeed_award_cfg) do
|
|
v.reward = stringtotable(v.reward)[1]
|
|
if not self.guildSpeed_award_cfg[v.guild_rank] then
|
|
self.guildSpeed_award_cfg[v.guild_rank] = {}
|
|
end
|
|
self.guildSpeed_award_cfg[v.guild_rank][#self.guildSpeed_award_cfg[v.guild_rank] + 1] = v
|
|
end
|
|
local sort_func = function ( a, b )--排序
|
|
return a.rank_low < b.rank_low
|
|
end
|
|
for k,v in pairs(self.guildSpeed_award_cfg) do
|
|
table.sort(v, sort_func)
|
|
end
|
|
end
|
|
|
|
--等到奖励配置(自己社团前三则对应展示奖励 否者展示社团第一名奖励)
|
|
function GuildSpeedModel:GetAwardCfg( guild_rank )
|
|
guild_rank = guild_rank or 1
|
|
if guild_rank > 3 or guild_rank == 0 then
|
|
guild_rank = 1
|
|
end
|
|
return self.guildSpeed_award_cfg[guild_rank]
|
|
end
|
|
|
|
--检测公会竞速活动图标是否需要开启[兼顾设置公会竞速活动内部的活动列表]
|
|
function GuildSpeedModel:CheckIconBoolOpen()
|
|
self.act_base_list = {} --公会竞速活动内部的活动列表
|
|
local all_list = CustomActivityModel:getInstance():getAllActListByBaseType(CustomActivityModel.CustomActBaseType.GUILD_SPEED) or {}
|
|
if all_list and TableSize(all_list) > 0 then
|
|
all_list = DeepCopy(all_list)
|
|
local server_time = TimeUtil:getServerTime()
|
|
self.red_dot_info = {}--红点信息
|
|
for k,v in pairs(all_list) do
|
|
if server_time > v.stime and v.etime > server_time then
|
|
if GetModuleIsOpen(331,CustomActivityModel.CustomActBaseType.GUILD_SPEED) then
|
|
ActivityIconManager:getInstance():addIcon(331066, -1)
|
|
else
|
|
ActivityIconManager:getInstance():deleteIcon(331066)
|
|
end
|
|
else
|
|
ActivityIconManager:getInstance():deleteIcon(331066)
|
|
end
|
|
end
|
|
self:CheckMainIconRedDot()
|
|
else
|
|
ActivityIconManager:getInstance():deleteIcon(331066)
|
|
end
|
|
end
|
|
|
|
function GuildSpeedModel:CheckMainIconRedDot()
|
|
local show = false
|
|
-- if self.login_red then--登陆红点暂时去掉2021.8.5炫材
|
|
-- show = true
|
|
-- end
|
|
if not show then
|
|
for k,v in pairs(self.award_state_info) do
|
|
if v == 1 then
|
|
show = true
|
|
break
|
|
end
|
|
end
|
|
end
|
|
local guild_position = RoleManager.Instance.mainRoleInfo.position
|
|
if not show and guild_position == 1 then--任务信息
|
|
for k,v in pairs(self.task_info) do
|
|
if v.status == 1 then
|
|
show = true
|
|
break
|
|
end
|
|
end
|
|
end
|
|
GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS, 331066, show)
|
|
end
|
|
|
|
--设置社团排行榜数据
|
|
function GuildSpeedModel:SetGuildRankInfo( guild_list )
|
|
self.show_rank_award_index = 0
|
|
self.guild_rank_list_info = {}
|
|
for i,v in ipairs(guild_list) do
|
|
self.guild_rank_list_info[v.rank] = v
|
|
if RoleManager.Instance.mainRoleInfo.guild_id == v.guild_id then
|
|
self.show_rank_award_index = v.old_rank
|
|
end
|
|
end
|
|
end
|
|
|
|
function GuildSpeedModel:GetGuildRankInfo( )
|
|
return self.guild_rank_list_info
|
|
end
|
|
|
|
--设置个人排行榜数据
|
|
function GuildSpeedModel:SetRankInfo( rank_list )
|
|
self.rank_list_info = {}
|
|
for i,v in ipairs(rank_list) do
|
|
self.rank_list_info[v.rank] = v
|
|
end
|
|
end
|
|
|
|
function GuildSpeedModel:GetRankInfo( )
|
|
return self.rank_list_info
|
|
end
|
|
|
|
--设置个人社团活跃排行榜数据
|
|
function GuildSpeedModel:SetActiveRankInfo( guild_list )
|
|
self.active_rank_list_info = {}
|
|
for i,v in ipairs(guild_list) do
|
|
self.active_rank_list_info[v.rank] = v
|
|
end
|
|
end
|
|
|
|
function GuildSpeedModel:GetActiveRankInfo( )
|
|
return self.active_rank_list_info
|
|
end
|
|
|
|
--设置每个类型的奖励领取状态--1-战力奖励 2-活跃奖励 3-战力榜团长专属 4-活跃榜团长专属
|
|
function GuildSpeedModel:SetTypeAwardInfo( scmd )
|
|
self.award_state_info[scmd.type] = scmd.is_receive
|
|
self:CheckMainIconRedDot()
|
|
end
|
|
|
|
function GuildSpeedModel:GetTypeAwardState( type )
|
|
return self.award_state_info[type] or 0
|
|
end
|
|
|
|
--设置任务信息
|
|
function GuildSpeedModel:SetTaskInfo( scmd )
|
|
self.task_info = {}
|
|
for i,v in ipairs(scmd.task_list) do
|
|
self.task_info[v.task_id] = v
|
|
end
|
|
-- print("huangcong:GuildSpeedModel [start:202] :", self.task_info)
|
|
-- PrintTable(self.task_info)
|
|
-- print("huangcong:GuildSpeedModel [end]")
|
|
self:CheckMainIconRedDot()
|
|
end
|
|
|
|
--获得任务信息
|
|
function GuildSpeedModel:GetTaskInfo( task_id )
|
|
return self.task_info[task_id]
|
|
end
|
|
|
|
--获得任务配置
|
|
function GuildSpeedModel:GetTaskCfg( id )
|
|
return self.guildSpeed_task_cfg[id]
|
|
end
|