"use strict"; cc._RF.push(module, 'f2275sSXYlBkoIS1clF90pW', 'element_model'); // Scripts/mod/pve/element/element_model.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里填写详细说明,主要填写该模块的功能简要 //
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();