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