0;
if(bool1&&bool2&&target.hp<=evt.num+1) return 2;
if(bool1) return 0;
return 1;
});
'step 1'
if(result.index==2){
trigger.taomie_player=trigger.player;
trigger.player.addTempSkill('taomie4');
}
if(result.index!=1){
trigger.num++;
}
if(result.index!=0&&trigger.player.countGainableCards(player,'hej')>0){
player.gainPlayerCard(trigger.player,'hej',true);
}
else event.finish();
'step 2'
var card=result.cards[0];
if(card&&player.getCards('h').contains(card)&&game.hasPlayer(function(current){
return current!=player&¤t!=trigger.player;
})){
event.card=card;
player.chooseTarget('是否将'+get.translation(card)+'交给一名其他角色?',function(card,player,target){
return target!=player&&target!=_status.event.getTrigger().player;
}).set('ai',function(target){
var player=_status.event.player;
var card=_status.event.getParent().card;
if(target.hasSkillTag('nogain')||!player.needsToDiscard()||(get.tag(card,'damage')&&player.hasValueTarget(card,null,false)&&get.effect(_status.event.getTrigger().player,card,null,false)>0)) return 0;
return get.attitude(player,target)/(1+target.countCards('h'));
});
}
else event.finish();
'step 3'
if(result.bool){
var target=result.targets[0];
player.line(target);
player.give(card,target);
}
},
mod:{
inRangeOf:function(from,to){
if(from.hasMark('taomie')) return true;
},
inRange:function(from,to){
if(to.hasMark('taomie')) return true;
},
},
intro:{
content:'mark',
},
ai:{
effect:{
player:function(card,player,target){
if(target&&get.tag(card,'damage')&&target.hasMark('taomie')){
if(player.hasSkillTag('jueqing',false,target)) return;
if(get.attitude(player,target)>0){
return 0.7;
}
return 1.2;
}
},
},
},
},
taomie1:{
audio:true,
trigger:{
player:'damageEnd',
source:'damageSource',
},
logTarget:function(trigger,player){
if(player==trigger.player) return trigger.source;
return trigger.player;
},
filter:function(event,player){
var target=lib.skill.taomie1.logTarget(event,player);
return target&&target.isIn()&&!target.hasMark('taomie');
},
check:function(event,player){
var target=lib.skill.taomie1.logTarget(event,player);
if(get.attitude(player,target)>0) return false;
var target0=game.findPlayer(function(current){
return current.hasMark('taomie');
});
if(!target0) return true;
var eff1=0,eff2=0;
player.countCards('h',function(card){
if(!get.tag(card,'damage')) return false;
if(player.hasValueTarget(card,null,true)>0){
if(player.canUse(card,target,null,true)){
var eff=get.effect(target,card,player,player);
if(eff>0) eff1+=eff;
}
if(player.canUse(card,target0,null,true)){
var eff=get.effect(target0,card,player,player);
if(eff>0) eff2+=eff;
}
}
});
return eff1>eff2;
},
prompt2:function(event,player){
var target=lib.skill.taomie1.logTarget(event,player);
var str='令'+get.translation(target)+'获得“讨灭”标记';
if(game.hasPlayer(function(current){
return current.hasMark('taomie');
})) str+=',并移去场上已有的“讨灭”标记';
return str;
},
content:function(){
game.countPlayer(function(current){
var num=current.countMark('taomie');
if(num) current.removeMark('taomie');
});
lib.skill.taomie1.logTarget(trigger,player).addMark('taomie',1);
},
},
taomie2:{audio:true},
taomie3:{audio:true},
taomie4:{
trigger:{
global:['damageAfter','damageCancelled','damageZero'],
player:'dieBegin',
},
forced:true,
popup:false,
charlotte:true,
filter:function(event,player){
return player.hasMark('taomie')&&(event.name=='die'||event.taomie_player==player);
},
content:function(){
player.removeMark('taomie',player.countMark('taomie'));
player.removeSkill('taomie2');
},
},
//铁骑飞
liyong:{
audio:'retishen',
trigger:{player:'shaMiss'},
forced:true,
filter:function(event,player){
return player.isPhaseUsing();
},
content:function(){
trigger.getParent().liyong=true;
player.addTempSkill('liyong2','phaseUseEnd');
},
},
liyong2:{
audio:'retishen',
mark:true,
intro:{
content:'铁骑!强命!加伤!然后掉血嘞…',
},
trigger:{player:'useCardToPlayered'},
forced:true,
filter:function(event,player){
if(!event.card||event.card.name!='sha') return false;
var evt=event.getParent();
if(evt.liyong) return false;
var history=player.getHistory('useCard',function(evt){
return evt.card.name=='sha';
});
var evt2=history[history.indexOf(evt)-1];
return evt2&&evt2.liyong;
},
logTarget:'target',
content:function(){
var target=trigger.target;
target.addTempSkill('fengyin');
trigger.directHit.add(target);
var id=target.playerid;
var map=trigger.customArgs;
if(!map[id]) map[id]={};
if(!map[id].extraDamage) map[id].extraDamage=0;
map[id].extraDamage++;
trigger.getParent().liyong2=true;
},
group:['liyong3','liyong4'],
},
liyong3:{
trigger:{source:'damageSource'},
forced:true,
popup:false,
filter:function(event,player){
return event.card&&event.card.name=='sha'&&
event.player.isIn()&&event.getParent(2).liyong2==true;
},
content:function(){
player.loseHp();
},
},
liyong4:{
trigger:{player:'useCardAfter'},
forced:true,
silent:true,
filter:function(evt,player){
if(!evt.card||evt.card.name!='sha') return false;
if(evt.liyong) return false;
var history=player.getHistory('useCard',function(evt){
return evt.card.name=='sha';
});
var evt2=history[history.indexOf(evt)-1];
return evt2&&evt2.liyong;
},
content:function(){
player.removeSkill('liyong2');
},
},
//韩遂
xinniluan:{
trigger:{global:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player!=event.player&&event.player.isIn()&&event.player.getHistory('useCard',function(evt){
if(evt.targets&&evt.targets.length){
var targets=evt.targets.slice(0);
while(targets.contains(event.player)) targets.remove(event.player);
return targets.length>0;
}
return false;
}).length>0&&(_status.connectMode||player.hasSha());
},
content:function(){
'step 0'
player.chooseToUse({
logSkill:'xinniluan',
preTarget:trigger.player,
prompt:'是否发动【逆乱】,对'+get.translation(trigger.player)+'使用一张【杀】?',
filterCard:function(card,player){
return get.name(card)=='sha'&&lib.filter.filterCard.apply(this,arguments);
},
filterTarget:function(card,player,target){
return target==_status.event.preTarget&&lib.filter.targetEnabled.apply(this,arguments);
},
addCount:false,
});
'step 1'
if(result.bool&&player.getHistory('sourceDamage',function(evt){
return evt.getParent(4)==event;
}).length&&trigger.player.countDiscardableCards(player,'he')>0) player.discardPlayerCard(trigger.player,true,'he').boolline=true;
},
},
xiaoxi_hansui:{
audio:2,
enable:['chooseToRespond','chooseToUse'],
filterCard:function(card,player){
return get.color(card)=='black';
},
position:'hse',
viewAs:{name:'sha'},
viewAsFilter:function(player){
if(!player.countCards('hse',{color:'black'})) return false;
},
prompt:'将一张黑色牌当杀使用或打出',
check:function(card){return 4.5-get.value(card)},
ai:{
skillTagFilter:function(player){
if(!player.countCards('hes',{color:'black'})) return false;
},
respondSha:true,
}
},
//胡车儿
daoji:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.countCards('he',function(card){
return get.type(card)!='basic';
})&&game.hasPlayer(function(target){
return target!=player&&target.countCards('e')>0;
});
},
filterCard:function(card){
return get.type(card)!='basic';
},
position:'he',
filterTarget:function(card,player,target){
return target!=player&&target.countCards('e')>0;
},
check:function(card){
var player=_status.event.player;
if(game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)<0&&get.damageEffect(current,player,player)>0&¤t.getEquip(1);
})) return 8-get.value(card);
return 5-get.value(card)
},
content:function(){
'step 0'
player.gainPlayerCard(target,'e',true).set('ai',function(button){
var card=button.link;
var player=_status.event.player;
if(get.subtype(card)=='equip1'&&get.damageEffect(_status.event.target,player,player)>0) return 6+get.value(card);
return get.value(card);
});
'step 1'
if(!result||!result.bool||!result.cards||!result.cards.length){
event.finish();
return;
}
var card=result.cards[0];
event.card=card;
if(player.getCards('h').contains(card)&&get.type(card)=='equip') player.chooseUseTarget(card,true).nopopup=true;
'step 2'
if(get.subtype(card,false)=='equip1') target.damage();
},
ai:{
order:6,
result:{
target:function(player,current){
if(get.damageEffect(current,player,player)>0&¤t.getEquip(1)) return -1.5;
return -1;
},
},
},
},
//司马师夫妇
//垃圾
baiyi:{
enable:'phaseUse',
usable:1,
filterTarget:lib.filter.notMe,
selectTarget:2,
limited:true,
skillAnimation:false,
//animationColor:'thunder',
filter:function(event,player){
return player.isDamaged()&&game.players.length>2;
},
multitarget:true,
multiline:true,
changeSeat:true,
contentBefore:function(){
player.$fullscreenpop('败移','thunder');
},
content:function(){
player.awakenSkill('baiyi');
game.broadcastAll(function(target1,target2){
game.swapSeat(target1,target2);
},targets[0],targets[1])
},
ai:{
order:1,
result:{
target:function(player,target){
if(player.hasUnknown()&&target!=player.next&&target!=player.previous) return 0;
var distance=Math.pow(get.distance(player,target,'absolute'),2);
if(!ui.selected.targets.length) return distance;
var distance2=Math.pow(get.distance(player,ui.selected.targets[0],'absolute'),2);
return Math.min(0,distance-distance2);
}
},
},
},
jinglve:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
if(player.hasSkill('jinglve2')) return false;
return game.hasPlayer(function(current){
return current!=player&¤t.countCards('h')>0;
});
},
filterTarget:function(card,player,target){
return target!=player&&target.countCards('h')>0;
},
content:function(){
'step 0'
if(!player.storage.jinglve4) player.storage.jinglve4=[];
player.storage.jinglve4.add(target);
player.chooseButton(['选择一张牌作为「死士」',target.getCards('h')],true).set('ai',function(button){
var target=_status.event.getParent().target;
var card=button.link;
var val=target.getUseValue(card);
if(val>0) return val;
return get.value(card);
});
'step 1'
if(result.bool){
player.storage.jinglve2=target;
player.storage.jinglve3=result.links[0];
player.addSkill('jinglve2');
}
},
ai:{
order:12,
result:{
target:-1,
},
},
},
jinglve2:{
mark:true,
intro:{
name:'死士',
mark:function(dialog,content,player){
dialog.addText('记录目标');
dialog.add([content]);
if(player==game.me||player.isUnderControl()){
dialog.addText('死士牌');
dialog.add([player.storage.jinglve3]);
}
},
},
onremove:function(player){
delete player.storage.jinglve2;
delete player.storage.jinglve3;
},
trigger:{global:['dieEnd','loseEnd','gainEnd']},
silent:true,
lastDo:true,
charlotte:true,
filter:function(event,player){
if(event.name!='gain'&&event.player!=player.storage.jinglve2) return false;
return event.name=='die'||(event.cards.contains(player.storage.jinglve3)&&(event.name=='gain'||event.position!=ui.ordering&&event.position!=ui.discardPile));
},
content:function(){
player.removeSkill('jinglve2');
},
group:'jinglve3',
},
jinglve3:{
audio:'jinglve',
trigger:{global:['loseAfter','useCard','phaseAfter','cardsDiscardAfter','loseAsyncAfter']},
filter:function(event,player){
if(event.player&&event.player!=player.storage.jinglve2) return false;
var card=player.storage.jinglve3;
if(event.name=='phase') return event.player.getCards('hej').contains(card);
if(event.name=='useCard') return event.cards.contains(card);
return (get.position(card,true)=='d'&&event.getd().contains(card));
},
forced:true,
charlotte:true,
logTarget:'player',
content:function(){
if(trigger.name=='useCard'){
trigger.all_excluded=true;
trigger.targets.length=0;
}
else{
if(trigger.name=='phase'){
player.gain(player.storage.jinglve3,trigger.player,'giveAuto','bySelf');
}
else if(get.position(player.storage.jinglve3,true)=='d') player.gain(player.storage.jinglve3,'gain2');
}
player.removeSkill('jinglve2');
},
},
shanli:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
juexingji:true,
forced:true,
skillAnimation:true,
animationColor:'thunder',
filter:function(event,player){
return player.storage.baiyi&&player.getStorage('jinglve4').length>1;
},
content:function(){
'step 0'
player.awakenSkill('shanli');
player.loseMaxHp();
player.chooseTarget(true,'选择【擅立】的目标').set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(target==game.me||target.isUnderControl()&&target.isOnline()) return 2*att;
return att;
});
'step 1'
var target=result.targets[0];
event.target=target;
player.line(target,'green');
game.log(player,'拥立',target);
var list=[];
if(!_status.characterlist){
if(_status.connectMode) var list=get.charactersOL();
else{
var list=[];
for(var i in lib.character){
if(lib.filter.characterDisabled2(i)||lib.filter.characterDisabled(i)) continue;
list.push(i);
}
}
game.countPlayer2(function(current){
list.remove(current.name);
list.remove(current.name1);
list.remove(current.name2);
if(current.storage.rehuashen&¤t.storage.rehuashen.character) list.removeArray(current.storage.rehuashen.character)
});
_status.characterlist=list;
}
_status.characterlist.randomSort();
var chara=[];
var skills=[];
for(var i of _status.characterlist){
if(i=='key_yuri') continue;
var character=lib.character[i];
if(character&&character[3]){
for(var j of character[3]){
if(skills.contains(j)||j=='yuri_wangxi'||target.hasSkill('j')) continue;
var info=get.info(j);
if(info&&info.zhuSkill){
skills.add(j);
chara.add(i);
continue;
}
}
}
if(skills.length>=3) break;
}
if(!skills.length){event.finish();return}
event.chara=chara;
event.skills=skills;
player.chooseControl(skills).set('dialog',['选择令'+get.translation(target)+'获得一个技能',[chara,'character']]);
'step 2'
target.addSkillLog(result.control);
target.storage.zhuSkill_shanli=[result.control];
target.setAvatarQueue(target.name1||target.name,[event.chara[event.skills.indexOf(result.control)]]);
},
},
hongyi:{
audio:2,
enable:'phaseUse',
usable:1,
//filter:function(event,player){
// return player.countCards('he')>=Math.min(2,game.dead.length);
//},
//selectCard:function(){
// return Math.min(2,game.dead.length);
//},
//filterCard:true,
filterTarget:lib.filter.notMe,
check:function(card){
var num=Math.min(2,game.dead.length);
if(!num) return 1;
if(num==1) return 7-get.value(card);
return 5-get.value(card);
},
position:'he',
content:function(){
player.addTempSkill('hongyi2',{player:'phaseBeginStart'});
player.storage.hongyi2.add(target);
player.markSkill('hongyi2');
},
ai:{
order:1,
result:{
target:function(player,target){
if(target.hasJudge('lebu')) return -0.5;
return -1-target.countCards('h');
},
},
},
},
hongyi2:{
audio:'hongyi',
trigger:{global:'damageBegin1'},
charlotte:true,
forced:true,
logTarget:'source',
filter:function(event,player){
return player.storage.hongyi2.contains(event.source);
},
content:function(){
'step 0'
trigger.source.judge();
'step 1'
if(result.color=='black') trigger.num--;
else trigger.player.draw();
},
onremove:true,
intro:{
content:'已选中$为技能目标',
},
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
},
},
requanfeng:{
audio:'quanfeng',
enable:'chooseToUse',
limited:true,
skillAnimation:true,
animationColor:'thunder',
filter:function(event,player){
return event.type=='dying'&&player==event.dying;
},
content:function(){
player.awakenSkill('requanfeng');
player.gainMaxHp(2);
player.recover(4);
},
ai:{
save:true,
skillTagFilter:function(player,tag,arg){
return player==arg;
},
order:10,
result:{
player:1,
},
},
group:'requanfeng_gain',
},
requanfeng_gain:{
audio:'quanfeng',
trigger:{global:'die'},
filter:function(event,player){
return player.hasSkill('hongyi')&&event.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
var info=get.info(skill);
return info&&!info.hiddenSkill&&!info.zhuSkill&&!info.charlotte;
}).length>0;
},
logTarget:'player',
skillAnimation:true,
animationColor:'thunder',
prompt2:'(限定技)失去技能【劝封】,并获得该角色武将牌上的所有技能,然后加1点体力上限并回复1点体力',
content:function(){
player.awakenSkill('requanfeng');
player.removeSkill('hongyi');
var skills=trigger.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
var info=get.info(skill);
return info&&!info.hiddenSkill&&!info.zhuSkill&&!info.charlotte;
});
if(skills.length){
for(var i of skills) player.addSkillLog(i);
game.broadcastAll(function(list){
game.expandSkills(list);
for(var i of list){
var info=lib.skill[i];
if(!info) continue;
if(!info.audioname2) info.audioname2={};
info.audioname2.yanghuiyu='quanfeng';
}
},skills);
}
player.gainMaxHp();
player.recover();
}
},
quanfeng:{
audio:2,
trigger:{global:'die'},
filter:function(event,player){
return event.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
var info=get.info(skill);
return info&&!info.juexingji&&!info.hiddenSkill&&!info.zhuSkill&&!info.charlotte&&!info.limited&&!info.dutySkill;
}).length>0;
},
logTarget:'player',
skillAnimation:true,
limited:true,
forced:true,
animationColor:'thunder',
content:function(){
'step 0'
player.awakenSkill('quanfeng');
var list=trigger.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
var info=get.info(skill);
return info&&!info.juexingji&&!info.hiddenSkill&&!info.zhuSkill&&!info.charlotte&&!info.limited&&!info.dutySkill;
});
if(list.length==1) event._result={control:list[0]};
else player.chooseControl(list).set('prompt','选择获得'+get.translation(trigger.player)+'的一个技能').set('forceDie',true).set('ai',function(){
return list.randomGet();
});
'step 1'
player.addSkillLog(result.control);
game.broadcastAll(function(skill){
var list=[skill];game.expandSkills(list);
for(var i of list){
var info=lib.skill[i];
if(!info) continue;
if(!info.audioname2) info.audioname2={};
info.audioname2.yanghuiyu='quanfeng';
}
},result.control);
player.gainMaxHp();
player.recover();
},
},
//手杀朱然
//设计师你改技能有瘾🐴
mobiledanshou:{
trigger:{global:'phaseJieshuBegin'},
audio:2,
direct:true,
filter:function(event,player){
if(player==event.player) return false;
var num=event.player.getHistory('useCard',function(evt){
return evt.targets.contains(player);
}).length;
return num==0||event.player.isIn()&&num<=player.countCards('he');
},
content:function(){
'step 0'
var num=trigger.player.getHistory('useCard',function(evt){
return evt.targets.contains(player);
}).length;
event.num=num;
if(num==0){
if(player.hasSkill('mobiledanshou')) event._result={bool:true};
else player.chooseBool('是否发动【胆守】摸一张牌?',lib.translate.mobiledanshou_info);
}
else event.goto(2);
'step 1'
if(result.bool){
player.logSkill('mobiledanshou');
player.draw();
}
event.finish();
'step 2'
player.chooseToDiscard(num,get.prompt('mobiledanshou',trigger.player),'弃置'+get.translation(num)+'张牌并对其造成1点伤害','he').set('ai',function(card){
if(!_status.event.goon) return 0;
var num=_status.event.getParent().num;
if(num==1) return 8-get.value(card);
if(num==2) return 6.5-get.value(card);
return 5-get.value(card);
}).set('goon',get.damageEffect(trigger.player,player,player)>0).logSkill=['mobiledanshou',trigger.player];
'step 3'
if(result.bool){
player.addExpose(0.2);
trigger.player.damage();
}
},
},
//丁原
//程序员和设计师至少有一个脑子有坑
beizhu:{
audio:3,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return game.hasPlayer(function(target){
return lib.skill.beizhu.filterTarget(null,player,target);
});
},
filterTarget:function(card,player,target){
return target!=player&&target.countCards('h')>0;
},
content:function(){
'step 0'
player.addTempSkill('beizhu_draw');
player.viewHandcards(target);
'step 1'
var cards=target.getCards('h','sha');
if(cards.length){
event.cards=cards;
event.goto(5);
}
else player.discardPlayerCard('he',target,'visible',true);
'step 2'
player.chooseBool('是否令'+get.translation(target)+'获得一张【杀】?').set('choice',get.attitude(player,target)>0);
'step 3'
if(result.bool){
var card=get.cardPile2(function(card){
return card.name=='sha';
});
if(card) target.gain(card,'gain2');
}
else event.finish();
'step 4'
game.updateRoundNumber();
event.finish();
'step 5'
var hs=target.getCards('h');
cards=cards.filter(function(card){
return hs.contains(card)&&get.name(card,target)=='sha'&&target.canUse({
name:'sha',
isCard:true,
cards:[card],
},player,false);
});
if(cards.length){
var card=cards.randomRemove(1)[0];
target.useCard(player,false,card).card.beizhu=true;
event.redo();
}
},
ai:{
order:7,
threaten:1.14+5.14,
result:{
player:function(player,target){
var eff=get.effect(target,{name:'guohe_copy2'},player,player);
var cards=target.getCards('h',{name:'sha'});
if(!cards.length) return eff;
return eff/(cards.length+3);
},
},
},
},
beizhu_draw:{
trigger:{player:'damageEnd'},
forced:true,
popup:false,
charlotte:true,
filter:function(event,player){
return event.card&&event.card.beizhu;
},
content:function(){
player.draw(trigger.num);
},
},
//新简雍
xinqiaoshui:{
audio:2,
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) player.addTempSkill('qiaoshui3','phaseUseEnd');
else{
player.addTempSkill('qiaoshui2','phaseUseEnd');
}
},
ai:{
order:function(item,player){
if(player.countCards('h',function(card){
return player.hasValueTarget(card);
})) return 10;
return 1;
},
result:{
target:function(player,target){
if(player.countCards('h',function(card){
return player.hasValueTarget(card);
})){
if(player.hasSkill('qiaoshui3')) return 0;
var nd=!player.needsToDiscard();
if(player.hasCard(function(card){
if(get.position(card)!="h") return false;
var val=get.value(card)
if(nd&&val<0) return true;
if(val<=5){
return card.number>=12;
}
if(val<=6){
return card.number>=13;
}
return false;
})) return -1;
return 0;
}
return -1;
},
},
},
},
xinjyzongshi:{
audio:2,
trigger:{
player:['chooseToCompareAfter','compareMultipleAfter'],
target:['chooseToCompareAfter','compareMultipleAfter']
},
filter:function(event,player){
if(event.preserve) return false;
if(event.name=='compareMultiple') return true;
return !event.compareMultiple;
},
frequent:true,
content:function(){
'step 0'
var str='牌堆顶';
var cards=get.cards();
if(trigger.name=='chooseToCompare'&&trigger.compareMeanwhile){
var result=trigger.result;
var list=[[result.num1[0],result.player]];
list.addArray(result.num2.map(function(card,i){
return [card,result.targets[i]];
}));
list.sort(function(a,b){
return a[0]-b[0];
});
if(list[0][0]trigger.num2&&get.position(trigger.card2,true)=='o'){
str+='/拼点牌';
cards.push(trigger.card2)
}
else if(trigger.num1trigger.num2&&get.position(trigger.card2,true)=='o'){
str+='/拼点牌';
cards.push(trigger.card2);
}
}
}
str+='
';
event.cards=cards;
player.chooseButton(['纵适:选择要获得的牌',str,cards],true).set('ai',get.buttonValue);
'step 1'
if(result.bool){
var draw=result.links[0]==cards[0];
player.gain(result.links,draw?'draw':'gain2').log=false;
game.log(player,'获得了',draw?'牌堆顶的一张牌':result.links);
if(!draw){
cards[0].fix();
ui.cardPile.insertBefore(cards[0],ui.cardPile.firstChild);
game.updateRoundNumber();
}
}
}
},
//通渠张恭
rezhenxing:{
audio:'xinfu_zhenxing',
trigger:{
player:["damageEnd","phaseJieshuBegin"],
},
frequent:true,
content:function(){
'step 0'
event.cards=get.cards(3);
player.chooseButton(['【镇行】:请选择要获得的牌',event.cards]).set('filterButton',function(button){
var cards=_status.event.cards;
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();
},
},
//芙蓉,手杀廖化,手杀曹彰
rejiangchi:{
audio:2,
trigger:{
player:"phaseUseBegin",
},
direct:true,
content:function(){
"step 0"
var list=['弃牌','摸牌','取消'];
if(!player.countCards('he')) list.remove('弃牌');
player.chooseControl(list,function(){
var player=_status.event.player;
if(list.contains('弃牌')){
if(player.countCards('h')>3&&player.countCards('h','sha')>1){
return '弃牌';
}
if(player.countCards('h','sha')>2){
return '弃牌';
}
}
if(!player.countCards('h','sha')){
return '摸牌';
}
return 'cancel2';
}).set('prompt',get.prompt2('rejiangchi'));
"step 1"
if(result.control=='弃牌'){
player.chooseToDiscard(true,'he');
player.addTempSkill('jiangchi2','phaseUseEnd');
player.logSkill('rejiangchi');
}
else if(result.control=='摸牌'){
player.draw();
player.addTempSkill('rejiangchi3','phaseUseEnd');
player.logSkill('rejiangchi');
}
},
},
rejiangchi3:{
mod:{
cardEnabled:function(card){
if(card.name=='sha') return false;
},
},
},
refuli:{
skillAnimation:true,
animationColor:'soil',
audio:2,
unique:true,
limited:true,
enable:'chooseToUse',
mark:true,
filter:function(event,player){
if(event.type!='dying') return false;
if(player!=event.dying) return false;
return true;
},
content:function(){
"step 0"
player.awakenSkill('refuli');
event.num=game.countGroup();
if(event.num>player.hp) player.recover(event.num-player.hp);
"step 1"
if(player.isMaxHp(true)) player.turnOver();
},
ai:{
save:true,
skillTagFilter:function(player,arg,target){
return player==target;
},
result:{
player:10
},
threaten:function(player,target){
if(!target.storage.refuli) return 0.9;
}
},
},
redangxian:{
trigger:{player:'phaseBegin'},
forced:true,
audio:'dangxian',
audioname:['guansuo','xin_liaohua'],
content:function(){
'step 0'
var card=get.discardPile(function(card){
return card.name=='sha';
});
if(card) player.gain(card,'gain2');
'step 1'
game.updateRoundNumber();
var next=player.phaseUse();
event.next.remove(next);
trigger.next.push(next);
},
},
xuewei:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('xuewei'),lib.filter.notMe).set('ai',function(target){
var player=_status.event.player;
if(player==get.zhu(player)&&player.hp<=2) return 0;
return get.attitude(player,target)-4;
}).animate=false;
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('xuewei');
player.addTempSkill('xuewei2',{player:'phaseBegin'});
player.storage.xuewei2=target;
}
},
ai:{
threaten:1.05,
},
},
xuewei2:{
audio:'xuewei',
forced:true,
onremove:true,
trigger:{global:'damageBegin4'},
charlotte:true,
filter:function(event,player){
return event.player==player.storage.xuewei2;
},
logTarget:'player',
content:function(){
player.removeSkill('xuewei2');
trigger.cancel();
player.damage(trigger.num,trigger.source||'nosource');
if(trigger.source&&trigger.source.isIn()) trigger.source.damage(trigger.num,trigger.nature,player);
},
},
liechi:{
trigger:{player:'dying'},
forced:true,
filter:function(event,player){
return event.getParent().name=='damage'&&event.source&&event.source.countCards('he');
},
audio:2,
content:function(){
trigger.source.chooseToDiscard('he',true);
},
},
rejiuchi:{
group:['jiuchi'],
audioname:['re_dongzhuo'],
trigger:{source:'damage'},
forced:true,
popup:false,
//locked:false,
audio:'jiuchi',
filter:function(event,player){
return event.card&&event.card.name=='sha'&&event.getParent(2).jiu==true&&!player.hasSkill('rejiuchi_air');
},
content:function(){
player.logSkill('jiuchi');
player.addTempSkill('rejiuchi_air');
},
subSkill:{
air:{},
},
},
//苏飞,新贾逵
tongqu:{
audio:2,
trigger:{
global:['phaseBefore','dying','phaseDrawBegin2'],
player:['enterGame','phaseZhunbeiBegin'],
},
direct:true,
filter:function(event,player){
if(event.name=='phaseDraw') return event.player.hasMark('tongqu');
if(event.name=='dying') return event.player.hasMark('tongqu');
if(event.name=='phaseZhunbei') return game.hasPlayer(function(current){
return !current.hasMark('tongqu');
});
return !player.hasMark('tongqu')&&(event.name!='phase'||game.phaseNumber==0);
},
content:function(){
'step 0'
if(trigger.name=='phaseDraw'){
player.logSkill('tongqu',trigger.player);
trigger.player.draw('nodelay');
trigger.player.addTempSkill('tongqu2','phaseDrawAfter');
event.finish();
}
else if(trigger.name=='dying'){
player.logSkill('tongqu',trigger.player);
trigger.player.removeMark('tongqu',1);
event.finish();
}
else if(trigger.name=='phaseZhunbei'){
player.chooseTarget(get.prompt2('tongqu'),function(card,player,target){
return !target.hasMark('tongqu');
}).set('ai',function(target){
if(_status.event.player.hp<3) return 0;
return get.attitude(_status.event.player,target);
});
}
else{
player.logSkill('tongqu');
player.addMark('tongqu',1);
event.finish();
}
'step 1'
if(result.bool){
var target=result.targets[0];
player.loseHp();
player.logSkill('tongqu',target);
target.addMark('tongqu',1);
}
},
marktext:'渠',
intro:{content:'mark',name2:'渠'},
},
tongqu2:{
trigger:{player:'phaseDrawEnd'},
forced:true,
silent:true,
filter:function(event,player){
var bool=game.hasPlayer(function(current){
return current!=player&¤t.hasMark('tongqu');
});
return player.countCards('he',function(card){
if(bool) return true;
return lib.filter.cardDiscardable(card,player);
})>0;
},
content:function(){
'step 0'
player.chooseCardTarget({
forced:true,
position:'he',
filterCard:true,
filterTarget:function(card,player,target){
return player!=target&&target.hasMark('tongqu');
},
selectTarget:function(){
if(ui.selected.cards.length&&!lib.filter.cardDiscardable(ui.selected.cards[0],_status.event.player)) return [1,1];
return [0,1];
},
prompt:'弃置一张牌,或将一张牌交给一名有“渠”的其他角色',
ai1:function(card){
var player=_status.event.player;
if(get.name(card)=='du') return 20;
if(get.position(card)=='e'&&get.value(card)<=0) return 14;
if(get.position(card)=='h'&&game.hasPlayer(function(current){
return current!=player&¤t.hasMark('tongqu')&&get.attitude(player,current)>0&¤t.getUseValue(card)>player.getUseValue(card)&¤t.getUseValue(card)>player.getUseValue(card);
})) return 12;
if(game.hasPlayer(function(current){
return current!=player&¤t.hasMark('tongqu')&&get.attitude(player,current)>0;
})){
if(card.name=='wuxie') return 11;
if(card.name=='shan'&&player.countCards('h','shan')>1) return 9
}
return 6/Math.max(1,get.value(card));
},
ai2:function(target){
var player=_status.event.player;
var card=ui.selected.cards[0];
var att=get.attitude(player,target);
if(card.name=='du') return -6*att;
if(att>0){
if(get.position(card)=='h'&&target.getUseValue(card)>player.getUseValue(card)) return 4*att;
if(target.hasUseTarget(card)) return 2*att;
return 1.2*att;
}
return 0;
},
});
'step 1'
if(result.bool){
if(result.targets.length){
event.target=result.targets[0];
player.give(result.cards,event.target);
event.card=result.cards[0];
}
else{
player.discard(result.cards);
event.finish();
}
}
'step 2'
if(target.getCards('h').contains(card)&&get.type(card)=='equip'){
target.chooseUseTarget(card,true);
}
},
},
xinwanlan:{
audio:'wanlan',
trigger:{global:'damageBegin4'},
filter:function(event,player){
return event.player.hp<=event.num&&player.countCards('e')>=1;
},
logTarget:'player',
check:function(event,player){
if(get.attitude(player,event.player)<4) return false;
if(player.countCards('h',function(card){
var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player);
if(mod2!='unchanged') return mod2;
var mod=game.checkMod(card,player,event.player,'unchanged','cardSavable',player);
if(mod!='unchanged') return mod;
var savable=get.info(card).savable;
if(typeof savable=='function') savable=savable(card,player,event.player);
return savable;
})>=1+event.num-event.player.hp) return false;
if(event.player==player||event.player==get.zhu(player)) return true;
return !player.hasUnknown();
},
content:function(){
player.discard(player.getCards('e'));
trigger.cancel();
},
},
zhengjian:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
locked:true,
direct:true,
content:function(){
'step 0'
player.chooseTarget('请选择【诤荐】的目标',lib.translate.zhengjian_info).set('ai',function(target){
if(target.hasSkill('zhengjian_mark')) return 0;
if(player==target) return 0.5;
return get.attitude(_status.event.player,target)*(1+target.countCards('h'));
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('zhengjian',target);
target.addSkill('zhengjian_mark');
}
},
group:'zhengjian_draw',
ai:{
notemp:true,
},
},
zhengjian_draw:{
audio:'zhengjian',
trigger:{player:'phaseBegin'},
forced:true,
filter:function(event){
return game.hasPlayer(function(current){
return current.hasSkill('zhengjian_mark');
});
},
logTarget:function(event){
return game.filterPlayer(function(current){
return current.hasSkill('zhengjian_mark');
});
},
content:function(){
'step 0'
var list=game.filterPlayer(function(current){
return current.countMark('zhengjian_mark')>0;
});
if(list.length>1){
event.delay=true;
game.asyncDraw(list,function(target){
return Math.min(5,target.maxHp,target.countMark('zhengjian_mark'));
});
}
else if(list.length==1) list[0].draw(Math.min(5,list[0].maxHp,list[0].countMark('zhengjian_mark')));
'step 1'
game.countPlayer(function(current){
current.removeSkill('zhengjian_mark');
});
if(event.delay) game.delayx();
},
},
zhengjian_mark:{
trigger:{player:['useCard1','respond']},
silent:true,
firstDo:true,
onremove:true,
charlotte:true,
content:function(){
player.addMark('zhengjian_mark',1,false);
},
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=0;
},
mark:true,
intro:{
content:'已使用/打出过#张牌',
},
},
gaoyuan:{
audio:2,
trigger:{target:'useCardToTarget'},
direct:true,
filter:function(event,player){
if(event.card.name!='sha') return false;
if(player.countCards('he')==0) return false;
return game.hasPlayer(function(current){
return current!=event.player&¤t!=player&&
current.hasSkill('zhengjian_mark')&&lib.filter.targetEnabled(event.card,event.player,current);
});
},
content:function(){
"step 0"
var next=player.chooseCardTarget({
position:'he',
filterCard:lib.filter.cardDiscardable,
filterTarget:function(card,player,target){
var trigger=_status.event;
if(target!=player&&target!=trigger.source){
if(target.hasSkill('zhengjian_mark')&&lib.filter.targetEnabled(trigger.card,trigger.source,target)) return true;
}
return false;
},
ai1:function(card){
return get.unuseful(card)+9;
},
ai2:function(target){
if(_status.event.player.countCards('h','shan')){
return -get.attitude(_status.event.player,target);
}
if(get.attitude(_status.event.player,target)<5){
return 6-get.attitude(_status.event.player,target);
}
if(_status.event.player.hp==1&&player.countCards('h','shan')==0){
return 10-get.attitude(_status.event.player,target);
}
if(_status.event.player.hp==2&&player.countCards('h','shan')==0){
return 8-get.attitude(_status.event.player,target);
}
return -1;
},
prompt:get.prompt('gaoyuan'),
prompt2:'弃置一张牌,将此【杀】转移给一名有“诤”的角色',
source:trigger.player,
card:trigger.card,
});
"step 1"
if(result.bool){
var target=result.targets[0];
player.logSkill(event.name,target);
player.discard(result.cards);
var evt=trigger.getParent();
evt.triggeredTargets2.remove(player);
evt.targets.remove(player);
evt.targets.push(target);
}
},
},
//一 将 成 名
zhilve:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
content:function(){
'step 0'
if(!player.canMoveCard()) event._result={index:1};
else player.chooseControl().set('choiceList',[
'移动场上的一张牌',
'本回合的摸牌阶段多摸一张牌且第一张杀无距离次数限制',
]).set('ai',function(){return 1});
'step 1'
if(result.index==1){
player.addTempSkill('zhilve_yingzi');
if(!player.getHistory('useCard',function(card){
return card.card.name=='sha';
}).length) player.addTempSkill('zhilve_xiandeng');
event.finish();
}
else player.moveCard(true);
'step 2'
if(result.position=='e') player.loseHp();
else player.addTempSkill('zhilve_dis');
},
subSkill:{
dis:{
mod:{
maxHandcard:function(player,num){
return num-1;
},
},
},
yingzi:{
trigger:{player:'phaseDrawBegin2'},
popup:false,
forced:true,
filter:function(event,player){
return !event.numFixed;
},
content:function(){trigger.num++},
},
xiandeng:{
mod:{
targetInRange:function(card,player){
if(card.name=='sha') return true;
},
},
trigger:{player:'useCard1'},
forced:true,
popup:false,
firstDo:true,
filter:function(event,player){
return event.card.name=='sha';
},
content:function(){
player.removeSkill(event.name);
if(trigger.addCount!==false){
trigger.addCount=false;
var stat=player.getStat('card');
if(stat&&stat.sha) stat.sha--;
}
},
},
},
},
xhzhiyan:{
enable:'phaseUse',
audio:2,
filter:function(event,player){
return player.countCards('h')!=player.maxHp;
},
filterCard:true,
selectCard:function(){
var player=_status.event.player;
var num=Math.max(0,player.countCards('h')-player.maxHp);
return [num,num];
},
check:function(card){
var player=_status.event.player;
if(player.getUseValue(card)<=0&&game.hasPlayer(function(current){
return current!=player&&get.value(card,current)*get.attitude(player,current)>0;
})) return 1;
return 0;
},
content:function(){
'step 0'
if(!cards.length){
player.draw(player.maxHp-player.countCards('h'));
player.addTempSkill('zishou2');
event.finish();
}
else{
cards=cards.filterInD('d');
if(cards.length) player.chooseButton(['是否将其中的一张牌交给一名其他角色?',cards]).set('',function(button){
var player=_status.event.player;
if(game.hasPlayer(function(current){
return current!=player&&get.value(button.link,current)*get.attitude(player,current)>0;
})) return Math.abs(get.value(button.link));
return 0;
});
else event.finish();
}
'step 1'
if(result.bool&&game.hasPlayer(current=>current!=player)){
event.card=result.links[0];
player.chooseTarget(true,lib.filter.notMe,'选择一名其他角色获得'+get.translation(event.card)).set('ai',function(target){
return get.value(_status.event.getParent().card,target)*get.attitude(_status.event.player,target);
});
}
else event.finish();
'step 2'
var target=result.targets[0];
player.line(target,'green');
target.gain(card,'gain2','log');
},
ai:{
order:function(obj,player){
if(player.countCards('h')>player.maxHp) return 10;
return 0.5;
},
result:{
player:1,
},
},
},
//水 果 忍 者
zhengjing_guanju:{audio:true},
zhengjing:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return !player.hasSkill('zhengjing3');
},
content:function(){
"step 0"
//game.trySkillAudio('zhengjing_guanju',player);
if(_status.connectMode) event.time=lib.configOL.choose_timeout;
var cards=[];
var names=[];
while(true){
var card=get.cardPile(function(carde){
return carde.name!='du'&&!names.contains(carde.name);
});
if(card){
cards.push(card);
names.push(card.name);
if(get.mode()=='doudizhu'){
if(cards.length==1&&!get.isLuckyStar(player)&&Math.random()<0.33) break;
if(cards.length==2&&!get.isLuckyStar(player)&&Math.random()<0.5) break;
if(cards.length>=3) break;
}
else{
if(cards.length==3&&!get.isLuckyStar(player)&&Math.random()<0.33) break;
if(cards.length==4&&!get.isLuckyStar(player)&&Math.random()<0.5) break;
if(cards.length>=5) break;
}
}
else break;
};
event.cards=cards;
if(!cards.length){event.finish();return;};
event.videoId=lib.status.videoId++;
if(player.isUnderControl()){
game.swapPlayerAuto(player);
}
var switchToAuto=function(){
names.remove('du');
game.pause();
game.countChoose();
setTimeout(function(){
_status.imchoosing=false;
event._result={
bool:true,
links:names.slice(0),
};
if(event.dialog) event.dialog.close();
if(event.control) event.control.close();
game.resume();
},5000);
};
var createDialog=function(player,id){
if(_status.connectMode) lib.configOL.choose_timeout='30';
if(player==game.me) return;
var str=get.translation(player)+'正在整理经书...
';
ui.create.dialog(str).videoId=id;
};
var chooseButton=function(list){
var roundmenu=false;
if(ui.roundmenu&&ui.roundmenu.display!='none'){
roundmenu=true;
ui.roundmenu.style.display='none';
}
var event=_status.event;
event.settleed=false;
event.finishedx=[];
event.map={};
var names=list.slice(0)
event.zhengjing_nodes=[];
names.push('du');
names.randomSort()
var names2=names.slice(0);
for(var i=0;i<2;i++){
names2.randomSort();
names=names.concat(names2);
}
event.zhengjing=names;
for(var i of list){
event.map[i]=0;
}
event.dialog=ui.create.dialog('forcebutton','hidden');
event.dialog.textPrompt=event.dialog.add('及时点击卡牌,但不要点到毒了!
');
var str='';
for(var i of list){
str+=(get.translation(i)+':'+Math.min(2,event.map[i])+'/2 ');
}
str+='
';
event.dialog.textPrompt2=event.dialog.add(str);
event.switchToAuto=function(){
event._result={
bool:true,
links:event.finishedx.slice(0),
};
event.dialog.close();
game.resume();
_status.imchoosing=false;
if(roundmenu) ui.roundmenu.style.display='';
};
event.dialog.classList.add('fixed');
event.dialog.classList.add('scroll1');
event.dialog.classList.add('scroll2');
event.dialog.classList.add('fullwidth');
event.dialog.classList.add('fullheight');
event.dialog.classList.add('noupdate');
event.dialog.open();
event.settle=function(du){
if(event.settleed) return;
event.settleed=true;
event.dialog.textPrompt2.innerHTML='';
if(du){
if(lib.config.background_speak) game.playAudio('skill','zhengjing_boom');
event.dialog.textPrompt.innerHTML='叫你别点毒你非得点 这下翻车了吧
';
}
else {
if(lib.config.background_speak) game.playAudio('skill','zhengjing_finish');
event.dialog.textPrompt.innerHTML='整理经典结束!共整理出'+get.cnNumber(event.finishedx.length)+'份经典
';
}
while(event.zhengjing_nodes.length){
event.zhengjing_nodes.shift().delete();
}
setTimeout(function(){
event.switchToAuto();
},1000);
};
var click=function(){
var name=this.name;
if(name=='du'){
event.zhengjing.length=0;
event.settle(true);
}
else{
if(lib.config.background_speak) game.playAudio('skill','zhengjing_click');
event.map[name]++;
if(event.map[name]>1) event.finishedx.add(name);
if(event.finishedx.length';
event.dialog.textPrompt2.innerHTML=str;
}
else{
event.zhengjing.length=0;
event.settle();
}
}
event.zhengjing_nodes.remove(this);
this.style.transition='all 0.5s';
this.style.transform='scale(1.2)';
this.delete();
};
var addNode=function(){
if(event.zhengjing.length){
var card=ui.create.card(ui.special,'noclick',true);
card.init(['','',event.zhengjing.shift()]);
card.addEventListener(lib.config.touchscreen?'touchstart':'mousedown',click);
event.zhengjing_nodes.push(card);
card.style.position='absolute';
var rand1=Math.round(Math.random()*100);
var rand2=Math.round(Math.random()*100);
var rand3=Math.round(Math.random()*40)-20;
card.style.left='calc('+rand1+'% - '+rand1+'px)';
card.style.top='calc('+rand2+'% - '+rand2+'px)';
card.style.transform='scale(0.8) rotate('+rand3+'deg)';
card.style.opacity=0;
event.dialog.appendChild(card);
ui.refresh(card);
card.style.opacity=1;
card.style.transform='scale(1) rotate('+rand3+'deg)';
}
if(event.zhengjing_nodes.length>(event.zhengjing.length>0?2:0)) event.zhengjing_nodes.shift().delete();
if(event.zhengjing.length||event.zhengjing_nodes.length) setTimeout(function(){
addNode();
},800);
else event.settle();
};
game.pause();
game.countChoose();
addNode();
};
//event.switchToAuto=switchToAuto;
game.broadcastAll(createDialog,player,event.videoId);
if(event.isMine()){
chooseButton(names);
}
else if(event.isOnline()){
event.player.send(chooseButton,names);
event.player.wait();
game.pause();
}
else{
switchToAuto();
}
"step 1"
game.broadcastAll(function(id,time){
if(_status.connectMode) lib.configOL.choose_timeout=time;
var dialog=get.idDialog(id);
if(dialog){
dialog.close();
}
},event.videoId,event.time);
var result=event.result||result;
for(var i=0;i0;
});
next.set('processAI',function(list){
var cards=list[0][1].slice(0).sort(function(a,b){
return get.value(a)-get.value(b);
});
return [cards.splice(0,1),cards];
})
"step 5"
if(result.bool){
var cards=result.moved[0],gains=result.moved[1];
target.addSkill('zhengjing2');
target.addToExpansion(cards,'gain2').gaintag.add('zhengjing2');
if(gains.length) player.gain(gains,'gain2');
}
},
ai:{
order:10,
result:{player:1},
threaten:3.2,
}
},
//恁就是仲村由理?
zhengjing2:{
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
charlotte:true,
intro:{content:'expansion',markcount:'expansion'},
onremove:function(player,skill){
var cards=player.getExpansions(skill);
if(cards.length) player.loseToDiscardpile(cards);
},
content:function(){
'step 0'
player.gain(player.getExpansions('zhengjing2'),'gain2');
player.skip('phaseJudge');
player.skip('phaseDraw');
'step 1'
player.removeSkill('zhengjing2');
},
},
zhengjing3:{},
//邓芝
jimeng:{
audio:2,
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return game.hasPlayer(function(current){
return current.countGainableCards(player,'he')>0;
})
},
content:function(){
'step 0'
player.chooseTarget(get.prompt2('jimeng'),function(card,player,target){
return target!=player&&target.countGainableCards(player,'he')>0;
}).set('ai',function(target){
var player=_status.event.player;
if(player.hp>1&&get.attitude(player,target)<2) return 0;
return get.effect(target,{name:'shunshou'},player,player);
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('jimeng',target);
player.gainPlayerCard(target,'he',true);
}
else event.finish();
'step 2'
var hs=player.getCards('he');
if(player.hp>0&&hs.length){
if(hs.length<=player.hp) event._result={bool:true,cards:hs};
else player.chooseCard(player.hp,true,'交给'+get.translation(target)+get.cnNumber(player.hp)+'张牌','he',true);
}
else event.finish();
'step 3'
player.give(result.cards,target);
},
},
shuaiyan:{
audio:2,
trigger:{player:'phaseDiscardBegin'},
filter:function(event,player){
return player.countCards('h')>1;
},
check:function(event,player){
return game.hasPlayer(function(current){
return current!=player&¤t.countCards('he')&&lib.skill.shuaiyan.check2(current,player);
});
},
check2:function(target,player){
if(get.itemtype(player)!='player') player=_status.event.player;
return -get.attitude(player,target)/target.countCards('he');
},
content:function(){
'step 0'
player.showHandcards(get.translation(player)+'发动了【率言】');
'step 1'
var filter=function(card,player,target){
return player!=target&&target.countCards('he')>0;
};
if(game.hasPlayer(function(current){
return filter('我约等于白板',player,current);
})){
player.chooseTarget(true,filter,'选择一名其他角色,令其交给你一张牌').set('ai',lib.skill.shuaiyan.check2);
}
else event.finish();
'step 2'
var target=result.targets[0];
event.target=target;
player.line(target,'green');
target.chooseCard('he',true,'交给'+get.translation(player)+'一张牌');
'step 3'
target.give(result.cards,player);
},
},
relihuo:{
audio:2,
group:['relihuo_baigei','relihuo_damage'],
trigger:{player:'useCard1'},
filter:function(event,player){
if(event.card.name=='sha'&&!event.card.nature) return true;
},
check:function(event,player){
return false;
},
content:function(){
trigger.card.nature='fire';
trigger.relihuo=true;
},
},
relihuo_damage:{
trigger:{source:'damageBegin1'},
forced:true,
audio:'relihuo',
filter:function(event,player){
return event.getParent(2).relihuo==true&&event.player.isLinked();
},
content:function(){
trigger.num++;
},
},
relihuo_baigei:{
trigger:{player:'useCardAfter'},
forced:true,
audio:'relihuo',
filter:function(event,player){
if(event.card.name!='sha'||event.card.nature!='fire') return false;
var num=0;
player.getHistory('sourceDamage',function(evt){
if(evt.card==event.card) num+=evt.num;
});
return num>1;
},
content:function(){
var num=0;
player.getHistory('sourceDamage',function(evt){
if(evt.card==trigger.card) num+=evt.num;
});
player.loseHp(Math.floor(num/2));
},
},
gongsun:{
audio:2,
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return player.countCards('he')>1;
},
content:function(){
'step 0'
player.chooseCardTarget({
prompt:get.prompt2('gongsun'),
selectCard:2,
filterCard:lib.filter.cardDiscardable,
filterTarget:lib.filter.notMe,
position:'he',
ai1:function(card){
var friend=0,enemy=0,player=_status.event.player;
var num=game.countPlayer(function(target){
var att=get.attitude(player,target);
if(att<0) enemy++;
if(target!=player&&att>0) friend++;
return true;
});
if(num>(friend+enemy+2)) return 0;
if(friend0) str+='
'
str+=get.translation(shadow[i][0]);
str+=':';
str+=get.translation(shadow[i][1]);
}
return str;
},
},
mod:{
cardEnabled:function(card,player){
var list=player.storage.gongsun_shadow;
for(var i=0;i0&&!player.hasSkill('duoduan_im');
},
content:function(){
'step 0'
player.chooseCard('he',get.prompt2('duoduan'),lib.filter.cardRecastable).set('ai',function(card){
if(_status.event.goon) return 8-get.value(card);
return 0;
}).set('goon',function(){
if(get.attitude(trigger.player,player)>0) return true;
if(!trigger.player.countCards('he')) return true;
if(!player.hasShan()) return true;
return event.getRand()<0.5;
}());
'step 1'
if(result.bool){
player.addTempSkill('duoduan_im');
player.logSkill('duoduan',trigger.player);
player.recast(result.cards);
}
else event.finish();
'step 2'
var sha=get.translation(trigger.card);
if(!trigger.player.countCards('he',function(card){
return lib.filter.cardDiscardable(card,trigger.player,'duoduan');
})) event.finish();
else player.chooseControl().set('choiceList',[
'令其摸两张牌,然后令'+sha+'对你无效',
'令其弃置一张牌,然后你不可响应'+sha,
]).set('prompt','度断:令'+get.translation(trigger.player)+'执行一项').set('ai',function(){
var player=_status.event.player;
var source=_status.event.getTrigger().player;
if(get.attitude(player,source)>0) return 0;
if(!player.hasShan()&&player.hp>=2) return 1;
return 0;
});
'step 3'
if(result.index==0) event.goto(5);
else trigger.player.chooseToDiscard('弃置一张牌令'+get.translation(player)+'不能闪避此【杀】','he',true);
'step 4'
if(result.bool){
trigger.directHit.add(player);
}
event.finish();
'step 5'
trigger.player.draw(2);
trigger.excluded.add(player);
},
},
duoduan_im:{
//'im' refers to 'Iwasawa Masami' in 'Angel Beats!'
//Although she disappeared in the Episode 3 of the anime, but her route in the game is really worth to play.
},
chengzhao:{
audio:2,
trigger:{global:'phaseJieshuBegin'},
filter:function(event,player){
var num=0;
player.getHistory('gain',function(evt){
num+=evt.cards.length;
});
if(num<2) return false;
return player.countCards('h')>0&&game.hasPlayer(function(current){
return player!=current&&player.canCompare(current);
});
},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('chengzhao'),function(card,player,target){
return player.canCompare(target);
}).set('ai',function(target){
return -get.attitude(_status.event.player,target)/target.countCards('h');
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('chengzhao',target);
player.chooseToCompare(target);
}
else event.finish();
'step 2'
if(result.bool){
var card={name:'sha',isCard:true};
if(player.canUse(card,target,false)) player.useCard(card,target,false).card.chengzhao=true;
}
},
ai:{
unequip:true,
skillTagFilter:function(player,tag,arg){
if(!arg||!arg.card||arg.card.chengzhao!=true) return false;
},
},
},
rezhengrong:{
trigger:{player:'useCardAfter'},
direct:true,
audio:'drlt_zhenrong',
filter:function(event,player){
if(!event.targets) return false;
if(!event.isPhaseUsing(player)) return false;
var bool=false;
for(var i=0;i0;
}).set('ai',function(target){
return (1-get.attitude(_status.event.player,target))/target.countCards('he');
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=result.targets[0];
player.logSkill('rezhengrong',target);
var card=target.getCards('he').randomGet();
player.addToExpansion(card,target,'give').gaintag.add('rezhengrong');
}
},
marktext:'荣',
onremove:function(player,skill){
var cards=player.getExpansions(skill);
if(cards.length) player.loseToDiscardpile(cards);
},
intro:{
content:'expansion',
markcount:'expansion',
},
},
rehongju:{
trigger:{player:'phaseZhunbeiBegin'},
audio:'drlt_hongju',
forced:true,
unique:true,
juexingji:true,
skillAnimation:true,
animationColor:'thunder',
derivation:'reqingce',
filter:function(event,player){
return player.getExpansions('rezhengrong').length>=3&&game.dead.length>0;
},
content:function(){
'step 0'
player.awakenSkill('rehongju');
player.draw(player.getExpansions('rezhengrong').length);
'step 1'
if(player.countCards('h')==0) event.goto(3);
else{
var dialog=['请选择要交换的手牌和「荣」,或点「取消」','「征荣」牌
',player.getExpansions('rezhengrong'),'手牌区
',player.getCards('h')];
var next=player.chooseButton(dialog);
next.set('filterButton',function(button){
var ss=_status.event.player.getExpansions('rezhengrong');
var hs=_status.event.player.getCards('h');
var sn=0;
var hn=0;
var ub=ui.selected.buttons;
for(var i=0;i=hs.length&&ss.contains(button.link)||hn>=ss.length&&hs.contains(button.link));
});
next.set('selectButton',function(){
if(ui.selected.buttons.length==0) return 2;
var ss=_status.event.player.getExpansions('rezhengrong');
var hs=_status.event.player.getCards('h');
var sn=0;
var hn=0;
var ub=ui.selected.buttons;
for(var i=0;i0;
},
chooseButton:{
dialog:function(event,player){
return ui.create.dialog('请选择要移去的「荣」',player.getExpansions('rezhengrong'),'hidden');
},
backup:function(links,player){
return {
card:links[0],
filterCard:function(){return false},
selectCard:-1,
filterTarget:function(card,player,target){
return target.countDiscardableCards(player,'ej')>0;
},
delay:false,
audio:'drlt_qingce',
content:lib.skill.reqingce.contentx,
ai:{
result:{
target:function(player,target){
var att=get.attitude(player,target);
if(att>0&&(target.countCards('j')>0||target.countCards('e',function(card){
return get.value(card,target)<0;
}))) return 2;
if(att<0&&target.countCards('e')>0&&!target.hasSkillTag('noe')) return -1;
return 0;
},
},
},
}
},
prompt:function(links,player){
return '弃置一名角色装备区或判定区内的一张牌';
},
},
contentx:function(){
'step 0'
var card=lib.skill.reqingce_backup.card;
player.loseToDiscardpile(card);
'step 1'
if(target.countDiscardableCards(player,'ej')>0){
player.discardPlayerCard('ej',true,target);
}
},
ai:{
order:8,
result:{
player:function(player){
if(game.hasPlayer(function(current){
var att=get.attitude(player,current);
if((att>0&¤t.countCards('j')>0)||(att<0&¤t.countCards('e')>0)) return true;
return false;
})) return 1;
return 0;
},
},
},
},
fengji:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
return typeof player.storage.fengji=='number'&&player.countCards('h')>=player.storage.fengji;
},
content:function(){
player.draw(2);
player.addTempSkill('fengji3');
},
group:'fengji2',
intro:{
content:'上回合结束时的手牌数:#',
},
},
fengji2:{
trigger:{player:'phaseEnd'},
silent:true,
content:function(){
player.storage.fengji=player.countCards('h');
if(player.hasSkill('fengji')) player.markSkill('fengji');
},
},
fengji3:{
mod:{
maxHandcardBase:function(player,num){
return player.maxHp;
},
},
},
zhouxuan:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.countCards('he')>0;
},
filterCard:true,
position:'he',
filterTarget:lib.filter.notMe,
check:function(card){
return 6-get.value(card);
},
content:function(){
'step 0'
player.addSkill('zhouxuan2');
target.addTempSkill('zhouxuan_ai',{player:'phaseUseAfter'});
player.storage.zhouxuan2={};
player.storage.zhouxuan2.player=target;
var list=[];
var basic=[];
for(var i=0;i0) return Math.max(1,target.hp)*target.countCards('h',function(card){
return target.getUseValue(card)>0;
});
return 0;
},
},
},
},
zhouxuan_ai:{
mod:{
aiOrder:function(player,card,num){
if(game.hasPlayer(function(current){
return current.storage.zhouxuan2&¤t.storage.zhouxuan2.player==player&&get.attitude(player,current)>0&&(current.storage.zhouxuan2.isbasic?card.name:get.type(card,'trick'))==current.storage.zhouxuan2.card;
})) return num+10;
}
},
},
zhouxuan2:{
intro:{
mark:function(player,storage){
return get.translation(storage.player)+'使用或打出下一张牌时,若此牌为'+get.translation(storage.card)+(storage.isbasic?'':'牌')+',你观看牌堆顶的三张牌并分配给任意角色';
},
},
audio:'zhouxuan',
forced:true,
charlotte:true,
trigger:{global:['useCard','respond']},
filter:function(event,player){
if(event.zhouxuanable) return true;
if(player.storage.zhouxuan2){
var map=player.storage.zhouxuan2;
if(map.player!=event.player) return false;
delete player.storage.zhouxuan2;
player.unmarkSkill('zhouxuan2');
if(map.card!=(map.isbasic?event.card.name:get.type(event.card,'trick'))) return false;
event.zhouxuanable=true;
return true;
}
return false;
},
logTarget:'player',
content:function(){
'step 0'
event.cards=game.cardsGotoOrdering(get.cards(3)).cards;
if(_status.connectMode) game.broadcastAll(function(){_status.noclearcountdown=true});
event.given_map={};
'step 1'
if(event.cards.length>1){
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){
event.cards.removeArray(result.links);
event.togive=result.links.slice(0);
player.chooseTarget('选择一名角色获得'+get.translation(result.links),true).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(_status.event.enemy){
return -att;
}
else if(att>0){
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){
var id=result.targets[0].playerid,map=event.given_map;
if(!map[id]) map[id]=[];
map[id].addArray(event.togive);
}
if(cards.length>0) event.goto(1);
'step 4'
if(_status.connectMode){
game.broadcastAll(function(){delete _status.noclearcountdown;game.stopCountChoose()});
}
var list=[];
for(var i in event.given_map){
var source=(_status.connectMode?lib.playerOL:game.playerMap)[i];
player.line(source,'green');
list.push([source,event.given_map[i]]);
}
game.loseAsync({
gain_list:list,
giver:player,
animate:'draw',
}).setContent('gaincardMultiple');
},
},
reshanxi:{
audio:'shanxi',
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return player.hp>0&&player.countCards('h',function(card){
if(_status.connectMode) return true;
return get.color(card)=='red'&&get.type(card)=='basic';
})>0;
},
content:function(){
'step 0'
player.chooseCardTarget({
filterCard:function(card){
return get.color(card)=='red'&&get.type(card)=='basic'&&lib.filter.cardDiscardable.apply(this,arguments);
},
filterTarget:function(card,player,target){
return player!=target&&target.countCards('he')>0;
},
prompt:get.prompt('reshanxi'),
prompt2:'弃置一张红色基本牌并选择一名其他角色,将其的至多X张牌置于其武将牌上直到回合结束。(X为你的体力值)',
ai1:function(){return -1},
});
'step 1'
if(result.bool){
event.target=result.targets[0];
player.logSkill('reshanxi',event.target);
player.discard(result.cards);
}
else event.finish();
'step 2'
var max=Math.min(player.hp,target.countCards('he'));
if(max>0&&target.isIn()){
player.choosePlayerCard('he',target,true,[1,max]).set('forceAuto',true).set('prompt','将'+get.translation(target)+'的至多'+get.cnNumber(max)+'张牌置于其武将牌上');
}
else event.finish();
'step 3'
target.addSkill('reshanxi2');
target.addToExpansion(result.cards,'giveAuto',target).gaintag.add('reshanxi2');
},
},
reshanxi2:{
trigger:{global:'phaseEnd'},
forced:true,
popup:false,
charlotte:true,
onremove:function(player,skill){
var cards=player.getExpansions(skill);
if(cards.length) player.loseToDiscardpile(cards);
},
content:function(){
'step 0'
var cards=player.getExpansions('reshanxi2');
if(cards.length) player.gain(cards,'draw');
'step 1'
player.removeSkill('reshanxi2');
},
intro:{
markcount:'expansion',
mark:function(dialog,storage,player){
var cards=player.getExpansions('reshanxi2');
if(player.isUnderControl(true)) dialog.addAuto(cards);
else return '共有'+get.cnNumber(cards.length)+'张牌';
},
},
},
reqizhou:{
trigger:{player:['equipEnd','loseEnd']},
forced:true,
popup:false,
derivation:['reyingzi','qixi','rexuanfeng'],
filter:function(event,player){
if(player.equiping) return false;
var suits=[];
var es=player.getCards('e');
for(var i=0;i3) suits.length=3;
if(player.additionalSkills.reqizhou){
return player.additionalSkills.reqizhou.length!=suits.length;
}
else{
return suits.length>0;
}
},
content:function(){
lib.skill.reqizhou.init(player,'reqizhou');
},
init:function(player,skill){
var suits=[];
var es=player.getCards('e');
for(var i=0;i3) suits.length=3;
player.removeAdditionalSkill(skill);
switch(suits.length){
case 1:player.addAdditionalSkill(skill,['reyingzi']);break;
case 2:player.addAdditionalSkill(skill,['reyingzi','qixi']);break;
case 3:player.addAdditionalSkill(skill,['reyingzi','qixi','rexuanfeng']);break;
}
},
ai:{
threaten:1.2
}
},
zhaohan:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
return player.phaseNumber<8;
},
check:function(event,player){
return player.phaseNumber<3;
},
content:function(){
if(player.phaseNumber<5){
player.gainMaxHp();
player.recover();
}
else player.loseMaxHp();
},
},
rangjie:{
audio:2,
trigger:{player:'damageEnd'},
direct:true,
content:function(){
'step 0'
event.count=trigger.num;
'step 1'
event.count--;
var choiceList=['获得一张指定类型的牌'];
if(player.canMoveCard()) choiceList.push('移动场上的一张牌');
player.chooseControl('cancel2').set('choiceList',choiceList).set('prompt',get.prompt('rangjie')).set('ai',function(){
var player=_status.event.player;
if(player.canMoveCard(true)) return 1;
return 0;
});
'step 2'
if(result.control=='cancel2') event.finish();
else{
player.logSkill('rangjie');
player.draw();
if(result.index==0){
player.chooseControl('basic','trick','equip').set('prompt','选择获得一种类型的牌').set('ai',function(){
var player=_status.event.player;
if(player.hp<=3&&!player.countCards('h',{name:['shan','tao']})) return 'basic';
if(player.countCards('he',{type:'equip'})<2) return 'equip';
return 'trick';
});
}
else{
player.moveCard(true);
event.goto(4);
}
}
'step 3'
var card=get.cardPile2(function(card){
return get.type(card,'trick')==result.control;
});
if(card) player.gain(card,'gain2','log');
'step 4'
if(event.count>0&&player.hasSkill('rangjie')) 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;
var num=1;
if(get.attitude(player,target)>0){
if(player.needsToDiscard()){
num=0.7;
}
else{
num=0.5;
}
}
if(target.hp>=4) return [1,num*2];
if(target.hp==3) return [1,num*1.5];
if(target.hp==2) return [1,num*0.5];
}
},
},
},
},
yizheng:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return game.hasPlayer(function(current){
return current.hp<=player.hp&&player.canCompare(current);
});
},
filterTarget:function(card,player,current){
return current.hp<=player.hp&&player.canCompare(current);
},
content:function(){
'step 0'
player.chooseToCompare(target);
'step 1'
if(result.bool){
target.skip('phaseDraw');
target.addTempSkill('yizheng2',{player:'phaseDrawSkipped'});
}
else player.loseMaxHp();
},
ai:{
order:1,
result:{
target:function(player,target){
if(target.skipList.contains('phaseDraw')||target.hasSkill('pingkou')) return 0;
var hs=player.getCards('h').sort(function(a,b){
return b.number-a.number;
});
var ts=target.getCards('h').sort(function(a,b){
return b.number-a.number;
});
if(!hs.length||!ts.length) return 0;
if(hs[0].number>ts[0].number) return -1;
return 0;
},
},
},
},
yizheng2:{
mark:true,
intro:{content:'跳过下回合的摸牌阶段'},
},
rw_zhuge_skill:{
equipSkill:true,
audio:true,
firstDo:true,
trigger:{player:'useCard1'},
forced:true,
filter:function(event,player){
return !event.audioed&&event.card.name=='sha'&&player.countUsed('sha',true)>1&&event.getParent().type=='phase';
},
content:function(){
trigger.audioed=true;
},
mod:{
cardUsable:function(card,player,num){
var cards=player.getEquips('rewrite_zhuge')
if(card.name=='sha'){
if(!cards.length||player.hasSkill('rw_zhuge_skill',null,false)||cards.some(card=>(card!=_status.rw_zhuge_temp&&!ui.selected.cards.contains(card)))){
if(get.is.versus()||get.is.changban()){
return num+3;
}
return Infinity;
}
}
},
cardEnabled2:function(card,player){
if(!_status.event.addCount_extra||player.hasSkill('rw_zhuge_skill',null,false)) return;
var cards=player.getEquips('rewrite_zhuge');
if(card&&cards.contains(card)){
try{
var cardz=get.card();
}
catch(e){
return;
}
if(!cardz||cardz.name!='sha') return;
_status.rw_zhuge_temp=card;
var bool=lib.filter.cardUsable(get.autoViewAs({name:'sha'},ui.selected.cards.concat([card])),player);
delete _status.rw_zhuge_temp;
if(!bool) return false;
}
},
},
},
xinqingjian:{
audio:'qingjian',
trigger:{player:'gainEnd'},
direct:true,
usable:1,
filter:function(event,player){
return event.getParent('phaseDraw').player!=player&&player.countCards('he')>0;
},
content:function(){
'step 0'
player.chooseCard(get.prompt2('xinqingjian'),'he',[1,player.countCards('he')]).ai=function(){return -1};
'step 1'
if(result.bool){
player.logSkill('xinqingjian');
player.addSkill('xinqingjian2');
player.addToExpansion(result.cards,'giveAuto',player).gaintag.add('xinqingjian2');
}
else player.storage.counttrigger.xinqingjian--;
},
},
xinqingjian2:{
audio:'xinqingjian',
charlotte:true,
trigger:{global:'phaseEnd'},
forced:true,
filter:function(event,player){
return player.getExpansions('xinqingjian2').length>0;
},
onremove:function(player,skill){
var cards=player.getExpansions(skill);
if(cards.length) player.loseToDiscardpile(cards);
},
content:function(){
'step 0'
var cards=player.getExpansions('xinqingjian2');
player.chooseTarget(true,lib.filter.notMe).set('createDialog',['清俭:将这些牌交给一名角色'+(cards.length>1?',然后摸一张牌':''),cards]);
'step 1'
if(result.bool){
var target=result.targets[0];
player.line(target,'thunder');
if(player.give(player.getExpansions('xinqingjian2'),target).cards.length>1) player.draw();
}
'step 2'
player.removeSkill('xinqingjian2');
},
intro:{
markcount:'expansion',
mark:function(dialog,storage,player){
var cards=player.getExpansions('xinqingjian2');
if(player.isUnderControl(true)) dialog.addAuto(cards);
else return '共有'+get.cnNumber(cards.length)+'张牌';
},
},
},
zhongzuo:{
audio:2,
trigger:{global:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player.getHistory('damage').length>0||player.getHistory('sourceDamage').length>0;
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('zhongzuo'),'令一名角色摸两张牌。若其已受伤,则你摸一张牌。').set('ai',function(target){
if(target.hasSkillTag('nogain')&&target!=_status.currentPhase) return target.isDamaged()?0:1;
var att=get.attitude(_status.event.player,target);
if(target.isDamaged()) att=att*1.2;
return att;
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('zhongzuo',target);
target.draw(2);
if(target.isDamaged()) player.draw();
}
},
},
wanlan:{
audio:2,
trigger:{global:'dying'},
check:function(event,player){
if(get.attitude(player,event.player)<4) return false;
if(player.countCards('h',function(card){
var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player);
if(mod2!='unchanged') return mod2;
var mod=game.checkMod(card,player,event.player,'unchanged','cardSavable',player);
if(mod!='unchanged') return mod;
var savable=get.info(card).savable;
if(typeof savable=='function') savable=savable(card,player,event.player);
return savable;
})>=1-event.player.hp) return false;
if(event.player==player||event.player==get.zhu(player)) return true;
if(_status.currentPhase&&get.damageEffect(_status.currentPhase,player,player)<0) return false;
return !player.hasUnknown();
},
limited:true,
unique:true,
filter:function(event,player){
return event.player.hp<=0;
},
skillAnimation:true,
animationColor:'thunder',
logTarget:'player',
content:function(){
'step 0'
player.awakenSkill('wanlan');
var hs=player.getCards('h')
if(hs.length) player.discard(hs);
'step 1'
var num=1-trigger.player.hp;
if(num) trigger.player.recover(num);
'step 2'
if(_status.currentPhase&&_status.currentPhase.isIn()){
var next=_status.currentPhase.damage();
event.next.remove(next);
trigger.after.push(next);
}
},
},
rezhiyi:{
audio:'zhiyi',
trigger:{global:'phaseJieshuBegin'},
forced:true,
filter:function(event,player){
return player.getHistory('useCard',function(card){
return get.type(card.card)=='basic';
}).length>0||player.getHistory('respond',function(card){
return get.type(card.card)=='basic';
}).length>0;
},
content:function(){
'step 0'
var list=[];
player.getHistory('useCard',function(evt){
if(get.type(evt.card)!='basic') return;
var name=evt.card.name;
if(name=='sha'){
var nature=evt.card.nature;
switch(nature){
case 'fire':name='huosha';break;
case 'thunder':name='leisha';break;
case 'kami':name='kamisha';break;
case 'ice':name='icesha';break;
case 'stab':name='cisha';break;
}
}
list.add(name);
});
player.getHistory('respond',function(evt){
if(get.type(evt.card)!='basic') return;
var name=evt.card.name;
if(name=='sha'){
var nature=evt.card.nature;
switch(nature){
case 'fire':name='huosha';break;
case 'thunder':name='leisha';break;
case 'kami':name='kamisha';break;
case 'ice':name='icesha';break;
case 'stab':name='cisha';break;
}
}
list.add(name);
});
player.chooseButton(['执义:选择要使用的牌,或点取消摸一张牌',[list.map(function(name){
return ['基本','',name];
}),'vcard']],function(button){
return _status.event.player.getUseValue({name:button.link[2],nature:button.link[3]});
},function(button){
return _status.event.player.hasUseTarget({name:button.link[2],nature:button.link[3]});
});
'step 1'
if(!result.bool) player.draw();
else player.chooseUseTarget({name:result.links[0][2],isCard:true,nature:result.links[0][3]});
},
},
zhiyi:{
audio:2,
trigger:{player:['useCard','respond']},
forced:true,
filter:function(event,player){
if(get.type(event.card)!='basic') return false;
var history=player.getHistory('useCard',function(evt){
return get.type(evt.card)=='basic';
}).concat(player.getHistory('respond',function(evt){
return get.type(evt.card)=='basic';
}));
return history.length==1&&history[0]==event;
},
content:function(){
'step 0'
var info=get.info(trigger.card);
if(!info||!info.enable) event._result={index:0};
else{
var evt=trigger;
if(evt.respondTo&&evt.getParent('useCard').name=='useCard') evt=evt.getParent('useCard');
event.evt=evt;
player.chooseControl().set('prompt','执义:请选择一项').set('choiceList',[
'摸一张牌',
'于'+get.translation(evt.card)+'的使用结算结束之后视为使用一张'+get.translation({name:trigger.card.name,nature:trigger.card.nature,isCard:true}),
]).set('ai',function(){return _status.event.choice}).set('choice',function(){
var card={name:trigger.card.name,nature:trigger.card.nature,isCard:true};
if(card.name=='sha'){
if(player.getUseValue(card)>0) return 1;
}
else if(card.name=='tao'){
var hp=player.maxHp-player.hp;
if(trigger.targets.contains(player)) hp--;
return hp>0?1:0;
}
return 0;
}());
}
'step 1'
if(result.index==0){
player.draw();
}
else{
var next=player.chooseUseTarget({name:trigger.card.name,nature:trigger.card.nature,isCard:true},false,true);
_status.event.next.remove(next);
event.evt.after.push(next);
next.logSkill='zhiyi';
}
},
},
//表演测试
qiaosi_map:{charlotte:true},
qiaosi:{
audio:'xinfu_qiaosi',
derivation:'qiaosi_map',
enable:'phaseUse',
usable:1,
content:function(){
"step 0"
event.videoId=lib.status.videoId++;
if(player.isUnderControl()){
game.swapPlayerAuto(player);
}
var switchToAuto=function(){
game.pause();
game.countChoose();
setTimeout(function(){
_status.imchoosing=false;
event._result={
bool:true,
links:['qiaosi_c1','qiaosi_c6'].concat(['qiaosi_c2','qiaosi_c3','qiaosi_c4','qiaosi_c5'].randomGets(1)),
};
if(event.dialog) event.dialog.close();
if(event.controls){
for(var i of event.controls) i.close();
}
game.resume();
},5000);
};
var createDialog=function(player,id){
if(player==game.me) return;
var str=get.translation(player)+'正在表演...
';
for(var i=1;i<7;i++){
str+=get.translation('qiaosi_c'+i);
if(i%3!=0) str+=' ';
if(i==3) str+='
';
}
ui.create.dialog(str,'forcebutton').videoId=id;
};
var chooseButton=function(player){
var event=_status.event;
player=player||event.player;
event.status={
qiaosi_c1:0,
qiaosi_c2:0,
qiaosi_c3:0,
qiaosi_c4:0,
qiaosi_c5:0,
qiaosi_c6:0,
}
event.map={
qiaosi_c1:[40,60],
qiaosi_c2:[80,120],
qiaosi_c3:[90,110],
qiaosi_c4:[90,110],
qiaosi_c5:[80,120],
qiaosi_c6:[40,60],
}
event.finishedx=[];
event.str='请开始你的表演
qiaosi_c1% qiaosi_c2% qiaosi_c3%
qiaosi_c4%qiaosi_c5% qiaosi_c6%';
event.dialog=ui.create.dialog(event.str,'forcebutton','hidden');
event.dialog.addText('点击下方的按钮,可以增加按钮对应的角色的「表演完成度」。对于不同的角色,点击时增加的完成度不同,最终获得的牌也不同。一次表演最多只能完成3名角色的进度。',false);
event.dialog.open();
for(var i in event.status){
event.dialog.content.childNodes[0].innerHTML=event.dialog.content.childNodes[0].innerHTML.replace(i,event.status[i]);
}
for(var i=0;i=100){
event.status[link]=100;
var str=event.str.slice(0);
for(var i in event.status){
str=str.replace(i,event.status[i]);
}
event.dialog.content.childNodes[0].innerHTML=str;
event.finishedx.push(link);
if(event.finishedx.length>=3){
event._result={
bool:true,
links:event.finishedx.slice(0),
};
event.dialog.close();
for(var i of event.controls) i.close();
game.resume();
_status.imchoosing=false;
}
}
else{
var str=event.str.slice(0);
for(var i in event.status){
str=str.replace(i,event.status[i]);
}
event.dialog.content.childNodes[0].innerHTML=str;
}
}));
for(var i=0;i2;
})) return 0;
return 1;
});
"step 3"
if(result.index==0){
player.chooseCardTarget({
position:'he',
filterCard:true,
selectCard:event.num,
filterTarget:function(card,player,target){
return player!=target;
},
ai1:function(card){
return 1;
},
ai2:function(target){
var att=get.attitude(_status.event.player,target);
if(target.hasSkillTag('nogain')) att/=10;
if(target.hasJudge('lebu')) att/=5;
return att;
},
prompt:'选择'+get.cnNumber(event.num)+'张牌,交给一名其他角色。',
forced:true,
});
}
else{
player.chooseToDiscard(event.num,true,'he');
event.finish();
}
"step 4"
if(result.bool){
var target=result.targets[0];
player.give(result.cards,target);
}
},
ai:{
order:10,
result:{player:1},
threaten:3.2,
}
},
refuhai:{
audio:'xinfu_fuhai',
enable:'phaseUse',
usable:1,
content:function(){
'step 0'
event.current=player.next;
event.upper=[];
event.lower=[];
event.acted=[];
event.num=0;
event.stopped=false;
'step 1'
event.acted.push(event.current);
event.current.chooseControl('潮起','潮落').set('prompt','潮鸣起乎?潮鸣落乎?').ai=function(){
return Math.random()<0.5?0:1;
};
'step 2'
if(!event.chosen) event.chosen=result.control;
if(event.chosen!=result.control) event.stopped=true;
if(!event.stopped) event.num++;
if(result.control=='潮起'){
event.upper.push(event.current)
}
else event.lower.push(event.current);
event.current=event.current.next;
if(event.current!=player&&!event.acted.contains(event.current)) event.goto(1);
'step 3'
for(var i=0;i1) player.draw(num);
},
ai:{
order:10,
result:{player:1},
},
},
rebiaozhao:{
audio:'biaozhao',
intro:{
content:"expansion",
markcount:'expansion',
},
trigger:{
player:"phaseJieshuBegin",
},
direct:true,
filter:function(event,player){
return player.countCards('he')>0&&!player.getExpansions('rebiaozhao').length;
},
content:function(){
'step 0'
player.chooseCard('he',get.prompt('rebiaozhao'),'将一张牌置于武将牌上作为“表”').ai=function(card){
return 6-get.value(card);
}
'step 1'
if(result.bool){
player.logSkill('rebiaozhao');
player.addToExpansion(player,'give',result.cards).gaintag.add('rebiaozhao');
}
},
onremove:function(player,skill){
var cards=player.getExpansions(skill);
if(cards.length) player.loseToDiscardpile(cards);
},
ai:{notemp:true},
group:['rebiaozhao2','rebiaozhao3'],
},
rebiaozhao2:{
trigger:{
global:["loseAfter","cardsDiscardAfter","loseAsyncAfter",'equipAfter'],
},
forced:true,
audio:"biaozhao",
filter:function(event,player){
var cards=player.getExpansions('rebiaozhao'),cards2=event.getd();
if(!cards.length||!cards2.length) return false;
var num=get.number(cards[0]);
var cards=event.getd();
for(var card of cards){
if(get.number(card)==num) return true;
}
return false;
},
content:function(){
player.loseToDiscardpile(player.getExpansions('rebiaozhao'));
player.loseHp();
},
},
rebiaozhao3:{
trigger:{
player:"phaseZhunbeiBegin",
},
forced:true,
charlotte:true,
audio:"biaozhao",
filter:function(event,player){
return player.getExpansions('rebiaozhao').length>0;
},
content:function(){
"step 0"
player.loseToDiscardpile(player.getExpansions('rebiaozhao'));
"step 1"
player.chooseTarget('令一名角色摸三张牌并回复1点体力',true).ai=function(target){
var num=2;
if(target.isDamaged()) num++;
return num*get.attitude(_status.event.player,target);
};
"step 2"
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
target.draw(3);
target.recover();
}
},
},
reqianxin:{
audio:'xinfu_qianxin',
enable:'phaseUse',
usable:1,
filterCard:true,
selectCard:function(){
return [1,Math.min(2,game.players.length-1)];
},
check:function(card){
return 6-get.value(card);
},
discard:false,
lose:false,
delay:false,
content:function(){
var targets=game.filterPlayer(function(current){
return current!=player;
}).randomGets(cards.length);
var map=[];
for(var i=0;i0) return 0;
if(player.maxHp-player.countCards('h')>1) return 1;
return Math.random()>0.5?0:1;
});
'step 2'
if(result.index==0) source.draw(2);
else{
player.addTempSkill('reqianxin3')
player.addMark('reqianxin3',2,false)
}
'step 3'
if(player.storage.reqianxin2.length) event.goto(0);
else player.removeSkill('reqianxin2');
},
},
reqianxin3:{
onremove:true,
mod:{
maxHandcard:function(player,num){
return num-player.countMark('reqianxin3');
},
},
},
renshi:{
audio:2,
trigger:{player:'damageBegin4'},
forced:true,
filter:function(event,player){
return player.isDamaged()&&event.card&&event.card.name=='sha';
},
content:function(){
'step 0'
trigger.cancel();
var cards=trigger.cards.filterInD();
if(cards.length) player.gain(cards,'gain2','log');
'step 1'
player.loseMaxHp();
},
ai:{
filterDamage:true,
skillTagFilter:function(player,tag,arg){
if(arg&&arg.card&&arg.card.name=='sha') return true;
return false;
},
},
},
wuyuan:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.countCards('h','sha')>0;
},
filterCard:{name:'sha'},
filterTarget:lib.filter.notMe,
check:function(card){
var player=_status.event.player;
if(get.color(card)=='red'&&game.hasPlayer(function(current){
return current!=player&¤t.isDamaged()&&get.attitude(player,current)>2;
})) return 2;
if(get.nature(card)) return 1.5;
return 1;
},
discard:false,
lose:false,
delay:false,
content:function(){
'step 0'
player.give(cards,target,'give');
player.recover();
'step 1'
var num=1;
if(get.nature(cards[0])) num++;
target.draw(num);
if(get.color(cards[0])=='red') target.recover();
},
ai:{
order:1,
result:{
player:function(player,target){
if(player.isDamaged()) return 1;
return 0;
},
target:function(player,target){
if(ui.selected.cards.length){
var num=1;
if(get.nature(ui.selected.cards[0])) num++;
if(target.hasSkillTag('nogain')) num=0;
if(get.color(ui.selected.cards[0])=='red') return num+2
else return num+1;
}
return 1;
},
},
},
},
huaizi:{
mod:{
maxHandcardBase:function(player,num){
return player.maxHp;
},
},
//audio:2,
//trigger:{player:'phaseDiscardBegin'},
forced:true,
firstDo:true,
filter:function(event,player){
return player.isDamaged()&&player.countCards('h')>player.hp;
},
content:function(){},
},
rexushen:{
derivation:['new_rewusheng','redangxian'],
audio:'xinfu_xushen',
limited:true,
enable:'phaseUse',
filter:function(event,player){
return game.hasPlayer(function(current){
return current.hasSex('male');
})
},
skillAnimation:true,
animationColor:'fire',
content:function(){
player.addSkill('rexushen2');
player.awakenSkill('rexushen');
player.loseHp(game.countPlayer(function(current){
return current.hasSex('male');
}));
},
ai:{
order:10,
result:{
player:function(player){
if(player.hp!=game.countPlayer(function(current){
return current.hasSex('male');
})) return 0;
return game.hasPlayer(function(current){
return get.attitude(player,current)>4&¤t.countCards('h','tao')
})?1:0;
},
},
},
},
rexushen2:{
charlotte:true,
subSkill:{
count:{
trigger:{
player:"recoverBegin",
},
forced:true,
silent:true,
popup:false,
filter:function(event,player){
if(!event.source) return false;
if(!player.isDying()) return false;
var evt=event.getParent('dying').getParent(2);
return evt.name=='rexushen'&&evt.player==player;
},
content:function(){
trigger.rexushen=true;
},
sub:true,
},
},
group:["rexushen2_count"],
trigger:{
player:"recoverAfter",
},
filter:function(event,player){
if(player.isDying()) return false;
return event.rexushen==true;
},
direct:true,
silent:true,
popup:false,
content:function(){
'step 0'
player.removeSkill('rexushen2');
player.chooseBool('是否令'+get.translation(trigger.source)+'获得技能〖武圣〗和〖当先〗').ai=function(){
return get.attitude(player,trigger.source)>0;
};
'step 1'
if(result.bool){
player.line(trigger.source,'fire');
trigger.source.addSkillLog('new_rewusheng');
trigger.source.addSkillLog('redangxian');
}
},
},
rezhennan:{
audio:'xinfu_zhennan',
trigger:{target:'useCardToTargeted'},
filter:function(event,player){
return event.player!=player&&event.targets&&event.targets.length&&event.targets.length>event.player.hp;
},
direct:true,
content:function(){
'step 0'
var next=player.chooseToDiscard(get.prompt('rezhennan',trigger.player),'弃置一张牌并对其造成1点伤害','he');
next.set('logSkill',['rezhennan',trigger.player]);
next.set('ai',function(card){
var player=_status.event.player;
var target=_status.event.getTrigger().player;
if(get.damageEffect(target,player,player)>0) return 7-get.value(card);
return -1;
});
'step 1'
if(result.bool) trigger.player.damage();
},
},
meiyong:{
inherit:'xinfu_wuniang',
audio:'xinfu_wuniang',
content:function(){
'step 0'
player.chooseTarget(get.prompt('meiyong'),'获得一名其他角色的一张牌,然后其摸一张牌。',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];
event.target=target;
player.logSkill('meiyong',target);
player.gainPlayerCard(target,'he',true);
}
else event.finish();
'step 2'
target.draw();
},
},
relianji:{
audio:'wylianji',
enable:'phaseUse',
usable:1,
filter:function(event,player){
return game.players.length>1;
},
filterTarget:lib.filter.notMe,
targetprompt:['打人','被打'],
selectTarget:2,
multitarget:true,
content:function(){
'step 0'
game.delay(0.5);
if(!targets[0].hasEquipableSlot(1)) event.goto(2);
'step 1'
var target=targets[0];
var equip1=get.cardPile2(function(card){
return get.subtype(card)=='equip1'&&target.canUse(card,target);
});
if(!equip1){
player.popup('连计失败');
game.log('牌堆中无装备');
event.finish();
return;
}
if(equip1.name=='qinggang'&&!lib.inpile.contains('qibaodao')){
equip1.remove();
equip1=game.createCard('qibaodao',equip1.suit,equip1.number);
}
target.$draw(equip1);
target.chooseUseTarget(equip1,'noanimate','nopopup',true);
'step 2'
game.updateRoundNumber();
var list=['nanman','wanjian','huogong','juedou','sha'];
var list2=game.players.slice(0);
list2.remove(player);
for(var i=0;i2;
},
audio:'moucheng',
juexingji:true,
skillAnimation:true,
animationColor:'thunder',
content:function(){
player.awakenSkill('remoucheng');
player.removeSkill('relianji');
player.addSkill('jingong');
player.gainMaxHp();
player.recover();
},
},
shouye:{
audio:2,
group:'shouye_after',
trigger:{target:"useCardToTarget"},
filter:function(event,player){
return event.player!=player&&event.targets.length==1;
},
check:function(event,player){
if(event.player==game.me||event.player.isOnline()) return get.attitude(player,event.player)<0;
return get.effect(player,event.card,event.player,player)<0;
},
usable:1,
logTarget:'player',
content:function(){
'step 0'
player.line(trigger.player,'green');
player.chooseToDuiben(trigger.player);
'step 1'
if(result.bool){
trigger.targets.remove(player);
trigger.getParent().triggeredTargets2.remove(player);
trigger.getParent().shouyeer=player;
}
},
subSkill:{
after:{
sub:true,
trigger:{global:'useCardAfter'},
forced:true,
silent:true,
popup:false,
filter:function(event,player){
if(event.shouyeer!=player) return false;
if(event.cards){
for(var i=0;i0;
}).ai=function(target){
var player=_status.event.player;
return get.effect(target,{name:'guohe'},player,player);
};
'step 1'
if(result.bool){
result.targets.sortBySeat();
event.targets=result.targets;
player.line(result.targets,'green');
player.logSkill('liezhi',result.targets);
}
else event.finish();
'step 2'
event.current=targets.shift();
player.discardPlayerCard(event.current,'hej',true)
if(targets.length) event.redo();
},
subSkill:{
disable:{
sub:true,
trigger:{player:'phaseAfter'},
forced:true,
silent:true,
popup:false,
charlotte:true,
//filter:function(event){return !event.liezhi},
content:function(){player.removeSkill('liezhi_disable')},
},
damage:{
trigger:{player:'damage'},
forced:true,
silent:true,
popup:false,
content:function(){player.addSkill('liezhi_disable')}
},
},
},
xinzhanyi:{
audio:'zhanyi',
enable:'phaseUse',
usable:1,
filterCard:true,
position:'he',
check:function(card){
var player=_status.event.player;
if(player.hp<3) return 0;
var type=get.type(card,'trick');
if(type=='trick'){
return 6-get.value(card);
}
else if(type=='equip'){
if(player.hasSha()&&game.hasPlayer(function(current){
return (player.canUse('sha',current)&&
get.attitude(player,current)<0&&
get.effect(current,{name:'sha'},player,player)>0)
})){
return 6-get.value(card);
}
}
return 0;
},
content:function(){
player.loseHp();
switch(get.type(cards[0],'trick',cards[0].original=='h'?player:false)){
case 'basic':player.addTempSkill('xinzhanyi_basic');player.addMark('xinzhanyi_basic1',1,false);break;
case 'equip':player.addTempSkill('xinzhanyi_equip');break;
case 'trick':player.addTempSkill('xinzhanyi_trick');player.draw(3);break;
}
},
ai:{
order:9.1,
result:{
player:1
}
}
},
xinzhanyi_basic1:{
trigger:{player:"useCard"},
filter:function(event,player){
return get.type(event.card,false)=='basic'&&player.hasMark('xinzhanyi_basic1');
},
forced:true,
silent:true,
popup:false,
content:function(){
if(!trigger.baseDamage) trigger.baseDamage=1;
var num=player.countMark('xinzhanyi_basic1');
trigger.baseDamage+=num;
player.removeMark('xinzhanyi_basic1',num,false);
game.log(trigger.card,'的伤害值/回复值','#y+'+num);
},
},
xinzhanyi_basic:{
group:['xinzhanyi_basic1'],
onremove:function(p,s){
delete p.storage[s+1];
},
hiddenCard:function(player,name){
return get.type(name)=='basic'&&player.countCards('h',{type:'basic'})>0;
},
enable:"chooseToUse",
filter:function(event,player){
if(!player.hasCard(function(card){
return get.type(card)=='basic';
},'hs')) return false;
for(var name of lib.inpile){
if(get.type(name)!='basic') continue;
if(event.filterCard({name:name},player,event)) return true;
}
return false;
},
chooseButton:{
dialog:function(event,player){
var list=[];
for(var name of lib.inpile){
if(get.type(name)!='basic') continue;
if(event.filterCard({name:name},player,event)) list.push(['基本','',name]);
if(name!='sha') continue;
for(var j of lib.inpile_nature){
if(event.filterCard({name:name,nature:j},player,event)) list.push(['基本','','sha',j]);
}
}
return ui.create.dialog('战意',[list,'vcard'],'hidden');
},
check:function(button){
var player=_status.event.player;
var card={name:button.link[2],nature:button.link[3]};
if(game.hasPlayer(function(current){
return player.canUse(card,current)&&get.effect(current,card,player,player)>0;
})){
switch(button.link[2]){
case 'tao':return 5;
case 'jiu':{
if(player.countCards('hs',{type:'basic'})>=2) return 3;
};
case 'sha':
if(button.link[3]=='fire') return 2.95;
else if(button.link[3]=='thunder'||button.link[3]=='ice') return 2.92;
else return 2.9;
}
}
return 0;
},
backup:function(links,player){
return {
audio:'zhanyi',
filterCard:function(card,player,target){
return get.type(card)=='basic';
},
check:function(card,player,target){
return 9-get.value(card);
},
viewAs:{name:links[0][2],nature:links[0][3]},
position:'hs',
popname:true,
}
},
prompt:function(links,player){
return '将一张基本牌当做'+get.translation(links[0][3]||'')+get.translation(links[0][2])+'使用';
},
},
ai:{
order:function(){
var player=_status.event.player;
var event=_status.event;
if(event.filterCard({name:'jiu'},player,event)&&get.effect(player,{name:'jiu'})>0&&player.countCards('hs',{type:'basic'})>=2){
return 3.3;
}
return 3.1;
},
respondSha:true,
skillTagFilter:function(player,tag,arg){
if(player.hasCard(function(card){
return get.type(card)=='basic';
},'hs')){
if(tag=='respondSha'){
if(arg!='use') return false;
}
}
else{
return false;
}
},
result:{
player:1,
},
},
},
xinzhanyi_equip:{
audio:'zhanyi',
trigger:{player:'useCardToPlayered'},
forced:true,
filter:function(event,player){
return event.card.name=='sha'&&event.target.countCards('he')>0&&event.targets.length==1;
},
check:function(event,player){
return get.attitude(player,event.target)<0;
},
content:function(){
'step 0'
trigger.target.chooseToDiscard('he',true,2);
'step 1'
if(result.bool&&result.cards&&result.cards.length){
if(result.cards.length==1){
event._result={bool:true,links:result.cards.slice(0)};
}
else player.chooseButton(['选择获得其中的一张牌',result.cards.slice(0)],true).ai=function(button){
return get.value(button.link);
};
}
else event.finish();
'step 2'
if(result.links) player.gain(result.links,'gain2');
}
},
xinzhanyi_trick:{
mod:{
wuxieRespondable:function(){
return false;
}
}
},
"xinfu_daigong":{
usable:1,
audio:2,
trigger:{
player:"damageBegin4",
},
filter:function(event,player){
return event.source!=undefined&&player.countCards('h')>0;
},
content:function(){
'step 0'
player.showHandcards();
'step 1'
var cards=player.getCards('h');
var suits=[];
for(var i=0;i0) return 6.5-get.value(card);
return 0;
};
'step 2'
if(result.bool){
trigger.source.give(result.cards,player,true);
}
else trigger.cancel();
},
},
xinfu_zhaoxin:{
group:["zhaoxin_give"],
intro:{
content:'expansion',
markcount:'expansion',
},
enable:"phaseUse",
usable:1,
audio:2,
filter:function(event,player){
return player.countCards('h')>0&&player.getExpansions('xinfu_zhaoxin').length<3;
},
filterCard:true,
selectCard:function(){
var player=_status.event.player;
return [1,3-player.getExpansions('xinfu_zhaoxin').length];
},
discard:false,
lose:false,
delay:false,
content:function(){
player.addToExpansion(player,'give',cards).gaintag.add('xinfu_zhaoxin');
player.draw(cards.length);
},
check:function(card){
return 6-get.value(card);
},
onremove:function(player,skill){
var cards=player.getExpansions(skill);
if(cards.length) player.loseToDiscardpile(cards);
},
ai:{
order:1,
result:{
player:1,
},
},
},
zhaoxin_give:{
trigger:{
global:"phaseDrawAfter",
},
filter:function(event,player){
if(!player.getExpansions('xinfu_zhaoxin').length) return false;
return player==event.player||player.inRange(event.player);
},
direct:true,
content:function(){
'step 0'
player.chooseCardButton(get.prompt('xinfu_zhaoxin',trigger.player),player.getExpansions('xinfu_zhaoxin'),function(button){
return true;
}).set('ai',function(button){
return 1+Math.random();
});
'step 1'
if(result.bool){
event.card=result.links[0];
player.logSkill('xinfu_zhaoxin',target);
player.line(trigger.player,'thunder');
player.showCards(event.card);
}
else event.finish();
'step 2'
trigger.player.chooseBool('是否获得'+get.translation(event.card)+'?').ai=function(){
return get.attitude(trigger.player,player)>0;
};
'step 3'
if(result.bool){
trigger.player.gain(event.card,'give',player,'bySelf');
player.chooseBool('是否对'+get.translation(trigger.player)+'造成一点伤害?').ai=function(){
return get.damageEffect(trigger.player,player,player)>0
};
}
else{
trigger.player.chat('拒绝');
event.finish();
}
'step 4'
if(result.bool){
trigger.player.damage('nocard');
}
},
},
"xinfu_qianchong":{
audio:3,
group:["qc_weimu","qc_mingzhe"],
subSkill:{
effect:{
charlotte:true,
onremove:true,
mod:{
cardUsable:function(card,player){
var type=get.type2(card);
if(player.getStorage('xinfu_qianchong_effect').contains(type)) return Infinity;
},
targetInRange:function(card,player){
var type=get.type2(card);
if(player.getStorage('xinfu_qianchong_effect').contains(type)) return true;
},
},
},
},
trigger:{
player:"phaseUseBegin",
},
direct:true,
filter:function(event,player){
var es=player.getCards('e');
if(!es.length) return true;
var col=get.color(es[0]);
for(var i=0;i1){
player.chooseControl(list).set('ai',function(){
return list[0];
}).set('prompt',get.prompt('xinfu_qianchong')).set('prompt2','你可以选择一种类别的牌,然后你本回合内使用该类别的牌时没有次数和距离限制。');
}
else event.finish();
'step 1'
if(result.control&&result.control!='cancel2'){
player.logSkill('xinfu_qianchong');
var type=result.control;
player.addTempSkill('xinfu_qianchong_effect');
player.markAuto('xinfu_qianchong_effect',[type]);
var str=get.translation(type)+'牌';
game.log(player,'声明了','#y'+str);
player.popup(str,'thunder');
}
},
},
"qc_weimu":{
audio:"xinfu_qianchong",
mod:{
targetEnabled:function(card,player,target){
var bool=true;
var es=target.getCards('e');
if(!es.length) bool=false;
for(var i=0;i0&&num<=player.hp
},
forced:true,
content:function(){
'step 0'
var num=0;
player.getHistory('lose',function(evt){
var evt2=evt.getParent();
if(evt2.name=='useCard'&&evt2.player==player&&get.type(evt2.card,null,false)=='equip') return;
if(evt.cards2) num+=evt.cards2.length;
});
if(num>0){
player.draw(num);
}
},
},
"rw_bagua_skill":{
inherit:"bagua_skill",
audio:true,
content:function(){
"step 0"
player.judge('rewrite_bagua',function(card){return (get.suit(card)!='spade')?1.5:-0.5}).judge2=function(result){
return result.bool;
};
"step 1"
if(result.judge>0){
trigger.untrigger();
trigger.set('responded',true);
trigger.result={bool:true,card:{name:'shan'}}
}
},
},
"rw_baiyin_skill":{
inherit:"baiyin_skill",
audio:true,
},
"rw_lanyinjia":{
inherit:"lanyinjia",
audio:"lanyinjia",
},
"rw_minguangkai_cancel":{
inherit:"minguangkai_cancel",
},
"rw_minguangkai_link":{
inherit:"minguangkai_link",
trigger:{
player:"linkBefore",
},
forced:true,
priority:20,
filter:function(event,player){
return !player.isLinked();
},
content:function(){
trigger.cancel();
},
ai:{
effect:{
target:function(card,player,target,current){
if(['tiesuo','lulitongxin'].contains(card.name)){
return 'zerotarget';
}
},
},
},
},
"rw_renwang_skill":{
inherit:"renwang_skill",
audio:true,
filter:function(event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
card:event.card
})) return false;
return (event.card.name=='sha'&&(get.suit(event.card)=='heart'||get.color(event.card)=='black'))
},
ai:{
effect:{
target:function(card,player,target){
if(target.hasSkillTag('unequip2')) return;
if(player.hasSkillTag('unequip',false,{
name:card?card.name:null,
target:player,
card:card
})||player.hasSkillTag('unequip_ai',false,{
name:card?card.name:null,
target:player,
card:card
})) return;
if(card.name=='sha'&&['spade','club','heart'].contains(get.suit(card))) return 'zerotarget';
},
},
},
},
"rw_tengjia1":{
inherit:"tengjia1",
audio:true,
},
"rw_tengjia2":{
inherit:"tengjia2",
audio:true,
},
"rw_tengjia3":{
audio:"rw_tengjia1",
inherit:"rw_minguangkai_link",
ai:{
effect:{
target:function(card,player,target,current){
if(['tiesuo','lulitongxin'].contains(card.name)){
return 'zeroplayertarget';
}
},
},
},
},
rw_tengjia4:{
inherit:"tengjia3",
audio:"rw_tengjia1",
},
xinfu_pingcai:{
subSkill:{backup:{}},
wolong_card:function(){
'step 0'
var ingame=game.hasPlayer(function(current){
return ['sp_zhugeliang','re_sp_zhugeliang','ol_sp_zhugeliang','prp_zhugeliang'].contains(current.name)||['sp_zhugeliang','re_sp_zhugeliang','ol_sp_zhugeliang','prp_zhugeliang'].contains(current.name2);
})?true:false;
var prompt='请选择';
prompt+=ingame?'至多两名':'一名';
prompt+='角色,对其造成1点火焰伤害';
var range=ingame?[1,2]:[1,1]
player.chooseTarget(prompt,range).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player,'fire');
});
'step 1'
if(result.bool&&result.targets.length){
player.line(result.targets,'fire');
result.targets.sortBySeat();
for(var i=0;itarget.canEquip(card))
}
var from=ui.selected.targets[0];
if(target.isMin()) return false;
var es=from.getCards('e');
for(var i=0;i0;
}
});
next.set('ingame',event.ingame)
next.set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target);
if(ui.selected.targets.length==0){
if(att<0){
if(game.hasPlayer(function(current){
if(get.attitude(player,current)>0){
var es=target.getCards('e');
for(var i=0;i0){
var es=ui.selected.targets[0].getCards('e');
var i;
for(i=0;i1;
})) return 1+Math.random();
else return 1;
}
else if(name=='wolong_card'){
if(game.hasPlayer(function(current){
return get.damageEffect(current,player,player,'fire')>0;
})) return 1.2+Math.random();
else return 0.5;
}
else return 0.6;
},
backup:function(links,player){
return {
audio:'xinfu_pingcai',
filterCard:()=>false,
selectCard:-1,
takara:links[0][2],
content:lib.skill.xinfu_pingcai.contentx,
}
},
},
contentx:function(){
"step 0"
event.pingcai_delayed=true;
var name=lib.skill.xinfu_pingcai_backup.takara;
event.cardname=name;
event.videoId=lib.status.videoId++;
if(player.isUnderControl()){
game.swapPlayerAuto(player);
}
var switchToAuto=function(){
game.pause();
game.countChoose();
event.timeout=setTimeout(function(){
_status.imchoosing=false;
event._result={
bool:true,
};
game.resume();
},9000);
};
var createDialog=function(player,id,name){
if(player==game.me) return;
var dialog=ui.create.dialog('forcebutton','hidden');
var str=get.translation(player)+'正在擦拭宝物上的灰尘…';
var canSkip=(!_status.connectMode);
if(canSkip) str+='
(点击宝物可以跳过等待AI操作)';
dialog.textPrompt=dialog.add(''+str+'
');
dialog.classList.add('fixed');
dialog.classList.add('scroll1');
dialog.classList.add('scroll2');
dialog.classList.add('fullwidth');
dialog.classList.add('fullheight');
dialog.classList.add('noupdate');
dialog.videoId=id;
var canvas2=document.createElement('canvas');
dialog.canvas_viewer=canvas2;
dialog.appendChild(canvas2);
canvas2.classList.add('grayscale');
canvas2.style.position="absolute";
canvas2.style.width='249px';
canvas2.style.height='249px';
canvas2.style['border-radius']='6px';
canvas2.style.left="calc(50% - 125px)";
canvas2.style.top="calc(50% - 125px)";
canvas2.width=249;
canvas2.height=249;
canvas2.style.border='3px solid';
var ctx2=canvas2.getContext('2d');
var img=new Image();
img.src=lib.assetURL+'image/card/'+name+'.png';
img.onload=function(){
ctx2.drawImage(this,0,0,this.width,this.height,0,0,canvas2.width,canvas2.height);
}
if(canSkip){
var skip=function(){
if(event.pingcai_delayed){
delete event.pingcai_delayed;
clearTimeout(event.timeout);
event._result={
bool:true,
};
game.resume();
canvas2.removeEventListener(lib.config.touchscreen?'touchend':'click',skip);
}
};
canvas2.addEventListener(lib.config.touchscreen?'touchend':'click',skip);
}
dialog.open();
};
var chooseButton=function(id,name){
var event=_status.event;
_status.xinfu_pingcai_finished=false;
var dialog=ui.create.dialog('forcebutton','hidden');
dialog.textPrompt=dialog.add('擦拭掉宝物上的灰尘吧!
');
event.switchToAuto=function(){
event._result={
bool:_status.xinfu_pingcai_finished,
};
game.resume();
_status.imchoosing=false;
_status.xinfu_pingcai_finished=true;
};
dialog.classList.add('fixed');
dialog.classList.add('scroll1');
dialog.classList.add('scroll2');
dialog.classList.add('fullwidth');
dialog.classList.add('fullheight');
dialog.classList.add('noupdate');
dialog.videoId=id;
var canvas=document.createElement('canvas');
var canvas2=document.createElement('canvas');
dialog.appendChild(canvas2);
dialog.appendChild(canvas);
canvas.style.position="absolute";
canvas.style.width='249px';
canvas.style.height='249px';
canvas.style['border-radius']='6px';
canvas.style.left="calc(50% - 125px)";
canvas.style.top="calc(50% - 125px)";
canvas.width=249;
canvas.height=249;
canvas.style.border='3px solid';
canvas2.style.position="absolute";
canvas2.style.width='249px';
canvas2.style.height='249px';
canvas2.style['border-radius']='6px';
canvas2.style.left="calc(50% - 125px)";
canvas2.style.top="calc(50% - 125px)";
canvas2.width=249;
canvas2.height=249;
canvas2.style.border='3px solid';
var ctx=canvas.getContext('2d');
var ctx2=canvas2.getContext('2d');
var img=new Image();
img.src=lib.assetURL+'image/card/'+name+'.png';
img.onload=function(){
ctx2.drawImage(this,0,0,this.width,this.height,0,0,canvas2.width,canvas2.height);
}
ctx.fillStyle='lightgray';
ctx.fillRect(0,0,canvas.width,canvas.height);
canvas.onmousedown=function(ev){
//if(_status.xinfu_pingcai_finished) return;
canvas.onmousemove=function(e){
if(_status.xinfu_pingcai_finished) return;
ctx.beginPath();
ctx.clearRect(e.offsetX-16,e.offsetY-16,32,32);
var data=ctx.getImageData(canvas.width*0.1,canvas.height*0.1,canvas.width*0.8,canvas.height*0.8).data;
var sum=0;
for(var i=3;i=(canvas.width*canvas.height)*0.6){
//ctx.clearRect(0,0,canvas.width,canvas.height);
if(!_status.xinfu_pingcai_finished){
_status.xinfu_pingcai_finished=true;
event.switchToAuto();
}
}
}
}
canvas.ontouchstart=function(ev){
//if(_status.xinfu_pingcai_finished) return;
canvas.ontouchmove=function(e){
if(_status.xinfu_pingcai_finished) return;
ctx.beginPath();
var rect=canvas.getBoundingClientRect();
var X=((e.touches[0].clientX-rect.left)/rect.width*canvas.width);
var Y=((e.touches[0].clientY-rect.top)/rect.height*canvas.height);
ctx.clearRect(X-16,Y-16,32,32);
var data=ctx.getImageData(canvas.width*0.1,canvas.height*0.1,canvas.width*0.8,canvas.height*0.8).data;
var sum=0;
for(var i=3;i=(canvas.width*canvas.height)*0.6){
if(!_status.xinfu_pingcai_finished){
_status.xinfu_pingcai_finished=true;
event.switchToAuto();
}
}
}
}
canvas.onmouseup=function(ev){
canvas.onmousemove=null;
}
canvas.ontouchend=function(ev){
canvas.ontouchmove=null;
}
dialog.open();
game.pause();
game.countChoose();
};
//event.switchToAuto=switchToAuto;
game.broadcastAll(createDialog,player,event.videoId,name);
if(event.isMine()){
chooseButton(event.videoId,name);
}
else if(event.isOnline()){
event.player.send(chooseButton,event.videoId,name);
event.player.wait();
game.pause();
}
else{
switchToAuto();
}
"step 1"
var result=event.result||result;
if(!result) result={bool:false};
event._result=result;
game.broadcastAll(function(id,result,player){
_status.xinfu_pingcai_finished=true;
var dialog=get.idDialog(id);
if(dialog){
dialog.textPrompt.innerHTML=''+(get.translation(player)+'擦拭宝物'+(result.bool?'成功!':'失败…'))+'
';
if(result.bool&&dialog.canvas_viewer) dialog.canvas_viewer.classList.remove('grayscale');
}
if(!_status.connectMode) delete event.pingcai_delayed;
},event.videoId,result,player);
game.delay(2.5);
"step 2"
game.broadcastAll('closeDialog',event.videoId);
if(result.bool){
player.logSkill('pcaudio_'+event.cardname);
event.insert(lib.skill.xinfu_pingcai[event.cardname],{
player:player,
});
}
},
ai:{
order:7,
fireAttack:true,
threaten:1.7,
result:{
player:1,
},
},
},
"xinfu_pdgyingshi":{
mod:{
targetEnabled:function(card,player,target){
if(get.type(card)=='delay'){
return false;
}
},
},
trigger:{
player:['phaseZhunbeiBefore','phaseJieshuBefore'],
},
forced:true,
audio:2,
group:'xinfu_pdgyingshi2',
content:function(){
trigger.cancel();
game.log(player,'跳过了',event.triggername=='phaseZhunbeiBefore'?'准备阶段':'结束阶段');
},
},
xinfu_pdgyingshi2:{
popup:false,
trigger:{
player:"phaseJudgeBefore",
},
forced:true,
content:function(){
trigger.cancel();
game.log(player,'跳过了判定阶段');
},
},
"pcaudio_wolong_card":{
audio:true,
},
"pcaudio_fengchu_card":{
audio:true,
},
"pcaudio_shuijing_card":{
audio:true,
},
"pcaudio_xuanjian_card":{
audio:true,
},
"yizan_use":{
audio:'yizan_respond_shan',
intro:{
content:"已发动过#次",
},
enable:["chooseToUse","chooseToRespond"],
hiddenCard:function(player,name){
if(get.type(name)!='basic') return false;
if(!player.storage.yizan&&player.countCards('hes')<2) return false;
return player.hasCard(function(card){
return get.type(card)=='basic';
},'hs');
},
filter:function(event,player){
if(!player.storage.yizan&&player.countCards('hes')<2) return false;
if(!player.hasCard(function(card){
return get.type(card)=='basic';
},'hs')) return false;
for(var name of lib.inpile){
if(get.type(name)!='basic') continue;
if(event.filterCard({name:name},player,event)) return true;
if(name=='sha'){
for(var nature of lib.inpile_nature){
if(event.filterCard({name:'sha',nature:nature},player,event)) return true;
}
}
}
return false;
},
chooseButton:{
dialog:function(event,player){
var list=[];
for(var name of lib.inpile){
if(get.type(name)!='basic') continue;
if(event.filterCard({name:name},player,event)){
list.push(['基本','',name]);
}
if(name=='sha'){
for(var nature of lib.inpile_nature){
if(event.filterCard({name:name,nature:nature},player,event)) list.push(['基本','','sha',nature]);
}
}
}
return ui.create.dialog('翊赞',[list,'vcard'],'hidden');
},
check:function(button){
var player=_status.event.player;
var card={name:button.link[2],nature:button.link[3]};
if(_status.event.getParent().type!='phase'||game.hasPlayer(function(current){
return player.canUse(card,current)&&get.effect(current,card,player,player)>0;
})){
switch(button.link[2]){
case 'tao':case 'shan':return 5;
case 'jiu':{
if(player.storage.yizan&&player.countCards('hs',{type:'basic'})>2) return 3;
};
case 'sha':
if(button.link[3]=='fire') return 2.95;
else if(button.link[3]=='thunder'||button.link[3]=='ice') return 2.92;
else return 2.9;
}
}
return 0;
},
backup:function(links,player){
return {
audio:'yizan_respond_shan',
filterCard:function(card,player,target){
if(player.storage.yizan) return get.type(card)=='basic';
else if(ui.selected.cards.length){
if(get.type(ui.selected.cards[0])=='basic') return true;
return get.type(card)=='basic';
}
return true;
},
complexCard:true,
selectCard:function(){
var player=_status.event.player;
if(player.storage.yizan) return 1;
return 2;
},
check:function(card,player,target){
if(!ui.selected.cards.length&&get.type(card)=='basic') return 6;
else return 6-get.value(card);
},
viewAs:{name:links[0][2],nature:links[0][3]},
position:'hes',
popname:true,
precontent:function(){
player.addMark('yizan_use',1,false);
},
}
},
prompt:function(links,player){
var str=player.storage.yizan?'一张基本牌':'两张牌(其中至少应有一张基本牌)';
return '将'+str+'当做'+get.translation(links[0][3]||'')+get.translation(links[0][2])+'使用或打出';
},
},
ai:{
order:function(){
var player=_status.event.player;
var event=_status.event;
if(event.filterCard({name:'jiu'},player,event)&&get.effect(player,{name:'jiu'})>0&&player.storage.yizan&&player.countCards('hs',{type:'basic'})>2){
return 3.3;
}
return 3.1;
},
skillTagFilter:function(player,tag,arg){
if(tag=='fireAttack') return true;
if(!player.storage.yizan&&player.countCards('hes')<2) return false;
if(!player.hasCard(function(card){
return get.type(card)=='basic';
},'hes')){
return false;
}
},
result:{
player:1,
},
respondSha:true,
respondShan:true,
fireAttack:true,
},
},
"yizan_respond_shan":{
audio:2,
},
"xinfu_longyuan":{
audio:2,
forced:true,
unique:true,
juexingji:true,
trigger:{
player:'phaseZhunbeiBegin',
},
skillAnimation:true,
animationColor:'orange',
filter:function(event,player){
return player.countMark('yizan_use')>=3;
},
content:function(){
player.awakenSkill('xinfu_longyuan');
player.storage.yizan=true;
},
derivation:'yizan_rewrite',
},
xinfu_jingxie:{
audio:2,
video:function(player,info){
var l2=player.getCards(info[0]?'e':'h'),l1=info[1];
for(var j=0;jget.subtype(card)=='equip2'&&player.canRecast(card),
filter:(event,player)=>{
if(event.type!='dying') return false;
if(player!=event.dying) return false;
return player.hasCard(card=>lib.skill.xinfu_jingxie2.filterCard(card,player),'he');
},
position:"he",
discard:false,
lose:false,
delay:false,
content:function(){
'step 0'
player.recast(cards);
'step 1'
var num=1-player.hp;
if(num) player.recover(num);
},
ai:{
order:0.5,
skillTagFilter:function(player,arg,target){
if(player!=target) return false;
return player.hasCard(card=>_status.connectMode&&get.position(card)=='h'||get.subtype(card)=='equip2'&&player.canRecast(card),'he');
},
save:true,
result:{
player:function(player){
return 10;
},
},
},
},
"xinfu_qiaosi":{
enable:"phaseUse",
usable:1,
content:function(){
'step 0'
if(get.isLuckyStar(player)){
event.num=6;
player.throwDice(6);
}
else player.throwDice();
'step 1'
event.cards=get.cards(event.num);
player.showCards(event.cards);
'step 2'
player.gain(event.cards,'gain2');
player.chooseControl().set('choiceList',[
'将'+get.cnNumber(event.num)+'张牌交给一名其他角色',
'弃置'+get.cnNumber(event.num)+'张牌',
]).set('ai',function(){
if(game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)>2;
})) return 0;
return 1;
});
'step 3'
if(result.index==0){
player.chooseCardTarget({
position:'he',
filterCard:true,
selectCard:event.num,
filterTarget:function(card,player,target){
return player!=target;
},
ai1:function(card){
return 1;
},
ai2:function(target){
var att=get.attitude(_status.event.player,target);
return att;
},
prompt:'请选择要送人的卡牌',
forced:true,
});
}
else{
player.chooseToDiscard(event.num,true,'he');
event.finish();
}
'step 4'
if(result.bool){
var target=result.targets[0];
player.give(result.cards,target);
}
},
ai:{
order:7.5,
result:{
player:1,
},
},
},
zhaohuo:{
audio:2,
audioname:['re_taoqian'],
trigger:{global:'dying'},
forced:true,
//priority:12,
filter:function(event,player){
return event.player!=player&&player.maxHp>1;
},
content:function(){
'step 0'
event.num=player.maxHp-1;
player.loseMaxHp(event.num,true);
'step 1'
player.draw(event.num);
}
},
yixiang:{
audio:2,
audioname:['re_taoqian'],
trigger:{target:'useCardToTargeted'},
frequent:true,
filter:function(event,player){
if(event.player.hp<=player.hp) return false;
//if(event.targets.length>1) return false;
var hs=player.getCards('h');
var names=['sha','shan','tao','jiu','du'];
for(var i=0;iplayer.maxHp;
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt2('yirang'),function(card,player,target){
return target.maxHp>player.maxHp;
}).set('ai',function(target){
return (get.attitude(_status.event.player,target)-2)*target.maxHp;
});
'step 1'
if(result.bool){
var cards=player.getCards('he',function(card){
return get.type(card)!='basic';
});
var target=result.targets[0];
var types=[];
for(var i=0;i0;
}).ai=function(target){
return -get.attitude(player,target);
};
'step 1'
if(result.bool){
player.logSkill('shejian',result.targets);
player.discardPlayerCard(result.targets[0],'he',true);
}
else{
event.finish();
}
},
},
shixin:{
audio:2,
trigger:{player:'damageBegin4'},
filter:function(event){
return event.nature=='fire';
},
forced:true,
content:function(){
trigger.cancel();
},
ai:{
nofire:true,
effect:{
target:function(card,player,target,current){
if(get.tag(card,'fireDamage')) return 'zerotarget';
}
}
}
},
fenyin:{
locked:false,
mod:{
aiOrder:function(player,card,num){
if(typeof card=='object'&&player==_status.currentPhase){
var evt=player.getLastUsed();
if(evt&&evt.card&&get.color(evt.card)!='none'&&get.color(card)!='none'&&get.color(evt.card)!=get.color(card)){
return num+10;
}
}
},
},
audio:2,
trigger:{player:'useCard'},
frequent:true,
//usable:3,
filter:function(event,player){
if(_status.currentPhase!=player) return false;
var evt=player.getLastUsed(1);
if(!evt) return false;
var color1=get.color(evt.card);
var color2=get.color(event.card);
return color1&&color2&&color1!='none'&&color2!='none'&&color1!=color2;
},
content:function(){
player.draw();
},
ai:{
threaten:3,
},
},
dujin:{
audio:2,
trigger:{player:'phaseDrawBegin2'},
frequent:true,
preHidden:true,
filter:function(event,player){
return !event.numFixed;
},
content:function(){
trigger.num+=1+Math.floor(player.countCards('e')/2);
}
},
yingjian:{
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
audio:'qingyi',
content:function(){
player.chooseUseTarget('###是否发动【影箭】?###视为使用一张没有距离限制的【杀】',{name:'sha'},false,'nodistance').logSkill='yingjian';
},
ai:{
threaten:function(player,target){
return 1.6;
}
}
},
tunchu:{
audio:2,
trigger:{player:'phaseDrawBegin2'},
frequent:true,
preHidden:true,
locked:false,
filter:function(event,player){
if(event.numFixed||player.getExpansions('tunchu').length) return false;
return true;
},
content:function(){
trigger.num+=2;
player.addTempSkill('tunchu_choose','phaseDrawAfter');
},
onremove:function(player,skill){
var cards=player.getExpansions(skill);
if(cards.length) player.loseToDiscardpile(cards);
},
intro:{
content:'expansion',
markcount:'expansion',
},
mod:{
cardEnabled:function(card,player){
if(player.getExpansions('tunchu').length&&card.name=='sha'){
return false;
}
},
},
subSkill:{
choose:{
trigger:{player:'phaseDrawEnd'},
forced:true,
popup:false,
charlotte:true,
content:function(){
'step 0'
player.removeSkill('tunchu_choose');
var nh=player.countCards('h');
if(nh){
player.chooseCard('h',[1,nh],'将任意张手牌置于你的武将牌上').set('ai',function(card){
var player=_status.event.player;
var count=game.countPlayer(function(current){
return get.attitude(player,current)>2&¤t.hp-current.countCards('h')>1;
});
if(ui.selected.cards.length>=count) return -get.value(card);
return 5-get.value(card);
});
}
else{
event.finish();
}
'step 1'
if(result.bool){
player.addToExpansion(result.cards,player,'giveAuto').gaintag.add('tunchu');
}
}
},
}
},
shuliang:{
audio:2,
trigger:{global:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player.getExpansions('tunchu').length>0&&event.player.countCards('h')0);
player.chooseCardButton(get.prompt('shuliang',trigger.player),player.getExpansions('tunchu')).set('ai',function(){
if(_status.event.goon) return 1;
return 0;
}).set('goon',goon);
'step 1'
if(result.bool){
player.logSkill('shuliang',trigger.player);
player.loseToDiscardpile(result.links);
trigger.player.draw(2);
}
},
ai:{combo:'tunchu'},
},
choulve:{
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'
var str='令一名其他角色交给你一张牌';
var history=player.getAllHistory('damage',function(evt){
return evt.card&&evt.card.name&&lib.card[evt.card.name];
})
if(history.length) event.cardname=history[history.length-1].card.name;
if(event.cardname){
str+='若其如此做,视为你使用【'+get.translation(event.cardname)+'】';
}
var goon=true;
if(event.cardname){
goon=game.hasPlayer(function(current){
return player.canUse(event.cardname,current)&&get.effect(current,{name:event.cardname},player,player)>0;
});
}
player.chooseTarget(get.prompt('choulve'),str,function(card,player,target){
return target!=player&&target.countCards('he');
}).set('ai',function(target){
if(!_status.event.goon) return 0;
var player=_status.event.player;
if(get.attitude(player,target)>=0&&get.attitude(target,player)>=0){
return Math.sqrt(target.countCards('he'));
}
return 0;
}).set('goon',goon);
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('choulve',target);
target.chooseCard('he','是否交给'+get.translation(player)+'一张牌?',
event.cardname?('若如此做,视为'+get.translation(player)+
'使用【'+get.translation(event.cardname)+'】'):null).set('ai',function(card){
if(_status.event.goon) return 7-get.value(card);
return 0;
}).set('goon',get.attitude(target,player)>1);
event.target=target;
}
else{
event.finish();
}
'step 2'
if(result.bool){
event.target.give(result.cards,player);
if(event.cardname){
player.chooseUseTarget(event.cardname,true,false);
}
}
},
},
polu:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
if(!lib.inpile.contains('ly_piliche')) return true;
return !!get.cardPile(function(card){
return card.name=='ly_piliche';
});
},
content:function(){
var card;
if(!lib.inpile.contains('ly_piliche')){
card=game.createCard2('ly_piliche','diamond',1);
lib.inpile.push('ly_piliche');
}
else card=get.cardPile(function(card){
return card.name=='ly_piliche';
});
player.chooseUseTarget(card,true,'nopopup');
},
group:'polu_damage',
subSkill:{
damage:{
trigger:{player:'damageEnd'},
forced:true,
filter:function(event,player){
return !player.getEquips('ly_piliche').length;
},
content:function(){
'step 0'
event.count=trigger.num;
'step 1'
event.count--;
player.draw();
'step 2'
var card=get.cardPile2(function(card){
return get.subtype(card,false)=='equip1'&&player.canUse(card,player);
});
if(card) player.chooseUseTarget(card,true,'nopopup');
'step 3'
if(event.count>0&&!player.getEquips('ly_piliche').length) event.goto(1);
},
},
},
},
ly_piliche:{
trigger:{source:'damageSource'},
check:function(event,player){
return get.attitude(player,event.player)*get.value(event.player.getDiscardableCards(player,'e'),event.player)<=0;
},
filter:function(event,player){
return player!=event.player&&event.player.countDiscardableCards(player,'e')>0;
},
logTarget:'player',
content:function(){
player.discardPlayerCard(trigger.player,'e',true,trigger.player.countCards('e'));
}
},
xinzhilve:{
enable:'phaseUse',
audio:'zhilve',
usable:1,
chooseButton:{
dialog:function(event,player){
var list=[
'移动场上的一张牌',
'摸一张牌并视为使用一张【杀】',
];
var choiceList=ui.create.dialog('知略:失去1点体力并...','forcebutton','hidden');
for(var i=0;i';
str+=list[i];
if(!bool) str+='';
str+='';
var next=choiceList.add(str);
next.firstChild.addEventListener(lib.config.touchscreen?'touchend':'click',ui.click.button);
next.firstChild.link=i;
for(var j in lib.element.button){
next[j]=lib.element.button[i];
}
choiceList.buttons.add(next.firstChild);
}
return choiceList;
},
filter:function(button,player){
if(button.link==0) return player.canMoveCard();
return player.hasUseTarget({name:'sha',isCard:true},false);
},
check:function(button){
return button.link;
},
backup:function(links){
return lib.skill['xinzhilve_'+['move','use'][links[0]]];
},
prompt:function(){return '请选择【杀】的目标'},
},
ai:{
order:function(item,player){
return get.order({name:'sha'})+0.1;
},
result:{
player:function(player){
if(player.hp>2&&player.hasValueTarget({name:'sha'})) return 1;
return 0;
},
},
},
},
xinzhilve_move:{
audio:'zhilve',
filterCard:function(){return false},
selectCard:-1,
delay:false,
content:function(){
'step 0'
event.forceDie=true;
if(!player.canMoveCard(null,event.nojudge)){
event.finish();
return;
}
var next=player.chooseTarget(2,function(card,player,target){
if(ui.selected.targets.length){
var from=ui.selected.targets[0];
var js=from.getCards('j');
for(var i=0;i0;
}
});
next.set('nojudge',event.nojudge||false);
next.set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target);
var sgnatt=get.sgn(att);
if(ui.selected.targets.length==0){
if(att>0){
if(!_status.event.nojudge&&target.countCards('j',function(card){
return game.hasPlayer(function(current){
return current.canAddJudge(card)&&get.attitude(player,current)<0;
})
})) return 14;
if(target.countCards('e',function(card){
return get.value(card,target)<0&&game.hasPlayer(function(current){
return current!=target&&get.attitude(player,current)<0&¤t.canEquip(card)
});
})>0) return 9;
}
else if(att<0){
if(game.hasPlayer(function(current){
if(current!=target&&get.attitude(player,current)>0){
var es=target.getCards('e');
for(var i=0;i0&¤t.canEquip(es[i])&&get.value(es[i],current)>0) return true;
}
}
})){
return -att;
}
}
return 0;
}
var es=ui.selected.targets[0].getCards('e');
var i;
var att2=get.sgn(get.attitude(player,ui.selected.targets[0]));
for(i=0;i0&&get.attitude(player,targets1)<0){
if(get.position(button.link)=='j') return 12;
if(get.value(button.link,targets0)<0) return 10;
return 0;
}
else{
if(get.position(button.link)=='j') return -10;
return get.equipValue(button.link);
}
},targets[0]).set('nojudge',event.nojudge||false).set('targets0',targets[0]).set('targets1',targets[1]).set('filterButton',function(button){
var targets1=_status.event.targets1;
if(get.position(button.link)=='j'){
if(_status.event.nojudge) return false;
return targets1.canAddJudge(button.link);
}
else{
return targets1.canEquip(button.link);
}
});
}
else{
event.finish();
}
'step 4'
if(result.bool&&result.links.length){
player.loseHp();
}
'step 5'
if(result.bool&&result.links.length){
var link=result.links[0];
if(get.position(link)=='e'){
event.targets[1].equip(link);
}
else if(link.viewAs){
event.targets[1].addJudge({name:link.viewAs},[link]);
}
else{
event.targets[1].addJudge(link);
}
event.targets[0].$give(link,event.targets[1])
event.result.card=link;
event.result.position=get.position(link);
game.delay();
player.addTempSkill('xinzhilve_mark');
player.addMark('xinzhilve_mark',1,false);
}
},
},
xinzhilve_use:{
audio:'zhilve',
filterCard:function(){return false},
selectCard:-1,
filterTarget:function(card,player,target){
return player.canUse({name:'sha',isCard:true},target,false);
},
content:function(){
player.loseHp();
player.draw();
player.useCard({name:'sha',isCard:true},false,target).forceDie=true;
player.addTempSkill('xinzhilve_mark');
player.addMark('xinzhilve_mark',1,false);
},
ai:{
result:{
target:function(player,target){
return get.effect(target,{name:'sha'},player,target);
},
},
},
},
xinzhilve_mark:{
intro:{content:'本回合手牌上限+#'},
onremove:true,
charlotte:true,
mod:{
maxHandcard:function(player,num){
return num+player.countMark('xinzhilve_mark');
},
},
},
xinxhzhiyan:{
audio:'xhzhiyan',
enable:'phaseUse',
filter:function(event,player){
return (!player.hasSkill('xinxhzhiyan_true')&&player.countCards('h')>player.hp)||(!player.hasSkill('xinxhzhiyan_false')&&player.countCards('h')=player.maxHp) return [num,num];
return [0,num]
},
filterTarget:lib.filter.notMe,
selectTarget:function(){
if(ui.selected.cards.length) return [1,1];
return [0,0];
},
check:function(card){
var player=_status.event.player;
var checkx=function(card){
if(player.getUseValue(card,null,true)<=0&&game.hasPlayer(function(current){
return current!=player&&get.value(card,current)>0&&get.attitude(player,current)>0;
})) return 2;
return 1;
}
if(player.countCards('h',function(card){
return checkx(card)>0;
})<(player.countCards('h')-player.hp)) return 0;
return checkx(card);
},
delay:false,
discard:false,
lose:false,
content:function(){
var bool=(cards&&cards.length>0);
player.addTempSkill('xinxhzhiyan_'+bool,'phaseUseEnd');
if(!bool){
player.draw(player.maxHp-player.countCards('h'));
}
else{
player.give(cards,target);
}
},
ai:{
order:function(obj,player){
if(player.countCards('h')>player.hp) return 10;
return 0.5;
},
result:{
player:function(player,target){
if(!ui.selected.cards.length&&player.countCards('h')0) player.gainPlayerCard(trigger.player,'he',true);
trigger.player.unmarkSkill('weifeng2');
}
else{
game.countPlayer(function(current){
if(current.storage.weifeng2) current.unmarkSkill('weifeng2');
});
player.removeSkill('weifeng3');
}
},
},
gnjinfan:{
trigger:{player:'phaseDiscardBegin'},
direct:true,
locked:false,
audio:2,
filter:function(event,player){
var list=[];
player.getCards('s',function(card){
if(card.hasGaintag('gnjinfan')) list.add(get.suit(card));
});
if(list.length>=lib.suit.length) return false;
return player.countCards('h',function(card){
return _status.connectMode||!list.contains(get.suit(card));
})>0;
},
content:function(){
'step 0'
player.chooseCard('h',get.prompt('gnjinfan'),'将任意张手牌当做“铃”置于武将牌上',[1,function(){
var list=[];
var list2=[];
player.getCards('s',function(card){
if(card.hasGaintag('gnjinfan')) list.add(get.suit(card));
});
player.getCards('h',function(card){
list2.add(get.suit(card));
});
list2.removeArray(list);
return Math.max(1,list2.length);
}()],function(card,player){
return !player.countCards('s',function(cardx){
return cardx.hasGaintag('gnjinfan')&&get.suit(cardx,false)==get.suit(card,player);
})&&!ui.selected.cards.filter(function(cardx){
return get.suit(cardx,player)==get.suit(card,player);
}).length;
}).set('ai',function(card){
var player=_status.event.player;
if(player.hasUseTarget(card)&&!player.hasValueTarget(card)) return 0;
if(['sha','shan','wuxie','caochuan'].contains(card.name)) return 2+Math.random();
return 1+Math.random();
}).set('complexCard',true);
'step 1'
if(result.bool){
player.logSkill('gnjinfan');
game.log(player,'将',result.cards,'放到了武将牌上');
player.loseToSpecial(result.cards,'gnjinfan').visible=true;
}
else event.finish();
'step 2'
player.markSkill('gnjinfan');
},
group:['gnjinfan_gain'],
marktext:'铃',
intro:{
mark:function(dialog,storage,player){
dialog.addAuto(player.getCards('s',function(card){
return card.hasGaintag('gnjinfan');
}));
},
markcount:function(storage,player){
return player.getCards('s',function(card){
return card.hasGaintag('gnjinfan');
}).length;
},
onunmark:function(storage,player){
var cards=player.getCards('s',function(card){
return card.hasGaintag('gnjinfan');
});
if(cards.length){
player.lose(cards,ui.discardPile);
player.$throw(cards,1000);
game.log(cards,'进入了弃牌堆');
}
},
},
mod:{
aiOrder:function(player,card,num){
if(get.itemtype(card)=='card'&&card.hasGaintag('gnjinfan')) return num+0.5;
},
},
},
gnjinfan_gain:{
trigger:{player:'loseAfter'},
forced:true,
filter:function(event,player){
if(!event.ss||!event.ss.length) return false;
for(var i in event.gaintag_map){
if(event.gaintag_map[i].contains('gnjinfan')) return true;
return false;
}
},
content:function(){
'step 0'
var cards=[];
for(var i of trigger.ss){
if(!trigger.gaintag_map[i.cardid]||!trigger.gaintag_map[i.cardid].contains('gnjinfan')) continue;
var suit=get.suit(i,false);
var card=get.cardPile2(function(card){
return !cards.contains(card)&&get.suit(card,false)==suit;
});
if(card) cards.push(card);
}
if(cards.length) player.gain(cards,'gain2');
var num=player.getCards('s',function(card){
return card.hasGaintag('gnjinfan');
}).length;
if(num) player.markSkill('gnjinfan');
else player.unmarkSkill('gnjinfan');
'step 1'
game.updateRoundNumber();
},
},
gnsheque:{
audio:2,
trigger:{global:'phaseZhunbeiBegin'},
direct:true,
filter:function(event,player){
return event.player.isIn()&&event.player.countCards('e')>0&&
lib.filter.targetEnabled({name:'sha'},player,event.player)&&(player.hasSha()||_status.connectMode&&player.countCards('h')>0);
},
content:function(){
player.chooseToUse(function(card,player,event){
if(get.name(card)!='sha') return false;
return lib.filter.filterCard.apply(this,arguments);
},'射却:是否对'+get.translation(trigger.player)+'使用一张杀?').set('logSkill','gnsheque').set('complexSelect',true).set('filterTarget',function(card,player,target){
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
return lib.filter.targetEnabled.apply(this,arguments);
}).set('sourcex',trigger.player).set('oncard',function(card){
try{
card.gnsheque_tag=true;
}catch(e){
alert('发生了一个导致【射却】无法正常触发无视防具效果的错误。请关闭十周年UI/手杀UI等扩展以解决');
}
});
},
ai:{
unequip:true,
unequip_ai:true,
skillTagFilter:function(player,tag,arg){
if(tag=='unequip_ai'){
if(_status.event.getParent().name!='gnsheque') return false;
}
else if(!arg||!arg.card||!arg.card.gnsheque_tag) return false;
},
},
},
_doublegroup_choice:{
trigger:{
global:'gameStart',
player:'enterGame',
},
forced:true,
charlotte:true,
firstDo:true,
popup:false,
filter:function(event,player){
return get.mode()!='guozhan'&&get.is.double(player.name1)&&!player._groupChosen;
},
content:function(){
'step 0'
player._groupChosen=true;
player.chooseControl(get.is.double(player.name1,true)).set('prompt','请选择你的势力');
'step 1'
player.changeGroup(result.control);
},
},
},
dynamicTranslate:{
yizan_use:function(player){
if(player.storage.yizan) return '你可以将一张基本牌当做任意基本牌使用或打出。';
return '你可以将两张牌(其中至少一张为基本牌)当做任意基本牌使用或打出。';
},
miaojian:function(player){
return [
'出牌阶段限一次。你可将一张【杀】当做刺【杀】使用,或将一张锦囊牌当做【无中生有】使用。',
'出牌阶段限一次。你可将一张基本牌当做刺【杀】使用,或将一张非基本牌当做【无中生有】使用。',
'出牌阶段限一次。你可视为使用一张刺【杀】或【无中生有】。',
][player.countMark('miaojian')];
},
shhlianhua:function(player){
return [
'当你成为【杀】的目标后,你摸一张牌。',
'当你成为【杀】的目标后,你摸一张牌。然后你进行判定,若结果为黑桃,则此【杀】对你无效。',
'当你成为【杀】的目标后,你摸一张牌。然后此【杀】的使用者选择一项:①弃置一张牌。②令此【杀】对你无效。',
][player.countMark('shhlianhua')];
},
spshidi:function(player){
if(player.countMark('spshidi')%2==0) return '转换技,锁定技。①准备阶段/结束阶段开始时,若你发动此分支的累计次数为奇数/偶数,则你获得一个“☯”。②若你的“☯”数为偶数,则你至其他角色的距离-1,且你使用的黑色【杀】不可被响应。③若你的“☯”数为奇数,则其他角色至你的距离+1,且你不可响应红色【杀】。';
return '转换技,锁定技。①准备阶段/结束阶段开始时,若你发动此分支的累计次数为奇数/偶数,则你获得一个“☯”。②若你的“☯”数为偶数,则你至其他角色的距离-1,且你使用的黑色【杀】不可被响应。③若你的“☯”数为奇数,则其他角色至你的距离+1,且你不可响应红色【杀】。';
},
},
perfectPair:{
simazhao:['simayi','jin_simayi','jin_wangyuanji'],
xugong:['yanbaihu'],
},
characterReplace:{
caochun:['caochun','old_caochun'],
majun:['majun','old_majun'],
zhanggong:['zhanggong','re_zhanggong'],
baosanniang:['xin_baosanniang','re_baosanniang','baosanniang'],
heqi:['re_heqi','heqi'],
weiwenzhugezhi:['weiwenzhugezhi','re_weiwenzhugezhi'],
xugong:['xugong','re_xugong','jsrg_xugong'],
liuzan:['re_liuzan','liuzan'],
sufei:['yj_sufei','sp_sufei','xf_sufei'],
jiakui:['jiakui','old_jiakui'],
shenpei:['shenpei','sp_shenpei'],
sunru:['dc_sunru','sunru'],
liuye:['dc_liuye','liuye'],
zhaotongzhaoguang:['dc_zhaotongzhaoguang','zhaotongzhaoguang'],
yangbiao:['yangbiao','dc_yangbiao','jsrg_yangbiao'],
qiaozhou:['yj_qiaozhou','qiaozhou'],
sunhanhua:['dc_sunhanhua','sunhanhua'],
},
translate:{
liuzan:'手杀留赞',
re_sp_zhugeliang:"手杀卧龙",
ly_piliche:'霹雳车',
ly_piliche_info:'当你对其他角色造成伤害后,你可以弃置其装备区内的所有牌。',
polu:'破橹',
polu_info:'锁定技,回合开始时,若【霹雳车】未加入游戏或在牌堆/弃牌堆内,则你使用之;当你受到1点伤害后,若你的装备区里没有【霹雳车】,则你摸一张牌并使用牌堆中的一张随机武器牌。',
choulve:'筹略',
choulve_info:'出牌阶段开始时,你可以令一名其他角色交给你一张牌,若其如此做,视为你使用上一张对你过造成伤害且不为延时锦囊牌的牌。',
tunchu:'屯储',
tunchu_info:'摸牌阶段,若你没有「粮」,你可以多摸两张牌。若如此做,摸牌阶段结束时,你可以将任意张手牌置于你的武将上,称为「粮」,只要你的武将牌上有「粮」,你便不能使用【杀】',
shuliang:'输粮',
shuliang_info:'一名角色的结束阶段开始时,若其手牌数少于体力值,你可以移去一张「粮」,然后该角色摸两张牌',
fenyin:'奋音',
yingjian:'影箭',
fenyin_info:'你的回合内,当你使用牌时,若此牌与你于此回合内使用的上一张牌的颜色不同,则你可以摸一张牌。',
yingjian_info:'准备阶段开始时,你可以视为使用一张无距离限制的【杀】。',
dujin:'独进',
dujin_info:'摸牌阶段,你可以多摸X+1张牌。(X为你装备区里牌数的一半且向下取整)',
shixin:'释衅',
shixin_info:'锁定技,当你受到火属性伤害时,你防止此伤害。',
zhaohuo:'招祸',
zhaohuo_info:'锁定技,当其他角色进入濒死状态时,你将体力上限调整为1点。若你的体力上限因此减少,则你摸X张牌。(X为你以此法减少的体力上限)',
yixiang:'义襄',
yixiang_info:'每名角色的回合限一次,当你成为一名角色使用牌的目标后,若该角色的体力值大于你的体力值,你可以随机获得牌堆里的一张你没有的基本牌。',
yirang:'揖让',
yirang_info:'出牌阶段开始时,你可以将所有非基本牌交给一名体力上限大于你的其他角色,然后调整体力上限至与该角色相同并回复X点体力(X为你以此法交给其的牌的类别数)。',
kuangcai:'狂才',
kuangcai_info:'出牌阶段开始时,你可以令你此阶段内的主动出牌时间变为5秒。若如此做,你于此阶段内使用牌没距离和次数限制,且每当你于此阶段内使用牌时,你摸一张牌且主动出牌时间-1秒。若主动出牌时间减至0,则你结束出牌阶段。',
shejian:'舌剑',
shejian_info:'弃牌阶段结束时,若你于此阶段弃置的所有牌花色均不相同,则你可以弃置一名其他角色的一张牌。',
"xinfu_daigong":"怠攻",
"xinfu_daigong_info":"每回合限一次。当你受到伤害时,你可以展示所有手牌,然后令伤害来源选择一项:交给你一张与你所有手牌花色均不相同的一张牌,或防止此伤害。",
"xinfu_zhaoxin":"昭心",
"xinfu_zhaoxin_info":"出牌阶段限一次,你可以将任意张手牌置于武将牌上并摸等量的牌,称之为「望」(你至多拥有三张「望」)。你或你攻击范围内的一名其他角色的摸牌阶段结束后,其可以获得一张由你选择的「望」,然后你可以对其造成1点伤害。",
"zhaoxin_give":"昭心",
"zhaoxin_give_info":"",
"xinfu_qianchong":"谦冲",
"xinfu_qianchong_info":"锁定技,若你的装备区内有牌且:均为红色,则你视为拥有技能〖明哲〗。均为黑色,则你视为拥有技能〖帷幕〗。若均不满足,则出牌阶段开始时,你可以选择一种类别的牌,然后你本回合内使用该类别的牌时没有次数和距离限制。",
"qc_weimu":"帷幕",
"qc_weimu_info":"",
"qc_mingzhe":"明哲",
"qc_mingzhe_info":"",
"xinfu_shangjian":"尚俭",
"xinfu_shangjian_info":"锁定技。一名角色的结束阶段开始时,若你于此回合内不因使用装备牌而失去了X张或更少的牌,则你摸等量的牌(X为你的体力值)。",
"rw_bagua_skill":"先天八卦阵",
"rw_bagua_skill_info":"当你需要使用或打出一张【闪】时,你可以进行判定,若判定结果不为黑桃,视为你使用或打出了一张【闪】。",
"rw_baiyin_skill":"照月狮子盔",
"rw_baiyin_skill_info":"锁定技,当你受到大于1的伤害时,你将伤害值改为1;当你失去装备区里的【照月狮子盔】时,你回复1点体力并摸两张牌。",
"rw_lanyinjia":"精银甲",
"rw_lanyinjia_info":"你可以将一张手牌当做【闪】使用或打出。锁定技,【精银甲】不会无效。",
"rw_minguangkai_cancel":"耀光铠",
"rw_minguangkai_cancel_info":"锁定技,当你成为【火烧连营】、【火攻】或火【杀】的目标时,或即将被横置时,取消之。",
"rw_minguangkai_link":"耀光铠",
"rw_minguangkai_link_info":"锁定技,当你成为【火烧连营】、【火攻】或火【杀】的目标时,或即将被横置时,取消之。",
"rw_renwang_skill":"仁王金刚盾",
"rw_renwang_skill_info":"黑色【杀】和红桃【杀】对你无效。",
"rw_tengjia1":"桐油百韧甲",
"rw_tengjia1_info":"锁定技,【南蛮入侵】、【万箭齐发】和普【杀】对你无效。当你受到火焰伤害时,此伤害+1。当你即将被横置时,取消之。",
"rw_tengjia2":"桐油百韧甲",
"rw_tengjia2_info":"锁定技,【南蛮入侵】、【万箭齐发】和普【杀】对你无效。当你受到火焰伤害时,此伤害+1。当你即将被横置时,取消之。",
"rw_tengjia3":"桐油百韧甲",
"rw_tengjia3_info":"锁定技,【南蛮入侵】、【万箭齐发】和普【杀】对你无效。当你受到火焰伤害时,此伤害+1。当你即将被横置时,取消之。",
"rw_tengjia4":"桐油百韧甲",
"rewrite_bagua":"先天八卦阵",
"rewrite_bagua_info":"当你需要使用或打出一张【闪】时,你可以进行判定,若判定结果不为黑桃,视为你使用或打出了一张【闪】。",
"rewrite_baiyin":"照月狮子盔",
"rewrite_baiyin_info":"锁定技,当你受到大于1的伤害时,你将伤害值改为1;当你失去装备区里的【照月狮子盔】时,你回复1点体力并摸两张牌。",
"rewrite_lanyinjia":"精银甲",
"rewrite_lanyinjia_info":"你可以将一张手牌当做【闪】使用或打出。锁定技,【精银甲】不会无效。",
"rewrite_minguangkai":"耀光铠",
"rewrite_minguangkai_info":"锁定技,当你成为【火烧连营】、【火攻】或火【杀】的目标时,或即将被横置时,取消之。",
"rewrite_renwang":"仁王金刚盾",
"rewrite_renwang_info":"黑色【杀】和红桃【杀】对你无效。",
"rewrite_tengjia":"桐油百韧甲",
"rewrite_tengjia_info":"锁定技,【南蛮入侵】、【万箭齐发】和普【杀】对你无效。当你受到火焰伤害时,此伤害+1。当你即将被横置时,取消之。",
"rewrite_zhuge":"元戎精械弩",
"rewrite_zhuge_info":"锁定技,你于出牌阶段内使用【杀】无次数限制。",
rw_zhuge_skill:'诸葛连弩',
rw_zhuge_skill_info:'锁定技,你于出牌阶段内使用【杀】无次数限制。',
takaramono:"宝物",
"wolong_card":"卧龙",
"wolong_card_info":"对一名角色造成1点火焰伤害。若场上有存活的诸葛亮(火),则改为对至多两名角色各造成1点火焰伤害。",
"fengchu_card":"凤雏",
"fengchu_card_info":"横置至多三名角色。若场上有存活的庞统(火),则改为横置至多四名角色。",
"xuanjian_card":"玄剑",
"xuanjian_card_info":"令一名角色摸一张牌并回复1点体力。若场上有存活的徐庶(将/界),则改为令一名角色摸一张牌并回复1点体力,然后你摸一张牌。",
"shuijing_card":"水镜",
"shuijing_card_info":"将一名角色装备区内的防具牌移动到另一名角色对应区域。若场上有存活的司马徽,则改为将1名角色装备区内的1件装备移动到另1角色对应区域。","xinfu_pingcai":"评才",
"xinfu_pingcai_info":"出牌阶段限一次,你可以挑选一个宝物并擦拭掉其上面的灰尘。然后,你可以根据宝物类型执行对应的效果。",
"xinfu_pdgyingshi":"隐世",
"xinfu_pdgyingshi2":"隐世",
"xinfu_pdgyingshi_info":"锁定技,你始终跳过准备阶段,判定阶段,结束阶段。你不能被选择为延时锦囊牌的目标。",
"pcaudio_wolong_card":"卧龙",
"pcaudio_wolong_card_info":"",
"pcaudio_fengchu_card":"凤雏",
"pcaudio_fengchu_card_info":"",
"pcaudio_shuijing_card":"水镜",
"pcaudio_shuijing_card_info":"",
"pcaudio_xuanjian_card":"玄剑",
"pcaudio_xuanjian_card_info":"",
"yizan_respond_sha":"翊赞",
"yizan_respond_sha_info":"",
"yizan_use":"翊赞",
yizan_use_backup:'翊赞',
"yizan_use_info":"你可以将两张牌(其中至少一张为基本牌)当做任意基本牌使用或打出。",
"yizan_respond_shan":"翊赞",
"yizan_respond_shan_info":"",
"xinfu_longyuan":"龙渊",
"xinfu_longyuan_info":"觉醒技,准备阶段,若你本局游戏内发动过〖翊赞〗的次数大于等于3,则你修改〖翊赞〗。",
yizan_rewrite:'翊赞·改',
yizan_rewrite_info:'你可以将一张基本牌当做任意基本牌使用或打出。',
"yizan_count":"翊赞",
"yizan_count_info":"",
"xinfu_jingxie1":"精械",
"xinfu_jingxie1_info":"出牌阶段,你可以展示一张未强化过的【诸葛连弩】或标准包/军争包/SP包中的防具牌,然后对其进行强化。当你处于濒死状态时,你可以重铸一张防具牌,然后将体力回复至1点。",
"xinfu_jingxie2":"精械",
"xinfu_jingxie2_info":"",
"xinfu_qiaosi":"巧思",
"xinfu_qiaosi_info":"出牌阶段限一次,你可以投掷一枚六面骰子,展示牌堆顶的X张牌并获得之。然后,你选择一项:1.交给一名其他角色X张牌。2.弃置X张牌。(X为骰子的点数)",
xin_xiahoudun:'手杀夏侯惇',
xinqingjian:'清俭',
xinqingjian2:'清俭',
xinqingjian_info:'每回合限一次。当你不因摸牌阶段的额定摸牌而获得牌时,你可以将任意张牌扣置于武将牌上。回合结束时,你将这些牌交给一名其他角色。若这些牌的数量大于1,你摸一张牌。',
zhangyì:'张翼',
jiakui:'贾逵',
zhiyi:'执义',
zhiyi_info:'锁定技,当你于一回合内使用或打出第一张基本牌时,你选择一项:1.摸一张牌。2.于此牌A(若此牌是因响应牌B而使用或打出的,则改为牌B)的使用或打出流程结算完成后,视为使用一张与此牌名称和属性相同的卡牌。',
rezhiyi:'执义',
rezhiyi_info:'锁定技,一名角色的结束阶段开始时,若你本回合内使用或打出过基本牌,则你选择一项:1.摸一张牌。2.视为使用一张本回合内使用或打出过的基本牌。',
zhongzuo:'忠佐',
zhongzuo_info:'一名角色的结束阶段开始时,若你于此回合内造成或受到过伤害,则你可以令一名角色摸两张牌。若该角色已受伤,则你摸一张牌。',
wanlan:'挽澜',
wanlan_info:'限定技,当一名角色进入濒死状态时,你可以弃置所有手牌(无牌可不弃)。其回复体力至1点,然后你对当前回合角色造成1点伤害。',
re_jikang:"手杀嵇康",
old_caochun:'旧曹纯',
shenpei:'审配',
re_wangyun:'手杀王允',
relianji:'连计',
relianji_info:'出牌阶段限一次,你可以选择两名其他角色。第一名角色随机使用牌堆中的一张武器牌,然后这名角色视为对另一名角色随机使用一张下列的牌名的牌:【决斗】、【火攻】、【南蛮入侵】、【万箭齐发】或普【杀】。然后若此牌造成伤害,你获得X枚“连计”标记(X为此次扣减的体力值点数)。',
remoucheng:'谋逞',
remoucheng_info:'觉醒技,当一名角色因〖连计〗造成伤害后,若你拥有的“连计”标记数大于2,你加1点体力上限,回复1点体力,失去“连计”,获得“矜功”。',
mobile_default:'常规',
mobile_others:'其他',
shouye:'守邺',
shouye_info:'每回合限一次。当其他角色使用牌指定你为唯一目标时,你可以与其进行【对策】。若你赢,则你取消此牌的目标,且你于此牌结算完成后获得其对应的所有实体牌。',
liezhi:'烈直',
liezhi_info:'准备阶段,你可以依次弃置至多两名其他角色区域内的各一张牌。若你受到过伤害,则〖烈直〗于你的下个回合无效。',
xinzhanyi:'战意',
xinzhanyi_info:'出牌阶段限一次,你可以弃置一张牌并失去1点体力,然后根据你弃置的牌获得以下效果直到回合结束:基本牌,你可以将一张基本牌当作杀、酒或桃使用,且你本回合第一次以此法使用的牌的回复值/伤害值+1;锦囊牌,摸三张牌且你使用的牌不能被【无懈可击】响应;装备牌,你使用【杀】指定唯一目标后,其弃置两张牌,然后你获得其中的一张。',
xinzhanyi_basic_backup:'战意',
xinzhanyi_basic:'战意',
xinzhanyi_equip:'战意',
meiyong:'姝勇',
meiyong_info:'当你使用或打出【杀】时,你可以获得一名其他角色的一张牌,然后其摸一张牌。',
rexushen:'许身',
rexushen_info:'限定技,出牌阶段,你可以失去X点体力(X为场上男性角色的数量)。若你以此法进入了濒死状态,则当你因一名角色而脱离此濒死状态后,你可以令其获得技能〖武圣〗和〖当先〗。',
rezhennan:'镇南',
rezhennan_info:'当你成为其他角色使用的牌的目标后,若此牌的目标数大于该角色的体力值,则你可以弃置一张牌并对其造成1点伤害。',
hujinding:'手杀胡金定',
huaizi:'怀子',
huaizi_info:'锁定技,你的手牌上限为你的体力上限。',
renshi:'仁释',
renshi_info:'锁定技,当你受到【杀】的伤害时,若你已受伤,则你防止此伤害并获得此【杀】对应的所有实体牌,然后减1点体力上限。',
wuyuan:'武缘',
wuyuan_info:'出牌阶段限一次,你可将一张【杀】交给一名其他角色,然后你回复1点体力,其摸一张牌。若此【杀】为:红色【杀】,其回复1点体力;属性【杀】,其改为摸两张牌。',
re_weiwenzhugezhi:'手杀卫温诸葛直',
re_xugong:'手杀许贡',
re_zhanggong:'手杀张恭',
reqianxin:'遣信',
reqianxin_info:'出牌阶段限一次,你可将至多两张手牌随机交给等量的其他角色,称为「信」。这些角色的准备阶段开始时,若其手牌中有「信」,则其选择一项:令你摸两张牌,本回合手牌上限-2。',
rebiaozhao:"表召",
"rebiaozhao_info":"结束阶段,你可以将一张牌置于武将牌上,称为「表」。当有一张与「表」点数相同的牌进入弃牌堆后,你将「表」置入弃牌堆并失去1点体力。准备阶段,若你的武将牌上有「表」,则你移去「表」并选择一名角色,该角色回复1点体力并摸三张牌。",
"rebiaozhao2":"表召",
"rebiaozhao2_info":"",
"rebiaozhao3":"表召",
"rebiaozhao3_info":"",
refuhai:'浮海',
refuhai_info:'出牌阶段限一次,你可令其他角色同时在「潮起」和「潮落」中选择一项,并依次展示这些角色的选项。若从你下家开始选择了相同选项的角色数目大于1,则你摸X张牌(X为连续相同结果的数量)。',
qiaosi:'巧思',
qiaosi_info:'出牌阶段限一次,你可以表演「大键角色图」并根据表演结果获得相应的牌。然后,你选择一项:1.弃置X张牌。2.将X张牌交给一名其他角色。(X为你以此法获得的牌数)',
qiaosi_map:'大键角色图',
qiaosi_map_info:'
星野 梦美:锦囊牌*2
能美 库特莉亚芙卡:装备牌/【杀】/【酒】*1
友利 奈绪:【杀】/【酒】*1
神尾 观铃:【闪】/【桃】*1
伊吹 风子:锦囊牌/【闪】/【桃】*1
仲村 由理:装备牌*2
Illustration:うら;Twitter:@ura530',
qiaosi_c1:' ',
//星野 梦美
qiaosi_c2:' ',
//能美 库特莉亚芙卡
qiaosi_c3:' ',
//友利 奈绪
qiaosi_c4:' ',
//神尾 观铃
qiaosi_c5:' ',
//伊吹 风子
qiaosi_c6:' ',
//仲村 由理
yangbiao:'手杀杨彪',
zhaohan:'昭汉',
zhaohan_info:'锁定技,你的第1-4个准备阶段开始时,你加1点体力上限并回复1点体力,你的第5-7个准备阶段开始时,你减1点体力上限。',
rangjie:'让节',
rangjie_info:'当你受到1点伤害后,你可以选择一项并摸一张牌:获得牌堆里你选择的类型的一张牌,或移动场上的一张牌。',
yizheng:'义争',
yizheng2:'义争',
yizheng_info:'出牌阶段限一次,你可以和一名体力值不大于你的其他角色拼点。若你赢,其跳过下个摸牌阶段。若你没赢,你减1点体力上限。',
re_heqi:'手杀贺齐',
reqizhou:'绮胄',
reqizhou_info:'锁定技,你根据装备区里牌的花色数获得以下技能:1种或以上:〖英姿〗;2种或以上:〖奇袭〗;3种或以上:〖旋风〗。',
reshanxi:'闪袭',
reshanxi2:'闪袭',
reshanxi_info:'出牌阶段开始时,你可以弃置一张红色基本牌并选择一名有牌的其他角色,将其的至多X张牌置于其的武将牌上(X为你的体力值)。回合结束时,该角色获得这些牌。',
chendeng:'手杀陈登',
zhouxuan:'周旋',
zhouxuan2:'周旋',
zhouxuan_info:'出牌阶段限一次,你可以弃置一张牌并指定一名角色,然后选择一个基本牌的名称或非基本牌的类型。其使用或打出下一张牌时,若此牌的名称或类型和你选择的相同,则你观看牌堆顶的三张牌,然后将这些牌以任意分割方式交给任意名角色。',
fengji:'丰积',
fengji_info:'锁定技,回合结束时,你记录你的手牌数。准备阶段开始时,若你的手牌数不小于你记录的手牌数,则你摸两张牌且本回合手牌上限为体力上限。',
re_guanqiujian:'手杀毌丘俭',
rezhengrong:'征荣',
rehongju:'鸿举',
reqingce:'清侧',
reqingce_backup:'清侧',
rezhengrong_info:'当你于出牌阶段使用的指定了其他角色为目标的牌结算完成后,若此牌是你本局游戏内于出牌阶段使用的指定了其他角色为目标的第偶数张牌,则你可以将一名其他角色角色的随机一张牌置于你的武将牌上,称为「荣」。',
rehongju_info:'觉醒技,准备阶段,若你武将牌上「荣」的数量不小于3且有角色死亡,则你摸等同于「荣」数量的牌。然后可以用任意数量的手牌交换等量的「荣」。你减1点体力上限并获得技能〖清侧〗。',
reqingce_info:'出牌阶段,你可以将一张「荣」置入弃牌堆,然后弃置场上的一张牌。',
re_pangtong:"手杀庞统",
dongcheng:'手杀董承',
chengzhao:'承诏',
chengzhao_info:'一名角色的结束阶段,若你于本回合内获得了两张以上的牌,则你可以与一名其他角色拼点。若你赢,你视为对其使用一张无视防具的【杀】。',
yangyi:'手杀杨仪',
duoduan:'度断',
duoduan_info:'每回合限一次,当你成为【杀】的目标后,你可以重铸一张牌。若如此做,你选择一项:①令使用者摸两张牌,且此【杀】无效。②令使用弃置一张牌,且你不能响应此【杀】。',
gongsun:'共损',
gongsun_info:'出牌阶段开始时,你可以弃置两张牌并指定一名其他角色。你选择一个基本牌或普通锦囊牌的牌名。直到你的下回合开始或你死亡,你与其不能使用或打出或弃置此名称的牌。',
gongsun_shadow:'共损',
xin_chengpu:'手杀程普',
relihuo:'疠火',
relihuo_damage:'疠火',
relihuo_baigei:'疠火',
relihuo_info:'当你使用普【杀】时,你可以将此杀改为火属性。若如此做,当你因执行此【杀】的效果而对横置角色造成伤害时,此伤害+1;当你使用的火【杀】结算完成后,你失去X点体力(X为你因此【杀】造成的伤害总点数的一半且向下取整)',
dengzhi:'手杀邓芝',
jimeng:'急盟',
jimeng_info:'出牌阶段开始时,你可以获得一名其他角色的一张牌,然后交给该角色X张牌(X为你当前体力值)。',
shuaiyan:'率言',
shuaiyan_info:'弃牌阶段开始时,若你的手牌数大于1,则你可以展示所有手牌,然后你令一名其他角色交给你一张牌。',
zhengxuan:'郑玄',
zhengjing:'整经',
zhengjing_info:'出牌阶段,你可以整理卡牌。然后,你将整理出的卡牌中的至少一张作为“经”置于一名角色的武将牌上,然后获得其余的牌。该角色的准备阶段获得这些牌,且跳过此回合的判定和摸牌阶段。',
zhengjing2:'整经',
mobile_yijiang:'将星独具',
yj_zhanghe:'☆张郃',
yj_zhangliao:'☆张辽',
yj_xuhuang:'☆徐晃',
yj_ganning:'☆甘宁',
xhzhiyan:'治严',
xhzhiyan_info:'出牌阶段,若你的手牌数不等于体力上限,则你可以将手牌摸至/弃至手牌上限,然后本回合不能对其他角色使用牌/可以将弃置的一张牌交给一名其他角色。',
zhilve:'知略',
zhilve_info:'锁定技,准备阶段,你选择一项:1.移动场上装备区的一张牌并失去1点体力。2.移动场上判定区的一张牌并令本回合手牌上限-1。3.本回合摸牌阶段多摸一张牌且使用的第一张【杀】无距离限制且不计入次数限制。',
xinzhilve:'知略',
xinzhilve_backup:'知略',
xinzhilve_mark:'知略',
xinzhilve_info:'出牌阶段限一次,你可以失去1点体力并选择一项:1.移动场上的一张牌;2.视为使用一张无距离限制且不计入次数限制的【杀】并摸一张牌。然后你本回合的手牌上限+1。',
xinxhzhiyan:'治严',
xinxhzhiyan_false:'治严',
xinxhzhiyan_info:'出牌阶段每项各限一次,若你的手牌数:大于体力值,则你可以将X张手牌交给一名其他角色(X为你的手牌数与体力值之差);小于体力上限,则你可以摸X张牌且本阶段内不能再对其他角色使用牌。(X为你的手牌数与体力上限之差)',
weifeng:'威风',
weifeng2:'威风',
weifeng3:'威风',
weifeng_info:'锁定技,当你于出牌阶段内使用第一张伤害性基本牌或普通锦囊牌后,你令此牌的一名没有“惧”的其他目标角色获得一枚名称为此牌牌名的“惧”。有“惧”的角色受到伤害时,其移去“惧”,然后若造成伤害的牌名称和“惧”:相同,此伤害+1;不同,你获得该角色的一张牌。准备阶段开始时或你死亡时,你移去场上的所有“惧”。',
gnjinfan:'锦帆',
gnjinfan_gain:'锦帆',
gnjinfan_info:'弃牌阶段开始时,你可将任意张手牌置于武将牌上,称为“铃”(每种花色的“铃”限一张)。你可以如手牌般使用或打出“铃”。当有“铃”移动到处理区后,你从牌堆中获得与“铃”花色相同的一张牌。',
gnsheque:'射却',
gnsheque_info:'一名其他角色的准备阶段开始时,若其装备区内有牌,则你可以对其使用一张【杀】(无距离关系的限制且无视防具)。',
sp_sufei:'手杀苏飞',
zhengjian:'诤荐',
zhengjian_draw:'诤荐',
zhengjian_mark:'诤荐',
zhengjian_info:'锁定技,结束阶段,你令一名角色获得一枚“诤”。回合开始时,你令有“诤”的角色移去“诤”并摸X张牌(X为其最后一次获得“诤”后使用和打出的牌数,且至多不能超过其体力上限或5)。',
gaoyuan:'告援',
gaoyuan_info:'当你成为【杀】的目标时,你可弃置一张牌将此【杀】转移给一名有“诤”且不是此【杀】使用者的其他角色。',
tongqu:'通渠',
tongqu_info:'游戏开始时,你拥有一个“渠”标记。准备阶段,你可以失去1点体力令一名没有“渠”标记的角色获得“渠”标记。有“渠”的角色摸牌阶段额外摸一张牌,然后将一张牌交给其他有“渠”的角色或弃置。若以此法给出的是装备牌则使用之。当有“渠”的角色进入濒死状态时,移除其“渠”标记。',
xinwanlan:'挽澜',
xinwanlan_info:'当一名角色受到伤害值不小于体力值的伤害时,你可以弃置装备区中的所有牌(至少一张) 防止此伤害。',
re_xusheng:'手杀徐盛',
re_dongzhuo:'手杀董卓',
rejiuchi:'酒池',
rejiuchi_info:'你可以将一张黑桃手牌当做【酒】使用。锁定技,当你于回合内使用带有【酒】效果的【杀】造成伤害时,你令你的【崩坏】失效直到回合结束。',
furong:'手杀傅肜',
xuewei:'血卫',
xuewei_info:'准备阶段,你可以选择一名其他角色(仅自己可见)。若如此做,直到你的下回合开始前,当其第一次受到伤害时,你防止此伤害,改为由你受到等量的伤害并对伤害来源造成等量同属性的伤害。',
liechi:'烈斥',
liechi_info:'锁定技,当你进入濒死状态时,伤害来源弃置一张牌。',
xin_liaohua:'手杀廖化',
redangxian:'当先',
redangxian_info:'锁定技,回合开始时,你从弃牌堆中获得一张【杀】并进行一个额外的出牌阶段。',
refuli:'伏枥',
refuli_info:'限定技,当你处于濒死状态时,你可以将体力值回复至X点(X为势力数)。然后若你的体力值为全场唯一最多,你翻面。',
xin_caozhang:'手杀曹彰',
"rejiangchi":"将驰",
"rejiangchi_info":"出牌阶段开始时,你可以选择一项:1、摸一张牌,若如此做,你本阶段内不能使用【杀】。 2、弃置一张牌,若如此做,此阶段你使用【杀】无距离限制且你可以额外使用一张【杀】。",
rezhenxing:"镇行",
rezhenxing_info:"结束阶段开始时或当你受到伤害后,你可以观看牌堆顶的三张牌,然后你获得其中与其余牌花色均不相同的一张牌。",
xin_jianyong:'手杀简雍',
xinqiaoshui:'巧说',
xinqiaoshui_info:'出牌阶段限一次,你可以和一名其他角色拼点。若你赢,则你本阶段内使用的下一张基本牌或普通锦囊牌可以增加减少一个目标。若你没赢,你本阶段内不能使用锦囊牌。',
xinjyzongshi:'纵适',
xinjyzongshi_info:'当你拼点后,你可以观看牌堆顶的一张牌,然后选择一项:获得此牌,或获得两张拼点牌中点数较小的一张。',
dingyuan:'手杀丁原',
beizhu:'备诛',
beizhu_draw:'备诛',
beizhu_info:'出牌阶段限一次,你可以观看一名其他角色的手牌。若其中:没有【杀】,你弃置其一张牌,然后你可令其获得牌堆中的一张【杀】;有【杀】,其依次对你使用这些【杀】,当你因此受到1点伤害后,你摸一张牌。',
xin_zhuran:'手杀朱然',
mobiledanshou:'胆守',
mobiledanshou_info:'一名其他角色的结束阶段开始时,若X:为0,你摸一张牌;不等于0,你可弃置X张牌并对其造成1点伤害(X为其本回合内使用的目标包含你的牌的数量)',
yanghuiyu:'羊徽瑜',
hongyi:'弘仪',
hongyi2:'弘仪',
hongyi_info:'出牌阶段限一次,你可以选择一名其他角色。你的下回合开始前,该角色造成伤害时进行判定,若结果为:黑色,此伤害-1。红色,受到伤害的角色摸一张牌。',
requanfeng:'劝封',
requanfeng_gain:'劝封',
requanfeng_info:'限定技。①其他角色死亡时,你可失去〖弘仪〗,然后获得其武将牌上的所有非主公技,非隐匿技和非Charlotte技,加1点体力上限并回复1点体力。②当你处于濒死状态时,你可以加2点体力上限,然后回复4点体力。',
quanfeng:'劝封',
quanfeng_info:'锁定技,限定技,一名角色死亡时,你选择获得其的一个技能(主公技,限定技,觉醒技,隐匿技,使命技,带有Charlotte标签的技能除外),然后加1点体力上限并回复1点体力。',
simashi:'司马师',
baiyi:'败移',
baiyi_info:'限定技,出牌阶段,若你已受伤,你可以交换两名其他角色的座次。',
jinglve:'景略',
jinglve2:'景略',
jinglve3:'景略',
jinglve_info:'出牌阶段限一次,若场上没有与你对应的「死士」牌,则你可以观看一名其他角色的手牌,将其中一张牌标记为「死士」。当其使用对应的实体牌中包含「死士」的牌时,你取消此牌的所有目标。当「死士」牌不因使用而进入弃牌堆,或其回合结束后,若「死士」牌仍在其区域内,则你获得此牌。',
shanli:'擅立',
shanli_info:'觉醒技,准备阶段,若你已发动过〖败移〗且对至少两名角色发动过〖景略〗,则你减1点体力上限并选择一名角色。系统随机选择三个不为〖忘隙(仲村由理)〗的主公技,然后你选择其中一个技能,令其获得之。其将交互表情中的【拖鞋】和【酒杯】替换为【枷锁】和【玉玺】。',
re_lingtong:'手杀凌统',
re_liubiao:'手杀刘表',
hucheer:'手杀胡车儿',
daoji:'盗戟',
daoji_info:'出牌阶段限一次,你可以弃置一张非基本牌并选择一名装备区里有牌的其他角色,你获得其装备区中的一张牌并使用之。若你以此法获得的牌是武器牌,则你使用此牌后对其造成1点伤害。',
xin_hansui:'手杀韩遂',
xinniluan:'逆乱',
xinniluan_info:'其他角色的结束阶段,若其本回合对除其以外的角色使用过牌,则你可以对其使用一张【杀】。若以此法使用的【杀】造成伤害,则你弃置其一张牌。',
xiaoxi_hansui:'骁袭',
xiaoxi_hansui_info:'你可以将一张黑色牌当做【杀】使用或打出。',
xin_zhangfei:'手杀张飞',
liyong:'厉勇',
liyong2:'厉勇',
liyong3:'厉勇',
liyong_info:'锁定技,若你于出牌阶段内使用的【杀】被【闪】抵消,则你获得如下效果:你本回合使用的下一张【杀】不可被响应且伤害+1,指定的目标本回合非锁定技失效,当此【杀】造成伤害后,若目标角色未死亡,你失去1点体力。',
gongsunkang:'公孙康',
juliao:'据辽',
juliao_info:'锁定技,其他角色计算与你的距离始终+X(X为场上势力数-1)。',
taomie:'讨灭',
taomie1:'讨灭',
taomie2:'讨灭',
taomie3:'讨灭',
taomie4:'讨灭',
taomie_info:'当你受到伤害后或当你造成伤害后,你可以令伤害来源或受伤角色获得“讨灭”标记(如场上已有标记则转移给该角色);你和拥有“讨灭”标记的角色视为在彼此的攻击范围内,且当你对该角色造成伤害时,选择一项:1. 此伤害+1;2. 你获得其区域内的一张牌并可将之交给另一名角色;3. 依次执行前两项并于伤害结算后弃置其“讨灭”标记。',
xin_guohuai:'手杀郭淮',
mobilejingce:'精策',
mobilejingce_info:'结束阶段,若此回合因使用或打出而置入弃牌堆的牌的数量不小于你的体力值,则你可以摸两张牌。',
xin_panzhangmazhong:'手杀潘璋马忠',
xinduodao:'夺刀',
xinduodao_info:'当你受到伤害后,你可以获得伤害来源装备区里的武器牌。',
xinanjian:'暗箭',
xinanjian_info:'锁定技,当你使用【杀】指定目标后,若你不在目标角色攻击范围内,你选择一项:1. 令其无法响应此【杀】;2. 其受到此【杀】造成的伤害+1。',
xin_fuhuanghou:'手杀伏寿',
xinzhuikong:'惴恐',
xinzhuikong_info:'每轮限一次,其他角色的回合开始时,若其体力值不小于你,你可与其拼点。若你赢,其本回合无法使用牌指定除其以外的角色为目标;若你没赢,你获得其拼点的牌,然后其视为对你使用一张【杀】。',
xinqiuyuan:'求援',
xinqiuyuan_info:'当你成为【杀】的目标时,你可以令另一名其他角色交给你一张除【杀】以外的基本牌,否则其也成为此【杀】的目标。',
xin_gongsunzan:'手杀公孙瓒',
re_dengai:'手杀邓艾',
flappybird:'飞鸟',
flappybird_info:'出牌阶段,你可游玩一局Flappy Bird。',
re_handang:'手杀韩当',
nanhualaoxian:'手杀南华老仙',
yufeng:'御风',
yufeng2:'御风',
yufeng_info:'出牌阶段限一次,你可以表演“御风飞行”。若表演失败,则你摸X张牌。若表演成功,则你可以选择至多X名其他角色获得“御风”效果,然后摸X-Y张牌(准备阶段开始时,你进行判定。若结果为:红色,你跳过摸牌阶段;黑色,你跳过出牌阶段和弃牌阶段。X为你的得分。Y为你选择的角色数)。',
tianshu:'天书',
tianshu_info:'出牌阶段开始时,若场上没有【太平要术】,则你可以弃置一张牌并选择一名角色。该角色获得并使用【太平要术】。',
re_jiangwei:'手杀姜维',
retiaoxin:'挑衅',
retiaoxin_info:'出牌阶段限一次,你可以指定一名有牌的其他角色,该角色需对你使用一张【杀】,否则你弃置其一张牌。',
re_zhurong:'手杀祝融',
relieren:'烈刃',
relieren_info:'当你使用【杀】指定目标后,你可以和目标角色进行拼点。若你赢,你获得其一张牌。若你没赢,你获得对方的拼点牌,其获得你的拼点牌。',
zhouqun:'周群',
tiansuan:'天算',
tiansuan_info:'出牌阶段限一次,若场上没有因你产生的“命运签”,则你可以抽取一张“命运签”,然后令一名角色获得“命运签”直到你的下回合开始。若你以此法抽取的“命运签”为:上上签,你观看其手牌;上上签/上签,你获得其区域内的一张牌。',
tiansuan_faq:'【命运签】说明',
tiansuan_faq_info:'当你抽取“命运签”时,你可以令其中一种命运签的权重+1。
上上签(权重1):当你受到伤害时,防止此伤害。
上签(权重2):当你受到伤害时,你令伤害值改为1;当你受到1点伤害后,你摸一张牌。
中签(权重3):当你受到伤害时,你令伤害属性改为火属性并将伤害值改为1。
下签(权重2):当你受到伤害时,你令此伤害+1。
下下签(权重1):当你受到伤害时,你令此伤害+1。你不能使用【酒】或【桃】。',
tiansuan2_0:'命运签',
tiansuan2_1:'命运签',
tiansuan2_2:'命运签',
tiansuan2_damage:'命运签',
tiansuan2_fire:'命运签',
tiansuan2_3:'命运签',
tiansuan2_4:'命运签',
ol_yujin:'手杀于禁',
rejieyue:'节钺',
rejieyue_info:'结束阶段开始时,你可以将一张牌交给一名其他角色。然后其选择一项:令你摸三张牌:或其保留一张手牌和装备区的牌,然后弃置其余的牌。',
xin_zhoucang:'手杀周仓',
mobilezhongyong:'忠勇',
mobilezhongyong_info:'当你于出牌阶段内使用的【杀】结算结束后,若没有目标角色使用【闪】响应过此【杀】,则你可获得此【杀】;否则你可选择一项:①获得目标角色使用的【闪】,然后可将此【杀】交给另一名其他角色。②将目标角色使用的【闪】交给另一名其他角色,然后你本回合使用【杀】的次数上限+1且下一张【杀】的伤害值基数+1。(你不能使用本回合因执行〖忠勇〗的效果获得的牌)',
xin_caifuren:'手杀蔡夫人',
xinqieting:'窃听',
xinqieting_info:'其他角色的回合结束时,若其本回合内未对其他角色造成过伤害,则你可选择一项:①摸一张牌。②观看其两张手牌并获得其中的一张。③将其装备区内的一张牌移动至你的装备区。',
xinguixiu:'闺秀',
xinguixiu_info:'锁定技。结束阶段,若你的体力值为:奇数,你摸一张牌;偶数,你回复1点体力。',
re_zhonghui:'手杀钟会',
requanji:'权计',
requanji_info:'出牌阶段结束时,若你的手牌数大于体力值,或当你受到1点伤害后,你可以摸一张牌,然后将一张手牌置于武将牌上,称为“权”;你的手牌上限+X(X为“权”的数量)。',
xin_guyong:'手杀顾雍',
xinshenxing:'慎行',
xinshenxing_info:'出牌阶段限X次(X为你的体力值),你可以弃置两张牌,然后摸一张牌。若这两张牌颜色不同,则改为摸两张牌。',
xinbingyi:'秉壹',
xinbingyi_info:'结束阶段,你可展示所有手牌。若这些牌的颜色或类型均相同,则你可以令至多X名角色各摸一张牌(X为你的手牌数)。',
qiaozhou:'手杀谯周',
zhiming:'知命',
zhiming_info:'准备阶段开始时或弃牌阶段结束时,你摸一张牌,然后可以将一张牌置于牌堆顶。',
xingbu:'星卜',
xingbu_info:'结束阶段,你可以展示牌堆顶的三张牌,然后你可以根据X值(X为这三张牌中红色牌的数量),令一名其他角色获得对应的效果直到其下回合结束:①三张:其摸牌阶段多摸两张牌,使用【杀】的次数上限+1。②两张:其使用【杀】的次数上限-1,跳过弃牌阶段。③小于两张:其于准备阶段开始时弃置一张手牌。',
xin_sunluban:'手杀孙鲁班',
xinzenhui:'谮毁',
xinzenhui_info:'出牌阶段限一次。当你使用【杀】或黑色普通锦囊牌指定目标时,你可选择另一名能成为此牌目标的其他角色并选择一项:①令其也成为此牌的目标。②获得其一张牌,然后将此牌的使用者改为该角色。',
xinjiaojin:'骄矜',
xinjiaojin_info:'当你受到男性角色造成的伤害时,你可以弃置一张装备牌并防止此伤害。',
xin_caozhen:'手杀曹真',
discretesidi:'司敌',
discretesidi_info:'①当你使用的不为延时锦囊牌的牌结算结束后,你可选择一名R内不存在以a为第一序偶的二元序偶的其他角色a,并选择一名角色b,在关系R内建立二元序偶<a,b>(b对其他角色不可见)。②一名角色a使用不为延时锦囊牌的牌指定b为目标时,若(aRb)∧(此牌目标数为1)为真,则{你从R内移除<a,b>,且:若b为你,你摸一张牌;若b不为你,你可选择:⒈取消此牌的目标,然后若场上没有处于濒死状态的角色,则你对a造成1点伤害。⒉摸两张牌};否则{你清除R内以a为第一元素的二元序偶}。',
fuqian:'傅佥',
jueyong:'绝勇',
jueyong_info:'锁定技。①当你不因〖绝勇〗成为唯一牌的目标时,若此牌不为转化牌且对应的实体牌牌数为1且不为【桃】或【酒】且你的“绝”数小于你的体力值的二倍,则你将此牌置于你的武将牌上,称为“绝”,且取消此牌的目标。②结束阶段开始时,若你有“绝”,则你令所有“绝”的原使用者依次对你使用所有“绝”,将无法使用的“绝”置入弃牌堆。',
poxiang:'破降',
poxiang_info:'出牌阶段限一次。你可以将一张牌交给一名其他角色。你摸三张牌(不计入本回合的手牌上限),移去所有“绝”并失去1点体力。',
simafu:'司马孚',
xunde:'勋德',
xunde_info:'一名角色受到伤害后,若你至其的距离不大于1,则你可判定。若判定结果:大于5,你令该角色获得判定牌;小于7,你令伤害来源弃置一张牌。',
chenjie:'臣节',
chenjie_info:'一名角色的判定牌生效前,你可打出一张花色相同的牌。系统将你打出的牌作为新判定牌,将原判定牌置入弃牌堆。然后你摸两张牌。',
mayuanyi:'马元义',
jibing:'集兵',
jibing_info:'①摸牌阶段开始时,若你的“兵”数小于势力数,则你可以改为将牌堆顶的两张牌置于你的武将牌上,称为“兵”。②你可以将一张“兵”当做【杀】或【闪】使用或打出。',
wangjing:'往京',
wangjing_info:'锁定技。当你因〖集兵〗而使用或打出牌时,若对方是场上体力值最高的角色,则你摸一张牌。',
moucuan:'谋篡',
moucuan_info:'觉醒技。准备阶段,若你的“兵”数不小于势力数,则你减1点体力上限并获得〖兵祸〗。',
binghuo:'兵祸',
binghuo_info:'一名角色的结束阶段开始时,若你本回合内因〖集兵〗而使用或打出过牌,则你可令一名角色判定。若判定结果为黑色,则你对其造成1点雷属性伤害。',
yanpu:'阎圃',
huantu:'缓图',
huantu_info:'每轮限一次。一名角色的摸牌阶段开始前,若其在你攻击范围内,则你可以交给其一张牌并令其跳过此阶段。然后你于此回合的结束阶段选择一项:①令其回复1点体力并摸两张牌。②你摸三张牌,然后交给其两张手牌。',
bihuo:'避祸',
bihuo_info:'限定技。一名角色脱离濒死状态时,你可以令其摸三张牌,然后其他角色计算至其的距离时+X直到本轮结束(X为角色数)。',
sunhanhua:'手杀孙寒华',
chongxu:'冲虚',
chongxu_info:'出牌阶段限一次,你可以随机演奏一首音乐,并根据完成度来获得相应的分数(至多五分)。然后你可修改〖妙剑〗或〖莲华〗(消耗3分),并使用剩余的分数进行摸牌(每张2分)。',
chongxu_faq:'目前的曲库',
chongxu_faq_info:'
《鸟之诗》- 折户伸治
《竹取飛翔 ~ Lunatic Princess》- ZUN
《ignotus》- ak+q
《Super Mario 3D World Theme》- 横田真人
《只因你太美》- SWIN-S
《Croatian Rhapsody》- Maksim
《罗刹海市》- 刀郎
《Pigstep (Stereo Mix)》- Lena Raine',
miaojian:'妙剑',
miaojian_info:'出牌阶段限一次。你可将一张【杀】当做刺【杀】使用,或将一张锦囊牌当做【无中生有】使用。',
miaojian1:'妙剑·改',
miaojian1_info:'出牌阶段限一次。你可将一张基本牌当做刺【杀】使用,或将一张非基本牌当做【无中生有】使用。',
miaojian2:'妙剑·极',
miaojian2_info:'出牌阶段限一次。你可视为使用一张刺【杀】或【无中生有】。',
shhlianhua:'莲华',
shhlianhua_info:'当你成为【杀】的目标后,你摸一张牌。',
shhlianhua1:'莲华·改',
shhlianhua1_info:'当你成为【杀】的目标后,你摸一张牌。然后你进行判定,若结果为黑桃,则此【杀】对你无效。',
shhlianhua2:'莲华·极',
shhlianhua2_info:'当你成为【杀】的目标后,你摸一张牌。然后此【杀】的使用者选择一项:①弃置一张牌。②令此【杀】对你无效。',
re_yufan:'手杀虞翻',
rezongxuan:'纵玄',
rezongxuan_place:'纵玄',
rezongxuan_info:'当你的牌因弃置而进入弃牌堆后,你可以将其以任意顺序置于牌堆顶。出牌阶段限一次,你可以摸一张牌,然后将一张牌置于牌堆顶。',
yj_huangzhong:'☆黄忠',
spshidi:'势敌',
spshidi_info:'转换技,锁定技。①准备阶段/结束阶段开始时,若你发动此分支的累计次数为奇数/偶数,则你获得一个“☯”。②若你的“☯”数为偶数,则你至其他角色的距离-1,且你使用的黑色【杀】不可被响应。③若你的“☯”数为奇数,则其他角色至你的距离+1,且你不可响应红色【杀】。',
spyishi:'义释',
spyishi_info:'当你对装备区有牌的其他角色造成伤害时,你可令此伤害-1,然后获得其装备区内的一张牌。',
spqishe:'骑射',
spqishe_info:'你可以将一张装备牌当做【酒】使用。你的手牌上限+X(X为你装备区内的牌数)。',
sp_maojie:'毛玠',
bingqing:'秉清',
bingqing_info:'当你于出牌阶段内使用的牌结算结束后,若你于本阶段内使用的所有已结算结束的其他牌与此牌花色均不相同,则你可根据X的值执行对应效果:为2,你令一名角色摸两张牌;为3,你弃置一名角色区域内的一张牌;为4,你对一名其他角色造成1点伤害。(X为你本阶段内使用过的已结算结束的牌中包含的花色数)',
yingfeng:'迎奉',
yingfeng_info:'准备阶段,你可以令一名角色获得“奉”标记并移除场上所有其他的“奉”标记。有“奉”标记的角色使用牌没有距离限制。',
xin_sunxiu:'手杀孙休',
mobileyanzhu:'宴诛',
mobileyanzhu_info:'出牌阶段限一次,你可以令一名有牌的其他角色选择一项:①你获得其装备区里所有的牌,然后你失去技能〖宴诛〗。②你获得其一张牌。',
mobilexingxue:'兴学',
mobilexingxue_info:'结束阶段开始时,你可以令至多X名角色依次摸一张牌并将一张牌置于牌堆顶(X为你的体力值,若你未拥有〖宴诛〗,则将X改为你的体力上限,且其可以改为将一张牌交给一名其他目标角色)。',
re_wuguotai:'手杀吴国太',
reganlu:'甘露',
reganlu_info:'出牌阶段限一次,你可以选择装备区牌数之差的绝对值不大于X的两名角色或包含你在内的两名角色,然后交换这两名角色装备区内的牌。(X为你已损失的体力值)',
taoqian:'手杀陶谦',
miheng:'手杀祢衡',
re_gaoshun:'手杀高顺',
peixiu:'裴秀',
xingtu:'行图',
xingtu_info:'锁定技。①当你使用有点数的牌结算结束后,你将此牌点数记录为X。②当你使用牌时,若X÷Y的余数为0,则你摸一张牌(Y为此牌的点数)。③你使用Y÷X的余数为0的牌无次数限制(Y为此牌的点数)。',
juezhi:'爵制',
juezhi_info:'出牌阶段,你可以弃置至少两张牌,然后从牌堆中获得一张点数为X的牌(X为这些牌的点数和除以13后的余数,且当余数为0时X为13)。',
sp_jianggan:'手杀蒋干',
spdaoshu:'盗书',
spdaoshu_info:'每轮限一次。一名敌方角色的出牌阶段开始时,若其有手牌,则你可以令其视为使用一张【酒】。其须声明一个基本牌的牌名,然后你判断其手牌区内是否有该牌名的牌。若你判断正确,则你获得其两张手牌。',
spdaoshu_info_identity:'每轮限一次。一名其他角色的出牌阶段开始时,若其有手牌,则你可以令其视为使用一张【酒】。其须声明一个基本牌的牌名,然后你判断其手牌区内是否有该牌名的牌。若你判断正确,则你获得其两张手牌。',
spdaoshu_info_guozhan:'每轮限一次。一名其他角色的出牌阶段开始时,若其有手牌,则你可以令其视为使用一张【酒】。其须声明一个基本牌的牌名,然后你判断其手牌区内是否有该牌名的牌。若你判断正确,则你获得其两张手牌。',
spdaizui:'戴罪',
spdaizui2:'戴罪',
spdaizui_info:'限定技。当你受到伤害值不小于体力值的伤害时,你可防止此伤害并将此伤害渠道对应的所有实体牌置于伤害来源的武将牌上,称为“释”。本回合结束时,其获得所有“释”。',
re_caiwenji:'手杀蔡琰',
re_bulianshi:'手杀步练师',
reanxu:'安恤',
reanxu_info:'出牌阶段限一次,你可以选择两名其他角色,令其中一名角色获得另一名角色的一张牌。若以此法移动的牌不来自装备区,则你摸一张牌。然后你可以令二者中手牌数较少的一名角色摸一张牌。',
xin_jushou:'手杀沮授',
xinjianying:'渐营',
xinjianying_info:'①当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。②出牌阶段限一次,你可以将一张牌当做任意基本牌使用(不计入次数限制)。若你于此阶段内使用的上一张牌有花色,则此牌的花色视为上一张牌的花色。',
re_xunyu:"手杀荀彧",
rejieming:"节命",
rejieming_info:"当你受到1点伤害后,你可以令一名角色摸两张牌。然后若其手牌数小于体力上限,则你摸一张牌。",
xin_quancong:'手杀全琮',
sbyaoming:'邀名',
sbyaoming_info:'蓄力技(2/4)。①当你受到1点伤害后,你可以获得1点蓄力值。②出牌阶段或当你受到伤害后,你可消耗1点蓄力值并选择一项:⒈弃置一名手牌数不小于你的角色的一张牌。⒉令一名手牌数不大于你的角色摸一张牌。若你上次发动〖邀名②〗时未获得过蓄力值且你选择的选项和上次不同,则你获得1点蓄力值。',
ruanhui:'阮慧',
mingcha:'明察',
mingcha_info:'摸牌阶段开始时,你亮出牌堆顶的三张牌。若这三张牌中有点数小于9的牌,则你可以放弃摸牌并获得这些牌,然后你可以获得一名其他角色的随机一张牌。',
jingzhong:'敬重',
jingzhong_info:'弃牌阶段结束时,若你于本阶段内弃置过至少两张黑色牌,则你可以选择一名其他角色并获得如下效果直到其回合结束:每阶段限三次,其于出牌阶段内使用的牌结算结束后,你获得此牌对应的实体牌。',
xin_mamidi:'手杀马日磾',
chengye:'承业',
chengye_info:'锁定技。①其他角色使用的非转化牌结算结束后,或其他角色的装备牌和延时锦囊牌进入弃牌堆后,或有延时锦囊牌因其他角色执行判定阶段的流程而进入弃牌堆后,若你的“六经”有空缺的位置可以置入此牌,则你将此牌置于你武将牌上,填补“六经”的对应位置。②出牌阶段开始时,若你的“六经”没有空缺的位置,则你获得所有“六经”。',
chengye_append:'《诗经》:伤害类锦囊牌
《尚书》:基本牌
《仪礼》:无懈可击
《易经》:无中生有
《乐经》:乐不思蜀
《春秋》:装备牌',
buxu:'补叙',
buxu_backup:'补叙',
buxu_info:'出牌阶段,若你的“六经”中有空缺的位置,则你可以弃置X+1张牌并选择一种空缺的“六经”(X为你本阶段内发动过〖补叙〗的次数)。系统从牌堆或弃牌堆中检索一张对应的牌,然后你将此牌置于你武将牌上,填补“六经”的对应位置。',
re_dianwei:"手杀典韦",
liuye:'手杀刘晔',
sp_caosong:'手杀曹嵩',
yijin:'亿金',
yijin_info:'锁定技。①游戏开始时,你获得“膴仕”、“金迷”、“贾凶”、“通神”、“拥蔽”、“厚任”各1枚(均称为“金”)。②出牌阶段开始时,你选择一名没有“金”的其他角色。你交给其1枚“金”,且令其获得对应效果。③一名角色的回合结束后,若其有你交给其的“金”,其移去此“金”。④当你死亡时,移去场上所有你交出的“金”。⑤回合开始时,若你没有“金”,你死亡。',
yijin_wushi:'膴仕',
yijin_wushi_info:'锁定技。①摸牌阶段,你多摸四张牌。②你使用【杀】的次数上限+1。',
yijin_jinmi:'金迷',
yijin_jinmi_info:'锁定技。回合开始时,你跳过下一个出牌阶段和弃牌阶段。',
yijin_guxiong:'贾凶',
yijin_guxiong_info:'锁定技。①出牌阶段开始时,你失去1点体力。②你的手牌上限-3。',
yijin_tongshen:'通神',
yijin_tongshen_info:'锁定技。当你受到非雷电伤害时,防止之。',
yijin_yongbi:'拥蔽',
yijin_yongbi_info:'锁定技。准备阶段,你跳过下一个摸牌阶段。',
yijin_houren:'厚任',
yijin_houren_info:'锁定技。回合结束时,你回复3点体力。',
guanzong:'惯纵',
guanzong_info:'出牌阶段限一次。你可以令一名其他角色视为对另一名其他角色造成过1点伤害。',
yangfu:'杨阜',
jiebing:'借兵',
jiebing_info:'锁定技。当你受到伤害后,你选择来源外的一名其他角色,随机获得其一张牌并展示。若此牌为装备牌,你使用之。',
hannan:'扞难',
hannan_info:'出牌阶段限一次。你可以与一名角色拼点,赢的角色对没赢的角色造成2点伤害。',
xin_wuyi:'手杀吴懿',
sbbenxi:'奔袭',
sbbenxi_info:'出牌阶段开始时,你可以弃置至少一张牌,然后你于此阶段获得如下效果:①你至其他角色距离-X;②当你使用的下一张基本牌或普通锦囊牌A选择目标后,你可以额外指定X名距离为1的角色为目标;③牌A结算结束后,若此牌造成过伤害,你摸五张牌(X为你以此法弃置的牌数)。',
xin_zhuzhi:'手杀朱治',
sbanguo:'安国',
sbanguo_info:'①游戏开始时,你令一名其他角色获得1枚“安国”标记(有“安国”的角色手牌上限基数等于体力上限)。②出牌阶段开始时,你可以将一名有“安国”的角色的所有“安国”移动给一名本局游戏未获得过“安国”的其他角色。③当你受到伤害时,若有有“安国”的角色且伤害值不小于你的体力值且此伤害没有来源或来源没有“安国”,防止此伤害。④一名角色进入濒死状态时,若其有你因〖安国①〗获得的“安国”,你移去其该“安国”,令其将体力回复至1点。然后你选择一项:1.若你的体力值大于1,你失去体力至1点;2.若你的体力上限大于1,你将体力上限减至1。最后你令其获得X点护甲(X为你以此法失去的体力值或减少的体力上限)。',
wangjun:'手杀王濬',
zhujian:'筑舰',
zhujian_info:'出牌阶段限一次。你可以令至少两名装备区里有牌的角色各摸一张牌。',
duansuo:'断索',
duansuo_info:'出牌阶段限一次。你可以重置任意名处于连环状态的角色,然后对这些角色各造成1点火焰伤害。',
sp_pengyang:'彭羕',
spdaming:'达命',
spdaming_info:'①游戏开始时,你获得2点“达命”值。②其他角色A的出牌阶段限一次。其可以交给你一张牌,然后你选择另一名其他角色B。若B有与此牌相同类型的牌,其将一张该类型的牌交给A,你获得1点“达命”值;否则你将此牌交给A。',
spxiaoni:'嚣逆',
spxiaoni_info:'①出牌阶段限一次。若你的“达命”值大于0,你可以将一张牌当任意一种【杀】或伤害类锦囊牌使用。然后你减少等同于此牌指定目标数的“达命”值。②你的手牌上限基数为X(X为“达命”值,且至多为你的体力值,至少为0)。',
xin_zhuhuan:'手杀朱桓',
xinpingkou:'平寇',
xinpingkou_info:'回合结束时,你可以对至多X名其他角色各造成1点伤害(X为你本回合跳过的阶段数)。然后你从牌堆中获得一张装备牌。',
xin_caoxiu:'手杀曹休',
xinqingxi:'倾袭',
xinqingxi_info:'每回合限一次。当你对其他角色造成伤害时,你可以令其选择一项:1.弃置X张手牌(X为4减去你至其的距离,至少为1);2.令此伤害+1。',
yj_weiyan:'☆魏延',
mbguli:'孤厉',
mbguli_info:'出牌阶段限一次。你可以将所有手牌当做一张无视防具的【杀】使用。此牌结算结束后,若此牌造成过伤害,你可以失去1点体力并将手牌摸至X张(X为你的体力上限)。',
mbaosi:'骜肆',
mbaosi_info:'锁定技。当你于出牌阶段对一名攻击范围内的角色造成伤害后,你于此阶段对其使用牌无次数限制。',
xin_zhoutai:'手杀周泰',
re_yanwen:"手杀颜良文丑",
old_wanglang:'旧王朗',
qianzhao:'牵招',
mbshihe:'势吓',
mbshihe_info_identity:'出牌阶段限一次。你可以与一名角色拼点。若你:赢,当其于其下回合结束前对你造成伤害时,取消之;没赢,你随机弃置一张牌。',
mbshihe_info:'出牌阶段限一次。你可以与一名角色拼点。若你:赢,当其于其下回合结束前对你和你的友方角色造成伤害时,取消之;没赢,你随机弃置一张牌。',
mbzhenfu:'镇抚',
mbzhenfu_info:'结束阶段,若你本回合因弃置失去过牌,你可以令一名其他角色获得1点护甲。',
shichangshi:'十常侍',
mbdanggu:'党锢',
mbdanggu_info:'锁定技。①游戏开始时,你获得十张“常侍”牌,然后你进行一次结党。②当你修整结束后,你进行一次结党并摸一张牌。③若你有亮出的“常侍”牌,你视为拥有这些牌的技能。',
mbdanggu_faq:'关于结党',
mbdanggu_faq_info:'
系统随机选择一张未亮出过的“常侍”牌,然后选择四张未亮出过的“常侍”牌。你观看前者,然后从后者中选择一名认可前者的“常侍”牌。然后若此时不为双将模式,你将这两张武将牌作为你的武将牌(不移除原有技能);否则你获得这两张武将牌上的技能。',
mbdanggu_faq2:'关于认可',
mbdanggu_faq2_info:'
双向不认可常侍为固定组合:
郭胜、段珪
韩悝、毕岚
单向不认可常侍为系统随机分配。
每次结党至多存在一张不认可主将的常侍牌,且若此次结党仅有一张常侍牌,则不会存在不认可情况。',
mbmowang:'殁亡',
mbmowang_info:'锁定技。①当你死亡前,若你有未亮出的“常侍”牌且体力上限大于0,你将死亡改为修整至你的下个回合开始前,然后你复原武将牌,且不于此次死亡事件中进行展示身份牌、检测游戏胜利条件与执行奖惩的流程。②回合结束后,你死亡。',
mbmowang_faq:'关于修整',
mbmowang_faq_info:'
将武将牌移出游戏(视为你存活)。当该角色修整结束,其移回游戏。',
scs_zhangrang:'张让',
scstaoluan:'滔乱',
scstaoluan_info:'出牌阶段限一次。你可以将一张牌当任意一种基本牌或普通锦囊牌使用。',
scs_zhaozhong:'赵忠',
scschiyan:'鸱咽',
scschiyan_info:'①当你使用【杀】指定目标后,你可以将其的一张牌置于其武将牌上,然后其于当前回合结束时获得这些牌。②当你因执行【杀】的效果对一名角色造成伤害时,若该角色的手牌数和装备区内的牌数均不大于你,此伤害+1。',
scs_sunzhang:'孙璋',
scszimou:'自谋',
scszimou_info:'锁定技。出牌阶段,当你使用第二/四/六张牌时,你从牌堆中获得一张【酒】/【杀】/【决斗】。',
scs_bilan:'毕岚',
scspicai:'庀材',
scspicai_info:'出牌阶段限一次。你可进行判定牌不置入弃牌堆的判定。若判定结果与本次发动技能时的其他判定结果的花色均不相同,则你可以重复此流程。然后你将所有位于处理区的判定牌交给一名角色。',
scs_xiayun:'夏恽',
scsyaozhuo:'谣诼',
scsyaozhuo_info:'出牌阶段限一次。你可以与一名角色拼点,若你赢,其跳过下一个摸牌阶段;若你没赢,你弃置两张牌。',
scs_hankui:'韩悝',
scsxiaolu:'宵赂',
scsxiaolu_info:'出牌阶段限一次。你可以摸两张牌,然后选择一项:1.弃置两张牌;2.将两张牌交给一名其他角色。',
scs_lisong:'栗嵩',
scskuiji:'窥机',
scskuiji_info:'出牌阶段限一次。你可以观看一名其他角色的手牌,然后弃置你与其的共计四张花色各不相同的手牌。',
scs_duangui:'段珪',
scschihe:'叱吓',
scschihe_info:'当你使用【杀】指定唯一目标后,你可亮出牌堆顶的两张牌,令此【杀】的伤害值基数+X(X为亮出牌中花色与此【杀】相同的牌数),且目标角色不能使用亮出牌包含的花色的牌响应此【杀】。',
scs_guosheng:'郭胜',
scsniqu:'逆取',
scsniqu_info:'出牌阶段限一次。你可以对一名角色造成1点火焰伤害。',
scs_gaowang:'高望',
scsanruo:'安弱',
scsanruo_info:'你可以将一张♥牌当【桃】、♦牌当火【杀】、♣牌当【闪】、♠牌当【无懈可击】使用。当你以此法使用或打出【杀】或【闪】时,你可以获得对方的一张牌;当你以此法使用【桃】时,你可以获得一名其他角色的一张牌;当你以此法使用【无懈可击】时,你可以获得此牌响应的普通锦囊牌的使用者的一张牌。',
scsmiaoyu:'妙语',
scsmiaoyu_info:'你可以将至多两张相同花色的牌按照以下规则使用或打出:♦牌当作火【杀】,♥牌当作【桃】,♣牌当作【闪】,♠牌当作【无懈可击】。若你以此法使用了两张红色牌,则此牌回复值或伤害值+1。若你以此法使用了两张黑色牌,则你弃置当前回合角色一张牌。',
re_xiaoqiao:'手杀小乔',
xin_sunliang:'手杀孙亮',
xinkuizhu:'溃诛',
xinkuizhu_info:'弃牌阶段结束后,你可以选择一项:1.令至多X名角色各摸一张牌。2.对任意名体力值之和为X的角色造成1点伤害,若你以此法选择的角色数不小于2,你失去1点体力。(X为你此阶段弃置的牌数)',
xinzhizheng:'掣政',
xinzhizheng_info:'锁定技,你的出牌阶段内,攻击范围内不包含你的其他角色不能成为你使用牌的目标。出牌阶段结束时,若你本阶段内使用的牌数小于这些角色的数量,则你弃置其中一名角色的一张牌。',
xinlijun:'立军',
xinlijun_info:'主公技,其他吴势力角色于其回合内使用【杀】结算完毕后,其可以将此【杀】对应的实体牌交给你,然后你可以令其摸一张牌。',
xin_zhangyi:'手杀张嶷',
xinwurong:'怃戎',
xinwurong_info:'出牌阶段限一次,你可以与一名其他角色进行谋弈:
若你选择“镇压”且其选择“反抗”,你对其造成1点伤害,然后你摸一张牌。
若你选择“安抚”且其选择“归顺”,其须交给你两张牌(若其手牌数不足两张,则改为令其跳过其下个摸牌阶段)。
若你选择“镇压”且其选择“归顺”,你获得其一张牌,然后你交给其两张牌。
若你选择“安抚”且其选择“反抗”,你受到1点伤害,然后你摸两张牌。',
xin_guozhao:'手杀郭照',
yichong:'易宠',
yichong_info:'①准备阶段,你可以选择一名其他角色并选择一个花色,然后你获得其所有此花色的牌,移除场上的所有“雀”标记,令其获得“雀”标记直到你的下个回合开始。②拥有“雀”标记的角色获得你最后一次发动〖易宠①〗选择的花色的牌后,你获得这些牌(你至多通过每个“雀”获得五张牌)。',
wufei:'诬诽',
wufei_info:'若场上存在拥有“雀”标记的角色A,则:①当你使用【杀】或伤害类锦囊牌指定第一个目标后,你令A成为此牌伤害来源。②当你受到伤害后,若A的体力值大于1且A的体力值大于你,则你可以对A造成1点伤害。',
mobile_standard:'手杀异构·标准包',
mobile_shenhua_feng:'手杀异构·其疾如风',
mobile_shenhua_huo:'手杀异构·侵掠如火',
mobile_shenhua_lin:'手杀异构·其徐如林',
mobile_shenhua_shan:'手杀异构·不动如山',
mobile_shenhua_yin:'手杀异构·难知如阴',
mobile_shenhua_lei:'手杀异构·动如雷霆',
mobile_yijiang1:'手杀异构·将1',
mobile_yijiang2:'手杀异构·将2',
mobile_yijiang3:'手杀异构·将3',
mobile_yijiang4:'手杀异构·将4',
mobile_yijiang5:'手杀异构·将5',
mobile_yijiang67:'手杀异构·原创设计',
mobile_sp:'手杀异构·SP',
mobile_changshi:'十常侍单体',
}
};
});