Files
fc/dev/project/library/imports/9f/9f3a3130-231a-4c5b-9216-0de8571aa6a8.js
T

146 lines
5.2 KiB
JavaScript
Raw Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, '9f3a3EwIxpMW5IWDehXGqao', 'crosschampion_model');
// Scripts/mod/pvp/crosschampion/crosschampion_model.js
"use strict";
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 这里填写详细说明,主要填写该模块的功能简要
// <br/>Create: 2019-07-29 10:38:42
// --------------------------------------------------------------------
var BridgeClass = require("bridge.class");
var ArenaEvent = require("arena_event");
var ArenaConst = require("arena_const");
var RoleController = require("role_controller");
var CrosschampionConst = require("crosschampion_const");
var CrosschampionEvent = require("crosschampion_event");
var CrosschampionModel = cc.Class({
"extends": BridgeClass,
ctor: function ctor() {
this.ctrl = arguments[0];
},
properties: {},
initConfig: function initConfig() {
this.champion_red_list = {}; // 紅點數據
},
// 跨服冠軍賽基礎數據
updateChampionBaseInfo: function updateChampionBaseInfo(data) {
var self = this;
self.base_info = data;
gcore.GlobalEvent.fire(ArenaEvent.UpdateChampionBaseInfoEvent, data);
},
getBaseInfo: function getBaseInfo() {
return this.base_info;
},
//跨服冠軍賽個人數據
setRoleInfo: function setRoleInfo(data) {
this.role_info = data;
gcore.GlobalEvent.fire(ArenaEvent.UpdateChampionRoleInfoEvent, data);
},
getRoleInfo: function getRoleInfo() {
return this.role_info;
},
// 我的跨服冠軍賽狀態
getMyMatchStatus: function getMyMatchStatus() {
var self = this;
if (self.base_info && self.role_info) {
if (self.base_info.step == ArenaConst.champion_step.unopened) {
return ArenaConst.champion_my_status.unopened;
} else if (self.base_info.step == ArenaConst.champion_step.score && self.base_info.step_status == ArenaConst.champion_step_status.unopened) {
return ArenaConst.champion_my_status.unopened;
} else if (self.role_info.rank == 0) {
return ArenaConst.champion_my_status.unjoin;
} else {
return ArenaConst.champion_my_status.in_match;
}
}
return ArenaConst.champion_my_status.unopened;
},
// 當前周冠軍賽是否是未開啟狀態
getOpenCrosschampionViewStatus: function getOpenCrosschampionViewStatus() {
var self = this;
if (self.base_info && (self.base_info.step != ArenaConst.champion_step.match_8 || self.base_info.step_status != ArenaConst.champion_step_status.over)) {
return true;
}
return false;
},
// 獲取跨服冠軍賽功能是否開啟
checkCrossChampionIsOpen: function checkCrossChampionIsOpen(nottips) {
var is_open = false;
var role_vo = RoleController.getInstance().getRoleVo();
var limit_cfg = game.configs.arena_cluster_champion_data.data_const["guess_lev_limit"];
if (limit_cfg && role_vo && role_vo.lev >= limit_cfg.val) {
is_open = true;
}
if (is_open == false && limit_cfg && !nottips) {
// nx.mbox(limit_cfg.desc,["cancel","confirm"]);
}
return is_open;
},
// 前三名角色數據
setTopThreeRoleData: function setTopThreeRoleData(data) {
this.top_three_role_data = data || {};
this.checkTopThreeWorshipRedStatus();
},
saveTopThreeRoleData: function saveTopThreeRoleData(_data) {
this.top_three_role_datas = _data || {};
},
getThreeDatas: function getThreeDatas() {
return this.top_three_role_datas;
},
updateTopThreeRoleWorshipStatus: function updateTopThreeRoleWorshipStatus(rid, srv_id) {
if (this.top_three_role_data) {
for (var k in this.top_three_role_data) {
var v = this.top_three_role_data[k];
if (v.rid == rid && v.srv_id == srv_id) {
v.worship_status = 1;
break;
}
}
}
this.checkTopThreeWorshipRedStatus();
},
checkTopThreeWorshipRedStatus: function checkTopThreeWorshipRedStatus() {
var self = this;
var red_status = false;
if (self.top_three_role_data) {
var role_vo = RoleController.getInstance().getRoleVo();
for (var k in self.top_three_role_data) {
var v = this.top_three_role_data[k];
if (v.worship_status == 0 && role_vo && !role_vo.isSameRole(v.srv_id, v.rid)) {
red_status = true;
break;
}
}
}
self.updateCrosschampionRedStatus(CrosschampionConst.Red_Type.Worship, red_status);
},
// 紅點相關
updateCrosschampionRedStatus: function updateCrosschampionRedStatus(bid, status) {
var self = this;
var _status = self.champion_red_list[bid];
if (_status == status) return;
self.champion_red_list[bid] = status;
var red_status = self.checkCrosschampionRedStatus();
gcore.GlobalEvent.fire(CrosschampionEvent.Update_Red_Status_Event, bid, status);
},
checkCrosschampionRedStatus: function checkCrosschampionRedStatus() {
var status = false;
for (var k in this.champion_red_list) {
var v = this.champion_red_list[k];
if (v) {
status = true;
break;
}
}
return status;
},
// 根據紅點類型獲取紅點狀態
getCrossarenaRedStatus: function getCrossarenaRedStatus(red_type) {
return this.champion_red_list[red_type] || false;
}
});
cc._RF.pop();