"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的 后端 国辉 策划 中建 //
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();