326 lines
9.9 KiB
JavaScript
326 lines
9.9 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, 'a6348+9rQZGArO7jqbH9qFS', 'planesafk_model');
|
||
|
|
// Scripts/mod/pve/planesafk/planesafk_model.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
// --------------------------------------------------------------------
|
||
|
|
// 这里填写简要说明(必填),
|
||
|
|
// @author: lwc@syg.com(必填, 创建模块的人员)
|
||
|
|
// @editor: xxx@syg.com(必填, 后续维护以及修改的人员)
|
||
|
|
// @description:
|
||
|
|
// 位面改版 参考afk的 后端 国辉 策划 中建
|
||
|
|
// <br/>Create: 2020-02-05
|
||
|
|
// --------------------------------------------------------------------
|
||
|
|
|
||
|
|
var BridgeClass = require("bridge.class");
|
||
|
|
var PlanesafkEvent = require("planesafk_event");
|
||
|
|
var PlanesafkModel = cc.Class({
|
||
|
|
"extends": BridgeClass,
|
||
|
|
ctor: function ctor() {
|
||
|
|
this.ctrl = arguments[0];
|
||
|
|
this.initConfig();
|
||
|
|
},
|
||
|
|
initConfig: function initConfig() {
|
||
|
|
//当前地图id
|
||
|
|
this.map_id = null;
|
||
|
|
//地图数据
|
||
|
|
this.map_config = null;
|
||
|
|
|
||
|
|
//角色当前位置
|
||
|
|
this.cur_line = null;
|
||
|
|
this.cur_index = null;
|
||
|
|
|
||
|
|
//是否显示探索完毕
|
||
|
|
this.is_show_search_finish = null;
|
||
|
|
|
||
|
|
//登陆红点(一定要赋值 null)
|
||
|
|
this.planesafk_login_redpoint = null;
|
||
|
|
},
|
||
|
|
setCdTime: function setCdTime(time) {
|
||
|
|
this.cd_time = time;
|
||
|
|
},
|
||
|
|
getCdTime: function getCdTime() {
|
||
|
|
return this.cd_time || 0;
|
||
|
|
},
|
||
|
|
setIsShowSearchFinish: function setIsShowSearchFinish(is_show) {
|
||
|
|
this.is_show_search_finish = is_show;
|
||
|
|
},
|
||
|
|
getIsShowSearchFinish: function getIsShowSearchFinish() {
|
||
|
|
return this.is_show_search_finish;
|
||
|
|
},
|
||
|
|
// 设置形象id
|
||
|
|
setPlanesRoleLookId: function setPlanesRoleLookId(look_id) {
|
||
|
|
this.planes_look_id = look_id;
|
||
|
|
},
|
||
|
|
getPlanesRoleLookId: function getPlanesRoleLookId() {
|
||
|
|
return this.planes_look_id;
|
||
|
|
},
|
||
|
|
// 设置地图id
|
||
|
|
setMapData: function setMapData(data) {
|
||
|
|
if (!data) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
if (data.map_id) {
|
||
|
|
this.map_id = data.map_id;
|
||
|
|
this.map_config = gdata("planes_data", "data_customs", this.map_id); //game.configs.PlanesData.data_customs[this.map_id]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
//更新角色位置
|
||
|
|
updateRolePos: function updateRolePos(data) {
|
||
|
|
this.cur_line = data.line || 1;
|
||
|
|
this.cur_index = data.index || 3;
|
||
|
|
},
|
||
|
|
getMapID: function getMapID() {
|
||
|
|
return this.map_id || 1;
|
||
|
|
},
|
||
|
|
//获取地图资源id
|
||
|
|
getMapResID: function getMapResID() {
|
||
|
|
if (this.map_config) {
|
||
|
|
return "11";
|
||
|
|
}
|
||
|
|
return "11";
|
||
|
|
},
|
||
|
|
//获取角色位置
|
||
|
|
//@ return 当前行 ,当前索引
|
||
|
|
getRolePos: function getRolePos() {
|
||
|
|
//GY需修改变量获取方式
|
||
|
|
var cur_line = this.cur_line || 1;
|
||
|
|
var cur_index = this.cur_index || 3;
|
||
|
|
return [cur_line, cur_index];
|
||
|
|
},
|
||
|
|
//是否活动开启中
|
||
|
|
isHolidayOpen: function isHolidayOpen() {
|
||
|
|
return this.is_holiday_open;
|
||
|
|
},
|
||
|
|
//设置活动开启中
|
||
|
|
setHolidayOpen: function setHolidayOpen(is_holiday) {
|
||
|
|
if (is_holiday) {
|
||
|
|
this.is_holiday_open = is_holiday == 1;
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 设置所有英雄数据
|
||
|
|
setAllPlanesHeroData: function setAllPlanesHeroData(data) {
|
||
|
|
this.planes_hero_data = data;
|
||
|
|
},
|
||
|
|
getAllPlanesHeroData: function getAllPlanesHeroData() {
|
||
|
|
return this.planes_hero_data;
|
||
|
|
},
|
||
|
|
getPlanesHireHeroData: function getPlanesHireHeroData(id) {
|
||
|
|
if (!this.planes_hero_data) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
for (var k in this.planes_hero_data) {
|
||
|
|
var v = this.planes_hero_data[k];
|
||
|
|
if (v.flag == 1 && v.partner_id == id) {
|
||
|
|
return v;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 更新我方英雄血量数据
|
||
|
|
updateMyHeroData: function updateMyHeroData(data_list) {
|
||
|
|
if (!this.planes_hero_data) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
for (var k in data_list) {
|
||
|
|
for (var m in this.planes_hero_data) {
|
||
|
|
if (this.planes_hero_data[m].flag == data_list[k].flag && this.planes_hero_data[m].partner_id == data_list[k].partner_id) {
|
||
|
|
this.planes_hero_data[m].hp_per = data_list[k].hp_per;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
gcore.GlobalEvent.fire(PlanesafkEvent.Get_Hero_Live_Event);
|
||
|
|
},
|
||
|
|
// 获取英雄的剩余血量
|
||
|
|
getMyPlanesHeroHpPer: function getMyPlanesHeroHpPer(partner_id, flag) {
|
||
|
|
if (!this.planes_hero_data) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var hp_per = 100;
|
||
|
|
flag = flag || 0;
|
||
|
|
for (var k in this.planes_hero_data) {
|
||
|
|
var v = this.planes_hero_data[k];
|
||
|
|
if (v.flag == flag && v.partner_id == partner_id) {
|
||
|
|
hp_per = v.hp_per || 100;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return hp_per;
|
||
|
|
},
|
||
|
|
// 是否有不满血的英雄
|
||
|
|
checkIsHaveHpNotFullHero: function checkIsHaveHpNotFullHero() {
|
||
|
|
if (!this.planes_hero_data) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var is_have = false;
|
||
|
|
for (var k in this.planes_hero_data) {
|
||
|
|
var v = this.planes_hero_data[k];
|
||
|
|
if (v.hp_per < 100) {
|
||
|
|
is_have = true;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return is_have;
|
||
|
|
},
|
||
|
|
// 是否有死亡的英雄
|
||
|
|
checkIsHaveDieHero: function checkIsHaveDieHero() {
|
||
|
|
if (!this.planes_hero_data) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var is_have = false;
|
||
|
|
for (var k in this.planes_hero_data) {
|
||
|
|
var v = this.planes_hero_data[k];
|
||
|
|
if (v.hp_per <= 0) {
|
||
|
|
is_have = true;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return is_have;
|
||
|
|
},
|
||
|
|
// 获取背景图标资源
|
||
|
|
getBgPathByResId: function getBgPathByResId(res_id) {
|
||
|
|
if (res_id && res_id != "") {
|
||
|
|
return cc.js.formatStr("resource/planes/grid_icon/%s.png", res_id);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
getPlanesAfkRedStatus: function getPlanesAfkRedStatus() {
|
||
|
|
var red_status = this.getOrderactionRedpoint() || this.planesafk_login_redpoint;
|
||
|
|
return red_status;
|
||
|
|
},
|
||
|
|
checkPlanesafkRedPoint: function checkPlanesafkRedPoint() {
|
||
|
|
gcore.GlobalEvent.fire(PlanesafkEvent.Update_Planes_Red_Event);
|
||
|
|
},
|
||
|
|
setPlanesafkLoginRedpointFalse: function setPlanesafkLoginRedpointFalse() {
|
||
|
|
this.planesafk_login_redpoint = false;
|
||
|
|
this.checkPlanesafkRedPoint();
|
||
|
|
},
|
||
|
|
checkPlaneafkCanExploreRedPoint: function checkPlaneafkCanExploreRedPoint(data) {
|
||
|
|
if (data && this.planesafk_login_redpoint == null) {
|
||
|
|
this.planesafk_login_redpoint = false;
|
||
|
|
var planes_max_floor = 3;
|
||
|
|
var config = gdata("planes_data", "data_const", "planes_max_floor"); //game.configs.PlanesData.data_const.planes_max_floor
|
||
|
|
if (config) {
|
||
|
|
planes_max_floor = config.val;
|
||
|
|
}
|
||
|
|
if (data.floor < planes_max_floor) {
|
||
|
|
this.planesafk_login_redpoint = true;
|
||
|
|
} else {
|
||
|
|
if (data.is_can_reward == 1 && data.is_reward == 1) {
|
||
|
|
// this.planesafk_login_redpoint = false
|
||
|
|
} else {
|
||
|
|
this.planesafk_login_redpoint = true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
this.checkPlanesafkRedPoint();
|
||
|
|
},
|
||
|
|
//--------------------------------战令-----------------------------------
|
||
|
|
setOrderactionData: function setOrderactionData(data) {
|
||
|
|
this.orderaction_data = data;
|
||
|
|
if (data) {
|
||
|
|
this.setGiftStatus(data.rmb_status);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
//获取当前周期
|
||
|
|
getCurPeriod: function getCurPeriod() {
|
||
|
|
if (this.orderaction_data && this.orderaction_data.period) {
|
||
|
|
return this.orderaction_data.period;
|
||
|
|
}
|
||
|
|
return 1;
|
||
|
|
},
|
||
|
|
//获取特权状态
|
||
|
|
getGiftStatus: function getGiftStatus() {
|
||
|
|
if (this.rmb_status) {
|
||
|
|
return this.rmb_status;
|
||
|
|
}
|
||
|
|
return 0;
|
||
|
|
},
|
||
|
|
getLevShowData: function getLevShowData(lev) {
|
||
|
|
if (this.orderaction_data && this.orderaction_data.list && this.orderaction_data.list[lev]) {
|
||
|
|
return this.orderaction_data.list[lev];
|
||
|
|
}
|
||
|
|
return null;
|
||
|
|
},
|
||
|
|
//获取胜场
|
||
|
|
getWinCounts: function getWinCounts() {
|
||
|
|
if (this.orderaction_data && this.orderaction_data.win_count) {
|
||
|
|
return this.orderaction_data.win_count;
|
||
|
|
}
|
||
|
|
return 0;
|
||
|
|
},
|
||
|
|
getCurDay: function getCurDay() {
|
||
|
|
if (this.orderaction_data && this.orderaction_data.cur_day) {
|
||
|
|
return this.orderaction_data.cur_day;
|
||
|
|
}
|
||
|
|
return 1;
|
||
|
|
},
|
||
|
|
setOrderactionRedStatus: function setOrderactionRedStatus(status) {
|
||
|
|
this.orderaction_first_red_status = status;
|
||
|
|
},
|
||
|
|
//设置特权状态
|
||
|
|
setGiftStatus: function setGiftStatus(status) {
|
||
|
|
this.rmb_status = status;
|
||
|
|
},
|
||
|
|
//获取战令红点
|
||
|
|
getOrderactionRedpoint: function getOrderactionRedpoint() {
|
||
|
|
if (this.orderaction_first_red_status == 1) {
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
if (!this.orderaction_data) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
var lev_reward_list = game.configs.arena_elite_war_order_data.data_lev_reward_list; //gdata("arena_elite_war_order_data","data_lev_reward_list")//
|
||
|
|
if (lev_reward_list && lev_reward_list[this.orderaction_data.period]) {
|
||
|
|
for (var i in lev_reward_list[this.orderaction_data.period]) {
|
||
|
|
//this.orderaction_data.list
|
||
|
|
var v = lev_reward_list[this.orderaction_data.period][i];
|
||
|
|
var status = 0;
|
||
|
|
var rmb_status = 0;
|
||
|
|
var lev_list = this.getLevShowData(v.lev);
|
||
|
|
if (lev_list) {
|
||
|
|
status = lev_list.award_status;
|
||
|
|
rmb_status = lev_list.rmb_award_status;
|
||
|
|
}
|
||
|
|
if (v.lev <= this.orderaction_data.lev) {
|
||
|
|
if (status == 0) {
|
||
|
|
//可领
|
||
|
|
return true;
|
||
|
|
} else if (rmb_status == 0 && this.orderaction_data.rmb_status == 1) {
|
||
|
|
//可领
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return false;
|
||
|
|
},
|
||
|
|
//获取战令入口是否显示
|
||
|
|
getOrderIsShow: function getOrderIsShow() {
|
||
|
|
var configlv = gdata("PlanesWarOrderData", "data_constant", "limit_lev"); //game.configs.PlanesWarOrderData.data_constant.limit_lev
|
||
|
|
var configday = gdata("PlanesWarOrderData", "data_constant", "open_srv_day"); //game.configs.PlanesWarOrderData.data_constant.open_srv_day
|
||
|
|
var RoleController = require("role_controller");
|
||
|
|
var open_srv_day = RoleController.getInstance().getModel().getOpenSrvDay();
|
||
|
|
var rolevo = RoleController.getInstance().getModel().getRoleVo();
|
||
|
|
// 是否开启planes_war_order_data:
|
||
|
|
if (configday && configlv && rolevo && (open_srv_day < configday.val || rolevo.lev < configlv.val)) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
return true;
|
||
|
|
},
|
||
|
|
deleteMe: function deleteMe() {
|
||
|
|
this.DeleteMe();
|
||
|
|
},
|
||
|
|
//---------------------------------}-------------------------------------
|
||
|
|
|
||
|
|
DeleteMe: function DeleteMe() {
|
||
|
|
if (this.model != null) {
|
||
|
|
this.model.deleteMe();
|
||
|
|
this.model = null;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
module.exports = PlanesafkModel;
|
||
|
|
|
||
|
|
cc._RF.pop();
|