Files
fc/dev/project/library/imports/63/63353a34-a14c-4c5c-bc86-25044c634f99.js
2026-05-24 10:21:26 +08:00

181 lines
6.1 KiB
JavaScript

"use strict";
cc._RF.push(module, '63353o0oUxMXLyGJQRMY0+Z', 'guildboss_model');
// Scripts/mod/guild/boss/guildboss_model.js
"use strict";
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 这里填写详细说明,主要填写该模块的功能简要
// <br/>Create: 2019-01-24 17:44:54
// --------------------------------------------------------------------
var BridgeClass = require("bridge.class");
var GuildbossEvent = require("guildboss_event");
var GuildConst = require("guild_const");
var GuildbossModel = cc.Class({
"extends": BridgeClass,
ctor: function ctor() {
var ctrl = require("guildboss_controller");
this.ctrl = ctrl.getInstance();
},
properties: {},
initConfig: function initConfig() {
this.guildboss_red_list = {};
this.role_rank_list = {}; //319排行协议列表
},
//退出公会的时候清空掉相关的数据
clearGuildBossInfo: function clearGuildBossInfo() {
this.base_info = {}; //基础信息
this.first_pass_list = {}; //公会boss首通奖励
this.day_bos_list = {}; //每日宝箱
this.guildboss_red_list = {}; //公会红点相关,主要包含了首通奖励红点,每日击杀红点以及拥有次数的红点
this._initFirstPassData = {}; //首通
},
updateGuildRedStatus: function updateGuildRedStatus(bid, status) {},
//公会副本是否有红点状态
checkGuildDunRedStatus: function checkGuildDunRedStatus() {
for (var k in this.guildboss_red_list) {
var v = this.guildboss_red_list[k];
if (v == true) return true;
}
return false;
},
//根据类型获取红点,
getRedStatusByType: function getRedStatusByType(type) {
return this.guildboss_red_list[type];
},
//公会副本基础信息,或者清除
updateGuildDunBaseInfo: function updateGuildDunBaseInfo(data) {
var need_update_red_status = false;
if (this.base_info == null || this.base_info.count != data.count) {
need_update_red_status = true;
}
this.base_info = data; // fid:当前id max_id:历史最高副本id count:剩余挑战次数 type:重置类型(0:正常 1:章节回退)buy_count:购买次数
gcore.GlobalEvent.fire(GuildbossEvent.UpdateGuildDunBaseInfo);
//判断一下当前的Boss是否能打
//更新红点
if (need_update_red_status == true) {
// this.updateGuildRedStatus(GuildConst.red_index.boss_times, (this.base_info.count > 0));
}
},
//获取挑战次数
getChangeCount: function getChangeCount() {
if (this.base_info) {
if (!this.base_info.count) {
return false;
}
if (this.base_info.count > 0) return true;else return false;
}
},
//获取基础信息
getBaseInfo: function getBaseInfo() {
return this.base_info;
},
//更新剩余挑战次数以及购买次数
//FALSE为普通购买TRUE为挑战购买
updateBaseWithTimes: function updateBaseWithTimes(count, buy_count, buy_type) {
if (this.base_info == null) this.base_info = {};
this.base_info.count = count;
this.base_info.buy_count = buy_count;
gcore.GlobalEvent.fire(GuildbossEvent.UpdateGuildBossChallengeTimes, buy_type);
//更新红点
this.updateGuildRedStatus(GuildConst.red_index.boss_times, this.base_info.count > 0);
},
getFirstPassRewardList: function getFirstPassRewardList() {
var return_list = []; //0:未达成
var return_list1 = []; //1:可领取
var return_list2 = []; //2:已领取
if (!this._initFirstPassData.award_list) return;
for (var i in this._initFirstPassData.award_list) {
var v = this._initFirstPassData.award_list[i];
if (v.status == 0) {
return_list.push(v);
} else if (v.status == 1) {
return_list1.push(v);
} else if (v.status == 3) {
return_list2.push(v);
}
}
if (return_list.length != 0) {
for (var i in return_list) {
var v = return_list[i];
return_list1.push(v);
}
}
if (return_list2.length != 0) {
for (var i in return_list2) {
var v = return_list[i];
return_list1.push(v);
}
}
},
//根据排名获取伤害排名奖励
getRankAward: function getRankAward(rank) {
rank = rank || 1;
for (var k in game.configs.guild_dun_data.data_rank_reward) {
var v = gdata("guild_dun_data", "data_rank_reward", [k]);
if (v.rank1 < rank && rank <= v.rank2) return v.award;
}
return [];
},
//初始化每日宝箱奖励的
initDayBoxRewardsStatus: function initDayBoxRewardsStatus(data_list) {
this.day_bos_list = {};
for (var i = 1; i <= game.configs.guild_dun_data.data_chapter_box_length; i++) {
this.day_bos_list[i] = 0;
}
var red_status = false;
for (var i in data_list) {
var v = data_list[i];
this.day_bos_list[v.fid] = v.num;
if (v.num > 0 && red_status == false) {
red_status = true;
}
}
gcore.GlobalEvent.fire(GuildbossEvent.UpdateBoxRewardsStatus);
},
//更新指定宝箱数量
updateBoxRewards: function updateBoxRewards(fid, num) {
if (this.day_bos_list[fid] == null) return;
this.day_bos_list[fid] = num;
},
//返回击杀宝箱的数量状态
getBoxRewardList: function getBoxRewardList() {
return this.day_bos_list || {};
},
//保存排行榜协议
setRaknRoleList: function setRaknRoleList(list) {
this.role_rank_list = list;
},
//获取前三个
getRaknRoleTopThreeList: function getRaknRoleTopThreeList() {
var list = [{
rank: 1,
name: nx.text.getKey("lab_arena_loop_rank_sit_tip")
}, {
rank: 2,
name: nx.text.getKey("lab_arena_loop_rank_sit_tip")
}, {
rank: 3,
name: nx.text.getKey("lab_arena_loop_rank_sit_tip")
}];
if (this.role_rank_list.rank_list && Utils.next(this.role_rank_list.rank_list || {}) != null) {
var rank_list = this.role_rank_list.rank_list;
for (var i in rank_list) {
var v = rank_list[i];
for (var i2 in list) {
var v1 = list[i2];
if (v.rank == v1.rank) {
list[i2] = v;
}
}
}
}
return list;
}
});
cc._RF.pop();