135 lines
3.9 KiB
JavaScript
135 lines
3.9 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, 'e6380i6HqBOGodYC3skGiSf', 'bridge.conditions');
|
||
|
|
// Scripts/zbridge/utils/bridge.conditions.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
// ================================================================
|
||
|
|
//
|
||
|
|
// 条件判断集
|
||
|
|
//
|
||
|
|
// ================================================================
|
||
|
|
|
||
|
|
var RoleController = require("role_controller");
|
||
|
|
var HeroController = require("hero_controller");
|
||
|
|
var BattleDramaController = require("battle_drama_controller");
|
||
|
|
var BackPackController = require("backpack_controller");
|
||
|
|
|
||
|
|
// 条件关键字
|
||
|
|
var CKeys = ["dun", "lev", "maxlev", "maxdun", "star", "guild_lv", "open_day", "world_lev", "building", "guide_close", "hopen", "item"];
|
||
|
|
|
||
|
|
// 条件判断方法集合
|
||
|
|
var CFMap = {
|
||
|
|
// 关卡条件
|
||
|
|
"dun": function dun(_val) {
|
||
|
|
var dun = parseInt(_val) || 0;
|
||
|
|
var dt = BattleDramaController.getInstance().getModel().getDramaData();
|
||
|
|
if (dt.max_dun_id < dun) {
|
||
|
|
var cfg = game.configs.dungeon_data.data_drama_dungeon_info[dun];
|
||
|
|
return nx.text.format("LockMaxDun", cfg ? cfg.name : "");
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 等级条件
|
||
|
|
"lev": function lev(_val) {
|
||
|
|
var role = RoleController.getInstance().getRoleVo();
|
||
|
|
if (role && role.lev < _val) {
|
||
|
|
return nx.text.format("LockRoleLevel", _val);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 等级限制条件
|
||
|
|
"maxlev": function maxlev(_val) {
|
||
|
|
var role = RoleController.getInstance().getRoleVo();
|
||
|
|
if (role && role.lev >= _val) {
|
||
|
|
return nx.text.format("LockRoleMaxLevel", _val);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 关卡限制条件
|
||
|
|
"maxdun": function maxdun(_val) {
|
||
|
|
var dun = parseInt(_val) || 0;
|
||
|
|
var dt = BattleDramaController.getInstance().getModel().getDramaData();
|
||
|
|
if (dt.max_dun_id >= dun) {
|
||
|
|
var cfg = game.configs.dungeon_data.data_drama_dungeon_info[dun];
|
||
|
|
return nx.text.format("LockMaxDun", cfg ? cfg.name : "");
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 星级条件
|
||
|
|
"star": function star(_val) {
|
||
|
|
var bag = HeroController.getInstance().getModel();
|
||
|
|
if (bag) {
|
||
|
|
var partners = bag.getAllHeroArray();
|
||
|
|
var count = 0;
|
||
|
|
partners.forEach(function (_part) {
|
||
|
|
if (_part.star >= _val) {
|
||
|
|
count++;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
if (bag && count <= 0) {
|
||
|
|
return nx.text.format("LockHeroStar", _val);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 工会等级条件
|
||
|
|
"guild_lv": function guild_lv(_val) {
|
||
|
|
var role = RoleController.getInstance().getRoleVo();
|
||
|
|
if (role && role.guild_lev < _val) {
|
||
|
|
return nx.text.format("LockGuildLevel", _val);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 开服天数条件
|
||
|
|
"open_day": function open_day(_val) {
|
||
|
|
var role = RoleController.getInstance().getRoleVo();
|
||
|
|
if (role && role.open_day < _val) {
|
||
|
|
return nx.text.format("LockOpenDay", _val);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 世界等级条件
|
||
|
|
"world_lev": function world_lev(_val) {
|
||
|
|
var level = RoleController.getInstance().getModel().getWorldLev();
|
||
|
|
if (level < _val) {
|
||
|
|
return nx.text.format("LockWorldLevel", _val);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 待废弃:建筑条件
|
||
|
|
"building": function building(_val) {
|
||
|
|
nx.error("解锁判断: building条件需要重建,目前废弃!");
|
||
|
|
return;
|
||
|
|
},
|
||
|
|
// 引导忽略
|
||
|
|
"guide_close": function guide_close(_val) {
|
||
|
|
var closed = !nx.bridge.plot || !nx.bridge.plot.opened;
|
||
|
|
if (!!_val == closed) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
return nx.text.getKey("LockGuideIgnored");
|
||
|
|
},
|
||
|
|
// HOpen
|
||
|
|
"hopen": function hopen(_val) {
|
||
|
|
var open = nx.bridge.vget("HOpened");
|
||
|
|
var key = open ? 1 : 0;
|
||
|
|
if (key == _val) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
return nx.text.getKey("LockGuideHClose");
|
||
|
|
},
|
||
|
|
// 背包道具数量
|
||
|
|
"item": function item(_val) {
|
||
|
|
var tmp = "" + _val;
|
||
|
|
var arr = tmp.split("#");
|
||
|
|
var model = BackPackController.getInstance().getModel();
|
||
|
|
var count = model ? model.getBackPackItemNumByBid(arr[0]) : 0;
|
||
|
|
var need = arr[1] || 0;
|
||
|
|
if (count < need) {
|
||
|
|
return nx.text.getKey("LockItemCount");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
// 别名
|
||
|
|
CFMap["dungeon"] = CFMap["dun"];
|
||
|
|
CFMap["guild"] = CFMap["guild_lv"];
|
||
|
|
module.exports = {
|
||
|
|
CFMap: CFMap,
|
||
|
|
CKeys: CKeys
|
||
|
|
};
|
||
|
|
|
||
|
|
cc._RF.pop();
|