=0) return 10;
if(target.hp>=4) return 5;
if(target.hp==3){
if(player.countCards('h')<=2&&game.hasPlayer(function(current){
return current.hp<=1&&get.attitude(player,current)<0;
})){
return 3;
}
}
return 0;
}
}
}
},
diancai:{
audio:2,
trigger:{global:'phaseUseEnd'},
filter:function(event,player){
if(_status.currentPhase==player) return false;
var num=0;
player.getHistory('lose',function(evt){
if(evt.cards2&&evt.getParent('phaseUse')==event) num+=evt.cards2.length;
});
return num>=player.hp;
},
content:function(){
'step 0'
var num=player.maxHp-player.countCards('h');
if(num>0){
player.draw(num);
}
},
},
diaodu:{
audio:2,
group:"diaodu_use",
subfrequent:['use'],
subSkill:{
use:{
trigger:{
player:"useCard",
},
audio:"diaodu",
frequent:true,
prompt:'是否发动【调度】摸一张牌?',
filter:function (event,player){
return get.type(event.card)=='equip'
},
content:function (){
player.draw('nodelay');
},
ai:{
reverseEquip:true,
effect:{
target:function (card,player,target,current){
if(player==target&&get.type(card)=='equip') return [1,3];
},
},
},
},
},
trigger:{
player:"phaseUseBegin",
},
filter:function (event,player){
return game.hasPlayer(function(current){
return current!=player&¤t.countGainableCards(player,'e')>0;
});
},
direct:true,
content:function (){
'step 0'
player.chooseTarget(get.prompt2('diaodu'),function(card,player,current){
return current!=player&¤t.countGainableCards(player,'e')>0;
}).ai=function(target){
var num=get.attitude(_status.event.player,target);
if(target.isDamaged()&&target.getEquip('baiyin')&&num>0) return 2*num
return -num;
};
'step 1'
if(result.bool){
event.target1=result.targets[0];
player.logSkill('diaodu',event.target1);
player.line(event.target1,'diaodu');
player.gainPlayerCard(event.target1,'e',true);
}
else event.finish();
'step 2'
if(result.bool){
event.card=result.cards[0];
player.chooseTarget('是否将'+get.translation(event.card)+'交给一名其他角色?',function(card,player,current){
return current!=player&¤t!=event.target1;
});
}
else event.finish();
'step 3'
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
target.gain(card,player,'give');
}
},
},
zhengbi:{
trigger:{player:'phaseUseBegin'},
filter:function(event,player){
//if(event.player!=player) return false;
return game.hasPlayer(function(current){return current!=player&¤t.isHealthy()})||player.countCards('h',{type:'basic'});
},
content:function(){
'step 0'
var choices=[];
if(game.hasPlayer(function(current){return current.isHealthy()})) choices.push('选择一名未受伤的角色');
if(player.countCards('h',{type:'basic'})) choices.push('交给一名角色一张基本牌');
player.chooseControl(choices,ui.create.dialog('征辟选择一项
','hidden')).set('ai',function(){
if(choices.length>1){
return 1;
}
return 0;
});
'step 1'
if(result.control=='选择一名未受伤的角色') player.chooseTarget('征辟选择一名未受伤的角色,你对其使用牌没有次数和距离限制直到回合结束
',function(card,player,target){
return target!=player&&target.isHealthy();
},true);
else player.chooseCardTarget({
prompt:'征辟交给一名其他角色一张基本牌,然后该角色交给你一张非基本牌或两张基本牌
',
position:'h',
filterCard:function(card){return get.type(card)=='basic'},
filterTarget:function(card,player,target){
return target!=player;
},
ai1:function(card){return 7-get.value(card)},
//ai2:function(card,player,target){}
}).set('forced',true);
'step 2'
event.target=result.targets[0];
player.line(result.targets,'green');
if(result.cards.length){
event.cards=result.cards;
result.targets[0].gain(result.cards,player,'give');
}
else{
player.storage.zhengbi_eff1=result.targets[0];
player.addTempSkill('zhengbi_eff1');
event.finish();
}
'step 3'
var choices=[];
if(target.countCards('he',{type:['trick','delay','equip']})) choices.push('一张非基本牌');
if(target.countCards('h',{type:'basic'})>1) choices.push('两张基本牌');
if(choices.length) target.chooseControl(choices,ui.create.dialog('征辟交给'+get.translation(player)+'
')).set('ai',function(event,player){
if(choices.length>1){
if(player.countCards('he',{type:['trick','delay','equip']},function(card){return get.value(card)<7})) return 0;
return 1;
}
return 0;
});
else{
if(target.countCards('h')){
var cards=target.getCards('h');
player.gain(cards,target,'giveAuto');
event.finish();
}
else event.finish();
}
'step 4'
var check=(result.control=='一张非基本牌');
target.chooseCard('he',(check?1:2),{type:(check?['trick','delay','equip']:'basic')},true);
'step 5'
if(result.cards){
player.gain(result.cards,target,'giveAuto');
}
},
subSkill:{
eff1:{
sub:true,
mod:{
targetInRange:function (card,player,target){
if(target==player.storage.zhengbi_eff1) return true;
},
cardUsable:function (card,player,num){
if(typeof num=='number'&&player.storage.zhengbi_eff1&&player.storage.zhengbi_eff1.isAlive()) return num+100;
},
playerEnabled:function (card,player,target){
if(player.storage.zhengbi_eff1.isAlive()&&player.storage.zhengbi_eff1&&target!=player.storage.zhengbi_eff1){
var num=player.getCardUsable(card)-100;
if(num<=0) return false;
}
},
},
onremove:true,
},
eff2:{sub:true},
}
},
fengying:{
limited:true,
enable:'phaseUse',
position:'h',
filterCard:true,
selectCard:-1,
filter:function(event,player){
return !player.storage.fengying&&player.countCards('h')>0;
},
filterTarget:function(card,player,target){
return target==player;
},
selectTarget:-1,
discard:false,
lose:false,
content:function(){
'step 0'
player.awakenSkill('fengying');
player.storage.fengying=true;
player.insertPhase();
var evt=_status.event.getParent('phaseUse');
if(evt&&evt.name=='phaseUse'){
evt.skipped=true;
}
'step 1'
var cards=player.getCards('h');
player.discard(cards);
player.chooseTarget('请选择至多'+cards.length+'名角色,令这些角色将手牌摸至手牌上限。',[1,cards.length],function(card,player,target){
return target.countCards('h')2){
return Math.min(5,target.maxHp)-target.countCards('h');
}
return att/3;
});
'step 2'
if(result.bool){
var list=result.targets;
list.sort(lib.sort.seat);
player.line(list,'thunder');
game.asyncDraw(list,function(current){
return current.maxHp-current.countCards('h');
});
}
},
skillAnimation:'epic',
animationColor:'gray',
ai:{
order:0.1,
result:{
player:0,
}
},
},
//新服曹笨
xinshanjia:{
group:["xinshanjia_count"],
locked:false,
mod:{
aiValue:function(player,card,num){
if((player.storage.xinshanjia||0)<3&&get.type(card)=='equip'&&!get.cardtag(card,'gifts')){
if(get.position(card)=='e') return num/player.hp;
return num*player.hp;
}
},
},
subSkill:{
count:{
forced:true,
silent:true,
popup:false,
trigger:{
player:"loseEnd",
},
filter:function(event,player){
return event.es.length>0;
},
content:function (){
lib.skill.xinshanjia.sync(player);
},
},
},
audio:"shanjia",
trigger:{
player:"phaseUseBegin",
},
intro:{
content:"本局游戏内已失去过#张装备区内的牌",
},
frequent:true,
sync:function(player){
var history=player.actionHistory;
var num=0;
for(var i=0;i0) player.markSkill('xinshanjia');
},
content:function (){
'step 0'
player.draw(3);
'step 1'
lib.skill.xinshanjia.sync(player);
var num=3-player.storage.xinshanjia;
if(num>0){
player.chooseToDiscard('he',true,num).ai=get.disvalue;
}
'step 2'
var bool=true;
if(result.cards){
for(var i=0;i2) return false;
},
effect:{
target:function(card,player,target){
if(player.storage.xinshanjia<3&&get.type(card)=='equip'&&!get.cardtag(card,'gifts')) return [1,3];
},
},
},
},
//OL马超
ol_shichou:{
audio:2,
trigger:{
player:'useCard2',
},
direct:true,
filter:function(event,player){
return event.card&&event.card.name=='sha';//&&player.isDamaged();
},
content:function(){
'step 0'
var num=Math.max(1,player.getDamagedHp());
player.chooseTarget('是否发动【誓仇】,令至多'+num+'名其他角色也成为此【杀】的目标?',[1,num],function(card,player,target){
return target!=player&&!trigger.targets.contains(target)&&player.canUse({name:'sha'},target);
}).ai=function(target){
return get.effect(target,{name:'sha'},_status.event.player);
};
'step 1'
if(result.bool&&result.targets&&result.targets.length){
var targets=result.targets;
player.logSkill('ol_shichou',targets);
player.line(targets,trigger.card.nature);
trigger.targets.addArray(targets);
}
},
},
//新大小乔
"new_xingwu":{
audio:"xingwu",
trigger:{
player:"phaseDiscardBegin",
},
direct:true,
intro:{
content:"cards",
onunmark:function(storage,player){
if(storage&&storage.length){
player.$throw(storage,1000);
game.cardsDiscard(storage);
game.log(storage,'被置入了弃牌堆');
storage.length=0;
}
},
},
init:function (player){
if(!player.storage.new_xingwu) player.storage.new_xingwu=[];
},
content:function (){
'step 0'
player.chooseCard(get.prompt2('new_xingwu')).set('ai',function(card){
var player=_status.event.player;
for(var i=0;i0&&
get.attitude(player,current)<0)
})) return 0;
}
return 7-get.value(card);
});
'step 1'
if(result.bool){
player.logSkill('new_xingwu');
if(player.storage.new_xingwu.length<2){
player.$give(result.cards,player,false);
}
player.lose(result.cards,ui.special,'toStorage');
player.storage.new_xingwu=player.storage.new_xingwu.concat(result.cards);
player.markSkill('new_xingwu');
player.syncStorage('new_xingwu');
}
else{
event.finish();
}
'step 2'
var suitlist=[];
for(var i=0;i0) return -1;
return get.damageEffect(target,player,player)*target.sex=='male'?2:1+target.countCards('e')/2;
});
}
'step 4'
if(result.bool){
var target=result.targets[0];
var num=target.sex=="male"?2:1;
target.damage(num);
event.target=target;
player.line(target,'green');
}
else{
event.finish();
}
'step 5'
if(event.target&&event.target.isAlive()){
var es=event.target.getCards('e');
if(es.length){
event.target.discard(es);
}
}
},
ai:{
threaten:1.5,
},
},
"new_luoyan":{
group:["new_luoyan_tianxiang","new_luoyan_liuli"],
},
"new_luoyan_tianxiang":{
inherit:"retianxiang",
filter:function (event,player){
if(!player.storage.new_xingwu||!player.storage.new_xingwu.length) return false;
if(player.hasSkill('retianxiang')||player.hasSkill('tianxiang')) return false;
return lib.skill.retianxiang.filter(event,player);
},
audio:"tianxiang",
},
"new_luoyan_liuli":{
inherit:"liuli",
filter:function (event,player){
if(!player.storage.new_xingwu||!player.storage.new_xingwu.length) return false;
if(player.hasSkill('liuli')) return false;
return lib.skill.liuli.filter(event,player);
},
audio:"liuli",
},
//新孙鲁育
"new_meibu":{
audio:"meibu",
trigger:{
global:"phaseUseBegin",
},
filter:function (event,player){
return event.player!=player&&event.player.isAlive()&&event.player.inRange(player);
},
direct:true,
derivation:["new_zhixi"],
checkx:function (event,player){
if(get.attitude(player,event.player)>=0) return false;
var e2=player.getEquip(2);
if(e2){
if(e2.name=='tengjia') return true;
if(e2.name=='bagua') return true;
}
return event.player.countCards('h')>event.player.hp;
},
content:function (){
"step 0"
var check=lib.skill.new_meibu.checkx(trigger,player);
player.chooseToDiscard(get.prompt2('new_meibu',trigger.player),'he').set('ai',function(card){
if(_status.event.check) return 6-get.value(card);
return 0;
}).set('check',check).set('logSkill','new_meibu');
"step 1"
if(result.bool){
var target=trigger.player;
var card=result.cards[0];
player.line(target,'green');
target.addTempSkill('new_zhixi','phaseUseEnd');
target.addTempSkill('new_meibu_range','phaseUseEnd');
if(card.name!='sha'&&get.type(card)!='trick'&&get.color(card)!='black'){
target.storage.meibu=player;
}
target.markSkillCharacter('new_meibu',player,'魅步','锁定技,出牌阶段,你至多可使用X张牌,你使用了锦囊牌后不能再使用牌(X为你的体力值)。');
}
},
ai:{
expose:0.2,
},
subSkill:{
range:{
mod:{
globalFrom:function (from,to,num){
if(to==from.storage.meibu){
return -Infinity;
}
},
},
sub:true,
},
viewas:{
mod:{
cardEnabled:function (card,player){
return false;
},
cardSavable:function (card,player){
return false;
},
},
sub:true,
},
},
},
"new_mumu":{
audio:"mumu",
trigger:{
player:"phaseUseBegin",
},
direct:true,
content:function (){
'step 0'
player.chooseTarget(get.prompt('new_mumu'),'弃置一名角色装备区内的一张牌,或者获得一名角色装备区内的防具牌',function(card,player,target){
if(target==player) return target.getEquip(2)!=undefined;
return target.countCards('e')>0;
}).set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target)
if(target.getEquip(2)&&player.isEmpty(2)){
return -2*att;
}
return -att;
});
'step 1'
if(result.bool&&result.targets&&result.targets.length){
event.target=result.targets[0];
player.logSkill('new_mumu',event.target);
player.line(event.target,'green');
var e=event.target.getEquip(2);
event.e=e;
if(target==player) event.choice='获得一张防具牌';
else if(e){
player.chooseControl('弃置一张装备牌','获得一张防具牌').set('ai',function(){
if(_status.event.player.getEquip(2)){
return '弃置一张装备牌';
}
return '获得一张防具牌';
});
}
else{
event.choice='弃置一张装备牌';
}
}else event.finish();
'step 2'
var choice=event.choice||result.control;
if(choice=='弃置一张装备牌'){
player.discardPlayerCard(event.target,'e',true);
}
else{
if(event.e){
player.gain(event.e,event.target,'give');
player.addTempSkill('new_mumu2')
}
}
},
},
"new_zhixi":{
trigger:{
player:"useCard1",
},
forced:true,
popup:false,
filter:function (event,player){
if(get.type(event.card,'trick')=='trick') return true;
return player.countUsed(null,true)>=player.hp;
},
onremove:function (player){
player.unmarkSkill('new_meibu');
},
content:function (){
player.addTempSkill('new_meibu_viewas','phaseUseEnd');
},
ai:{presha:true,pretao:true,nokeep:true},
},
"new_mumu2":{
mod:{
cardEnabled:function (card){if(card.name=='sha') return false},
},
},
qingzhong:{
audio:2,
},
qingzhongx:{
audio:'weijing',
trigger:{player:'phaseUseBegin'},
check:function(event,player){
if(game.hasPlayer(function(current){
return current!=player&¤t.isMinHandcard()&&get.attitude(player,current)>0;
})){
return true;
}
if(player.countCards('h')<=2) return true;
// if(player.countCards('h')<=3&&!player.countCards('h','shan')) return true;
//if(player.countCards('h',{type:'basic'})<=1) return true;
return false;
},
content:function(){
player.draw(2);
player.addTempSkill('qingzhongx_give');
},
subSkill:{
give:{
trigger:{player:'phaseUseEnd'},
filter:function(event,player){
return !player.isMinHandcard(true);
},
audio:'weijing',
forced:true,
content:function(){
'step 0'
var list=game.filterPlayer(function(current){
return current.isMinHandcard();
});
if(list.length==1){
if(list[0]!=player){
player.line(list[0],'green');
player.swapHandcards(list[0]);
}
event.finish();
}
else{
player.chooseTarget(true,'清忠:选择一名手牌最少的角色与其交换手牌',function(card,player,target){
return target.isMinHandcard();
}).set('ai',function(target){
return get.attitude(_status.event.player,target);
});
}
'step 1'
if(result.bool){
var target=result.targets[0];
if(target!=player){
player.line(target,'green');
player.swapHandcards(target);
}
}
}
}
}
},
weijing:{
audio:2,
group:['weijing_sha','weijing_shan'],
subSkill:{
sha:{
audio:'qingzhong',
enable:'chooseToUse',
viewAs:{name:'sha',isCard:true},
filterCard:function(){return false},
viewAsFilter:function(player){
if(player.hasSkill('weijing_disable')) return false;
},
selectCard:-1,
mark:false,
precontent:function(){
player.addTempSkill('weijing_disable','roundStart');
},
prompt:'视为使用一张杀',
ai:{
order:function(){
var player=_status.event.player;
if(!player.hasShan()&&!game.hasPlayer(function(current){
return player.canUse('sha',current)&¤t.hp==1&&get.effect(current,{name:'sha'},player,player)>0;
})){
return 0;
}
return 2.95;
},
skillTagFilter:function(player,tag,arg){
if(player.hasSkill('weijing_disable')) return false;
if(arg!='use') return false;
},
respondSha:true,
}
},
shan:{
audio:'qingzhong',
enable:'chooseToUse',
viewAs:{name:'shan',isCard:true},
mark:false,
filterCard:function(){return false},
viewAsFilter:function(player){
if(player.hasSkill('weijing_disable')) return false;
return true;
},
onuse:function(event,player){
player.addTempSkill('weijing_disable','roundStart');
},
selectCard:-1,
prompt:'视为使用一张闪',
ai:{
order:function(){
var player=_status.event.player;
if(player.hasSkill('qingzhongx_give')) return 2.95;
return 3.15;
},
skillTagFilter:function(player){
if(player.hasSkill('weijing_disable')) return false;
},
respondShan:true,
}
},
disable:{
mark:true,
intro:{
content:'本轮已发动'
}
}
}
},
spwenji:{
audio:2,
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return game.hasPlayer(function(current){
return current!=player&¤t.countCards('he');
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt2('spwenji'),function(card,player,target){
return target!=player&&target.countCards('he');
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(att>0) return Math.sqrt(att)/10;
return 5-att;
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('spwenji',target);
target.chooseCard('he',true,'问计:将一张牌交给'+get.translation(player));
}
else{
event.finish();
}
'step 2'
if(result.bool){
player.addTempSkill('spwenji_respond');
player.storage.spwenji_respond=result.cards[0].name;
event.target.give(result.cards,player,true);
}
},
subSkill:{
respond:{
onremove:true,
trigger:{player:'useCard'},
forced:true,
charlotte:true,
audio:'spwenji',
filter:function(event,player){
return event.card.name==player.storage.spwenji_respond;
},
content:function(){
trigger.directHit.addArray(game.filterPlayer(function(current){
return current!=player;
}));
},
}
}
},
sptunjiang:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
frequent:true,
filter:function(event,player){
if(player.getHistory('skipped').contains('phaseUse')) return false;
return player.getHistory('useCard',function(evt){
if(evt.targets&&evt.targets.length&&evt.isPhaseUsing()){
var targets=evt.targets.slice(0);
while(targets.contains(player)) targets.remove(player);
return targets.length>0;
}
return false;
}).length==0;
},
content:function(){
player.draw(game.countGroup());
},
},
bingzhao:{
audio:2,
unique:true,
zhuSkill:true,
forced:true,
intro:{
content:function(group){
return '已选择了'+get.translation(group)+'势力'
},
},
trigger:{global:['gameDrawAfter','zhuUpdate']},
filter:function(event,player){
return !player.storage.bingzhao&&player.hasZhuSkill('bingzhao');
},
content:function(){
'step 0'
var list=[];
for(var i=0;i=7;
},
content:function(){
player.awakenSkill('baijia');
player.gainMaxHp();
player.recover();
var list=game.filterPlayer();
for(var i=0;i1;
};
}
else event.finish();
'step 2'
if(result.bool){
trigger.player.logSkill('bingzhao',player);
player.draw();
player.storage.guju++;
player.markSkill('guju');
}
},
ai:{
combo:'zongkui'
}
},
zongkui:{
trigger:{player:'phaseBefore',global:'roundStart'},
direct:true,
audio:2,
audioname:['tw_beimihu'],
filter:function(event,player){
return game.hasPlayer(function(current){
if(event.name=='roundStart'&&!current.isMinHp()) return false;
return current!=player&&!current.hasMark('zongkui_mark');
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt2('zongkui'),function(card,player,target){
if(_status.event.round&&!target.isMinHp()) return false;
return target!=player&&!target.hasMark('zongkui_mark');
}).set('ai',function(target){
var num=target.isMinHp()?0.5:(1+Math.random());
if(get.attitude(_status.event.player,target)<0){
num+=0.5;
}
return num;
}).set('round',event.triggername=='roundStart');
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('zongkui',target);
target.addMark('zongkui_mark',1);
}
},
subSkill:{
mark:{
marktext:'傀',
intro:{
name2:'傀',
content:'mark'
}
}
},
ai:{
combo:'guju',
threaten:1.4
}
},
zishu:{
audio:2,
locked:true,
subSkill:{
discard:{
trigger:{global:'phaseEnd'},
audio:"zishu",
forced:true,
filter:function(event,player){
if(_status.currentPhase!=player){
var he=player.getCards('h');
var bool=false;
player.getHistory('gain',function(evt){
if(!bool&&evt&&evt.cards){
for(var i=0;i0) return false;
return event.cards.filterInD().length>0
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('yingyuan'),'将'+get.translation(trigger.cards)+'交给一名其他角色',function(card,player,target){
return target!=player;
}).set('ai',function(target){
if(target.hasJudge('lebu')) return 0;
var att=get.attitude(_status.event.player,target);
if(att<3) return 0;
if(target.hasSha()&&_status.event.sha){
att/=5;
}
if(event.wuxie&&target.needsToDiscard(1)){
att/=5;
}
return att/(1+get.distance(player,target,'absolute'));
}).set('sha',trigger.cards[0].name=='sha').set('wuxie',trigger.cards[0].name=='wuxie');
'step 1'
if(result.bool){
player.logSkill('yingyuan',result.targets[0]);
result.targets[0].gain(trigger.cards.filterInD(),'gain2');
player.getHistory('custom').push({yingyuan_name:trigger.card.name});
}
},
},
shuimeng:{
audio:true,
trigger:{player:'phaseUseAfter'},
direct:true,
filter:function(event,player){
return player.countCards('h');
},
content:function(){
'step 0'
player.chooseTarget(get.prompt2('shuimeng'),function(card,player,target){
return player.canCompare(target);
}).set('ai',function(target){
if(!_status.event.goon) return 0;
return -get.attitude(_status.event.player,target);
}).set('goon',player.needsToDiscard()||player.hasCard(function(card){
var val=get.value(card);
if(val<0) return true;
if(val<=5){
return card.number>=11;
}
if(val<=6){
return card.number>=12;
}
return false;
}));
'step 1'
if(result.bool){
player.logSkill('shuimeng',result.targets);
event.target=result.targets[0];
player.chooseToCompare(event.target);
}
else{
event.finish();
}
'step 2'
if(result.bool){
player.chooseUseTarget({name:'wuzhong',isCard:true},true);
}
else{
event.target.useCard({name:'guohe',isCard:true},player);
}
}
},
qianya:{
audio:2,
trigger:{target:'useCardToTargeted'},
direct:true,
filter:function(event,player){
return get.type(event.card,'trick')=='trick'&&player.countCards('h');
},
content:function(){
'step 0'
var nh=player.countCards('h');
player.chooseCardTarget({
filterCard:true,
filterTarget:function(card,player,target){
return target!=player;
},
selectCard:[1,nh],
ai1:function(card){
var player=_status.event.player;
var cardname=_status.event.cardname;
if(_status.event.du) return -get.value(card,player,'raw');
else if(_status.event.shuimeng){
if(cardname=='wuzhong'){
if(player.needsToDiscard(2-ui.selected.cards.length)){
return 10-get.value(card,player,'raw');
}
}
else if(cardname=='guohe'){
if(player.needsToDiscard(-1-ui.selected.cards.length)){
return 10-get.value(card,player,'raw');
}
}
return 0;
}
else if(cardname=='lebu'){
if(player.needsToDiscard(1-ui.selected.cards.length)){
return 8-get.value(card,player,'raw');
}
else{
if(!ui.selected.cards.length){
return 6-get.value(card,player,'raw');
}
return 0;
}
}
else if(cardname=='shunshou'){
if(_status.event.nh<=2) return get.value(card,player,'raw');
}
else if(cardname=='huogong'){
if(player.hp==1) return get.value(card,player,'raw');
}
if(ui.selected.cards.length) return 0;
return 7-get.value(card,player,'raw');
},
ai2:function(target){
var att=get.attitude(_status.event.player,target);
var nh2=target.countCards('h');
var num=Math.sqrt(1+nh2);
var cardname=_status.event.cardname;
if(_status.event.du) return 0.5-att;
else if(_status.event.shuimeng){
return att/num;
}
else if(cardname=='lebu'){
return att/num;
}
else if(cardname=='shunshou'){
if(_status.event.nh<=2) return att/num;
}
else if(cardname=='huogong'){
if(_status.event.player.hp==1) return att/num;
}
if(_status.event.nh>nh2+1){
return att/num;
}
return 0;
},
du:player.hasCard(function(card){
return get.value(card,player,'raw')<0;
}),
shuimeng:trigger.getParent(2).name=='shuimeng',
nh:nh,
cardname:trigger.card.name,
prompt:get.prompt2('qianya')
});
'step 1'
if(result.bool){
player.logSkill('qianya',result.targets);
player.give(result.cards,result.targets[0]);
}
}
},
xianfu:{
trigger:{
global:'gameDrawAfter',
player:'enterGame',
},
forced:true,
filter:function(){
return game.players.length>1;
},
audio:6,
content:function(){
'step 0'
player.chooseTarget('请选择【先辅】的目标',lib.translate.xianfu_info,true,function(card,player,target){
return target!=player&&(!player.storage.xianfu2||!player.storage.xianfu2.contains(target));
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(att>0) return att+1;
if(att==0) return Math.random();
return att;
});
'step 1'
if(result.bool){
var target=result.targets[0];
if(!player.storage.xianfu2) player.storage.xianfu2=[];
player.storage.xianfu2.push(target);
player.addSkill('xianfu2');
}
}
},
xianfu_mark:{
marktext:'辅',
intro:{
name:'先辅',
content:'当你受到伤害后,$受到等量的伤害,当你回复体力后,$回复等量的体力'
},
},
xianfu2:{
audio:'xianfu',
charlotte:true,
trigger:{global:['damageEnd','recoverEnd']},
forced:true,
filter:function(event,player){
if(event.player.isDead()||!player.storage.xianfu2||!player.storage.xianfu2.contains(event.player)||event.num<=0) return false;
if(event.name=='damage') return true;
return player.isDamaged();
},
logTarget:'player',
content:function(){
'step 0'
var target=trigger.player;
if(!target.storage.xianfu_mark) target.storage.xianfu_mark=[];
target.storage.xianfu_mark.add(player);
target.storage.xianfu_mark.sortBySeat();
target.markSkill('xianfu_mark');
game.delayx();
'step 1'
player[trigger.name](trigger.num,'nosource');
},
onremove:function(player){
if(!player.storage.xianfu2) return;
game.countPlayer(function(current){
if(player.storage.xianfu2.contains(current)&¤t.storage.xianfu_mark){
current.storage.xianfu_mark.remove(player);
if(!current.storage.xianfu_mark.length) current.unmarkSkill('xianfu_mark');
else current.markSkill('xianfu_mark');
}
});
delete player.storage.xianfu2;
},
group:'xianfu3',
},
xianfu3:{
trigger:{global:'dieBegin'},
silent:true,
filter:function(event,player){
return event.player==player||player.storage.xianfu2&&player.storage.xianfu2.contains(player);
},
content:function(){
if(player==event.player) lib.skill.xianfu2.onremove(player);
else player.storage.xianfu2.remove(event.player);
}
},
chouce:{
trigger:{player:'damageEnd'},
content:function(){
'step 0'
event.num=trigger.num;
'step 1'
player.judge();
'step 2'
event.color=result.color;
if(event.color=='black'){
player.chooseTarget('弃置一名角色区域内的一张牌',function(card,player,target){
return target.countCards('hej');
}).set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target);
if(att<0){
att=-Math.sqrt(-att);
}
else{
att=Math.sqrt(att);
}
return att*lib.card.guohe.ai.result.target(player,target);
})
}
else{
var next=player.chooseTarget('令一名角色摸一张牌');
if(player.storage.xianfu2&&player.storage.xianfu2.length){
next.set('prompt2','(若目标为'+get.translation(player.storage.xianfu2)+'则改为摸两张牌)');
}
next.set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target)/Math.sqrt(1+target.countCards('h'));
if(player.storage.xianfu2&&player.storage.xianfu2.contains(target)) return att*2;
return att;
})
}
'step 3'
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
if(event.color=='black'){
player.discardPlayerCard(target,'hej',true);
}
else{
if(player.storage.xianfu2&&player.storage.xianfu2.contains(target)){
if(!target.storage.xianfu_mark) target.storage.xianfu_mark=[];
target.storage.xianfu_mark.add(player);
target.storage.xianfu_mark.sortBySeat();
target.markSkill('xianfu_mark');
target.draw(2);
}
else{
target.draw();
}
}
}
'step 4'
if(--event.num>0){
player.chooseBool(get.prompt2('chouce'));
}
else{
event.finish();
}
'step 5'
if(result.bool){
player.logSkill('chouce');
event.goto(1);
}
},
ai:{
maixie:true,
maixie_hp:true,
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(!target.hasFriend()) return;
if(target.hp>=4) return [1,get.tag(card,'damage')*1.5];
if(target.hp==3) return [1,get.tag(card,'damage')*1];
if(target.hp==2) return [1,get.tag(card,'damage')*0.5];
}
}
}
}
},
fuqi:{
audio:2,
forced:true,
trigger:{
player:"useCard",
},
filter:function(event,player){
return event.card&&(get.type(event.card)=='trick'||get.type(event.card)=='basic'&&!['shan','tao','jiu','du'].contains(event.card.name))&&game.hasPlayer(function(current){
return current!=player&&get.distance(current,player)<=1;
});
},
content:function(){
trigger.directHit.addArray(game.filterPlayer(function(current){
return current!=player&&get.distance(current,player)<=1;
}));
},
},
wylianji:{
enable:'phaseUse',
audio:2,
usable:1,
filter:function(event,player){
return player.hasCard(lib.skill.wylianji.filterCard);
},
check:function(card){
if(card.name=='sha') return 1;
else{
if(get.tag(card,'damage')){
if(get.tag(card,'multineg')) return 5;
return 2;
}
}
return 0;
},
filterCard:function(card){
return get.name(card)=='sha'||(get.type(card,'trick')=='trick'&&get.color(card)=='black'&&!get.info(card).multitarget)&&get.info(card).enable;
},
filterTarget:function(card,player,target){
return target!=player&&!target.isMin()&&
(player.canUse(card,target,false)||game.hasPlayer(function(current){
return current!=player&&target.canUse(card,current);
}));
},
discard:false,
lose:true,
delay:false,
content:function(){
'step 0'
player.showCards(get.translation(player)+'对'+get.translation(target)+'发动了【连计】',cards);
'step 1'
var equip1=get.cardPile2(function(card){
return get.subtype(card)=='equip1';
});
if(!equip1){
player.popup('连计失败');
game.log('牌堆中无装备');
event.finish();
return;
}
if(equip1.name=='qinggang'&&!lib.inpile.contains('qibaodao')){
equip1.remove();
equip1=game.createCard2('qibaodao',equip1.suit,equip1.number);
}
target.$draw(equip1);
target.chooseUseTarget(true,equip1,'noanimate','nopopup');
game.delay();
'step 2'
game.updateRoundNumber();
var card=cards[0];
var bool1=game.hasPlayer(function(current){
return current!=player&&target.canUse(card,current);
});
var bool2=player.canUse(card,target,false);
if(bool1&&bool2){
target.chooseControl(function(){
return 0;
}).set('choiceList',[
'对除'+get.translation(player)+'以外的角色使用'+get.translation(cards)+',并将装备区里的武器牌交给该牌的一个目标角色',
'视为'+get.translation(player)+'对你使用'+get.translation(cards)+',并将装备区内的武器牌交给'+get.translation(player)
]);
}
else if(bool1){
event.directindex=0;
}
else if(bool2){
event.directindex=1;
}
else{
event.finish();
}
'step 3'
var card=cards[0];
if(result&&typeof event.directindex!='number'){
event.directindex=result.index;
}
if(event.directindex==1){
event.insert(lib.skill.wylianji.content_use,{
player:player,
target:target,
card:card
})
}
else{
event.insert(lib.skill.wylianji.content_give,{
player:target,
card:card,
targets:game.filterPlayer(function(current){
return current!=player;
})
});
}
},
content_use:function(){
'step 0'
player.useCard(card,target);
'step 1'
if(!get.owner(card)){
target.gain(card,'gain2');
}
'step 2'
var equip1=target.getEquip(1);
if(equip1){
game.delay();
target.give(equip1,player);
target.line(player);
}
},
content_give:function(){
'step 0'
var select=get.select(get.info(card).selectTarget);
if(select[1]==-1){
for(var i=0;i1){
player.chooseTarget(true,'将'+get.translation(equip1)+'交给一名角色',function(card,player,target){
return _status.event.list.contains(target);
}).set('ai',function(target){
return get.attitude(player,target);
}).set('list',_status.event.list);
event.equip1=equip1;
}
else{
if(event.list.length==1){
player.give(equip1,event.list[0]);
player.line(event.list);
}
event.finish();
}
}
else{
event.finish();
}
'step 3'
if(result.bool&&result.targets.length&&event.equip1){
player.give(event.equip1,result.targets[0]);
player.line(result.targets);
}
},
ai:{
order:7,
result:{
target:function(player,target){
if(ui.selected.cards.length){
var card=ui.selected.cards[0];
var bool=(card.name!='sha');
if(game.hasPlayer(function(current){
return target.canUse(card,current,bool)&&get.effect(current,card,target,player)>0;
})){
var num=1;
if(target.getEquip(1)){
num=0.6;
}
if(target.hasSkillTag('noe')) 2*num;
return num;
}
}
return 0;
}
}
}
},
moucheng:{
audio:2,
derivation:['jingong','wy_meirenji','wy_xiaolicangdao'],
trigger:{global:'damageEnd'},
forced:true,
popup:false,
filter:function(event,player){
return event.source!=player&&event.getParent(2).name=='useCard'&&event.getParent(3).name=='wylianjiInserted';
},
init:function(player){
player.storage.moucheng=0;
},
intro:{
content:'已造成#点伤害'
},
unique:true,
juexingji:true,
content:function(){
player.storage.moucheng+=trigger.num;
if(player.hasSkill('moucheng')){
player.markSkill('moucheng');
player.syncStorage('moucheng');
}
if(player.storage.moucheng>=3){
event.trigger('mouchengAwaken');
}
},
group:'moucheng_awaken',
subSkill:{
awaken:{
trigger:{player:'mouchengAwaken'},
forced:true,
skillAnimation:true,
animationColor:'gray',
content:function(){
player.awakenSkill('moucheng');
player.removeSkill('wylianji');
player.addSkill('jingong');
}
}
}
},
jingong:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
return player.countCards('he',function(card){
return card.name=='sha'||get.type(card)=='equip';
});
},
delay:false,
usable:1,
content:function(){
'step 0'
var list=get.inpile('trick').randomGets(2);
if(Math.random()<0.5){
list.push('wy_meirenji');
}
else{
list.push('wy_xiaolicangdao');
}
for(var i=0;i=num) return false;
return player.countCards('h')>0;
},
filterTarget:function(event,player,target){
return player.canCompare(target);
},
content:function(){
'step 0'
player.chooseToCompare(target);
'step 1'
if(!result.bool) event.finish();
event.num=result.num1;
'step 2'
if(num<=5&&target.countGainableCards(player,'he')>0) player.gainPlayerCard(target,'he',true);
'step 3'
if(num<=9){
var card=get.cardPile2(function(x){
return x.name=='sha';
});
if(card) player.gain(card,'gain2');
}
'step 4'
if(num<=13){
var card={name:'sha',nature:'thunder'};
if(player.canUse(card,target,false)) player.useCard(card,target,false);
}
},
ai:{
order:4,
result:{
target:function(player,target){
var sort=function(a,b){
return b.number-a.number;
};
var ps=player.getCards('h').sort(sort);
var ts=target.getCards('h').sort(sort);
if(ps[0].number>ts[0].number){
var effect=get.effect(target,{name:'sha',nature:'thunder'},player,player)
if(ps[0].number<6&&target.countCards('he')>1) effect-=2;
if(ps[0].number<10) effect-=1;
return effect;
}
return ps.length>=ts.length?-0.5:0;
},
},
},
},
fenyue:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
if(!player.countCards('h')) return false;
var num;
if(get.mode()=='identity'){
num=game.countPlayer(function(current){
return current.identity=='zhong'||current.identity=='mingzhong';
});
}
else{
num=1;
}
if(player.getStat().skill.fenyue>=num) return false;
return true;
},
filterTarget:function(card,player,target){
return player.canCompare(target);
},
ai:{
order:2.8,
result:{
target:function(player,target){
if(get.attitude(player,target)<0&&player.hasCard(function(card){
return (card.number>=9&&get.value(card)<=5)||get.value(card)<=3;
})){
return get.effect(target,{name:'sha'},player,target);
}
else{
return 0;
}
}
}
},
content:function(){
'step 0'
player.chooseToCompare(target);
'step 1'
if(result.bool){
player.chooseControl(function(){
return 1;
}).set('choiceList',[
'令'+get.translation(target)+'不能使用或打出手牌直到回合结束',
'视为对'+get.translation(target)+'使用一张杀(不计入次数限制)'
]);
}
else{
var evt=_status.event.getParent('phaseUse');
if(evt&&evt.name=='phaseUse'){
evt.skipped=true;
}
event.finish();
}
'step 2'
if(result.control=='选项一'){
target.addTempSkill('fenyue2');
}
else{
player.useCard({name:'sha',isCard:true},target,false);
}
}
},
fenyue2:{
mark:true,
mod:{
cardEnabled2:function (card){
if(get.position(card)=='h') return false;
},
},
intro:{
content:'不能使用或打出手牌'
}
},
huoshui:{
audio:2,
enable:'phaseUse',
unique:true,
forceunique:true,
filter:function(event,player){
if(player.name1=='gz_zoushi') return player.isUnseen(0);
return player.isUnseen(1);
},
content:function(){
if(player.name1=='gz_zoushi') player.showCharacter(0);
else player.showCharacter(1);
},
global:'huoshui_mingzhi'
},
huoshui_mingzhi:{
ai:{
nomingzhi:true,
skillTagFilter:function(player){
if(_status.currentPhase&&_status.currentPhase!=player&&_status.currentPhase.hasSkill('huoshui')){
return true;
}
return false;
}
}
},
qingcheng:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
return player.countCards('he',{type:'equip'})&&game.hasPlayer(function(current){
return current!=player&&!current.isUnseen(2);
});
},
filterCard:{type:'equip'},
position:'he',
filterTarget:function(card,player,target){
return !target.isUnseen(2);
},
check:function(card){
return 6-get.value(card,_status.event.player);
},
content:function(){
'step 0'
if(get.is.jun(target)){
event._result={control:'副将'};
}
else{
var choice='主将';
var skills=lib.character[target.name2][3];
for(var i=0;i=0) return 0;
if(player.hasCard(function(card){
return get.tag(card,'damage')&&player.canUse(card,target,true,true);
})){
if(target.maxHp>3) return -0.5;
return -1;
}
return 0;
}
}
}
},
qingcheng_ai:{
ai:{
effect:{
target:function(card){
if(get.tag(card,'damage')) return 2;
}
}
}
},
zhuoshui:{
audio:'huoshui',
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
content:function(){
game.countPlayer(function(current){
if(current!=player&&!current.hasSkill('fengyin')){
player.line(current,'green');
current.addTempSkill('fengyin');
}
});
}
},
zqingcheng:{
audio:'qingcheng',
enable:'phaseUse',
filter:function(event,player){
return player.countCards('he',{type:'equip'});
},
filterCard:{type:'equip'},
position:'he',
filterTarget:function(card,player,target){
return target!=player;
},
check:function(card){
var player=_status.event.player;
if(game.hasPlayer(function(current){
return get.attitude(player,current)>2&¤t.isTurnedOver();
})){
return 10-get.value(card,player);
}
return 6-get.value(card,player);
},
content:function(){
'step 0'
target.turnOver();
'step 1'
target.draw(2);
},
ai:{
order:8,
result:{
target:function(player,target){
if(target.hasSkillTag('noturn')) return 0;
if(target.isTurnedOver()) return 2;
return -0.5;
}
}
}
},
zfengshi:{
audio:2,
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
return event.card.name=='sha'&&event.target.countCards('e');
},
logTarget:'target',
check:function(event,player){
if(event.target.hasSkillTag('noe')) return false;
return get.attitude(player,event.target)<0;
},
content:function(){
trigger.target.chooseToDiscard('e',true);
}
},
chuanxin:{
audio:2,
trigger:{source:'damageBegin2'},
filter:function(event,player){
if(_status.currentPhase!=player) return false;
if(!_status.event.getParent('phaseUse')) return false;
if(event.card&&(event.card.name=='sha'||event.card.name=='juedou')&&event.getParent().name==event.card.name){
if(get.mode()=='guozhan'){
return (event.player.identity!='qun'||player.identity=='ye')&&
!event.player.isUnseen()&&event.player.hasViceCharacter();
}
else{
var info=lib.character[event.player.name];
if(!info) return false;
var skills=event.player.getSkills();
for(var i=0;i=2) return 1;
return 0;
}).set('choiceList',['弃置装备区内的所有牌并失去一点体力',get.mode()=='guozhan'?'移除副将牌':'随机移除武将牌上的一个技能']);
}
else{
event._result={index:1};
}
'step 1'
if(result.index==1){
if(get.mode()!='guozhan'){
var info=lib.character[trigger.player.name];
var skills=trigger.player.getSkills();
var list=[];
for(var i=0;i0;
},
//logTarget:'source',
content:function(){
var source=_status.currentPhase;
if(source.hasSkill('hengjiang2')){
source.storage.hengjiang2+=trigger.num;
source.storage.hengjiang3.add(player);
source.updateMarks();
}
else{
source.storage.hengjiang3=[player];
source.storage.hengjiang2=trigger.num;
source.addTempSkill('hengjiang2');
}
},
ai:{
maixie_defend:true,
}
},
hengjiang2:{
mark:true,
intro:{
content:'手牌上限-#'
},
mod:{
maxHandcard:function(player,num){
return num-player.storage.hengjiang2;
}
},
onremove:function(player){
delete player.storage.hengjiang2;
delete player.storage.hengjiang3;
},
trigger:{player:'phaseDiscardEnd'},
filter:function(event,player){
if(event.cards&&event.cards.length) return false;
var players=player.storage.hengjiang3;
for(var i=0;i1){
goon=player.hasCard(function(card){
return card.number>10&&get.value(card)<=5;
});
}
else{
goon=player.hasCard(function(card){
return (card.number>=9&&get.value(card)<=5)||get.value(card)<=3;
});
}
player.chooseTarget(get.prompt2('shuangren'),function(card,player,target){
return player.canCompare(target);
}).set('ai',function(target){
var player=_status.event.player;
if(_status.event.goon&&get.attitude(player,target)<0){
return get.effect(target,{name:'sha'},player,player);
}
return 0;
}).set('goon',goon);
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('shuangren',target);
player.chooseToCompare(target);
}
else{
event.finish();
}
'step 2'
if(result.bool){
var target=event.target;
if(target.identity!='ye'&&target.identity!='unknown'&&game.hasPlayer(function(current){
if(!player.canUse('sha',current,false)) return false;
if(target==current) return false;
if(get.mode()=='guozhan'){
return target.identity==current.identity;
}
return true;
})){
var str='对一名';
if(get.mode()=='guozhan'){
str+=get.translation(target.identity)+'势力的';
}
player.chooseTarget(str+'角色使用一张杀',true,function(card,player,target){
if(!player.canUse('sha',target,false)) return false;
if(get.mode()=='guozhan'){
return target.identity==_status.event.identity;
}
return true;
}).set('ai',function(target){
var player=_status.event.player;
return get.effect(target,{name:'sha'},player,player);
}).set('identity',target.identity);
}
else{
player.useCard({name:'sha',isCard:true},target,false);
event.finish();
}
}
else{
trigger.cancel();
event.finish();
}
'step 3'
if(result.bool&&result.targets&&result.targets.length){
player.useCard({name:'sha',isCard:true},result.targets[0],false);
}
}
},
kuanshi:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('kuanshi')).set('ai',function(target){
if(get.attitude(_status.event.player,target)>0){
return 1/Math.sqrt(target.hp+1);
}
return 0;
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('kuanshi');
target.storage.kuanshi2=player;
target.addSkill('kuanshi2');
}
}
},
kuanshi2:{
/*mark:'character',
intro:{
content:'下一次受到超过1点的伤害时,防止此伤害,然后$跳过下个回合的摸牌阶段'
},*/
trigger:{player:'damageBegin4'},
forced:true,
filter:function(event,player){
return event.num>1;
},
//priority:-11,
content:function(){
trigger.cancel();
player.storage.kuanshi2.skip('phaseDraw');
player.removeSkill('kuanshi2');
},
group:'kuanshi2_remove',
onremove:true,
subSkill:{
remove:{
trigger:{global:['phaseZhunbeiBegin','dieAfter']},
forced:true,
popup:false,
filter:function(event,player){
return event.player==player.storage.kuanshi2;
},
content:function(){
player.removeSkill('kuanshi2');
}
}
}
},
xiashu:{
audio:2,
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return player.countCards('h')>0;
},
content:function(){
'step 0'
var maxval=0;
var hs=player.getCards('h');
for(var i=0;i0) return 0.1;
if(maxval>=8) return 0;
if(att==0) return 0.2;
if(dh>=3) return dh;
if(dh==2){
if(maxval<=7) return dh;
}
if(maxval<=6) return dh;
return 0;
}).set('maxval',maxval);
'step 1'
if(result.bool){
player.logSkill('xiashu',result.targets);
event.target=result.targets[0];
var hs=player.getCards('h');
event.target.gain(hs,player,'giveAuto');
}
else{
event.finish();
}
'step 2'
var hs=event.target.getCards('h');
if(!hs.length){
event.finish();
return;
}
hs.sort(function(a,b){
return get.value(b,player,'raw')-get.value(a,player,'raw');
});
event.target.chooseCard([1,hs.length],'展示至少一张手牌',true).set('ai',function(card){
var rand=_status.event.rand;
var list=_status.event.list;
if(_status.event.att){
if(ui.selected.cards.length>=Math.ceil(list.length/2)) return 0;
var value=get.value(card);
if(_status.event.getParent().player.isHealthy()){
value+=(get.tag(card,'damage')?1.5:0)+(get.tag(card,'draw')?2:0);
}
return value;
}
if(ui.selected.cards.length>=Math.floor(list.length/2)) return 0;
return (list.indexOf(card)%2==rand)?1:0;
}).set('rand',(Math.random()<0.6)?1:0).set('list',hs).set('att',get.attitude(event.target,player)>0);
'step 3'
event.target.showCards(result.cards);
event.cards1=result.cards;
event.cards2=event.target.getCards('h',function(card){
return !event.cards1.contains(card);
});
'step 4'
var choice;
var num1=event.cards1.length;
var num2=event.cards2.length;
if(get.attitude(event.target,player)>0&&num1>=num2){
choice=0;
}
else if(num1==num2){
choice=(Math.random()<0.45)?0:1;
}
else if(num1>num2){
if(num1-num2==1){
choice=(Math.random()<0.6)?0:1;
}
else{
choice=0;
}
}
else{
if(num2-num1==1){
choice=(Math.random()<0.6)?1:0;
}
else{
choice=1;
}
}
player.chooseControl(function(event,player){
return _status.event.choice;
}).set('choiceList',['获得'+get.translation(event.target)+'展示的牌',
'获得'+get.translation(event.target)+'未展示的牌']).set('choice',choice);
'step 5'
if(result.index==0){
player.gain(event.cards1,target,'give');
}
else{
player.gain(event.cards2,target,'giveAuto');
}
},
ai:{
expose:0.1
}
},
sheyan:{
audio:2,
trigger:{target:'useCardToTarget'},
filter:function(event,player){
if(!event.targets||!event.targets.contains(player)) return false;
var info=get.info(event.card);
if(info.type!='trick') return false;
if(info.multitarget) return false;
if(event.targets.length>1) return true;
return game.hasPlayer(function(current){
return !event.targets.contains(current)&&lib.filter.targetEnabled2(event.card,event.player,current);
});
},
direct:true,
content:function(){
'step 0'
var bool1=(trigger.targets.length>1);
var bool2=game.hasPlayer(function(current){
return !trigger.targets.contains(current)&&lib.filter.targetEnabled2(trigger.card,trigger.player,current);
});
if(bool1&&bool2){
player.chooseControlList(get.prompt('sheyan'),['为'+get.translation(trigger.card)+'增加一个目标','为'+get.translation(trigger.card)+'减少一个目标'],function(event,player){
if(_status.event.add) return 0;
return 1;
}).set('add',get.effect(player,trigger.card,trigger.player,player)>=0);
}
else if(bool2){
event.type='add';
event.goto(2);
event.unchosen=true;
}
else{
event.type='remove';
event.goto(2);
event.unchosen=true;
}
'step 1'
if(result.control=='cancel2'){
event.finish();
}
else if(result.index==1){
event.type='remove';
}
else{
event.type='add';
}
'step 2'
if(event.type=='add'){
player.chooseTarget(event.unchosen?get.prompt('sheyan'):null,'为'+get.translation(trigger.card)+'增加一个目标',function(card,player,target){
var trigger=_status.event.getTrigger();
return !trigger.targets.contains(target)&&lib.filter.targetEnabled2(trigger.card,trigger.player,target);
}).set('ai',function(target){
var trigger=_status.event.getTrigger();
return get.effect(target,trigger.card,trigger.player,_status.event.player);
});
}
else{
player.chooseTarget(event.unchosen?get.prompt('sheyan'):null,'为'+get.translation(trigger.card)+'减少一个目标',function(card,player,target){
return _status.event.targets.contains(target);
}).set('ai',function(target){
var trigger=_status.event.getTrigger();
return -get.effect(target,trigger.card,trigger.player,_status.event.player);
}).set('targets',trigger.targets);
}
'step 3'
if(result.bool){
if(!event.isMine()) game.delayx();
event.target=result.targets[0];
}
else{
event.finish();
}
'step 4'
player.logSkill('sheyan',event.target);
if(event.type=='add'){
trigger.targets.push(event.target);
}
else{
trigger.getParent().excluded.add(event.target);
}
},
ai:{
expose:0.2
}
},
bingzheng:{
audio:2,
trigger:{player:'phaseUseEnd'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('bingzheng'),function(card,player,target){
return target.countCards('h')!=target.hp;
}).set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target);
var nh=target.countCards('h');
if(att>0){
if(nh==target.hp-1){
if(player==target) return att+1;
return att+2;
}
if(player==target&&player.needsToDiscard()) return att/3;
return att;
}
else{
if(nh==target.hp+1) return -att;
if(nh==0) return 0;
return -att/2;
}
});
'step 1'
if(result.bool){
player.logSkill('bingzheng',result.targets);
event.target=result.targets[0];
if(event.target.countCards('h')){
player.chooseControl(function(event,player){
var target=event.target;
if(get.attitude(player,target)<0) return 1;
return 0;
}).set('choiceList',['令'+get.translation(event.target)+'摸一张牌',
'令'+get.translation(event.target)+'弃置一张手牌']);
}
else{
event.directfalse=true;
}
}
else{
event.finish();
}
'step 2'
if(event.directfalse||result.index==0){
event.target.draw();
}
else{
event.target.chooseToDiscard('h',true);
}
'step 3'
if(event.target.countCards('h')==event.target.hp){
player.draw();
if(event.target==player){
event.finish();
return;
}
var next=player.chooseCard('是否交给'+get.translation(event.target)+'一张牌?','he');
next.set('ai',function(card){
if(get.position(card)!='h') return 0;
if(_status.event.shan&&card.name=='shan'){
return 11;
}
if(_status.event.goon){
return 10-get.value(card);
}
return -get.value(card,_status.event.player,'raw');
});
if(get.attitude(player,event.target)>1&&
player.countCards('h','shan')>1&&player.countCards('h')>event.target.countCards('h')){
next.set('shan',true);
}
if(get.attitude(player,event.target)>0&&player.needsToDiscard()){
next.set('goon',true);
}
}
else{
event.finish();
}
'step 4'
if(result.bool){
event.target.gain(result.cards,player,'giveAuto');
}
},
ai:{
expose:0.2,
threaten:1.4
}
},
fuman:{
audio:2,
enable:'phaseUse',
filterTarget:function(card,player,target){
return !target.hasSkill('fuman2')&&target!=player;
},
filter:function(event,player){
return player.countCards('h','sha');
},
discard:false,
lose:false,
delay:false,
filterCard:{name:'sha'},
content:function(){
target.gain(cards,player,'giveAuto');
target.storage.fuman3=cards[0];
target.storage.fuman2=player;
target.addTempSkill('fuman2',{player:'phaseAfter'});
},
check:function(card){
return 6-get.value(card);
},
ai:{
order:2,
result:{
target:function(player,target){
if(!target.hasSha()) return 1.2;
return 1;
}
}
}
},
fuman2:{
mod:{
aiOrder:function(player,card,num){
if(card==player.storage.fuman3&&player.storage.fuman2.isIn()) return num+get.sgn(get.attitude(player,player.storage.fuman2));
},
},
trigger:{player:'useCard'},
forced:true,
filter:function(event,player){
return event.cards.contains(player.storage.fuman3)&&player.storage.fuman2.isIn();
},
mark:true,
intro:{
content:'下个回合结束之前使用“抚蛮”牌时,令$一张牌'
},
content:function(){
'step 0'
game.delayx();
'step 1'
player.line(player.storage.fuman2,'green');
player.storage.fuman2.draw();
},
onremove:function(player){
delete player.storage.fuman2;
delete player.storage.fuman3;
},
},
qizhou:{
trigger:{player:['phaseBefore','equipEnd','loseEnd']},
forced:true,
popup:false,
derivation:['mashu','reyingzi','duanbing','fenwei'],
filter:function(event,player){
if(player.equiping) return false;
var suits=[];
var es=player.getCards('e');
for(var i=0;i0;
}
},
content:function(){
var suits=[];
var es=player.getCards('e');
for(var i=0;i0;
}
if(player.hasSha()&&geteff(target)){
var num=game.countPlayer(function(current){
return current!=player&&get.distance(player,current)<=1&&geteff(current);
});
if(num==0){
if(game.hasPlayer(function(current){
return player.canUse('sha',current)&&geteff(current)&¤t!=target;
})){
return 1;
}
}
else if(num==1){
return 1;
}
}
return 0;
}
}
}
},
fenxun2:{
mark:'character',
onremove:true,
intro:{
content:'到$的距离视为1'
},
mod:{
globalFrom:function(from,to){
if(to==from.storage.fenxun2){
return -Infinity;
}
}
}
},
duanbing:{
audio:2,
audioname:['heqi'],
trigger:{player:'useCard2'},
filter:function(event,player){
if(event.card.name!='sha') return false;
return game.hasPlayer(function(current){
return !event.targets.contains(current)&&get.distance(player,current)<=1&&player.canUse(event.card,current);
});
},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('duanbing'),'为'+get.translation(trigger.card)+'增加一个目标',function(card,player,target){
return !_status.event.sourcex.contains(target)&&get.distance(player,target)<=1&&player.canUse(_status.event.card,target);
}).set('sourcex',trigger.targets).set('ai',function(target){
var player=_status.event.player;
return get.effect(target,_status.event.card,player,player);
}).set('card',trigger.card);
'step 1'
if(result.bool){
if(!event.isMine()&&!_status.connectMode) game.delayx();
event.target=result.targets[0];
}
else{
event.finish();
}
'step 2'
player.logSkill('duanbing',event.target);
trigger.targets.push(event.target);
},
ai:{
effect:{
player:function(card,player,target,current,isLink){
if(!isLink&&card.name=='sha'){
if(player._duanbingtmp) return;
player._duanbingtmp=true;
if(get.effect(target,card,player,player)<=0){
delete player._duanbingtmp;
return;
}
if(game.hasPlayer(function(current){
return current!=target&&get.distance(player,current)<=1&&
player.canUse(card,current)&&get.effect(current,card,player,player)>0;
})){
delete player._duanbingtmp;
return [1,1];
}
delete player._duanbingtmp;
}
}
}
}
},
fuhan:{
audio:2,
trigger:{player:'phaseBegin'},
unique:true,
limited:true,
skillAnimation:true,
animationColor:'orange',
forceunique:true,
//filter:function(event,player){
// return player.storage.fanghun2>0;
//},
prompt:function(event,player){
var num=Math.max(2,player.storage.fanghun2||0);
num=Math.min(num,8);
return get.prompt('fuhan')+'(体力上限:'+num+')';
},
check:function(event,player){
var num=Math.max(2,player.storage.fanghun2||0);
if(num==1) return false;
if(player.hp<=1) return true;
if(num==2) return false;
if(num==3) return player.hp<3&&player.isMinHp();
return true;
},
content:function(){
'step 0'
if(player.storage.fanghun) player.draw(player.storage.fanghun);
player.removeMark('fanghun',player.storage.fanghun);
event.num=Math.max(2,player.storage.fanghun2||0);
var list;
if(_status.characterlist){
list=[];
for(var i=0;i<_status.characterlist.length;i++){
var name=_status.characterlist[i];
if(lib.character[name][1]=='shu') list.push(name);
}
}
else if(_status.connectMode){
list=get.charactersOL(function(i){
return lib.character[i][1]!='shu';
});
}
else{
list=get.gainableCharacters(function(info){
return info[1]=='shu';
});
}
var players=game.players.concat(game.dead);
for(var i=0;i0) player.gainMaxHp(num);
else player.loseMaxHp(-num);
player.recover();
}
},
refuhan:{
audio:'fuhan',
trigger:{player:'phaseBegin'},
unique:true,
limited:true,
skillAnimation:true,
animationColor:'orange',
forceunique:true,
filter:function(event,player){
return player.countMark('fanghun')>0;
},
content:function(){
'step 0'
if(player.storage.fanghun) player.draw(player.storage.fanghun);
player.removeMark('fanghun',player.storage.fanghun);
var list;
if(_status.characterlist){
list=[];
for(var i=0;i<_status.characterlist.length;i++){
var name=_status.characterlist[i];
if(lib.character[name][1]=='shu') list.push(name);
}
}
else if(_status.connectMode){
list=get.charactersOL(function(i){
return lib.character[i][1]!='shu';
});
}
else{
list=get.gainableCharacters(function(info){
return info[1]=='shu';
});
}
var players=game.players.concat(game.dead);
for(var i=0;i(name=='jiu'?1:0)&&player.getUseValue({name:name})>0){
var temp=get.order({name:name});
if(temp>max){
max=temp;
name2=map[name];
}
}
}
if(name2==get.name(card,player)) return 1;
return 0;
}
return 1;
},
filterCard:function(card,player,event){
event=event||_status.event;
var filter=event._backup.filterCard;
var name=get.name(card,player);
if(name=='sha'&&filter({name:'shan',cards:[card]},player,event)) return true;
if(name=='shan'&&filter({name:'sha',cards:[card]},player,event)) return true;
if(name=='tao'&&filter({name:'jiu',cards:[card]},player,event)) return true;
if(name=='jiu'&&filter({name:'tao',cards:[card]},player,event)) return true;
return false;
},
filter:function(event,player){
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
var filter=event.filterCard;
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:'tao'},player,event)&&player.countCards('h','jiu')) return true;
if(filter({name:'jiu'},player, event)&&player.countCards('h','tao')) return true;
return false;
},
onrespond:function(){return this.onuse.apply(this,arguments)},
onuse:function(result,player){
player.removeMark('fanghun',1);
},
ai:{
respondSha:true,
respondShan:true,
save:true,
skillTagFilter:function(player,tag){
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
var name;
switch(tag){
case 'respondSha':name='shan';break;
case 'respondShan':name='sha';break;
case 'save':name='jiu';break;
}
if(!player.countCards('h',name)) return false;
},
order:function(item,player){
if(player&&_status.event.type=='phase'){
var max=0;
var list=['sha','tao','jiu'];
var map={sha:'shan',tao:'jiu',jiu:'tao'}
for(var i=0;i(name=='jiu'?1:0)&&player.getUseValue({name:name})>0){
var temp=get.order({name:name});
if(temp>max) max=temp;
}
}
if(max>0) max+=0.3;
return max;
}
return 4;
},
},
},
}
},
yjixi:{
init:function(player){
player.storage.yjixi=0;
},
derivation:'wangzun',
trigger:{player:'phaseJieshuBegin'},
forced:true,
filter:function(event,player){
return player.storage.yjixi>=3;
},
skillAnimation:true,
animationColor:'gray',
unique:true,
juexingji:true,
content:function(){
'step 0'
player.awakenSkill('yjixi');
player.gainMaxHp();
player.recover();
'step 1'
var str='摸两张牌';
var mode=get.mode();
var choice='选项一';
if(mode=='identity'||(mode=='versus'&&_status.mode=='four')){
var list=[];
var zhu=get.zhu(player);
if(zhu&&zhu!=player&&zhu.skills){
for(var i=0;i=6) return 0;
return 20-num;
}
else{
if(_status.event.player.needsToDiscard()){
return 7-num;
}
}
return 0;
},
discard:false,
lose:false,
delay:false,
content:function(){
'step 0'
target.gain(cards,player,'giveAuto');
if(get.color(cards[0])=='black'){
target.chooseToDiscard(2,'he','弃置两张牌,或令'+get.translation(player)+'摸两张牌').set('ai',function(card){
if(_status.event.goon) return 7-get.value(card);
return 0;
}).set('goon',get.attitude(target,player)<0);
}
else{
event.finish();
}
'step 1'
if(!result.bool){
player.draw(2);
}
},
ai:{
order:8,
expose:0.2,
result:{
target:function(player,target){
if(ui.selected.cards.length&&get.color(ui.selected.cards[0])=='red'){
if(target.countCards('h')0) player.markSkill('shanjia');
},
audio:2,
intro:{
content:function(storage){
if(storage==0) return '未使用过装备牌';
return '已使用过'+storage+'张装备牌';
}
},
group:'shanjia2',
trigger:{player:'phaseUseBegin'},
frequent:true,
filter:function(event,player){
lib.skill.shanjia.sync(player);
return player.storage.shanjia>0;
},
content:function(){
'step 0'
lib.skill.shanjia.sync(player);
player.draw(Math.min(7,player.storage.shanjia));
'step 1'
player.chooseToDiscard('he',Math.min(7,player.storage.shanjia),true);
'step 2'
var useCard=false;
if(result.bool&&result.cards){
for(var i=0;i0)
})){
return 6-get.value(card);
}
}
return 0;
},
content:function(){
player.loseHp();
switch(get.type(cards[0],'trick')){
case 'basic':player.addTempSkill('zhanyi_basic');break;
case 'equip':player.addTempSkill('zhanyi_equip');break;
case 'trick':player.addTempSkill('zhanyi_trick');player.draw(2);break;
}
},
ai:{
order:9.1,
result:{
player:1
}
}
},
zhanyi_basic:{
group:['zhanyi_basic_sha','zhanyi_basic_jiu','zhanyi_basic_tao']
},
zhanyi_basic_tao:{
enable:'chooseToUse',
filterCard:{type:'basic'},
viewAs:{name:'tao'},
viewAsFilter:function(player){
if(!player.countCards('h',{type:'basic'})) return false;
},
prompt:'将一张基本牌当桃使用',
check:function(card){
return 8-get.value(card);
},
ai:{
skillTagFilter:function(player){
if(!player.countCards('h',{type:'basic'})) return false;
},
save:true,
}
},
zhanyi_basic_sha:{
enable:'chooseToUse',
filterCard:{type:'basic'},
viewAs:{name:'sha'},
viewAsFilter:function(player){
if(!player.countCards('h',{type:'basic'})) return false;
},
prompt:'将一张基本牌当杀使用',
check:function(card){return 4-get.value(card)},
ai:{
skillTagFilter:function(player){
if(!player.countCards('h',{type:'basic'})) return false;
},
respondSha:true,
}
},
zhanyi_basic_jiu:{
enable:'chooseToUse',
filterCard:{type:'basic'},
viewAs:{name:'jiu'},
viewAsFilter:function(player){
if(!player.countCards('h',{type:'basic'})) return false;
},
prompt:'将一张基本牌当酒使用',
check:function(card){
if(_status.event.type=='dying') return 1;
return 4-get.value(card);
},
ai:{
skillTagFilter:function(player){
return player.countCards('h',{type:'basic'})>0&&player.hp<=0;
},
save:true,
}
},
zhanyi_equip:{
trigger:{player:'shaBegin'},
forced:true,
filter:function(event,player){
return event.target.countCards('he')>0;
},
check:function(event,player){
return get.attitude(player,event.target)<0;
},
content:function(){
trigger.target.chooseToDiscard('he',true,2);
}
},
zhanyi_trick:{
mod:{
targetInRange:function(){
return true;
}
}
},
shichou:{
//audio:1,
skillAnimation:true,
animationColor:'orange',
unique:true,
limited:true,
mark:false,
trigger:{player:'phaseZhunbeiBegin'},
zhuSkill:true,
direct:true,
filter:function(event,player){
if(!player.hasZhuSkill('shichou'))return false;
if(player.countCards('he')<2) return false;
return !player.storage.shichou;
},
init:function(player){
if(player.hasZhuSkill('shichou')){
player.markSkill('shichou');
player.storage.shichou=false;
}
},
content:function(){
"step 0"
player.chooseCardTarget({
prompt:get.prompt2('shichou'),
selectCard:2,
filterTarget:function(card,player,target){
return target.group=='shu'&&target!=player;
},
filterCard:true,
position:'he',
ai1:function(card){
return 7-get.value(card);
},
ai2:function(target){
var player=_status.event.player;
if(player.hasUnknown()) return 0;
var att=get.attitude(player,target);
if(att<=0){
if(target.hp==1) return (10-att)/2;
return 10-att;
}
else{
if(target.hp==1) return 0;
return (10-att)/4;
}
},
});
"step 1"
if(!result.bool) return;
var target=result.targets[0];
var cards=result.cards;
player.storage.shichou=true;
player.logSkill('shichou',target);
player.awakenSkill('shichou');
target.gain(cards,player,'giveAuto');
player.storage.shichou_target=target;
player.addSkill('shichou2');
target.markSkillCharacter('shichou',player,'誓仇','代替'+get.translation(player)+'承受伤害直到首次进入濒死状态');
},
intro:{
content:'limited'
},
},
shichou2:{
group:'shichou3',
trigger:{player:'damageBegin3'},
forced:true,
popup:false,
content:function(){
trigger.player=player.storage.shichou_target;
trigger.shichou4=true;
trigger.player.addSkill('shichou4');
player.logSkill('shichou2',player.storage.shichou_target);
game.delay(0.5);
},
ai:{
effect:{
target:function(card,player,target,current){
if(get.tag(card,'damage')){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(get.attitude(player,target)>0) return [0,0];
var eff=get.damageEffect(target.storage.shichou_target,player,target);
if(eff>0){
return [0,1];
}
else if(eff<0){
return [0,-2];
}
else{
return [0,0];
}
}
}
}
}
},
shichou3:{
trigger:{global:['dying','dieBegin']},
forced:true,
popup:false,
//priority:10,
filter:function(event,player){
return event.player==player.storage.shichou_target;
},
content:function(){
trigger.player.unmarkSkill('shichou');
delete player.storage.shichou_target;
player.removeSkill('shichou2');
}
},
shichou4:{
trigger:{player:['damageAfter','damageCancelled']},
forced:true,
popup:false,
audio:false,
content:function(){
if(!trigger.shichou4) return;
if(event.triggername=='damageAfter'&&trigger.num){
player.draw(trigger.num);
}
player.removeSkill('shichou4');
}
},
zhaolie:{
trigger:{player:'phaseDrawBegin2'},
direct:true,
filter:function(event,player){
return !event.numFixed;
},
content:function(){
'step 0'
player.chooseTarget(get.prompt2('zhaolie'),function(card,player,target){
return target!=player&&player.inRange(target);
}).set('ai',function(target){
var player=_status.event.player;
if(get.attitude(player,target)>0) return 0;
return get.damageEffect(target,player,player);
});
'step 1'
if(result.bool){
trigger.num--;
player.storage.zhaolie=result.targets[0];
player.logSkill('zhaolie',result.targets);
player.addTempSkill('zhaolie2','phaseDrawAfter');
}
}
},
zhaolie2:{
trigger:{player:'phaseDrawEnd'},
forced:true,
popup:false,
content:function(){
'step 0'
event.cards=get.cards(3);
player.showCards(event.cards);
'step 1'
event.basic=[];
event.nonbasic=[];
event.todis=[];
for(var i=0;i1?0:7-get.value(card);
case 2:return 8-get.value(card);
case 3:return 10-get.value(card);
default:return 0;
}
}).set('num',num);
}
'step 2'
var num=event.nonbasic.length;
var undone=false;
if(num==0){
if(event.basic.length){
result.targets[0].gain(event.basic,'gain2','log');
}
}
else{
if(result.bool){
if(event.basic.length){
player.gain(event.basic,'gain2','log');
}
}
else{
player.storage.zhaolie.damage(num);
if(event.basic.length){
undone=true;
}
}
}
if(!undone){
delete player.storage.zhaolie;
event.finish();
}
'step 3'
if(player.storage.zhaolie.isAlive()){
player.storage.zhaolie.gain(event.basic,'gain2','log');
}
else{
game.cardsDiscard(event.basic);
}
delete player.storage.zhaolie;
}
},
dingpan:{
enable:'phaseUse',
filter:function(event,player){
var num;
var mode=get.mode();
if(mode=='identity'){
if(_status.mode=='purple') num=player.getEnemies().length;
else num=get.population('fan');
}
else if(mode=='versus'){
num=player.getEnemies().length;
}
else{
num=1;
}
if((player.getStat().skill.dingpan||0)>=num) return false;
return true;
},
filterTarget:function(card,player,target){
return target.countCards('e')>0;
},
content:function(){
'step 0'
target.draw();
'step 1'
var goon=get.damageEffect(target,player,target)>=0;
if(!goon&&target.hp>=4&&get.attitude(player,target)<0){
var es=target.getCards('e');
for(var i=0;i=8){
goon=true;break;
}
}
}
target.chooseControl(function(){
if(_status.event.goon) return '选项二';
return '选项一';
}).set('goon',goon).set('prompt','定叛').set('choiceList',['令'+get.translation(player)+'弃置你装备区里的一张牌','获得你装备区内的所有牌并受到一点伤害']);
'step 2'
if(result.control=='选项一'){
player.discardPlayerCard(target,true,'e');
event.finish();
}
else{
target.gain(target.getCards('e'),'gain2');
}
'step 3'
game.delay(0.5);
target.damage();
},
ai:{
order:7,
result:{
target:function(player,target){
if(get.damageEffect(target,player,target)>=0) return 2;
var att=get.attitude(player,target);
if(att==0) return 0;
var es=target.getCards('e');
if(att>0&&(target.countCards('h')>2||target.needsToDiscard(1))) return 0;
if(es.length==1&&att>0) return 0;
for(var i=0;i0){
return 1;
}
}
else if(val>=7){
if(att<0){
return -1;
}
}
}
return 0;
}
}
}
},
hongde:{
audio:2,
trigger:{player:['gainAfter','loseAfter']},
direct:true,
filter:function(event,player){
if(event.name=='lose'&&event.type=='gain'&&event.getParent().player==player) return false;
if(event.name=='gain') return event.cards&&event.cards.length>1;
return event.cards2&&event.cards2.length>1;
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('hongde'),'令一名其他角色摸一张牌',function(card,player,target){
return target!=player;
}).set('ai',function(target){
return get.attitude(player,target);
});
'step 1'
if(result.bool){
player.logSkill('hongde',result.targets);
result.targets[0].draw();
}
}
},
ziyuan:{
audio:2,
enable:'phaseUse',
usable:1,
filterCard:function(card){
var num=0;
for(var i=0;i0);
})){
return 10;
}
return 1;
},
result:{
player:function(player,target){
if(get.attitude(player,target)<0) return -1;
var eff=get.recoverEffect(target,player,player);
if(eff<0) return 0;
if(eff>0){
if(target.hp==1) return 3;
return 2;
}
if(player.needsToDiscard()) return 1;
return 0;
}
},
threaten:1.3
}
},
jugu:{
audio:2,
mod:{
maxHandcard:function(player,num){
return num+player.maxHp;
}
},
trigger:{global:'gameDrawAfter',player:'enterGame'},
forced:true,
content:function(){
player.draw(player.maxHp);
}
},
tuifeng:{
audio:2,
trigger:{player:'damageEnd'},
direct:true,
notemp:true,
filter:function(event,player){
return player.countCards('he')>0;
},
init:function(player){
if(!player.storage.tuifeng) player.storage.tuifeng=[];
},
content:function(){
'step 0'
player.chooseCard(get.prompt2('tuifeng'),'he',[1,trigger.num]).set('ai',function(card){
if(card.name=='du') return 20;
return 7-get.useful(card);
});
'step 1'
if(result.bool){
player.logSkill('tuifeng');
player.lose(result.cards,ui.special,'toStorage');
player.$give(result.cards,player,false);
for(var i=0;i0;
},
content:function(){
player.draw(2*player.storage.tuifeng.length);
player.addTempSkill('tuifeng3');
player.storage.tuifeng3=player.storage.tuifeng.length;
player.unmarkSkill('tuifeng');
}
},
tuifeng3:{
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha'&&player.storage.tuifeng3) return num+player.storage.tuifeng3;
}
},
onremove:true
},
weidi:{
trigger:{global:['gameStart','zhuUpdate']},
forced:true,
audio:2,
filter:function(event,player){
var mode=get.mode();
return (mode=='identity'||(mode=='versus'&&_status.mode=='four'));
},
content:function(){
var list=[];
var zhu=get.zhu(player);
if(zhu&&zhu!=player&&zhu.skills){
for(var i=0;i0;
},
init:function(player){
player.storage.jianshu=false;
},
filterTarget:function(card,player,target){
if(target==player) return false;
if(ui.selected.targets.length){
return ui.selected.targets[0]!=target&&!ui.selected.targets[0].hasSkillTag('noCompareSource')&&target.countCards('h')
&&!target.hasSkillTag('noCompareTarget');
}
return true;
},
filterCard:{color:'black'},
mark:true,
discard:false,
delay:false,
check:function(card){
if(_status.event.player.hp==1) return 8-get.value(card);
return 6-get.value(card);
},
selectTarget:2,
multitarget:true,
content:function(){
'step 0'
player.awakenSkill('jianshu');
player.storage.jianshu=true;
targets[0].gain(cards,player,'give');
'step 1'
targets[0].chooseToCompare(targets[1]);
'step 2'
if(result.bool){
targets[0].chooseToDiscard('he',2,true);
targets[1].loseHp();
}
else if(result.tie){
targets[0].loseHp()
targets[1].loseHp()
}
else{
targets[1].chooseToDiscard('he',2,true);
targets[0].loseHp();
}
},
intro:{
content:'limited'
},
ai:{
expose:0.4,
order:4,
result:{
target:function(player,target){
if(player.hasUnknown()) return 0;
if(ui.selected.targets.length) return -1;
return -0.5;
}
}
}
},
yongdi:{
audio:2,
unique:true,
limited:true,
trigger:{player:'phaseZhunbeiBegin'},
animationColor:'thunder',
skillAnimation:'legend',
filter:function(event,player){
return !player.storage.yongdi;
},
init:function(player){
player.storage.yongdi=false;
},
mark:true,
intro:{
content:'limited'
},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('yongdi'),function(card,player,target){
return (target.sex=='male'||target.name=='key_yuri')&&target!=player;
}).set('ai',function(target){
if(!_status.event.goon) return 0;
var player=_status.event.player;
var att=get.attitude(player,target);
if(att<=1) return 0;
var mode=get.mode();
if(mode=='identity'||(mode=='versus'&&_status.mode=='four')){
if(target.name&&lib.character[target.name]){
for(var i=0;i0;
},
multitarget:true,
multiline:true,
content:function(){
player.chooseToCompare(targets).callback=lib.skill.gushe.callback;
},
intro:{
name:'饶舌',
content:'mark'
},
chat:['粗鄙之语','天地不容','谄谀之臣','皓首匹夫,苍髯老贼','二臣贼子','断脊之犬','我从未见过有如此厚颜无耻之人!'],
callback:function(){
'step 0'
if(event.num1<=event.num2){
target.chat(lib.skill.gushe.chat[player.countMark('gushe')]);
game.delay();
player.addMark('gushe',1);
if(player.countMark('gushe')>=7){
player.die();
}
}
'step 1'
if(event.num1>=event.num2){
target.chooseToDiscard('he','弃置一张牌,或令'+get.translation(player)+'摸一张牌').set('ai',function(card){
if(_status.event.goon) return 6-get.value(card);
return 0;
}).set('goon',get.attitude(target,player)<0);
}
else event.goto(3);
'step 2'
if(!result.bool){
player.draw();
}
'step 3'
if(event.num1<=event.num2){
player.chooseToDiscard('he','弃置一张牌,或摸一张牌').set('ai',function(){return -1;});
}
else event.finish();
'step 4'
if(!result.bool) player.draw();
},
ai:{
order:7,
result:{
target:function(player,target){
var num=ui.selected.targets.length+1;
if(num>3) num=3;
var hs=player.getCards('h');
for(var i=0;i5&&player.countMark('gushe')+num<=6) return -1;
}
}
}
return 0;
},
}
}
},
jici:{
audio:2,
trigger:{player:'compare'},
filter:function(event,player){
return event.getParent().name=='gushe'&&!event.iwhile&&event.num1<=player.countMark('gushe');
},
content:function(){
if(trigger.num10;
},
filterTarget:function(card,player,target){
return target!=player&&target.countCards('he')>0;
},
filterCard:{name:'sha'},
content:function(){
'step 0'
target.chooseToDiscard('he',true);
'step 1'
if(target.hp>=player.hp&&result.bool&&result.cards[0].name!='sha'){
player.useCard({name:'juedou',isCard:true},target);
}
},
ai:{
order:2,
result:{
target:function(player,target){
if(get.effect(target,{name:'juedou'},player,player)<=0){
return 0;
}
if(target.hpplayer.hp) return -0.1;
return 0;
}
var hs1=target.getCards('h','sha');
var hs2=player.getCards('h','sha');
if(hs1.length>hs2.length){
return 0;
}
var hsx=target.getCards('h');
if(hsx.length>2&&hs2.length<=1&&hsx[0].number<6){
return 0;
}
if(hsx.length>3&&hs2.length<=1){
return 0;
}
if(hs1.length>hs2.length-1&&hs1.length>0&&(hs2.length<=1||hs1[0].number>hs2[0].number)){
return 0;
}
return -1;
}
}
}
},
shefu:{
trigger:{player:'phaseJieshuBegin'},
direct:true,
audio:2,
init:function(player){
if(!player.storage.shefu) player.storage.shefu=[];
if(!player.storage.shefu2) player.storage.shefu2=[];
},
filter:function(event,player){
return player.countCards('h')>0;
},
intro:{
content:'cards',
onunmark:function(storage,player){
if(storage&&storage.length){
player.$throw(storage,1000);
game.cardsDiscard(storage);
game.log(storage,'被置入了弃牌堆');
storage.length=0;
}
player.storage.shefu2=[];
},
mark:function(dialog,content,player){
if(content&&content.length){
dialog.addAuto(content);
if(player.isUnderControl(true)){
var str='';
for(var i=0;i'+str+'')
}
}
},
},
content:function(){
'step 0'
var list1=[],list2=[],list3=[];
for(var i=0;i=5) return false;
if(nh2>nh2&&event.source.isDead()) return false;
return true;
},
direct:true,
content:function(){
"step 0"
var num1=player.countCards('h');
var num2=trigger.source.countCards('h');
if(num1>num2){
var next=player.chooseToDiscard([num2+1,num1],'贲育:是否弃置至少'+(num2+1)+'张手牌,并对'+get.translation(trigger.source)+'造成一点伤害?');
next.logSkill=['benyu',trigger.source];
next.set('ai',function(card){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
if(ui.selected.cards.length>=_status.event.num){
return -1;
}
if(get.damageEffect(trigger.source,player,player)>0&&_status.event.num<=2){
return 8-get.value(card);
}
return -1;
});
next.set('num',num2+1);
}
else{
event.draw=true;
event.num=Math.min(num2,5)-num1;
player.chooseBool(get.prompt2('benyu'));
}
"step 1"
if(result.bool){
if(event.draw){
player.logSkill('benyu',trigger.source);
player.draw(event.num);
}
else{
trigger.source.damage(player);
}
}
},
},
jili:{
audio:2,
trigger:{
global:'useCardToTarget'
},
forced:true,
check:function(event,player){
return get.effect(player,event.card,event.player,player)>0;
},
filter:function(event,player){
if(get.color(event.card)!='red') return false;
if(!event.targets) return false;
if(event.player==player) return false;
if(event.targets.contains(player)) return false;
if(get.info(event.card).multitarget) return false;
var type=get.type(event.card);
if(type!='basic'&&type!='trick') return false;
if(lib.filter.targetEnabled2(event.card,event.player,player)){
for(var i=0;i0&&event.player!=player&&!player.hasSkill('zhidao2');
},
forced:true,
content:function(){
var num=0;
if(trigger.player.countCards('h')) num++;
if(trigger.player.countCards('e')) num++;
if(trigger.player.countCards('j')) num++;
if(num){
player.gainPlayerCard(trigger.player,num,'hej',true).set('filterButton',function(button){
for(var i=0;i0;
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('qizhi'),'弃置一名角色的一张牌,然后其摸一张牌',function(card,player,target){
return !_status.event.targets.contains(target)&&target.countCards('he')>0;
}).set('ai',function(target){
var player=_status.event.player;
if(target==player) return 2;
if(get.attitude(player,target)<=0){
return 1
}
return 0.5;
}).set('targets',trigger.targets);
'step 1'
if(result.bool){
player.getHistory('custom').push({qizhi:true});
if(!event.isMine()&&!_status.connectMode) game.delay();
player.logSkill('qizhi',result.targets);
player.discardPlayerCard(result.targets[0],true,'he');
event.target=result.targets[0];
}
else{
event.finish();
}
'step 2'
event.target.draw();
},
},
jinqu:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
check:function(event,player){
return player.getHistory('custom',function(evt){
return evt.qizhi==true;
}).length>=player.countCards('h');
},
prompt:function(event,player){
var num=player.getHistory('custom',function(evt){
return evt.qizhi==true;
}).length;
return '进趋:是否摸两张牌并将手牌弃置至'+get.cnNumber(num)+'张?';
},
content:function(){
'step 0'
player.draw(2);
'step 1'
var dh=player.countCards('h')-player.getHistory('custom',function(evt){
return evt.qizhi==true;
}).length;
if(dh>0){
player.chooseToDiscard(dh,true);
}
}
},
mouduan:{
audio:1,
init2:function(player){
game.broadcastAll(function(player){
player._mouduan_mark=player.mark('武',{
content:'拥有技能【激昂】、【谦逊】'
});
},player);
player.addAdditionalSkill('mouduan',['jiang','qianxun']);
},
onremove:function(player){
game.broadcastAll(function(player){
if(player._mouduan_mark){
player._mouduan_mark.delete();
delete player._mouduan_mark;
}
},player);
player.removeAdditionalSkill('mouduan');
},
trigger:{player:'loseEnd'},
forced:true,
filter:function(event,player){
return player._mouduan_mark&&player._mouduan_mark.name=='武'&&player.countCards('h')<=2;
},
content:function(){
game.broadcastAll(function(player){
if(!player._mouduan_mark) return;
player._mouduan_mark.name='文';
player._mouduan_mark.skill='文';
player._mouduan_mark.firstChild.innerHTML='文';
player._mouduan_mark.info.content='拥有技能【英姿】、【克己】';
},player);
player.addAdditionalSkill('mouduan',['yingzi','keji']);
},
group:'mouduan2'
},
mouduan2:{
audio:1,
trigger:{global:'phaseZhunbeiBegin'},
//priority:5,
filter:function(event,player){
return player._mouduan_mark&&player._mouduan_mark.name=='文'&&player.countCards('h')>2;
},
direct:true,
content:function(){
'step 0'
player.chooseToDiscard('he','谋断:是否弃置一张牌将标记变为“武”?').ai=function(){
return -1;
}
'step 1'
if(result.bool&&player.countCards('h')>2){
game.broadcastAll(function(player){
if(!player._mouduan_mark) return;
player._mouduan_mark.name='武';
player._mouduan_mark.skill='武';
player._mouduan_mark.firstChild.innerHTML='武';
player._mouduan_mark.info.content='拥有技能【激昂】、【谦逊】';
},player);
player.addAdditionalSkill('mouduan',['jiang','qianxun']);
}
}
},
tanhu:{
audio:1,
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return player.canCompare(target);
},
filter:function(event,player){
return player.countCards('h')>0;
},
content:function(){
'step 0'
player.chooseToCompare(target);
'step 1'
if(result.bool){
target.addTempSkill('tanhu2');
}
},
ai:{
result:{
target:function(player,target){
var hs=player.getCards('h');
if(hs.length<3) return 0;
var bool=false;
for(var i=0;i=9&&get.value(hs[i])<7){
bool=true;
break;
}
}
if(!bool) return 0;
return -1;
}
},
order:9,
},
group:'tanhu3'
},
tanhu2:{
mark:true,
intro:{
content:'已成为探虎目标'
}
},
tanhu3:{
mod:{
globalFrom:function(from,to){
if(to.hasSkill('tanhu2')) return -Infinity;
},
wuxieRespondable:function(card,player,target){
if(target&&target.hasSkill('tanhu2')) return false;
}
}
},
jiaozi:{
audio:2,
trigger:{player:'damageBegin3',source:'damageBegin1'},
forced:true,
filter:function(event,player){
return player.isMaxHandcard(true);
},
content:function(){
trigger.num++;
},
ai:{presha:true},
},
jiqiao:{
audio:2,
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return player.countCards('he',{type:'equip'})>0;
},
content:function(){
'step 0'
player.chooseToDiscard(get.prompt2('jiqiao'),[1,player.countCards('he',{type:'equip'})],'he',function(card){
return get.type(card)=='equip';
}).set('ai',function(card){
if(card.name=='bagua') return 10;
return 7-get.value(card);
}).logSkill='jiqiao';
'step 1'
if(result.bool){
event.cards=get.cards(2*result.cards.length);
player.showCards(event.cards);
}
else{
event.finish();
}
'step 2'
var gained=[];
var tothrow=[];
for(var i=0;i=2&&he<=3){
return '弃牌';
}
if(player.maxHp-player.hp>=3&&he<=5){
return '弃牌';
}
if(player.maxHp-player.hp>3){
return '弃牌';
}
return '出杀';
}
return '出杀';
}).set('prompt','弃置'+get.translation(trigger.player)+get.cnNumber(player.maxHp-player.hp)+'张牌,或对任意一名角色使用一张杀');
'step 1'
if(result.control=='弃牌'){
player.line(trigger.player,'green');
if(player.hp1) return false;
if(!event.target) return false;
if(event.target.hp>=player.hp) return false;
var card=event.card;
if(card.name=='sha') return true;
if(get.color(card)=='black'&&get.type(card,'trick')=='trick') return true;
return false;
},
content:function(){
"step 0"
var save=false;
if(get.attitude(player,trigger.target)>2){
if(trigger.card.name=='sha'){
if(player.countCards('h','shan')||player.getEquip(2)||
trigger.target.hp==1||player.hp>trigger.target.hp+1){
if(!trigger.target.countCards('h','shan')||trigger.target.countCards('h')0;
},
content:function(){
'step 0'
player.chooseToCompare(target).set('preserve','win');
'step 1'
if(result.bool&&result.target){
event.type=true;
event.card=result.target;
player.chooseTarget('将'+get.translation(result.target)+'交给一名角色',function(card,player,target){
return target.hp<=player.hp;
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(_status.event.du) return -att;
return att;
}).set('du',event.card.name=='du');
target.addTempSkill('dahe2');
}
else{
event.type=false;
if(player.countCards('h')){
player.showHandcards();
player.chooseToDiscard('h',true);
}
}
'step 2'
if(event.type){
if(result.bool){
player.line(result.targets,'green');
result.targets[0].gain(event.card,'gain2');
}
}
},
ai:{
result:{
target:function(player,target){
var hs=player.getCards('h');
if(hs.length<3) return 0;
var bool=false;
for(var i=0;i=9&&get.value(hs[i])<7){
bool=true;
break;
}
}
if(!bool) return 0;
if(player.canUse('sha',target)&&(player.countCards('h','sha'))){
return -2;
}
return -0.5;
}
},
order:9,
}
},
dahe2:{
mark:true,
intro:{
content:'非红桃闪无效'
},
mod:{
cardRespondable:function(card,player){
if(card.name=='shan'&&get.suit(card)!='heart') return false;
},
cardEnabled:function(card,player){
if(card.name=='shan'&&get.suit(card)!='heart') return false;
},
}
},
xunzhi:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
init:function(player){
player.storage.xunzhi=0;
},
filter:function(event,player){
var previous=player.getPrevious();
var next=player.getNext();
if(previous&&next){
return player.hp!=previous.hp&&player.hp!=next.hp;
}
return false;
},
check:function(event,player){
return player.hp>=3&&player.countCards('h')>player.hp+1+player.storage.xunzhi;
},
content:function(){
player.loseHp();
player.storage.xunzhi+=2;
},
mark:true,
intro:{
content:function(storage,player){
return '手牌上限+'+player.storage.xunzhi;
}
},
mod:{
maxHandcard:function(player,num){
if(typeof player.storage.xunzhi=='number'){
return num+player.storage.xunzhi;
}
}
}
},
yawang:{
audio:2,
trigger:{player:'phaseDrawBegin1'},
forced:true,
filter:function(event,player){
return !event.numFixed;
},
check:function(event,player){
var num=game.countPlayer(function(target){
return target.hp==player.hp;
});
if(!player.hasSkill('xunzhi2')){
var nh=player.countCards('h');
if(nh>5) return false;
if(num==3&&nh>3) return false;
}
return num>=3;
},
content:function(){
trigger.changeToZero();
var num=game.countPlayer(function(target){
return target.hp==player.hp;
});
if(num){
player.draw(num);
}
player.storage.yawang=num;
player.addTempSkill('yawang2');
}
},
yawang2:{
mod:{
cardEnabled:function(card,player){
if(_status.currentPhase!=player) return;
if(player.countUsed()>=player.storage.yawang) return false;
}
}
},
junwei:{
trigger:{player:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player.storage.yinling&&player.storage.yinling.length>=3;
},
content:function(){
'step 0'
if(player.storage.yinling.length>3){
player.chooseButton(3,[get.prompt('junwei'),'hidden',player.storage.yinling]).set('ai',function(button){
return 1;
});
}
else{
player.chooseBool().set('createDialog',[get.prompt('junwei'),'hidden',player.storage.yinling]).set('dialogselectx',true).set('choice',true);
event.cards=player.storage.yinling.slice(0);
}
'step 1'
if(result.bool){
player.logSkill('junwei');
var cards=event.cards||result.links;
for(var i=0;i1) return 1;
if(_status.event.player.hp>=3) return 0;
return 1;
}).set('nshan',nshan);
}
}
else{
event.finish();
}
'step 3'
if(!event.directfalse&&result.bool) game.delay();
ui.clear();
'step 4'
if(!event.directfalse&&result.bool){
event.cards=result.cards;
event.target.$throw(result.cards);
player.chooseTarget('将'+get.translation(event.cards)+'交给一名角色',true,function(card,player,target){
return target!=_status.event.getParent().target;
}).set('ai',function(target){
return get.attitude(_status.event.player,target)/(target.countCards('h','shan')+1);
});
}
else{
event.target.loseHp();
delete event.cards;
}
'step 5'
if(event.cards){
player.line(result.targets,'green');
result.targets[0].gain(event.cards,'gain2');
game.log(player,'将',event.cards,'交给',result.targets[0]);
event.finish();
}
else{
if(event.target.countCards('e')){
player.choosePlayerCard('e','将'+get.translation(event.target)+'的一张装备牌移出游戏',true,event.target);
}
else{
event.finish();
}
}
'step 6'
if(result.bool){
var card=result.links[0];
if(event.target.storage.junwei2){
event.target.storage.junwei2.push(card);
event.target.markSkill('junwei2');
}
else{
event.target.storage.junwei2=[card];
}
event.target.lose(card,ui.special,'toStorage');
event.target.addSkill('junwei2');
event.target.syncStorage('junwei2');
}
}
},
junwei2:{
mark:true,
intro:{
content:'cards',
onunmark:function(storage,player){
if(storage&&storage.length){
player.$throw(storage,1000);
game.cardsDiscard(storage);
game.log(storage,'被置入了弃牌堆');
storage.length=0;
}
},
},
trigger:{player:'phaseJieshuBegin'},
forced:true,
content:function(){
'step 0'
if(player.storage.junwei2.length){
var card=player.storage.junwei2.shift();
player.equip(card);
event.redo();
}
'step 1'
player.removeSkill('junwei2');
delete player.storage.junwei2;
}
},
yinling:{
enable:'phaseUse',
filterCard:{color:'black'},
position:'he',
intro:{
content:'cards',
onunmark:'throw'
},
filter:function(event,player){
return player.countCards('he',{color:'black'})>0&&player.storage.yinling.length<4;
},
filterTarget:function(card,player,target){
return target.countCards('he')>0&&target!=player;
},
init:function(player){
player.storage.yinling=[];
},
check:function(card){
return 6-get.value(card);
},
content:function(){
'step 0'
player.choosePlayerCard('hej',target,true);
'step 1'
if(result.bool&&result.links&&result.links.length){
target.$give(result.links,player,false);
target.lose(result.links,ui.special,'toStorage');
player.storage.yinling.push(result.links[0]);
player.markSkill('yinling');
player.syncStorage('yinling');
}
},
ai:{
order:10.1,
expose:0.1,
result:{
target:function(player,target){
if(target.hasSkill('tuntian')) return 0;
var es=target.getCards('e');
var nh=target.countCards('h');
var noe=(es.length==0||target.hasSkillTag('noe'));
var noe2=(es.length==1&&es[0].name=='baiyin'&&target.hp=0){
return -1.5;
}
return 2;
}
return -1.5;
},
},
}
},
yanxiao:{
audio:2,
enable:'phaseUse',
filterCard:{suit:'diamond'},
filterTarget:true,
check:function(card){
return 7-get.value(card);
},
position:'he',
filter:function(event,player){
return player.countCards('he',{suit:'diamond'})>0;
},
discard:false,
//lose:false,
visible:true,
toStorage:true,
prepare:'give',
content:function(){
//player.lose(cards,ui.special,'toStorage','visible');
if(target.hasSkill('yanxiao2')&&target.storage.yanxiao2){
target.storage.yanxiao2.push(cards[0]);
target.syncStorage('yanxiao2');
target.markSkill('yanxiao2');
}
else{
target.storage.yanxiao2=cards.slice(0);
target.syncStorage('yanxiao2');
target.addSkill('yanxiao2');
}
},
ai:{
order:8,
result:{
target:function(player,target){
if(target.storage.yanxiao2&&target.storage.yanxiao2.length) return 0;
if(target.countCards('j')) return 1;
return 0;
}
}
}
},
yanxiao2:{
audio:'yanxiao',
mark:true,
intro:{
content:'cards',
onunmark:function(storage,player){
if(storage&&storage.length){
player.$throw(storage,1000);
game.cardsDiscard(storage);
game.log(storage,'被置入了弃牌堆');
storage.length=0;
}
},
},
trigger:{player:'phaseJudgeBegin'},
forced:true,
content:function(){
var cards=player.storage.yanxiao2.concat(player.getCards('j'));
player.gain(cards,'gain2','log','fromStorage');
delete player.storage.yanxiao2;
player.removeSkill('yanxiao2');
},
ai:{
effect:{
target:function(card){
if(get.type(card)=='delay') return [0,0.1];
}
}
}
},
anxian:{
audio:2,
group:['anxian_source','anxian_target'],
subSkill:{
source:{
audio:"anxian",
trigger:{source:'damageBegin2'},
filter:function(event,player){
return event.card&&event.card.name=='sha';
},
check:function(event,player){
if(get.damageEffect(event.player,player,player)<=0) return true;
return false;
},
content:function(){
'step 0'
if(trigger.player.countCards('h')){
trigger.player.chooseToDiscard(true);
}
'step 1'
player.draw();
trigger.cancel();
}
},
target:{
audio:"anxian",
trigger:{target:'useCardToTargeted'},
direct:true,
filter:function(event,player){
return event.card.name=='sha'&&player.countCards('h');
},
content:function(){
"step 0"
var next=player.chooseToDiscard(get.prompt2('anxian'));
next.set('ai',function(card){
var player=_status.event.player;
var trigger=_status.event.getTrigger();
if(get.attitude(player,trigger.player)>0){
return 9-get.value(card);
}
if(player.countCards('h',{name:'shan'})) return -1;
return 7-get.value(card);
});
next.logSkill='anxian';
"step 1"
if(result.bool){
trigger.player.draw();
trigger.getParent().excluded.push(player);
}
},
}
}
},
luoyan_tianxiang:{
inherit:'tianxiang',
filter:function(event,player){
if(!player.storage.xingwu||!player.storage.xingwu.length) return false;
if(player.hasSkill('tianxiang')) return false;
return lib.skill.tianxiang.filter(event,player);
},
},
luoyan_liuli:{
inherit:'liuli',
filter:function(event,player){
if(!player.storage.xingwu||!player.storage.xingwu.length) return false;
if(player.hasSkill('liuli')) return false;
return lib.skill.liuli.filter(event,player);
},
},
luoyan:{
group:['luoyan_tianxiang','luoyan_liuli'],
},
xingwu:{
audio:2,
group:['xingwu_color','xingwu_color2'],
subSkill:{
color:{
trigger:{player:'phaseZhunbeiBegin'},
silent:true,
content:function(){
player.storage.xingwu_color=['black','red'];
}
},
color2:{
trigger:{player:'useCard'},
silent:true,
filter:function(event,player){
return Array.isArray(player.storage.xingwu_color)&&_status.currentPhase==player;
},
content:function(){
player.storage.xingwu_color.remove(get.color(trigger.card));
}
}
},
trigger:{player:'phaseDiscardBegin'},
direct:true,
filter:function(event,player){
if(!player.storage.xingwu_color) return false;
var length=player.storage.xingwu_color.length;
if(length==0) return false;
var hs=player.getCards('h');
if(hs.length==0) return false;
if(length==2) return true;
var color=player.storage.xingwu_color[0];
for(var i=0;i0&&
get.attitude(player,current)<0)
})) return 0;
}
return 7-get.value(card);
});
'step 1'
if(result.bool){
player.logSkill('xingwu');
if(player.storage.xingwu.length<2){
player.$give(result.cards,player);
}
player.lose(result.cards,ui.special);
player.storage.xingwu=player.storage.xingwu.concat(result.cards);
player.markSkill('xingwu');
player.syncStorage('xingwu');
}
else{
event.finish();
}
'step 2'
if(player.storage.xingwu.length==3){
player.$throw(player.storage.xingwu);
while(player.storage.xingwu.length){
player.storage.xingwu.shift().discard();
}
player.unmarkSkill('xingwu');
player.chooseTarget(function(card,player,target){
return target!=player&&target.sex=='male';
},'对一名男性角色造成两点伤害并弃置其装备区内的牌').set('ai',function(target){
var player=_status.event.player;
if(get.attitude(player,target)>0) return -1;
return get.damageEffect(target,player,player)+target.countCards('e')/2;
});
}
else{
event.finish();
}
'step 3'
if(result.bool){
var target=result.targets[0];
target.damage(2);
event.target=target;
player.line(target,'green');
}
else{
event.finish();
}
'step 4'
if(event.target&&event.target.isAlive()){
var es=event.target.getCards('e');
if(es.length){
event.target.discard(es);
}
}
},
ai:{
threaten:1.5
}
},
yinbing:{
trigger:{player:'phaseJieshuBegin'},
direct:true,
audio:2,
init:function(player){
if(!player.storage.yinbing) player.storage.yinbing=[];
},
filter:function(event,player){
return player.countCards('he',{type:'basic'})0&&
(event.card.name=='sha'||event.card.name=='juedou');
},
content:function(){
'step 0'
player.chooseCardButton('移去一张引兵牌',true,player.storage.yinbing);
'step 1'
var card=result.links[0];
player.storage.yinbing.remove(card);
game.cardsDiscard(card);
player.$throw(card);
game.log(player,'将',card,'置入弃牌堆');
player.syncStorage('yinbing');
if(player.storage.yinbing.length==0){
player.unmarkSkill('yinbing');
}
}
}
},
group:'yinbing_discard'
},
juedi:{
trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){
return player.storage.yinbing&&player.storage.yinbing.length>0;
},
forced:true,
audio:2,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('juedi'),true,function(card,player,target){
return player.hp>=target.hp;
}).set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target);
if(att<2) return att-10;
var num=att/10;
if(target==player){
num+=player.maxHp-player.countCards('h')+0.5;
}
else{
num+=_status.event.n2*2;
if(target.isDamaged()){
if(target.hp==1){
num+=3;
}
else if(target.hp==2){
num+=2;
}
else{
num+=0.5;
}
}
}
if(target.hasJudge('lebu')){
num/=2;
}
return num;
}).set('n2',player.storage.yinbing.length);
'step 1'
if(result.bool){
player.line(result.targets[0],'green');
if(result.targets[0]==player){
player.$throw(player.storage.yinbing,1000);
var num=player.maxHp-player.countCards('h');
if(num>0) player.draw(num);
game.cardsDiscard(player.storage.yinbing);
player.storage.yinbing=[];
player.syncStorage('yinbing');
player.unmarkSkill('yinbing');
}
else{
var target=result.targets[0];
target.recover();
target.gain(player.storage.yinbing.slice(0),'gain2','log','fromStorage');
target.draw(player.storage.yinbing.length);
player.storage.yinbing.length=0;
}
player.syncStorage('yinbing');
player.unmarkSkill('yinbing');
}
}
},
meibu:{
trigger:{global:'phaseUseBegin'},
filter:function(event,player){
return event.player!=player&&get.distance(event.player,player,'attack')>1;
},
logTarget:'player',
check:function(event,player){
if(get.attitude(player,event.player)>=0) return false;
var e2=player.getEquip(2);
if(e2){
if(e2.name=='tengjia') return true;
if(e2.name=='bagua') return true;
}
return player.countCards('h','shan')>0;
},
content:function(){
var target=trigger.player;
target.addTempSkill('meibu_viewas');
target.addTempSkill('meibu_range');
target.storage.meibu=player;
target.markSkillCharacter('meibu',player,'魅步','锦囊牌均视为杀且'+get.translation(player)+'视为在攻击范围内');
},
ai:{
expose:0.2
},
subSkill:{
range:{
mod:{
targetInRange:function(card,player,target){
if(card.name=='sha'&&target==player.storage.meibu){
return true;
}
}
},
onremove:function(player){
game.broadcast(function(player){
if(player.marks.meibu){
player.marks.meibu.delete();
delete player.marks.meibu;
}
},player);
if(player.marks.meibu){
player.marks.meibu.delete();
delete player.marks.meibu;
game.addVideo('unmark',player,'meibu');
}
},
trigger:{player:'useCard'},
forced:true,
popup:false,
filter:function(event,player){
return event.skill=='meibu_viewas'
},
content:function(){
player.removeSkill('meibu_viewas');
game.broadcastAll(function(player){
if(player.marks.meibu&&player.marks.meibu.info){
player.marks.meibu.info.content=player.marks.meibu.info.content.slice(8);
}
},player);
}
},
viewas:{
mod:{
cardEnabled:function(card,player){
if(card.name!='sha'&&get.type(card,'trick')=='trick') return false;
},
cardUsable:function(card,player){
if(card.name!='sha'&&get.type(card,'trick')=='trick') return false;
},
cardRespondable:function(card,player){
if(card.name!='sha'&&get.type(card,'trick')=='trick') return false;
},
cardSavable:function(card,player){
if(card.name!='sha'&&get.type(card,'trick')=='trick') return false;
},
},
enable:['chooseToUse','chooseToRespond'],
filterCard:function(card){
return get.type(card,'trick')=='trick';
},
viewAs:{name:'sha'},
check:function(){return 1},
ai:{
effect:{
target:function(card,player,target,current){
if(get.tag(card,'respondSha')&¤t<0) return 0.8
}
},
respondSha:true,
order:4,
useful:-1,
value:-1
}
}
}
},
mumu:{
enable:'phaseUse',
usable:1,
filterCard:function(card,player,target){
return card.name=='sha'||(get.type(card,'trick')=='trick'&&get.color(card)=='black');
},
check:function(card){
return 7-get.value(card);
},
filterTarget:function(card,player,target){
if(target==player) return false;
return target.getEquip(1)||target.getEquip(2);
},
content:function(){
'step 0'
var e1=target.getEquip(1);
var e2=target.getEquip(2);
event.e1=e1;
event.e2=e2;
if(e1&&e2){
player.chooseControl('武器牌','防具牌').set('ai',function(){
if(_status.event.player.getEquip(2)){
return '武器牌';
}
return '防具牌';
});
}
else if(e1){
event.choice='武器牌';
}
else{
event.choice='防具牌';
}
'step 1'
var choice=event.choice||result.control;
if(choice=='武器牌'){
if(event.e1){
target.discard(event.e1);
}
player.draw();
}
else{
if(event.e2){
player.equip(event.e2);
target.$give(event.e2,player);
}
}
},
ai:{
order:8,
result:{
target:function(player,target){
if(target.getEquip(2)&&!player.getEquip(2)){
return -2;
}
return -1;
}
}
}
},
fentian:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
if(player.countCards('h')>=player.hp) return false;
return game.hasPlayer(function(current){
return player!=current&&player.inRange(current)&¤t.countCards('he');
});
},
intro:{
content:'cards',
onunmark:function(storage,player){
if(storage&&storage.length){
player.$throw(storage,1000);
game.cardsDiscard(storage);
game.log(storage,'被置入了弃牌堆');
storage.length=0;
}
},
},
init:function(player,skill){
if(!player.storage[skill]) player.storage.fentian=[];
},
content:function(){
'step 0'
player.chooseTarget('焚天:选择一名攻击范围内的角色,将其一张牌置于你的武将牌上',true,function(card,player,target){
return player!=target&&player.inRange(target)&&target.countCards('he')>0;
}).set('ai',function(target){
return -get.attitude(_status.event.player,target)
});
'step 1'
if(result.bool){
player.logSkill('fentian',result.targets);
event.target=result.targets[0];
player.choosePlayerCard(result.targets[0],'he',true);
}
else{
event.finish();
}
'step 2'
if(result.bool){
event.target.$give(result.links,player,false);
event.target.lose(result.links,ui.special,'toStorage');
player.storage.fentian=player.storage.fentian.concat(result.links);
player.syncStorage('fentian');
setTimeout(function(){
player.markSkill('fentian');
},700);
}
},
mod:{
attackFrom:function(from,to,distance){
return distance-from.storage.fentian.length;
}
}
},
zhiri:{
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
unique:true,
juexingji:true,
audio:2,
skillAnimation:true,
animationColor:'fire',
derivation:'xintan',
filter:function(event,player){
return player.storage.fentian&&player.storage.fentian.length>=3&&!player.storage.zhiri;
},
content:function(){
player.loseMaxHp();
player.addSkill('xintan');
player.storage.zhiri=true;
player.awakenSkill('zhiri');
}
},
xintan:{
enable:'phaseUse',
usable:1,
audio:2,
unique:true,
filter:function(event,player){
return player.storage.fentian&&player.storage.fentian.length>=2;
},
filterTarget:true,
prompt:'移去两张“焚”并令一名角色失去一点体力',
content:function(){
'step 0'
player.chooseCardButton(2,'移去两张“焚”并令'+get.translation(target)+'失去一点体力',player.storage.fentian,true);
'step 1'
if(result.bool){
player.$throw(result.links);
for(var i=0;iplayer.hp;
},
content:function(){
player.storage.danji=true;
player.loseMaxHp();
player.addSkill('mashu');
player.addSkill('nuzhan');
player.awakenSkill('danji');
}
},
nuzhan:{
audio:2,
popup:false,
silent:true,
firstDo:true,
trigger:{player:'useCard1'},
filter:function(event,player){
return event.card&&event.card.name=='sha'&&event.addCount!==false&&event.cards&&
event.cards.length==1&&get.type(event.cards[0],'trick')=='trick';
},
forced:true,
content:function(){
trigger.addCount=false;
if(player.stat[player.stat.length-1].card.sha>0){
player.stat[player.stat.length-1].card.sha--;
}
},
group:'nuzhan2'
},
nuzhan2:{
audio:'nuzhan',
trigger:{player:'useCard1'},
forced:true,
popup:false,
silent:true,
firstDo:true,
filter:function(event,player){
return event.card&&event.card.name=='sha'&&event.cards&&
event.cards.length==1&&get.type(event.cards[0])=='equip';
},
content:function(){
trigger.baseDamage++;
}
},
jieyuan:{
group:['jieyuan_more','jieyuan_less'],
subSkill:{
more:{
audio:true,
trigger:{source:'damageBegin1'},
direct:true,
filter:function(event,player){
if(!player.hasSkill('fenxin_nei')){
if(!player.countCards('h',{color:'black'})) return false;
}
return (event.player.hp>=player.hp||player.hasSkill('fenxin_fan'))&&player!=event.player;
},
content:function(){
'step 0'
var goon=(get.attitude(player,trigger.player)<0);
var next=player.chooseToDiscard(get.prompt('jieyuan',trigger.player));
if(!player.hasSkill('fenxin_nei')){
next.set('filterCard',function(card){
return get.color(card)=='black';
});
next.set('prompt2','弃置一张黑色手牌令伤害+1');
}
else{
next.set('prompt2','弃置一张手牌令伤害+1');
}
next.set('ai',function(card){
if(_status.event.goon){
return 8-get.value(card);
}
return 0;
});
next.set('goon',goon);
next.logSkill=['jieyuan_more',trigger.player];
'step 1'
if(result.bool){
trigger.num++;
}
}
},
less:{
audio:true,
trigger:{player:'damageBegin2'},
filter:function(event,player){
if(!player.hasSkill('fenxin_nei')){
if(!player.countCards('h',{color:'red'})) return false;
}
return event.source&&(event.source.hp>=player.hp||player.hasSkill('fenxin_zhong'))&&player!=event.source;
},
direct:true,
content:function(){
"step 0"
var next=player.chooseToDiscard(get.prompt('jieyuan'));
if(!player.hasSkill('fenxin_nei')){
next.set('filterCard',function(card){
return get.color(card)=='red';
});
next.set('prompt2','弃置一张红色手牌令伤害-1');
}
else{
next.set('prompt2','弃置一张手牌令伤害-1');
}
next.set('ai',function(card){
var player=_status.event.player;
if(player.hp==1||_status.event.getTrigger().num>1){
return 9-get.value(card);
}
if(player.hp==2){
return 8-get.value(card);
}
return 7-get.value(card);
});
next.logSkill='jieyuan_less';
"step 1"
if(result.bool){
trigger.num--;
}
}
}
},
ai:{
expose:0.2,
threaten:1.5
}
},
fenxin:{
mode:['identity'],
available:function(mode){
if(mode=='identity'&&_status.mode=='purple') return false;
},
trigger:{global:'dieAfter'},
filter:function(event,player){
return ['fan','zhong','nei'].contains(event.player.identity)&&!player.hasSkill('fenxin_'+event.player.identity);
},
forced:true,
content:function(){
player.addSkill('fenxin_'+trigger.player.identity);
player.markSkill('fenxin');
},
intro:{
mark:function(dialog,content,player){
if(player.hasSkill('fenxin_zhong')){
dialog.addText('你发动“竭缘”减少伤害无体力值限制');
}
if(player.hasSkill('fenxin_fan')){
dialog.addText('你发动“竭缘”增加伤害无体力值限制');
}
if(player.hasSkill('fenxin_nei')){
dialog.addText('将“竭缘”中的黑色手牌和红色手牌改为一张牌');
}
}
},
subSkill:{
fan:{},
zhong:{},
nei:{}
},
ai:{
combo:'jieyuan'
}
},
fenxin_old:{
mode:['identity'],
trigger:{source:'dieBegin'},
init:function(player){
player.storage.fenxin=false;
},
intro:{
content:'limited'
},
skillAnimation:'epic',
animationColor:'fire',
unique:true,
limited:true,
audio:2,
mark:true,
filter:function(event,player){
if(player.storage.fenxin) return false;
return event.player.identity!='zhu'&&player.identity!='zhu'&&
player.identity!='mingzhong'&&event.player.identity!='mingzhong';
},
check:function(event,player){
if(player.identity==event.player.identity) return Math.random()<0.5;
var stat=get.situation();
switch(player.identity){
case 'fan':
if(stat<0) return false;
if(stat==0) return Math.random()<0.6;
return true;
case 'zhong':
if(stat>0) return false;
if(stat==0) return Math.random()<0.6;
return true;
case 'nei':
if(event.player.identity=='fan'&&stat<0) return true;
if(event.player.identity=='zhong'&&stat>0) return true;
if(stat==0) return Math.random()<0.7;
return false;
}
},
prompt:function(event,player){
return '焚心:是否与'+get.translation(event.player)+'交换身份?';
},
content:function(){
game.broadcastAll(function(player,target,shown){
var identity=player.identity;
player.identity=target.identity;
if(shown||player==game.me){
player.setIdentity();
}
target.identity=identity;
},player,trigger.player,trigger.player.identityShown);
player.line(trigger.player,'green');
player.storage.fenxin=true;
player.awakenSkill('fenxin_old');
}
},
xisheng:{
enable:'chooseToUse',
usable:1,
viewAs:{name:'tao'},
viewAsFilter:function(player){
return player!=_status.currentPhase&&player.countCards('he')>1;
},
selectCard:2,
filterCard:true,
position:'he',
ai:{
save:true,
skillTagFilter:function(){
return lib.skill.xisheng.viewAsFilter.apply(this,arguments)
},
},
},
shulv:{
inherit:'zhiheng',
prompt:'弃置一张牌并摸一张牌',
selectCard:1,
filter:function(event,player){
return player.countCards('h')>player.hp;
},
},
xiandeng:{
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha') return num+1;
},
targetInRange:function(card,player){
if(card.name=='sha'&&player.countUsed('sha',true)==0) return true;
},
},
},
qingyi:{
audio:2,
trigger:{player:'phaseJudgeBefore'},
direct:true,
content:function(){
"step 0"
var check= player.countCards('h')>2;
player.chooseTarget(get.prompt("qingyi"),"跳过判定阶段和摸牌阶段,视为对一名其他角色使用一张【杀】",function(card,player,target){
if(player==target) return false;
return player.canUse({name:'sha'},target,false);
}).set('check',check).set('ai',function(target){
if(!_status.event.check) return 0;
return get.effect(target,{name:'sha'},_status.event.player);
});
"step 1"
if(result.bool){
player.logSkill('qingyi',result.targets);
player.useCard({name:'sha',isCard:true},result.targets[0],false);
trigger.cancel();
player.skip('phaseDraw');
}
},
},
qingyi1:{
audio:true,
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
content:function(){
"step 0"
player.addSkill('qingyi3');
var check= player.countCards('h')>2;
player.chooseTarget(get.prompt2('qingyi'),function(card,player,target){
if(player==target) return false;
return player.canUse({name:'sha'},target);
}).ai=function(target){
if(!check) return 0;
return get.effect(target,{name:'sha'},_status.event.player);
}
"step 1"
if(result.bool){
player.logSkill('qingyi1',result.targets);
player.useCard({name:'sha',isCard:true},result.targets[0],false);
player.skip('phaseJudge');
player.skip('phaseDraw');
}
player.removeSkill('qingyi3');
}
},
qingyi2:{
audio:true,
trigger:{player:'phaseUseBefore'},
direct:true,
filter:function(event,player){
return player.countCards('he',{type:'equip'})>0;
},
content:function(){
"step 0"
player.addSkill('qingyi3');
var check=player.countCards('h')<=player.hp;
player.chooseCardTarget({
prompt:get.prompt2('qingyi'),
filterCard:function(card,player){
return get.type(card)=='equip'&&lib.filter.cardDiscardable(card,player);
},
position:'he',
filterTarget:function(card,player,target){
if(player==target) return false;
return player.canUse({name:'sha'},target);
},
ai1:function(card){
if(!_status.event.check) return 0;
return 6-get.value(card);
},
ai2:function(target){
if(!_status.event.check) return 0;
return get.effect(target,{name:'sha'},_status.event.player);
},
check:check
});
"step 1"
if(result.bool){
player.logSkill('qingyi2',result.targets);
player.discard(result.cards[0]);
player.useCard({name:'sha',isCard:true},result.targets[0]);
trigger.cancel();
}
player.removeSkill('qingyi3');
}
},
qingyi3:{
mod:{
targetInRange:function(card,player,target,now){
return true;
}
},
},
qirang:{
audio:2,
trigger:{player:'equipEnd'},
frequent:true,
content:function(){
player.gain(get.cardPile(function(card){
return get.type(card,'trick')=='trick';
}),'gain2');
},
ai:{
effect:{
target:function(card,player,target,current){
if(get.type(card)=='equip'&&!get.cardtag(card,'gifts')) return [1,3];
}
},
threaten:1.3
}
},
yuhua:{
trigger:{player:'phaseDiscardBegin'},
forced:true,
audio:2,
filter:function(event,player){
return event.parent.name=='phaseDiscard'&&player.countCards('h',{type:'basic'})0){
var att1=get.attitude(target,player);
var att2=get.attitude(target,trigger.player);
var att3=get.attitude(player,target);
if(att3<0) return 0;
return att1/2+att2+att3;
}
else{
return 0;
// return get.attitude(player,target);
}
});
'step 1'
if(result.bool){
player.addTempSkill('chenqing2','roundStart');
event.target=result.targets[0];
event.target.draw(4);
player.logSkill('chenqing',event.target);
}
else{
event.finish();
}
'step 2'
var target=event.target;
var tosave=trigger.player;
var att=get.attitude(target,tosave);
var hastao=target.countCards('h','tao');
target.chooseToDiscard(4,true,'he').set('ai',function(card){
var hastao=_status.event.hastao;
var att=_status.event.att;
if(!hastao&&att>0){
var suit=get.suit(card);
for(var i=0;i0&&player.countCards('h')>0;
},
content:function(){
"step 0"
event.count=2;
event.history=player.getHistory('useCard',function(evt){
return evt.isPhaseUsing()&&['basic','trick'].contains(get.type(evt.card));
})
"step 1"
event._result={};
if(event.count&&event.history.length&&player.countCards('h')){
event.count--;
var card=event.history.shift().card;
card={name:card.name,nature:card.nature};
if(card.name!='jiu'&&lib.filter.cardEnabled(card)){
if(game.hasPlayer(function(current){
return player.canUse(card,current);
})){
lib.skill.mozhix.viewAs=card;
var next=player.chooseToUse();
if(next.isOnline()){
player.send(function(card){
lib.skill.mozhix.viewAs=card;
},card)
}
next.logSkill='mozhi';
next.set('openskilldialog','默识:将一张手牌当'+get.translation(card)+'使用');
next.set('norestore',true);
next.set('_backupevent','mozhix');
next.backup('mozhix');
}
}
}
"step 2"
if(result&&result.bool) event.goto(1);
},
},
mozhix:{
filterCard:function(card){
return get.itemtype(card)=='card';
},
selectCard:1,
popname:true,
},
chenqing2:{},
ranshang:{
audio:2,
trigger:{player:'damageEnd'},
filter:function(event,player){
return event.nature=='fire';
},
forced:true,
check:function(){
return false;
},
content:function(){
player.addMark('ranshang',trigger.num);
},
intro:{
name2:'燃',
content:'mark'
},
ai:{
effect:{
target:function(card,player,target,current){
if(card.name=='sha'){
if(card.nature=='fire'||player.hasSkill('zhuque_skill')) return 2;
}
if(get.tag(card,'fireDamage')&¤t<0) return 2;
}
}
},
group:'ranshang2'
},
ranshang2:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
forced:true,
filter:function(event,player){
return player.countMark('ranshang')>0;
},
content:function(){
player.loseHp(player.countMark('ranshang'));
}
},
hanyong:{
trigger:{player:'useCard'},
filter:function(event,player){
return game.roundNumber>player.hp&&event.card&&
(event.card.name=='nanman'||event.card.name=='wanjian');
},
content:function(){
trigger.baseDamage++;
},
},
hanyong3:{
audio:false,
trigger:{source:'damageBegin1'},
forced:true,
onremove:true,
filter:function(event,player){
return event.card==player.storage.hanyong3;
},
content:function(){
trigger.num++;
}
},
yishe:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
init:function(player){
if(!player.storage.yishe) player.storage.yishe=[];
},
filter:function(event,player){
return !player.storage.yishe||!player.storage.yishe.length;
},
intro:{
content:'cards'
},
content:function(){
'step 0'
player.draw(2);
player.chooseCard(2,'he',true,'选择两张牌作为“米”');
'step 1'
player.storage.yishe=result.cards;
player.lose(result.cards,ui.special,'toStorage');
player.syncStorage('yishe');
player.markSkill('yishe');
}
},
bushi:{
audio:2,
trigger:{player:'damageEnd',source:'damageEnd'},
filter:function(event,player){
if(event._notrigger.contains(event.player)) return false;
return player.storage.yishe&&player.storage.yishe.length&&event.player.isAlive();
},
direct:true,
content:function(){
'step 0'
event.count=trigger.num;
'step 1'
trigger.player.chooseCardButton('选择获得一张“米”',player.storage.yishe);
'step 2'
if(result.bool){
event.count--;
player.logSkill('bushi');
trigger.player.gain(result.links[0],'draw2','log','fromStorage');
player.storage.yishe.remove(result.links[0]);
player.syncStorage('yishe');
if(player.storage.yishe.length==0){
player.recover();
player.unmarkSkill('yishe');
}
else{
player.markSkill('yishe');
if(event.count>0) event.goto(1);
}
}
}
},
midao:{
audio:2,
//unique:true,
trigger:{global:'judge'},
direct:true,
filter:function(event,player){
return player.storage.yishe&&player.storage.yishe.length&&event.player.isAlive();
},
content:function(){
"step 0"
var list=player.storage.yishe;
player.chooseButton([get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+get.translation(trigger.player.judging[0])+
','+get.prompt('midao'),list,'hidden'],function(button){
var card=button.link;
var trigger=_status.event.getTrigger();
var player=_status.event.player;
var judging=_status.event.judging;
var result=trigger.judge(card)-trigger.judge(judging);
var attitude=get.attitude(player,trigger.player);
return result*attitude;
}).set('judging',trigger.player.judging[0]).set('filterButton',function(button){
var player=_status.event.player;
var card=button.link;
var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player);
if(mod2!='unchanged') return mod2;
var mod=game.checkMod(card,player,'unchanged','cardRespondable',player);
if(mod!='unchanged') return mod;
return true;
});
"step 1"
if(result.bool){
event.forceDie=true;
player.respond(result.links,'midao','highlight','noOrdering');
result.cards=result.links;
var card=result.cards[0];
event.card=card;
player.storage.yishe.remove(card);
if(player.storage.yishe.length==0){
player.unmarkSkill('yishe');
if(player.hasSkill('yishe')){
player.logSkill('yishe');
player.recover();
}
}
else player.markSkill('yishe');
}
else{
event.finish();
}
"step 2"
if(result.bool){
if(trigger.player.judging[0].clone){
trigger.player.judging[0].clone.classList.remove('thrownhighlight');
game.broadcast(function(card){
if(card.clone){
card.clone.classList.remove('thrownhighlight');
}
},trigger.player.judging[0]);
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging[0].clone]));
}
game.cardsDiscard(trigger.player.judging[0]);
trigger.player.judging[0]=result.cards[0];
trigger.orderingCards.addArray(result.cards);
game.log(trigger.player,'的判定牌改为',card);
game.delay(2);
}
},
ai:{
rejudge:true,
tag:{
rejudge:0.6
}
}
},
fengpo:{
shaRelated:true,
audio:2,
trigger:{
player:'useCardToPlayered',
},
filter:function(event,player){
if(event.targets.length!=1||!['sha','juedou'].contains(event.card.name)) return false;
var evt2=event.getParent('phaseUse');
if(evt2.player!=player) return false;
return player.getHistory('useCard',function(evt){
return ['sha','juedou'].contains(evt.card.name)&&evt.getParent('phaseUse')==evt2;
}).indexOf(event.getParent())==0;
},
direct:true,
content:function(){
'step 0'
player.chooseControl('draw_card','加伤害','cancel2').set('prompt',get.prompt2('fengpo'));
'step 1'
if(result.control&&result.control!='cancel2'){
player.logSkill('fengpo',trigger.target);
var nd=trigger.target.countCards('h',{suit:'diamond'});
if(result.control=='draw_card'){
player.draw(nd);
}
else{
var trigger2=trigger.getParent();
if(typeof trigger2.baseDamage!='number'){
trigger2.baseDamage=1;
}
trigger2.baseDamage+=nd;
}
}
}
},
fengpo2:{
trigger:{source:'damageBegin1'},
filter:function(event){
return event.card&&(event.card.name=='sha'||event.card.name=='juedou')&&event.notLink();
},
forced:true,
audio:false,
content:function(){
if(typeof player.storage.fengpo=='number'){
trigger.num+=player.storage.fengpo;
}
}
},
fengpo3:{},
biluan:{
audio:2,
trigger:{player:'phaseDrawBegin1'},
mark:true,
//unique:true,
intro:{
content:function(storage){
if(storage>0){
return '其他角色计算与你的距离时+'+storage;
}
else if(storage<0){
return '其他角色计算与你的距离时'+storage;
}
else{
return '无距离变化';
}
}
},
init:function(player){
if(typeof player.storage.biluan!='number') player.storage.biluan=0;
},
check:function(event,player){
if(player.countCards('h')>player.hp) return true;
if(player.hasJudge('lebu')) return true;
var ng=[];
var players=game.filterPlayer();
for(var i=0;i1){
nai++;
}
}
}
return nai>=2;
},
filter:function(event,player){
return !event.numFixed&&game.hasPlayer(function(current){
return current!=player&&get.distance(current,player)<=1;
});
},
content:function(){
var ng=[];
var players=game.filterPlayer();
for(var i=0;i1;
},
forced:true,
content:function(){
'step 0'
player.chooseTarget(function(card,player,target){
return target==player||target==_status.event.source;
},true,'礼下:选择一个目标摸一张牌').set('ai',function(target){
return player==target?1:0;
}).set('source',trigger.player);
'step 1'
if(result.targets.length){
result.targets[0].draw();
player.line(result.targets[0],'green');
}
player.storage.biluan--;
player.markSkill('biluan');
game.addVideo('storage',player,['biluan',player.storage.biluan]);
}
},
rebiluan:{
audio:'biluan',
trigger:{player:'phaseJieshuBegin'},
mark:true,
//unique:true,
intro:{
content:function(storage){
if(storage>0){
return '其他角色计算与你的距离时+'+storage;
}
else if(storage<0){
return '其他角色计算与你的距离时'+storage;
}
else{
return '无距离变化';
}
}
},
init:function(player){
if(typeof player.storage.rebiluan!='number') player.storage.rebiluan=0;
},
checkx:function(player){
var ng=[];
var players=game.filterPlayer();
for(var i=0;i1){
nai++;
}
}
}
return nai>=2;
},
filter:function(event,player){
return player.countCards('he')&&game.hasPlayer(function(current){
return current!=player&&get.distance(current,player)<=1;
});
},
direct:true,
content:function(){
"step 0"
player.chooseToDiscard('he',get.prompt2('rebiluan')).set('logSkill','rebiluan').set('check',lib.skill.rebiluan.checkx(player)).set('ai',function(card){
if(_status.event.check) return 6-get.value(card);
return 0;
});
"step 1"
if(result.bool){
var ng=[];
var players=game.filterPlayer();
for(var i=0;i0&&get.attitude(player,event.player)<0;
},
prompt:function(event){
return get.translation(event.source)+'即将对'+get.translation(event.player)+'造成伤害,'+get.prompt('fuji');
},
logTarget:'source',
content:function(){
trigger.source.judge().callback=lib.skill.fuji.callback;
},
callback:function(){
var evt=event.getParent(2);
if(event.judgeResult.color=='black'){
//game.cardsDiscard(card);
evt._trigger.num++;
}
else{
evt._trigger.source.gain(card,'gain2');
}
},
},
fulu:{
trigger:{player:'useCard1'},
filter:function(event,player){
if(event.card.name=='sha'&&!event.card.nature) return true;
},
audio:true,
check:function(event,player){
var eff=0;
for(var i=0;i=0;
},
content:function(){
trigger.card.nature='thunder';
if(get.itemtype(trigger.card)=='card'){
var next=game.createEvent('fulu_clear');
next.card=trigger.card;
event.next.remove(next);
trigger.after.push(next);
next.setContent(function(){
delete card.nature;
});
}
}
},
guiming:{
unique:true,
zhuSkill:true,
},
canshi:{
audio:2,
trigger:{player:'phaseDrawBegin1'},
check:function(event,player){
var num=game.countPlayer(function(current){
if(player.hasZhuSkill('guiming')&¤t.group=='wu') return true;
return current.isDamaged();
});
return num>3;
},
prompt:function(event,player){
var num=game.countPlayer(function(current){
if(player.hasZhuSkill('guiming')&¤t.group=='wu'&¤t!=player) return true;
return current.isDamaged();
});
return '残蚀:是否改为摸'+get.cnNumber(num)+'张牌?';
},
filter:function(event,player){
return !event.numFixed;
},
content:function(){
trigger.changeToZero();
var num=game.countPlayer(function(current){
if(player.hasZhuSkill('guiming')&¤t.group=='wu'&¤t!=player) return true;
return current.isDamaged();
});
if(num>0){
player.draw(num);
}
player.addTempSkill('canshi2');
}
},
canshi2:{
trigger:{player:'useCard'},
forced:true,
filter:function(event,player){
if(player.countCards('he')==0) return false;
var type=get.type(event.card,'trick');
return type=='basic'||type=='trick';
},
autodelay:true,
content:function(){
player.chooseToDiscard(true,'he');
}
},
chouhai:{
audio:2,
trigger:{player:'damageBegin3'},
forced:true,
check:function(){
return false;
},
filter:function(event,player){
return player.countCards('h')==0;
},
content:function(){
trigger.num++;
},
ai:{
effect:{
target:function(card,player,target,current){
if(get.tag(card,'damage')&&target.countCards('h')==0) return [1,-2];
}
}
}
},
recanshi:{
audio:'canshi',
trigger:{player:'phaseDrawBegin2'},
check:function(event,player){
if(player.skipList.contains('phaseUse')||!player.countCards('h',function(card){
return get.type(card,'trick')=='trick'&&player.hasUseTarget(card);
})) return true;
var num=game.countPlayer(function(current){
if(player.hasZhuSkill('guiming')&¤t.group=='wu') return true;
return current.isDamaged();
});
return num>1;
},
prompt:function(event,player){
var num=game.countPlayer(function(current){
if(player.hasZhuSkill('guiming')&¤t.group=='wu'&¤t!=player) return true;
return current.isDamaged();
});
return '残蚀:是否多摸'+get.cnNumber(num)+'张牌?';
},
filter:function(event,player){
return !event.numFixed&&game.hasPlayer(function(current){
if(player.hasZhuSkill('guiming')&¤t.group=='wu'&¤t!=player) return true;
return current.isDamaged();
});
},
content:function(){
var num=game.countPlayer(function(current){
if(player.hasZhuSkill('guiming')&¤t.group=='wu'&¤t!=player) return true;
return current.isDamaged();
});
if(num>0){
trigger.num+=num;
}
player.addTempSkill('recanshi2');
}
},
recanshi2:{
trigger:{player:'useCard'},
forced:true,
filter:function(event,player){
if(player.countCards('he')==0) return false;
if(event.card.name=='sha') return true;
var type=get.type(event.card,'trick');
return type=='trick';
},
autodelay:true,
content:function(){
player.chooseToDiscard(true,'he');
}
},
rechouhai:{
audio:'chouhai',
trigger:{player:'damageBegin3'},
forced:true,
check:function(){
return false;
},
filter:function(event,player){
return event.card&&event.card.name=='sha'&&player.countCards('h')==0;
},
content:function(){
trigger.num++;
},
ai:{
effect:{
target:function(card,player,target,current){
if(card.name=='sha'&&target.countCards('h')==0) return [1,-2];
}
}
}
},
kunfen:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
direct:true,
content:function(){
"step 0"
if(player.storage.kunfen||
(get.mode()=='guozhan'&&player.hiddenSkills.contains('kunfen'))){
if(!player.storage.kunfen){
event.skillHidden=true;
}
player.chooseBool(get.prompt2('kunfen')).set('ai',function(){
var player=_status.event.player;
if(player.hp>3) return true;
if(player.hp==3&&player.countCards('h')<3) return true;
if(player.hp==2&&player.countCards('h')==0) return true;
return false;
});
}
else{
event.forced=true;
}
"step 1"
if(event.forced||result.bool){
player.logSkill('kunfen');
player.loseHp();
}
else{
event.finish();
}
"step 2"
player.draw(2);
},
ai:{
threaten:1.5
}
},
fengliang:{
skillAnimation:true,
animationColor:'thunder',
unique:true,
juexingji:true,
audio:2,
derivation:'retiaoxin',
trigger:{player:'dying'},
//priority:10,
forced:true,
filter:function(event,player){
return !player.storage.kunfen;
},
content:function(){
"step 0"
player.loseMaxHp();
"step 1"
if(player.hp<2){
player.recover(2-player.hp);
}
"step 2"
player.addSkill('retiaoxin');
player.storage.kunfen=true;
player.awakenSkill('fengliang');
},
},
zhuiji:{
mod:{
globalFrom:function(from,to){
if(from.hp>=to.hp) return -Infinity;
}
}
},
oldcihuai:{
audio:'cihuai',
trigger:{player:'phaseUseBegin'},
filter:function(event,player){
return player.countCards('h')>0;
},
check:function(event,player){
return !player.countCards('h','sha');
},
content:function(){
player.showHandcards();
if(!player.countCards('h','sha')) player.addTempSkill('oldcihuai2');
},
},
oldcihuai2:{
group:'oldcihuai3',
prompt:'视为使用一张杀',
enable:'chooseToUse',
viewAs:{name:'sha',isCard:true},
filterCard:function(){return false},
selectCard:-1,
ai:{
presha:true,
respondSha:true,
},
},
oldcihuai3:{
trigger:{
player:['gainEnd','loseEnd'],
global:'die',
},
silent:true,
firstDo:true,
filter:function(event,player){
if(event.name=='lose') return event.hs.length>0;
return true;
},
content:function(){
player.removeSkill('oldcihuai2');
},
},
cihuai:{
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return player.countCards('h','sha')==0;
},
content:function(){
"step 0"
player.chooseTarget(get.prompt2('cihuai'),function(card,player,target){
return player.canUse({name:'sha',isCard:true},target);
}).set('ai',function(target){
var player=_status.event.player;
return get.effect(target,{name:'sha',isCard:true},player,player);
});
"step 1"
if(result.bool){
player.logSkill('cihuai');
player.showHandcards();
player.useCard({name:'sha',isCard:true},result.targets);
}
},
ai:{
expose:0.2,
}
},
jilei:{
trigger:{player:'damageEnd'},
//priority:9,
audio:2,
direct:true,
filter:function(event){
return event&&event.source;
},
content:function(){
'step 0'
player.chooseControl('basic','trick','equip','cancel2',function(){
var source=_status.event.source;
if(get.attitude(_status.event.player,source)>0) return 'cancel2';
if(!source.storage.jilei2||!source.storage.jilei2.contains('basic')) return 'basic';
if(_status.currentPhase!=source) return 'trick';
if(lib.filter.cardUsable({name:'sha'},source)&&source.countCards('h')>=2) return 'basic';
return 'trick';
}).set('prompt',get.prompt2('jilei',trigger.source)).set('source',trigger.source);
'step 1'
if(result.control!='cancel2'){
player.logSkill('jilei',trigger.source);
player.popup(get.translation(result.control)+'牌');
trigger.source.addTempSkill('jilei2',{player:'phaseBegin'});
trigger.source.storage.jilei2.add(result.control);
trigger.source.updateMarks('jilei2');
}
},
ai:{
maixie_defend:true,
threaten:0.7
}
},
jilei2:{
unique:true,
charlotte:true,
intro:{
content:function(storage){
return '不能使用、打出或弃置'+get.translation(storage)+'牌';
}
},
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
},
mark:true,
onremove:true,
mod:{
cardDiscardable:function(card,player){
if(player.storage.jilei2.contains(get.type(card,'trick'))) return false;
},
cardEnabled:function(card,player){
if(player.storage.jilei2.contains(get.type(card,'trick'))) return false;
},
cardUsable:function(card,player){
if(player.storage.jilei2.contains(get.type(card,'trick'))) return false;
},
cardRespondable:function(card,player){
if(player.storage.jilei2.contains(get.type(card,'trick'))) return false;
},
cardSavable:function(card,player){
if(player.storage.jilei2.contains(get.type(card,'trick'))) return false;
},
},
},
danlao:{
audio:2,
filter:function(event,player){
return (event.card.name=='sha'||get.type(event.card)=='trick')&&event.targets&&event.targets.length>1;
},
check:function(event,player){
return event.getParent().excluded.contains(player)||get.tag(event.card,'multineg')||get.effect(player,event.card,event.player,player)<=0;
},
trigger:{target:'useCardToTargeted'},
content:function(){
trigger.getParent().excluded.add(player);
player.draw();
},
ai:{
effect:{
target:function(card){
if(get.type(card)!='trick') return;
if(card.name=='tiesuo') return [0,0];
if(card.name=='yihuajiemu') return [0,1];
if(get.tag(card,'multineg')) return [0,2];
}
}
}
},
taichen:{
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return player.canUse('sha',target);
},
content:function(){
"step 0"
player.loseHp();
"step 1"
player.useCard({name:'sha',isCard:true},target,false);
},
ai:{
order:1,
result:{
target:function(player,target){
if(player.hp>2&&player.hp>target.hp&&target.countCards('he')<4){
return get.effect(target,{name:'sha'},player,target);
}
return 0;
}
}
}
},
xinmanjuan:{
audio:'manjuan',
forced:true,
priority:15,
trigger:{player:'gainAfter'},
filter:function(event,player){
return event.type!='xinmanjuan';
},
content:function(){
"step 0"
player.lose(trigger.cards,ui.discardPile,'visible');
player.$throw(trigger.cards,1000);
game.log(player,'将',trigger.cards,'置入了弃牌堆')
"step 1"
event.cards=trigger.cards.slice(0);
if(_status.currentPhase!=player) event.finish();
"step 2"
event.card=event.cards.shift();
event.togain=[];
var number=get.number(event.card);
for(var i=0;imaxval){
maxval=tempval;
}
}
maxval+=cards.length-1;
var next=player.chooseToDiscard('he',{suit:suits});
next.set('ai',function(card){
return _status.event.maxval-get.value(card);
});
next.set('maxval',maxval);
next.set('dialog',[get.prompt(event.name),'hidden',cards])
next.logSkill=event.name;
event.cards=cards;
}
"step 2"
if(result.bool){
player.gain(event.cards,'gain2','log');
}
},
ai:{
threaten:1.3
}
},
zuixiang:{
skillAnimation:true,
animationColor:'gray',
audio:true,
unique:true,
mark:true,
trigger:{player:'phaseZhunbeiBegin'},
//priority:10,
filter:function(event,player){
if(player.storage.zuixiang) return false;
return true;
},
check:function(event,player){
return player.countCards('h')0;
},
filterCard:{name:'sha'},
check:function(card){return 6-get.value(card)},
content:function(){
'step 0'
var list=lib.group.slice(0);
list.remove('shen');
if(player.storage.xiemu2) list.removeArray(player.storage.xiemu2);
var list2=list.slice(0);
list2.sort(function(a,b){
return lib.skill.xiemu.count(b)-lib.skill.xiemu.count(a);
});
player.chooseControl(list).set('prompt','请选择一个势力').ai=function(){return list2[0]};
'step 1'
player.popup(result.control+2,get.groupnature(result.control));
game.log(player,'选择了','#g'+get.translation(result.control+2));
player.addTempSkill('xiemu2',{player:'phaseBegin'});
player.storage.xiemu2.add(result.control);
player.updateMarks('xiemu2');
},
ai:{
order:1,
result:{player:1},
},
count:function(group){
var player=_status.event.player;
return game.countPlayer(function(current){
return current!=player&¤t.group==group&&get.attitude(current,player)<0;
});
},
},
xiemu2:{
onremove:true,
mark:true,
forced:true,
audio:'xiemu',
intro:{
content:function(storage){
return '已指定'+get.translation(storage)+'势力';
},
},
trigger:{
target:'useCardToTargeted'
},
init:function(player){
if(!player.storage.xiemu2) player.storage.xiemu2=[];
},
filter:function(event,player){
if(!player.storage.xiemu2) return false;
if(get.color(event.card)!='black') return false;
if(!event.player) return false;
if(event.player==player||!player.storage.xiemu2.contains(event.player.group)) return false;
return true;
},
content:function(){
player.draw(2);
},
},
oldxiemu:{
audio:'xiemu',
trigger:{target:'useCardToTargeted'},
filter:function(event,player){
if(get.color(event.card)!='black') return false;
if(!event.player) return false;
if(event.player==player) return false;
if(get.mode()!='guozhan') return false;
return player.countCards('h','sha')>0;
},
direct:true,
content:function(){
"step 0"
var next=player.chooseToDiscard('协穆:是否弃置一张杀并摸两张牌?',{name:'sha'});
next.set('ai',function(card){
return 9-get.value(card);
});
next.logSkill='xiemu';
"step 1"
if(result.bool){
player.draw(2);
}
},
ai:{
effect:{
target:function(card,player,target){
if(get.color(card)=='black'&&target.countCards('h')>0){
return [1,0.5];
}
}
}
}
},
spmengjin:{
trigger:{player:'shaBegin'},
filter:function(event,player){
return event.target.countCards('he')>0;
},
direct:true,
content:function(){
"step 0"
var att=get.attitude(player,trigger.target);
player.choosePlayerCard(get.prompt('spmengjin',trigger.target),'he',trigger.target).ai=function(button){
var val=get.buttonValue(button);
if(att>0) return -val;
return val;
};
"step 1"
if(result.bool){
trigger.target.discard(result.links);
player.logSkill('spmengjin',trigger.target);
trigger.target.addTempSkill('mengjin2','shaAfter');
}
},
ai:{
expose:0.2
}
},
fenxun_old:{
audio:2,
trigger:{player:'shaBefore'},
direct:true,
filter:function(event,player){
return event.targets.length==1;
},
position:'he',
content:function(){
"step 0"
player.chooseCardTarget({
filterCard:lib.filter.cardDiscardable,
filterTarget:function(card,player,target){
var trigger=_status.event.getTrigger();
return lib.filter.targetEnabled(trigger.card,player,target)&&target!=trigger.targets[0];
},
ai1:function(card){
return 6-get.value(card);
},
ai2:function(target){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
return get.effect(target,trigger.card,player,player);
},
prompt:get.prompt2('fenxun')
});
"step 1"
if(result.bool){
player.discard(result.cards);
trigger.targets.push(result.targets[0]);
player.logSkill('fenxun',result.targets);
}
}
},
zhoufu:{
audio:2,
enable:'phaseUse',
usable:1,
filterCard:true,
filterTarget:function(card,player,target){
return player!=target&&!target.hasSkill('zhoufu2');
},
prepare:'throw',
discard:false,
//lose:false,
visible:true,
toStorage:true,
content:function(){
//player.lose(cards,ui.special,'toStorage');
target.$gain2(cards);
target.storage.zhoufu2=cards[0];
target.addSkill('zhoufu2');
target.storage.zhoufu3=player;
//ui.special.appendChild(cards[0]);
target.syncStorage('zhoufu2');
},
check:function(card){
return 6-get.value(card)
},
ai:{
expose:0.1,
order:1,
result:{
target:-1
}
}
},
zhoufu2:{
trigger:{player:'judgeBefore'},
forced:true,
//priority:10,
mark:'card',
filter:function(event){
return !event.directresult;
},
content:function(){
"step 0"
trigger.directresult=player.storage.zhoufu2;
delete player.storage.zhoufu2;
player.removeSkill('zhoufu2');
delete player.storage.zhoufu2_markcount;
if(player.storage.zhoufu3.isIn()){
player.storage.zhoufu3.line(player,'green');
}
"step 1"
player.addTempSkill('zhoufu3');
},
intro:{
content:'card',
onunmark:function(storage,player){
if(storage){
player.$throw(storage,1000);
game.cardsDiscard(storage);
game.log(storage,'被置入了弃牌堆');
}
delete player.storage.zhoufu2;
},
}
},
zhoufu3:{
trigger:{global:'phaseEnd'},
silent:true,
content:function(){
if(player.storage.zhoufu3.isIn()){
player.storage.zhoufu3.logSkill('zhoufu',player);
player.loseHp();
}
delete player.storage.zhoufu3;
},
onremove:true
},
yingbin:{
audio:2,
trigger:{global:'useCard'},
filter:function(event,player){
return event.player.hasSkill('zhoufu2')&&event.player.storage.zhoufu3==player&&
get.suit(event.player.storage.zhoufu2)==get.suit(event.card);
},
forced:true,
autodelay:true,
content:function(){
player.draw();
if(trigger.player.storage.zhoufu2_markcount==1){
trigger.player.removeSkill('zhoufu2');
delete trigger.player.storage.zhoufu2;
delete trigger.player.storage.zhoufu2_markcount;
delete trigger.player.storage.zhoufu3;
}
else{
trigger.player.storage.zhoufu2_markcount=1;
trigger.player.updateMarks();
}
}
},
kuiwei:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
check:function(event,player){
if(player.isTurnedOver()) return true;
var num=game.countPlayer(function(current){
return current.getEquip(1);
});
return num>1;
},
content:function(){
"step 0"
player.turnOver();
"step 1"
var num=game.countPlayer(function(current){
return current.getEquip(1);
});
player.draw(2+num);
player.addSkill('kuiwei2');
},
ai:{
effect:{
target:function(card){
if(card.name=='guiyoujie') return [0,2];
}
}
}
},
kuiwei2:{
trigger:{player:'phaseDrawBegin'},
forced:true,
audio:false,
content:function(){
var num=game.countPlayer(function(current){
return current.getEquip(1);
});
if(num>=player.countCards('he')){
player.discard(player.getCards('he'));
}
else if(num){
player.chooseToDiscard('he',num,true);
}
player.removeSkill('kuiwei2');
}
},
yanzheng:{
enable:'chooseToUse',
audio:2,
filter:function(event,player){
return player.hp0;
},
viewAsFilter:function(player){
return player.hp0;
},
filterCard:true,
position:'e',
viewAs:{name:'wuxie'},
prompt:'将一张装备区内的牌当无懈可击使用',
check:function(card){return 8-get.equipValue(card)},
threaten:1.2
},
tongji:{
global:'tongji_disable',
audio:2,
trigger:{global:"useCard1"},
forced:true,
filter:function (event,player){
return event.targets.contains(player)&&player!=event.player&&event.card.name=='sha'&&player.hp=0;
},
content:function(){
"step 0"
player.draw();
if(trigger.target!=player){
player.chooseCard(true,'he','交给'+get.translation(trigger.target)+'一张牌').set('ai',function(card){
if(get.position(card)=='e') return -1;
if(card.name=='shan') return 1;
if(get.type(card)=='equip') return 0.5;
return 0;
});
}
else{
event.finish();
}
"step 1"
trigger.target.gain(result.cards,player,'give');
game.delay();
event.card=result.cards[0];
"step 2"
if(trigger.target.getCards('h').contains(card)&&get.type(card)=='equip'){
trigger.target.chooseUseTarget(card);
}
},
ai:{
threaten:1.1
}
},
liangzhu:{
audio:2,
trigger:{global:'recoverAfter'},
direct:true,
filter:function(event,player){
return event.player.isPhaseUsing();
},
content:function(){
'step 0'
if(player==trigger.player){
player.chooseControl('摸一张','摸两张','cancel2',function(){
return '摸两张';
}).set('prompt',get.prompt2('liangzhu'));
event.single=true;
}
else{
player.chooseTarget(get.prompt2('liangzhu'),function(card,player,target){
return target==_status.event.player||target==_status.event.target;
}).set('target',trigger.player).set('ai',function(target){
var player=_status.event.player;
if(player==target) return 1;
return get.attitude(player,target)-1.5;
});
}
'step 1'
if(event.single){
if(result.control!='cancel2'){
player.logSkill('liangzhu',player);
if(result.control=='摸一张'){
player.draw();
}
else{
player.draw(2);
player.storage.liangzhu=player;
}
}
}
else if(result.bool){
var target=result.targets[0];
player.logSkill('liangzhu',target);
if(target==player){
target.draw();
}
else{
target.draw(2);
if(target.storage.liangzhu){
target.storage.liangzhu.add(player);
}
else{
target.storage.liangzhu=[player];
}
}
}
},
ai:{
expose:0.1
}
},
fanxiang:{
skillAnimation:true,
animationColor:'fire',
audio:2,
unique:true,
juexingji:true,
forceunique:true,
derivation:'xiaoji',
trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){
if(player.storage.fanxiang) return false;
return game.hasPlayer(function(current){
return current.storage.liangzhu&¤t.storage.liangzhu.contains(player)&¤t.isDamaged();
});
},
forced:true,
content:function(){
player.storage.fanxiang=true;
player.gainMaxHp();
player.recover();
player.removeSkill('liangzhu');
player.addSkill('xiaoji');
player.awakenSkill('fanxiang');
},
},
mingshi:{
audio:2,
trigger:{player:'damageBegin3'},
direct:true,
filter:function(event,player){
return event.source&&event.source.hp>player.hp;
},
content:function(){
"step 0"
var next=player.chooseToDiscard(get.prompt2('mingshi'),{color:'black'});
next.set('ai',function(card){
return 9-get.value(card);
});
next.set('logSkill','mingshi');
"step 1"
if(result.bool){
trigger.num--;
}
},
ai:{
threaten:0.8
}
},
lirang:{
audio:2,
trigger:{player:'loseAfter'},
filter:function(event,player){
if(event.type!='discard') return false;
for(var i=0;i1;
});
}
player.chooseCardButton(get.prompt('lirang'),event.cards,[1,event.cards.length]).set('ai',function(button){
if(!_status.event.goon||ui.selected.buttons.length) return 0;
if(button.link.name=='du') return 2;
return 1;
}).set('goon',goon);
}
else{
event.finish();
}
"step 2"
if(result.bool){
event.togive=result.links.slice(0);
player.chooseTarget('将'+get.translation(result.links)+'交给一名角色',true,function(card,player,target){
return target!=player;
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(_status.event.enemy){
return -att;
}
else{
if(att>2) return att/Math.sqrt(1+target.countCards('h'));
return att/Math.sqrt(1+target.countCards('h'))/5;
}
}).set('enemy',get.value(event.togive[0],player,'raw')<0);
}
else{
//game.cardsDiscard(event.cards);
event.finish();
}
"step 3"
if(result.bool){
if(!event.logged){
player.logSkill('lirang',result.targets);
event.logged=true;
}
else player.line(result.targets,'green');
for(var i=0;i0;
},
content:function(){
trigger.target.discardPlayerCard(player,true);
}
},
shenxian:{
audio:2,
trigger:{global:'loseAfter'},
filter:function(event,player){
if(event.type!='discard'||event.player==player||_status.currentPhase==player) return false;
if(player.hasSkill('shenxian2')) return false;
for(var i=0;iplayer.storage.qiangwu) return num+2;
},
targetInRange:function(card,player){
if(_status.currentPhase==player&&card.name=='sha'&&card.numberplayer.storage.qiangwu) return Infinity;
}
},
trigger:{player:'useCard1'},
filter:function(event,player){
if(_status.currentPhase==player&&event.card.name=='sha'&&
event.card.number>player.storage.qiangwu&&event.addCount!==false) return true;
return false;
},
forced:true,
popup:false,
firstDo:true,
content:function(){
trigger.addCount=false;
if(player.stat[player.stat.length-1].card.sha>0){
player.stat[player.stat.length-1].card.sha--;
}
},
},
zhendu:{
audio:2,
trigger:{global:'phaseUseBegin'},
filter:function(event,player){
return /*(get.mode()!='guozhan'||event.player!=player)&&*/player.countCards('h')>0;
},
direct:true,
content:function(){
"step 0"
var nono=(Math.abs(get.attitude(player,trigger.player))<3);
if(player==trigger.player||get.damageEffect(trigger.player,player,player)<=0){
nono=true
}
else if(trigger.player.hp>2){
nono=true;
}
else if(trigger.player.hp>1&&player.countCards('h')<3){
nono=true;
}
else if(trigger.player.canUse('sha',player)&&!player.countCards('h','shan')&&trigger.player.countCards('h')>=3){
nono=true;
}
var next=player.chooseToDiscard(get.prompt2('zhendu',trigger.player));
next.set('ai',function(card){
if(_status.event.nono) return -1;
return 7-get.useful(card);
});
next.set('logSkill',['zhendu',trigger.player]);
next.set('nono',nono);
"step 1"
if(result.bool){
trigger.player.chooseUseTarget({name:'jiu'},true,'noTargetDelay','nodelayx');
}
else{
event.finish();
}
"step 2"
if(result.bool&&trigger.player!=player) trigger.player.damage();
},
ai:{
threaten:2,
expose:0.3
}
},
qiluan:{
audio:'qiluan2',
//group:'qiluan_draw',
//subfrequent:['draw'],
trigger:{global:'phaseEnd'},
frequent:true,
filter:function(event,player){
return game.hasPlayer2(function(current){
return current.getStat('kill')>0
});
},
prompt:function(event,player){
var num=game.countPlayer2(function(current){
return (current.getStat('kill')||0)*(current==player?3:1);
});
return get.prompt('qiluan')+'(可摸'+get.cnNumber(num)+'张牌)';
},
content:function(){
//if(get.mode()=='guozhan'){
// player.draw(3);
//}
//else{
player.draw(game.countPlayer2(function(current){
return (current.getStat('kill')||0)*(current==player?3:1);
}));
//}
},
subSkill:{
draw:{
trigger:{global:'dieAfter'},
frequent:true,
filter:function(event,player){
return /*get.mode()!='guozhan'&&*/player!=event.source;
},
content:function(){player.draw()},
},
},
},
qiluan2:{
audio:2,
},
zniaoxiang:{
shaRelated:true,
audio:2,
trigger:{player:'useCardToPlayered'},
forced:true,
filter:function(event,player){
return event.card.name=='sha'&&!event.getParent().directHit.contains(event.target);
},
//priority:-1,
logTarget:'target',
content:function(){
var id=trigger.target.playerid;
var map=trigger.getParent().customArgs;
if(!map[id]) map[id]={};
if(typeof map[id].shanRequired=='number'){
map[id].shanRequired++;
}
else{
map[id].shanRequired=2;
}
}
},
shangyi:{
audio:2,
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return player!=target&&target.countCards('h');
},
content:function(){
"step 0"
player.chooseCardButton(target,target.getCards('h')).set('filterButton',function(button){
return get.color(button.link)=='black';
});
"step 1"
if(result.bool){
target.discard(result.links[0]);
}
},
ai:{
order:11,
result:{
target:function(player,target){
return -target.countCards('h');
}
},
threaten:1.1
},
},
shengxi:{
trigger:{player:'phaseDiscardBegin'},
frequent:true,
filter:function(event,player){
return !player.getStat('damage');
},
content:function(){
player.draw(2);
},
audio:2,
audioname:['liushan']
},
shoucheng:{
trigger:{global:'loseAfter'},
audio:2,
check:function(event,player){
return get.attitude(player,event.player)>0;
},
filter:function(event,player){
if(event.player==player||event.player.isDead()||event.player.countCards('h')) return false;
if(_status.currentPhase==event.player) return false;
return event.hs&&event.hs.length>0;
},
logTarget:'player',
content:function(){
trigger.player.draw();
},
ai:{
threaten:1.3,
expose:0.2,
noh:true,
}
},
hengzheng:{
audio:2,
trigger:{player:'phaseDrawBegin1'},
filter:function(event,player){
return !event.numFixed&&(player.hp==1||player.countCards('h')==0);
},
check:function(event,player){
var num=game.countPlayer(function(current){
if(current.countCards('he')&¤t!=player&&get.attitude(player,current)<=0){
return true;
}
if(current.countCards('j')&¤t!=player&&get.attitude(player,current)>0){
return true;
}
});
return num>=2;
},
content:function(){
"step 0"
var targets=game.filterPlayer();
targets.remove(player);
targets.sort(lib.sort.seat);
event.targets=targets;
event.num=0;
trigger.changeToZero();
player.line(targets,'green');
"step 1"
if(num【勇决】每当其他角色于回合内使用一张杀,若目标不是你,你可以获得之,每回合限一次
');
"step 1"
player.turnOver();
},
intro:{
content:'limited'
},
ai:{
order:4,
result:{
target:function(player,target){
if(target.isMin()) return 0;
if(player.hp>1){
if(game.phaseNumber2) return 0;
if(get.attitude(player,target)<5) return 0;
}
if(get.attitude(player,target)<5) return 0;
if(target.hp==1&&target.maxHp>2) return 0.2;
if(target==game.me) return 1.2;
return 1;
}
},
expose:0.5,
threaten:1.5
}
},
fenming:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
check:function(event,player){
var num=game.countPlayer(function(current){
if(current.isLinked()&¤t.countCards('he')){
return get.attitude(player,current);
}
});
return num<0;
},
filter:function(event,player){
return player.isLinked();
},
content:function(){
"step 0"
event.targets=game.filterPlayer(function(current){
if(current.isLinked()&¤t.countCards('he')){
return true;
}
});
event.num=0;
event.targets.sort(lib.sort.seat);
"step 1"
if(event.num=0);
trigger.player.chooseToDiscard('he','弃置一张装备牌并令'+get.translation(player)+'摸一张牌,或受到一点伤害',{type:'equip'}).set('ai',function(card){
if(_status.event.nono){
return 0;
}
if(_status.event.player.hp==1) return 10-get.value(card);
return 9-get.value(card);
}).set('nono',nono);
}
else{
event.finish();
}
"step 2"
if(result.bool){
player.draw();
}
else{
trigger.player.damage();
}
},
ai:{
expose:0.3,
threaten:1.3
}
},
suishi:{
audio:2,
trigger:{global:'dying'},
forced:true,
popup:false,
//priority:12,
check:function(){
return false;
},
filter:function(event,player){
return event.player!=player&&event.parent.name=='damage'&&event.parent.source&&event.parent.source!=event.player;
},
content:function(){
'step 0'
var str;
if(trigger.parent.source==player){
str='随势:是否摸一张牌?';
}
else{
str='随势:是否令'+get.translation(player)+'摸一张牌?'
}
trigger.parent.source.chooseBool(str).set('ai',function(){
return get.attitude(_status.event.player,_status.event.target)>0;
}).set('target',player);
'step 1'
if(result.bool){
player.logSkill('suishi');
trigger.parent.source.line(player,'green');
player.draw();
}
},
group:'suishi2'
},
suishi2:{
trigger:{global:'dieAfter'},
forced:true,
popup:false,
check:function(){
return false;
},
filter:function(event,player){
return event.player!=player&&event.source&&event.source!=player&&event.source!=event.player;
},
content:function(){
'step 0'
var str;
if(trigger.source==player){
str='随势:是否流失一点体力?';
}
else{
str='随势:是否令'+get.translation(player)+'流失一点体力?'
}
trigger.source.chooseBool(str).set('ai',function(){
return get.attitude(_status.event.player,_status.event.target)<0;
}).set('target',player);
'step 1'
if(result.bool){
player.logSkill('suishi');
trigger.source.line(player,'green');
player.loseHp();
}
},
},
sijian:{
trigger:{player:'loseAfter'},
direct:true,
audio:2,
filter:function(event,player){
if(player.countCards('h')) return false;
return event.hs&&event.hs.length>0;
},
content:function(){
"step 0"
player.chooseTarget(get.prompt('sijian'),'弃置一名其他角色的一张牌',function(card,player,target){
return player!=target&&target.countCards('he')>0;
}).set('ai',function(target){
return -get.attitude(_status.event.player,target);
});
"step 1"
if(result.bool){
player.logSkill('sijian',result.targets);
event.target=result.targets[0];
player.discardPlayerCard(event.target,true);
}
else{
event.finish();
}
},
ai:{
expose:0.2,
}
},
quji:{
audio:2,
enable:'phaseUse',
usable:1,
position:'he',
filterCard:true,
selectCard:function(){
var player=_status.event.player;
return player.getDamagedHp();
},
filterTarget:function(card,player,target){
return target.hp-1;
if(num==2) return att>0;
return att>1;
}
return false;
},
content:function(){
"step 0"
event.target=player;
event.player=trigger.player;
event.player.chooseBool('是否对'+get.translation(event.target)+'发动【郡兵】?',event.player==event.target?'摸一张牌':'摸一张牌,将所有手牌交给该角色,然后该角色交给你等量的手牌').set('choice',lib.skill.junbing.checkx(event.target,event.player));
"step 1"
if(!result.bool){event.finish();return}
target.logSkill('junbing',player);
if(player==target) event.finish();
player.draw();
"step 2"
var cards=player.getCards('h');
target.gain(cards,player,'giveAuto');
event.num=cards.length;
game.delay();
"step 3"
target.chooseCard('选择还给'+get.translation(player)+'的牌',true,event.num);
game.delay(0.2);
"step 4"
player.gain(result.cards,target,'giveAuto');
game.delay();
},
audio:2,
},
xiongyi:{
skillAnimation:true,
animationColor:'gray',
unique:true,
enable:'phaseUse',
audio:2,
limited:true,
filterTarget:function(card,player,target){
if(get.mode()=='guozhan'){
if(player==target) return true;
if(player.identity=='ye') return false;
if(player.identity=='unknown'){
if(_status.yeidentity.contains(player._group)){
return false;
}
else if(get.zhu(player)||get.population(player._group)+1<=get.population()/2){
return player._group==target.identity;
}
else{
return false;
}
}
return player.identity==target.identity;
}
else{
return true;
}
},
multitarget:true,
multiline:true,
selectTarget:function(){
if(get.mode()=='guozhan') return -1;
return [1,3];
},
content:function(){
"step 0"
player.awakenSkill('xiongyi');
game.asyncDraw(targets,3);
"step 1"
if(player.isDamaged()){
if(get.mode()=='guozhan'){
if(player.isMinor(true)){
player.recover();
}
}
else if(targets.length<=2){
player.recover();
}
}
},
ai:{
order:1,
result:{
target:function(player){
var num=player.countCards('h');
if(player.hp==1) return 1;
if(player.hp==2&&num<=2) return 1;
if(player.hp==3&&num<=1) return 1;
if(game.phaseNumber1){
event.num--;
event.goto(1);
}
}
},
ai:{
threaten:0.8,
expose:0.1
}
},
shushen:{
audio:2,
trigger:{player:'recoverAfter'},
direct:true,
content:function(){
"step 0"
event.count=trigger.num;
"step 1"
player.chooseTarget(get.prompt('shushen'),'令一名其他角色选择摸两张牌或回复1点体力',function(card,player,target){
return target!=player;
}).set('ai',function(target){
return get.attitude(_status.event.player,target);
});
"step 2"
if(result.bool){
event.count--;
player.logSkill('shushen',result.targets);
result.targets[0].chooseDrawRecover(2,true);
if(event.count) event.goto(1);
}
},
ai:{
threaten:0.8,
expose:0.1
}
},
shenzhi:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
check:function(event,player){
if(player.hp>2) return false;
var cards=player.getCards('h');
if(cards.length3) return false;
for(var i=0;i7||get.tag(cards[i],'recover')>=1) return false;
}
return true;
},
filter:function(event,player){
return player.countCards('h')>0;
},
content:function(){
"step 0"
var cards=player.getCards('h');
event.bool=cards.length>=player.hp;
player.discard(cards);
"step 1"
if(event.bool){
player.recover();
}
}
},
wuji:{
skillAnimation:true,
animationColor:'orange',
audio:2,
trigger:{player:'phaseJieshuBegin'},
forced:true,
unique:true,
juexingji:true,
filter:function(event,player){
return player.getStat('damage')>=3&&!player.storage.wuji;
},
content:function(){
"step 0"
player.removeSkill('huxiao');
player.gainMaxHp();
"step 1"
player.recover();
player.awakenSkill('wuji');
player.storage.wuji=true;
var card=get.cardPile('qinglong','field');
if(card){
player.gain(card,'gain2','log');
}
}
},
xueji_old:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.hp0;
},
filterTarget:function(card,player,target){
return player!=target&&get.distance(player,target,'attack')<=1;
},
selectTarget:function(){
return [1,_status.event.player.maxHp-_status.event.player.hp];
},
position:'he',
filterCard:function(card){
return get.color(card)=='red';
},
check:function(card){
return 8-get.useful(card);
},
content:function(){
"step 0"
target.damage();
"step 1"
target.draw();
},
ai:{
order:7,
result:{
target:function(player,target){
return get.damageEffect(target,player);
}
},
threaten:function(player,target){
if(target.hp==1) return 2;
if(target.hp==2) return 1.5;
return 0.5;
},
maixie:true,
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
if(target.hp==target.maxHp&&target.hasFriend()) return [0,1];
}
if(get.tag(card,'recover')&&player.hp>=player.maxHp-1) return [0,0];
}
}
}
},
xueji:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.countCards('he',{color:'red'})>0;
},
filterTarget:true,
selectTarget:function(){
var player=_status.event.player
return [1,Math.max(1,player.getDamagedHp())];
},
position:'he',
filterCard:{color:'red'},
check:function(card){
return 8-get.value(card);
},
multitarget:true,
multiline:true,
line:'fire',
content:function(){
'step 0'
event.delay=false;
for(var i=0;ii) cards.push(ui.cardPile.childNodes[i]);
}
player.chooseCardButton('傲才:选择一张卡牌打出',cards).set('filterButton',function(button){
return get.type(button.link)=='basic'&&_status.event.getTrigger().filterCard(button.link);
});
"step 1"
if(result.bool){
game.log(player,'傲才发动成功');
trigger.untrigger();
trigger.responded=true;
result.links[0].remove();
trigger.result={bool:true,card:result.links[0]}
}
},
ai:{
effect:{
target:function(card,player,target,effect){
if(get.tag(card,'respondShan')) return 0.7;
if(get.tag(card,'respondSha')) return 0.7;
}
}
},
group:'aocai2',
},
aocai2:{
enable:'chooseToUse',
filter:function(event,player){
return _status.currentPhase!==player&&event.type!='wuxie'&&event.type!='trickuse';
},
onChooseToUse:function(event){
if(!game.online){
var cards=[];
if(ui.cardPile.childNodes.length<2){
var discardcards=get.cards(2);
game.cardsDiscard(discardcards);
}
for(var i=0;i<2;i++){
if(ui.cardPile.childNodes.length>i) cards.push(ui.cardPile.childNodes[i]);
}
event.set('aocaicards',cards);
}
},
chooseButton:{
dialog:function(event,player){
return ui.create.dialog('傲才:选择一张卡牌使用',event.aocaicards);
},
filter:function(button,player){
var evt=_status.event.getParent();
if(evt&&evt.filterCard){
return get.type(button.link)=='basic'&&evt.filterCard(button.link,player,evt);
}
return false;
},
check:function(button){
return 1;
},
backup:function(links,player){
return {
audio:'aocai',
filterCard:function(){return false},
selectCard:-1,
viewAs:links[0],
}
},
prompt:function(links,player){
return '选择'+get.translation(links)+'的目标';
}
},
ai:{
order:11,
respondShan:true,
respondSha:true,
save:true,
result:{
player:function(player){
if(_status.event.dying) return get.attitude(player,_status.event.dying);
return 1;
}
}
}
},
hongyuan:{
trigger:{player:'phaseDrawBegin2'},
direct:true,
audio:2,
filter:function(event,player){
return !event.numFixed&&event.num>0;
},
content:function(){
"step 0"
var check;
if(player.countCards('h')==0){
check=false;
}
else{
check=(game.countPlayer(function(current){
return player!=current&&get.attitude(player,current)>1;
})>=2);
}
if(get.is.versus()){
event.versus=true;
player.chooseBool(get.prompt2('hongyuan')).ai=function(){
return game.countPlayer(function(current){
return player.side==current.side;
})>2;
};
}
else{
player.chooseTarget(get.prompt2('hongyuan'),[1,2],function(card,player,target){
return player!=target;
},function(target){
if(!_status.event.check) return 0;
return get.attitude(_status.event.player,target);
}).set('check',check);
}
"step 1"
if(result.bool){
var targets;
if(event.versus){
targets=game.filterPlayer(function(current){
return current!=player&¤t.side==player.side;
});
}
else{
targets=result.targets;
}
player.logSkill('hongyuan',targets);
game.asyncDraw(targets);
trigger.num--;
}
},
},
huanshi:{
audio:2,
trigger:{global:'judge'},
filter:function(event,player){
return player.countCards('he')>0;
},
logTarget:'player',
check:function(event,player){
if(get.attitude(player,event.player)<=0) return false;
var cards=player.getCards('he');
var judge=event.judge(event.player.judging[0]);
for(var i=0;ijudge) return true;
if(_status.currentPhase!=player&&judge2==judge&&get.color(cards[i])=='red'&&get.useful(cards[i])<5) return true;
}
return false;
},
content:function(){
"step 0"
var target=trigger.player;
var judge=trigger.judge(target.judging[0]);
var attitude=get.attitude(target,player);
target.choosePlayerCard('请选择代替判定的牌','he','visible',true,player).set('ai',function(button){
var card=button.link;
var judge=_status.event.judge;
var attitude=_status.event.attitude;
var result=trigger.judge(card)-judge;
var player=_status.event.player;
if(result>0){
return 20+result;
}
if(result==0){
if(_status.currentPhase==player) return 0;
if(attitude>=0){
return get.color(card)=='red'?7:0-get.value(card);
}
else{
return get.color(card)=='black'?10:0+get.value(card);
}
}
if(attitude>=0){
return get.color(card)=='red'?0:-10+result;
}
else{
return get.color(card)=='black'?0:-10+result;
}
}).set('filterButton',function(button){
var player=_status.event.target;
var card=button.link;
var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player);
if(mod2!='unchanged') return mod2;
var mod=game.checkMod(card,player,'unchanged','cardRespondable',player);
if(mod!='unchanged') return mod;
return true;
}).set('judge',judge).set('attitude',attitude);
"step 1"
if(result.bool){
event.card=result.links[0];
player.respond(event.card,'highlight').nopopup=true;
}
else{
event.finish();
}
"step 2"
if(result.bool){
if(trigger.player.judging[0].clone){
trigger.player.judging[0].clone.classList.remove('thrownhighlight');
game.broadcast(function(card){
if(card.clone){
card.clone.classList.remove('thrownhighlight');
}
},trigger.player.judging[0]);
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging[0].clone]));
}
game.cardsDiscard(trigger.player.judging[0]);
trigger.player.judging[0]=event.card;
trigger.orderingCards.add(event.card);
game.log(trigger.player,'的判定牌改为',event.card);
game.delay(2);
}
},
ai:{
rejudge:true,
tag:{
rejudge:1,
}
}
},
mingzhe:{
audio:2,
trigger:{player:['useCard','respond','loseAfter']},
frequent:true,
filter:function(event,player){
if(player==_status.currentPhase) return false;
if(event.name!='lose') return get.color(event.card)=='red';
if(event.type!='discard') return false;
if(event.cards2){
for(var i=0;i2) return current-1;
},
globalTo:function(from,to,current){
if(to.hp<=2) return current+1;
},
},
ai:{
threaten:0.8
}
},
yongsi:{
group:['yongsi1','yongsi2'],
ai:{
threaten:2.2
}
},
yongsi1:{
audio:2,
trigger:{player:'phaseDrawBegin2'},
forced:true,
filter:function(event,player){
return !event.numFixed;
},
content:function(){
trigger.num+=game.countGroup();
}
},
yongsi2:{
audio:2,
trigger:{player:'phaseDiscardBegin'},
forced:true,
content:function(){
player.chooseToDiscard(game.countGroup(),'he',true);
}
},
bifa:{
trigger:{player:'phaseJieshuBegin'},
direct:true,
audio:2,
filter:function(event,player){
return player.countCards('h')>0;
},
content:function(){
"step 0"
var players=game.filterPlayer();
for(var i=0;itarget.hp){
target.chooseToDiscard(2,'he',true);
}
else{
target.draw(2);
}
if(!player.storage.songci) player.storage.songci=[];
player.storage.songci.push(target);
player.storage.songci.sortBySeat();
player.markSkill('songci');
},
intro:{
content:'已对$发动过〖颂词〗'
},
ai:{
order:7,
threaten:1.5,
expose:0.2,
result:{
target:function(player,target){
if(target.countCards('h')target.hp){
return -1;
}
}
}
}
},
baobian:{
audio:2,
trigger:{player:['phaseBefore','changeHp']},
forced:true,
popup:false,
init:function(player){
if(game.online) return;
player.removeAdditionalSkill('baobian');
var list=[];
if(player.hp<=3){
//if(trigger.num!=undefined&&trigger.num<0&&player.hp-trigger.num>1) player.logSkill('baobian');
list.push('retiaoxin');
}
if(player.hp<=2){
list.push('olpaoxiao');
}
if(player.hp<=1){
list.push('xinshensu');
}
if(list.length){
player.addAdditionalSkill('baobian',list);
}
},
derivation:['retiaoxin','olpaoxiao','xinshensu'],
content:function(){
player.removeAdditionalSkill('baobian');
var list=[];
if(player.hp<=3){
if(trigger.num!=undefined&&trigger.num<0&&player.hp-trigger.num>1) player.logSkill('baobian');
list.push('retiaoxin');
}
if(player.hp<=2){
list.push('olpaoxiao');
}
if(player.hp<=1){
list.push('xinshensu');
}
if(list.length){
player.addAdditionalSkill('baobian',list);
}
},
ai:{
maixie:true,
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
if(!target.hasFriend()) return;
if(target.hp>=4) return [0,1];
}
if(get.tag(card,'recover')&&player.hp>=player.maxHp-1) return [0,0];
}
}
}
},
chongzhen:{
group:['chongzhen1','chongzhen2'],
audio:'chongzhen1',
ai:{
combo:'ollongdan',
mingzhi:false,
effect:{
target:function(card,player,target,current){
if(get.tag(card,'respondShan')||get.tag(card,'respondSha')){
if(get.attitude(target,player)<=0){
if(current>0) return;
if(target.countCards('h')==0) return 1.6;
if(target.countCards('h')==1) return 1.2;
if(target.countCards('h')==2) return [0.8,0.2,0,-0.2];
return [0.4,0.7,0,-0.7];
}
}
},
},
}
},
chongzhen1:{
audio:2,
trigger:{player:'useCard'},
filter:function(event,player){
if((event.card.name!='sha'&&event.card.name!='shan')||(event.skill!='longdan_shan'&&event.skill!='longdan_sha'&&
event.skill!='fanghun_shan'&&event.skill!='fanghun_sha'&&event.skill!='ollongdan')) return false;
var target=lib.skill.chongzhen1.logTarget(event,player);
return target&&target.countGainableCards(player,'h')>0;
},
logTarget:function(event,player){
if(event.card.name=='sha') return event.targets[0];
return event.respondTo[0];
},
prompt2:'每当你发动“龙胆”使用或打出一张手牌时,你可以立即获得对方的一张手牌。',
content:function(){
var target=lib.skill.chongzhen1.logTarget(trigger,player);
player.gainPlayerCard(target,'h',true);
}
},
chongzhen2:{
audio:2,
trigger:{player:'respond'},
filter:function(event,player){
if(event.skill!='longdan_shan'&&event.skill!='longdan_sha'&&
event.skill!='fanghun_shan'&&event.skill!='fanghun_sha'&&event.skill!='ollongdan') return false;
return event.source&&event.source.countGainableCards(player,'h')>0;
},
logTarget:'source',
prompt2:'每当你发动“龙胆”使用或打出一张手牌时,你可以立即获得对方的一张手牌。',
content:function(){
player.gainPlayerCard(trigger.source,'h',true);
}
},
lihun:{
audio:2,
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return player!=target&&target.sex=='male';
},
filterCard:true,
position:'he',
content:function(){
player.gain(target.getCards('h'),target,'giveAuto');
player.turnOver();
player.addSkill('lihun2');
player.storage.lihun=target;
},
check:function(card){return 8-get.value(card)},
ai:{
order:10,
result:{
player:function(player){
if(player.classList.contains('turnedover')) return 10;
return 0;
},
target:function(player,target){
if(target.countCards('h')>target.hp) return target.hp-target.countCards('h');
return 0;
}
},
threaten:1.5,
effect:{
target:function(card){
if(card.name=='guiyoujie') return [0,2];
}
}
},
},
lihun2:{
trigger:{player:'phaseUseEnd'},
forced:true,
popup:false,
audio:false,
content:function(){
"step 0"
var cards=player.getCards('he');
player.removeSkill('lihun2');
if(player.storage.lihun.classList.contains('dead')||player.storage.lihun.hp<=0||cards.length==0){
event.finish();
}
else{
if(cards.length0;
},
content:function(){
"step 0"
player.chooseCardTarget({
filterCard:function(card){
return get.type(card)=='equip';
},
position:'he',
filterTarget:function(card,player,target){
return target.isEmpty(get.subtype(card));
},
ai1:function(card){
return 6-get.value(card);
},
ai2:function(target){
return get.attitude(_status.event.player,target)-3;
},
prompt:get.prompt2('yuanhu')
});
"step 1"
if(result.bool){
player.logSkill('yuanhu',result.targets);
var thisTarget=result.targets[0];
var thisCard=result.cards[0];
thisTarget.equip(thisCard);
event.target=thisTarget;
if(thisTarget!=player){
player.$give(thisCard,thisTarget,false);
}
switch(get.subtype(thisCard)){
case 'equip1':{
if(!game.hasPlayer(function(current){
return get.distance(thisTarget,current)<=1;
})){
event.finish();
return;
}
game.delay();
player.chooseTarget(true,function(card,player,target){
return get.distance(_status.event.thisTarget,target)<=1&&target.countCards('hej');
}).set('ai',function(target){
var attitude=get.attitude(_status.event.player,target);
if(attitude>0&&target.countCards('j')){
return attitude*1.5;
}
return -attitude;
}).set('thisTarget',thisTarget);
return;
}
case 'equip2':{
thisTarget.draw();event.finish();
return;
}
case 'equip5':{
event.finish();
return;
}
default:{
thisTarget.recover();
event.finish();
return;
}
}
}
else{
event.finish();
}
"step 2"
if(result.targets.length){
player.discardPlayerCard(true,result.targets[0],'hej');
}
},
},
tianming:{
audio:2,
trigger:{target:'useCardToTargeted'},
check:function(event,player){
var cards=player.getCards('h');
if(cards.length<=2){
for(var i=0;iplayers[1].hp&&players[0]!=player){
players[0].chooseBool(get.prompt2('tianming'));
event.player=players[0];
}
else{
event.finish();
}
"step 1"
if(result.bool){
player.chooseToDiscard(2,true,'he');
player.draw(2);
}
},
ai:{
effect:{
target:function(card,player,target,current){
if(card.name=='sha') return [1,0.5];
}
}
}
},
mizhao:{
enable:'phaseUse',
usable:1,
audio:2,
filter:function(event,player){
return player.countCards('h')>0;
},
filterCard:true,
selectCard:-1,
filterTarget:function(card,player,target){
return player!=target;
},
discard:false,
prepare:'give2',
ai:{
order:1,
result:{
player:0,
target:function(player,target){
if(target.hasSkillTag('nogain')) return 0;
if(player.countCards('h')>1){
return 1;
}
var players=game.filterPlayer();
for(var i=0;i0){
return eff-10;
}
return eff;
}).set('target1',event.target1);
"step 2"
if(result.targets.length){
event.target2=result.targets[0];
event.target1.line(event.target2);
event.target1.chooseToCompare(event.target2);
}
else{
event.finish();
}
"step 3"
if(!result.tie){
if(result.bool&&event.target1.canUse({name:'sha',isCard:true},event.target2,false)){
event.target1.useCard({name:'sha',isCard:true},event.target2);
}
else if(event.target2.canUse({name:'sha',isCard:true},event.target1,false)){
event.target2.useCard({name:'sha',isCard:true},event.target1);
}
}
}
},
gongao:{
audio:2,
trigger:{global:'dieAfter'},
forced:true,
content:function(){
player.gainMaxHp();
player.recover();
},
ai:{
threaten:1.5
}
},
juyi:{
skillAnimation:true,
animationColor:'thunder',
audio:true,
derivation:['benghuai','weizhong'],
trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){
return player.maxHp>game.players.length&&player.hp0){
player.draw(num);
}
player.addSkill('benghuai');
player.addSkill('weizhong');
player.storage.juyi=true;
player.awakenSkill('juyi');
}
},
weizhong:{
audio:true,
trigger:{player:['gainMaxHpEnd','loseMaxHpEnd']},
forced:true,
content:function(){
player.draw();
}
},
chixin:{
group:['chixin1','chixin2'],
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha'){
return num+20;
}
},
},
trigger:{player:'shaBefore'},
forced:true,
popup:false,
check:function(event,player){
return player.countCards('h','sha')>0;
},
filter:function(event,player){
return _status.currentPhase==player;
},
content:function(){
var target=trigger.target;
if(target.hasSkill('chixin3')){
target.storage.chixin++;
}
else{
target.storage.chixin=1;
target.addTempSkill('chixin3','phaseUseEnd');
}
}
},
chixin1:{
enable:['chooseToRespond','chooseToUse'],
filterCard:{suit:'diamond'},
position:'he',
viewAs:{name:'sha'},
prompt:'将一张♦牌当杀使用或打出',
check:function(card){return 5-get.value(card)},
ai:{
respondSha:true,
}
},
chixin2:{
enable:['chooseToUse','chooseToRespond'],
filterCard:{suit:'diamond'},
viewAs:{name:'shan'},
position:'he',
prompt:'将一张♦牌当闪使用或打出',
check:function(card){return 5-get.value(card)},
ai:{
respondShan:true,
effect:{
target:function(card,player,target,current){
if(get.tag(card,'respondShan')&¤t<0) return 0.8
}
},
}
},
chixin3:{
mod:{
targetEnabled:function(card,player,target){
if(card.name!='sha') return;
if(player==_status.currentPhase&&player.hasSkill('chixin')){
var num=player.getCardUsable(card,true)-20;
var players=game.filterPlayer();
for(var i=0;i1;
}
}
}
},
suiren:{
trigger:{player:'phaseZhunbeiBegin'},
skillAnimation:true,
animationColor:'gray',
filter:function(event,player){
return !player.storage.suiren;
},
intro:{
content:'limited',
},
mark:true,
direct:true,
unique:true,
limited:true,
content:function(){
"step 0"
var check=(player.hp==1||(player.hp==2&&player.countCards('h')<=1));
player.chooseTarget(get.prompt2('suiren')).set('ai',function(target){
if(!_status.event.check) return 0;
return get.attitude(_status.event.player,target);
}).set('check',check);
"step 1"
if(result.bool){
player.storage.suiren=true;
player.awakenSkill('suiren');
player.logSkill('suiren',result.targets);
player.removeSkill('yicong');
player.gainMaxHp();
player.recover();
result.targets[0].draw(3);
}
}
},
kuangfu:{
trigger:{source:'damageSource'},
direct:true,
audio:2,
filter:function(event){
if(event._notrigger.contains(event.player)) return false;
return event.card&&event.card.name=='sha'&&event.player.countCards('e');
},
content:function(){
"step 0"
var neg=get.attitude(player,trigger.player)<=0;
player.choosePlayerCard('e',trigger.player).set('ai',function(button){
if(_status.event.neg){
return get.buttonValue(button);
}
return 0;
}).set('neg',neg);
"step 1"
if(result.bool){
player.logSkill('kuangfu');
event.card=result.links[0];
if(player.isEmpty(get.subtype(event.card))){
player.chooseBool('是否将'+get.translation(event.card)+'置入自己的装备区?').ai=function(){
return true;
};
}
else event._result={bool:false};
}
else event.finish();
"step 2"
if(result.bool){
trigger.player.$give(event.card,player,false);
player.equip(event.card);
}
else trigger.player.discard(event.card);
}
},
"xinfu_langxi":{
audio:2,
trigger:{
player:"phaseZhunbeiBegin",
},
direct:true,
content:function (){
"step 0"
player.chooseTarget(get.prompt('xinfu_langxi'),'对一名体力值不大于你的其他角色造成0-2点随机伤害',function(card,player,target){
return target.hp<=player.hp&&target!=player;
}).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
"step 1"
if(result.bool&&result.targets&&result.targets.length){
player.logSkill('xinfu_langxi',result.targets);
var num=[1,2,0].randomGet();
if(get.isLuckyStar(player)) num=2;
player.line(result.targets[0],'green');
result.targets[0].damage(num);
}
},
ai:{
expose:0.25,
threaten:1.7,
},
},
"xinfu_yisuan":{
usable:1,
audio:2,
trigger:{
player:"useCardEnd",
},
check:function (event,player){
return get.value(event.cards)+player.maxHp*2-18>0;
},
filter:function (event,player){
return player.isPhaseUsing()&&get.type(event.card)=='trick'&&event.cards.filterInD().length>0;
},
content:function (){
player.loseMaxHp();
player.gain(trigger.cards.filterInD(),'gain2','log');
},
},
"xinfu_xingluan":{
usable:1,
audio:2,
trigger:{
player:"useCardAfter",
},
filter:function (event,player){
if(!player.isPhaseUsing()) return false;
if(get.type(event.card)==undefined) return false;
return (event.targets&&event.targets.length==1);
},
content:function (){
var card=get.cardPile2(function(card){
return card.number==6;
});
if(!card){
player.chat('无牌可得了吗');
game.log('但是牌堆里面已经没有点数为6的牌了!');
event.finish();
return;
}
player.gain(card,'gain2');
},
},
"xinfu_lveming":{
init:function (player){
player.storage.xinfu_lveming=0;
},
mark:true,
intro:{
content:"已发动过#次",
},
audio:2,
enable:"phaseUse",
usable:1,
filterTarget:function (card,player,target){
return player!=target&&target.countCards('e')0?6:-6;
return -6-(numj+1)/numhe;
},
},
threaten:1.1,
},
},
"xinfu_tunjun":{
skillAnimation:true,
animationColor:'metal',
limited:true,
unique:true,
enable:"phaseUse",
audio:2,
filter:function (event,player){
if(player.storage.xinfu_tunjun) return false;
return player.storage.xinfu_lveming&&player.storage.xinfu_lveming>0;
},
filterTarget:true,
selectTarget:1,
content:function (){
"step 0"
player.awakenSkill('xinfu_tunjun');
event.num=player.storage.xinfu_lveming;
event.toequip=[];
"step 1"
var equip=get.cardPile(function(card){
var bool1=true;
for(var i=0;i0) event.goto(1);
"step 3"
for (var i=0;itarget.getUseValue({name:'sha',cards:cards})?0:1);
}
else if(bool1){
event.directindex=0;
}
else if(bool2){
event.directindex=1;
}
else{
ui.cardPile.insertBefore(card,ui.cardPile.firstChild);
event.finish();
}
'step 2'
var card=cards[0];
if(result&&typeof event.directindex!='number'){
event.directindex=result.index;
}
if(event.directindex==1){
target.chooseUseTarget({name:'sha'},cards,true,false).viewAs=true;
}
else{
target.chooseUseTarget(card,true,false,'nodistance');
}
},
ai:{
order:7,
result:{
target:1,
},
},
},
"xinfu_bijing":{
audio:2,
group:["xinfu_bijing_lose","xinfu_bijing_discard"],
subSkill:{
lose:{
trigger:{
global:"phaseDiscardBegin",
},
audio:'xinfu_bijing',
filter:function (event,player){
if(!player.storage.xinfu_bijing) return false;
if(event.player==player) return false;
return player.getHistory('lose',function(evt){
return evt.cards.contains(player.storage.xinfu_bijing);
}).length>0&&event.player.countCards('he')>0;
},
forced:true,
logTarget:'player',
content:function (){
trigger.player.chooseToDiscard(2,true,'he');
},
sub:true,
},
discard:{
trigger:{
player:"phaseZhunbeiBegin",
},
forced:true,
filter:function (event,player){
if(!player.storage.xinfu_bijing)return false;
return player.getCards('h').contains(player.storage.xinfu_bijing);
},
content:function (){
player.discard(player.storage.xinfu_bijing);
delete player.storage.xinfu_bijing;
},
sub:true,
},
},
trigger:{
player:"phaseJieshuBegin",
},
direct:true,
filter:function (player,event){
return event.countCards('h')>0;
},
content:function (){
'step 0'
player.chooseCard(get.prompt2('xinfu_bijing'),'h').set('ai',function(card){
if(card.name=='shan') return 6;
return 6-get.value(card);
});
'step 1'
if(result.bool){
player.logSkill('xinfu_bijing');
player.showCards(result.cards);
player.storage.xinfu_bijing=result.cards[0];
}
},
},
"xinfu_zhenxing":{
audio:2,
trigger:{
player:["damageEnd","phaseJieshuBegin"],
},
direct:true,
content:function (){
'step 0'
player.chooseControl('一张','两张','三张','cancel2').set('prompt',get.prompt2('xinfu_zhenxing')).set('',function(){return 0});
'step 1'
if(result.control=='cancel2') event.finish();
else{
player.logSkill('xinfu_zhenxing');
event.num={一张:1,两张:2,三张:3}[result.control];
};
'step 2'
event.cards=get.cards(num);
player.chooseButton(['【镇行】:请选择要获得的牌',event.cards]).set('filterButton',function(button){
for(var i=0;i=0;i--){
if(result.bool&&result.links.contains(event.cards[i])){
player.gain(event.cards[i],'gain2');
}
else{
event.cards[i].fix();
ui.cardPile.insertBefore(event.cards[i],ui.cardPile.childNodes[0]);
}
}
game.updateRoundNumber();
},
},
"xinfu_qianxin":{
audio:2,
group:["xinfu_qianxin2"],
enable:"phaseUse",
usable:1,
onChooseToUse:function(event){
if(!game.online){
var num1=game.players.length-1;
var player=event.player;
var num2=ui.cardPile.childElementCount;
var num3=num2;
if(num1>num2) num3=0;
else if(!player.storage.xinfu_qianxin){}
else{
for(var i=0;i0;
},
filterTarget:function (card,player,target){
return target!=player;
},
filterCard:true,
selectCard:function (){
var num1=game.players.length-1;
var num2=_status.event.qianxinNum;
return [1,Math.floor(num2/num1)];
},
discard:false,
check:function (){
return -1;
},
delay:false,
content:function (){
'step 0'
player.$throw(cards.length);
player.storage.xinfu_qianxin=cards.slice(0);
player.storage.xinfu_qianxin2=target;
var num1=game.players.length;
var num2=ui.cardPile.childElementCount;
for(var i=0;i=4){
event._result={index:1};
}
else{
trigger.player.chooseControl().set('choiceList',[
'令'+get.translation(player)+'将手牌摸至四张',
'令自己本回合的手牌上限-2'
]).set('ai',function(){
var player=_status.event.player;
var source=_status.event.getParent().player;
if(get.attitude(player,source)>0) return 0;
if(player.hp-player.countCards('h')>1) return 1;
return [0,1].randomGet();
})
}
'step 1'
if(result.index==0){
player.drawTo(4);
}
else{
trigger.player.addTempSkill('xinfu_qianxin2_dis');
}
},
},
"xinfu_fuhai":{
subSkill:{
next:{},
previous:{},
},
audio:2,
group:["fuhai_clear"],
intro:{
content:"已指定过#个目标",
},
enable:"phaseUse",
filter:function (event,player){
if(player.hasSkill('xinfu_fuhai_next')&&player.hasSkill('xinfu_fuhai_previous')) return false;
return player.countCards('h')>0;
},
filterTarget:function (card,player,target){
if(![player.next,player.previous].contains(target)||target.countCards('h')==0) return false;
if(player.hasSkill('xinfu_fuhai_next')) return target==player.previous;
if(player.hasSkill('xinfu_fuhai_previous')) return target==player.next;
return true;
},
line:false,
content:function (){
'step 0'
event.side=target==player.next?'next':'previous';
event.current=target;
if(!player.storage.xinfu_fuhai) player.storage.xinfu_fuhai=1;
player.addTempSkill('xinfu_fuhai_'+event.side,'phaseUseAfter');
'step 1'
if(player.countCards('h')==0||event.current.countCards('h')==0||event.current==player){
event.finish();
return;
}
var next=event.current[event.side];
if(get.attitude(event.current,player)>0){
if(get.attitude(next,target)<=0||next.countCards('h')==0||player.countCards('h')==1){
event.stopm=true;
event.stopt=true
}
else{
event.stopm=false;
event.stopt=false;
}
}
else{
if(get.attitude(next,target)>=0){
event.stopt=true;
event.stopm=false;
}
else{
event.stopt=false;
event.stopm=false;
}
}
player.markSkill('xinfu_fuhai');
player.line(event.current,'green');
player.chooseCard('请选择要展示的牌',true).set('ai',function(card){
if(_status.event.stop) return 14-get.number(card);
return get.number(card)
}).set('stop',event.stopm);
'step 2'
event.mes=result.cards[0];
player.showCards(event.mes);
'step 3'
event.current.chooseCard('请选择要展示的牌',true).set('ai',function(card){
if(_status.event.stop) return get.number(card);
return 14-get.number(card);
}).set('stop',event.stopt);
'step 4'
event.tes=result.cards[0];
event.current.showCards(event.tes);
'step 5'
var num1=get.number(event.mes);
var num2=get.number(event.tes);
if(num10&&event.current.countCards('h')>0&&event.current!=player) event.goto(1);
}
},
ai:{
order:1,
result:{
player:function(player,target){
var hs=player.countCards('h');
var side=target==player.next?'next':'previous';
var current=player;
for(var i=0;i0) return 1;
}
return 0;
},
},
},
},
"fuhai_clear":{
trigger:{
player:"phaseAfter",
},
forced:true,
silent:true,
popup:false,
filter:function (event,player){
return player.storage.xinfu_fuhai!=undefined;
},
content:function (){
player.unmarkSkill('xinfu_fuhai');
delete player.storage.xinfu_fuhai;
},
},
"xz_xunxun":{
filter:function (event,player){
var num=game.countPlayer(function(current){
return current.isDamaged();
});
return num>=1&&!player.hasSkill('xunxun');
},
audio:2,
trigger:{
player:"phaseDrawBegin1",
},
//priority:10,
content:function (){
"step 0"
event.cards=get.cards(4);
player.chooseCardButton(true,event.cards,2,'选择两张牌置于牌堆顶').set('ai',ai.get.buttonValue);
"step 1"
if(result.bool){
var choice=[];
for(var i=0;i=1){
str='视为拥有技能“恂恂”';
}
if(num>=2){
str+=';使用装备牌时摸一张牌';
}
if(num>=3){
str+=';始终跳过弃牌阶段';
}
return str;
},
},
trigger:{
player:"useCard",
},
forced:true,
filter:function (event,player){
if(get.type(event.card)!='equip') return false;
var num=game.countPlayer(function(current){
return current.isDamaged();
});
return num>=2;
},
content:function (){
player.draw();
},
},
"xinfu_xingzhao2":{
audio:true,
trigger:{
player:"phaseDiscardBefore",
},
forced:true,
filter:function (event,player){
var num=game.countPlayer(function(current){
return current.isDamaged();
});
return num>=3;
},
content:function (){
trigger.cancel();
game.log(player,'跳过了弃牌阶段');
},
},
"xinfu_dianhu":{
audio:2,
trigger:{
global:"gameDrawAfter",
},
forced:true,
filter:function (){
return game.players.length>1;
},
content:function (){
'step 0'
player.chooseTarget('选择【点虎】的目标',lib.translate.xinfu_dianhu_info,true,function(card,player,target){
return target!=player&&!target.hasSkill('xinfu_dianhu2');
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(att<0) return -att+3;
return Math.random();
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
game.log(target,'成为了','【点虎】','的目标');
target.storage.xinfu_dianhu2=player;
target.addSkill('xinfu_dianhu2');
}
},
},
"xinfu_dianhu2":{
mark:"character",
intro:{
content:"当你受到来自$的伤害或回复体力后,$摸一张牌",
},
nopop:true,
trigger:{
player:["damageAfter","recoverAfter"],
},
forced:true,
popup:false,
filter:function (event,player){
if(player.storage.xinfu_dianhu2&&player.storage.xinfu_dianhu2.isIn()){
if(event.name=='damage') return event.source==player.storage.xinfu_dianhu2;
return true;
};
},
content:function (){
'step 0'
var target=player.storage.xinfu_dianhu2;
target.logSkill('xinfu_dianhu');
target.draw();
},
onremove:true,
},
"xinfu_jianji":{
audio:2,
enable:"phaseUse",
usable:1,
filterTarget:function (card,player,target){
return target!=player;
},
content:function (){
'step 0'
target.draw();
'step 1'
var card=result[0];
if(card&&game.hasPlayer(function(current){
return target.canUse(card,current);
})&&get.owner(card)==target){
target.chooseToUse({
prompt:'是否使用'+get.translation(card)+'?',
filterCard:function(cardx,player,target){
return cardx==_status.event.cardx;
},
cardx:card,
});
}
},
ai:{
order:7.5,
result:{
target:1,
},
},
},
"xinfu_lianpian":{
audio:2,
usable:3,
trigger:{
player:"useCardToPlayered",
},
frequent:true,
filter:function (event,player){
if(!event.targets||!event.targets.length||
event.getParent().triggeredTargets3.length>1||!event.isPhaseUsing(player)) return false;
var evt=player.getLastUsed(1);
if(!evt||!evt.targets||!evt.targets.length||!evt.isPhaseUsing(player)) return false;
for(var i=0;i0;
})){
return num+10;
}
}
},
},
ai:{
effect:{
player:function(card,player,target){
var evt=player.getLastUsed();
if(evt&&evt.targets.contains(target)&&(!player.storage.counttrigger||!player.storage.counttrigger.xinfu_lianpian||!player.storage.counttrigger.xinfu_lianpian<3)&&player.isPhaseUsing(player)) return [1.5,0];
}
},
},
},
"xinfu_lingren":{
usable:1,
audio:2,
trigger:{
player:"useCardToPlayered",
},
direct:true,
filter:function (event,player){
if(event.getParent().triggeredTargets3.length>1) return false;
if(!player.isPhaseUsing()) return false;
if(!['basic','trick'].contains(get.type(event.card))) return false;
if(get.tag(event.card,'damage')) return true;
return false;
},
content:function (){
'step 0'
player.chooseTarget(get.prompt2('xinfu_lingren'),function(card,player,target){
return _status.event.targets.contains(target);
}).set('ai',function(target){
return 2-get.attitude(_status.event.player,target);
}).set('targets',trigger.targets);
'step 1'
if(result.bool){
player.logSkill('xinfu_lingren',result.targets);
var target=result.targets[0];
event.target=target;
event.choice={
basic:false,
trick:false,
equip:false,
}
player.chooseBool('是否押基本牌?').ai=function(event,player){
var rand=0.95;
if(!target.countCards('h',{type:['basic']})) rand=0.05;
if(!target.countCards('h')) rand=0;
return Math.random()0){
target.addTempSkill('lingren_adddamage');
target.storage.lingren={
card:trigger.card,
//player:event.targett,
}
}
if(event.num>1) player.draw(2);
if(event.num>2){
player.addTempSkill('lingren_jianxiong',{player:'phaseBegin'});
player.addTempSkill('lingren_xingshang',{player:'phaseBegin'});
}
},
ai:{
threaten:2.4,
},
},
"lingren_adddamage":{
onremove:function (player){
delete player.storage.lingren;
},
trigger:{
player:"damageBegin3",
},
filter:function (event,player){
var info=player.storage.lingren;
return event.card&&event.card==info.card;
},
silent:true,
popup:false,
forced:true,
content:function (){
trigger.num++;
},
},
"lingren_jianxiong":{
audio:1,
trigger:{
player:"damageEnd",
},
content:function (){
"step 0"
if(get.itemtype(trigger.cards)=='cards'&&get.position(trigger.cards[0],true)=='o'){
player.gain(trigger.cards,"gain2");
}
player.draw("nodelay");
},
ai:{
maixie:true,
"maixie_hp":true,
effect:{
target:function (card,player,target){
if(player.hasSkillTag('jueqing',false,target)) return [1,-1];
if(get.tag(card,'damage')&&player!=target) return [1,0.6];
},
},
},
},
"lingren_xingshang":{
audio:1,
inherit:'rexingshang',
},
"xinfu_fujian":{
audio:2,
trigger:{
player:"phaseJieshuBegin",
},
filter:function (event,player){
return !game.hasPlayer(function(current){
return current.countCards('h')==0;
});
},
forced:true,
content:function (){
event.num=0;
var list=game.filterPlayer(function(target){
if(target.isMinHandcard()) event.num=target.countCards('h');
return player!=target;
});
if(event.num<1){
event.finish();
}
else{
var target=list.randomGet();
var cards=target.getCards('h').randomGets(event.num);
player.line(target);
var content=[get.translation(target)+'的部分手牌',cards];
game.log(player,'观看了',target,'的部分手牌');
player.chooseControl('ok').set('dialog',content);
}
},
},
"xinfu_xionghuo":{
group:["xinfu_xionghuo_damage","xinfu_xionghuo_begin","xinfu_xionghuo_init"],
subSkill:{
begin:{
audio:'xinfu_xionghuo',
logTarget:'player',
line:false,
forced:true,
trigger:{
global:"phaseUseBegin",
},
filter:function (event,player){
return event.player.countMark('xionghuo')>0&&event.player!=player;
},
content:function (){
'step 0'
trigger.player.removeMark('xionghuo',trigger.player.countMark('xionghuo'));
var list=[1,2,3];
var num=list.randomGet();
event.goto(num);
'step 1'
player.line(trigger.player,'fire');
trigger.player.damage('fire');
if(!trigger.player.storage.xionghuo_disable) trigger.player.storage.xionghuo_disable=[];
trigger.player.storage.xionghuo_disable.push(player);
trigger.player.addTempSkill('xionghuo_disable','phaseAfter');
event.goto(4);
'step 2'
player.line(trigger.player,'water');
trigger.player.loseHp();
trigger.player.addMark('xionghuo_low',1,false);
trigger.player.addTempSkill('xionghuo_low','phaseAfter');
event.goto(4);
'step 3'
player.line(trigger.player,'green');
var card1=trigger.player.getCards('h').randomGet();
var card2=trigger.player.getCards('e').randomGet();
var list=[];
if(card1) list.push(card1);
if(card2) list.push(card2);
if(list.length>0){
player.gain(list,trigger.player,'giveAuto','bySelf');
}
'step 4'
game.delay();
},
},
damage:{
audio:"xinfu_xionghuo",
sub:true,
forced:true,
trigger:{
source:"damageBegin1",
},
filter:function (event,player){
return event.player.countMark('xionghuo')>0;
},
content:function (){
trigger.num++;
},
},
init:{
trigger:{
global:"gameDrawAfter",
player:"enterGame",
},
forced:true,
locked:false,
content:function(){
player.addMark("xionghuo",3);
},
},
},
audio:2,
enable:"phaseUse",
filter:function(event,player){
return player.countMark('xionghuo')>0;
},
filterTarget:function (card,player,target){
if(target.hasMark('xionghuo')) return false;
return player!=target>0;
},
content:function (){
player.removeMark('xionghuo',1);
target.addMark('xionghuo',1);
},
ai:{
order:11,
result:{
target:function (player,target){
var mark=player.countMark('xionghuo');
if(mark>2) return -1;
return Math.min(-(1+mark-target.hp),0);
},
},
threaten:1.1,
},
},
xionghuo:{
marktext:"戾",
mark:true,
intro:{
name:'暴戾',
content:"mark",
},
locked:true,
},
"xionghuo_disable":{
mod:{
playerEnabled:function (card,player,target){
if(card.name=='sha'&&(player.storage.xionghuo_disable&&player.storage.xionghuo_disable.contains(target))) return false;
},
},
onremove:true,
charlotte:true,
mark:true,
marktext:"禁",
intro:{
content:"本回合内不能对$使用【杀】",
},
},
"xionghuo_low":{
mod:{
maxHandcard:function (player,num){
return num-player.countMark('xionghuo_low');
},
},
marktext:"减",
mark:true,
onremove:true,
charlotte:true,
intro:{
content:"本回合内手牌上限-#",
},
},
"xinfu_shajue":{
audio:2,
trigger:{
global:"dying",
},
filter:function (event,player){
return event.player.hp<0&&event.player!=player;
},
forced:true,
//priority:7,
content:function (){
if(trigger.parent.name=='damage'&&get.itemtype(trigger.parent.cards)=='cards'&&get.position(trigger.parent.cards[0],true)=='o'){
player.gain(trigger.parent.cards,"gain2");
}
player.addMark('xionghuo',1);
},
},
"xinfu_jianjie":{
derivation:["jianjie_faq"],
group:["xinfu_jianjie1","xinfu_jianjie2"],
audio:3,
trigger:{
player:"phaseZhunbeiBegin",
},
forced:true,
direct:true,
filter:function (event,player){
if(player.phaseNumber>1) return false;
return !game.hasPlayer(function(current){
return current.hasSkill('smh_huoji')||current.hasSkill('smh_lianhuan');
});
},
content:function (){
"step 0"
player.chooseTarget('请将「龙印」交给一名角色',true,function(card,player,target){
return target!=player;
}).set('ai',function(target){
var player=_status.event.player;
return 10+get.attitude(player,target);
});
"step 1"
if(result.bool&&result.targets&&result.targets.length){
var target=result.targets[0];
player.logSkill('xinfu_jianjie',target);
player.line(target,'fire');
target.addSkill('smh_huoji');
game.delay();
}
if(game.hasPlayer(function(current){
return !current.hasSkill('smh_huoji')&¤t!=player
})){
player.chooseTarget('请将「凤印」交给一名角色',true,function(card,player,target){
return target!=player&&!target.hasSkill('smh_huoji');
}).set('ai',function(target){
var player=_status.event.player;
return 10+get.attitude(player,target);
});
}else event.finish();
"step 2"
if(result.bool&&result.targets&&result.targets.length){
var target=result.targets[0];
player.logSkill('xinfu_jianjie',target);
player.line(target,'green');
target.addSkill('smh_lianhuan');
game.delay();
}
},
},
"xinfu_jianjie1":{
audio:3,
prompt:"你的第一个准备阶段,你令两名不同的角色分别获得龙印与凤印;出牌阶段限一次(你的第一个回合除外),或当拥有龙印、凤印的角色死亡时,你可以转移龙印、凤印。",
enable:"phaseUse",
usable:1,
filter:function (event,player){
if(player.phaseNumber==1) return false;
if(!game.hasPlayer(function(current){
return current.hasSkill('smh_huoji')||current.hasSkill('smh_lianhuan');
})) return false;
return true;
},
filterTarget:function (card,player,target){
if(ui.selected.targets.length==1){
return true;
}else{
return target.hasSkill('smh_huoji')||target.hasSkill('smh_lianhuan');
}
},
targetprompt:["移走印","得到印"],
selectTarget:2,
multitarget:true,
content:function (){
'step 0'
if(targets[0].hasSkill('smh_huoji')&&targets[0].hasSkill('smh_lianhuan')){
player.chooseControl('龙印','凤印').set('prompt','请选择要移动的印');
}
else{
if(targets[0].hasSkill('smh_huoji')) event._result={control:'龙印'};
else event._result={control:'凤印'};
}
'step 1'
if(result.control=='龙印'){
targets[0].removeSkill('smh_huoji');
targets[1].addSkill('smh_huoji');
}
else{
targets[0].removeSkill('smh_lianhuan');
targets[1].addSkill('smh_lianhuan');
}
},
ai:{
order:8,
result:{
target:function (player,target){
if(ui.selected.targets.length==0){
return get.attitude(player,target)<0?-999:-3;
}
else{
return target.countCards('h')+1;
}
},
},
expose:0.4,
threaten:3,
},
},
"smh_huoji":{
charlotte:true,
group:["smh_yeyan"],
mark:true,
marktext:"龙",
intro:{
name:"龙印",
content:"出牌阶段限三次,你可以将一张红色牌当【火攻】使用。
若你同时拥有「凤印」,则你视为拥有技能〖业炎〗。(发动〖业炎〗后,弃置龙印和凤印)",
},
usable:3,
audio:2,
enable:"chooseToUse",
position:"he",
filterCard:function (card){
return get.color(card)=='red';
},
viewAs:{
name:"huogong",
nature:"fire",
},
viewAsFilter:function (player){
if(player.hasSkill('huoji')) return false;
if(!game.hasPlayer(function(current){
return current.hasSkill('xinfu_jianjie');
})) return false;
if(!player.countCards('he',{color:'red'})) return false;
},
prompt:"将一张红色牌当火攻使用",
check:function (card){
var player=_status.currentPhase;
if(player.countCards('h')>player.hp){
return 6-get.value(card);
}
return 4-get.value(card)
},
},
"smh_lianhuan":{
audio:2,
charlotte:true,
enable:"phaseUse",
filter:function (event,player){
if(player.hasSkill('lianhuan')||player.hasSkill('xinlianhuan')) return false;
if(!game.hasPlayer(function(current){
return current.hasSkill('xinfu_jianjie');
})) return false;
if((player.getStat().skill.smh_lianhuan||0)+(player.getStat().skill.smh_lianhuan1||0)>=3) return false;
return player.countCards('h',{suit:'club'})>0;
},
filterCard:function (card){
return get.suit(card)=='club';
},
viewAs:{
name:"tiesuo",
},
prompt:"将一张梅花牌当铁锁连环使用",
check:function (card){return 6-get.value(card)},
mark:true,
marktext:"凤",
intro:{
name:"凤印",
content:"出牌阶段限三次,你可以将你的任意一张梅花手牌当作【铁索连环】使用或重铸。",
},
group:["smh_lianhuan1"],
},
"xinfu_jianjie2":{
trigger:{
global:"dieAfter",
},
forced:true,
direct:true,
silent:true,
popup:false,
filter:function (event,player){
return event.player.hasSkill('smh_huoji')||event.player.hasSkill('smh_lianhuan');
},
content:function (){
"step 0"
player.logSkill('xinfu_jianjie');
"step 1"
if(trigger.player.hasSkill('smh_huoji')){
player.chooseTarget('请将'+get.translation(trigger.player)+'的「龙印」交给一名角色',true).set('ai',function(target){
var player=_status.event.player;
return 10+get.attitude(player,target);
});
}else event.goto(2);
"step 2"
if(result.bool&&result.targets&&result.targets.length){
var target=result.targets[0];
player.line(target,'fire');
target.addSkill('smh_huoji');
game.delay();
}
"step 3"
if(trigger.player.hasSkill('smh_lianhuan')){
player.chooseTarget('请将'+get.translation(trigger.player)+'的「凤印」交给一名角色',true).set('ai',function(target){
var player=_status.event.player;
return 10+get.attitude(player,target);
});
}else event.finish();
"step 4"
if(result.bool&&result.targets&&result.targets.length){
var target=result.targets[0];
player.line(target,'green');
target.addSkill('smh_lianhuan');
game.delay();
}
},
},
"smh_lianhuan1":{
enable:"phaseUse",
filter:function (event,player){
if(player.hasSkill('lianhuan')||player.hasSkill('xinlianhuan')) return false;
if(!game.hasPlayer(function(current){
return current.hasSkill('xinfu_jianjie');
})) return false;
if((player.getStat().skill.smh_lianhuan||0)+(player.getStat().skill.smh_lianhuan1||0)>=3) return false;
return player.countCards('h',{suit:'club'})>0;
},
filterCard:function (card){
return get.suit(card)=='club';
},
check:function (card){
return -1;
},
content:function (){
player.draw();
},
discard:false,
prompt:"将一张梅花牌置入弃牌堆并摸一张牌",
delay:0.5,
prepare:function (cards,player){
player.$throw(cards,1000);
},
ai:{
basic:{
order:1,
},
result:{
player:1,
},
},
forced:true,
},
"smh_yeyan":{
unique:true,
enable:"phaseUse",
audio:3,
skillAnimation:true,
animationColor:'gray',
prompt:"限定技,出牌阶段,你可以对一至三名角色造成至多共3点火焰伤害(你可以任意分配每名目标角色受到的伤害点数),若你将对一名角色分配2点或更多的火焰伤害,你须先弃置四张不同花色的手牌再失去3点体力。",
filter:function (event,player){
if(!game.hasPlayer(function(current){
return current.hasSkill('xinfu_jianjie');
})) return false;
return player.hasSkill('smh_lianhuan');
},
filterTarget:function (card,player,target){
var length=ui.selected.cards.length;
return (length==0||length==4);
},
filterCard:function (card){
var suit=get.suit(card);
for(var i=0;i1){
player.chooseCardButton('【称好】:请选择要分配的牌',true,event.cards,[1,event.cards.length]).set('ai',function(button){
if(ui.selected.buttons.length==0) return 1;
return 0;
});
}
else if(event.cards.length==1){
event._result={links:event.cards.slice(0),bool:true};
}
else{
event.finish();
}
"step 2"
if(result.bool){
for(var i=0;i0){
return att/(1+target.countCards('h'));
}
else{
return att/100;
}
}).set('enemy',get.value(event.togive[0],player,'raw')<0);
}
"step 3"
if(result.targets.length){
result.targets[0].gain(event.togive,'draw');
player.line(result.targets[0],'green');
game.log(result.targets[0],'获得了'+get.cnNumber(event.togive.length)+'张牌');
event.goto(1);
}
},
},
"jianjie_faq":{},
"xinfu_wuniang":{
trigger:{
player:["useCard","respond"],
},
audio:2,
direct:true,
filter:function (event,player){
return event.card.name=='sha';
},
content:function (){
'step 0'
player.chooseTarget(get.prompt('xinfu_wuniang'),'获得一名其他角色的一张牌,然后其和场上所有的“关索”摸一张牌。',function(card,player,target){
if(player==target) return false;
return target.countGainableCards(player,'he')>0;
}).set('ai',function(target){
return 10-get.attitude(_status.event.player,target);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('xinfu_wuniang',target);
player.line(target,'fire');
event.draws=game.filterPlayer(function(current){
if(current==target) return true;
return ['guansuo','old_guansuo'].contains(current.name)||['guansuo','old_guansuo'].contains(current.name2);
});
player.gainPlayerCard(target,'he',true);
}
else event.finish();
'step 2'
game.asyncDraw(event.draws,1);
game.delay();
},
},
"xinfu_xushen":{
derivation:["xinfu_zhennan"],
audio:2,
subSkill:{
count:{
trigger:{
player:"recoverBegin",
},
forced:true,
silent:true,
popup:false,
filter:function (event,player){
if(!event.card||event.card.name!='tao') return false;
if(!event.source||event.source.sex!='male') return false;
if(!player.isDying()) return false;
if(game.hasPlayer(function(current){
return current.name=='guansuo'||current.name2=='guansuo';
})) return false;
return true;
},
content:function (){
trigger.xinfu_xushen=true;
},
sub:true,
},
},
group:["xinfu_xushen_count"],
trigger:{
player:"recoverAfter",
},
limited:true,
init:function (player){
player.storage.xinfu_xushen=false;
},
filter:function (event,player){
if(player.storage.xinfu_xushen) return false;
if(player.isDying()) return false;
return event.xinfu_xushen==true;
},
direct:true,
skillAnimation:true,
animationColor:'fire',
content:function (){
"step 0"
trigger.source.chooseBool('【许身】:是否将自己的一张武将牌替换为“关索”?').set('ai',function(){
return false;
});
"step 1"
if(result.bool){
player.awakenSkill('xinfu_xushen');
player.logSkill('xinfu_xushen',trigger.source);
if(trigger.source.name2!=undefined){
trigger.source.chooseControl(trigger.source.name,trigger.source.name2).set('prompt','请选择要更换的武将牌');
}else event._result={control:trigger.source.name};
}
else event.finish();
"step 2"
trigger.source.reinit(result.control,'guansuo');
if(_status.characterlist){
_status.characterlist.add(result.control);
_status.characterlist.remove('guansuo');
}
player.recover();
player.addSkill('xinfu_zhennan');
},
mark:true,
intro:{
content:"limited",
},
},
"xinfu_falu":{
subSkill:{
spade:{
marktext:'♠︎️',
intro:{
name:'紫薇',
content:'mark',
},
},
heart:{
marktext:'♥︎️',
intro:{
name:'玉清',
content:'mark',
},
},
club:{
marktext:'♣︎️',
intro:{
name:'后土',
content:'mark',
},
},
diamond:{
marktext:'♦︎',
intro:{
name:'勾陈',
content:'mark',
},
},
},
forced:true,
audio:2,
trigger:{
player:["loseAfter","enterGame"],
global:"gameDrawAfter",
},
filter:function (event,player){
if(event.name!='lose') return true;
if(event.type!='discard') return false;
for(var i=0;i0){
if(results>0){
if(resulth>results) return '红桃5';
return '黑桃5';
}
else if(resulth>0) return '红桃5';
return '取消';
}
else{
if(results<0){
if(resulth=0) return false;
if(event.player.hasSkillTag('filterDamage',null,{
player:player,
card:event.card,
})) return false;
return player.hasMark('xinfu_falu_spade')||get.color(ui.cardPile.firstChild)=='black';
},
prompt2:function(event){
return '弃置「玉清♥」标记,然后进行判定。若结果为黑色,则对'+get.translation(event.player)+'即将造成的伤害+1。';
},
logTarget:"player",
content:function (){
"step 0"
player.removeMark('xinfu_falu_heart')
player.judge(function(card){
if(get.color(card)=='black') return 4;
return -1;
});
"step 1"
if(result.bool==true){
trigger.num++;
}
},
},
"xinfu_zhennan":{
audio:2,
trigger:{
target:"useCardToTargeted",
},
filter:function (event,player){
return event.card.name=='nanman';
},
direct:true,
content:function (){
"step 0"
player.chooseTarget(get.prompt('xinfu_zhennan'),'对一名其他角色造成1-3点随机伤害',function(card,player,target){
return target!=player;
}).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
"step 1"
if(result.bool&&result.targets&&result.targets.length){
game.delay();
player.logSkill('xinfu_zhennan',result.targets);
var num=[1,2,3,1,1,2].randomGet();
if(get.isLuckyStar(player)) num=3;
player.line(result.targets[0],'fire');
result.targets[0].damage(num);
}
},
ai:{
expose:0.25,
},
},
"xinfu_yanyu":{
trigger:{
global:"phaseUseBegin",
},
direct:true,
filter:function (event,player){
return player.countCards('he')>0;
},
content:function (){
'step 0'
player.chooseToDiscard(get.prompt('xinfu_yanyu'),get.translation('xinfu_yanyu_info'),'he').set('ai',function(card){
var map=_status.event.goon;
var type=get.type(card,'trick');
if(!map[type]) return -1;
return map[type]-get.value(card);
}).set('logSkill','xinfu_yanyu').set('goon',function(){
var map={
basic:0,
trick:0.1,
};
var hs=trigger.player.getCards('h');
var sha=false;
var jiu=false;
for(var i=0;i=3) return false;
//var evt=event.getParent();
//if(evt&&(evt.name=='useCard'||evt.name=='respond')) return false;
var type=player.storage.xinfu_yanyu;
var cards=event.cards;
for(var i=0;i=3) event.finish();
else player.chooseCardButton(event.cards,'【燕语】:是否将其中的一张牌交给一名角色?').ai=function(card){
if(card.name=='du') return 10;
return get.value(card);
};
'step 2'
if(result.bool){
player.storage.xinfu_yanyu2++;
if(!event.logged){
player.logSkill('xinfu_yanyu');
player.addExpose(0.25);
event.logged=true;
}
event.togain=result.links[0];
event.cards.remove(event.togain);
player.chooseTarget(true,'请选择要获得'+get.translation(event.togain)+'的角色').set('ai',function(target){
var att=get.attitude(_status.event.player,target);
var card=_status.event.card;
var val=get.value(card);
if(target==_status.currentPhase&&target.hasValueTarget(card)) att=att*2;
return att*val;
}).set('card',event.togain);
}
else event.finish();
'step 3'
var target=result.targets[0];
player.line(target,'green');
target.gain(event.togain,'gain2');
if(event.cards.length) event.goto(1);
},
},
"xinfu_xiaode":{
subSkill:{
remove:{
unique:true,
charlotte:true,
trigger:{
player:"phaseAfter",
},
forced:true,
popup:false,
content:function (){
player.removeAdditionalSkill('xinfu_xiaode');
player.removeSkill('xinfu_xiaode_remove');
},
},
},
trigger:{
global:"dieAfter",
},
direct:true,
filter:function (skill,event){
return !event.hasSkill('xinfu_xiaode_remove');
},
content:function (){
'step 0'
var list=[];
var listm=[];
var listv=[];
if(trigger.player.name1!=undefined) listm=lib.character[trigger.player.name1][3];
else listm=lib.character[trigger.player.name][3];
if(trigger.player.name2!=undefined) listv=lib.character[trigger.player.name2][3];
listm=listm.concat(listv);
var func=function(skill){
var info=get.info(skill);
if(info.charlotte||info.zhuSkill||(info.unique&&!info.limited)) return false;
return true;
};
for(var i=0;i若点数相同,你对其造成2点伤害;
若点数不同,则你随机获得其区域内的一张牌。",
"xinfu_tunjun":"屯军",
"xinfu_tunjun_info":"限定技,出牌阶段,你可以选择一名角色,令其随机使用牌堆中的X张装备牌。(X为你发动过“掠命”的次数)",
"xinfu_tanbei":"贪狈",
"xinfu_tanbei_info":"出牌阶段限一次,你可以令一名其他角色选择一项:
1.令你随机获得其区域内的一张牌,本回合内你不能对其使用牌。
2.令你此回合内对其使用牌没有次数与距离限制。",
"xinfu_sidao":"伺盗",
xinfu_sidaox:'伺盗',
"xinfu_sidao_info":"出牌阶段限一次,当你对一名其他角色连续使用两张牌后,你可以将一张手牌当做【顺手牵羊】对其使用。",
"tanbei_effect1":"贪狈",
"tanbei_effect1_info":"",
"tanbei_effect2":"贪狈",
"tanbei_effect2_info":"",
"xinfu_tunan":"图南",
"xinfu_tunan_info":"出牌阶段限一次,你可以展示牌堆顶的一张牌并选择一名其他角色,然后该角色选择一项:使用此牌(无距离限制);或将此牌当普通【杀】使用。",
"xinfu_bijing":"闭境",
"xinfu_bijing_info":"结束阶段,你可以展示一张手牌并标记为“闭境”。若你于回合外失去“闭境”牌,则当前回合角色的弃牌阶段开始时,其需弃置两张牌。你的准备阶段,弃置手牌中的“闭境”牌。",
"xinfu_zhenxing":"镇行",
"xinfu_zhenxing_info":"结束阶段开始时或当你受到伤害后,你可以观看牌堆顶的至多三张牌,然后你获得其中与其余牌花色均不相同的一张牌。",
"xinfu_qianxin":"遣信",
"xinfu_qianxin_info":"出牌阶段限一次,若牌堆中没有“信”,你可以选择一名角色并将任意张手牌放置于牌堆中X倍数的位置(X为存活人数),称为“信”。该角色的弃牌阶段开始时,若其手牌区内有于本回合内获得过的“信”,其选择一项:令你将手牌摸至四张;本回合手牌上限-2。",
"qianxin_effect":"遣信",
"qianxin_effect_info":"",
"xinfu_qianxin2":"遣信",
"xinfu_qianxin2_info":"",
"xinfu_fuhai":"浮海",
"xinfu_fuhai_info":"出牌阶段每个方向限一次,你可以展示一张手牌并选择上家或下家。该角色展示一张手牌,若你展示的牌点数大于等于其展示的牌点数,你弃置你展示的牌,然后继续对其上家或下家重复此流程;若你展示的牌点数小于该展示角色牌的点数,则该角色弃置其展示的牌,然后你与其各摸X张牌(X为你此回合内发动此技能选择的角色数),且你此阶段内不能再发动〖浮海〗。",
"fuhai_clear":"浮海",
"fuhai_clear_info":"",
"xz_xunxun":"恂恂",
"xz_xunxun_info":"摸牌阶段,你可以观看牌堆顶的四张牌,然后将其中的两张牌置于牌堆顶,并将其余的牌以任意顺序置于牌堆底。",
"xinfu_xingzhao":"兴棹",
"xinfu_xingzhao_info":"锁定技,若场上的已受伤角色合计为:1个以上,你视为拥有技能〖恂恂〗;2个以上,当你使用装备牌时,摸一张牌;3个以上,弃牌阶段开始时,你跳过此阶段。",
"xinfu_xingzhao2":"兴棹",
"xinfu_xingzhao2_info":"",
"xinfu_dianhu":"点虎",
"xinfu_dianhu_info":"锁定技,游戏开始时,你选择一名其他角色。当其受到来自你的伤害后或回复体力后,你摸一张牌。",
"xinfu_dianhu2":"点虎",
"xinfu_dianhu2_info":"",
"xinfu_jianji":"谏计",
"xinfu_jianji_info":"出牌阶段限一次,你可以令一名其他角色摸一张牌。然后该角色可以使用此牌。",
"xinfu_lianpian":"联翩",
"xinfu_lianpian_info":"出牌阶段限三次。当你对一名角色连续使用牌时,你可以摸一张牌,然后可以将一张牌交给该角色。",
"xinfu_lingren":"凌人",
"xinfu_lingren_info":"每回合限一次。当你于出牌阶段使用带有「伤害」这一标签的基本牌或普通锦囊牌指定目标后,你可以猜测其中的一个目标的手牌中是否有基本牌,锦囊牌或装备牌。若你猜中的项目数:≥1,此牌对该角色的伤害+1;≥2,你摸两张牌;≥3,你获得技能〖奸雄〗和〖行殇〗直到下回合开始。",
"lingren_adddamage":"凌人",
"lingren_adddamage_info":"",
"lingren_jianxiong":"奸雄",
"lingren_jianxiong_info":"当你受到伤害后,你可以获得对你造成伤害的牌并摸一张牌。",
"lingren_xingshang":"行殇",
"lingren_xingshang_info":"当有角色死亡后,你可以选择一项:1.回复一点体力。2.获得该角色的所有牌。",
"xinfu_fujian":"伏间",
"xinfu_fujian_info":"锁定技,结束阶段开始时,你观看一名随机的其他角色的随机X张手牌。(X为场上手牌最少的角色的手牌数)",
"xinfu_xionghuo":"凶镬",
"xinfu_xionghuo_info":"游戏开始时,你获得3个“暴戾”标记。出牌阶段,你可以交给一名其他角色一个“暴戾”标记,你对有“暴戾”标记的角色造成伤害时,此伤害+1。有“暴戾”的其他角色的出牌阶段开始时,其移去所有“暴戾”标记并随机执行一项:1.受到1点火焰伤害且本回合不能对你使用【杀】;2.失去1点体力且本回合手牌上限-1;3.你随机获得其一张手牌和一张装备区的牌。",
xionghuo:"凶镬",
"xionghuo_info":"",
"xionghuo_disable":"凶镬",
"xionghuo_disable_info":"",
"xionghuo_low":"凶镬",
"xionghuo_low_info":"",
"xinfu_shajue":"杀绝",
"xinfu_shajue_info":"锁定技,其他角色进入濒死状态时,若其体力值小于0,则你获得一个“暴戾”标记,并获得使其进入濒死状态的牌。",
"xinfu_jianjie":"荐杰",
"xinfu_jianjie_info":"你的第一个准备阶段,你令两名其他角色分别获得龙印与凤印;出牌阶段限一次(你的第一个回合除外),或当拥有龙印、凤印的角色死亡时,你可以转移龙印、凤印。",
"xinfu_jianjie1":"荐杰",
"xinfu_jianjie1_info":"",
"smh_huoji":"火计",
"smh_huoji_info":"",
"smh_lianhuan":"连环",
"smh_lianhuan_info":"",
"xinfu_jianjie2":"荐杰",
"xinfu_jianjie2_info":"",
"smh_lianhuan1":"连铸",
"smh_lianhuan1_info":"",
"smh_yeyan":"业炎",
"smh_yeyan_info":"",
"xinfu_yinshi":"隐士",
"xinfu_yinshi_info":"锁定技,若你没有龙印、凤印且防具栏为空,则当你受到属性伤害或锦囊牌造成的伤害时,防止此伤害。",
"xinfu_chenghao":"称好",
"xinfu_chenghao_info":"当一名角色受到属性伤害后,若其存活且其武将牌横置且是伤害传导的起点,则你可以观看牌堆顶的X张牌并分配给任意角色。(X为横置的角色数量且包含该角色)",
"jianjie_faq":"关于龙凤印",
"jianjie_faq_info":"龙印效果:视为拥有〖火计〗。凤印效果:视为拥有〖连环〗。(均一回合限使用三次) 龙凤印齐全:视为拥有〖业炎〗,〖业炎〗发动后移除龙凤印。",
"xinfu_wuniang":"武娘",
"xinfu_wuniang_info":"当你使用或打出【杀】时,你可以获得一名其他角色的一张牌。若如此做,该角色和场上所有的“关索”各摸一张牌。",
"xinfu_xushen":"许身",
"xinfu_xushen_info":"限定技,当一名男性角色使用【桃】令你脱离濒死状态时,若场上没有“关索”,则其可以将自己的一张武将牌变更为“关索”。然后你回复一点体力,并获得技能〖镇南〗。",
"xinfu_zhennan":"镇南",
"xinfu_zhennan_info":"当你成为【南蛮入侵】的目标时,你可以对一名其他角色造成1-3点随机伤害。",
"xinfu_falu":"法箓",
"xinfu_falu_info":"锁定技,游戏开始时,你获得「紫薇」「后土」「玉清」「勾陈」标记各一个。当你的牌因弃置而进入弃牌堆后,根据这些牌的花色,你获得对应的标记:黑桃,你获得1枚「紫薇」;梅花,你获得1枚「后土」;红桃,你获得1枚「玉清」;方块,你获得1枚「勾陈」。(每种标记限拥有1个)",
"xinfu_dianhua":"点化",
"xinfu_dianhua_info":"准备阶段或结束阶段,你可以观看牌堆顶的X张牌(X为你的「紫薇」「后土」「玉清」「勾陈」标记数的总和)。若如此做,你将这些牌以任意顺序放回牌堆顶。",
"xinfu_zhenyi":"真仪",
"xinfu_zhenyi_info":"你可以在以下时机弃置相应的标记来发动以下效果:一名角色的判定牌生效前,你可以弃置一枚「紫薇」,然后将判定结果改为黑桃5或红桃5;当你处于濒死状态时,你可以弃置一枚「后土」,然后将你的一张手牌当【桃】使用;当你造成伤害时,你可以弃置一枚「玉清」,然后你进行一次判定。若结果为黑色,此伤害+1;当你受到属性伤害后,你可以弃置一张「勾陈」,然后你从牌堆中随机获得三种类型的牌各一张。",
"zhenyi_spade":"真仪",
"zhenyi_spade_info":"",
"zhenyi_club":"真仪",
"zhenyi_club_info":"",
"zhenyi_heart":"真仪",
"zhenyi_heart_info":"",
"xinfu_yanyu":"燕语",
"xinfu_yanyu_info":"一名角色的出牌阶段开始时,你可以弃置一张牌。若如此做,则该出牌阶段内,当有与你弃置的牌类别相同的其他牌进入弃牌堆时,你可令任意一名角色获得此牌。每阶段以此法获得的牌不能超过三张。",
"xinfu_yanyu2":"燕语",
"xinfu_yanyu2_info":"",
"xinfu_xiaode":"孝德",
"xinfu_xiaode_info":"其他角色死亡后,你可以声明该角色武将牌上的一个不为主公技或觉醒技的技能。若如此做,你获得此技能且不能再发动〖孝德〗直到你的回合结束。",
zhangren:'张任',
zoushi:'邹氏',
zangba:'臧霸',
jiling:'纪灵',
gz_sp_dongzhuo:'董卓',
gz_zhangjiao:'张角',
litong:'李通',
mizhu:'糜竺',
buzhi:'步骘',
chenlin:'陈琳',
yuanshu:'SP袁术',
gongsunzan:'公孙瓒',
sp_diaochan:'SP貂蝉',
yangxiu:'杨修',
sp_zhaoyun:'SP赵云',
jsp_zhaoyun:'☆SP赵云',
caohong:'曹洪',
liuxie:'刘协',
xiahouba:'夏侯霸',
zhugejin:'诸葛瑾',
zhugeke:'诸葛恪',
guanyinping:'关银屏',
ganfuren:'甘夫人',
sunhao:'孙皓',
chengyu:'程昱',
simalang:'司马朗',
tianfeng:'田丰',
sp_pangtong:'SP庞统',
sp_jiaxu:'SP贾诩',
maliang:'马良',
sp_caoren:'SP曹仁',
yuejin:'乐进',
mifuren:'糜夫人',
sp_dongzhuo:'SP董卓',
chendong:'陈武董袭',
jiangfei:'蒋琬费祎',
jiangqing:'蒋钦',
hetaihou:'何太后',
dingfeng:'丁奉',
zhangxingcai:'张星彩',
caoang:'曹昂',
kongrong:'孔融',
fuwan:'伏完',
sp_pangde:'SP庞德',
sp_sunshangxiang:'SP孙尚香',
zhugedan:'诸葛诞',
sp_machao:'SP马超',
sp_jiangwei:'SP姜维',
zhangbao:'张宝',
yangxiou:'杨修',
shixie:'士燮',
mayunlu:'马云騄',
zhanglu:'张鲁',
wutugu:'兀突骨',
mateng:'马腾',
sp_caiwenji:'SP蔡文姬',
zhugeguo:'诸葛果',
liuzan:'留赞',
lingcao:'凌操',
sunru:'孙茹',
lingju:'灵雎',
lifeng:'李丰',
jsp_guanyu:'SP关羽',
zhuling:'朱灵',
sunluyu:'孙鲁育',
hanba:'旱魃',
panfeng:'旧潘凤',
gz_panfeng:'潘凤',
zumao:'祖茂',
daxiaoqiao:'大小乔',
sp_daqiao:'☆SP大乔',
sp_ganning:'☆SP甘宁',
sp_zhangfei:'☆SP张飞',
sp_xiahoudun:'☆SP夏侯惇',
cuiyan:'崔琰',
wenpin:'文聘',
jsp_huangyueying:'SP黄月英',
sp_lvmeng:'☆SP吕蒙',
guansuo:'关索',
tadun:'蹋顿',
yanbaihu:'严白虎',
wanglang:'王朗',
sp_liubei:'☆SP刘备',
caochun:'曹纯',
dongbai:'董白',
zhaoxiang:'赵襄',
heqi:'贺齐',
kanze:'阚泽',
dongyun:'董允',
mazhong:'马忠',
huangfusong:'皇甫嵩',
miheng:'祢衡',
taoqian:'陶谦',
wangyun:'王允',
sunqian:'孙乾',
xizhicai:'戏志才',
quyi:'麴义',
liuye:'刘晔',
beimihu:'卑弥呼',
luzhi:'鲁芝',
sp_liuqi:'刘琦',
huangjinleishi:'黄巾雷使',
bianfuren:'卞夫人',
shamoke:'沙摩柯',
lvfan:'吕范',
liqueguosi:'李傕郭汜',
cuimao:'崔琰毛玠',
kaisa:"凯撒",
lijue:"李傕",
zhangji:"张济",
fanchou:"樊稠",
guosi:"郭汜",
lvkai:"吕凯",
zhanggong:"张恭",
weiwenzhugezhi:"卫温诸葛直",
caoying:"曹婴",
simahui:"司马徽",
baosanniang:"鲍三娘",
xurong:"徐荣",
sp_xiahoushi:"SP夏侯氏",
zhangqiying:"张琪瑛",
xf_tangzi:"唐咨",
xf_huangquan:"黄权",
xf_sufei:"苏飞",
pangdegong:"庞德公",
zhaotongzhaoguang:"赵统赵广",
majun:"马钧",
simazhao:"司马昭",
wangyuanji:"王元姬",
mangyachang:"忙牙长",
xugong:"许贡",
zhangchangpu:"张昌蒲",
jianggan:"蒋干",
wenyang:'文鸯',
diy_wenyang:'文鸯',
guanlu:'管辂',
gexuan:'葛玄',
hejin:'何进',
hansui:'韩遂',
niujin:'牛金',
xinpi:'辛毗',
lisu:'李肃',
zhangwen:'张温',
puyuan:'蒲元',
xushao:'许邵',
xujing:'许靖',
huaman:'花鬘',
yuantanyuanshang:'袁谭袁尚',
xinfenyue:'奋钺',
xinfenyue_info:'出牌阶段限X次(X为与你不同阵营的存活角色数),你可以与一名其他角色拼点,若你赢,根据你拼点牌的点数依次执行以下效果:不大于5,你获得其一张牌;不大于9,你获得牌堆里的一张【杀】; 不大于K,视为你对其使用一张雷【杀】。',
neifa:'内伐',
neifa_info:'出牌阶段开始时,你可以摸两张牌或获得场上的一张牌,然后弃置一张牌。若弃置的牌是基本牌,本回合你不能使用锦囊和装备牌,且【杀】的使用次数+X且目标+1;若弃置的不是基本牌,本回合你不能使用基本牌,且使用普通锦囊牌选择目标时可以增加或减少一个目标,前两次使用装备牌时摸X张牌(X为你发动〖内伐〗弃牌后手牌中因〖内伐〗而不能使用的牌的数量且最多为5)。',
neifa_use:'内伐',
hmmanyi:'蛮裔',
hmmanyi_info:'锁定技,【南蛮入侵】对你无效。',
mansi:'蛮嗣',
mansi_info:'一名角色使用的【南蛮入侵】结算完成后,你可以摸X张牌(X为受到过此牌伤害的角色数)。',
souying:'薮影',
souying_info:'每回合限一次,当你对一名男性角色造成伤害(或一名男性角色对你造成伤害时),若此伤害是你对其(或其对你)本回合内造成的第二次伤害,你可以弃置一张手牌令此伤害+1或(-1)。',
zhanyuan:'战缘',
zhanyuan_info:'觉醒技,准备阶段,若你已因蛮嗣累计获得超过7张牌,你加一点体力上限,并可以选择一名男性角色,你与其获得技能〖系力〗,然后你失去技能〖蛮嗣〗',
hmxili:'系力',
hmxili_info:'你的回合外,当其他拥有〖系力〗技能的角色在其回合内使用【杀】指定目标后,你可以弃置一张手牌,令此【杀】伤害+1。',
yuxu:'誉虚',
yuxu_info:'当你于出牌阶段内使用的牌结算完成时,你可以摸一张牌。若如此做,当你于出牌阶段内使用的下一张牌结算完成时,你不能发动〖誉虚〗,且需弃置一张牌。',
yuxu2:'誉虚(弃牌)',
xjshijian:'实荐',
xjshijian_info:'一名其他角色于其回合内使用的第二张牌结算完成后,你可弃置一张牌并令其获得技能〖誉虚〗直到回合结束。',
pingjian:'评荐',
pingjian_info:'结束阶段开始时/当你受到伤害后/出牌阶段限一次,你可以令系统随机从剩余武将牌堆中检索出三张拥有发动时机为结束阶段开始时/当你受到伤害后/出牌阶段的技能的武将牌。然后你可以选择尝试发动其中一个技能或摸一张牌。每个技能每局只能选择一次。',
pingjian_use:'评荐',
pytianjiang:'天匠',
pytianjiang_info:'游戏开始时,你随机获得两张不同副类别的装备牌,并置入你的装备区。出牌阶段,你可以将装备区内的牌移动到其他角色的装备区(可替换原装备)。',
pytianjiang_move:'天匠',
pyzhuren:'铸刃',
pyzhuren_info:'出牌阶段限一次,你可以弃置一张手牌。根据此牌的花色点数,你有一定概率打造成功并获得一张武器牌(若打造失败或武器已有则改为摸一张【杀】,花色决定武器名称,点数决定成功率)。此武器牌进入弃牌堆时,将其移出游戏。',
pyzhuren_destroy:'铸刃',
pyzhuren_heart:'红缎枪',
pyzhuren_heart_info:'每回合限一次,当你使用【杀】造成伤害后,你可以进行判定,若结果为红色,你回复1点体力。',
pyzhuren_diamond:'烈淬刀',
pyzhuren_diamond_info:'当你使用【杀】对目标角色造成伤害时,你可以弃置一张【杀】或武器牌,令此伤害+1。',
pyzhuren_club:'水波剑',
pyzhuren_club_info:'当你于出牌阶段使用第一张牌时,若此牌是普通锦囊牌或【杀】,则你可以为此牌增加一个目标。',
pyzhuren_spade:'混毒弯匕',
pyzhuren_spade_info:'当你使用的黑色【杀】指定单一目标后,你可令该角色获得此【杀】,然后其失去1点体力。',
pyzhuren_shandian:'天雷刃',
pyzhuren_shandian_info:'当你使用【杀】仅指定一名角色为目标后,可令其进行一次判定,若结果为黑桃2~黑桃9,该角色受到3点雷电伤害,然后此【杀】对其无效。',
songshu:'颂蜀',
songshu_info:'出牌阶段,你可以和其他角色拼点。若你没赢,其摸两张牌,且你本阶段内不能再发动〖颂蜀〗',
sibian:'思辩',
sibian_info:'摸牌阶段,你可以放弃摸牌,改为亮出牌堆顶的四张牌,然后获得其中所有点数最大与点数最小的牌。若获得的牌是两张且点数之差小于存活人数,则你可以将剩余的牌交给手牌数最少的角色。',
lslixun:'利熏',
lslixun_fate:'利熏',
lslixun_info:'锁定技,当你受到伤害时,你防止此伤害,然后获得等同于伤害值的“珠”标记。出牌阶段开始时,你进行判定,若结果点数小于“珠”的数量,你弃置等同于“珠”数量的手牌(若弃牌的牌数不够,则失去剩余数量的体力值)。',
lskuizhu:'馈珠',
lskuizhu_info:'出牌阶段结束时,你可以选择体力值为全场最多的一名其他角色,将手牌摸至与该角色相同(最多摸至五张),然后该角色观看你的手牌,弃置任意张手牌并从观看的牌中获得等量的牌。若其获得的牌大于一张,则你选择一项:移去一个“珠”;或令其对其攻击范围内的一名角色造成1点伤害。',
xpchijie:'持节',
xpchijie_info:'每回合限一次。①当你受到其他角色使用的牌造成的伤害时,你可以令此牌对所有目标无效。②其他角色使用的牌结算完成时,若你是此牌的目标之一且此牌未造成过伤害,则你可以获得此牌对应的所有实体牌。',
xpchijie2:'持节',
yinju:'引裾',
yinju_info:'限定技,出牌阶段,你可以选择一名其他角色。若如此做,当你于此阶段内使用装备牌指定目标或使用延时锦囊牌指定除其外的其他角色为目标或使用其他牌指定其为目标时,你摸一张牌;当你即将对其造成伤害时,防止此伤害,然后其回复等量的体力。',
yinju2:'引裾',
mouzhu:'谋诛',
mouzhu_info:'出牌阶段限一次,你可以令一名有牌的其他角色交给你一张牌。然后若你的手牌数大于其,其选择视为对你使用一张【杀】或【决斗】。',
yanhuo:'延祸',
yanhuo_info:'当你死亡时,你可以依次弃置一名其他角色的X张牌。(X为你的牌数)',
niluan:'逆乱',
niluan_info:'其他角色的结束阶段开始时,若其本回合内使用过【杀】或其体力值大于你,则你可以将一张黑色牌当做【杀】使用。',
cuorui:'挫锐',
cuorui_info:'锁定技,游戏开始时,你摸X张牌(X为你的体力上限)。锁定技,限定技,判定阶段开始前,若你的判定区有牌,你跳过此阶段。',
cuorui_info_single:'锁定技,你的起始手牌数改为X+2(X为你剩余的备选武将数)。你跳过登场后的第一个判定阶段。',
liewei:'裂围',
liewei_info:'当你杀死一名角色后,你可以摸三张牌。',
tuiyan:'推演',
tuiyan_info:'出牌阶段开始时,你可以观看牌堆顶的两张牌。',
busuan:'卜算',
busuan_info:'出牌阶段限一次,你可以选择一名其他角色,然后选择至多两张不同的卡牌名称(限基本牌或锦囊牌)。该角色下次摸牌阶段摸牌时,改为从牌堆或弃牌堆中获得你选择的牌。',
busuan_angelbeats:'卜算',
mingjie:'命戒',
mingjie_info:'结束阶段,你可以摸一张牌,若此牌为红色,你可以重复此流程直到摸到黑色牌或摸到第三张牌。当你以此法摸到黑色牌时,你失去1点体力。',
gxlianhua:'炼化',
gxlianhua_info:'你的回合外,每当有其他角色受到伤害后,你获得一个“丹血”标记(该角色与你阵营一致时为红色,不一致为黑色,此颜色对所有玩家均不可见)直到你的准备阶段开始。准备阶段,根据你获得的“丹血”标记的数量和颜色,你从牌堆/弃牌堆中获得相应的牌以及相应技能直到回合结束。3枚或以下:〖英姿〗和【桃】;超过3枚且红色“丹血”较多:〖观星〗和【无中生有】;超过3枚且黑色“丹血”较多:〖直言〗和【顺手牵羊】;超过3枚且红色和黑色一样多:【杀】、【决斗】和〖攻心〗。',
zhafu:'札符',
zhafu_info:' 限定技,出牌阶段,你可以选择一名其他角色,令其获得一枚「札」。有「札」的角色弃牌阶段开始时,若其手牌数大于1,其移去「札」并选择保留一张手牌,然后将其余的手牌交给你。',
xinlvli:'膂力',
xinlvli_info:'每回合限一次,当你造成伤害后,你可选择:1,若你的体力值大于你的手牌数,你摸X张牌;2,若你的手牌数大于你的体力值且你已受伤,你回复X点体力(X为你的手牌数与体力值之差)。',
lvli:'膂力',
lvli4:'膂力',
lvli5:'膂力',
lvli_info:'每名角色的回合限一次,你可以声明一个基本牌或普通锦囊牌的牌名,有随机概率视为使用之(装备区里的牌数越多,成功概率越大)',
choujue:'仇决',
choujue_info:'觉醒技,一名角色的回合结束时,若你的手牌数和体力值相差3或更多,你减1点体力上限并获得技能〖背水〗,然后将〖膂力〗改为“在自己的回合时每回合限两次”。',
beishui:'背水',
beishui_info:'觉醒技,准备阶段,若你的手牌数或体力值小于2,你减1点体力上限并获得技能〖清剿〗,然后将〖膂力〗改为受到伤害后也可以发动。',
qingjiao:'清剿',
qingjiao_info:'出牌阶段开始时,你可以弃置所有手牌,然后从牌堆或弃牌堆中随机获得八张牌名各不相同且副类别不同的牌。若如此做,结束阶段,你弃置所有牌。',
spjiedao:"截刀",
"spjiedao_info":"当你每回合第一次造成伤害时,你可令此伤害至多+X(X为你损失的体力值)。然后若受到此伤害的角色没有死亡,你弃置等同于此伤害加值的牌。",
biaozhao:"表召",
"biaozhao_info":"结束阶段,你可以将一张牌置于武将牌上,称为“表”。当有一张与“表”花色点数均相同的牌进入弃牌堆时,你将“表”置入弃牌堆并失去1点体力,若此牌是其他角色因弃置而进入弃牌堆的,则改为该角色获得“表”。准备阶段,若你的武将牌上有“表”,则你将“表”置入弃牌堆。然后你选择一名角色,该角色回复1点体力且将手牌摸至与全场手牌数最多的人相同(最多摸五张)。",
"biaozhao2":"表召",
"biaozhao2_info":"",
"biaozhao3":"表召",
"biaozhao3_info":"",
yechou:"业仇",
"yechou_info":"当你死亡时,你可以选择一名已损失体力值大于1的角色。直到其下个回合开始前,每个回合结束时,该角色失去1点体力。",
"yechou2":"业仇",
"yechou2_info":"",
yanjiao:"严教",
"yanjiao_info":"出牌阶段限一次,你可以选择一名其他角色并从牌堆顶亮出四张牌。该角色将这些牌分成点数之和相等的两组,你与其各获得其中一组,然后将剩余未分组的牌置入弃牌堆。若未分组的牌超过一张,则你本回合手牌上限-1。",
"yanjiao2":"严教",
"yanjiao2_info":"",
xingshen:"省身",
"xingshen_info":"当你受到伤害后,你可以摸一张牌且下一次发动〖严教〗亮出的牌数+1。若你的手牌数为全场最少,则改为摸两张牌;若你的体力值为全场最少,则〖严教〗亮出的牌数改为+2(加值总数不能超过4)。",
weicheng:'伪诚',
weicheng_info:'当其他角色获得你的手牌后,若你的手牌数小于体力值,你可以摸一张牌。',
daoshu:'盗书',
daoshu_info:'出牌阶段,你可以选择一个花色并获得一名其他角色的一张手牌。若此牌花色与你选择的相同,则你对其造成1点伤害。否则你须交给其一张与此牌花色不同的手牌(没有则展示手牌),且本阶段内不能再发动〖盗书〗',
xinshanjia:"缮甲",
"xinshanjia_info":"出牌阶段开始时,你可以摸三张牌,然后弃置3-X张牌(X为你本局游戏内失去过的装备区内的牌的数目且至多为3)。若你没有以此法弃置基本牌或锦囊牌,则你可以视为使用了一张不计入出牌阶段使用次数的【杀】。",
"new_meibu":"魅步",
"new_meibu_info":"其他角色的出牌阶段开始时,若你在其攻击范围内,你可以弃置一张牌,令该角色于本回合内获得技能〖止息〗。若你以此法弃置的牌不是【杀】或黑色锦囊牌,则本回合其与你的距离视为1。",
"new_mumu":"穆穆",
"new_mumu_info":"出牌阶段开始时,你可以选择一项:1.弃置一名其他角色装备区里的一张牌;2.获得一名角色装备区里的一张防具牌,若如此做,你本回合不能使用【杀】。",
"new_zhixi":"止息",
"new_zhixi_info":"锁定技,出牌阶段,你至多可使用X张牌,你使用了锦囊牌后不能再使用牌(X为你的体力值)。",
"new_mumu2":"穆穆",
"new_mumu2_info":"锁定技,你不能使用【杀】。",
"new_xingwu":"星舞",
"new_xingwu_info":"弃牌阶段开始时,你可以将一张手牌置于武将牌上,称之为「舞」。然后若你的「舞」中包含三种花色,则你须移去三张花色不同的「舞」并选择一名角色,该角色受到2点伤害(若为女性,则改为1点)并弃置其装备区的所有牌。",
"new_luoyan":"落雁",
"new_luoyan_info":"锁定技。若你的武将牌上有「舞」,则你视为拥有技能〖天香〗和〖流离〗。",
"new_luoyan_tianxiang":"天香",
"new_luoyan_tianxiang_info":"",
"new_luoyan_liuli":"流离",
"new_luoyan_liuli_info":"",
ol_shichou:"誓仇",
ol_shichou_info:"当你使用【杀】时,你可以令至多X名角色也成为此【杀】的目标。(X为你已损失的体力值且至少为1)",
"zhenwei_three":"镇卫",
"zhenwei_three_info":"锁定技,敌方角色至己方其他角色的距离+1。",
"huanshi_three":"缓释",
"huanshi_three_info":"一名友方角色的判定牌生效前,你可打出一张牌代替之。",
zhengfu:"征服",
"zhengfu_info":"当你使用【杀】指定目标时,你可以选择一种牌的类别,然后除非目标角色交给你一种该类别的牌,否则其不能闪避此【杀】。",
yizan:"翊赞",
yizan_info:"你可以将两张牌(其中至少一张是基本牌)当任意基本牌牌使用",
yizan0:"翊赞",
yizan0_info:"你可以将两张牌(其中至少一张是基本牌)当任意基本牌牌使用",
yizan1:"翊赞",
yizan1_info:"你可以将两张牌(其中至少一张是基本牌)当【闪】打出",
yizan2:"翊赞",
yizan2_info:"你可以将一张基本牌当任意基本牌牌使用",
yizan3:"翊赞",
yizan3_info:"你可以将一张基本牌当【闪】打出 ",
yizan5:"翊赞",
yizan5_info:"你可以将两张牌(其中至少一张是基本牌)当【杀】打出",
yizan6:"翊赞",
yizan6_info:"你可以将一张基本牌当【杀】打出",
longyuan:"龙渊",
longyuan_info:"觉醒技 当你使用或打出基本牌时,若你已经已累计发动过3次【翊赞】,你将【翊赞】改为“你可以将一张基本牌当任意基本牌牌使用或打出”。",
wuniang:"武娘",
wuniang_info:"你使用或打出【杀】时,你可以获得一名其他角色的一张牌,然后该角色摸一张牌;若“关索”在场,你可令“关索”也摸一张牌",
zhennan:"镇南",
zhennan_info:"当你成为【南蛮入侵】的目标时,你可令一名其他角色随机受到一至三点伤害",
xushen:"许身",
xushen_info:"当其他男性角色令你脱离濒死状态时,若“关索”不在场,其可以选择是否用“关索”替换其武将牌,然后你回复一点体力并获得技能【镇南】",
wanwei:'挽危',
wanwei_info:'当你因被其他角色获得或弃置而失去牌时,你可以改为自己选择失去的牌。',
yuejian:'约俭',
yuejian_info:'一名角色的弃牌阶段开始时,若其本回合内使用过的牌数小于X,则你可以令其本回合的手牌上限+X。(X为其的体力上限)',
gzjili:'蒺藜',
gzjili_info:'当你于一回合内使用或打出第X张牌时,你可以摸X张牌(X为你的攻击范围)。',
xiongsuan:'凶算',
xiongsuan_info:'限定技,出牌阶段,你可以弃置一张手牌并选择一名角色,对其造成1点伤害,然后你摸三张牌。若该角色有已发动的限定技,则你选择其中一个限定技。此回合结束后,视为该限定技未发动过。',
diaodu:"调度",
diaodu_info:"当你使用装备牌时,你可以摸一张牌;出牌阶段开始时,你可以获得一名其他角色装备区里的一张牌,然后你可以将此牌交给另一名角色。",
diancai:'典财',
diancai_info:'其他角色的出牌阶段结束时,若你于此阶段失去了X张或更多的牌,则你可以将手牌摸至体力上限。(X为你的体力值)',
zhengbi:'征辟',
zhengbi_info:'出牌阶段开始时,你可以选择一项:选择一名未受伤的其他角色,你对其使用的牌无距离限制且不计入使用次数直到回合结束;或将一张基本牌交给一名其他角色,然后其交给你一张非基本牌或两张基本牌。',
fengying:'奉迎',
fengying_info:'限定技,出牌阶段,你可以弃置所有手牌。若如此做,你可以令等量的角色将手牌摸至X张(X为其体力上限且至多为5)。然后,你结束出牌阶段,并在当前回合结束后进行一个新的回合。',
qingzhong:'清忠',
qingzhongx:'清忠',
qingzhongx_info:'出牌阶段开始时,你可以摸两张牌,若如此做,此阶段结束时,你与手牌数最少的角色交换手牌。',
weijing:'卫境',
weijing_info:'每轮限一次,当你需要使用【杀】或【闪】时,你可以视为使用一张【杀】或【闪】。',
spwenji:'问计',
spwenji_info:'出牌阶段开始时,你可以令一名其他角色交给你一张牌。你于本回合内使用与该牌名称相同的牌时不能被其他角色响应。',
sptunjiang:'屯江',
sptunjiang_info:'结束阶段,若你未跳过本回合的出牌阶段,且你于本回合出牌阶段内未使用牌指定过其他角色为目标,则你可以摸X张牌(X为全场势力数)。',
zongkui:'纵傀',
zongkui_mark:'纵傀',
zongkui_mark_bg:'傀',
zongkui_info:'回合开始时,你可以指定一名未拥有“傀”标记的其他角色,令其获得一枚“傀”标记。每轮游戏开始时,你可以指定一名体力值最少且没有“傀”标记的其他角色,令其获得一枚“傀”标记。',
guju:'骨疽',
guju_info:'锁定技,拥有“傀”标记的角色受到伤害后,你摸一张牌。',
baijia:'拜假',
baijia_info:'觉醒技,准备阶段,若你因〖骨疽〗获得的牌不少于7张,则你增加1点体力上限,回复1点体力,然后令所有未拥有“傀”标记的其他角色获得“傀”标记,最后失去技能〖骨疽〗,并获得技能〖蚕食〗。',
bmcanshi:'蚕食',
bmcanshi_info:'一名角色使用基本牌或普通锦囊牌指定你为唯一目标时,若其有“傀”标记,你可以取消之,然后其失去“傀”标记;你使用牌仅指定一名角色为目标时,你可以额外指定任意名带有“傀”标记的角色为目标(无距离限制),然后这些角色失去“傀”标记。',
zishu:'自书',
zishu_info:'锁定技,你的回合外,你获得的牌均会在当前回合结束后置入弃牌堆;你的回合内,当你不因〖自书〗而获得牌时,你摸一张牌。',
yingyuan:'应援',
yingyuan_info:'当你于回合内使用的牌结算完成后,你可以将其交给一名其他角色(相同牌名的牌每回合限一次)。',
xinyingyuan:'应援',
xinyingyuan_info:'当你于回合内使用一张牌后,你可以令一名其他角色从牌堆获得一张与该牌类型相同的牌(每种类型的牌每回合限一次)。',
qianya:'谦雅',
qianya_info:'当你成为锦囊牌的目标后,你可以将任意张手牌交给一名其他角色。',
shuimeng:'说盟',
shuimeng_info:'出牌阶段结束时,你可以与一名角色拼点,若你赢,视为你使用【无中生有】;若你没赢,视为其对你使用【过河拆桥】。',
xianfu:'先辅',
xianfu2:'先辅',
xianfu2_bg:'辅',
xianfu_info:'锁定技,游戏开始时,你选择一名其他角色,当其受到伤害后,你受到等量的伤害,当其回复体力后,你回复等量的体力。',
chouce:'筹策',
chouce_info:'当你受到1点伤害后,你可以判定,若结果为:黑色,你弃置一名角色区域里的一张牌;红色,你选择一名角色,其摸一张牌,若其是〖先辅〗选择的角色,改为其摸两张牌。',
fuqi:'伏骑',
fuqi_info:'锁定技,当你使用牌时,你令所有与你距离为1的其他角色不能使用或打出牌响应此牌。',
jiaozi:'骄恣',
jiaozi_info:'锁定技,若你的手牌数为全场唯一最多,则当你造成或受到伤害时,此伤害+1。',
wy_meirenji:'美人计',
wy_meirenji_info:'出牌阶段,对一名有手牌的其他男性角色使用。每名女性角色各获得其一张手牌并将一张手牌交给你,然后比较你与其的手牌数,手牌少的角色对手牌多的角色造成1点伤害。',
wy_xiaolicangdao:'笑里藏刀',
wy_xiaolicangdao_info:'出牌阶段,对一名其他角色使用。该角色摸X张牌(X为其已损失的体力值且至多为5),然后你对其造成1点伤害。',
weikui:'伪溃',
weikui2:'伪溃',
weikui_info:'出牌阶段限一次,你可以失去1点体力并选择一名有手牌的其他角色,你观看其手牌:若其手牌中有【闪】,则视为你对其使用【杀】,且本回合你计算与其的距离视为1;若其手牌中没有【闪】,你弃置其中一张牌。',
lizhan:'励战',
lizhan_info:'结束阶段,你可以令任意名已受伤的角色摸一张牌。',
wylianji:'连计',
wylianji_info:'出牌阶段限一次,你可以展示一张【杀】或黑色锦囊牌,并令一名其他角色将牌堆中的随机一张武器牌置入装备区(可替换原装备)。然后该角色选择一项:1.对除你以外的角色使用该牌,并将装备区里的武器牌交给该牌的一个目标角色;2.令你对其使用此牌,然后获得此牌,并将装备区内的武器牌交给你。',
// from here
moucheng:'谋逞',
moucheng_info:'觉醒技,当其他角色使用因〖连计〗交给其的牌累计造成伤害达到3点后,你失去技能〖连计〗,然后获得技能〖矜功〗',
jingong:'矜功',
jingong2:'矜功',
jingong_backup:'矜功',
jingong_info:'出牌阶段限一次,你可以将一张装备牌或【杀】当做一张随机锦囊牌使用(三选一,其中一张为【美人计】或【笑里藏刀】),然后本回合的结束阶段,若你于本回合内未造成过伤害,你失去1点体力',
fenyue:'奋钺',
fenyue2:'奋钺',
fenyue2_bg:'钺',
fenyue_info:'出牌阶段限X次,你可以与一名角色拼点,若你赢,你选择一项:1.令其不能使用或打出手牌直到回合结束;2.视为你对其使用了【杀】(不计入次数限制)。若你没赢,你结束出牌阶段。(X为存活的忠臣数)',
huoshui:'祸水',
huoshui_info:'出牌阶段,你可以明置此武将牌:你的回合内,若此武将牌处于明置状态,其他角色不能明置其武将牌。',
qingcheng:'倾城',
qingcheng_info:'出牌阶段,你可以弃置一张装备牌并选择一名两张武将牌均明置的其他角色,你暗置其一张武将牌',
zhuoshui:'祸水',
zhuoshui_info:'锁定技,准备阶段,你令所有其他角色的非锁定技失效直到回合结束。',
zqingcheng:'倾城',
zqingcheng_info:'出牌阶段,你可以弃置一张装备牌,然后令一名角色翻面并摸两张牌。',
zfengshi:'锋矢',
zfengshi_info:'当你使用【杀】指定目标后,你可以令目标弃置装备区内的一张牌。',
chuanxin:'穿心',
chuanxin_info:'当你于出牌阶段内使用【杀】或【决斗】对目标角色造成伤害时,你可以防止此伤害。若如此做,该角色选择一项:1.弃置装备区里的所有牌,若如此做,其失去1点体力;2.随机移除主武将牌上的一个技能。',
chuanxin_info_guozhan:'当你于出牌阶段内使用【杀】或【决斗】对目标角色造成伤害时,若其与你势力不同且有副将,你可以防止此伤害。若如此做,该角色选择一项:1.弃置装备区里的所有牌,若如此做,其失去1点体力;2.移除副将。',
hengjiang:'横江',
hengjiang2:'横江',
hengjiang_info:'当你受到1点伤害后,你可以令当前回合角色本回合的手牌上限-1。然后若其弃牌阶段内没有弃牌,则你摸一张牌。',
shuangren:'双刃',
shuangren_info:'出牌阶段开始时,你可以与一名角色拼点。若你赢,你视为对任意一名角色使用一张【杀】(不计入出牌阶段的次数限制);若你没赢,你结束出牌阶段。',
shuangren_info_guozhan:'出牌阶段开始时,你可以与一名角色拼点。若你赢,你视为对其或与其势力相同的另一名角色使用一张【杀】(不计入出牌阶段的次数限制);若你没赢,你结束出牌阶段。',
xiashu:'下书',
xiashu_info:'出牌阶段开始时,你可以将所有手牌交给一名其他角色,然后该角色亮出任意数量的手牌(至少一张)。你选择一项:1.获得其亮出的手牌;2.获得其未亮出的手牌。',
kuanshi:'宽释',
kuanshi2:'宽释',
kuanshi_info:'结束阶段,你可以选择一名角色。直到你的下回合开始,该角色第一次受到大于1的伤害时,防止此伤害,然后你跳过下个回合的摸牌阶段。',
bingzheng:'秉正',
bingzheng_info:'出牌阶段结束时,你可以令手牌数不等于体力值的一名角色弃置一张手牌或摸一张牌。然后若其手牌数等于体力值,你摸一张牌,且可以交给该角色一张牌。',
sheyan:'舍宴',
sheyan_info:'当你成为普通锦囊牌的目标时(【借刀杀人】等带有指向目标的锦囊除外),你可以为此牌增加一个目标或令其对其中一个目标无效。(有效目标数至少为一)',
fuman:'抚蛮',
fuman2:'抚蛮',
fuman_info:'出牌阶段,你可以将一张【杀】交给一名本回合未获得过〖抚蛮〗牌的其他角色,其于下个回合结束之前使用〖抚蛮〗牌时,你摸一张牌。',
qizhou:'绮胄',
qizhou_info:'锁定技,你根据装备区里牌的花色数获得以下技能:1种或以上:〖马术〗;2种或以上:〖英姿〗;3种或以上:〖短兵〗;4种:〖奋威〗。',
shanxi:'闪袭',
shanxi_info:'出牌阶段限一次,你可以弃置一张红色基本牌,然后弃置攻击范围内的一名其他角色的一张牌。若弃置的牌是【闪】,你观看其手牌,若弃置的不是【闪】,其观看你的手牌。',
duanbing:'短兵',
duanbing_info:'当你使用【杀】选择目标后,你可以令一名距离为1的其他角色也成为此牌的目标。',
fanghun:'芳魂',
fanghun_info:'当你使用【杀】造成伤害或受到【杀】的伤害后,你获得X个“梅影”标记(X为伤害点数);你可以移去1个“梅影”标记来发动〖龙胆〗并摸一张牌。',
refanghun:'芳魂',
refanghun_info:'当你使用【杀】或成为【杀】的目标后,你获得1个“梅影”标记;你可以移去1个“梅影”标记来发动〖龙胆〗并摸一张牌。',
fanghun_sha:'龙胆',
fuhan:'扶汉',
fuhan_info:'限定技,回合开始时,你可以移去所有“梅影”标记并摸等量的牌,随机观看五名未登场的蜀势力角色,将武将牌替换为其中一名角色,并将体力上限数调整为本局游戏中移去“梅影”标记的数量(至少为2,至多为8),然后回复1点体力。',
refuhan:'扶汉',
refuhan_info:'限定技,回合开始时,你可以移去所有“梅影”标记并摸等量的牌,随机观看五名未登场的蜀势力角色,获得其中一张武将牌上的所有技能。',
yjixi:'觊玺',
yjixi_info:'觉醒技,结束阶段,若你连续三回合没有因〖庸肆〗而失去过体力,则你增加1点体力上限并回复1点体力,然后选择一项:获得技能〖妄尊〗;摸两张牌并获得当前主公的主公技。',
xinyongsi:'庸肆',
xinyongsi1:'庸肆',
xinyongsi2:'庸肆',
xinyongsi_info:'锁定技,摸牌阶段,你令额定摸牌数改为X(X为势力数);弃牌阶段开始时,你选择一项:1.弃置一张牌;2.失去1点体力。',
xiehui:'黠慧',
xiehui2:'黠慧',
xiehui_info:'锁定技,你的黑色牌不计入手牌上限;其他角色获得你的黑色牌时,其不能使用、打出、弃置这些牌直到其体力值减少为止。',
lianzhu:'连诛',
lianzhu_info:'出牌阶段限一次,你可以展示并交给一名其他角色一张牌,若此牌为黑色,其选择一项:1.你摸两张牌;2.弃置两张牌',
zhaolie:'昭烈',
zhaolie_info:'摸牌阶段摸牌时,你可以少摸一张牌并指定攻击范围内的一名角色。你展示牌堆顶的三张牌,将其中的非基本牌和【桃】置于弃牌堆,然后该角色选择一项:1.你对其造成X点伤害,然后其获得这些基本牌;2.其弃置X张牌,然后你获得这些基本牌。(X为其中非基本牌的数量)',
shichou:'誓仇',
shichou2:'誓仇',
shichou_info:'主公技,限定技,准备阶段,你可指定一名蜀势力角色并交给其两张牌。本局游戏中,当你受到伤害时,改为该角色受到等量的伤害并摸等量的牌,直至该角色第一次进入濒死状态。',
shanjia:'缮甲',
shanjia_info:'出牌阶段开始时,你可以摸X张牌,然后弃置等量的牌。若你以此法弃置了装备区内的牌,则你可以视为使用一张【杀】。(X为你于本局游戏内使用过的装备牌数且最大为7)',
tuifeng:'推锋',
tuifeng2:'推锋',
tuifeng_info:'1.当你受到1点伤害后,你可以将一张牌置于武将牌上,称为“锋”。2.准备阶段开始时,若你的武将牌上有“锋”,你移去所有“锋”,摸2X张牌,然后你于此回合的出牌阶段内使用【杀】的次数上限+X。(X为你此次移去的“锋”数)',
ziyuan:'资援',
ziyuan_info:'出牌阶段限一次,你可以将任意张点数之和为13的手牌交给一名其他角色,然后该角色回复1点体力。',
jugu:'巨贾',
jugu_info:'锁定技,1.你的手牌上限+X。2.游戏开始时,你摸X张牌(X为你的体力上限)',
hongde:'弘德',
hongde_info:'当你一次获得或失去至少两张牌后,你可以令一名其他角色摸一张牌。',
dingpan:'定叛',
dingpan_info_identity:'出牌阶段限X次,你可以令一名装备区里有牌的角色摸一张牌,然后其选择一项:1.令你弃置其装备区里的一张牌;2.获得其装备区里的所有牌,若如此做,你对其造成1点伤害。(X为场上存活的反贼数)',
dingpan_info_versus:'出牌阶段限X次,你可以令一名装备区里有牌的角色摸一张牌,然后其选择一项:1.令你弃置其装备区里的一张牌;2.获得其装备区里的所有牌,若如此做,你对其造成1点伤害。(X为场上存活的敌方角色数)',
dingpan_info:'出牌阶段限一次,你可以令一名装备区里有牌的角色摸一张牌,然后其选择一项:1.令你弃置其装备区里的一张牌;2.获得其装备区里的所有牌,若如此做,你对其造成1点伤害。',
weidi:'伪帝',
weidi_info:'锁定技,你视为拥有当前主公的主公技。',
juesi:'决死',
juesi_info:'出牌阶段,你可以弃置一张【杀】并选择攻击范围内的一名有牌的其他角色,该角色弃置一张牌,然后若弃置的牌不是【杀】且你的体力值不大于该角色,你视为对其使用【决斗】。',
zhenlue:'缜略',
zhenlue_info:'锁定技,你使用的普通锦囊牌不能被【无懈可击】响应;你不能成为延时锦囊牌的目标。',
jianshu:'间书',
jianshu_info:'限定技,出牌阶段,你可以将一张黑色手牌交给一名其他角色,并选择另一名其他角色,然后令这两名角色拼点。赢的角色弃置两张牌,没赢的角色失去一点体力。',
yongdi:'拥嫡',
yongdi_info:'限定技,准备阶段开始时,你可令一名其他男性角色增加一点体力上限并回复1点体力,然后若该角色的武将牌上有主公技且其不为主公,其获得此主公技。',
gushe:'鼓舌',
gushe_bg:'舌',
gushe_info:'出牌阶段限一次,你可以用一张手牌与至多三名角色同时拼点,然后依次结算拼点结果,没赢的角色选择一项:1.弃置一张牌;2.令你摸一张牌。若你没赢,你获得一个“饶舌”标记。当你获得第7个“饶舌”标记时,你死亡。',
jici:'激词',
jici_info:'当你因发动〖鼓舌〗而扣置的拼点牌亮出后,若点数小于X,你可令点数+X;若点数等于X,你可令你本回合发动〖鼓舌〗的次数上限+1。(X为你“饶舌”标记的数量)',
shefu:'设伏',
shefu_bg:'伏',
shefu_info:'结束阶段开始时,你可以将一张手牌移出游戏,称为「伏兵」。然后为「伏兵」记录一个基本牌或锦囊牌的名称(须与其他「伏兵」记录的名称均不同)。你的回合外,当有其他角色使用与你记录的「伏兵」牌名相同的牌时,你可以取消此牌的所有目标,然后移去该「伏兵」',
benyu:'贲育',
benyu2:'贲育',
benyu_info:'当你受到伤害后,若你的手牌数不大于伤害来源的手牌数,你可以将手牌摸至与伤害来源手牌数相同(至多摸至5张);否则你可以弃置大于伤害来源手牌数的手牌,然后对其造成1点伤害。',
zhidao:'雉盗',
zhidao_info:'锁定技,当你于你的回合内第一次对区域里有牌的其他角色造成伤害后,你获得其手牌、装备区和判定区里的各一张牌,然后直到回合结束,其他角色不能被选择为你使用牌的目标。',
jili:'寄篱',
jili_info:'锁定技,当一名其他角色成为红色基本牌或红色普通锦囊牌的目标时,若其与你的距离为1且你既不是此牌的使用者也不是目标,你也成为此牌的目标。',
luanzhan:'乱战',
luanzhan_info:'你使用【杀】或黑色普通锦囊牌可以额外选择X名角色为目标;当你使用【杀】或黑色普通锦囊牌指定目标后,若此牌的目标角色数小于X,则X减至0。(X为你于本局游戏内造成过伤害的次数)',
zhengnan:'征南',
zhengnan_info:'其他角色死亡后,你可以摸三张牌并获得下列技能中的任意一个:〖武圣〗、 〖当先〗和〖制蛮〗。',
xinzhengnan:'征南',
xinzhengnan_info:'锁定技,当一名角色进入濒死状态时,若你未因其发动过〖征南〗,则你回复1点体力并摸一张牌并获得下列技能中的任意一个:〖武圣〗、 〖当先〗和〖制蛮〗(若技能全部拥有则改为摸三张牌。你以此法获得的〖当先〗结算时视为已发动过〖伏枥〗)。',
xiefang:'撷芳',
xiefang_info:'锁定技,你计算与其他角色的距离时-X。(X为女性角色数)',
qizhi:'奇制',
qizhi_info:'当你于回合内使用基本牌或锦囊牌指定目标后,你可以弃置不是此牌目标的一名角色的一张牌。若如此做,其摸一张牌。',
jinqu:'进趋',
jinqu_info:'结束阶段开始时,你可以摸两张牌,若如此做,你将手牌弃置至X张。(X为你于此回合发动过〖奇制〗的次数)',
tanhu:'探虎',
tanhu2:'探虎',
tanhu3:'探虎',
tanhu_info:'出牌阶段限一次,你可以与一名其他角色拼点。若你赢,你获得以下效果直到回合结束:你与该角色的距离为1,你对该角色使用的普通锦囊牌不能被【无懈可击】响应。',
mouduan:'谋断',
mouduan_info:'游戏开始时,你获得标记“武”并获得技能〖激昂〗和〖谦逊〗。当你失去手牌后,若手牌数不大于2,你须将你的标记变为“文”,将这两项技能改为〖英姿〗和〖克己〗。一名角色的回合开始前,你可弃一张牌将标记翻回。',
jiqiao:'机巧',
jiqiao_info:'出牌阶段开始时,你可以弃置任意张装备牌,然后亮出牌堆顶两倍数量的牌并获得其中的非装备牌。',
linglong:'玲珑',
linglong_info:'锁定技,若你的装备区没有武器牌,则你使用【杀】的次数上限+1;若你的装备区没有防具牌,视为你装备着【八卦阵】;若你的装备区没有坐骑牌,你的手牌上限+1;若你的装备区没有宝物牌,则你视为拥有技能〖奇才〗。',
fenyong:'愤勇',
fenyong2:'愤勇',
fenyong2_bg:'勇',
fenyong_info:'每当你受到一次伤害后,你可以获得一枚「愤勇」标记;当你拥有「愤勇」标记时,防止你受到的所有伤害。',
xuehen:'雪恨',
xuehen_info:'每个角色的结束阶段开始时,若你有愤勇标记,你弃置之,然后选择一项:1.弃置当前回合角色X张牌(X为你已损失的体力值);2.视为对一名任意角色使用一张【杀】。',
zhenwei:'镇卫',
zhenwei2:'镇卫',
zhenwei_info:'当一名其他角色成为【杀】或黑色锦囊牌的目标时(使用者不是你),若该角色的体力值小于你且此牌的目标角色数为1,你可以弃置一张牌。若如此做,你选择一项:1、摸一张牌,然后将此【杀】或黑色锦囊牌转移给你;2、令此【杀】或黑色锦囊牌无效,然后将此【杀】或黑色锦囊牌置于使用者的武将牌旁,若如此做,当前回合结束后,使用者获得使用者武将牌旁的这些牌。',
jie:'嫉恶',
jie_info:'锁定技,当你使用红色【杀】造成伤害时,此伤害+1。',
dahe:'大喝',
dahe2:'大喝',
dahe2_bg:'喝',
dahe_info:'出牌阶段限一次,你可以与一名其他角色拼点。若你赢,该角色不能使用或打出不为♥花色的【闪】直到回合结束,且你可将该角色拼点的牌交给场上一名体力不多于你的角色。若你没赢,你须展示手牌并弃置其中的一张。',
yinling:'银铃',
yinling_bg:'锦',
yinling_info:'出牌阶段,若你的“锦”小于四张,你可以弃置一张黑色牌并指定一名其他角色。若如此做,你将其的一张牌置于你的武将牌上,称为“锦”。',
junwei:'军威',
junwei2:'军威',
junwei_info:'结束阶段开始时,你可以移去三张“锦”。若如此做,你须指定一名角色并令其选择一项:1.展示一张【闪】,然后你将此【闪】交给一名其他角色。2.该角色失去1点体力,然后你将其装备区内的一张牌移出游戏。该角色的回合结束后,将以此法移出游戏的装备牌移回原处。',
yanxiao:'言笑',
yanxiao2:'言笑',
yanxiao_info:'出牌阶段,你可以将一张♦牌置于一名角色的武将牌上。武将牌上有〖言笑〗牌的角色下个判定阶段开始时,获得〖言笑〗牌及其判定区里的所有牌。',
anxian:'安娴',
anxian_info:'当你使用【杀】对目标角色造成伤害时,你可以防止此伤害,令其弃置一张手牌,然后你摸一张牌;当你成为【杀】的目标后,你可以弃置一张手牌,令此【杀】对你无效,然后此【杀】的使用者摸一张牌。',
xingwu:'星舞',
xingwu_info:'弃牌阶段开始时,你可以将一张与你本回合使用的牌颜色均不同的手牌置于武将牌上:若你有至少三张“星舞”牌,你移去“星舞”牌并选择一名男性角色,该角色受到2点伤害并弃置其装备区的所有牌',
luoyan:'落雁',
luoyan_info:'锁定技。若你的武将牌上有“星舞牌”,你拥有“天香”和“流离”',
yinbing:'引兵',
yinbing_info:'结束阶段开始时,你可以将至少一张非基本牌置于武将牌上。每当你受到【杀】或【决斗】的伤害后,你移去一张「引兵」牌。',
juedi:'绝地',
juedi_info:'锁定技,准备阶段,若你的武将牌上有「引兵」牌,你选择一项:1.移去「引兵」牌,将手牌补至体力上限数;2.将「引兵」牌交给一名体力值不大于你的其他角色,其回复1点体力并摸等量的牌。',
kuangfu:'狂斧',
kuangfu_info:'当你使用【杀】造成伤害时,你可以选择一项:弃置其装备区内的一张牌,或将其装备区内的一张牌移动到你的装备区内。',
xintan:'心惔',
xintan_info:'出牌阶段限一次,你可以移去两张「焚」并选择一名角色,该角色失去一点体力。',
fentian:'焚天',
fentian_info:'锁定技,结束阶段开始时,若你的手牌数少于体力值,你须选择一名攻击范围内的角色,将其一张牌置于你的武将牌上,称为「焚」。锁定技,你的攻击范围+X(X为「焚」的数量)',
zhiri:'炙日',
zhiri_info:'觉醒技,准备阶段开始时,若你的「焚」的数量不小于3,你减1点体力上限,然后获得技能〖心惔〗',
meibu:'魅步',
meibu_info:'其他角色的出牌阶段开始时,若你不在其攻击范围内,你可以令该角色的锦囊牌均视为【杀】,直到该角色以此法使用了一张【杀】或回合结束。若如此做,则直到回合结束,视为你在其攻击范围内。',
mumu:'穆穆',
mumu_info:'出牌阶段限一次,你可以弃置一张【杀】或黑色锦囊牌,然后选择一项:弃置场上的一张武器牌,然后摸一张牌;或将场上的一张防具牌移动到你的装备区里(可替换原防具)。',
zhanyi:'战意',
zhanyi_basic_sha:'战杀',
zhanyi_basic_jiu:'战酒',
zhanyi_basic_tao:'战桃',
zhanyi_info:'出牌阶段限一次,你可以弃置一张牌并失去1点体力,然后根据你弃置的牌获得以下效果直到回合结束:基本牌,你可以将一张基本牌当作【杀】、【酒】或【桃】使用;锦囊牌,摸两张牌且你使用的牌无距离限制;装备牌,你使用【杀】指定目标角色后,其弃置两张牌。',
nuzhan:'怒斩',
nuzhan2:'怒斩',
nuzhan_info:'锁定技,你使用的由一张锦囊牌转化的【杀】不计入出牌阶段的次数限制;锁定技,你使用的由一张装备牌转化的【杀】的伤害值基数+1',
danji:'单骑',
danji_info:'觉醒技,准备阶段开始时,若你的手牌数大于你的体力值且本局游戏的主公不为刘备,你减1点体力上限,然后获得〖马术〗和〖怒斩〗',
jieyuan:'竭缘',
jieyuan_more:'竭缘',
jieyuan_less:'竭缘',
jieyuan_info:'当你对一名其他角色造成伤害时,若其体力值大于或等于你的体力值,你可弃置一张黑色手牌,令此伤害+1;当你受到一名其他角色造成的伤害时,若其体力值大于或等于你的体力值,你可弃置一张红色手牌,令此伤害-1。',
fenxin:'焚心',
fenxin_old:'焚心',
fenxin_info:'锁定技,一名其他角色死亡后,若其身份为:忠臣,你本局内发动〖竭缘〗减少伤害时无视体力值限制;反贼,你本局内发动〖竭缘〗增加伤害时无视体力值限制;内奸,你本局内选择发动〖竭缘〗的牌时无颜色限制。',
fenxin_old_info:'限定技,当你杀死一名非主公角色时,你可以与其交换未翻开的身份牌。(你的身份为主公时不能发动此技能)',
qingyi:'轻逸',
qingyi1:'轻逸',
qingyi2:'轻逸',
qingyi_info:'你可以跳过判定阶段和摸牌阶段。若如此做,视为对一名角色使用了一张无距离限制的【杀】。',
xiandeng:'先登',
xiandeng_info:'锁定技,出牌阶段,你使用的第一张【杀】不计入次数且无距离限制。',
shulv:'熟虑',
shulv_info:'出牌阶段限一次,若你的手牌数大于体力值,则你可以弃置一张牌并摸一张牌。',
xisheng:'牺牲',
xisheng_info:'每名其他角色的回合限一次,你可以将两张牌当做【桃】使用。',
yuhua:'羽化',
yuhua_info:'锁定技,弃牌阶段内,你的非基本牌不计入手牌上限。',
qirang:'祈禳',
qirang_info:'当有装备牌进入你的装备区时,你可以随机获得牌堆中的一张锦囊牌。',
biluan:'避乱',
biluan_info:'摸牌阶段开始时,若有与你距离不大于1的其他角色,你可以放弃摸牌。若如此做,本局内其他角色计算与你的距离时+X。(X为势力数)',
lixia:'礼下',
lixia_info:'锁定技,其他角色的结束阶段开始时,若你不在其攻击范围内,你摸一张牌或令其摸一张牌。本局内其他角色计算与你的距离时-1。',
rebiluan:'避乱',
rebiluan_info:'出牌阶段开始时,若有与你距离不大于1的其他角色,你可以令自己与本阶段内不能使用【杀】。若如此做,本局内其他角色计算与你的距离时+X。(X为势力数)',
relixia:'礼下',
relixia_info:'锁定技,其他角色的结束阶段开始时,若你不在其攻击范围内,你摸一张牌或令其摸两张牌。本局内其他角色计算与你的距离时-1。',
yishe:'义舍',
yishe_bg:'米',
yishe_info:'结束阶段开始时,若你的武将牌上没有「米」,则你可以摸两张牌。若如此做,你将两张牌置于武将牌上,称为「米」;当有「米」移至其他区域后,若你的武将牌上没有「米」,则你回复1点体力。',
bushi:'布施',
midao:'米道',
bushi_info:'当你受到1点伤害后,或其他角色受到你造成的1点伤害后,受到伤害的角色可以获得你的一张「米」',
midao_info:'一名角色的判定牌生效前,你可以打出一张「米」代替之。',
fengpo:'凤魄',
fengpo_info:'当你于出牌阶段内使用第一张【杀】或【决斗】指定目标后,若目标角色数为1,你可以选择一项:1.摸X张牌;2.令此牌的伤害值基数+X。(X为其手牌中方牌的数量)',
chenqing:'陈情',
chenqing_info:'每轮限一次,当一名角色处于濒死状态时,你可以令另一名其他角色摸四张牌,然后其弃置四张牌。若其以此法弃置的四张牌花色各不相同,则视为该角色对濒死的角色使用一张【桃】。',
mozhi:'默识',
mozhi_info:'结束阶段开始时,你可以将一张手牌当作你本回合出牌阶段内使用的第一张基本或普通锦囊牌使用。然后,你可以将一张手牌当做你本回合出牌阶段内使用的第二张基本或普通锦囊牌使用。(你不能通过此技能使用【酒】)',
ranshang:'燃殇',
ranshang2:'燃殇',
ranshang_info:'锁定技,当你受到1点火焰伤害后,你获得1枚“燃”标记;结束阶段开始时,你失去X点体力(X为“燃”标记的数量)',
hanyong:'悍勇',
hanyong_info:'当你使用【南蛮入侵】或【万箭齐发】时,若你的体力值小于游戏轮数,你可以令此牌的伤害值基数+1。',
yicong:'义从',
yongsi:'庸肆',
yongsi1:'庸肆',
yongsi2:'庸肆',
bifa:'笔伐',
bifa2:'笔伐',
songci:'颂词',
baobian:'豹变',
lihun:'离魂',
chongzhen:'冲阵',
chongzhen1:'冲阵',
chongzhen2:'冲阵',
yuanhu:'援护',
tianming:'天命',
mizhao:'密诏',
duwu:'黩武',
mingzhe:'明哲',
huanshi:'缓释',
hongyuan:'弘援',
aocai:'傲才',
aocai2:'傲才',
aocai2_backup:'傲才',
aocai3:'傲才',
huxiao:'虎啸',
huxiao3:'虎啸',
xueji:'雪恨',
wuji:'武继',
shushen:'淑慎',
shenzhi:'神智',
xiongyi:'雄异',
junbing:'郡兵',
junbing2:'郡兵',
quji:'去疾',
sijian:'死谏',
suishi:'随势',
suishi2:'随势',
xiaoguo:'骁果',
duanxie:'断绁',
fenming:'奋命',
guixiu:'闺秀',
cunsi:'存嗣',
yongjue:'勇决',
hengzheng:'横征',
shengxi:'生息',
shoucheng:'守成',
shangyi:'尚义',
zniaoxiang:'鸟翔',
zhendu:'鸩毒',
qiluan:'戚乱',
qiluan2:'戚乱',
qiluan3:'戚乱',
shenxian:'甚贤',
oldshenxian:'甚贤',
qiangwu:'枪舞',
moukui:'谋溃',
moukui2:'谋溃',
lirang:'礼让',
mingshi:'名士',
liangzhu:'良助',
kaikang:'慷忾',
wangzun:'妄尊',
tongji:'同疾',
kuiwei:'溃围',
kuiwei2:'溃围',
yanzheng:'严整',
zhoufu:'咒缚',
zhoufu2:'咒缚',
zhoufu3:'咒缚',
yingbin:'影兵',
fenxun:'奋迅',
fenxun2:'奋迅',
spmengjin:'猛进',
xiemu:'协穆',
xiemu2:'协穆',
oldxiemu:'协穆',
naman:'纳蛮',
zuixiang:'醉乡',
manjuan:'漫卷',
taichen:'抬榇',
jilei:'鸡肋',
jilei2:'鸡肋',
jilei2_bg:'肋',
fulu:'符箓',
fuji:'助祭',
yawang:'雅望',
xunzhi:'殉志',
fanxiang:'返乡',
fanxiang_info:'觉醒技,准备阶段开始时,若场上有已受伤且你发动过〖良助〗的选项二的角色,则你加1点体力上限并回复1点体力,失去技能〖良助〗并获得技能〖枭姬〗',
xunzhi_info:'准备阶段开始时,若你的上家和下家与你的体力值均不相等,你可以失去1点体力。若如此做,你本局内手牌上限+2。',
yawang_info:'锁定技,摸牌阶段开始时,你改为摸X张牌,然后你于本回合的出牌阶段内至多使用X张牌(X为与你体力值相等的角色数)',
fuji_info:'当一名角色造成雷属性伤害时,你可以令其进行判定,若结果为黑色,此伤害+1;若结果为红色,该角色获得判定牌。',
fulu_info:'当你声明使用普通【杀】时,你可以将此【杀】改为雷【杀】。',
jilei_info:'当你受到有来源的伤害后,你可以声明一种牌的类别。若如此做,你令伤害来源不能使用、打出或弃置此类别的手牌,直到其下个回合开始。',
danlao:'啖酪',
danlao_info:'当你成为一张指定了多个目标的【杀】或普通锦囊牌的目标时,你可以摸一张牌,令此牌对你无效。',
gongao:'功獒',
zhuiji:'追击',
chouhai:'仇海',
chouhai_info:'锁定技,当你受到伤害时,若你没有手牌,此伤害+1。',
rechouhai:'仇海',
rechouhai_info:'锁定技,当你受到渠道为【杀】的伤害时,若你没有手牌,此伤害+1。',
guiming:'归命',
guiming_info:'主公技,锁定技,你将残蚀描述中的“已受伤角色”改为“已受伤角色或其他吴势力角色”',
chixin:'赤心',
chixin1:'赤心',
chixin2:'赤心',
chixin_info:'你可以将♦牌当作【杀】或【闪】使用或打出。出牌阶段,你对在你攻击范围内且本回合内未成为过你使用的【杀】的目标的角色使用的【杀】没有次数限制。',
suiren:'随仁',
suiren_info:'限定技,准备阶段开始时,你可以失去技能〖义从〗,然后加1点体力上限并回复1点体力,然后令一名角色摸三张牌。',
canshi:'残蚀',
canshi2:'残蚀',
canshi_info:'摸牌阶段开始时,你可以改为摸X张牌(X为已受伤的角色数),若如此做,当你于此回合内使用基本牌或锦囊牌时,你弃置一张牌。',
recanshi:'残蚀',
recanshi2:'残蚀',
recanshi_info:'摸牌阶段开始时,你可以多摸X张牌(X为已受伤的角色数),若如此做,当你于此回合内使用【杀】或锦囊牌时,你弃置一张牌。',
zhuiji_info:'锁定技,你与体力值不大于你的角色的距离视为1。',
kunfen:'困奋',
kunfen_info:'锁定技,结束阶段开始时,你失去1点体力,然后摸两张牌。',
fengliang:'逢亮',
fengliang_info:'觉醒技,当你进入濒死状态时,你减1点体力上限,将体力值回复至2点,获得技能〖挑衅〗并将〖困奋〗改为非锁定技。',
oldcihuai:'刺槐',
oldcihuai2:'刺槐',
oldcihuai_info:'出牌阶段开始时,你可以展示手牌。若其中没有【杀】,则当你于此阶段内手牌数变化之前/有角色死亡之前需要使用【杀】时,你可以使用无对应实体牌的【杀】。',
cihuai:'刺槐',
cihuai_info:'出牌阶段开始时,若你的手牌中没有【杀】,则你可以展示你的手牌,视为对一名角色使用一张【杀】。',
gongao_info:'锁定技,当一名角色死亡后,你增加一点体力上限,回复一点体力。',
juyi:'举义',
juyi_info:'觉醒技,准备阶段开始时,若你已受伤且体力上限大于存活角色数,你须将手牌摸至体力上限,然后获得技能〖崩坏〗和〖威重〗。',
weizhong:'威重',
weizhong_info:'锁定技,当你的体力上限增加或减少时,你摸一张牌。',
taichen_info:'出牌阶段限一次,你可以失去1点体力,视为对一名角色使用一张【杀】。(不计入出牌阶段的使用次数限制)',
manjuan_info:'其他角色的牌因弃置而进入弃牌堆后,你可以弃置一张花色与之不同的牌,然后获得此牌。',
xinmanjuan:'漫卷',
xinmanjuan_info:'锁定技,当你不因【漫卷】或【醉乡】而获得牌时,你将此牌置入弃牌堆。然后若此时处于你的回合内,则你可以从弃牌堆中选择获得一张与此牌点数相同的其他牌。',
zuixiang_info:'限定技,准备阶段开始时,你可以展示牌堆顶的3张牌并置于你的武将牌上。你不能使用或打出与该些牌同类的牌,所有同类牌对你无效。之后的每个准备阶段,你须重复展示一次,直到这些牌中任意两张点数相同。然后,你获得这些牌。',
naman_info:'当其他角色打出的【杀】进入弃牌堆时,你可以获得之。',
xiemu_info:'出牌阶段限一次,你可以弃置一张【杀】并选择一个势力。若如此做,直到你的下回合开始时,当你成为该势力的其他角色使用的黑色牌的目标后,你摸两张牌。',
oldxiemu_info:'当你成为其他角色使用的黑色牌的目标后,你可以弃置一张【杀】,然后摸两张牌。',
spmengjin_info:'当你使用【杀】指定目标后,你可以弃置目标角色的一张牌。',
fenxun_info:'出牌阶段限一次,你可以弃置一张牌并选择一名其他角色,你于本回合内至其的距离视为1。',
yingbin_info:'锁定技,有“咒”的角色使用与“咒”花色相同的牌时,你摸一张牌;当你因同一名角色的同一张“咒”的效果摸第二张牌时,移去该“咒”。',
zhoufu_info:'出牌阶段限一次,你可以将一张手牌置于一名没有“咒”的其他角色的武将牌旁,称为“咒”。当有“咒”的角色判定时,其改为将“咒”作为判定牌;一名角色的回合结束时,若有角色于此回合因判定而移除过“咒”,则你令这些角色各失去1点体力。',
yanzheng_info:'若你的手牌数大于你的体力值,则你可以将你装备区内的牌当作【无懈可击】使用。',
kuiwei_info:'结束阶段开始时,你可以摸2+X张牌并记录X,然后将你的武将牌翻面(X为场上所有角色装备区内武器牌数目之和)。你的下个摸牌阶段开始时,你弃置X张牌。',
tongji_info:'锁定技。若你的手牌数大于你的体力值,则攻击范围包含你的其他角色使用【杀】时不能指定你以外的角色为目标。',
wangzun_info:'其他角色的准备阶段开始时,你可以摸一张牌。若如此做,该角色此回合的手牌上限-1。然后你不能再发动〖妄尊〗直到回合开始。',
kaikang_info:'当一名角色成为【杀】的目标后,若你至该角色的距离为1,你可以摸一张牌。若如此做,你交给其一张牌并展示之。若为装备牌,该角色可以使用此牌。',
liangzhu_info:'当一名角色于其出牌阶段内回复体力时,你可以选择一项:1、摸一张牌;2、令该角色摸两张牌。',
mingshi_info:'当你受到伤害时,若伤害来源的体力值大于你,你可以弃置一张黑色手牌,令伤害值-1。',
lirang_info:'当你的牌因弃置而置入弃牌堆后,你可以将其中的任意张牌交给其他角色。',
moukui_info:'当你使用【杀】指定目标后,你可以选择一项:摸一张牌,或弃置其一张牌。若如此做,当此【杀】被【闪】抵消时,目标角色弃置你的一张牌。 ',
qiangwu_info:'出牌阶段,你可以进行判定。若如此做,直到回合结束,你使用点数小于判定结果的【杀】时不受距离限制,且你使用点数大于判定结果的【杀】时不计入出牌阶段的使用次数限制。',
shenxian_info:'每名角色的回合限一次,你的回合外,当有其他角色因弃置而失去基本牌时,你可以摸一张牌。',
oldshenxian_info:'你的回合外,每当有其他角色因弃置而失去基本牌时,你可以摸一张牌。',
qiluan_info:'一名角色的回合结束时,你可以摸3X+Y张牌。(X为你本回合内杀死过的角色数,Y为本回合内其他角色杀死过的角色数)',
//qiluan_info_guozhan:'一名角色的回合结束时,若你于回合内杀死过角色,则你可以摸三张牌。',
zhendu_info:'一名角色的出牌阶段开始时,你可以弃置一张手牌,视为该角色使用了一张【酒】。若该角色不是你,你对其造成一点伤害。',
//zhendu_info_guozhan:'其他角色的出牌阶段开始时,你可以弃置一张手牌,视为该角色使用了一张【酒】。若如此做,你对其造成一点伤害。',
shangyi_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,然后弃置其中的一张黑色牌。',
zniaoxiang_info:'锁定技,当你使用【杀】指定目标后,你令目标角色响应此【杀】所需要使用的【闪】的数目+1。',
shoucheng_info:'当一名其他角色于其回合外失去手牌时,若其没有手牌,则你可令该角色摸一张牌。',
shengxi_info:'弃牌阶段开始时,若你本回合内未造成过伤害,则你可以摸两张牌。',
hengzheng_info:'摸牌阶段开始时,若你的体力值为1或你没有手牌,则你可以放弃摸牌,改为获得每名其他角色区域内的一张牌。',
cunsi_info:'限定技,出牌阶段,你可以将所有手牌交给一名男性角色。该角色获得技能【勇决】,然后你将武将牌翻面。',
yongjue_info:'每回合限一次。当其他角色于回合内使用的【杀】结算完成后,若你不是此【杀】的目标角色,则你可以获得之。',
guixiu_info:'当你成为【杀】的目标后,若你的手牌数小于体力值,则你可以摸一张牌。',
fenming_info:'结束阶段开始时,若你处于横置状态,你可以弃置所有处于横置状态的角色的各一张牌。',
duanxie_info:'出牌阶段限一次,你可以令一名其他角色横置,若如此做,你横置。',
xiaoguo_info:'其他角色的结束阶段开始时,你可以弃置一张基本牌,令该角色选择一项:1.弃置一张装备牌,然后你摸一张牌;2.受到你对其造成的1点伤害。',
sijian_info:'当你失去最后的手牌时,你可以弃置一名其他角色的一张牌。',
suishi_info:'当其他角色进入濒死状态时,伤害来源可以令你摸一张牌;当其他角色死亡时,伤害来源可以令你失去1点体力',
quji_info:'出牌阶段限一次,你可以弃置X张牌(X为你已损失的体力值),然后令至多X名已受伤的角色各回复1点体力。若你以此法弃置的牌中有黑色牌,你失去一点体力。',
junbing_info:'一名角色的结束阶段开始时,若其手牌数不大于1,该角色可以摸一张牌。若如此做,该角色将所有手牌交给你,然后你交给其等量的牌。',
xiongyi_info:'限定技,出牌阶段,你可以选择至多三名角色,这些角色各摸三张牌;若你选择的角色数不超过2,你回复1点体力',
xiongyi_info_guozhan:'限定技,出牌阶段,你可以令与你势力相同的所有角色各摸三张牌,然后若你的势力是角色最少的势力(或之一),则你回复1点体力。',
shenzhi_info:'准备阶段开始时,你可以弃置所有手牌。若你以此法弃置的牌数不小于X,你回复1点体力(X为你的体力值)。',
shushen_info:'当你回复1点体力时,你可以令一名其他角色选择回复1点体力或摸两张牌。',
wuji_info:'觉醒技,结束阶段开始时,若你于此回合内造成过3点或更多伤害,你加1点体力上限并回复1点体力,失去〖虎啸〗,然后从场上、牌堆或弃牌堆中获得【青龙偃月刀】',
xueji_info:'出牌阶段限一次,你可以弃置一张红色牌,然后选择至多X名角色,横置这些角色并对其中一名角色造成1点火焰伤害。(X为你已损失的体力值且至少为1)',
huxiao_info:'锁定技,当你造成火属性伤害时,该角色摸一张牌。然后,你于此回合内对其使用牌没有次数限制。',
aocai_info:'当你于回合外需要使用或打出一张基本牌时,你可以观看牌堆顶的两张牌。若你观看的牌中有此牌,你可以使用打出之。',
hongyuan_info:'摸牌阶段,你可以少摸一张牌并指定至多两名其他角色。若如此做,这些角色各摸一张牌。',
hongyuan_info_combat:'摸牌阶段,你可以少摸一张牌。若如此做,其他友方角色各摸一张牌。',
huanshi_info:'一名角色的判定牌生效前,你可令其观看你的手牌。若如此做,该角色选择你的一张牌,你打出此牌代替之。',
mingzhe_info:'当你于回合外使用或打出红色牌,或因弃置失去一张红色牌后,你可以摸一张牌。',
duwu_info:'出牌阶段,你可以弃置X张牌对你攻击范围内的一名其他角色造成1点伤害(X为该角色的体力值)。若该角色因此法进入濒死状态,则你于濒死状态结算后失去1点体力,且本回合不能再发动〖黩武〗。',
tianming_info:'当你成为【杀】的目标时,你可以弃置两张牌(不足则全弃,无牌则不弃),然后摸两张牌;若此时全场体力值最多的角色仅有一名且不是你,该角色也可以如此做。',
mizhao_info:'出牌阶段限一次,你可以将所有手牌交给一名其他角色。若如此做,你令该角色与你指定的另一名有手牌的角色拼点,视为拼点赢的角色对没赢的角色使用一张【杀】。',
yuanhu_info:'结束阶段开始时,你可以将一张装备牌置于一名角色的装备区里,然后根据此装备牌的类型执行以下对应效果。武器牌:弃置该角色距离1以内的一名角色区域中的一张牌;防具牌:该角色摸一张牌;坐骑牌:该角色回复1点体力。',
lihun_info:'出牌阶段限一次,你可以弃置一张牌并选择一名其他男性角色。若如此做,你将武将牌翻面并获得其所有手牌。出牌阶段结束时,你交给其X张牌。(X为该角色的体力值)',
chongzhen_info:'当你发动〖龙胆〗使用或打出一张牌时,你可以获得对方的一张手牌。',
bifa_info:'结束阶段开始时,你可以将一张手牌移出游戏并指定一名其他角色。该角色的准备阶段开始时,其观看你移出游戏的牌并选择一项:交给你一张与此牌类型相同的手牌并获得此牌;或将此牌置入弃牌堆,然后失去1点体力。',
songci_info:'出牌阶段,你可以选择一项:令一名手牌数小于其体力值的角色摸两张牌;或令一名手牌数大于其体力值的角色弃置两张牌。每局游戏每名角色限一次。',
yongsi_info:'锁定技,摸牌阶段,你多摸X张牌。弃牌阶段开始时,你弃置X张牌。(X为场上势力数)',
yicong_info:'锁定技,当你的体力值大于2时,你计算与其他角色的距离时-1;当你的体力值不大于2时,其他角色计算与你的距离时+1。',
baobian_info:'锁定技,若你的体力值为3或更少,你视为拥有技能〖挑衅〗;若你的体力值为2或更少;你视为拥有技能〖咆哮〗;若你的体力值为1,你视为拥有技能〖神速〗。',
bingzhao:'秉诏',
bingzhao_info:'主公技,游戏开始时,你选择一个其他势力。当你对该势力的角色发动〖骨疽〗时,其可令你额外摸一张牌。',
sp_gongsunzan:'SP公孙瓒',
sp_simazhao:'SP司马昭',
sp_wangyuanji:'SP王元姬',
sp_xinxianying:'SP辛宪英',
sp_liuxie:'SP刘协',
spyicong_info:'弃牌阶段结束时,你可以将任意张牌置于你的武将牌上,称为「扈」。每有一张「扈」,其他角色与你计算距离时便+1。',
spyicong:'义从',
sptuji:'突骑',
sptuji_info:'准备开始时,你将所有「扈」置于弃牌堆,然后你本回合内计算与其他角色的距离时-X。若X不大于1,你摸一张牌。(X为以此法进入弃牌堆的「扈」的数量)',
sphuangen:'皇恩',
sphuangen_info:'一名角色使用锦囊牌指定目标时,若此牌的目标数大于1,则你可以令此牌对其中的至多X个目标无效,然后摸一张牌。(X为你的体力值)',
sphantong:'汉统',
sphantong_gain:'汉统',
sphantong_info:'当你的牌因弃牌阶段的游戏规则要求而进入弃牌堆后,你可以将这些牌置于你的武将牌上,称为「诏」。一名角色的回合开始时,你可以弃置一张「诏」并获得〖护驾〗/〖激将〗/〖救援〗/〖血裔〗中的一个技能直至当前回合结束。',
spzhaoxin:'昭心',
spzhaoxin_info:'摸牌阶段结束时,你可以展示所有手牌,然后视为使用一张【杀】。',
splanggu:'狼顾',
splanggu_rewrite:'狼顾',
splanggu_info:'当你受到有来源的伤害后,你可以进行判定(此判定结果生效前,你可以打出一张手牌替换判定牌)。然后你可以观看伤害来源的手牌并弃置其中的任意张与判定结果花色相同的牌。',
spfuluan:'扶乱',
spfuluan_info:'出牌阶段限一次,你可以弃置三张花色相同的牌并选择攻击范围内的一名角色。若如此做,该角色翻面且你不能使用【杀】直到回合结束',
spshude:'淑德',
spshude_info:'结束阶段开始时,你可以将手牌补至体力上限。',
spmingjian:'明鉴',
spmingjian_info:'一名角色的回合开始时,你可以选择一项:①弃置一张牌,然后其跳过本回合的判定阶段。②将一张手牌置于其武将牌上,然后其本回合内进行判定时不触发「判定结果生效前」的时机,且其回合结束时将此牌置入弃牌堆。',
spyinzhi:'隐智',
spyinzhi_info:'当你受到1点伤害后,你可以展示牌堆顶的两张牌。若其中有黑桃牌,则你可以进行至多X次「令一名角色获得伤害来源的一张手牌」的步骤,然后获得其余的牌。(X为其中黑桃牌的数量)',
wangshuang:'王双',
spzhuilie:'追猎',
spzhuilie2:'追猎',
spzhuilie_info:'锁定技,你使用【杀】无距离限制;当你使用【杀】指定目标后,若其不在你的攻击范围内,此【杀】不计入使用次数限制且你判定。若判定结果为武器牌或坐骑牌,此【杀】的伤害基数改为X(X为其体力值)。否则你失去1点体力。',
sunshao:'孙邵',
bizheng:'弼政',
bizheng_info:'摸牌阶段结束时,你可以令一名其他角色摸两张牌。然后,若你的手牌数大于体力上限,你弃置两张牌。若其的手牌数大于体力上限,其弃置两张牌。',
yidian:'佚典',
yidian_info:'当你使用牌选择目标时,若弃牌堆中没有与此牌名称相同的牌,则你可以为此牌增加一个目标(无距离限制)。',
sp_zhanghe:'SP张郃',
yuanlve:'远略',
yuanlve_info:'出牌阶段限一次,你可以将一张非装备牌交给一名角色,然后该角色可以使用该牌并令你摸一张牌。',
xunchen:'荀谌',
fenglve:'锋略',
fenglve2:'锋略',
fenglve_info:'出牌阶段开始时,你可以与一名角色拼点,若你赢,该角色将其区域内的各一张牌交给你;若你没赢,你交给其一张牌。拼点结算后你可以令其获得你拼点的牌。',
mouzhi:'谋识',
mouzhi2:'谋识',
mouzhi_info:'出牌阶段限一次,你可以将一张手牌交给一名角色,若如此做,当其于其下回合的出牌阶段内对一名角色造成伤害后,若是此阶段其第一次对该角色造成伤害,你摸一张牌。',
sp_shenpei:'SP审配',
gangzhi:'刚直',
gangzhi_info:'锁定技,当你即将受到或造成伤害时,你防止此伤害,改为受到伤害的角色失去等量的体力。',
beizhan:'备战',
beizhan2:'备战',
beizhan_info:'结束阶段,你可以令一名角色将手牌摸至体力上限(至多为5)。其下个回合开始时,若其手牌数为全场最多,则其此回合内使用的牌不能指定其他角色为目标。',
gaolan:'高览',
xiying:'袭营',
xiying2:'袭营',
xiying_info:'出牌阶段开始时,你可以弃置一张牌,然后令所有其他角色依次选择一项:弃置一张牌,或本回合内不能使用或打出牌。',
re_panfeng:'潘凤',
xinkuangfu:'狂斧',
xinkuangfu_info:'出牌阶段限一次,你可选择:1,弃置装备区里的一张牌,你使用无对应实体牌的普【杀】。若此【杀】造成伤害,你摸两张牌。2,弃置一名其他角色装备区里的一张牌,你使用无对应实体牌的普【杀】。若此【杀】未造成伤害,你弃置两张牌。',
old_liuzan:'手杀留赞',
refenyin:'奋音',
refenyin_info:'锁定技,你的回合内,当一张牌进入弃牌堆后,若本回合内没有过与此牌花色相同的卡牌进入过弃牌堆,则你摸一张牌。',
liji:'力激',
liji_info:'出牌阶段限X次,你可以弃置一张牌并对一名其他角色造成1点伤害。(X为本回合内进入过弃牌堆的卡牌数除以8,若场上人数小于5则改为除以4,向下取整)',
xinlianji:'连计',
xinlianji_info:'出牌阶段限一次,你可以弃置一张手牌,令其使用牌堆中的一张随机武器牌,然后选择一项:对你指定的一名角色使用【杀】,或令你将其装备区里的武器牌交给任意角色。',
xinmoucheng:'谋逞',
xinmoucheng_info:'觉醒技,准备阶段,若你已经发动了3次以上的〖连计〗,则你失去〖连计〗并获得〖矜功〗。',
xinjingong:'矜功',
xinjingong_info:'出牌阶段限一次,你可以将一张【杀】或装备牌当做三张随机锦囊牌中的一张使用。',
xingdaorong:'邢道荣',
xuxie:'虚猲',
xuxie_info:'出牌阶段开始时,你可以减1点体力上限并选择所有与你距离为1的角色,弃置这些角色的各一张牌或令这些角色各摸一张牌。出牌阶段结束时,若你的体力上限为全场最少,则你加1点体力上限。',
sp_default:"常规",
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",
sp_longzhou:"同舟共济",
sp_zizouqi:"自走棋",
sp_sbfm:'上兵伐谋',
sp_shengun:'三国奇人传',
sp_zhongdan:"忠胆英杰",
sp_star:"桌游志·SP",
sp_guozhan:"国战",
sp_guozhan2:"国战移植",
sp_others:"其他",
sp_single:'新1v1',
sp_guansuo:'花关索传',
sp_sticker:'桌游志·贴纸',
sp_guandu:'官渡之战',
},
};
});