EquipCollectModel = EquipCollectModel or BaseClass(BaseModel)
|
|
|
|
local table_insert = table.insert
|
|
function EquipCollectModel:__init()
|
|
EquipCollectModel.Instance = self
|
|
self.equip_collect_cfg = {}--装备收集表
|
|
self.equip_exam_task_cfg = {}--装备考核任务表
|
|
self:Reset()
|
|
end
|
|
|
|
function EquipCollectModel:Reset()
|
|
self.equip_collect_info = {}--装备大全基础信息
|
|
self.equip_collect_progress = {}--装备大全收集进度
|
|
self.equip_collect_red_data = {}--装备收集红点缓存信息
|
|
self.equip_collect_tip_data = {}--弹出tips的缓存列表,等15218返回的时候会清零
|
|
self.equip_exam_task_info = {}--装备考核任务信息
|
|
self.equip_exam_task_red = {}--装备考核任务红点
|
|
self.equip_exam_skill_info = {}--装备考核选择技能信息
|
|
self.equip_exam_red_data = {}--装备考核整个的大红点
|
|
self.mask_lead_effect = {}--重置引导特效标记
|
|
self.equip_exam_boss_data = {} -- 幻魔首杀后端数据
|
|
self.boss_left_btn_red_cache = {} -- 幻魔页签红点缓存
|
|
end
|
|
|
|
function EquipCollectModel:getInstance()
|
|
if EquipCollectModel.Instance == nil then
|
|
EquipCollectModel.New()
|
|
end
|
|
return EquipCollectModel.Instance
|
|
end
|
|
|
|
function EquipCollectModel:GetInstance()
|
|
if EquipCollectModel.Instance == nil then
|
|
EquipCollectModel.Instance = EquipCollectModel.New()
|
|
end
|
|
return EquipCollectModel.Instance
|
|
end
|
|
|
|
function EquipCollectModel:IsEquipExamNeedRed( tab_id )
|
|
local bool = false
|
|
if tab_id == EquipCollectConst.TAB_ID.COLLECT then
|
|
bool = self:IsEquipCollectNeedRed()
|
|
-- elseif tab_id == EquipCollectConst.TAB_ID.BOSS then
|
|
-- bool = self:HasBossRewardCanGet()
|
|
elseif tab_id == EquipCollectConst.TAB_ID.UPGRADE then
|
|
bool = EquipModel:getInstance():GetCurHaveStarRedDot()
|
|
-- elseif tab_id == EquipCollectConst.TAB_ID.TASK then
|
|
-- bool = self:IsEquipCollectTaskNeedRed()
|
|
end
|
|
local is_module_open = GetModuleIsOpen(145, tab_id)
|
|
self.equip_exam_red_data[tab_id] = bool and is_module_open
|
|
self:Fire(EquipCollectConst.ANS_UPDATE_EQUIP_COLLECT_RED_DOT,tab_id,bool)
|
|
end
|
|
|
|
function EquipCollectModel:IsEquipExamNeedRedAll( )
|
|
for k,v in pairs(EquipCollectConst.TAB_ID) do
|
|
self:IsEquipExamNeedRed(v)
|
|
end
|
|
end
|
|
|
|
function EquipCollectModel:GetAllEquipExamRedDot( )
|
|
return self.equip_exam_red_data
|
|
end
|
|
|
|
function EquipCollectModel:GetTotalRed( )
|
|
local red_dot = self:GetAllEquipExamRedDot()
|
|
local bool = false
|
|
for i,v in pairs(red_dot) do
|
|
if v then
|
|
bool = true
|
|
break
|
|
end
|
|
end
|
|
return bool
|
|
end
|
|
|
|
function EquipCollectModel:InitEquipCollectCFG( )
|
|
local cfg = Config.Equipmentcollectgoods
|
|
for k,v in pairsByKeys(cfg) do
|
|
if not self.equip_collect_cfg[v.id] then
|
|
self.equip_collect_cfg[v.id] = {}
|
|
end
|
|
if not self.equip_collect_cfg[v.id][v.sub_id] then
|
|
self.equip_collect_cfg[v.id][v.sub_id] = {}
|
|
end
|
|
self.equip_collect_cfg[v.id][v.sub_id][v.pos] = v
|
|
self.equip_collect_cfg[v.id][v.sub_id][v.pos].attr_list = stringtotable(v.attr_node)
|
|
end
|
|
end
|
|
|
|
function EquipCollectModel:InitEquipExamTaskCFG( )
|
|
local cfg = Config.Equipmenttask
|
|
local content_data = {}
|
|
for k,v in pairsByKeys(cfg) do
|
|
if not self.equip_exam_task_cfg[v.mod] then
|
|
self.equip_exam_task_cfg[v.mod] = {}
|
|
end
|
|
content_data = stringtotable(v.content)
|
|
if TableSize(content_data) > 0 then
|
|
v.limit_num = content_data[2] or content_data[1]
|
|
else
|
|
v.limit_num = 0
|
|
end
|
|
table_insert(self.equip_exam_task_cfg[v.mod], v)
|
|
end
|
|
end
|
|
|
|
function EquipCollectModel:GetEquipCollectCFG(type,sub_type )
|
|
if TableSize(self.equip_collect_cfg) == 0 then
|
|
self:InitEquipCollectCFG()
|
|
end
|
|
if type and self.equip_collect_cfg[type] and sub_type then
|
|
return self.equip_collect_cfg[type][sub_type]
|
|
end
|
|
if type then
|
|
return self.equip_collect_cfg[type]
|
|
end
|
|
return self.equip_collect_cfg
|
|
end
|
|
|
|
function EquipCollectModel:GetEquipExmTaskCFG( type )
|
|
if TableSize(self.equip_exam_task_cfg) == 0 then
|
|
self:InitEquipExamTaskCFG()
|
|
end
|
|
if type then
|
|
return self.equip_exam_task_cfg[type]
|
|
end
|
|
return self.equip_exam_task_cfg
|
|
end
|
|
|
|
function EquipCollectModel:SetEquipCollectInfo( vo )
|
|
local cfg = Config.Equipment
|
|
for i,v in ipairs(vo.list) do
|
|
if not self.equip_collect_info[v.type] then
|
|
self.equip_collect_info[v.type] = {}
|
|
end
|
|
|
|
if not self.equip_collect_progress[v.type] then
|
|
self.equip_collect_progress[v.type] = {}
|
|
end
|
|
|
|
if not self.equip_collect_info[v.type][v.sub_type] then
|
|
self.equip_collect_info[v.type][v.sub_type] = {}
|
|
end
|
|
|
|
if not self.equip_collect_progress[v.type][v.sub_type] then
|
|
self.equip_collect_progress[v.type][v.sub_type] = {}
|
|
end
|
|
self.equip_collect_progress[v.type][v.sub_type].cur_active = v.active_progress
|
|
self.equip_collect_progress[v.type][v.sub_type].can_active = TableSize(v.equipment_list)
|
|
for ii,vv in ipairs(v.equipment_list) do
|
|
--这个id其实是部位id 某天因为张龙的骚操作 吃书了修改 20200729HWR
|
|
self.equip_collect_info[v.type][v.sub_type][vv.goods_id] = self:GetEquipCollectEquipId(v.type, v.sub_type, vv.goods_id)
|
|
-- if cfg[vv.goods_id] then
|
|
-- -- self.equip_collect_info[v.type][v.sub_type][cfg[vv.goods_id].equip_type] = vv.goods_id
|
|
-- end
|
|
end
|
|
end
|
|
local bool = self:IsEquipCollectNeedRed()
|
|
GlobalEventSystem:Fire(EventName.UPDATE_BAG_RED)
|
|
self:Fire(EquipCollectConst.ANS_EQUIP_COLLECT_INFO, self.equip_collect_info)
|
|
end
|
|
|
|
--获取装备收集信息
|
|
function EquipCollectModel:GetEquipCollectInfo( id, sub_id )
|
|
if id and sub_id then
|
|
if self.equip_collect_info[id] then
|
|
return self.equip_collect_info[id][sub_id] or {}
|
|
else
|
|
return {}
|
|
end
|
|
elseif id and not sub_id then
|
|
return self.equip_collect_info[id] or {}
|
|
else
|
|
return self.equip_collect_info
|
|
end
|
|
end
|
|
|
|
function EquipCollectModel:GetEquipCollectProgress( id, sub_id )
|
|
if id and sub_id then
|
|
if self.equip_collect_progress[id] then
|
|
return self.equip_collect_progress[id][sub_id] or {}
|
|
else
|
|
return {}
|
|
end
|
|
elseif id and not sub_id then
|
|
return self.equip_collect_progress[id] or {}
|
|
else
|
|
return self.equip_collect_progress
|
|
end
|
|
end
|
|
|
|
function EquipCollectModel:AddOneEquipCollectInfo( )
|
|
|
|
end
|
|
|
|
|
|
function EquipCollectModel:GetEquipCollectSubTypeName(type,sub_type)
|
|
local cfg = Config.Equipmentcollectsubtype
|
|
local name = ""
|
|
if type and sub_type then
|
|
if cfg[type.."@"..sub_type] then
|
|
name = cfg[type.."@"..sub_type].name
|
|
end
|
|
elseif type then
|
|
cfg = Config.Equipmentcollecttype
|
|
if cfg[type] then
|
|
name = cfg[type].name
|
|
end
|
|
end
|
|
return Trim(name)
|
|
end
|
|
|
|
function EquipCollectModel:GetEqipCollectAward( type,sub_type )
|
|
local cfg = Config.Equipmentcollectsubtype
|
|
local str = ""
|
|
if type and sub_type then
|
|
if cfg[type.."@"..sub_type] then
|
|
str = cfg[type.."@"..sub_type].reward
|
|
end
|
|
end
|
|
return str
|
|
end
|
|
|
|
function EquipCollectModel:IsEquipCollectNeedRed( )
|
|
local bool = false
|
|
local progress = self:GetEquipCollectProgress()
|
|
self.equip_collect_red_data = {}
|
|
local cfg = {}
|
|
for i,v in pairs(progress) do
|
|
for ii,vv in pairs(v) do
|
|
if vv.cur_active and vv.can_active then
|
|
if vv.can_active == 7 and vv.cur_active < 7 then
|
|
bool = true
|
|
if not self.equip_collect_red_data[i] then
|
|
self.equip_collect_red_data[i] = {}
|
|
end
|
|
self.equip_collect_red_data[i][ii] = true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
return bool
|
|
end
|
|
--获取第一个子id
|
|
function EquipCollectModel:GetFirstSubId( id )
|
|
local cfg = self:GetEquipCollectCFG(id) or {}
|
|
for k,v in pairsByKeys(cfg) do
|
|
return k
|
|
end
|
|
end
|
|
--获取当前激活的进度
|
|
function EquipCollectModel:GetCurEquipCollectNum( )
|
|
|
|
end
|
|
--根据id来拿红点数据
|
|
function EquipCollectModel:IsEquipCollectNeedRedById(id, sub_id)
|
|
if id and sub_id then
|
|
if self.equip_collect_red_data[id] then
|
|
return self.equip_collect_red_data[id][sub_id] or false
|
|
else
|
|
return false
|
|
end
|
|
elseif id and not sub_id then
|
|
return TableSize(self.equip_collect_red_data[id]) > 0
|
|
else
|
|
return TableSize(self.equip_collect_red_data) > 0
|
|
end
|
|
end
|
|
--通过id来判断是否已经全收集激活了
|
|
function EquipCollectModel:CheckIsAllEquipCollected( id, sub_id )
|
|
local bool = false
|
|
if id and sub_id then--判断小类是否全收集
|
|
local progress_data = self:GetEquipCollectProgress(id,sub_id)
|
|
--只有有数据 且当前激活数等于7的才判断为小类全收集
|
|
if TableSize(progress_data) > 0 and progress_data.cur_active == 7 then
|
|
bool = true
|
|
end
|
|
elseif id and not sub_id then--判断大类是否全收集
|
|
local cfg = self:GetEquipCollectCFG(id, sub_id)
|
|
local count = 0
|
|
for k,v in pairs(cfg) do
|
|
--遍历配置表的小类 看看是否全收集了
|
|
local progress_data = self:GetEquipCollectProgress(id,k)
|
|
--只有有数据 且当前激活数等于7的才判断为小类全收集
|
|
if TableSize(progress_data) > 0 and progress_data.cur_active == 7 then
|
|
count = count + 1
|
|
end
|
|
end
|
|
if count == TableSize(cfg) then
|
|
bool = true
|
|
end
|
|
else--其他情况不存在 没有判断全装备收集的需求
|
|
|
|
end
|
|
return bool
|
|
end
|
|
--需要弹tips的时候先保存列表
|
|
function EquipCollectModel:SetEquipCollectNeedShowTipData( data )
|
|
self.equip_collect_tip_data = data
|
|
end
|
|
|
|
function EquipCollectModel:CleanEquipCollectNeedShowTipData( )
|
|
self.equip_collect_tip_data = {}
|
|
end
|
|
--判断是否是收集了一整套
|
|
function EquipCollectModel:IsCollectSuit( )
|
|
local data = self:GetEquipCollectNeedShowTipData()
|
|
local server_data = self:GetEquipCollectInfo(data.id)
|
|
local bool = false
|
|
for i,v in pairsByKeys(server_data) do
|
|
if TableSize(v) == 7 then--满足7件
|
|
if not bool then--没找到的时候才要进来
|
|
bool = not self:CheckIsAllEquipCollected(data.id, i)--并且没领奖励
|
|
end
|
|
end
|
|
end
|
|
return bool
|
|
end
|
|
|
|
function EquipCollectModel:IsNeedShowTip( )
|
|
local is_in_level = (RoleManager.Instance.mainRoleInfo.level < EquipCollectConst.LIMIT_LEVEL and RoleManager.Instance.mainRoleInfo.level > EquipCollectConst.LIMIT_LEVEL_DOWN)
|
|
return GetModuleIsOpen(145) and TableSize(self.equip_collect_tip_data) > 0 and (self:IsCollectSuit() or is_in_level)
|
|
end
|
|
|
|
function EquipCollectModel:GetEquipCollectNeedShowTipData( )
|
|
return self.equip_collect_tip_data
|
|
end
|
|
|
|
function EquipCollectModel:GetEquipCollectTipData( id )
|
|
local server_data = self:GetEquipCollectInfo(id)
|
|
local tip_data = self:GetEquipCollectNeedShowTipData()--获取是哪个新增了
|
|
self:CleanEquipCollectNeedShowTipData()
|
|
local cur_num = 0
|
|
local cur_data = {}
|
|
--构造一个7个装备的数据
|
|
local data = {}
|
|
for i=1,7 do
|
|
data[i] = {
|
|
type_id = 0,
|
|
pos_id = i,
|
|
}
|
|
for k,v in pairsByKeys(server_data) do
|
|
if v[i] then
|
|
data[i].type_id = v[i]
|
|
if v[i] == tip_data.goods_id then
|
|
data[i].need_action = true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
local function sortfunction( a,b )
|
|
if a.type_id > 0 and b.type_id > 0 then
|
|
return a.pos_id < b.pos_id
|
|
elseif a.type_id == 0 and b.type_id == 0 then
|
|
return a.pos_id < b.pos_id
|
|
elseif b.type_id == 0 then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
table.sort( data, sortfunction )
|
|
return data
|
|
end
|
|
--获取刚进界面的跳转id
|
|
--有红点跳红点位置
|
|
function EquipCollectModel:GetEquipCollectJumpId( )
|
|
local red_data = self.equip_collect_red_data
|
|
local id = 1
|
|
local sub_id = self:GetFirstSubId( id )
|
|
if TableSize(red_data) > 0 then
|
|
for k,v in pairsByKeys(red_data) do
|
|
if TableSize(v) > 0 then
|
|
id = k
|
|
for kk,vv in pairsByKeys(v) do
|
|
sub_id = kk
|
|
return id, sub_id
|
|
end
|
|
end
|
|
end
|
|
else
|
|
local cfg = Config.Equipmentcollecttype
|
|
local turn = RoleManager.Instance.mainRoleInfo.turn
|
|
for i,v in ipairs(cfg) do
|
|
if turn >= v.open_lv then
|
|
id = v.id
|
|
end
|
|
end
|
|
sub_id = self:GetFirstSubId( id )
|
|
end
|
|
return id, sub_id
|
|
end
|
|
--根据传进来的代数品质部位获取配置的id
|
|
function EquipCollectModel:GetEquipCollectEquipId(id,sub_id,pos_id )
|
|
local cfg = Config.Equipmentcollectgoods
|
|
local goods_id = 0
|
|
if id and sub_id and pos_id then
|
|
if cfg[id.."@"..sub_id.."@"..pos_id] then
|
|
local data = stringtotable(cfg[id.."@"..sub_id.."@"..pos_id].goods_id)
|
|
if data then
|
|
local career = RoleManager.Instance.mainRoleInfo.career
|
|
for k,v in pairs(data) do
|
|
if v[1] == career then
|
|
goods_id = v[2]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
return goods_id
|
|
end
|
|
|
|
--检查主界面图标是否开启
|
|
function EquipCollectModel:CheckMainIconOpen( )
|
|
do return end --弃用
|
|
if GetModuleIsOpen(145) and RoleManager.Instance.mainRoleInfo.level < EquipCollectConst.LIMIT_LEVEL then
|
|
ActivityIconManager:getInstance():addIcon(15208, -1)
|
|
else
|
|
ActivityIconManager:getInstance():deleteIcon(15208)
|
|
end
|
|
end
|
|
--检查装备套装代数是否开启
|
|
function EquipCollectModel:CheckEquipCollectSuitIsOpen( id )
|
|
local cfg = Config.Equipmentcollecttype
|
|
local level = RoleManager.Instance.mainRoleInfo.level
|
|
if cfg[id] and cfg[id].open_lv <= level then
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
function EquipCollectModel:SetEquipCollectTaskInfo( vo )
|
|
local data = {}
|
|
for i,v in ipairs(vo.list) do
|
|
data[v.task_id] = v
|
|
end
|
|
self.equip_exam_task_info = data
|
|
self:ChangeVar("equip_exam_task_info", self.equip_exam_task_info, false, true)
|
|
end
|
|
|
|
function EquipCollectModel:GetEquipCollectTaskInfo( )
|
|
return self.equip_exam_task_info
|
|
end
|
|
|
|
function EquipCollectModel:SetEquipCollectTaskOneInfo( vo )
|
|
if not self.equip_exam_task_info[vo.task_id] then
|
|
self.equip_exam_task_info[vo.task_id] = {}
|
|
end
|
|
self.equip_exam_task_info[vo.task_id].task_id = vo.task_id
|
|
self.equip_exam_task_info[vo.task_id].process = vo.process
|
|
self.equip_exam_task_info[vo.task_id].status = vo.status
|
|
self:ChangeVar("equip_exam_task_info", self.equip_exam_task_info, false, true)
|
|
end
|
|
|
|
function EquipCollectModel:IsEquipCollectTaskNeedRed( )
|
|
self.equip_exam_task_red = {}
|
|
local server_data = self:GetEquipCollectTaskInfo()
|
|
local cfg = Config.Equipmenttask
|
|
local bool = false
|
|
for k,v in pairs(server_data) do
|
|
if v.status == 1 then
|
|
if cfg[v.task_id] then
|
|
if not self.equip_exam_task_red[cfg[v.task_id].mod] then
|
|
self.equip_exam_task_red[cfg[v.task_id].mod] = {}
|
|
end
|
|
self.equip_exam_task_red[cfg[v.task_id].mod][v.task_id] = true
|
|
bool = true
|
|
end
|
|
end
|
|
end
|
|
return bool
|
|
end
|
|
|
|
function EquipCollectModel:IsEquipCollectTaskNeedRedById( mod, task_id )
|
|
if mod and task_id then
|
|
if self.equip_exam_task_red[mod] then
|
|
return self.equip_exam_task_red[mod][task_id] or false
|
|
else
|
|
return false
|
|
end
|
|
elseif mod and not task_id then
|
|
return TableSize(self.equip_exam_task_red[mod]) > 0
|
|
else
|
|
return TableSize(self.equip_exam_task_red) > 0
|
|
end
|
|
end
|
|
|
|
function EquipCollectModel:SetEquipExamSkillInfo( vo )
|
|
for i,v in ipairs(vo) do
|
|
self.equip_exam_skill_info[v.id] = v
|
|
end
|
|
end
|
|
|
|
function EquipCollectModel:GetEquipExamSkillInfo( )
|
|
return self.equip_exam_skill_info
|
|
end
|
|
|
|
----------幻魔boss首杀-start---------
|
|
-- 更新boss信息列表 14501
|
|
function EquipCollectModel:SetBossData( vo )
|
|
for k,v in pairs(vo.list) do
|
|
self.equip_exam_boss_data[v.boss_id] = v
|
|
end
|
|
end
|
|
-- 更新boss信息列表 14502
|
|
function EquipCollectModel:UpdateBossData( vo )
|
|
if self.equip_exam_boss_data[vo.boss_id] then
|
|
if vo.type == 1 then -- 全服
|
|
self.equip_exam_boss_data[vo.boss_id].server_award_status = 1
|
|
elseif vo.type == 2 then
|
|
self.equip_exam_boss_data[vo.boss_id].self_kill_status = 2
|
|
end
|
|
self:Fire(EquipCollectConst.UPDATE_BOSS_VIEW, vo.boss_id)
|
|
self:Fire(EquipCollectConst.UPDATE_EQUIP_COLLECT_RED, EquipCollectConst.TAB_ID.BOSS)
|
|
else -- 据然没数据 那就请求一遍
|
|
self:Fire(EquipCollectConst.REQUEST_SCMD_EVENT, 14501)
|
|
end
|
|
end
|
|
|
|
function EquipCollectModel:GetBossData( boss_id )
|
|
if boss_id then
|
|
return self.equip_exam_boss_data[boss_id] or {}
|
|
else
|
|
return self.equip_exam_boss_data
|
|
end
|
|
end
|
|
|
|
-- boss首杀配置
|
|
function EquipCollectModel:GetBossFirstBloodCfg( boss_id )
|
|
if boss_id then
|
|
return Config.Bossfirstblood[boss_id]
|
|
else
|
|
return Config.Bossfirstblood
|
|
end
|
|
end
|
|
|
|
function EquipCollectModel:GetBossLeftTabData( )
|
|
if not self.boss_left_data then
|
|
self.boss_left_data = {} -- 存了左侧boss图标的顺序
|
|
for k,v in pairs(Config.Rewardbossinfo) do
|
|
local temp = {
|
|
enter_lv = v.enter_lv,
|
|
boss_id = v.boss_id
|
|
}
|
|
table.insert(self.boss_left_data, temp)
|
|
end
|
|
local sort_func = function ( a, b )
|
|
return a.enter_lv < b.enter_lv
|
|
end
|
|
table.sort(self.boss_left_data, sort_func)
|
|
end
|
|
return self.boss_left_data
|
|
end
|
|
|
|
function EquipCollectModel:HasBossRewardCanGet()
|
|
local bool = false
|
|
self.can_get_reward_boss_id = nil
|
|
for k,v in pairsByKeys(self.equip_exam_boss_data) do
|
|
local selfkill_can_get = v.self_kill_status and v.self_kill_status == 1
|
|
local firstblood_can_get = v.time and v.time > 0 and v.server_award_status == 0
|
|
if selfkill_can_get or firstblood_can_get then
|
|
self.can_get_reward_boss_id = v.boss_id
|
|
bool = true
|
|
break
|
|
end
|
|
end
|
|
return bool
|
|
end
|
|
|
|
-- 打开界面默认选中的boss
|
|
function EquipCollectModel:GetFirstCanKillBossIdAndIndex( )
|
|
local boss_model = BossModel:GetInstance()
|
|
local left_data = self:GetBossLeftTabData( )
|
|
local not_kill_boss_id = left_data[1].boss_id
|
|
for k,v in pairsByKeys(left_data) do
|
|
local boss_data = self:GetBossData( v.boss_id )
|
|
local kill_status = boss_data.self_kill_status and boss_data.self_kill_status or 0
|
|
if v.enter_lv < RoleManager.Instance.mainRoleInfo.level and kill_status == 0 then
|
|
not_kill_boss_id = v.boss_id
|
|
break
|
|
end
|
|
end
|
|
|
|
if self.can_get_reward_boss_id then -- 有可领的奖励哦 找可领奖励的
|
|
for i,v in ipairs(left_data) do
|
|
if self.can_get_reward_boss_id == v.boss_id then
|
|
return v.boss_id, i
|
|
end
|
|
end
|
|
else -- 没有可领奖励 找可击杀最低等级的
|
|
for i,v in ipairs(left_data) do
|
|
if not_kill_boss_id == v.boss_id then
|
|
return v.boss_id, i
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
-- 缓存一遍页签红点
|
|
function EquipCollectModel:UpdateBossLeftBtnRed( )
|
|
self.boss_left_btn_red_cache = {}
|
|
for i,v in ipairs(self:GetBossLeftTabData()) do
|
|
local boss_first_blood_data = self:GetBossData( v.boss_id ) -- 首杀后端数据
|
|
-- 红点
|
|
local selfkill_can_get = boss_first_blood_data.self_kill_status and boss_first_blood_data.self_kill_status == 1
|
|
local firstblood_can_get = boss_first_blood_data.time and boss_first_blood_data.time > 0 and boss_first_blood_data.server_award_status == 0
|
|
self.boss_left_btn_red_cache[i] = selfkill_can_get or firstblood_can_get
|
|
end
|
|
end
|
|
|
|
function EquipCollectModel:GetBossLeftBtnRed( index )
|
|
if self.boss_left_btn_red_cache[index] ~= nil then
|
|
return self.boss_left_btn_red_cache[index]
|
|
end
|
|
return false
|
|
end
|
|
----------幻魔boss首杀-end-----------
|
|
|
|
-- 获取目标代数 收集好的套装数 和 总套装数
|
|
function EquipCollectModel:GetCollectCountByID( id )
|
|
if not id then return end
|
|
local total_count = 0
|
|
local has_get_count = 0
|
|
for k,v in pairs(self:GetEquipCollectCFG(id)) do
|
|
total_count = total_count + 1
|
|
if self:CheckIsAllEquipCollected(v[1].id, v[1].sub_id) then
|
|
has_get_count = has_get_count + 1
|
|
end
|
|
end
|
|
return has_get_count, total_count
|
|
end
|