|
|
- 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
|