Files
fc/dev/project/assets/Scripts/mod/pve/element/element_model.js
T
2026-05-23 22:10:14 +08:00

195 lines
5.4 KiB
JavaScript

// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 这里填写详细说明,主要填写该模块的功能简要
// <br/>Create: 2019-09-16 19:26:31
// --------------------------------------------------------------------
const BridgeClass = require( "bridge.class" );
var RoleController = require("role_controller");
var ElementEvent = require("element_event");
var ElementModel = cc.Class({
extends: BridgeClass,
ctor: function () {
},
properties: {
},
initConfig: function () {
this.element_data = {}
this.red_status = false
//記錄當前打開的神殿類型
this.record_open_type = null;
},
getRecordOpenType(){
return this.record_open_type
},
setRecordOpenType(open_type){
this.record_open_type = open_type
},
// 設置元素神殿基礎數據
setElementData( data ){
this.element_data = data || {}
// this.updateLadderRedStatus()
},
// 獲取元素神殿數據
getElementData(){
return this.element_data || {}
},
// 判斷是否有元素神殿的數據
checkIsHaveElementData(){
if (!this.element_data || Utils.next(this.element_data) == null) {
return false
}
return true
},
// 刷新購買次數相關數據
updateElementCountData( data ){
if( this.element_data) {
for (let key in data) {
let val=data[key];
this.element_data[key] = val
}
// this.updateLadderRedStatus()
}
},
// 刷新最大通關數
updateElementCustomsData( data ){
if (this.element_data && this.element_data.list) {
for (let k in this.element_data.list) {
let v = this.element_data.list[k];
if( v.type == data.type) {
v.group = data.group
v.boss_id = data.boss_id
break
}
}
}
},
// 獲取剩餘挑戰次數
getLeftChallengeCount(){
if (this.element_data) {
return this.element_data.num || 0
}
return 0
},
// 今日普通購買次數
getNormalBuyCount(){
if (this.element_data) {
return this.element_data.buy_num || 0
}
return 0
},
// 獲取今日特權購買次數
getPrivilegeBuyCount(){
if (this.element_data) {
return this.element_data.pr_buy_num || 0
}
return 0
},
// 獲取剩餘購買次數(包括普通次數和特權次數)
getTodayLeftBuyCount(){
let left_count = 0
let normal_count = this.element_data.buy_num || 0
let normal_max_count = 0
let role_vo = RoleController.getInstance().getRoleVo()
for (let k in game.configs.element_temple_data.data_buy_count) {
let 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
let privilege_status = RoleController.getInstance().getModel().checkPrivilegeStatus(4) // 特權激活狀態
if (privilege_status) {
let 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( ele_type ){
let customs_id = 0
if (this.element_data && this.element_data.list) {
for (let k in this.element_data.list) {
let v = this.element_data.list[k];
if (v.type == ele_type) {
customs_id = v.boss_id
break
}
}
}
return customs_id
},
// 更新元素聖殿紅點
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(){
return this.red_status
},
// 元素聖殿是否開啟
checkElementIsOpen( not_tips ){
let role_vo = RoleController.getInstance().getRoleVo()
let open_cfg = game.configs.element_temple_data.data_const["join_lev"]
let 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(data){
this.ele_data = data;
},
getCurEleData(){
if(this.ele_data){
return this.ele_data;
}
},
setEleCurPower(power){
this.power = power;
},
getEleCurPower(){
return this.power;
},
});