v1.9.94.3(Part 3)
This commit is contained in:
parent
d48e6bf358
commit
6003184bc7
191
mode/guozhan.js
191
mode/guozhan.js
|
@ -209,6 +209,84 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
derivation:'guozhan',
|
||||
},
|
||||
},
|
||||
aozhanRank:{
|
||||
'8':[],
|
||||
'7':[],
|
||||
'6':[],
|
||||
'5':[
|
||||
'gz_lukang','gz_caoren','gz_lvfan',
|
||||
'gz_machao','gz_ganfuren','gz_madai',
|
||||
'gz_jiling','gz_pangde',
|
||||
],
|
||||
'4':[
|
||||
'gz_re_lidian','gz_yuejin','gz_huangzhong',
|
||||
'gz_menghuo','gz_sunshangxiang','gz_lvmeng',
|
||||
'gz_lvbu',
|
||||
],
|
||||
'3':[
|
||||
'gz_simayi','gz_luxun','gz_wuguotai',
|
||||
'gz_caiwenji',
|
||||
],
|
||||
'2':[
|
||||
'gz_re_lusu','gz_zhangzhang',
|
||||
],
|
||||
'1':[
|
||||
'gz_caocao','gz_guojia','gz_xiahoudun',
|
||||
'gz_xunyu','gz_caopi','gz_liubei',
|
||||
'gz_fazheng','gz_dongzhuo','gz_yuji',
|
||||
'gz_liqueguosi','gz_huanggai',
|
||||
],
|
||||
},
|
||||
guozhanRank:{
|
||||
'8':[
|
||||
'gz_xunyou','gz_re_lidian','gz_caopi',
|
||||
'gz_shamoke','gz_lifeng','gz_wangping',
|
||||
'gz_xiaoqiao','gz_zhoutai','gz_lvfan',
|
||||
'gz_beimihu','gz_mateng','gz_jiaxu',
|
||||
],
|
||||
'7':[
|
||||
'gz_zhanghe','gz_jianggan','gz_simayi',
|
||||
'gz_weiyan','gz_huangyueying','gz_zhugeliang',
|
||||
'gz_lingtong','gz_sunshangxiang','gz_sunce',
|
||||
'gz_re_yuanshao','gz_yuanshu','gz_hetaihou',
|
||||
],
|
||||
'6':[
|
||||
'gz_zhenji','gz_guojia','gz_yujin',
|
||||
'gz_jiangwei','gz_zhangfei','gz_sp_zhugeliang',
|
||||
'gz_zhouyu','gz_lingcao','gz_daqiao',
|
||||
'gz_yuji','gz_caiwenji','gz_diaochan',
|
||||
],
|
||||
'5':[
|
||||
'gz_zhangliao','gz_caocao','gz_xuhuang',
|
||||
'gz_liushan','gz_pangtong','gz_zhaoyun',
|
||||
'gz_re_lusu','gz_sunquan','gz_ganning',
|
||||
'gz_zhangxiu','gz_liqueguosi','gz_huatuo',
|
||||
],
|
||||
'4':[
|
||||
'gz_dianwei','gz_dengai','gz_xunyu',
|
||||
'gz_madai','gz_liubei','gz_mifuren',
|
||||
'gz_wuguotai','gz_luxun','gz_taishici',
|
||||
'gz_zhangjiao','gz_zuoci','gz_pangde',
|
||||
],
|
||||
'3':[
|
||||
'gz_xiahoudun','gz_yuejin','gz_caoren',
|
||||
'gz_machao','gz_masu','gz_fazheng',
|
||||
'gz_zhangzhang','gz_lvmeng','gz_huanggai',
|
||||
'gz_jiling','gz_lvbu','gz_dongzhuo',
|
||||
],
|
||||
'2':[
|
||||
'gz_cuimao','gz_xiahouyuan','gz_caohong',
|
||||
'gz_zhurong','gz_zhurong','gz_jiangfei',
|
||||
'gz_xusheng','gz_dingfeng','gz_sunjian',
|
||||
'gz_zhangren','gz_kongrong','gz_yanwen',
|
||||
],
|
||||
'1':[
|
||||
'gz_zangba','gz_bianfuren','gz_xuzhu',
|
||||
'gz_menghuo','gz_ganfuren','gz_guanyu',
|
||||
'gz_lukang','gz_jiangqing','gz_chendong',
|
||||
'gz_zoushi','gz_panfeng','gz_tianfeng',
|
||||
],
|
||||
},
|
||||
characterSort:{
|
||||
mode_guozhan:{
|
||||
guozhan_default:["gz_caocao","gz_simayi","gz_xiahoudun","gz_zhangliao","gz_xuzhu","gz_guojia","gz_zhenji","gz_xiahouyuan","gz_zhanghe","gz_xuhuang","gz_caoren","gz_dianwei","gz_xunyu","gz_caopi","gz_yuejin","gz_liubei","gz_guanyu","gz_zhangfei","gz_zhugeliang","gz_zhaoyun","gz_machao","gz_huangyueying","gz_huangzhong","gz_weiyan","gz_pangtong","gz_sp_zhugeliang","gz_liushan","gz_menghuo","gz_zhurong","gz_ganfuren","gz_sunquan","gz_ganning","gz_lvmeng","gz_huanggai","gz_zhouyu","gz_daqiao","gz_luxun","gz_sunshangxiang","gz_sunjian","gz_xiaoqiao","gz_taishici","gz_zhoutai","gz_re_lusu","gz_zhangzhang","gz_dingfeng","gz_huatuo","gz_lvbu","gz_diaochan","gz_re_yuanshao","gz_yanwen","gz_jiaxu","gz_pangde","gz_zhangjiao","gz_caiwenji","gz_mateng","gz_kongrong","gz_jiling","gz_tianfeng","gz_panfeng","gz_zoushi",],
|
||||
|
@ -1023,8 +1101,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
global:'g_jianan',
|
||||
},
|
||||
g_jianan:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
filter:function(event,player){
|
||||
trigger:{player:['phaseBegin','phaseBefore','dieBegin']},
|
||||
filter:function(event,player,name){
|
||||
if(name!='phaseBegin') return get.is.jun(player)&&player.identity=='wei';
|
||||
return this.filter2.apply(this,arguments);
|
||||
},
|
||||
filter2:function(event,player){
|
||||
if(!get.zhu(player,'jianan')) return false;
|
||||
if(!player.countCards('he')) return false;
|
||||
if(get.is.jun(player)&&player.isUnseen(1)) return false;
|
||||
|
@ -1033,6 +1115,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(event.triggername!='phaseBegin'){
|
||||
event.trigger('jiananUpdate');
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
var skills=['new_retuxi','qiaobian','gzxiaoguo','gzjieyue','new_duanliang'];
|
||||
game.countPlayer(function(current){
|
||||
if(current==player) return;
|
||||
|
@ -1046,11 +1133,28 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
else{
|
||||
event.skills=skills;
|
||||
var next=player.chooseToDiscard();
|
||||
next.prompt='是否弃置一张牌并发动【五子良将纛】?'
|
||||
next.prompt2=get.translation('wuziliangjiangdao_info');
|
||||
var str='';
|
||||
for(var i=0;i<skills.length;i++){
|
||||
str+='、【';
|
||||
str+=get.translation(skills[i]);
|
||||
str+='】';
|
||||
}
|
||||
next.prompt='是否发动【五子良将纛】?'
|
||||
next.prompt2=get.translation('弃置一张牌并暗置一张武将牌,获得以下技能中的一个直到下回合开始:'+str.slice(1));
|
||||
next.logSkill='g_jianan';
|
||||
next.skills=skills;
|
||||
next.ai=function(card){
|
||||
var skills=_status.event.skills;
|
||||
var player=_status.event.player;
|
||||
var rank=0;
|
||||
if(skills.contains('new_retuxi')&&game.countPlayer(function(current){
|
||||
return get.attitude(player,current)<0&¤t.countGainableCards(player,'h')
|
||||
})>1) rank=4;
|
||||
if(skills.contains('gzjieyue')&&player.countCards('h',function(card){
|
||||
return get.value(card)<7;
|
||||
})>1) rank=5;
|
||||
if(skills.contains('qiaobian')&&player.countCards('h')>4) rank=6;
|
||||
if((get.guozhanRank(player.name1)<rank&&!player.isUnseen(0))||(get.guozhanRank(player.name2)<rank&&!player.isUnseen(1))) return rank+1-get.value(card);
|
||||
return -1;
|
||||
};
|
||||
}
|
||||
|
@ -1063,7 +1167,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
if(!list.length) event.finish();
|
||||
else if(list.length<2) event._result={control:list[0]};
|
||||
else{
|
||||
player.chooseControl(list).prompt="请选择暗置一张武将牌";
|
||||
player.chooseControl(list).set('ai',function(){
|
||||
return get.guozhanRank(player.name1)<get.guozhanRank(player.name2)?'主将':'副将';
|
||||
}).prompt="请选择暗置一张武将牌";
|
||||
}
|
||||
}
|
||||
'step 2'
|
||||
|
@ -1071,12 +1177,20 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
else{
|
||||
var num=result.control=='主将'?0:1;
|
||||
player.hideCharacter(num);
|
||||
player.chooseControl(event.skills).prompt="选择获得其中的一个技能直到下回合开始";
|
||||
player.chooseControl(event.skills).set('ai',function(){
|
||||
var skills=event.skills;
|
||||
if(skills.contains('qiaobian')&&player.countCards('h')>3) return 'qiaobian';
|
||||
if(skills.contains('gzjieyue')&&player.countCards('h',function(card){
|
||||
return get.value(card)<7;
|
||||
})) return 'gzjieyue';
|
||||
if(skills.contains('new_retuxi')) return 'new_retuxi';
|
||||
return skills.randomGet();
|
||||
}).prompt="选择获得其中的一个技能直到下回合开始";
|
||||
}
|
||||
'step 3'
|
||||
var link=result.control;
|
||||
player.addTempSkill(link,{player:"phaseBefore"});
|
||||
player.addTempSkill("jianan_eff",{player:"phaseBefore"});
|
||||
player.addTempSkill(link,"jiananUpdate");
|
||||
player.addTempSkill("jianan_eff","jiananUpdate");
|
||||
game.log(player,"获得了技能","#g【"+get.translation(result.control)+"】");
|
||||
},
|
||||
},
|
||||
|
@ -4069,8 +4183,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
var shunshou=false;
|
||||
var guohe=false;
|
||||
var juedou=false;
|
||||
var huoshao=false;
|
||||
for(var i=0;i<players.length;i++){
|
||||
if(!players[i].isOut()){
|
||||
if(player.canUse('huoshaolianying',players[i])&&get.attitude(player,players[i])<0&&get.effect(players[i],{name:'huoshaolianying'})>0) huoshao=true;
|
||||
if(players[i].hp==1&&get.damageEffect(players[i],player,player)>0&&!players[i].hasSha()){
|
||||
juedou=true;
|
||||
}
|
||||
|
@ -4082,10 +4198,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
}
|
||||
if(huoshao&&button.link[2]=='huoshaolianying') return 3.5;
|
||||
if(juedou&&button.link[2]=='juedou') return 3;
|
||||
if(guohe&&button.link[2]=='guohe') return 2;
|
||||
if(shunshou&&button.link[2]=='shunshou') return 1.5;
|
||||
if(button.link[2]=='wuzhong') return 1;
|
||||
if(button.link[2]=='wuzhong'||button.link[2]=='yuanjiao') return 1;
|
||||
return 0;
|
||||
},
|
||||
backup:function(links,player){
|
||||
|
@ -4134,7 +4251,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
for(var i=0;i<cards.length;i++){
|
||||
num+=Math.max(0,get.value(cards[i],player,'raw'));
|
||||
}
|
||||
return 12-num;
|
||||
return 16-num;
|
||||
}
|
||||
},
|
||||
threaten:1.6,
|
||||
|
@ -6582,7 +6699,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
for(var i=0;i<list.length-1;i++){
|
||||
for(var j=i+1;j<list.length;j++){
|
||||
if(lib.character[list[i]][1]==lib.character[list[j]][1]){
|
||||
player.init(list[i],list[j],false);
|
||||
var mainx=list[i];
|
||||
var vicex=list[j];
|
||||
if(get.guozhanReverse(mainx,vicex)){
|
||||
mainx=list[j];
|
||||
vicex=list[i];
|
||||
}
|
||||
player.init(mainx,vicex,false);
|
||||
if(back){
|
||||
list.remove(player.name);
|
||||
list.remove(player.name2);
|
||||
|
@ -6925,9 +7048,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
for(var i=0;i<buttons.length-1;i++){
|
||||
for(var j=i+1;j<buttons.length;j++){
|
||||
if(lib.character[buttons[i].link][1]==lib.character[buttons[j].link][1]){
|
||||
var list=[buttons[i].link,buttons[j].link];
|
||||
if(get.guozhanReverse(list[0],list[1])) list.reverse();
|
||||
return {
|
||||
bool:true,
|
||||
links:[buttons[i].link,buttons[j].link]
|
||||
links:list,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7042,7 +7167,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
tongshimingzhi:'同时明置',
|
||||
mode_guozhan_character_config:'国战武将',
|
||||
_zhenfazhaohuan:'阵法召唤',
|
||||
_zhenfazhaohuan_info:'由拥有阵法技的角色发起,满足此阵法技条件的未确定势力角色均可按逆时针顺序一次明置其一张武将牌(响应阵法召唤),以发挥阵法技的效果',
|
||||
_zhenfazhaohuan_info:'由拥有阵法技的角色发起,满足此阵法技条件的未确定势力角色均可按逆时针顺序依次明置其一张武将牌(响应阵法召唤),以发挥阵法技的效果',
|
||||
|
||||
|
||||
junling:'军令',
|
||||
|
@ -7057,7 +7182,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
junling3_info:'若被执行,执行者失去一点体力。',
|
||||
junling4:'军令四',
|
||||
junling4_bg:'令',
|
||||
junling4_info:'若被执行,直到回合结束,执行者不能使用或打出手牌。',
|
||||
junling4_info:'若被执行,直到回合结束,执行者不能使用或打出手牌且非锁定技全部失效。',
|
||||
junling4_eff:'军令四',
|
||||
junling5:'军令五',
|
||||
junling5_bg:'令',
|
||||
|
@ -7109,7 +7234,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
wuziliangjiangdao:'五子良将纛',
|
||||
wuziliangjiangdao_ab:'将纛',
|
||||
wuziliangjiangdao_bg:'纛',
|
||||
wuziliangjiangdao_info:'魏势力角色的准备阶段开始时,其可以弃置一张牌。若如此做,其选择一张暗置的武将牌(若没有,则选择一张暗置),然后获得下列技能中的一项(其他角色已有的技能无法选择)且不能明置选择的武将牌直到其的下个回合开始:“突袭”,“巧变”,“骁果”,“节钺”,“断粮”。',
|
||||
wuziliangjiangdao_info:'魏势力角色的准备阶段开始时,其可以弃置一张牌。若如此做,其选择一张暗置的武将牌(若没有,则选择一张暗置),然后获得下列技能中的一项(其他角色已有的技能无法选择)且不能明置选择的武将牌直到你的下个回合开始:“突袭”,“巧变”,“骁果”,“节钺”,“断粮”。',
|
||||
huibian:'挥鞭',
|
||||
huibian_info:'出牌阶段限一次,你可以选择一名魏势力角色和另一名已受伤的魏势力角色。若如此做,你对前者造成一点伤害,然后其摸两张牌,然后后者回复一点体力。',
|
||||
gzzongyu:'总御',
|
||||
|
@ -7188,9 +7313,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
"new_jieming_info":"当你受到伤害后,你可以令一名角色将手牌摸至X张(X为其体力上限且最多为5)。",
|
||||
"new_fangzhu":"放逐",
|
||||
"new_fangzhu_info":"当你受到伤害后,你可以令一名其他角色选择一项:摸X张牌并将武将牌叠置(X为你已损失的体力值);弃置一张牌并失去1点体力。",
|
||||
"fengyin_main":"铁骑[主将]",
|
||||
"fengyin_main":"封印[主将]",
|
||||
"fengyin_main_info":"",
|
||||
"fengyin_vice":"铁骑[副将]",
|
||||
"fengyin_vice":"封印[副将]",
|
||||
"fengyin_vice_info":"",
|
||||
"new_tieji":"铁骑",
|
||||
"new_tieji_info":"当你使用【杀】指定一个目标后,你可以令其本回合一张明置的武将牌的非锁定技失效,然后你进行判定,除非该角色弃置与结果花色相同的一张牌,否则不能使用【闪】。",
|
||||
|
@ -7600,7 +7725,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
case 'junling2':player.draw();event.num=1;break;
|
||||
case 'junling3':player.loseHp();break;
|
||||
case 'junling4':player.addTempSkill('junling4_eff');break;
|
||||
case 'junling4':player.addTempSkill('junling4_eff');player.addTempSkill('fengyin_vice');player.addTempSkill('fengyin_main');break;
|
||||
case 'junling5':player.turnOver();player.addTempSkill('junling5_eff');break;
|
||||
}
|
||||
'step 1'
|
||||
|
@ -7658,7 +7783,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
if(!event.tochange.length) event.finish();
|
||||
else{
|
||||
player.chooseButton(true,['选择要变更的武将牌',[event.tochange,'character']]);
|
||||
player.chooseButton(true,['选择要变更的武将牌',[event.tochange,'character']]).ai=function(button){
|
||||
return get.guozhanRank(button.link);
|
||||
};
|
||||
}
|
||||
//}
|
||||
'step 1'
|
||||
|
@ -7676,7 +7803,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
mayChangeVice:function(){
|
||||
'step 0'
|
||||
player.chooseBool('是否变更副将?').set('ai',function(){
|
||||
return get.rank(_status.event.player.name2,true)<=5;
|
||||
var name=player.name2;
|
||||
var skills=lib.character[name][3].slice(0);
|
||||
for(var i=0;i<skills.length;i++){
|
||||
if(lib.skill[skills[i]].limited&&player.awakenedSkills.contains(skills[i])) return true;
|
||||
}
|
||||
return get.guozhanRank(name)<=3;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
|
@ -8305,6 +8437,25 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
get:{
|
||||
guozhanReverse:function(name1,name2){
|
||||
if(['gz_xunyou','gz_lvfan'].contains(name2)) return true;
|
||||
if(name2=='gz_dengai') return lib.character[name1][2]%2==1;
|
||||
if(['gz_sunce','gz_jiangwei'].contains(name1)) return name2=='gz_zhoutai'||lib.character[name2][2]%2==1;
|
||||
return false;
|
||||
},
|
||||
guozhanRank:function(name){
|
||||
if(name.indexOf('gz_shibing')==0) return -1;
|
||||
if(name.indexOf('gz_jun_')==0) return 7;
|
||||
if(_status._aozhan){
|
||||
for(var i in lib.aozhanRank){
|
||||
if(lib.aozhanRank[i].contains(name)) return parseInt(i);
|
||||
}
|
||||
}
|
||||
for(var i in lib.guozhanRank){
|
||||
if(lib.guozhanRank[i].contains(name)) return parseInt(i);
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
junlingEffect:function(source,junling,performer,targets,viewer){
|
||||
var att1=get.attitude(viewer,source),att2=get.attitude(viewer,performer);
|
||||
var eff1=0,eff2=0;
|
||||
|
|
Loading…
Reference in New Issue