Files
fc/dev/project/library/imports/f2/f2275b12-5d89-4192-8212-d5c945f74a56.js
T
2026-05-24 10:21:26 +08:00

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();