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