Kuu-chan~
|
@ -583,7 +583,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
save:true,
|
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
respondShan:true,
|
respondShan:true,
|
||||||
skillTagFilter:function(player,tag){
|
skillTagFilter:function(player,tag){
|
||||||
|
@ -593,13 +592,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
switch(tag){
|
switch(tag){
|
||||||
case 'respondSha':if(muniu.cards[i].name=='sha') return true;break;
|
case 'respondSha':if(muniu.cards[i].name=='sha') return true;break;
|
||||||
case 'respondShan':if(muniu.cards[i].name=='shan') return true;break;
|
case 'respondShan':if(muniu.cards[i].name=='shan') return true;break;
|
||||||
case 'save':{
|
|
||||||
if(muniu.cards[i].name=='tao'||muniu.cards[i].name=='spell_zhiliaoshui') return true;
|
|
||||||
if(player==_status.event.dying){
|
|
||||||
if(muniu.cards[i].name=='jiu'||muniu.cards[i].name=='tianxianjiu') return true;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -2013,8 +2013,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player:1,
|
player:1,
|
||||||
},
|
},
|
||||||
save:true,
|
save:true,
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player,tag,target){
|
||||||
return player.isDying();
|
return player==target;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -2087,12 +2087,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
result:0.5,
|
result:0.5,
|
||||||
save:true,
|
|
||||||
skillTagFilter:function(player){
|
|
||||||
return !player.hasJudge('lebu')&&player.countCards('he',function(card){
|
|
||||||
return get.color(card)=='red'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
misuzu_zhongxing:{
|
misuzu_zhongxing:{
|
||||||
|
@ -2730,7 +2724,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
respondShan:true,
|
respondShan:true,
|
||||||
save:true,
|
|
||||||
skillTagFilter:function(player,tag){
|
skillTagFilter:function(player,tag){
|
||||||
if(player.hasSkill('shizuru_nianli_round')) return false;
|
if(player.hasSkill('shizuru_nianli_round')) return false;
|
||||||
var name;
|
var name;
|
||||||
|
@ -2762,7 +2755,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
hiddenCard:function(player,name){
|
hiddenCard:function(player,name){
|
||||||
return name=='wuxie'&&player.countCards('h',{suit:'spade'})>0&&!player.hasSkill('shizuru_nianli_round');
|
if(name=='wuxie') return player.countCards('h',function(card){
|
||||||
|
return _status.connectMode||get.suit(card)=='spade';
|
||||||
|
})>0&&!player.hasSkill('shizuru_nianli_round');
|
||||||
|
if(name=='tao') return player.countCards('h',{suit:'heart'})>0&&!player.hasSkill('shizuru_nianli_round');
|
||||||
|
return false;
|
||||||
},
|
},
|
||||||
group:'shizuru_nianli_clear',
|
group:'shizuru_nianli_clear',
|
||||||
subSkill:{
|
subSkill:{
|
||||||
|
@ -3415,6 +3412,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.markAuto('ao_diegui',result.links);
|
player.markAuto('ao_diegui',result.links);
|
||||||
game.log(result.links,'飞向了',player);
|
game.log(result.links,'飞向了',player);
|
||||||
}
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 3'
|
||||||
|
game.delayx();
|
||||||
},
|
},
|
||||||
locked:false,
|
locked:false,
|
||||||
mod:{
|
mod:{
|
||||||
|
@ -4619,6 +4619,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
inari_baiwei:{
|
inari_baiwei:{
|
||||||
enable:['chooseToUse','chooseToRespond'],
|
enable:['chooseToUse','chooseToRespond'],
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
return name!='du'&&get.type(name)=='basic'&&player.countCards('he',{suit:'diamond'})>0;
|
||||||
|
},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(event.type=='wuxie'||!player.countCards('he',{suit:'diamond'})) return false;
|
if(event.type=='wuxie'||!player.countCards('he',{suit:'diamond'})) return false;
|
||||||
for(var i=0;i<lib.inpile.length;i++){
|
for(var i=0;i<lib.inpile.length;i++){
|
||||||
|
@ -4695,7 +4698,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
result:{
|
result:{
|
||||||
player:1,
|
player:1,
|
||||||
},
|
},
|
||||||
save:true,
|
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
fireAttack:true,
|
fireAttack:true,
|
||||||
skillTagFilter:function(player,tag){
|
skillTagFilter:function(player,tag){
|
||||||
|
@ -5915,8 +5917,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
order:10,
|
order:10,
|
||||||
save:true,
|
save:true,
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player,tag,target){
|
||||||
return player.isDying();
|
return player==target;
|
||||||
},
|
},
|
||||||
result:{
|
result:{
|
||||||
player:1,
|
player:1,
|
||||||
|
@ -6217,10 +6219,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
usedu:true,
|
usedu:true,
|
||||||
save:true,
|
|
||||||
skillTagFilter:function(player,tag){
|
|
||||||
if(tag=='save'&&(!player.isDying()||player.hasSkill('lucia_duqu_terra'))) return false;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
subSkill:{terra:{sub:true}}
|
subSkill:{terra:{sub:true}}
|
||||||
},
|
},
|
||||||
|
|
|
@ -2590,7 +2590,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
maixie:true,
|
maixie:true,
|
||||||
save:true,
|
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
respondShan:true,
|
respondShan:true,
|
||||||
effect:{
|
effect:{
|
||||||
|
@ -2621,7 +2620,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return Math.max(1,_status.event.player.hp);
|
return Math.max(1,_status.event.player.hp);
|
||||||
},
|
},
|
||||||
viewAs:{name:'tao'},
|
viewAs:{name:'tao'},
|
||||||
filter:function(event,player){
|
viewAsFilter:function(player){
|
||||||
return player.countCards('he',{suit:'heart'})>=player.hp;
|
return player.countCards('he',{suit:'heart'})>=player.hp;
|
||||||
},
|
},
|
||||||
filterCard:function(card){
|
filterCard:function(card){
|
||||||
|
@ -2643,7 +2642,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return Math.max(1,_status.event.player.hp);
|
return Math.max(1,_status.event.player.hp);
|
||||||
},
|
},
|
||||||
viewAs:{name:'sha',nature:'fire'},
|
viewAs:{name:'sha',nature:'fire'},
|
||||||
filter:function(event,player){
|
viewAsFilter:function(player){
|
||||||
return player.countCards('he',{suit:'diamond'})>=player.hp;
|
return player.countCards('he',{suit:'diamond'})>=player.hp;
|
||||||
},
|
},
|
||||||
filterCard:function(card){
|
filterCard:function(card){
|
||||||
|
@ -2798,8 +2797,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
respondShan:true,
|
respondShan:true,
|
||||||
save:true,
|
//让系统知道角色“有杀”“有闪”
|
||||||
//让系统知道角色“有杀”“有闪”“有桃”
|
|
||||||
skillTagFilter:function(player,tag){
|
skillTagFilter:function(player,tag){
|
||||||
var name;
|
var name;
|
||||||
switch(tag){
|
switch(tag){
|
||||||
|
@ -2830,9 +2828,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return 2;
|
return 2;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
//让系统知道玩家“有无懈”
|
//让系统知道玩家“有无懈”“有桃”
|
||||||
hiddenCard:function(player,name){
|
hiddenCard:function(player,name){
|
||||||
return name=='wuxie'&&player.countCards('he',{suit:'spade'})>0;
|
if(name=='wuxie'&&_status.connectMode&&player.countCards('h')>0) return true;
|
||||||
|
if(name=='wuxie') return player.countCards('he',{suit:'spade'})>0;
|
||||||
|
if(name=='tao') return player.countCards('he',{suit:'heart'})>0;
|
||||||
},
|
},
|
||||||
group:['xinlonghun_num','xinlonghun_discard'],
|
group:['xinlonghun_num','xinlonghun_discard'],
|
||||||
},
|
},
|
||||||
|
@ -2855,7 +2855,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
save:true,
|
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
respondShan:true,
|
respondShan:true,
|
||||||
threaten:1.8
|
threaten:1.8
|
||||||
|
|
|
@ -1033,8 +1033,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
save:true,
|
save:true,
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player,arg,target){
|
||||||
return player.hp<=0;
|
return player==target;
|
||||||
},
|
},
|
||||||
result:{
|
result:{
|
||||||
player:10
|
player:10
|
||||||
|
@ -3972,6 +3972,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
onremove:function(p,s){
|
onremove:function(p,s){
|
||||||
delete p.storage[s+1];
|
delete p.storage[s+1];
|
||||||
},
|
},
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
return ['sha','tao','jiu'].contains(name)&&player.countCards('h',{type:'basic'})>0;
|
||||||
|
},
|
||||||
enable:"chooseToUse",
|
enable:"chooseToUse",
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(event.filterCard({name:'sha'},player,event)||
|
if(event.filterCard({name:'sha'},player,event)||
|
||||||
|
@ -4046,7 +4049,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
return 3.1;
|
return 3.1;
|
||||||
},
|
},
|
||||||
save:true,
|
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
skillTagFilter:function(player,tag,arg){
|
skillTagFilter:function(player,tag,arg){
|
||||||
if(player.hasCard(function(card){
|
if(player.hasCard(function(card){
|
||||||
|
@ -4787,6 +4789,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:"已发动过#次",
|
content:"已发动过#次",
|
||||||
},
|
},
|
||||||
enable:["chooseToUse","chooseToRespond"],
|
enable:["chooseToUse","chooseToRespond"],
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
if(!['sha','shan','tao','jiu'].contains(name)) return false;
|
||||||
|
if(!player.storage.yizan&&player.countCards('he')<2) return false;
|
||||||
|
return player.hasCard(function(card){
|
||||||
|
return get.type(card)=='basic';
|
||||||
|
},'h');
|
||||||
|
},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(!player.storage.yizan&&player.countCards('he')<2) return false;
|
if(!player.storage.yizan&&player.countCards('he')<2) return false;
|
||||||
if(event.filterCard({name:'sha'},player,event)||
|
if(event.filterCard({name:'sha'},player,event)||
|
||||||
|
@ -4881,7 +4890,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
return 3.1;
|
return 3.1;
|
||||||
},
|
},
|
||||||
save:true,
|
|
||||||
skillTagFilter:function(player,tag,arg){
|
skillTagFilter:function(player,tag,arg){
|
||||||
if(tag=='fireAttack') return true;
|
if(tag=='fireAttack') return true;
|
||||||
if(!player.storage.yizan&&player.countCards('he')<2) return false;
|
if(!player.storage.yizan&&player.countCards('he')<2) return false;
|
||||||
|
@ -4992,9 +5000,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:0.5,
|
order:0.5,
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player,arg,target){
|
||||||
if(player.hp>0) return false;
|
if(player!=target) return false;
|
||||||
return player.countCards('he',function(card){
|
return player.countCards('he',function(card){
|
||||||
|
if(_status.connectMode&&get.position(card)=='h') return true;
|
||||||
return get.subtype(card)=='equip2';
|
return get.subtype(card)=='equip2';
|
||||||
})>0;
|
})>0;
|
||||||
},
|
},
|
||||||
|
@ -6137,7 +6146,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
save:true,
|
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
respondShan:true,
|
respondShan:true,
|
||||||
skillTagFilter:function(player,tag){
|
skillTagFilter:function(player,tag){
|
||||||
|
@ -6146,13 +6154,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
switch(tag){
|
switch(tag){
|
||||||
case 'respondSha':if(gnjinfan[i].name=='sha') return true;break;
|
case 'respondSha':if(gnjinfan[i].name=='sha') return true;break;
|
||||||
case 'respondShan':if(gnjinfan[i].name=='shan') return true;break;
|
case 'respondShan':if(gnjinfan[i].name=='shan') return true;break;
|
||||||
case 'save':{
|
|
||||||
if(gnjinfan[i].name=='tao'||gnjinfan[i].name=='spell_zhiliaoshui') return true;
|
|
||||||
if(player==_status.event.dying){
|
|
||||||
if(gnjinfan[i].name=='jiu'||gnjinfan[i].name=='tianxianjiu') return true;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -727,11 +727,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
group:'decadechunlao2',
|
group:'decadechunlao2',
|
||||||
ai:{
|
ai:{
|
||||||
save:true,
|
|
||||||
jiuOther:true,
|
jiuOther:true,
|
||||||
skillTagFilter:function(player,tag){
|
|
||||||
if(tag=='save') return !player.isLinked();
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
decadechunlao2:{
|
decadechunlao2:{
|
||||||
|
@ -1500,6 +1496,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ollongdan:{
|
ollongdan:{
|
||||||
audio:'longdan_sha',
|
audio:'longdan_sha',
|
||||||
audioname:['re_zhaoyun'],
|
audioname:['re_zhaoyun'],
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
if(name=='tao') return player.countCards('h','jiu')>0;
|
||||||
|
if(name=='jiu') return player.countCards('h','tao')>0;
|
||||||
|
return false;
|
||||||
|
},
|
||||||
enable:['chooseToUse','chooseToRespond'],
|
enable:['chooseToUse','chooseToRespond'],
|
||||||
prompt:'将杀当做闪,或将闪当做杀,或将桃当做酒,或将酒当做桃使用或打出',
|
prompt:'将杀当做闪,或将闪当做杀,或将桃当做酒,或将酒当做桃使用或打出',
|
||||||
viewAs:function(cards,player){
|
viewAs:function(cards,player){
|
||||||
|
@ -1556,13 +1557,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
respondShan:true,
|
respondShan:true,
|
||||||
save:true,
|
|
||||||
skillTagFilter:function(player,tag){
|
skillTagFilter:function(player,tag){
|
||||||
var name;
|
var name;
|
||||||
switch(tag){
|
switch(tag){
|
||||||
case 'respondSha':name='shan';break;
|
case 'respondSha':name='shan';break;
|
||||||
case 'respondShan':name='sha';break;
|
case 'respondShan':name='sha';break;
|
||||||
case 'save':name='jiu';break;
|
|
||||||
}
|
}
|
||||||
if(!player.countCards('h',name)) return false;
|
if(!player.countCards('h',name)) return false;
|
||||||
},
|
},
|
||||||
|
@ -2259,6 +2258,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
rejiushi1:{
|
rejiushi1:{
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
if(name=='jiu') return !player.isTurnedOver();
|
||||||
|
return false;
|
||||||
|
},
|
||||||
audio:'rejiushi',
|
audio:'rejiushi',
|
||||||
enable:'chooseToUse',
|
enable:'chooseToUse',
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
|
@ -2274,10 +2277,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.useCard({name:'jiu',isCard:true},player);
|
player.useCard({name:'jiu',isCard:true},player);
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
save:true,
|
|
||||||
skillTagFilter:function(player){
|
|
||||||
return player.hp<=0&&!player.isTurnedOver();
|
|
||||||
},
|
|
||||||
order:5,
|
order:5,
|
||||||
result:{
|
result:{
|
||||||
player:function(player){
|
player:function(player){
|
||||||
|
@ -2549,9 +2548,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:1,
|
order:1,
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player,tag,target){
|
||||||
if(player.storage.olniepan) return false;
|
if(player!=target||player.storage.olniepan) return false;
|
||||||
if(player.hp>0) return false;
|
|
||||||
},
|
},
|
||||||
save:true,
|
save:true,
|
||||||
result:{
|
result:{
|
||||||
|
@ -3725,6 +3723,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio:2,
|
audio:2,
|
||||||
derivation:'rechanyuan',
|
derivation:'rechanyuan',
|
||||||
enable:['chooseToUse','chooseToRespond'],
|
enable:['chooseToUse','chooseToRespond'],
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
return (lib.inpile.contains(name)&&player.countCards('h')>0&&!player.hasSkill('reguhuo_phase'));
|
||||||
|
},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(!player.countCards('h')||player.hasSkill('reguhuo_phase')) return false;
|
if(!player.countCards('h')||player.hasSkill('reguhuo_phase')) return false;
|
||||||
for(var i of lib.inpile){
|
for(var i of lib.inpile){
|
||||||
|
@ -3804,7 +3805,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
fireAttack:true,
|
fireAttack:true,
|
||||||
save:true,
|
|
||||||
respondShan:true,
|
respondShan:true,
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player){
|
||||||
|
@ -7121,8 +7121,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
position:'he',
|
position:'he',
|
||||||
filterCard:{suit:'diamond'},
|
filterCard:{suit:'diamond'},
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
if(player==target) return false;
|
|
||||||
if(target.hasJudge('lebu')) return true;
|
if(target.hasJudge('lebu')) return true;
|
||||||
|
if(player==target) return false;
|
||||||
return lib.filter.targetEnabled({name:'lebu'},player,target);
|
return lib.filter.targetEnabled({name:'lebu'},player,target);
|
||||||
},
|
},
|
||||||
check:function(card){
|
check:function(card){
|
||||||
|
@ -7723,11 +7723,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return -1;
|
return -1;
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
skillTagFilter:function(player){
|
|
||||||
return player.countCards('h',{suit:'spade'})>0&&player.hp<=0;
|
|
||||||
},
|
|
||||||
threaten:1.5,
|
threaten:1.5,
|
||||||
save:true,
|
|
||||||
},
|
},
|
||||||
trigger:{source:'damageEnd'},
|
trigger:{source:'damageEnd'},
|
||||||
locked:true,
|
locked:true,
|
||||||
|
|
|
@ -4701,15 +4701,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
prompt:'将一张黑桃手牌当酒使用',
|
prompt:'将一张黑桃手牌当酒使用',
|
||||||
check:function(card){
|
check:function(card){
|
||||||
if(_status.event.type=='dying') return 1;
|
if(_status.event.type=='dying') return 1/Math.max(0.1,get.value(card));
|
||||||
return 4-get.value(card);
|
return 4-get.value(card);
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
skillTagFilter:function(player){
|
|
||||||
return player.countCards('h',{suit:'spade'})>0&&player.hp<=0;
|
|
||||||
},
|
|
||||||
threaten:1.5,
|
threaten:1.5,
|
||||||
save:true,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
roulin:{
|
roulin:{
|
||||||
|
@ -5089,9 +5085,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:0.5,
|
order:0.5,
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player,tag,target){
|
||||||
if(player.storage.niepan) return false;
|
if(player!=target||player.storage.niepan) return false;
|
||||||
if(player.hp>0) return false;
|
|
||||||
},
|
},
|
||||||
save:true,
|
save:true,
|
||||||
result:{
|
result:{
|
||||||
|
@ -5147,9 +5142,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:1,
|
order:1,
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player,arg,target){
|
||||||
if(player.storage.oldniepan) return false;
|
if(player!=target||player.storage.oldniepan) return false;
|
||||||
if(player.hp>0) return false;
|
|
||||||
},
|
},
|
||||||
save:true,
|
save:true,
|
||||||
result:{
|
result:{
|
||||||
|
@ -6467,8 +6461,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
save:true,
|
save:true,
|
||||||
mingzhi:true,
|
mingzhi:true,
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player,tag,target){
|
||||||
if(player.hp>0) return false;
|
if(player!=target) return false;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
intro:{
|
intro:{
|
||||||
|
|
|
@ -20,7 +20,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_zhangliao:['male','qun',4,['mubing','ziqu','diaoling']],
|
sp_zhangliao:['male','qun',4,['mubing','ziqu','diaoling']],
|
||||||
caoshuang:['male','wei',4,['retuogu','shanzhuan']],
|
caoshuang:['male','wei',4,['retuogu','shanzhuan']],
|
||||||
ol_zhangchangpu:['female','wei',3,['yanjiao','olxingshen']],
|
ol_zhangchangpu:['female','wei',3,['yanjiao','olxingshen']],
|
||||||
zhangling:['male','qun',4,['zlhuji','zlshoufu']],
|
zhangling:['male','qun',3,['zlhuji','zlshoufu']],
|
||||||
caiyang:['male','qun',1,['yinka'],['forbidai','unseen']],
|
caiyang:['male','qun',1,['yinka'],['forbidai','unseen']],
|
||||||
panfeng:['male','qun',4,['kuangfu']],
|
panfeng:['male','qun',4,['kuangfu']],
|
||||||
sunshao:['male','wu',3,['bizheng','yidian']],
|
sunshao:['male','wu',3,['bizheng','yidian']],
|
||||||
|
@ -715,7 +715,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
};
|
};
|
||||||
player.judge(func);
|
player.judge(func);
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool&&get.itemtype(trigger.source)=='player'&&player.canUse('sha',trigger.source,false)){
|
if(result.color=='red'&&get.itemtype(trigger.source)=='player'&&player.canUse('sha',trigger.source,false)){
|
||||||
player.useCard({name:'sha',isCard:true},trigger.source,false,'noai');
|
player.useCard({name:'sha',isCard:true},trigger.source,false,'noai');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -5324,6 +5324,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
fanghun:{
|
fanghun:{
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
if(!player.storage.fanghun||player.storage.fanghun<=0) return false;
|
||||||
|
if(name=='tao') return player.countCards('h','jiu')>0;
|
||||||
|
if(name=='jiu') return player.countCards('h','tao')>0;
|
||||||
|
return false;
|
||||||
|
},
|
||||||
audio:2,
|
audio:2,
|
||||||
marktext:'影',
|
marktext:'影',
|
||||||
intro:{
|
intro:{
|
||||||
|
@ -5403,7 +5409,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
|
if(!player.storage.fanghun||player.storage.fanghun<=0) return false;
|
||||||
var filter=event.filterCard;
|
var filter=event.filterCard;
|
||||||
if(filter({name:'sha'},player,event)&&player.countCards('h','shan')) return true;
|
if(filter({name:'sha'},player,event)&&player.countCards('h','shan')) return true;
|
||||||
if(filter({name:'shan'},player,event)&&player.countCards('h','sha')) return true;
|
if(filter({name:'shan'},player,event)&&player.countCards('h','sha')) return true;
|
||||||
|
@ -5418,14 +5424,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
respondShan:true,
|
respondShan:true,
|
||||||
save:true,
|
|
||||||
skillTagFilter:function(player,tag){
|
skillTagFilter:function(player,tag){
|
||||||
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
|
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
|
||||||
var name;
|
var name;
|
||||||
switch(tag){
|
switch(tag){
|
||||||
case 'respondSha':name='shan';break;
|
case 'respondSha':name='shan';break;
|
||||||
case 'respondShan':name='sha';break;
|
case 'respondShan':name='sha';break;
|
||||||
case 'save':name='jiu';break;
|
|
||||||
}
|
}
|
||||||
if(!player.countCards('h',name)) return false;
|
if(!player.countCards('h',name)) return false;
|
||||||
},
|
},
|
||||||
|
@ -8909,7 +8913,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
filterCard:true,
|
filterCard:true,
|
||||||
position:'he',
|
position:'he',
|
||||||
ai:{
|
ai:{
|
||||||
save:true,
|
|
||||||
skillTagFilter:function(){
|
skillTagFilter:function(){
|
||||||
return lib.skill.xisheng.viewAsFilter.apply(this,arguments)
|
return lib.skill.xisheng.viewAsFilter.apply(this,arguments)
|
||||||
},
|
},
|
||||||
|
@ -9142,12 +9145,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
skillTagFilter:function(player){
|
|
||||||
return !player.hasSkill('chenqing2');
|
|
||||||
},
|
|
||||||
expose:0.2,
|
expose:0.2,
|
||||||
threaten:1.5,
|
threaten:1.5,
|
||||||
save:true,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mozhi:{
|
mozhi:{
|
||||||
|
@ -12178,6 +12177,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
aocai:{
|
aocai:{
|
||||||
audio:2,
|
audio:2,
|
||||||
enable:['chooseToUse','chooseToRespond'],
|
enable:['chooseToUse','chooseToRespond'],
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
if(player!=_status.currentPhase&&get.type(name)=='basic'&&lib.inpile.contains(name)) return true;
|
||||||
|
},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(event.responded||player==_status.currentPhase||event.aocai) return false;
|
if(event.responded||player==_status.currentPhase||event.aocai) return false;
|
||||||
for(var i of lib.inpile){
|
for(var i of lib.inpile){
|
||||||
|
@ -12241,7 +12243,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
order:11,
|
order:11,
|
||||||
respondShan:true,
|
respondShan:true,
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
save:true,
|
|
||||||
result:{
|
result:{
|
||||||
player:function(player){
|
player:function(player){
|
||||||
if(_status.event.dying) return get.attitude(player,_status.event.dying);
|
if(_status.event.dying) return get.attitude(player,_status.event.dying);
|
||||||
|
@ -14476,13 +14477,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
precontent:function(){
|
precontent:function(){
|
||||||
player.removeMark('xinfu_falu_club');
|
player.removeMark('xinfu_falu_club');
|
||||||
},
|
},
|
||||||
ai:{
|
|
||||||
skillTagFilter:function(player){
|
|
||||||
if(player==_status.currentPhase) return false;
|
|
||||||
return player.hasMark('xinfu_falu_club')&&player.countCards('h')>0;
|
|
||||||
},
|
|
||||||
save:true,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
zhenyi_heart:{
|
zhenyi_heart:{
|
||||||
trigger:{
|
trigger:{
|
||||||
|
|
|
@ -443,9 +443,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.choosePlayerCard(target,'h',true);
|
player.choosePlayerCard(target,'h',true);
|
||||||
'step 1'
|
'step 1'
|
||||||
player.showCards(result.cards);
|
player.showCards(result.cards);
|
||||||
var type=get.type2(result.cards[0]);
|
var type=get.type2(result.cards[0],target);
|
||||||
target.storage.choufa2=type;
|
if(!target.storage.choufa2) target.storage.choufa2=[];
|
||||||
target.addTempSkill('choufa2',{player:'phaseAfter'});
|
target.storage.choufa2.addArray(target.getCards('h',function(card){
|
||||||
|
return get.type2(card,target)!=type;
|
||||||
|
}));
|
||||||
|
if(target.storage.choufa2.length) target.addTempSkill('choufa2',{player:'phaseAfter'});
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:9,
|
order:9,
|
||||||
|
@ -457,20 +460,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
choufa2:{
|
choufa2:{
|
||||||
mark:true,
|
|
||||||
onremove:true,
|
onremove:true,
|
||||||
charlotte:true,
|
charlotte:true,
|
||||||
intro:{
|
|
||||||
content:'不为$牌的手牌均视为杀',
|
|
||||||
},
|
|
||||||
mod:{
|
mod:{
|
||||||
cardname:function(card,player){
|
cardname:function(card,player){
|
||||||
if(get.type2(card,false)!=player.storage.choufa2) return 'sha';
|
if(player.storage.choufa2.contains(card)) return 'sha';
|
||||||
},
|
},
|
||||||
cardnature:function(card,player){
|
cardnature:function(card,player){
|
||||||
if(get.type2(card,false)!=player.storage.choufa2) return false;
|
if(player.storage.choufa2.contains(card)) return false;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
trigger:{player:'loseEnd'},
|
||||||
|
silent:true,
|
||||||
|
content:function(){
|
||||||
|
player.storage.choufa2.removeArray(trigger.hs);
|
||||||
|
if(!player.storage.choufa2.length) player.removeSkill('choufa2');
|
||||||
|
},
|
||||||
},
|
},
|
||||||
zhaoran:{
|
zhaoran:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -677,7 +682,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var list=ui.selected.cards.map(function(i){
|
var list=ui.selected.cards.map(function(i){
|
||||||
return get.type2(i);
|
return get.type2(i);
|
||||||
});
|
});
|
||||||
if(!list.contains(get.type2(i))) return 6-get.value(card);
|
if(!list.contains(get.type2(card))) return 7-get.value(card);
|
||||||
return -get.value(card);
|
return -get.value(card);
|
||||||
});
|
});
|
||||||
'step 2'
|
'step 2'
|
||||||
|
@ -8504,7 +8509,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zhanghuyuechen:'张虎乐綝',
|
zhanghuyuechen:'张虎乐綝',
|
||||||
xijue:'袭爵',
|
xijue:'袭爵',
|
||||||
xijue_gain:'袭爵',
|
xijue_gain:'袭爵',
|
||||||
xijue_info:'锁定技,游戏开始时,你获得4枚“爵”。回合结束时,若你于本回合内造成过2点以上的伤害或杀死过角色,则你获得一枚“爵”。你可弃置一枚“爵”并在合适的时机发动〖突袭〗和〖骁果〗。',
|
xijue_info:'锁定技,游戏开始时,你获得4枚“爵”。回合结束时,若你于本回合内造成过的伤害点数总和大于1,或于本回合内杀死过角色,则你获得一枚“爵”。你可弃置一枚“爵”并在合适的时机发动〖突袭〗和〖骁果〗。',
|
||||||
xijue_tuxi:'突袭',
|
xijue_tuxi:'突袭',
|
||||||
xijue_xiaoguo:'骁果',
|
xijue_xiaoguo:'骁果',
|
||||||
duyu:'杜预',
|
duyu:'杜预',
|
||||||
|
@ -8526,7 +8531,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
tuishi_info:'隐匿技,你于其他角色A的回合内登场时,可于此回合结束时选择其攻击范围内的一名角色B。A选择一项:①对B使用一张【杀】。②你对A造成1点伤害。',
|
tuishi_info:'隐匿技,你于其他角色A的回合内登场时,可于此回合结束时选择其攻击范围内的一名角色B。A选择一项:①对B使用一张【杀】。②你对A造成1点伤害。',
|
||||||
choufa:'筹伐',
|
choufa:'筹伐',
|
||||||
choufa2:'筹伐',
|
choufa2:'筹伐',
|
||||||
choufa_info:'出牌阶段限一次,你可展示一名其他角色的一张手牌并记录此牌的类型A。其手牌中原类型不为A的手牌的牌名均视为【杀】且均视为无属性,直到其回合结束。',
|
choufa_info:'出牌阶段限一次,你可展示一名其他角色的一张手牌。你令其手牌中原类型与此牌不同的手牌的牌名均视为【杀】且均视为无属性,直到其回合结束。',
|
||||||
zhaoran:'昭然',
|
zhaoran:'昭然',
|
||||||
zhaoran2:'昭然',
|
zhaoran2:'昭然',
|
||||||
zhaoran_info:'出牌阶段开始时,你可令你的手牌对其他角色可见直到出牌阶段结束。若如此做,当你于此阶段内失去一张手牌后,若你的手牌里没有与此牌花色相同的牌且你本回合内未因该花色的牌触发过此效果,则你选择一项:①摸一张牌。②弃置一名其他角色的一张牌。',
|
zhaoran_info:'出牌阶段开始时,你可令你的手牌对其他角色可见直到出牌阶段结束。若如此做,当你于此阶段内失去一张手牌后,若你的手牌里没有与此牌花色相同的牌且你本回合内未因该花色的牌触发过此效果,则你选择一项:①摸一张牌。②弃置一名其他角色的一张牌。',
|
||||||
|
@ -8547,13 +8552,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
taoyin_info:'隐匿技,当你登场后,若当前回合角色存在且不是你,则你可令该角色本回合的手牌上限-2。',
|
taoyin_info:'隐匿技,当你登场后,若当前回合角色存在且不是你,则你可令该角色本回合的手牌上限-2。',
|
||||||
yimie:'夷灭',
|
yimie:'夷灭',
|
||||||
yimie2:'夷灭',
|
yimie2:'夷灭',
|
||||||
yimie_info:'每回合限一次,当你对其他角色造成伤害时,若伤害值X小于Y,则你可失去1点体力,将伤害值改为Y。此伤害结算结束后,其回复(Y-X)点体力。',
|
yimie_info:'每回合限一次,当你对其他角色造成伤害时,若伤害值X小于Y,则你可失去1点体力,将伤害值改为Y。此伤害结算结束后,其回复(Y-X)点体力。(Y为其体力值)’',
|
||||||
ruilve:'睿略',
|
ruilve:'睿略',
|
||||||
ruilve2:'睿略',
|
ruilve2:'睿略',
|
||||||
ruilve_info:'主公技,其他晋势力角色的出牌阶段限一次,该角色可以将一张带有伤害标签的基本牌或锦囊牌交给你。',
|
ruilve_info:'主公技,其他晋势力角色的出牌阶段限一次,该角色可以将一张带有伤害标签的基本牌或锦囊牌交给你。',
|
||||||
tairan:'泰然',
|
tairan:'泰然',
|
||||||
tairan2:'泰然',
|
tairan2:'泰然',
|
||||||
tairan_info:'锁定技,回合结束时,你将体力回复至X,并将手牌摸至X张。出牌阶段开始时,你失去上次以此法回复的体力值,弃置上次以此法获得的牌。(X为你的体力上限,且至多为5)',
|
tairan_info:'锁定技,回合结束时,你回复Y点体力,并将手牌摸至X张。出牌阶段开始时,你失去Y点体力,弃置上次以此法获得的牌。(X为你的体力上限,且至多为5;Y=X-你的体力值)',
|
||||||
|
|
||||||
sp_yingbian:'应变篇',
|
sp_yingbian:'应变篇',
|
||||||
sp_whlw:"文和乱武",
|
sp_whlw:"文和乱武",
|
||||||
|
|
|
@ -2355,8 +2355,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio:2,
|
audio:2,
|
||||||
audioname:['re_huatuo'],
|
audioname:['re_huatuo'],
|
||||||
enable:'chooseToUse',
|
enable:'chooseToUse',
|
||||||
filter:function(event,player){
|
viewAsFilter:function(player){
|
||||||
return _status.currentPhase!=player;
|
return player!=_status.currentPhase&&player.countCards('h',{color:'red'})>0;
|
||||||
},
|
},
|
||||||
filterCard:function(card){
|
filterCard:function(card){
|
||||||
return get.color(card)=='red';
|
return get.color(card)=='red';
|
||||||
|
@ -2366,12 +2366,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
prompt:'将一张红色牌当桃使用',
|
prompt:'将一张红色牌当桃使用',
|
||||||
check:function(card){return 15-get.value(card)},
|
check:function(card){return 15-get.value(card)},
|
||||||
ai:{
|
ai:{
|
||||||
skillTagFilter:function(player){
|
|
||||||
return player.countCards('he',{color:'red'})>0&&_status.currentPhase!=player;
|
|
||||||
},
|
|
||||||
threaten:1.5,
|
threaten:1.5,
|
||||||
save:true,
|
|
||||||
respondTao:true,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
wushuang:{
|
wushuang:{
|
||||||
|
|
|
@ -910,8 +910,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
save:true,
|
save:true,
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player,arg,target){
|
||||||
return player.hp<=0&&player.storage.xinfuli!=true;
|
return player==target;
|
||||||
},
|
},
|
||||||
result:{
|
result:{
|
||||||
player:10
|
player:10
|
||||||
|
@ -3765,6 +3765,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.type!='wuxie'&&event.type!='respondShan'&&!player.hasSkill('taoluan3')&&player.countCards('he')>0;//&&!_status.dying.length;
|
return event.type!='wuxie'&&event.type!='respondShan'&&!player.hasSkill('taoluan3')&&player.countCards('he')>0;//&&!_status.dying.length;
|
||||||
},
|
},
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
return (!player.storage.taoluan.contains(name)&&player.countCards('he')>0&&!player.hasSkill('taoluan3')&&lib.inpile.contains(name));
|
||||||
|
},
|
||||||
init:function(player){
|
init:function(player){
|
||||||
if(!player.storage.taoluan) player.storage.taoluan=[];
|
if(!player.storage.taoluan) player.storage.taoluan=[];
|
||||||
},
|
},
|
||||||
|
@ -3820,7 +3823,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
save:true,
|
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player){
|
||||||
if(!player.countCards('he')||player.hasSkill('taoluan3')) return false;
|
if(!player.countCards('he')||player.hasSkill('taoluan3')) return false;
|
||||||
if(!player.storage.taoluan.contains('tao')){}
|
if(!player.storage.taoluan.contains('tao')){}
|
||||||
|
@ -6315,7 +6317,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.discard(cards);
|
player.discard(cards);
|
||||||
event.num=cards.length;
|
event.num=cards.length;
|
||||||
'step 3'
|
'step 3'
|
||||||
player.chooseTarget('请选择至多'+get.cnNumber(event.num)+'名有牌的其他角色,获得这些角色的各一张手牌。',[1,event.num],function(card,player,target){
|
player.chooseTarget('请选择至多'+get.cnNumber(event.num)+'名有牌的其他角色,获得这些角色的各一张牌。',[1,event.num],function(card,player,target){
|
||||||
return target!=player&&target.countCards('he')>0;
|
return target!=player&&target.countCards('he')>0;
|
||||||
}).set('ai',function(target){
|
}).set('ai',function(target){
|
||||||
return -get.attitude(_status.event.player,target)+0.5;
|
return -get.attitude(_status.event.player,target)+0.5;
|
||||||
|
@ -7134,6 +7136,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
huomo_use:{
|
huomo_use:{
|
||||||
enable:'chooseToUse',
|
enable:'chooseToUse',
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
return (['sha','shan','tao','jiu'].contains(name)&&(!player.storage.huomo||!player.storage.huomo[name])&&player.hasCard(function(card){
|
||||||
|
return get.color(card)=='black'&&get.type(card)!='basic';
|
||||||
|
},'he'));
|
||||||
|
},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(!player.storage.huomo) player.storage.huomo={};
|
if(!player.storage.huomo) player.storage.huomo={};
|
||||||
if((!player.storage.huomo.sha&&event.filterCard({name:'sha'},player,event))||
|
if((!player.storage.huomo.sha&&event.filterCard({name:'sha'},player,event))||
|
||||||
|
@ -7234,7 +7241,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
return 2.9;
|
return 2.9;
|
||||||
},
|
},
|
||||||
save:true,
|
|
||||||
respondSha:true,
|
respondSha:true,
|
||||||
fireAttack:true,
|
fireAttack:true,
|
||||||
respondShan:true,
|
respondShan:true,
|
||||||
|
@ -8214,8 +8220,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
save:true,
|
save:true,
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player,arg,target){
|
||||||
return player.hp<=0&&player.storage.fuli!=true;
|
return player==target&&player.storage.fuli!=true;
|
||||||
},
|
},
|
||||||
result:{
|
result:{
|
||||||
player:10
|
player:10
|
||||||
|
@ -10486,6 +10492,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
jiushi1:{
|
jiushi1:{
|
||||||
audio:2,
|
audio:2,
|
||||||
enable:'chooseToUse',
|
enable:'chooseToUse',
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
if(name=='jiu') return !player.isTurnedOver();
|
||||||
|
return false;
|
||||||
|
},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(player.classList.contains('turnedover')) return false;
|
if(player.classList.contains('turnedover')) return false;
|
||||||
return event.filterCard({name:'jiu',isCard:true},player,event);
|
return event.filterCard({name:'jiu',isCard:true},player,event);
|
||||||
|
@ -10499,10 +10509,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.useCard({name:'jiu',isCard:true},player);
|
player.useCard({name:'jiu',isCard:true},player);
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
save:true,
|
|
||||||
skillTagFilter:function(player){
|
|
||||||
return player.hp<=0&&!player.isTurnedOver();
|
|
||||||
},
|
|
||||||
order:5,
|
order:5,
|
||||||
result:{
|
result:{
|
||||||
player:function(player){
|
player:function(player){
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
window.noname_asset_list=[
|
window.noname_asset_list=[
|
||||||
'v1.9.108.2',
|
'v1.9.108.2.1',
|
||||||
'audio/background/aozhan_chaoming.mp3',
|
'audio/background/aozhan_chaoming.mp3',
|
||||||
'audio/background/aozhan_online.mp3',
|
'audio/background/aozhan_online.mp3',
|
||||||
'audio/background/aozhan_rewrite.mp3',
|
'audio/background/aozhan_rewrite.mp3',
|
||||||
|
@ -5519,19 +5519,19 @@ window.noname_skin_list={
|
||||||
key_hinata:1,
|
key_hinata:1,
|
||||||
key_iwasawa:2,
|
key_iwasawa:2,
|
||||||
key_nao:4,
|
key_nao:4,
|
||||||
key_shiki:6,
|
key_shiki:7,
|
||||||
key_yui:2,
|
key_yui:2,
|
||||||
key_yuri:5,
|
key_yuri:5,
|
||||||
key_yuzuru:2,
|
key_yuzuru:2,
|
||||||
sp_key_kanade:9,
|
sp_key_kanade:9,
|
||||||
key_kamome:5,
|
key_kamome:8,
|
||||||
key_umi:5,
|
key_umi:5,
|
||||||
key_umi2:1,
|
key_umi2:1,
|
||||||
key_mio:3,
|
key_mio:3,
|
||||||
key_midori:1,
|
key_midori:1,
|
||||||
key_akane:1,
|
key_akane:1,
|
||||||
key_kagari:1,
|
key_kagari:1,
|
||||||
key_kud:2,
|
key_kud:5,
|
||||||
key_misuzu:1,
|
key_misuzu:1,
|
||||||
key_nagisa:1,
|
key_nagisa:1,
|
||||||
key_rin:3,
|
key_rin:3,
|
||||||
|
@ -5542,4 +5542,5 @@ window.noname_skin_list={
|
||||||
key_shiina:1,
|
key_shiina:1,
|
||||||
key_hiroto:1,
|
key_hiroto:1,
|
||||||
key_komari:1,
|
key_komari:1,
|
||||||
|
key_saya:4,
|
||||||
};
|
};
|
35
game/game.js
|
@ -15863,6 +15863,16 @@
|
||||||
},
|
},
|
||||||
player:{
|
player:{
|
||||||
//新函数
|
//新函数
|
||||||
|
canSave:function(target){
|
||||||
|
var player=this;
|
||||||
|
if(player.hasSkillTag('save',true,target,true)) return true;
|
||||||
|
for(var i in lib.card){
|
||||||
|
if(lib.inpile.contains(i)||player.countCards('h',i)){
|
||||||
|
if(lib.filter.cardSavable({name:i},player,target)&&(_status.connectMode||player.hasUsableCard(i))) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
showCharacter:function(num,log){
|
showCharacter:function(num,log){
|
||||||
var toShow=[];
|
var toShow=[];
|
||||||
if((num==0||num==2)&&this.isUnseen(0)) toShow.add(this.name1);
|
if((num==0||num==2)&&this.isUnseen(0)) toShow.add(this.name1);
|
||||||
|
@ -24775,6 +24785,15 @@
|
||||||
filterButton:function(button){
|
filterButton:function(button){
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
cardSavable:function(card,player,target){
|
||||||
|
var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player);
|
||||||
|
if(mod2!='unchanged') return mod2;
|
||||||
|
var mod=game.checkMod(card,player,target,'unchanged','cardSavable',player);
|
||||||
|
if(mod!='unchanged') return mod;
|
||||||
|
var savable=get.info(card).savable;
|
||||||
|
if(typeof savable=='function') savable=savable(card,player,target);
|
||||||
|
return savable;
|
||||||
|
},
|
||||||
filterTrigger:function(event,player,name,skill){
|
filterTrigger:function(event,player,name,skill){
|
||||||
if(player._hookTrigger){
|
if(player._hookTrigger){
|
||||||
for(var i=0;i<player._hookTrigger.length;i++){
|
for(var i=0;i<player._hookTrigger.length;i++){
|
||||||
|
@ -25795,7 +25814,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_save:{
|
_save:{
|
||||||
trigger:{source:'dying2',player:'dying2'},
|
//trigger:{source:'dying2',player:'dying2'},
|
||||||
priority:5,
|
priority:5,
|
||||||
forced:true,
|
forced:true,
|
||||||
popup:false,
|
popup:false,
|
||||||
|
@ -25820,21 +25839,11 @@
|
||||||
if(lib.config.tao_enemy&&event.dying.side!=player.side&&lib.config.mode!='identity'&&lib.config.mode!='guozhan'&&!event.dying.hasSkillTag('revertsave')){
|
if(lib.config.tao_enemy&&event.dying.side!=player.side&&lib.config.mode!='identity'&&lib.config.mode!='guozhan'&&!event.dying.hasSkillTag('revertsave')){
|
||||||
event._result={bool:false}
|
event._result={bool:false}
|
||||||
}
|
}
|
||||||
else if(player.isOnline()||(_status.connectMode&&player==game.me)||player.hasSkillTag('save',true,null,true)||player.hasCard(function(card){
|
else if(player.canSave(event.dying)){
|
||||||
var savable=get.info(card).savable;
|
|
||||||
if(typeof savable=='function') savable=savable(card,player,event.dying);
|
|
||||||
return savable;
|
|
||||||
})){
|
|
||||||
player.chooseToUse({
|
player.chooseToUse({
|
||||||
filterCard:function(card,player,event){
|
filterCard:function(card,player,event){
|
||||||
event=event||_status.event;
|
event=event||_status.event;
|
||||||
var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player);
|
return lib.filter.cardSavable(card,player,event.dying);
|
||||||
if(mod2!='unchanged') return mod2;
|
|
||||||
var mod=game.checkMod(card,player,event.dying,'unchanged','cardSavable',player);
|
|
||||||
if(mod!='unchanged') return mod;
|
|
||||||
var savable=get.info(card).savable;
|
|
||||||
if(typeof savable=='function') savable=savable(card,player,event.dying);
|
|
||||||
return savable;
|
|
||||||
},
|
},
|
||||||
filterTarget:trigger.player,
|
filterTarget:trigger.player,
|
||||||
prompt:str,
|
prompt:str,
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
window.noname_update={
|
window.noname_update={
|
||||||
version:'1.9.108.2',
|
version:'1.9.108.2.1',
|
||||||
update:'1.9.108.1',
|
update:'1.9.108.2',
|
||||||
changeLog:[
|
changeLog:[
|
||||||
'晋司马昭、王元姬、司马师、夏侯徽、杜预、张虎乐綝',
|
|
||||||
'张道陵',
|
|
||||||
'bug修复',
|
'bug修复',
|
||||||
],
|
],
|
||||||
files:[
|
files:[
|
||||||
//'card/extra.js',
|
'card/extra.js',
|
||||||
//'card/gujian.js',
|
//'card/gujian.js',
|
||||||
//'card/guozhan.js',
|
//'card/guozhan.js',
|
||||||
//'card/gwent.js',
|
//'card/gwent.js',
|
||||||
|
@ -20,16 +18,16 @@ window.noname_update={
|
||||||
//'card/yingbian.js',
|
//'card/yingbian.js',
|
||||||
//'card/zhenfa.js',
|
//'card/zhenfa.js',
|
||||||
//'card/zhulu.js',
|
//'card/zhulu.js',
|
||||||
//'character/diy.js',
|
'character/diy.js',
|
||||||
'character/extra.js',
|
'character/extra.js',
|
||||||
//'character/hearth.js',
|
//'character/hearth.js',
|
||||||
//'character/gujian.js',
|
//'character/gujian.js',
|
||||||
//'character/gwent.js',
|
//'character/gwent.js',
|
||||||
//'character/hearth.js',
|
//'character/hearth.js',
|
||||||
//'character/mobile.js',
|
'character/mobile.js',
|
||||||
//'character/mtg.js',
|
//'character/mtg.js',
|
||||||
//'character/old.js',
|
//'character/old.js',
|
||||||
'character/rank.js',
|
//'character/rank.js',
|
||||||
'character/refresh.js',
|
'character/refresh.js',
|
||||||
'character/shenhua.js',
|
'character/shenhua.js',
|
||||||
'character/sp.js',
|
'character/sp.js',
|
||||||
|
@ -39,15 +37,15 @@ window.noname_update={
|
||||||
//'character/swd.js',
|
//'character/swd.js',
|
||||||
//'character/xianjian.js',
|
//'character/xianjian.js',
|
||||||
//'character/xinghuoliaoyuan.js',
|
//'character/xinghuoliaoyuan.js',
|
||||||
//'character/yijiang.js',
|
'character/yijiang.js',
|
||||||
//'character/yxs.js',
|
//'character/yxs.js',
|
||||||
//'extension/boss/extension.js',
|
//'extension/boss/extension.js',
|
||||||
//'layout/default/layout.css',
|
//'layout/default/layout.css',
|
||||||
'layout/default/menu.css',
|
//'layout/default/menu.css',
|
||||||
//'layout/nova/layout.css',
|
//'layout/nova/layout.css',
|
||||||
'mode/identity.js',
|
//'mode/identity.js',
|
||||||
//'mode/doudizhu.js',
|
//'mode/doudizhu.js',
|
||||||
//'mode/guozhan.js',
|
'mode/guozhan.js',
|
||||||
//'mode/chess.js',
|
//'mode/chess.js',
|
||||||
//'mode/tafang.js',
|
//'mode/tafang.js',
|
||||||
//'mode/single.js',
|
//'mode/single.js',
|
||||||
|
|
After Width: | Height: | Size: 133 KiB |
After Width: | Height: | Size: 140 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 131 KiB |
After Width: | Height: | Size: 142 KiB |
After Width: | Height: | Size: 107 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 154 KiB |
|
@ -428,14 +428,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
yigui:{
|
yigui:{
|
||||||
init:function (player,skill){
|
hiddenCard:function(player,name){
|
||||||
|
var storage=player.storage.yigui;
|
||||||
|
if(!storage||!storage.character.length||storage.used.contains(name)||!lib.inpile.contains(name)) return false;
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
init:function(player,skill){
|
||||||
if(!player.storage.skill) player.storage[skill]={
|
if(!player.storage.skill) player.storage[skill]={
|
||||||
character:[],
|
character:[],
|
||||||
used:[],
|
used:[],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
enable:"chooseToUse",
|
enable:"chooseToUse",
|
||||||
filter:function (event,player){
|
filter:function(event,player){
|
||||||
if(event.type=='wuxie'||event.type=='respondShan') return false;
|
if(event.type=='wuxie'||event.type=='respondShan') return false;
|
||||||
var storage=player.storage.yigui;
|
var storage=player.storage.yigui;
|
||||||
if(!storage||!storage.character.length) return false;
|
if(!storage||!storage.character.length) return false;
|
||||||
|
@ -457,22 +462,21 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
dialog:function (event,player){
|
dialog:function (event,player){
|
||||||
var dialog=ui.create.dialog('役鬼','hidden');
|
var dialog=ui.create.dialog('役鬼','hidden');
|
||||||
dialog.add([player.storage.yigui.character,'character']);
|
dialog.add([player.storage.yigui.character,'character']);
|
||||||
var list=[
|
var list=lib.inpile;
|
||||||
'sha','tao','jiu',
|
|
||||||
'taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman',
|
|
||||||
'xietianzi','shuiyanqijunx','lulitongxin','lianjunshengyan','chiling','diaohulishan','yuanjiao','huoshaolianying','zhibi','yiyi'
|
|
||||||
];
|
|
||||||
var list2=[];
|
var list2=[];
|
||||||
for(var i=0;i<list.length;i++){
|
for(var i=0;i<list.length;i++){
|
||||||
if(i==0){
|
var name=list[i];
|
||||||
|
if(name=='shan'||name=='wuxie') continue;
|
||||||
|
var type=get.type(name);
|
||||||
|
if(name=='sha'){
|
||||||
list2.push(['基本','','sha']);
|
list2.push(['基本','','sha']);
|
||||||
list2.push(['基本','','sha','fire']);
|
list2.push(['基本','','sha','fire']);
|
||||||
list2.push(['基本','','sha','thunder']);
|
list2.push(['基本','','sha','thunder']);
|
||||||
}
|
}
|
||||||
else if(i<3){
|
else if(type=='basic'){
|
||||||
list2.push(['基本','',list[i]]);
|
list2.push(['基本','',list[i]]);
|
||||||
}
|
}
|
||||||
else{
|
else if(type=='trick'){
|
||||||
list2.push(['锦囊','',list[i]]);
|
list2.push(['锦囊','',list[i]]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -614,7 +618,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
group:["yigui_init","yigui_refrain","yigui_shan","yigui_wuxie"],
|
group:["yigui_init","yigui_refrain","yigui_shan","yigui_wuxie"],
|
||||||
ai:{
|
ai:{
|
||||||
save:true,
|
|
||||||
order:function(){
|
order:function(){
|
||||||
return 1+10*Math.random();
|
return 1+10*Math.random();
|
||||||
},
|
},
|
||||||
|
@ -744,11 +747,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
yigui_wuxie:{
|
yigui_wuxie:{
|
||||||
hiddenCard:function(player,name){
|
|
||||||
var storage=player.storage.yigui;
|
|
||||||
if(!storage||!storage.character.length||storage.used.contains('wuxie')) return false;
|
|
||||||
return name=='wuxie';
|
|
||||||
},
|
|
||||||
enable:"chooseToUse",
|
enable:"chooseToUse",
|
||||||
filter:function (event,player){
|
filter:function (event,player){
|
||||||
if(event.type!='wuxie') return false;
|
if(event.type!='wuxie') return false;
|
||||||
|
@ -3657,6 +3655,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.type!='phase'&&player.hasMark('zhulianbihe_skill');
|
return event.type!='phase'&&player.hasMark('zhulianbihe_skill');
|
||||||
},
|
},
|
||||||
|
viewAsFilter:function(player){
|
||||||
|
return player.hasMark('zhulianbihe_skill');
|
||||||
|
},
|
||||||
viewAs:{
|
viewAs:{
|
||||||
name:"tao",
|
name:"tao",
|
||||||
isCard:true,
|
isCard:true,
|
||||||
|
@ -3666,12 +3667,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
precontent:function(){
|
precontent:function(){
|
||||||
player.removeMark('zhulianbihe_skill',1);
|
player.removeMark('zhulianbihe_skill',1);
|
||||||
},
|
},
|
||||||
ai:{
|
|
||||||
save:true,
|
|
||||||
skillTagFilter:function(player){
|
|
||||||
if(!player.hasMark('zhulianbihe_skill')) return false;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
"_yinyang_skill_draw":{
|
"_yinyang_skill_draw":{
|
||||||
ruleSkill:true,
|
ruleSkill:true,
|
||||||
|
@ -4377,14 +4372,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
chooseButton:{
|
chooseButton:{
|
||||||
dialog:function(){
|
dialog:function(){
|
||||||
var list=[
|
var list=lib.inpile;
|
||||||
'taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman',
|
var list2=[];
|
||||||
'xietianzi','shuiyanqijunx','lulitongxin','lianjunshengyan','chiling','diaohulishan','yuanjiao','huoshaolianying','zhibi','yiyi',
|
|
||||||
];
|
|
||||||
for(var i=0;i<list.length;i++){
|
for(var i=0;i<list.length;i++){
|
||||||
list[i]=['锦囊','',list[i]];
|
if(list[i]!='wuxie'&&get.type(list[i])=='trick') list2.push(['锦囊','',list[i]]);
|
||||||
}
|
}
|
||||||
return ui.create.dialog(get.translation('gzqice'),[list,'vcard']);
|
return ui.create.dialog(get.translation('gzqice'),[list2,'vcard']);
|
||||||
},
|
},
|
||||||
filter:function(button,player){
|
filter:function(button,player){
|
||||||
var card={name:button.link[2]};
|
var card={name:button.link[2]};
|
||||||
|
@ -5425,9 +5418,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:1,
|
order:1,
|
||||||
skillTagFilter:function(player){
|
skillTagFilter:function(player,arg,target){
|
||||||
if(player.storage.jizhao) return false;
|
if(player!=target||player.storage.jizhao) return false;
|
||||||
if(player.hp>0) return false;
|
|
||||||
},
|
},
|
||||||
save:true,
|
save:true,
|
||||||
result:{
|
result:{
|
||||||
|
|