111 lines
3.9 KiB
JavaScript
111 lines
3.9 KiB
JavaScript
"use strict";
|
|
cc._RF.push(module, '5ea86xYzadGXo0chTiOBuAS', 'guildsecretarea_model');
|
|
// Scripts/mod/guild/secretarea/guildsecretarea_model.js
|
|
|
|
"use strict";
|
|
|
|
// ////////////////////////////////////////////////////////////////////
|
|
// 这里填写简要说明(必填),
|
|
// @author. lwc@syg.com(必填, 创建模块的人员)
|
|
// @editor. xxx@syg.com(必填, 后续维护以及修改的人员)
|
|
// @description.
|
|
// 公会秘境 后端 国辉 策划 松岳
|
|
// <br/>Create. 2019年9月11日
|
|
// ////////////////////////////////////////////////////////////////////
|
|
var BridgeClass = require("bridge.class");
|
|
var GuildConst = require("guild_const");
|
|
var GuildEvent = require("guild_event");
|
|
var GuildsecretareaModel = cc.Class({
|
|
"extends": BridgeClass,
|
|
ctor: function ctor() {
|
|
var ctrl = require("guildsecretarea_controller");
|
|
this.ctrl = ctrl.getInstance();
|
|
},
|
|
initConfig: function initConfig() {
|
|
this.dic_boss_rank_info = {};
|
|
},
|
|
//公会秘境数据..用于判定红点用
|
|
updateSecretareaData: function updateSecretareaData(data) {
|
|
this.secretarea_data = data;
|
|
this.checkRedPoint(true);
|
|
},
|
|
updateSecretareaBuyCount: function updateSecretareaBuyCount(data) {
|
|
if (data && this.secretarea_data) {
|
|
this.secretarea_data.count = data.count;
|
|
this.secretarea_data.last_buy_time = data.last_buy_time;
|
|
this.checkRedPoint(true);
|
|
}
|
|
},
|
|
checkRedPoint: function checkRedPoint(is_check_main) {
|
|
var status = false;
|
|
if (this.secretarea_data) {
|
|
if (this.secretarea_data.bid == 0) {
|
|
return false;
|
|
}
|
|
if (this.secretarea_data.count > 0 && this.secretarea_data.end_time > client.socket.getTime()) {
|
|
//有挑战次数
|
|
status = true;
|
|
} else {
|
|
//是否能量领奖
|
|
if (this.secretarea_data.is_reward == 1) {
|
|
//已领奖励信息
|
|
var dic_progress_reward = {};
|
|
for (var i in this.secretarea_data.progress_reward) {
|
|
var v = this.secretarea_data.progress_reward[i];
|
|
dic_progress_reward[v.order] = true;
|
|
}
|
|
if (game.configs.guild_secret_area_data && game.configs.guild_secret_area_data.data_box_reward) {
|
|
var box_reward_list = game.configs.guild_secret_area_data.data_box_reward[this.secretarea_data.bid];
|
|
if (box_reward_list && Utils.next(box_reward_list) != null) {
|
|
box_reward_list.sort(function (a, b) {
|
|
return a.number - b.number;
|
|
});
|
|
var per_hp = this.secretarea_data.hp * 100 / this.secretarea_data.max_hp;
|
|
for (var _i in box_reward_list) {
|
|
var config = box_reward_list[_i];
|
|
var per = config.progress / 10;
|
|
if (!dic_progress_reward[config.number] && per_hp <= per) {
|
|
status = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (is_check_main) {}
|
|
gcore.GlobalEvent.fire(GuildEvent.UpdateGuildRedStatus, GuildConst.red_index.guild_secret_area, status);
|
|
return status;
|
|
},
|
|
updateBossRankInfo: function updateBossRankInfo(data) {
|
|
if (!data) {
|
|
return;
|
|
}
|
|
this.dic_boss_rank_info[data.boss_id] = data;
|
|
},
|
|
getBossRankInfoByBossID: function getBossRankInfoByBossID(boss_id) {
|
|
if (this.dic_boss_rank_info) {
|
|
return this.dic_boss_rank_info[boss_id];
|
|
}
|
|
return null;
|
|
},
|
|
clearBossRankInfo: function clearBossRankInfo() {
|
|
this.dic_boss_rank_info = {};
|
|
},
|
|
//讨伐信息更新
|
|
updateStartCrusadeInfo: function updateStartCrusadeInfo(data) {
|
|
this.start_crusade_data = data;
|
|
},
|
|
//是否显示开始讨伐窗口
|
|
isShowStartCrusade: function isShowStartCrusade() {
|
|
if (this.start_crusade_data && this.start_crusade_data.flag == 0) {
|
|
this.start_crusade_data.flag = 1;
|
|
return true;
|
|
}
|
|
return false;
|
|
},
|
|
__delete: function __delete() {}
|
|
});
|
|
|
|
cc._RF.pop(); |