官渡之战模式允许同名替换

This commit is contained in:
Spmario233 2024-03-11 15:46:30 +08:00
parent 16146661b5
commit 548a1d3cc0
8 changed files with 156 additions and 59 deletions

View File

@ -7716,7 +7716,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
characterReplace:{
caoren:['caoren','old_caoren','sb_caoren','new_caoren'],
caoren:['caoren','old_caoren','sb_caoren','new_caoren','star_caoren'],
sp_caoren:['sp_caoren','jsp_caoren'],
xiahouyuan:['re_xiahouyuan','ol_xiahouyuan','xiahouyuan'],
huangzhong:['re_huangzhong','ol_huangzhong','sb_huangzhong','huangzhong','jsrg_huangzhong'],
@ -7731,7 +7731,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pangtong:['pangtong','ol_pangtong','re_pangtong','sb_pangtong'],
re_jsp_pangtong:['re_jsp_pangtong','jsrg_pangtong','sp_pangtong'],
taishici:['taishici','re_taishici','ol_sb_taishici'],
re_yuanshao:['re_yuanshao','ol_yuanshao','xin_yuanshao','ol_sb_yuanshao','sb_yuanshao'],
re_yuanshao:['re_yuanshao','ol_yuanshao','xin_yuanshao','ol_sb_yuanshao','star_yuanshao','sb_yuanshao'],
pangde:['re_pangde','ol_pangde','pangde'],
yanwen:['yanwen','ol_yanwen','re_yanwen'],
caopi:['caopi','re_caopi','ps_caopi','sb_caopi'],
@ -7740,7 +7740,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhurong:['zhurong','ol_zhurong','re_zhurong','sb_zhurong'],
sunjian:['sunjian','ol_sunjian','re_sunjian','tw_ol_sunjian'],
jiaxu:['jiaxu','re_jiaxu','ns_jiaxu','ps_jiaxu'],
dongzhuo:['dongzhuo','ol_dongzhuo','re_dongzhuo','sp_dongzhuo','yj_dongzhuo'],
dongzhuo:['dongzhuo','ol_dongzhuo','re_dongzhuo','star_dongzhuo','sp_dongzhuo','yj_dongzhuo'],
dengai:['dengai','ol_dengai','re_dengai'],
sp_ol_zhanghe:['sp_ol_zhanghe','yj_zhanghe','sp_zhanghe','jsrg_zhanghe'],
jiangwei:['jiangwei','ol_jiangwei','re_jiangwei','ol_sb_jiangwei','sb_jiangwei','jsrg_jiangwei'],

View File

@ -6510,7 +6510,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
characterReplace:{
wangcan:['wangcan','sp_wangcan','tw_wangcan'],
sunshao:['sunshao','sp_sunshao'],
xunchen:['xunchen','re_xunchen','sp_xunchen','tw_xunchen'],
xunchen:['xunchen','re_xunchen','sp_xunchen','tw_xunchen','clan_xunchen'],
xinpi:['xinpi','sp_xinpi'],
duyu:['duyu','dc_duyu','sp_duyu','pk_sp_duyu'],
zhangwen:['zhangwen','sp_zhangwen'],
@ -6524,7 +6524,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liuzhang:['liuzhang','tw_liuzhang'],
chenzhen:['sp_chenzhen','tw_chenzhen'],
feiyi:['ol_feiyi','feiyi','tw_feiyi'],
wangling:['dc_wangling','wangling','tw_wangling'],
wangling:['dc_wangling','wangling','tw_wangling','clan_wangling'],
qiaogong:['qiaogong','tw_qiaogong'],
sp_chendong:['sp_chendong','tw_chendong','chendong'],
sp_jiangqing:['sp_jiangqing','tw_jiangqing','jiangqing'],

View File

@ -26373,7 +26373,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunluyu:['sunluyu','re_sunluyu','mb_sunluyu'],
jin_simazhao:['jin_simazhao','simazhao','sp_simazhao'],
jin_wangyuanji:['jin_wangyuanji','wangyuanji','sp_wangyuanji'],
wangyun:['wangyun','dc_wangyun','re_wangyun','jsrg_wangyun','old_wangyun','pe_wangyun'],
wangyun:['clan_wangyun','wangyun','dc_wangyun','re_wangyun','jsrg_wangyun','old_wangyun','pe_wangyun'],
zhangliang:['xin_zhangliang','re_zhangliang','zhangliang'],
lingju:['lingju','old_lingju'],
guansuo:['guansuo','dc_guansuo'],

View File

@ -11053,7 +11053,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jin_simashi:['dc_simashi','jin_simashi','simashi'],
jin_yanghuiyu:['jin_yanghuiyu','yanghuiyu'],
taoqian:['re_taoqian','taoqian'],
sp_liubei:['jsrg_liubei','sp_liubei'],
jsp_liubei:['jsrg_liubei','jsp_liubei'],
dongcheng:['re_dongcheng','dongcheng'],
hucheer:['re_hucheer','hucheer','tw_hucheer'],
nanhualaoxian:['re_nanhualaoxian','nanhualaoxian','jsrg_nanhualaoxian'],

View File

@ -2360,7 +2360,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diaochan:['diaochan','re_diaochan','sb_diaochan'],
huatuo:['huatuo','re_huatuo','old_huatuo'],
huaxiong:['huaxiong','re_huaxiong','old_huaxiong','sb_huaxiong','ol_huaxiong'],
yuanshu:['yuanshu','re_yuanshu','yl_yuanshu','old_yuanshu','ol_yuanshu'],
yuanshu:['yuanshu','re_yuanshu','yl_yuanshu','old_yuanshu','ol_yuanshu','star_yuanshu'],
gongsunzan:['gongsunzan','re_gongsunzan','dc_gongsunzan','xin_gongsunzan'],
re_lidian:['re_lidian','old_re_lidian','junk_lidian'],
},

View File

@ -13961,7 +13961,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sundeng:['sundeng','re_sundeng','ns_sundeng'],
caiyong:['caiyong','re_caiyong'],
chengong:['chengong','re_chengong','sb_chengong'],
xunyou:['xunyou','re_xunyou'],
xunyou:['xunyou','re_xunyou','clan_xunyou'],
xuezong:['xuezong','tw_xuezong'],
huanghao:['huanghao','dc_huanghao','old_huanghao'],
caorui:['caorui','re_caorui','old_caorui'],
@ -13970,6 +13970,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhangsong:['zhangsong','re_zhangsong'],
zhongyao:['zhongyao','re_zhongyao'],
liwan:['ol_liwan','liwan'],
wuxian:['wuxian','clan_wuxian'],
},
translate:{
old_huaxiong:'将华雄',

View File

@ -3776,6 +3776,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jiachong:['dc_jiachong','jin_jiachong','jiachong'],
yangyan:['yangyan','old_yangyan'],
yangzhi:['yangzhi','old_yangzhi'],
zhongyan:['zhongyan','clan_zhongyan'],
},
translate:{
jin_zhangchunhua:'晋张春华',

View File

@ -2617,7 +2617,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var evt=evt_list[0],character=evt_list[1];
game.addGlobalSkill(evt);
var func=function(map,evt){
var func=function(map,evt,character){
for(var i in map){
var player=lib.playerOL[i];
if(player){
@ -2631,20 +2631,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
}
}
game.falseZhu.init('re_caocao');
game.trueZhu.init('ol_sb_yuanshao');
game.trueZhu.hp++;
game.trueZhu.maxHp++;
game.falseZhu.hp++;
game.falseZhu.maxHp++;
game.trueZhu.update();
game.falseZhu.update();
ui.arena.classList.add('choose-character');
if(evt=='shishengshibai'){
ui.guanduInfo=get.is.phoneLayout()?ui.create.div('.touchinfo.left',ui.window):ui.create.div(ui.gameinfo);
ui.guanduInfo.innerHTML='十胜十败0';
}
const showGuanduEvent=function(evt){
const showGuanduEvent=function(evt,character){
if(ui['GuanduEvent_'+evt]) return;
ui['GuanduEvent_'+evt]=ui.create.system(get.translation(evt),null,true);
lib.setPopped(ui['GuanduEvent_'+evt],function(){
@ -2660,10 +2652,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
for(const i in lib.playerOL){
const target=lib.playerOL[i];
if(target==game.me){
showGuanduEvent(evt);
showGuanduEvent(evt,character);
}
else if(target.isOnline2()){
target.send(showGuanduEvent,evt);
target.send(showGuanduEvent,evt,character);
}
}
if(lib.config.background_speak) game.playAudio('skill',evt);
@ -2674,26 +2666,94 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
dialog.close();
},5000)
};
game.broadcastAll(func,map,evt);
game.broadcastAll(func,map,evt,character);
_status.firstAct=game.falseZhu;
game.delay(0,5000);
"step 1"
event.falseList=['ol_xiahouyuan','litong','zangba','manchong','xunyu','re_guojia','re_zhangliao','xuhuang','caohong','jsp_guanyu','hanhaoshihuan','caoren','yujin','liuye','chengyu','xunyou','zhangxiu','sp_jiaxu'].filter(function(name){
if(!Array.isArray(lib.character[name])) return false;
lib.character[name][1]='wei';
return true;
game.falseZhu.chooseButtonOL([
[game.falseZhu,[
'请选择武将',
[['caocao'],'characterx'],
],true],
[game.trueZhu,[
'请选择武将',
[['re_yuanshao'],'characterx'],
],true]
],function(player,result){
if(game.online||player==game.me){
player.init(result.links[0]);
}
})
"step 2"
game.broadcastAll(function(result){
for(var i in result){
if(!lib.playerOL[i].name){
lib.playerOL[i].init(result[i].links[0]);
}
lib.playerOL[i].hp++;
lib.playerOL[i].maxHp++;
lib.playerOL[i].update();
}
},result);
"step 3"
event.falseList=['xiahouyuan','litong','zangba','manchong','xunyu','guojia','zhangliao','xuhuang','caohong','jsp_guanyu','hanhaoshihuan','caoren','yujin','liuye','chengyu','xunyou','zhangxiu','sp_jiaxu'].filter(function(name){
if(lib.characterReplace[name]){
let goon = false;
for(let i of lib.characterReplace[name]){
if(lib.character[i]){
lib.character[i][1] = 'wei';
goon = true;
}
}
return goon;
}
else if(lib.character[name]){
lib.character[name][1] = 'wei';
return true;
}
return false;
});
event.trueList=['xinping','hanmeng','gaogan','yuantanyuanshang','lvkuanglvxiang','xinpi','xunchen','sp_zhanghe','chenlin','re_liubei','yj_jushou','guotufengji','gaolan','sp_xuyou','tianfeng','chunyuqiong','sp_shenpei'].filter(function(name){
if(!Array.isArray(lib.character[name])) return false;
lib.character[name][1]='qun';
return true;
event.trueList=['xinping','hanmeng','gaogan','yuantanyuanshang','lvkuanglvxiang','xinpi','xunchen','sp_ol_zhanghe','chenlin','jsp_liubei','yj_jushou','guotufengji','gaolan','xuyou','tianfeng','chunyuqiong','shenpei'].filter(function(name){
if(lib.characterReplace[name]){
let goon = false;
for(let i of lib.characterReplace[name]){
if(lib.character[i]){
lib.character[i][1] = 'qun';
goon = true;
}
}
return goon;
}
else if(lib.character[name]){
lib.character[name][1] = 'qun';
return true;
}
return false;
});
game.broadcast(function(list1,list2){
while(list1.length){
lib.character[list1.shift()][1]='wei';
for(let name of list1){
if(lib.characterReplace[name]){
for(let i of lib.characterReplace[name]){
if(lib.character[i]){
lib.character[i][1] = 'wei';
}
}
}
else if(lib.character[name]){
lib.character[name][1] = 'wei';
}
}
while(list2.length){
lib.character[list2.shift()][1]='qun';
for(let name of list2){
if(lib.characterReplace[name]){
for(let i of lib.characterReplace[name]){
if(lib.character[i]){
lib.character[i][1] = 'qun';
}
}
}
else if(lib.character[name]){
lib.character[name][1] = 'qun';
}
}
},event.falseList,event.trueList);
event.map={};
@ -2702,7 +2762,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(current.identity=='zhong'){
var choice=event[current.side+'List'].randomRemove(2);
event.map[current.playerid]=choice;
list.push([current,['请选择武将',[choice,'character']],true]);
list.push([current,['请选择武将',[choice,'characterx']],true]);
}
});
game.me.chooseButtonOL(list,function(player,result){
@ -2710,16 +2770,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player.init(result.links[0]);
}
});
"step 2"
"step 4"
for(var i in result){
if(result[i]=='ai'){
result[i]=event.map[i].randomGet();
result[i]=event.map[i].randomRemove(1)[0];
}
else result[i]=result[i].links[0];
}
game.broadcastAll(function(result){
for(var i in result){
lib.playerOL[i].init(result[i]);
if(!lib.playerOL[i].name) lib.playerOL[i].init(result[i]);
}
setTimeout(function(){
ui.arena.classList.remove('choose-character');
@ -2733,14 +2793,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'step 0'
lib.init.onfree();
ui.arena.classList.add('choose-character');
game.falseZhu.init('re_caocao');
game.trueZhu.init('ol_sb_yuanshao');
game.trueZhu.hp++;
game.trueZhu.maxHp++;
game.falseZhu.hp++;
game.falseZhu.maxHp++;
game.trueZhu.update();
game.falseZhu.update();
var evt_list=[['huoshaowuchao','chunyuqiong'],['liangcaokuifa','sp_xuyou'],['zhanyanliangzhuwenchou','jsp_guanyu'],['shishengshibai','re_guojia'],['xutuhuanjin','yj_jushou'],['liangjunxiangchi','yj_jushou'],['jianshoudaiyuan','tianfeng'],['yiruoshengqiang','re_caocao'],['shichongerjiao','sp_xuyou']].randomGet();
var evt=evt_list[0],character=evt_list[1];
game.addGlobalSkill(evt);
@ -2767,25 +2819,68 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},evt);
game.me.chooseControl('ok').set('dialog',['###本局特殊事件:'+get.translation(evt)+'###'+get.translation(evt+'_info'),[[character],'character']]);
'step 1'
event.falseList=['ol_xiahouyuan','litong','zangba','manchong','xunyu','re_guojia','re_zhangliao','xuhuang','caohong','jsp_guanyu','hanhaoshihuan','caoren','yujin','liuye','chengyu','xunyou','zhangxiu','sp_jiaxu'].filter(function(name){
if(!Array.isArray(lib.character[name])) return false;
lib.character[name][1]='wei';
return true;
});
event.trueList=['xinping','hanmeng','gaogan','yuantanyuanshang','lvkuanglvxiang','xinpi','xunchen','sp_zhanghe','chenlin','re_liubei','yj_jushou','guotufengji','gaolan','sp_xuyou','tianfeng','chunyuqiong','sp_shenpei'].filter(function(name){
if(!Array.isArray(lib.character[name])) return false;
lib.character[name][1]='qun';
return true;
});
game.falseZhu.chooseButton(['请选择你的武将牌',[['caocao'],'characterx']],true);
'step 2'
event.falseZhu_choice = result.links[0];
game.trueZhu.chooseButton(['请选择你的武将牌',[['re_yuanshao'],'characterx']],true);
'step 3'
event.trueZhu_choice = result.links[0];
game.falseZhu.init(event.falseZhu_choice);
game.trueZhu.init(event.trueZhu_choice);
game.trueZhu.hp++;
game.trueZhu.maxHp++;
game.falseZhu.hp++;
game.falseZhu.maxHp++;
game.trueZhu.update();
game.falseZhu.update();
'step 4'
event.falseList=['xiahouyuan','litong','zangba','manchong','xunyu','guojia','zhangliao','xuhuang','caohong','jsp_guanyu','hanhaoshihuan','caoren','yujin','liuye','chengyu','xunyou','zhangxiu','sp_jiaxu'].filter(function(name){
if(lib.characterReplace[name]){
let goon = false;
for(let i of lib.characterReplace[name]){
if(lib.character[i]){
lib.character[i][1] = 'wei';
goon = true;
}
}
return goon;
}
else if(lib.character[name]){
lib.character[name][1] = 'wei';
return true;
}
return false;
});
event.trueList=['xinping','hanmeng','gaogan','yuantanyuanshang','lvkuanglvxiang','xinpi','xunchen','sp_ol_zhanghe','chenlin','jsp_liubei','yj_jushou','guotufengji','gaolan','xuyou','tianfeng','chunyuqiong','shenpei'].filter(function(name){
if(lib.characterReplace[name]){
let goon = false;
for(let i of lib.characterReplace[name]){
if(lib.character[i]){
lib.character[i][1] = 'qun';
goon = true;
}
}
return goon;
}
else if(lib.character[name]){
lib.character[name][1] = 'qun';
return true;
}
return false;
});
'step 5'
if(game.me.identity!='zhu'){
event.choose_me=true;
game.me.chooseButton(['请选择你的武将牌',[event[game.me.side+'List'].randomRemove(2),'character']],true);
game.me.chooseButton(['请选择你的武将牌',[event[game.me.side+'List'].randomRemove(2),'characterx']],true);
}
'step 3'
'step 6'
if(event.choose_me) game.me.init(result.links[0]);
game.countPlayer(function(current){
if(current!=game.me&&current.identity=='zhong') current.init(event[current.side+'List'].randomRemove(2)[0]);
if(current!=game.me&&current.identity=='zhong'){
let choice = event[current.side+'List'].randomRemove(2)[0];
if(lib.characterReplace[choice]) choice = lib.characterReplace[choice].randomGet();
current.init(choice);
}
});
setTimeout(function(){
ui.arena.classList.remove('choose-character');