Files

135 lines
3.9 KiB
JavaScript
Raw Permalink Normal View History

2026-05-24 10:21:26 +08:00
"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();