195 lines
5.4 KiB
JavaScript
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;
|
|
},
|
|
}); |