源战役客户端
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 
 

217 satır
6.9 KiB

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