176 lines
5.5 KiB
JavaScript
176 lines
5.5 KiB
JavaScript
"use strict";
|
|
cc._RF.push(module, 'f2275sSXYlBkoIS1clF90pW', 'element_model');
|
|
// Scripts/mod/pve/element/element_model.js
|
|
|
|
"use strict";
|
|
|
|
// --------------------------------------------------------------------
|
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
|
// @description:
|
|
// 这里填写详细说明,主要填写该模块的功能简要
|
|
// <br/>Create: 2019-09-16 19:26:31
|
|
// --------------------------------------------------------------------
|
|
var BridgeClass = require("bridge.class");
|
|
var RoleController = require("role_controller");
|
|
var ElementEvent = require("element_event");
|
|
var ElementModel = cc.Class({
|
|
"extends": BridgeClass,
|
|
ctor: function ctor() {},
|
|
properties: {},
|
|
initConfig: function initConfig() {
|
|
this.element_data = {};
|
|
this.red_status = false;
|
|
|
|
//記錄當前打開的神殿類型
|
|
this.record_open_type = null;
|
|
},
|
|
getRecordOpenType: function getRecordOpenType() {
|
|
return this.record_open_type;
|
|
},
|
|
setRecordOpenType: function setRecordOpenType(open_type) {
|
|
this.record_open_type = open_type;
|
|
},
|
|
// 設置元素神殿基礎數據
|
|
setElementData: function setElementData(data) {
|
|
this.element_data = data || {};
|
|
// this.updateLadderRedStatus()
|
|
},
|
|
// 獲取元素神殿數據
|
|
getElementData: function getElementData() {
|
|
return this.element_data || {};
|
|
},
|
|
// 判斷是否有元素神殿的數據
|
|
checkIsHaveElementData: function checkIsHaveElementData() {
|
|
if (!this.element_data || Utils.next(this.element_data) == null) {
|
|
return false;
|
|
}
|
|
return true;
|
|
},
|
|
// 刷新購買次數相關數據
|
|
updateElementCountData: function updateElementCountData(data) {
|
|
if (this.element_data) {
|
|
for (var key in data) {
|
|
var val = data[key];
|
|
this.element_data[key] = val;
|
|
}
|
|
// this.updateLadderRedStatus()
|
|
}
|
|
},
|
|
// 刷新最大通關數
|
|
updateElementCustomsData: function updateElementCustomsData(data) {
|
|
if (this.element_data && this.element_data.list) {
|
|
for (var k in this.element_data.list) {
|
|
var v = this.element_data.list[k];
|
|
if (v.type == data.type) {
|
|
v.group = data.group;
|
|
v.boss_id = data.boss_id;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
// 獲取剩餘挑戰次數
|
|
getLeftChallengeCount: function getLeftChallengeCount() {
|
|
if (this.element_data) {
|
|
return this.element_data.num || 0;
|
|
}
|
|
return 0;
|
|
},
|
|
// 今日普通購買次數
|
|
getNormalBuyCount: function getNormalBuyCount() {
|
|
if (this.element_data) {
|
|
return this.element_data.buy_num || 0;
|
|
}
|
|
return 0;
|
|
},
|
|
// 獲取今日特權購買次數
|
|
getPrivilegeBuyCount: function getPrivilegeBuyCount() {
|
|
if (this.element_data) {
|
|
return this.element_data.pr_buy_num || 0;
|
|
}
|
|
return 0;
|
|
},
|
|
// 獲取剩餘購買次數(包括普通次數和特權次數)
|
|
getTodayLeftBuyCount: function getTodayLeftBuyCount() {
|
|
var left_count = 0;
|
|
var normal_count = this.element_data.buy_num || 0;
|
|
var normal_max_count = 0;
|
|
var role_vo = RoleController.getInstance().getRoleVo();
|
|
for (var k in game.configs.element_temple_data.data_buy_count) {
|
|
var v = game.configs.element_temple_data.data_buy_count[k];
|
|
if (v.vip <= role_vo.vip_lev) {
|
|
normal_max_count = normal_max_count + 1;
|
|
}
|
|
}
|
|
left_count = normal_max_count - normal_count;
|
|
var privilege_status = RoleController.getInstance().getModel().checkPrivilegeStatus(4); // 特權激活狀態
|
|
if (privilege_status) {
|
|
var pri_count = this.element_data.pr_buy_num || 0;
|
|
left_count = left_count + game.configs.element_temple_data.data_privilege_length - pri_count;
|
|
}
|
|
if (left_count < 0) left_count = 0;
|
|
return left_count;
|
|
},
|
|
// 根據副本類型獲取最大通關數
|
|
getElementCustomsIdByType: function getElementCustomsIdByType(ele_type) {
|
|
var customs_id = 0;
|
|
if (this.element_data && this.element_data.list) {
|
|
for (var k in this.element_data.list) {
|
|
var v = this.element_data.list[k];
|
|
if (v.type == ele_type) {
|
|
customs_id = v.boss_id;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return customs_id;
|
|
},
|
|
// 更新元素聖殿紅點
|
|
updateLadderRedStatus: function updateLadderRedStatus() {
|
|
this.red_status = false;
|
|
if (this.element_data && this.element_data.num > 0) {
|
|
this.red_status = true;
|
|
}
|
|
// 更新主界面圖標紅點
|
|
|
|
// let status = AdventureActivityController.getInstance().isOpenActivity(AdventureActivityConst.Ground_Type.element)
|
|
// if( !status) {
|
|
// this.red_status = false
|
|
// }
|
|
// 更新天梯界面紅點
|
|
gcore.GlobalEvent.fire(ElementEvent.Update_Element_Red_Status, this.red_status);
|
|
},
|
|
// 判斷元素聖殿紅點狀態
|
|
checkElementRedStatus: function checkElementRedStatus() {
|
|
return this.red_status;
|
|
},
|
|
// 元素聖殿是否開啟
|
|
checkElementIsOpen: function checkElementIsOpen(not_tips) {
|
|
var role_vo = RoleController.getInstance().getRoleVo();
|
|
var open_cfg = game.configs.element_temple_data.data_const["join_lev"];
|
|
var is_open = true;
|
|
if (open_cfg && open_cfg.val > role_vo.lev) {
|
|
is_open = false;
|
|
if (!not_tips) {
|
|
nx.tbox(open_cfg.desc);
|
|
}
|
|
}
|
|
return is_open;
|
|
},
|
|
setCurEleData: function setCurEleData(data) {
|
|
this.ele_data = data;
|
|
},
|
|
getCurEleData: function getCurEleData() {
|
|
if (this.ele_data) {
|
|
return this.ele_data;
|
|
}
|
|
},
|
|
setEleCurPower: function setEleCurPower(power) {
|
|
this.power = power;
|
|
},
|
|
getEleCurPower: function getEleCurPower() {
|
|
return this.power;
|
|
}
|
|
});
|
|
|
|
cc._RF.pop(); |