【'+get.translation(lib.translate[skill+'_ab']||get.translation(skill).slice(0,2))+'】
'+
''+get.skillInfoTranslation(skill,player)+'
');
}
}
},
addHuashen:function(player){
if(!player.storage.huashen) return;
if(!_status.characterlist){
lib.skill.pingjian.initList();
}
_status.characterlist.randomSort();
for(var i=0;i<_status.characterlist.length;i++){
let name=_status.characterlist[i];
if(name.indexOf('zuoci')!=-1||name.indexOf('key_')==0||name.indexOf('sp_key_')==0||lib.skill.rehuashen.banned.includes(name)||player.storage.huashen.owned[name]) continue;
let skills=lib.character[name][3].filter(skill=>{
const categories=get.skillCategoriesOf(skill);
return !categories.some(type=>lib.skill.rehuashen.bannedType.includes(type));
})
if(skills.length){
player.storage.huashen.owned[name]=skills;
_status.characterlist.remove(name);
return name;
}
}
},
addHuashens:function(player,num){
var list=[];
for(var i=0;ilib.skill.rehuashen.$createButton(item,type,position,noclick,node)]);
event.dialog=dialog;
event.forceMine=true;
event.button=null;
for(var i=0;i{
if(lib.skill.rehuashen.checkAudio(character,skillx,'zuoci')){
lib.skill.rehuashen.createAudio(character,skillx,'zuoci');
}
});
}
}
}
},
huashen2:{audio:2},
xinsheng:{
audio:2,
unique:true,
trigger:{player:'damageEnd'},
frequent:true,
content:function(){
'step 0'
event.num=trigger.num;
'step 1'
lib.skill.huashen.addHuashens(player,1);
'step 2'
if(--event.num>0&&player.hasSkill(event.name)&&!get.is.blocked(event.name,player)){
player.chooseBool(get.prompt2('xinsheng')).set('frequentSkill',event.name);
}
else event.finish();
'step 3'
if(result.bool&&player.hasSkill('xinsheng')){
player.logSkill('xinsheng');
event.goto(1);
}
},
},
huoshou:{
audio:"huoshou1",
audioname:['re_menghuo'],
locked:true,
group:['huoshou1','huoshou2'],
preHidden:['huoshou1','huoshou2'],
ai:{
effect:{
target:function(card,player,target){
if(card.name=='nanman') return 0;
}
}
}
},
huoshou1:{
audio:2,
audioname:['re_menghuo'],
trigger:{target:'useCardToBefore'},
forced:true,
priority:15,
filter:function(event,player){
return (event.card.name=='nanman');
},
content:function(){
trigger.cancel();
},
},
huoshou2:{
audio:"huoshou1",
audioname:['re_menghuo'],
trigger:{global:'useCard'},
forced:true,
filter:function(event,player){
return (event.card&&event.card.name=='nanman'&&event.player!=player);
},
content:function(){
trigger.customArgs.default.customSource=player;
}
},
zaiqixx:{
audio:'zaiqi',
inherit:'zaiqi',
},
zaiqi:{
audio:2,
trigger:{player:'phaseDrawBegin1'},
filter:function(event,player){
return !event.numFixed&&player.hp=2;
}
return true;
},
content:function(){
"step 0"
trigger.changeToZero();
event.cards=get.cards(player.getDamagedHp()+(event.name=='zaiqi'?0:1));
game.cardsGotoOrdering(event.cards);
player.showCards(event.cards);
"step 1"
var num=0;
for(var i=0;i1;
},
//priority:5,
content:function(){
"step 0"
player.chooseToCompare(trigger.player);
"step 1"
if(result.bool&&trigger.player.countGainableCards(player,'he')){
player.gainPlayerCard(trigger.player,true,'he');
}
}
},
xingshang:{
audio:2,
trigger:{global:'die'},
preHidden:true,
filter:function(event){
return event.player.countCards('he')>0;
},
content:function(){
"step 0"
event.togain=trigger.player.getCards('he');
player.gain(event.togain,trigger.player,'giveAuto','bySelf');
},
},
fangzhu:{
audio:2,
trigger:{player:'damageEnd'},
direct:true,
preHidden:true,
content:function(){
"step 0"
var draw=player.getDamagedHp();
player.chooseTarget(get.prompt('fangzhu'),'令一名其他角色翻面'+(draw>0?'并摸'+get.cnNumber(draw)+'张牌':''),function(card,player,target){
return player!=target
}).setHiddenSkill('fangzhu').set('ai',target=>{
if(target.hasSkillTag('noturn')) return 0;
var player=_status.event.player;
var current=_status.currentPhase;
var dis=current?get.distance(current,target,'absolute'):1;
var draw=player.getDamagedHp();
var att=get.attitude(player,target);
if(att==0) return target.hasJudge('lebu')?Math.random()/3:Math.sqrt(get.threaten(target))/5+Math.random()/2;
if(att>0){
if(target.isTurnedOver()) return att+draw;
if(draw<4) return -1;
if(current&&target.getSeatNum()>current.getSeatNum()) return att+draw/3;
return 10*Math.sqrt(Math.max(0.01,get.threaten(target)))/(3.5-draw)+dis/(2*game.countPlayer());
}
else{
if(target.isTurnedOver()) return att-draw;
if(draw>=5) return -1;
if(current&&target.getSeatNum()<=current.getSeatNum()) return -att+draw/3;
return (4.25-draw)*10*Math.sqrt(Math.max(0.01,get.threaten(target)))+2*game.countPlayer()/dis;
}
});
"step 1"
if(result.bool){
player.logSkill('fangzhu',result.targets);
var draw=player.getDamagedHp();
if(draw>0) result.targets[0].draw(draw);
result.targets[0].turnOver();
}
},
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.hp<=1) return;
if(!target.hasFriend()) return;
var hastarget=false;
var turnfriend=false;
var players=game.filterPlayer();
for(var i=0;i0&&players[i].isTurnedOver()){
hastarget=true;
turnfriend=true;
}
}
if(get.attitude(player,target)>0&&!hastarget) return;
if(turnfriend||target.hp==target.maxHp) return [0.5,1];
if(target.hp>1) return [1,0.5];
}
}
}
}
},
songwei:{
unique:true,
group:'songwei2',
audioname:['re_caopi'],
audio:"songwei2",
zhuSkill:true,
},
songwei2:{
audio:2,
audioname:['re_caopi'],
forceaudio:true,
trigger:{global:'judgeEnd'},
filter:function(event,player){
if(event.player==player||event.player.group!='wei') return false;
if(event.result.color!='black') return false;
return player.hasZhuSkill('songwei',event.player);
},
direct:true,
content:function(){
'step 0'
trigger.player.chooseBool('是否发动【颂威】,令'+get.translation(player)+'摸一张牌?').set('choice',get.attitude(trigger.player,player)>0);
'step 1'
if(result.bool){
player.logSkill('songwei2');
trigger.player.line(player,'green');
player.draw();
}
}
},
jiezi:{
trigger:{global:['phaseDrawSkipped','phaseDrawCancelled']},
audio:2,
forced:true,
filter:function(event,player){
return event.player!=player;
},
content:function(){
player.draw();
}
},
gzduanliang:{
audio:'duanliang1',
audioname:['re_xuhuang'],
group:['duanliang1','duanliang2'],
ai:{
threaten:1.2
}
},
duanliang:{
audio:'duanliang1',
audioname:['re_xuhuang'],
group:['duanliang1','duanliang3'],
ai:{
threaten:1.2
}
},
duanliang1:{
audio:2,
audioname:['re_xuhuang'],
enable:'chooseToUse',
filterCard:function(card){
if(get.type(card)!='basic'&&get.type(card)!='equip') return false;
return get.color(card)=='black';
},
filter:function(event,player){
return player.countCards('hes',{type:['basic','equip'],color:'black'})
},
position:'hes',
viewAs:{name:'bingliang'},
prompt:'将一黑色的基本牌或装备牌当兵粮寸断使用',
check:function(card){return 6-get.value(card)},
ai:{
order:9
}
},
duanliang2:{
mod:{
targetInRange:function(card,player,target){
if(card.name=='bingliang'){
if(get.distance(player,target)<=2) return true;
}
}
}
},
duanliang3:{
mod:{
targetInRange:function(card,player,target){
if(card.name=='bingliang'){
if(target.countCards('h')>=player.countCards('h')) return true;
}
}
}
},
haoshi:{
audio:2,
trigger:{player:'phaseDrawBegin2'},
filter:function(event,player){
return !event.numFixed;
},
preHidden:true,
check:function(event,player){
return (player.countCards('h')+2+event.num)<=5||game.hasPlayer(function(target){
return player!==target&&!game.hasPlayer(function(current){
return current!==player&¤t!==target&¤t.countCards('h')0;
});
},
content:function(){
trigger.num+=2;
player.addSkill('haoshi2');
},
ai:{
threaten:2,
ai:{
noh:true,
skillTagFilter:function(player,tag){
if(tag=='noh'){
if(player.countCards('h')!=2) return false;
}
}
}
}
},
haoshi2:{
trigger:{player:'phaseDrawEnd'},
forced:true,
popup:false,
audio:false,
content:function(){
"step 0"
player.removeSkill('haoshi2');
if(player.countCards('h')<=5){
event.finish();
return;
}
player.chooseCardTarget({
selectCard:Math.floor(player.countCards('h')/2),
filterTarget:function(card,player,target){
return target.isMinHandcard();
},
prompt:'将一半的手牌交给场上手牌数最少的一名角色',
forced:true,
ai2:function(target){
return get.attitude(_status.event.player,target);
}
});
"step 1"
if(result.targets&&result.targets[0]){
player.give(result.cards,result.targets[0]);
}
}
},
dimeng:{
audio:2,
enable:'phaseUse',
usable:1,
position:'he',
filterCard:function(){
var targets=ui.selected.targets;
if(targets.length==2){
if(Math.abs(targets[0].countCards('h')-targets[1].countCards('h'))<=ui.selected.cards.length) return false;
}
return true;
},
selectCard:[0,Infinity],
selectTarget:2,
complexCard:true,
filterTarget:function(card,player,target){
if(player==target) return false;
return true;
},
filterOk:function(){
var targets=ui.selected.targets;
if(targets.length!=2) return false;
return (Math.abs(targets[0].countCards('h')-targets[1].countCards('h'))==ui.selected.cards.length);
},
multitarget:true,
multiline:true,
content:function(){
targets[0].swapHandcards(targets[1]);
},
check:function(card){
var list=[],player=_status.event.player;
var num=player.countCards('he');
var count;
var players=game.filterPlayer();
for(var i=0;i3) list.push(players[i]);
}
list.sort(function(a,b){
return a.countCards('h')-b.countCards('h');
});
if(list.length==0) return -1;
var from=list[0];
list.length=0;
for(var i=0;i=list[0].countCards('h')) return -1;
for(var i=0;i=2) return -1;
if(ui.selected.cards.length3) list.push(players[i]);
}
list.sort(function(a,b){
return a.countCards('h')-b.countCards('h');
});
if(target==list[0]) return get.attitude(player,target);
return -get.attitude(player,target);
}
else{
var from=ui.selected.targets[0];
for(var i=0;i=list[0].countCards('h')) return -get.attitude(player,target);
for(var i=0;i=2) return -get.attitude(player,target);
if(target==list[i]) return get.attitude(player,target);
return -get.attitude(player,target);
}
}
}
}
}
}
},
yinghun:{
audio:2,
audioname:['re_sunjian','sunce','re_sunben','re_sunce','ol_sunjian'],
audioname2:{
re_sunyi:'gzyinghun_re_sunyi',
tw_ol_sunjian:'yinghun_ol_sunjian',
},
mod:{
aiOrder:function(player,card,num){
if(num>0&&_status.event&&_status.event.type=='phase'&&get.tag(card,'recover')){
if(player.needsToDiscard()) return num/3;
return 0;
}
}
},
locked:false,
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
preHidden:true,
content:function(){
"step 0"
player.chooseTarget(get.prompt2('yinghun'),function(card,player,target){
return player!=target;
}).set('ai',function(target){
var player=_status.event.player;
if(player.getDamagedHp()==1&&target.countCards('he')==0){
return 0;
}
if(get.attitude(_status.event.player,target)>0){
return 10+get.attitude(_status.event.player,target);
}
if(player.getDamagedHp()==1){
return -1;
}
return 1;
}).setHiddenSkill(event.name);
"step 1"
if(result.bool){
event.num=player.getDamagedHp();
player.logSkill(event.name,result.targets);
event.target=result.targets[0];
if(event.num==1){
event.directcontrol=true;
}
else{
var str1='摸'+get.cnNumber(event.num,true)+'弃一';
var str2='摸一弃'+get.cnNumber(event.num,true);
player.chooseControl(str1,str2,function(event,player){
if(player.isHealthy()) return 1-_status.event.choice;
return _status.event.choice;
}).set('choice',(get.attitude(player,event.target)>0)?0:1);
event.str=str1;
}
}
else{
event.finish();
}
"step 2"
if(event.directcontrol||result.control==event.str){
if(event.num>0) event.target.draw(event.num);
event.target.chooseToDiscard(true,'he');
}
else{
event.target.draw();
if(event.num>0) event.target.chooseToDiscard(event.num,true,'he');
}
},
ai:{
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')&&get.itemtype(player)==='player'&&target.hp>(player.hasSkillTag('damageBonus',true,{
target:target,
card:card
})?2:1)) return [1,1];
}
},
threaten:function(player,target){
return Math.max(0.5,target.getDamagedHp()/2);
},
maixie:true
}
},
gzyinghun:{
audio:'yinghun',
audioname:['re_sunjian','sunce','re_sunben','re_sunce','ol_sunjian','sb_sunce'],
audioname2:{
re_sunyi:'gzyinghun_re_sunyi',
tw_ol_sunjian:'yinghun_ol_sunjian',
},
mod:{
aiOrder:function(player,card,num){
if(num>0&&_status.event&&_status.event.type=='phase'&&get.tag(card,'recover')){
if(player.needsToDiscard()) return num/3;
return 0;
}
}
},
locked:false,
trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){
return player.getDamagedHp()>0;
},
direct:true,
preHidden:true,
content:function(){
"step 0"
player.chooseTarget(get.prompt2('gzyinghun'),function(card,player,target){
return player!=target;
}).set('ai',function(target){
var player=_status.event.player;
if(player.getDamagedHp()==1&&target.countCards('he')==0){
return 0;
}
if(get.attitude(_status.event.player,target)>0){
return 10+get.attitude(_status.event.player,target);
}
if(player.getDamagedHp()==1){
return -1;
}
return 1;
}).setHiddenSkill(event.name);
"step 1"
if(result.bool){
event.num=player.getDamagedHp();
player.logSkill(event.name,result.targets);
event.target=result.targets[0];
if(event.num==1){
event.directcontrol=true;
}
else{
var str1='摸'+get.cnNumber(event.num,true)+'弃一';
var str2='摸一弃'+get.cnNumber(event.num,true);
player.chooseControl(str1,str2,function(event,player){
return _status.event.choice;
}).set('choice',get.attitude(player,event.target)>0?str1:str2);
event.str=str1;
}
}
else{
event.finish();
}
"step 2"
if(event.directcontrol||result.control==event.str){
event.target.draw(event.num);
event.target.chooseToDiscard(true,'he');
}
else{
event.target.draw();
event.target.chooseToDiscard(event.num,true,'he');
}
},
ai:{
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')&&get.itemtype(player)==='player'&&target.hp>(player.hasSkillTag('damageBonus',true,{
target:target,
card:card
})?2:1)) return [1,1];
}
},
threaten:function(player,target){
return Math.max(0.5,target.getDamagedHp()/2);
},
maixie:true
}
},
yinghun_ol_sunjian:{audio:2},
jiuchi:{
audio:2,
audioname:['re_dongzhuo'],
enable:'chooseToUse',
filterCard:function(card){
return get.suit(card)=='spade';
},
viewAs:{name:'jiu'},
viewAsFilter:function(player){
if(!player.countCards('hs',{suit:'spade'})) return false;
return true;
},
prompt:'将一张黑桃手牌当酒使用',
check:function(card){
if(_status.event.type=='dying') return 1/Math.max(0.1,get.value(card));
return 4-get.value(card);
},
ai:{
threaten:1.5,
}
},
roulin:{
audio:2,
audioname:['re_dongzhuo','ol_dongzhuo'],
trigger:{player:'useCardToPlayered',target:'useCardToTargeted'},
forced:true,
filter:function(event,player){
if(event.card.name!='sha') return false;
if(player==event.player){
return event.target.hasSex('female');
}
return event.player.hasSex('female');
},
check:function(event,player){
return player==event.player;
},
content:function(){
var id=(player==trigger.player?trigger.target:player).playerid;
var map=trigger.getParent().customArgs;
if(!map[id]) map[id]={};
if(typeof map[id].shanRequired=='number'){
map[id].shanRequired++;
}
else{
map[id].shanRequired=2;
}
},
ai:{
directHit_ai:true,
skillTagFilter:function(player,tag,arg){
if(arg.card.name!='sha'||!arg.target.hasSex('female')||arg.target.countCards('h','shan')>1) return false;
},
},
},
benghuai:{
audio:2,
audioname:['zhugedan','re_dongzhuo','ol_dongzhuo','re_zhugedan'],
trigger:{player:'phaseJieshuBegin'},
forced:true,
check:function(){
return false;
},
filter:function(event,player){
return !player.isMinHp()&&!player.hasSkill('rejiuchi_air')&&!player.hasSkill('oljiuchi_air');
},
content:function(){
"step 0"
player.chooseControl('baonue_hp','baonue_maxHp',function(event,player){
if(player.hp==player.maxHp) return 'baonue_hp';
if(player.hp0);
'step 1'
if(result.bool){
player.logSkill('baonue');
trigger.source.line(player,'green')
trigger.source.judge(function(card){
if(get.suit(card)=='spade') return 4;
return 0;
}).judge2=function(result){
return result.bool?true:false;
};
}
else{
event.finish();
}
'step 2'
if(result.suit=='spade'){
player.recover();
}
}
},
luanwu:{
audio:2,
audioname:['re_jiaxu'],
unique:true,
enable:'phaseUse',
limited:true,
skillAnimation:'epic',
animationColor:'thunder',
filterTarget:function(card,player,target){
return target!=player;
},
selectTarget:-1,
multitarget:true,
multiline:true,
content:function(){
"step 0"
player.awakenSkill('luanwu');
event.current=player.next;
event.currented=[];
"step 1"
event.currented.push(event.current);
event.current.animate('target');
event.current.chooseToUse('乱武:使用一张杀或失去1点体力',function(card){
if(get.name(card)!='sha') return false;
return lib.filter.cardEnabled.apply(this,arguments)
},function(card,player,target){
if(player==target) return false;
var dist=get.distance(player,target);
if(dist>1){
if(game.hasPlayer(function(current){
return current!=player&&get.distance(player,current)0) att=1;
if(att<0) att=-1;
if(players[i]!=player&&players[i].hp<=3){
if(players[i].countCards('h')==0) num+=att/players[i].hp;
else if(players[i].countCards('h')==1) num+=att/2/players[i].hp;
else if(players[i].countCards('h')==2) num+=att/4/players[i].hp;
}
if(players[i].hp==1) num+=att*1.5;
}
if(player.hp==1){
return -num;
}
if(player.hp==2){
return -game.players.length/4-num;
}
return -game.players.length/3-num;
}
}
}
},
wansha:{
locked:true,
audio:2,
audioname:['boss_lvbu3','shen_simayi'],
global:'wansha2',
trigger:{global:'dying'},
priority:15,
forced:true,
preHidden:true,
filter:function(event,player,name){
return _status.currentPhase==player&&event.player!=player;
},
content:function(){}
},
wansha2:{
mod:{
cardSavable:function(card,player){
if(!_status.currentPhase) return;
if(_status.currentPhase.isIn()&&_status.currentPhase.hasSkill('wansha')&&_status.currentPhase!=player){
if(card.name=='tao'&&!player.isDying()) return false;
}
},
cardEnabled:function(card,player){
if(!_status.currentPhase) return;
if(_status.currentPhase.isIn()&&_status.currentPhase.hasSkill('wansha')&&_status.currentPhase!=player){
if(card.name=='tao'&&!player.isDying()) return false;
}
}
}
},
weimu:{
trigger:{global:'useCard1'},
audio:2,
forced:true,
firstDo:true,
filter:function(event,player,card){
if(get.color(event.card)!='black') return false;
return event.card.name=='nanman'&&player!=event.player||event.card.name=='wanjian'&&player!=event.player||event.card.name=='taoyuan'&&player.hpplayer.hp){
return 6-get.value(card);
}
return 3-get.value(card)
},
ai:{
fireAttack:true,
},
},
bazhen:{
audio:2,
audioname:['re_sp_zhugeliang','ol_sp_zhugeliang','ol_pangtong'],
group:'bazhen_bagua',
locked:true,
},
bazhen_bagua:{
audio:'bazhen',
audioname:['re_sp_zhugeliang','ol_sp_zhugeliang','ol_pangtong'],
equipSkill:true,
noHidden:true,
inherit:'bagua_skill',
filter:function(event,player){
if(!lib.skill.bagua_skill.filter(event,player)) return false;
if(!player.hasEmptySlot(2)) return false;
return true;
},
ai:{
respondShan:true,
effect:{
target:function(card,player,target){
if(player==target&&get.subtype(card)=='equip2'){
if(get.equipValue(card)<=7.5) return 0;
}
if(!target.hasEmptySlot(2)) return;
return lib.skill.bagua_skill.ai.effect.target.apply(this,arguments);
}
}
}
},
kanpo:{
mod:{
aiValue:function(player,card,num){
if(get.name(card)!='wuxie'&&get.color(card)!='black') return;
var cards=player.getCards('hs',function(card){
return get.name(card)=='wuxie'||get.color(card)=='black';
});
cards.sort(function(a,b){
return (get.name(b)=='wuxie'?1:2)-(get.name(a)=='wuxie'?1:2);
});
var geti=function(){
if(cards.contains(card)){
return cards.indexOf(card);
}
return cards.length;
};
if(get.name(card)=='wuxie') return Math.min(num,[6,4,3][Math.min(geti(),2)])*0.6;
return Math.max(num,[6,4,3][Math.min(geti(),2)]);
},
aiUseful:function(){
return lib.skill.kanpo.mod.aiValue.apply(this,arguments);
},
},
locked:false,
audio:2,
enable:'chooseToUse',
filterCard:function(card){
return get.color(card)=='black';
},
viewAsFilter:function(player){
return player.countCards('hs',{color:'black'})>0;
},
viewAs:{name:'wuxie'},
position:'hs',
prompt:'将一张黑色手牌当无懈可击使用',
check:function(card){
var tri=_status.event.getTrigger();
if(tri&&tri.card&&tri.card.name=='chiling') return -1;
return 8-get.value(card)
},
threaten:1.2
},
niepan:{
audio:2,
audioname:['re_pangtong'],
unique:true,
enable:'chooseToUse',
mark:true,
limited:true,
skillAnimation:true,
animationColor:'fire',
init:function(player){
player.storage.niepan=false;
},
filter:function(event,player){
if(player.storage.niepan) return false;
if(event.type=='dying'){
if(player!=event.dying) return false;
return true;
}
else if(event.parent.name=='phaseUse'){
return true;
}
return false;
},
content:function(){
'step 0'
player.awakenSkill('niepan');
player.storage.niepan=true;
player.discard(player.getCards('hej'));
'step 1'
player.link(false);
'step 2'
player.turnOver(false);
'step 3'
player.draw(3);
'step 4'
if(player.hp<3){
player.recover(3-player.hp);
}
},
ai:{
order:0.5,
skillTagFilter:function(player,tag,target){
if(player!=target||player.storage.niepan) return false;
},
save:true,
result:{
player:function(player){
if(player.hp<=0) return 10;
if(player.hp<=1&&player.countCards('he')<=1) return 10;
return 0;
}
},
threaten:function(player,target){
if(!target.storage.niepan) return 0.6;
}
},
intro:{
content:'limited'
}
},
oldniepan:{
audio:'niepan',
unique:true,
enable:'chooseToUse',
mark:true,
skillAnimation:true,
limited:true,
animationColor:'orange',
init:function(player){
player.storage.oldniepan=false;
},
filter:function(event,player){
if(player.storage.oldniepan) return false;
if(event.type=='dying'){
if(player!=event.dying) return false;
return true;
}
return false;
},
content:function(){
'step 0'
player.awakenSkill('oldniepan');
player.storage.oldniepan=true;
player.discard(player.getCards('hej'));
'step 1'
player.link(false);
'step 2'
player.turnOver(false);
'step 3'
player.draw(3);
'step 4'
if(player.hp<3){
player.recover(3-player.hp);
}
},
ai:{
order:1,
skillTagFilter:function(player,arg,target){
if(player!=target||player.storage.oldniepan) return false;
},
save:true,
result:{
player:function(player){
if(player.hp<=0) return 10;
if(player.hp<=2&&player.countCards('he')<=1) return 10;
return 0;
}
},
threaten:function(player,target){
if(!target.storage.oldniepan) return 0.6;
}
},
intro:{
content:'limited'
}
},
quhu:{
audio:2,
audioname:['re_xunyu','ol_xunyu'],
enable:'phaseUse',
usable:1,
filter:function(event,player){
if(player.countCards('h')==0) return false;
return game.hasPlayer(function(current){
return current.hp>player.hp&&player.canCompare(current);
});
},
filterTarget:function(card,player,target){
return target.hp>player.hp&&player.canCompare(target);
},
content:function(){
"step 0"
player.chooseToCompare(target);
"step 1"
if(result.bool){
if(game.hasPlayer(function(player){
return player!=target&&target.inRange(player);
})){
player.chooseTarget(function(card,player,target){
var source=_status.event.source;
return target!=source&&source.inRange(target);
},true).set('ai',function(target){
return get.damageEffect(target,_status.event.source,player);
}).set('source',target);
}
else{
event.finish();
}
}
else{
player.damage(target);
event.finish();
}
"step 2"
if(result.bool&&result.targets&&result.targets.length){
target.line(result.targets[0],'green');
result.targets[0].damage(target);
}
},
ai:{
order:0.5,
result:{
target:function(player,target){
var att=get.attitude(player,target);
var oc=(target.countCards('h')==1);
if(att>0&&oc) return 0;
var players=game.filterPlayer();
for(var i=0;i0){
return att>0?att/2:att-(oc?5:0);
}
}
}
return 0;
},
player:function(player,target){
if(target.hasSkillTag('jueqing',false,target)) return -10;
var mn=1;
var hs=player.getCards('h');
for(var i=0;i2){
max=Math.max(Math.min(5,players[i].hp)-players[i].countCards('h'),max);
}
}
switch(max){
case 0:return mn==13?0:-20;
case 1:return mn>=12?0:-15;
case 2:return 0;
case 3:return 1;
default:return max;
}
}
},
expose:0.2
}
},
jieming:{
audio:2,
trigger:{player:'damageEnd'},
direct:true,
content:function(){
"step 0"
event.count=trigger.num;
"step 1"
event.count--;
player.chooseTarget(get.prompt2('jieming'),function(card,player,target){
return true;//target.countCards('h')2){
return Math.max(0,Math.min(5,target.maxHp)-target.countCards('h'));
}
return att/3;
});
"step 2"
if(result.bool){
player.logSkill('jieming',result.targets);
for(var i=0;i1){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
var max=0;
var players=game.filterPlayer();
for(var i=0;i0){
max=Math.max(Math.min(5,players[i].hp)-players[i].countCards('h'),max);
}
}
switch(max){
case 0:return 2;
case 1:return 1.5;
case 2:return [1,2];
default:return [0,max];
}
}
if((card.name=='tao'||card.name=='caoyao')&&
target.hp>1&&target.countCards('h')<=target.hp) return [0,0];
}
},
}
},
qiangxix:{
inherit:'reqiangxi',
audioname:['boss_lvbu3'],
audio:'qiangxi',
usable:2,
filterTarget:function(card,player,target){
if(player==target) return false;
if(target.hasSkill('reqiangxi_off')) return false;
return true;
},
},
qiangxi:{
audio:2,
enable:'phaseUse',
usable:1,
audioname:['boss_lvbu3'],
filterCard:function(card){
return get.subtype(card)=='equip1';
},
selectCard:[0,1],
filterTarget:function(card,player,target){
if(player==target) return false;
return player.inRange(target);
},
content:function(){
"step 0"
if(cards.length==0){
player.loseHp();
}
"step 1"
target.damage('nocard');
},
check:function(card){
return 10-get.value(card);
},
position:'he',
ai:{
damage:true,
order:8,
result:{
player:function(player,target){
if(ui.selected.cards.length) return 0;
if(player.hp>=target.hp) return -0.9;
if(player.hp<=2) return -10;
return -2;
},
target:function(player,target){
if(!ui.selected.cards.length){
if(player.hp<2) return 0;
if(player.hp==2&&target.hp>=2) return 0;
if(target.hp>player.hp) return 0;
}
return get.damageEffect(target,player);
}
},
threaten:1.3,
},
},
xinqiangxi:{
audio:'qiangxi',
enable:'phaseUse',
filter:function(event,player){
if(player.hasSkill('xinqiangxi2')){
return !player.hasSkill('xinqiangxi3');
}
else if(player.hasSkill('xinqiangxi3')){
return !player.hasSkill('xinqiangxi2')&&player.countCards('he',{type:'equip'})>0;
}
else{
return true;
}
},
filterCard:function(card){
var player=_status.event.player;
if(player.hasSkill('xinqiangxi2')) return false;
return get.type(card)=='equip';
},
selectCard:function(){
var player=_status.event.player;
if(player.hasSkill('xinqiangxi2')) return -1;
if(player.hasSkill('xinqiangxi3')) return [1,1];
return [0,1];
},
filterTarget:function(card,player,target){
if(player==target) return false;
return player.inRange(target);
},
content:function(){
"step 0"
if(cards.length==0){
player.loseHp();
player.addTempSkill('xinqiangxi3');
}
else{
player.addTempSkill('xinqiangxi2');
}
"step 1"
target.damage('nocard');
},
check:function(card){
return 10-get.value(card);
},
position:'he',
ai:{
order:8.5,
result:{
target:function(player,target){
if(!ui.selected.cards.length){
if(player.hp<2) return 0;
if(target.hp>=player.hp) return 0;
}
return get.damageEffect(target,player);
}
}
},
threaten:1.5
},
xinqiangxi2:{},
xinqiangxi3:{},
tianyi:{
audio:2,
audioname:['re_taishici'],
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('tianyi2');
}
else{
player.addTempSkill('tianyi3');
}
},
ai:{
order:function(name,player){
var cards=player.getCards('h');
if(player.countCards('h','sha')==0){
return 1;
}
for(var i=0;i11&&get.value(cards[i])<7){
return 9;
}
}
return get.order({name:'sha'})-1;
},
result:{
player:function(player){
if(player.countCards('h','sha')>0) return 0.6;
var num=player.countCards('h');
if(num>player.hp) return 0;
if(num==1) return -2;
if(num==2) return -1;
return -0.7;
},
target:function(player,target){
var num=target.countCards('h');
if(num==1) return -1;
if(num==2) return -0.7;
return -0.5
},
},
threaten:1.3
}
},
tianyi2:{
mod:{
targetInRange:function(card,player,target,now){
if(card.name=='sha') return true;
},
selectTarget:function(card,player,range){
if(card.name=='sha'&&range[1]!=-1) range[1]++;
},
cardUsable:function(card,player,num){
if(card.name=='sha') return num+1;
}
},
charlotte:true,
},
tianyi3:{
mod:{
cardEnabled:function(card){if(card.name=='sha') return false}
},
charlotte:true,
},
shuangxiong:{
audio:2,
audioname:['re_yanwen'],
group:'shuangxiong1',
},
shuangxiong1:{
audio:true,
audioname:['re_yanwen'],
trigger:{player:'phaseDrawBegin1'},
check:function(event,player){
if(player.countCards('h')>player.hp) return true;
if(player.countCards('h')>3) return true;
return false;
},
filter:function(event,player){
return !event.numFixed;
},
preHidden:true,
prompt2:()=>'进行一次判定,本回合可以将一张与此牌颜色不同的手牌当作【决斗】使用',
content:function(){
player.judge().set('callback',lib.skill.shuangxiong1.callback);
trigger.changeToZero();
},
callback:function(){
player.gain(card,'gain2');
player.addTempSkill('shuangxiong2');
player.markAuto('shuangxiong2',[event.judgeResult.color]);
},
},
shuangxiong2:{
charlotte:true,
onremove:true,
audio:true,
audioname:['re_yanwen'],
enable:'chooseToUse',
viewAs:{name:'juedou'},
position:'hs',
viewAsFilter:function(player){
return player.hasCard(card=>lib.skill.shuangxiong2.filterCard(card,player),'hs');
},
filterCard:function(card,player){
var color=get.color(card),colors=player.getStorage('shuangxiong2');
for(var i of colors){
if(color!=i) return true;
}
return false;
},
prompt:function(){
var colors=_status.event.player.getStorage('shuangxiong2');
var str='将一张颜色';
for(var i=0;i0) str+='或';
str+='不为';
str+=get.translation(colors[i]);
}
str+='的牌当做【决斗】使用';
return str;
},
check:function(card){
var player=_status.event.player;
var raw=player.getUseValue(card,null,true);
var eff=player.getUseValue(get.autoViewAs({name:'juedou'},[card]));
return eff-raw;
},
ai:{order:7},
},
luanji:{
audio:2,
enable:'phaseUse',
position:'hs',
viewAs:{name:'wanjian'},
filterCard:function(card,player){
if(ui.selected.cards.length){
return get.suit(card)==get.suit(ui.selected.cards[0]);
}
var cards=player.getCards('hs');
for(var i=0;i=7){
if(num<2) return 0;
}
else if(targets.length>=5){
if(num<1.5) return 0;
}
}
return 6-get.value(card);
},
ai:{
basic:{
order:8.5
}
}
},
xueyi:{
trigger:{player:'phaseDiscardBefore'},
audio:2,
audioname:['re_yuanshao'],
forced:true,
firstDo:true,
filter:function(event,player){
return player.hasZhuSkill('xueyi')&&game.hasPlayer(function(current){
return current!=player&¤t.group=='qun';
})&&player.countCards('h')>player.hp;
},
content:function(){},
mod:{
maxHandcard:function(player,num){
if(player.hasZhuSkill('xueyi')){
return num+game.countPlayer(function(current){
if(player!=current&¤t.group=='qun') return 2;
});
}
return num;
}
},
zhuSkill:true,
},
mengjin:{
shaRelated:true,
audio:2,
trigger:{player:'shaMiss'},
//priority:-1,
filter:function(event){
return event.target.countCards('he')>0;
},
check:function(event,player){
return get.attitude(player,event.target)<0;
},
logTarget:'target',
content:function(){
player.discardPlayerCard('he',trigger.target,true);
}
},
jiewei:{
trigger:{player:'turnOverEnd'},
//direct:true,
frequent:true,
audio:'xinjiewei',
content:function(){
'step 0'
player.draw();
player.chooseToUse(function(card){
if(!lib.filter.cardEnabled(card,_status.event.player,_status.event)){
return false;
}
var type=get.type(card,'trick');
return type=='trick'||type=='equip';
},'是否使用一张锦囊牌或装备牌?');
'step 1'
if(result.bool){
var type=get.type(result.card||result.cards[0]);
if(game.hasPlayer(function(current){
if(type=='equip'){
return current.countCards('e');
}
else{
return current.countCards('j');
}
})){
var next=player.chooseTarget('是否弃置场上的一张'+get.translation(type)+'牌?',function(card,player,target){
if(_status.event.type=='equip'){
return target.countCards('e')>0;
}
else{
return target.countCards('j')>0;
}
});
next.set('ai',function(target){
if(type=='equip'){
return -get.attitude(player,target);
}
else{
return get.attitude(player,target);
}
});
next.set('type',type);
event.type=type;
}
else{
event.finish();
}
}
else{
event.finish();
}
'step 2'
if(event.type&&result.bool&&result.targets&&result.targets.length){
player.line(result.targets,'green');
if(event.type=='equip'){
player.discardPlayerCard(result.targets[0],'e',true);
}
else{
player.discardPlayerCard(result.targets[0],'j',true);
}
}
}
},
releiji:{
audio:2,
audioname:['boss_qinglong'],
trigger:{player:['useCard','respond']},
filter:function(event,player){
return event.card.name=='shan';
},
direct:true,
content:function(){
"step 0";
player.chooseTarget(get.prompt2('releiji'),function(card,player,target){
return target!=player;
}).ai=function(target){
if(target.hasSkill('hongyan')) return 0;
return get.damageEffect(target,_status.event.player,_status.event.player,'thunder');
};
"step 1"
if(result.bool){
player.logSkill('releiji',result.targets,'thunder');
event.target=result.targets[0];
event.target.judge(function(card){
var suit=get.suit(card);
if(suit=='spade') return -4;
if(suit=='club') return -2;
return 0;
}).judge2=function(result){
return result.bool==false?true:false;
};
}
else{
event.finish();
}
"step 2"
if(result.suit=='club'){
event.target.damage('thunder');
player.recover();
}
else if(result.suit=='spade'){
event.target.damage(2,'thunder');
}
},
ai:{
useShan:true,
effect:{
target:function(card,player,target,current){
if(get.tag(card,'respondShan')&&!player.hasSkillTag('directHit_ai',true,{
target: target,
card: card
},true)){
let club=0,spade=0;
if(game.hasPlayer(function(current){
return get.attitude(target,current)<0&&get.damageEffect(current,target,target,'thunder')>0;
})){
club=2;
spade=4;
}
if(!target.isHealthy()) club+=2;
if(!club&&!spade) return 1;
if(!target.mayHaveShan(player)) return 1-0.1*Math.min(5,target.countCards('hs'));
if(!target.hasSkillTag('rejudge')) return [1,(club+spade)/4];
let pos=player.hasSkillTag('viewHandcard',null,target,true)?'hes':'e',better=club>spade?'club':'spade',max=0;
target.hasCard(function(cardx){
if(get.suit(cardx)===better){
max=2;
return true;
}
if(spade&&get.color(cardx)==='black') max=1;
},pos);
if(max===2) return [1,Math.max(club,spade)];
if(max===1) return [1,Math.min(club,spade)];
if(pos==='e') return [1,Math.min(Math.max(1,target.countCards('hs'))*(club+spade)/4,Math.max(club,spade))];
return [1,(club+spade)/4];
}
}
}
}
},
shensu:{
audio:'shensu1',
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
group:['shensu1','shensu2'],
preHidden:['shensu1','shensu2'],
},
xinshensu:{
audio:'shensu1',
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
audioname2:{
dc_xiahouba:'shensu1_xiahouba',
},
group:['shensu1','shensu2','shensu4']
},
shensu1_xiahouba:{audio:2},
shensu1:{
audio:2,
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
audioname2:{
dc_xiahouba:'shensu1_xiahouba',
},
trigger:{player:'phaseJudgeBefore'},
direct:true,
content:function(){
"step 0"
var check= player.countCards('h')>2;
player.chooseTarget(get.prompt("shensu"),"跳过判定阶段和摸牌阶段,视为对一名其他角色使用一张【杀】",function(card,player,target){
if(player==target) return false;
return player.canUse({name:'sha'},target,false);
}).set('check',check).set('ai',function(target){
if(!_status.event.check) return 0;
return get.effect(target,{name:'sha'},_status.event.player);
}).setHiddenSkill('shensu1');
"step 1"
if(result.bool){
player.logSkill('shensu1',result.targets);
player.useCard({name:'sha',isCard:true},result.targets[0],false);
trigger.cancel();
player.skip('phaseDraw');
}
}
},
shensu2:{
audio:'shensu1',
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
audioname2:{
dc_xiahouba:'shensu1_xiahouba',
},
trigger:{player:'phaseUseBefore'},
direct:true,
filter:function(event,player){
return player.countCards('he',function(card){
if(_status.connectMode) return true;
return get.type(card)=='equip';
})>0;
},
content:function(){
"step 0"
var check=player.needsToDiscard();
player.chooseCardTarget({
prompt:get.prompt('shensu'),
prompt2:"弃置一张装备牌并跳过出牌阶段,视为对一名其他角色使用一张【杀】",
filterCard:function(card,player){
return get.type(card)=='equip'&&lib.filter.cardDiscardable(card,player)
},
position:'he',
filterTarget:function(card,player,target){
if(player==target) return false;
return player.canUse({name:'sha'},target,false);
},
ai1:function(card){
if(_status.event.check) return 0;
return 6-get.value(card);
},
ai2:function(target){
if(_status.event.check) return 0;
return get.effect(target,{name:'sha'},_status.event.player);
},
check:check
}).setHiddenSkill('shensu2');
"step 1"
if(result.bool){
player.logSkill('shensu2',result.targets);
player.discard(result.cards[0]);
player.useCard({name:'sha',isCard:true},result.targets[0],false);
trigger.cancel();
}
}
},
shensu4:{
audio:'shensu1',
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
audioname2:{
dc_xiahouba:'shensu1_xiahouba',
},
trigger:{player:'phaseDiscardBefore'},
direct:true,
content:function(){
"step 0"
var check=player.needsToDiscard()||player.isTurnedOver()||(player.hasSkill('shebian')&&player.canMoveCard(true,true));
player.chooseTarget(get.prompt('shensu'),"跳过弃牌阶段并将武将牌翻面,视为对一名其他角色使用一张【杀】",function(card,player,target){
if(player==target) return false;
return player.canUse({name:'sha'},target,false);
}).set('check',check).set('ai',function(target){
if(!_status.event.check) return 0;
return get.effect(target,{name:'sha'},_status.event.player,_status.event.player);
});
"step 1"
if(result.bool){
player.logSkill('shensu4',result.targets);
player.turnOver();
player.useCard({name:'sha',isCard:true},result.targets[0],false);
trigger.cancel();
}
}
},
jushou:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
check:function(event,player){
return event.player.hp+player.countCards('h')<4;
},
content:function(){
player.draw(3);
player.turnOver();
},
ai:{
effect:{
target:function(card,player,target){
if(card.name=='guiyoujie') return [0,1];
}
}
},
},
moon_jushou:{
audio:'xinjushou',
trigger:{player:'phaseJieshuBegin'},
check:function(event,player){
return event.player.hp+player.countCards('h')<4;
},
content:function(){
player.draw();
player.turnOver();
},
ai:{
effect:{
target:function(card,player,target){
if(card.name=='guiyoujie') return [0,1];
}
}
},
},
liegong:{
shaRelated:true,
audio:2,
audioname:['re_huangzhong'],
trigger:{player:'useCardToPlayered'},
check:function(event,player){
return get.attitude(player,event.target)<=0;
},
logTarget:'target',
filter:function(event,player){
if(event.card.name!='sha') return false;
var length=event.target.countCards('h');
return (length>=player.hp||length<=player.getAttackRange());
},
preHidden:true,
content:function(){
trigger.getParent().directHit.push(trigger.target);
},
locked:false,
mod:{
attackRange:function(player,distance){
if(get.zhu(player,'shouyue')) return distance+1;
}
},
ai:{
directHit_ai:true,
skillTagFilter:function(player,tag,arg){
if(get.attitude(player,arg.target)>0||arg.card.name!='sha') return false;
var length=arg.target.countCards('h');
return (length>=player.hp||length<=player.getAttackRange());
},
},
},
kuanggu:{
audio:2,
audioname:['re_weiyan','ol_weiyan'],
trigger:{source:'damageSource'},
forced:true,
filter:function(event,player){
return event.kuangguCheck&&player.isDamaged();
},
content:function(){
player.recover(trigger.num);
},
group:'kuanggu_check',
subSkill:{
check:{
charlotte:true,
trigger:{source:'damage'},
filter:function(event,player){
return get.distance(player,event.player)<=1;
},
firstDo:true,
silent:true,
content:function(){
trigger.kuangguCheck=true;
},
},
},
},
tianxiang:{
audio:2,
audioname:['daxiaoqiao','re_xiaoqiao','ol_xiaoqiao'],
trigger:{player:'damageBegin3'},
direct:true,
filter:function(event,player){
return player.countCards('h',{suit:'heart'})>0&&event.num>0;
},
content:function(){
"step 0"
player.chooseCardTarget({
filterCard:function(card,player){
return get.suit(card)=='heart'&&lib.filter.cardDiscardable(card,player);
},
filterTarget:function(card,player,target){
return player!=target;
},
ai1:function(card){
return 10-get.value(card);
},
ai2:function(target){
var att=get.attitude(_status.event.player,target);
var trigger=_status.event.getTrigger();
var da=0;
if(_status.event.player.hp==1){
da=10;
}
if(trigger.num>1){
if(target.maxHp>5&&target.hp>1) return -att/10+da;
return -att+da;
}
var eff=get.damageEffect(target,trigger.source,target,trigger.nature);
if(att==0) return 0.1+da;
if(eff>=0&&trigger.num==1){
return att+da;
}
if(target.hp==target.maxHp) return -att+da;
if(target.hp==1){
if(target.maxHp<=4&&!target.hasSkillTag('maixie')){
if(target.maxHp<=3){
return -att+da;
}
return -att/2+da;
}
return da;
}
if(target.hp==target.maxHp-1){
if(target.hp>2||target.hasSkillTag('maixie')) return att/5+da;
if(att>0) return 0.02+da;
return 0.05+da;
}
return att/2+da;
},
prompt:get.prompt2('tianxiang')
});
"step 1"
if(result.bool){
player.logSkill(event.name,result.targets);
trigger.player=result.targets[0];
trigger.player.addSkill('tianxiang2');
player.discard(result.cards[0]);
}
},
ai:{
maixie_defend:true,
effect:{
target:function(card,player,target){
if(player.hasSkillTag('jueqing',false,target)) return;
if(get.tag(card,'damage')&&target.countCards('h')>1) return 0.7;
}
},
threaten:function(player,target){
if(target.countCards('h')==0) return 2;
}
}
},
tianxiang2:{
trigger:{player:['damageAfter','damageCancelled','damageZero']},
forced:true,
popup:false,
audio:false,
vanish:true,
charlotte:true,
content:function(){
if(player.getDamagedHp()) player.draw(player.getDamagedHp());
player.removeSkill('tianxiang2');
player.popup('tianxiang');
}
},
retianxiang:{
audio:'tianxiang',
audioname:['daxiaoqiao','re_xiaoqiao','ol_xiaoqiao'],
trigger:{player:'damageBegin4'},
direct:true,
preHidden:true,
filter:function(event,player){
return player.countCards('h',function(card){
return _status.connectMode||get.suit(card,player)=='heart';
})>0&&event.num>0;
},
content:function(){
"step 0"
player.chooseCardTarget({
filterCard:function(card,player){
return get.suit(card)=='heart'&&lib.filter.cardDiscardable(card,player);
},
filterTarget:function(card,player,target){
return player!=target;
},
ai1:function(card){
return 10-get.value(card);
},
ai2:function(target){
var att=get.attitude(_status.event.player,target);
var trigger=_status.event.getTrigger();
var da=0;
if(_status.event.player.hp==1){
da=10;
}
var eff=get.damageEffect(target,trigger.source,target);
if(att==0) return 0.1+da;
if(eff>=0&&att>0){
return att+da;
}
if(att>0&&target.hp>1){
if(target.maxHp-target.hp>=3) return att*1.1+da;
if(target.maxHp-target.hp>=2) return att*0.9+da;
}
return -att+da;
},
prompt:get.prompt('retianxiang'),
prompt2:lib.translate.retianxiang_info
}).setHiddenSkill(event.name);
"step 1"
if(result.bool){
player.discard(result.cards);
var target=result.targets[0];
player.chooseControlList(true,function(event,player){
var target=_status.event.target;
var att=get.attitude(player,target);
if(target.hasSkillTag('maihp')) att=-att;
if(att>0){
return 0;
}
else{
return 1;
}
},
['令'+get.translation(target)+'受到伤害来源对其造成的1点伤害,然后摸X张牌(X为其已损失体力值且至多为5)',
'令'+get.translation(target)+'失去1点体力,然后获得'+get.translation(result.cards)]).set('target',target);
player.logSkill(event.name,target);
trigger.cancel();
event.target=target;
event.card=result.cards[0];
}
else{
event.finish();
}
"step 2"
if(typeof result.index=='number'){
event.index=result.index;
if(result.index){
event.related=event.target.loseHp();
}
else{
event.related=event.target.damage(trigger.source||'nosource','nocard');
}
}
else event.finish();
"step 3"
//if(event.related.cancelled||target.isDead()) return;
if(event.index&&card.isInPile()) target.gain(card,'gain2');
else if(target.getDamagedHp()) target.draw(Math.min(5,target.getDamagedHp()));
},
ai:{
maixie_defend:true,
effect:{
target:function(card,player,target){
if(player.hasSkillTag('jueqing',false,target)) return;
if(get.tag(card,'damage')&&target.countCards('he')>1) return 0.7;
}
},
}
},
retianxiang3:{
trigger:{player:'loseHpAfter'},
forced:true,
popup:false,
filter:function(event){
return event.type=='retianxiang';
},
vanish:true,
content:function(){
'step 0'
player.gain(player.storage.retianxiang3,'gain2');
'step 1'
player.removeSkill('retianxiang3');
},
onremove:function(player){
var card=player.storage.retianxiang3;
if(get.position(card)=='s'){
game.cardsDiscard(card);
}
delete player.storage.retianxiang3;
}
},
retianxiang2:{
trigger:{player:'damageAfter'},
forced:true,
popup:false,
filter:function(event){
return event.type=='retianxiang';
},
vanish:true,
content:function(){
if(player.isDamaged()){
player.draw(player.getDamagedHp());
}
player.removeSkill('retianxiang2');
},
},
xintianxiang:{
audio:'tianxiang',
trigger:{player:'damageBefore'},
direct:true,
filter:function(event,player){
return player.countCards('he',{suit:'heart'})>0&&event.num>0&&!player.hasSkill('xintianxiang3');
},
content:function(){
"step 0"
player.chooseCardTarget({
filterCard:function(card,player){
return get.suit(card)=='heart'&&lib.filter.cardDiscardable(card,player);
},
filterTarget:function(card,player,target){
return player!=target;
},
position:'he',
ai1:function(card){
return 10-get.value(card);
},
ai2:function(target){
var att=get.attitude(_status.event.player,target);
var trigger=_status.event.getTrigger();
var da=0;
if(_status.event.player.hp==1){
da=10;
}
if(trigger.num>1){
if(target.maxHp>5&&target.hp>1) return -att/10+da;
return -att+da;
}
var eff=get.damageEffect(target,trigger.source,target,trigger.nature);
if(att==0) return 0.1+da;
if(eff>=0&&trigger.num==1){
return att+da;
}
if(target.hp==target.maxHp) return -att+da;
if(target.hp==1){
if(target.maxHp<=4&&!target.hasSkillTag('maixie')){
if(target.maxHp<=3){
return -att+da;
}
return -att/2+da;
}
return da;
}
if(target.hp==target.maxHp-1){
if(target.hp>2||target.hasSkillTag('maixie')) return att/5+da;
if(att>0) return 0.02+da;
return 0.05+da;
}
return att/2+da;
},
prompt:get.prompt2('xintianxiang')
});
"step 1"
if(result.bool){
player.logSkill(event.name,result.targets);
trigger.player=result.targets[0];
trigger.player.addSkill('xintianxiang2');
trigger.player.storage.xintianxiang=player;
player.discard(result.cards[0]);
}
else{
event.finish();
}
},
ai:{
maixie_defend:true,
effect:{
target:function(card,player,target){
if(player.hasSkillTag('jueqing',false,target)) return;
if(get.tag(card,'damage')&&target.countCards('he')>1) return 0.7;
}
},
}
},
xintianxiang2:{
trigger:{player:['damageAfter','damageCancelled','damageZero']},
forced:true,
popup:false,
audio:false,
vanish:true,
content:function(){
'step 0'
var source=player.storage.xintianxiang;
if(source.isDead()){
event.finish();
return;
}
var num=player.maxHp-player.hp||0;
var str1='令'+get.translation(player)+'摸'+get.cnNumber(num)+'张牌';
var str2='令'+get.translation(player)+'防止造成和受到的所有伤害且天香失效直到你下一回合开始';
var att=get.attitude(source,player);
var choice='选项一';
if(att<0){
if(num>=2){
choice='选项二';
}
}
else if(att>0){
if(num<2&&!player.hasSkillTag('maixie')){
choice='选项二';
}
}
source.chooseControl(function(){
return _status.event.choice;
}).set('choiceList',[str1,str2]).set('choice',choice);
'step 1'
if(result.control=='选项一'){
if(player.isDamaged()){
player.draw(player.maxHp-player.hp);
}
}
else{
player.storage.xintianxiang.addSkill('xintianxiang3');
player.storage.xintianxiang.storage.xintianxiang3=player;
player.addSkill('xintianxiang4');
}
player.removeSkill('xintianxiang2');
delete player.storage.xintianxiang;
}
},
xintianxiang3:{
trigger:{player:['phaseZhunbeiBegin','dieBegin']},
silent:true,
content:function(){
if(player.storage.xintianxiang3){
player.storage.xintianxiang3.removeSkill('xintianxiang4');
delete player.storage.xintianxiang3;
}
player.removeSkill('xintianxiang3');
}
},
xintianxiang4:{
trigger:{source:'damageBefore',player:'damageBefore'},
forced:true,
mark:true,
intro:{
content:'防止造成和受到的一切伤害'
},
priority:15,
content:function(){
trigger.cancel();
},
ai:{
nofire:true,
nothunder:true,
nodamage:true,
notrick:true,
notricksource:true,
effect:{
target:function(card,player,target,current){
if(get.tag(card,'damage')){
return 'zeroplayertarget';
}
},
player:function(card,player,target,current){
if(get.tag(card,'damage')){
return 'zeroplayertarget';
}
}
}
}
},
hongyan:{
mod:{
suit:function(card,suit){
if(suit=='spade') return 'heart';
}
}
},
xinhongyan:{
audio:2,
audioname:['sb_xiaoqiao'],
mod:{
suit:function(card,suit){
if(suit=='spade') return 'heart';
}
},
trigger:{global:'judge'},
direct:true,
filter:function(event,player){
if(event.fixedResult&&event.fixedResult.suit) return event.fixedResult.suit=='heart';
return get.suit(event.player.judging[0],event.player)=='heart';
},
content:function(){
"step 0"
var str='红颜:'+get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+
get.translation(trigger.player.judging[0])+',请将其改为一种花色';
player.chooseControl('spade','heart','diamond','club').set('prompt',str).set('ai',function(){
var judging=_status.event.judging;
var trigger=_status.event.getTrigger();
var res1=trigger.judge(judging);
var list=lib.suit.slice(0);
var attitude=get.attitude(player,trigger.player);
if(attitude==0) return 0;
var getj=function(suit){
return trigger.judge({
name:get.name(judging),
nature:get.nature(judging),
suit:suit,
number:get.number(judging),
})
};
list.sort(function(a,b){
return (getj(b)-getj(a))*get.sgn(attitude);
});
return list[0];
}).set('judging',trigger.player.judging[0]);
"step 1"
if(result.control!='cancel2'){
player.addExpose(0.25);
player.popup(result.control);
game.log(player,'将判定结果改为了','#y'+get.translation(result.control+2));
if(!trigger.fixedResult) trigger.fixedResult={};
trigger.fixedResult.suit=result.control;
trigger.fixedResult.color=get.color({suit:result.control});
}
},
ai:{
rejudge:true,
tag:{
rejudge:0.4,
},
expose:0.5,
},
},
gzbuqu:{
audio:2,
trigger:{player:'changeHp'},
filter:function(event,player){
return player.hp<=0&&event.num<0;
},
marktext:'创',
intro:{
markcount:'expansion',
content:'expansion',
},
group:'gzbuqu_recover',
frequent:true,
ondisable:true,
onremove:function(player,skill){
var cards=player.getExpansions(skill);
if(cards.length){
//delete player.nodying;
player.loseToDiscardpile(cards);
if(player.hp<=0) player.dying({});
}
},
process:function(player){
//delete player.nodying;
var nums=[];
var cards=player.getExpansions('gzbuqu');
for(var i=0;i0&&event.num>0;
},
forced:true,
popup:false,
content:function(){
'step 0'
event.count=trigger.num;
'step 1'
event.count--;
if((player.hp+player.getExpansions('gzbuqu').length)>1){
player.chooseCardButton('不屈:移去一张“创”',true,player.getExpansions('gzbuqu')).set('ai',function(button){
var buttons=get.selectableButtons();
for(var i=0;i0;
});
}
return false;
},
content:function(){
'step 0'
var targets=[];
if(trigger.name=='gain'){
var cards=trigger.getg(trigger.player);
targets.addArray(game.filterPlayer(function(current){
if(current==trigger.player) return false;
var hs=trigger.getl(current).hs;
for(var i of hs){
if(cards.contains(i)) return true;
}
return false;
}));
}
else if(trigger.name=='loseAsync'&&trigger.type=='discard'){
targets.addArray(game.filterPlayer(function(current){
return current!=trigger.discarder&&trigger.getl(current).hs.length>0;
}));
}
else targets.push(trigger.player);
event.targets=targets.sortBySeat();
if(!event.targets.length) event.finish();
'step 1'
var target=targets.shift();
event.target=target;
if(target.isIn()) player.chooseBool(get.prompt('fenji',target),'失去1点体力,令该角色摸两张牌').set('ai',function(){
var evt=_status.event.getParent();
return get.attitude(evt.player,evt.target)>4;
});
else{
if(targets.length>0) event.goto(1);
else event.finish();
}
'step 2'
if(result.bool){
player.logSkill('fenji',target);
player.loseHp();
}
else{
if(targets.length>0) event.goto(1);
else event.finish();
}
'step 3'
target.draw(2);
if(targets.length>0) event.goto(1);
},
},
new_fenji:{
audio:"fenji",
trigger:{
global:"phaseJieshuBegin",
},
filter:function(event,player){
if(event.player.countCards('h')==0&&event.player.isIn()) return true;
return false;
},
preHidden:true,
check:function(event,player){
return get.attitude(player,event.player)>2;
},
content:function(){
player.line(trigger.player,'green');
trigger.player.draw(2);
player.loseHp();
},
},
leiji:{
audio:2,
trigger:{player:['useCard','respond']},
filter:function(event,player){
return event.card.name=='shan';
},
direct:true,
preHidden:true,
content:function(){
"step 0";
player.chooseTarget(get.prompt2('leiji')).setHiddenSkill(event.name).ai=function(target){
if(target.hasSkill('hongyan')) return 0;
return get.damageEffect(target,_status.event.player,_status.event.player,'thunder');
};
"step 1"
if(result.bool){
player.logSkill('leiji',result.targets,'thunder');
event.target=result.targets[0];
event.target.judge(function(card){
if(get.suit(card)=='spade') return -4;
return 0;
}).judge2=function(result){
return result.bool==false?true:false;
};
}
else{
event.finish();
}
"step 2"
if(result.bool==false){
event.target.damage(2,'thunder');
}
},
ai:{
mingzhi:false,
useShan:true,
effect:{
target:function(card,player,target,current){
if(get.tag(card,'respondShan')&&!player.hasSkillTag('directHit_ai',true,{
target: target,
card: card
},true)&&game.hasPlayer(function(current){
return get.attitude(target,current)<0&&get.damageEffect(current,target,target,'thunder')>0;
})){
if(!target.mayHaveShan(player)) return 1-0.1*Math.min(5,target.countCards('hs'));
if(!target.hasSkillTag('rejudge')) return [1,1];
let pos=player.hasSkillTag('viewHandcard',null,target,true)?'hes':'e';
if(target.hasCard(function(cardx){
return get.suit(cardx)==='spade';
},pos)) return [1,4];
if(pos==='e') return [1,Math.min(4,1+0.75*Math.max(1,target.countCards('hs')))];
return [1,1];
}
}
}
}
},
guidao:{
audio:2,
audioname:['sp_zhangjiao'],
trigger:{global:'judge'},
filter:function(event,player){
return player.countCards('hes',{color:'black'})>0;
},
direct:true,
content:function(){
"step 0"
player.chooseCard(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+
get.translation(trigger.player.judging[0])+','+get.prompt('guidao'),'hes',function(card){
if(get.color(card)!='black') return false;
var player=_status.event.player;
var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player);
if(mod2!='unchanged') return mod2;
var mod=game.checkMod(card,player,'unchanged','cardRespondable',player);
if(mod!='unchanged') return mod;
return true;
}).set('ai',function(card){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
var judging=_status.event.judging;
var result=trigger.judge(card)-trigger.judge(judging);
var attitude=get.attitude(player,trigger.player);
if(attitude==0||result==0) return 0;
if(attitude>0){
return result;
}
else{
return -result;
}
}).set('judging',trigger.player.judging[0]);
"step 1"
if(result.bool){
player.respond(result.cards,'highlight','guidao','noOrdering');
}
else{
event.finish();
}
"step 2"
if(result.bool){
player.$gain2(trigger.player.judging[0]);
player.gain(trigger.player.judging[0]);
trigger.player.judging[0]=result.cards[0];
trigger.orderingCards.addArray(result.cards);
game.log(trigger.player,'的判定牌改为',result.cards[0]);
}
"step 3"
game.delay(2);
},
ai:{
rejudge:true,
tag:{
rejudge:1
}
}
},
guhuo:{
enable:'phaseUse',
usable:1,
audio:2,
filter:function(event,player){
return player.countCards('hs')>0
},
chooseButton:{
dialog:function(){
var list=['sha','tao','jiu','taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman'];
for(var i=0;i=3&&player.hp>=3) return 0;
for(var i=0;i1) str+='中的一人';
return str;
},
filter:function(event,player){
if(player.group!='qun') return false;
if(player.countCards('h','shan')+player.countCards('h','shandian')==0) return 0;
return game.hasPlayer(function(target){
return target!=player&&target.hasZhuSkill('huangtian',player)&&!target.hasSkill('huangtian3');
});
},
filterCard:function(card){
return (card.name=='shan'||card.name=='shandian')
},
log:false,
visible:true,
filterTarget:function(card,player,target){
return target!=player&&target.hasZhuSkill('huangtian',player)&&!target.hasSkill('huangtian3');
},
//usable:1,
//forceaudio:true,
content:function(){
player.give(cards,target);
target.addTempSkill('huangtian3','phaseUseEnd');
},
ai:{
expose:0.3,
order:10,
result:{
target:5
}
}
},
huangtian3:{},
xinfu_guhuo:{
audio:'guhuo_guess',
derivation:['chanyuan'],
enable:['chooseToUse','chooseToRespond'],
hiddenCard:function(player,name){
return (lib.inpile.contains(name)&&player.countCards('hs')>0&&!player.hasSkill('guhuo_phase'));
},
filter:function(event,player){
if(player.hasSkill('guhuo_phase')) return false;
if(!player.countCards('hs')) return false;
for(var i of lib.inpile){
var type=get.type(i);
if((type=='basic'||type=='trick')&&event.filterCard({name:i},player,event)) return true;
if(i=='sha'){
for(var j of lib.inpile_nature){
if(event.filterCard({name:i,nature:j},player,event)) return true;
}
}
}
return false;
},
chooseButton:{
dialog:function(event,player){
var list=[];
for(var i of lib.inpile){
if(event.type!='phase') if(!event.filterCard({name:i},player,event)) continue;
var type=get.type(i);
if(type=='basic'||type=='trick') list.push([type,'',i]);
if(i=='sha'){
if(event.type!='phase') if(!event.filterCard({name:i,nature:j},player,event)) continue;
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
}
}
return ui.create.dialog('蛊惑',[list,'vcard']);
},
filter:function(button,player){
var evt=_status.event.getParent();
return evt.filterCard({name:button.link[2],nature:button.link[3]},player,evt);
},
check:function(button){
var player=_status.event.player;
var enemyNum=game.countPlayer(function(current){
return current!=player&&!current.hasSkill('chanyuan')&&(get.realAttitude||get.attitude)(current,player)<0;
});
var card={name:button.link[2],nature:button.link[3]};
var val=_status.event.getParent().type=='phase'?player.getUseValue(card):1;
if(val<=0) return 0;
if(enemyNum){
if(!player.hasCard(function(cardx){
if(card.name==cardx.name){
if(card.name!='sha') return true;
return get.is.sameNature(card,cardx);
}
return false;
},'hs')){
if(get.value(card,player,'raw')<6) return Math.sqrt(val)*(0.25+Math.random()/1.5);
if(enemyNum<=2) return Math.sqrt(val)/1.5;
return 0;
}
return 3*val;
}
return val;
},
backup:function(links,player){
return {
filterCard:function(card,player,target){
var result=true;
var suit=card.suit,number=card.number;
card.suit='none';card.number=null;
var mod=game.checkMod(card,player,'unchanged','cardEnabled2',player);
if(mod!='unchanged') result=mod;
card.suit=suit;card.number=number;
return result;
},
selectCard:1,
position:'hs',
ignoreMod:true,
aiUse:Math.random(),
viewAs:{
name:links[0][2],
nature:links[0][3],
suit:'none',
number:null
},
ai1:function(card){
var player=_status.event.player;
var enemyNum=game.countPlayer(function(current){
return current!=player&&!current.hasSkill('chanyuan')&&(get.realAttitude||get.attitude)(current,player)<0;
});
var cardx=lib.skill.xinfu_guhuo_backup.viewAs;
if(enemyNum){
if(card.name==cardx.name&&(card.name!='sha'||get.is.sameNature(card,cardx))) return 2+Math.random()*3;
else if(lib.skill.xinfu_guhuo_backup.aiUse<0.5&&!player.isDying()) return 0;
}
return 6-get.value(card);
},
precontent:function(){
player.logSkill('xinfu_guhuo');
player.addTempSkill('guhuo_guess');
var card=event.result.cards[0];
event.result.card.suit=get.suit(card);
event.result.card.number=get.number(card);
},
}
},
prompt:function(links,player){
return '将一张手牌当做'+get.translation(links[0][2])+(_status.event.name=='chooseToRespond'?'打出':'使用');
},
},
ai:{
save:true,
respondSha:true,
respondShan:true,
fireAttack:true,
skillTagFilter:function(player){
if(!player.countCards('hs')||player.hasSkill('guhuo_phase')) return false;
},
threaten:1.2,
order:8.1,
result:{player:1},
},
},
guhuo_guess:{
audio:2,
trigger:{
player:['useCardBefore','respondBefore'],
},
forced:true,
silent:true,
popup:false,
firstDo:true,
charlotte:true,
filter:function(event,player){
return event.skill&&(event.skill.indexOf('guhuo_')==0||event.skill.indexOf('xinfu_guhuo_')==0);
},
content:function(){
'step 0'
player.addTempSkill('guhuo_phase');
event.fake=false;
event.betrayer=null;
var card=trigger.cards[0];
if(card.name!=trigger.card.name||(card.name=='sha'&&!get.is.sameNature(trigger.card,card))) event.fake=true;
player.popup(trigger.card.name,'metal');
player.lose(card,ui.ordering).relatedEvent=trigger;
// player.line(trigger.targets,trigger.card.nature);
trigger.throw=false;
trigger.skill='xinfu_guhuo_backup';
game.log(player,'声明',trigger.targets&&trigger.targets.length?'对':'',trigger.targets||'',trigger.name=='useCard'?'使用':'打出',trigger.card);
event.prompt=get.translation(player)+'声明'+(trigger.targets&&trigger.targets.length?'对'+get.translation(trigger.targets):'')+
(trigger.name=='useCard'?'使用':'打出')+(get.translation(trigger.card.nature)||'')+get.translation(trigger.card.name)+',是否质疑?';
event.targets=game.filterPlayer(function(current){
return current!=player&&!current.hasSkill('chanyuan');
}).sortBySeat(_status.currentPhase);
game.broadcastAll(function(card,player){
_status.guhuoNode=card.copy('thrown');
if(lib.config.cardback_style!='default'){
_status.guhuoNode.style.transitionProperty='none';
ui.refresh(_status.guhuoNode);
_status.guhuoNode.classList.add('infohidden');
ui.refresh(_status.guhuoNode);
_status.guhuoNode.style.transitionProperty='';
}
else{
_status.guhuoNode.classList.add('infohidden');
}
_status.guhuoNode.style.transform='perspective(600px) rotateY(180deg) translateX(0)';
player.$throwordered2(_status.guhuoNode);
},trigger.cards[0],player);
event.onEnd01=function(){
_status.guhuoNode.removeEventListener('webkitTransitionEnd',_status.event.onEnd01);
setTimeout(function(){
_status.guhuoNode.style.transition='all ease-in 0.3s';
_status.guhuoNode.style.transform='perspective(600px) rotateY(270deg)';
var onEnd=function(){
_status.guhuoNode.classList.remove('infohidden');
_status.guhuoNode.style.transition='all 0s';
ui.refresh(_status.guhuoNode);
_status.guhuoNode.style.transform='perspective(600px) rotateY(-90deg)';
ui.refresh(_status.guhuoNode);
_status.guhuoNode.style.transition='';
ui.refresh(_status.guhuoNode);
_status.guhuoNode.style.transform='';
_status.guhuoNode.removeEventListener('webkitTransitionEnd',onEnd);
}
_status.guhuoNode.listenTransition(onEnd);
},300);
};
if(!event.targets.length) event.goto(3);
'step 1'
event.target=event.targets.shift();
event.target.chooseButton([event.prompt,[['reguhuo_ally','reguhuo_betray'],'vcard']],true).set('ai',function(button){
var player=_status.event.player;
var evt=_status.event.getParent('guhuo_guess'),evtx=evt.getTrigger();
if(!evt) return Math.random();
var card={name:evtx.card.name,nature:evtx.card.nature,isCard:true};
var ally=button.link[2]=='reguhuo_ally';
if(ally&&(player.hp<=1||get.attitude(player,evt.player)>=0)) return 1.1;
if(!ally&&get.attitude(player,evt.player)<0&&evtx.name=='useCard'){
var eff=0;
var targetsx=evtx.targets||[];
for(var target of targetsx){
var isMe=target==evt.player;
eff+=get.effect(target,card,evt.player,player)/(isMe?1.5:1);
}
eff/=(1.5*targetsx.length)||1;
if(eff>0) return 0;
if(eff<-7) return Math.random()+Math.pow(-(eff+7)/8,2);
return Math.pow((get.value(card,evt.player,'raw')-4)/(eff==0?5:10),2);
}
return Math.random();
});
'step 2'
if(result.links[0][2]=='reguhuo_betray'){
target.addExpose(0.2);
game.log(target,'#y质疑');
target.popup('质疑!','fire');
event.betrayer=target;
}
else{
game.log(target,'#g不质疑');
target.popup('不质疑','wood');
if(targets.length) event.goto(1);
}
'step 3'
game.delayx();
game.broadcastAll(function(onEnd){
_status.event.onEnd01=onEnd;
if(_status.guhuoNode) _status.guhuoNode.listenTransition(onEnd,300);
},event.onEnd01);
'step 4'
game.delay(2);
'step 5'
if(!event.betrayer) event.finish();
'step 6'
if(event.fake){
event.betrayer.popup('质疑正确','wood');
game.log(player,'声明的',trigger.card,'作废了');
trigger.cancel();
trigger.getParent().goto(0);
trigger.line=false;
}
else{
event.betrayer.popup('质疑错误','fire');
event.betrayer.addSkillLog('chanyuan');
}
'step 7'
game.delay(2);
'step 8'
if(event.fake) game.broadcastAll(ui.clear);
},
},
chanyuan:{
init:function(player,skill){
if(player.hp==1) player.logSkill(skill);
player.addSkillBlocker(skill);
},
onremove:function(player,skill){
player.removeSkillBlocker(skill);
},
skillBlocker:function(skill,player){
return skill!='chanyuan'&&skill!='rechanyuan'&&!lib.skill[skill].charlotte&&player.hp==1;
},
mark:true,
intro:{
content:function(storage,player,skill){
var str='锁定技。你不能于〖蛊惑〗的结算流程中进行质疑。当你的体力值为1时,你的其他技能失效。';
var list=player.getSkills(null,false,false).filter(function(i){
return lib.skill.rechanyuan.skillBlocker(i,player);
});
if(list.length) str+=('
失效技能:'+get.translation(list))
return str;
},
},
audio:2,
trigger:{player:'changeHp'},
filter:function(event,player){
return player.hp==1;
},
forced:true,
content:function(){},
},
guhuo_phase:{},
},
card:{},
dynamicTranslate:{
nzry_juzhan:function(player){
if(player.storage.nzry_juzhan==true) return '转换技,阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。';
return '转换技,阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。';
},
nzry_zhenliang:function(player){
if(player.storage.nzry_zhenliang==true) return '转换技,阴:出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。阳:当你于回合外使用或打出的牌结算完成后,若此牌与“任”颜色相同,则你可以令一名角色摸一张牌。';
return '转换技,阴:出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。阳:当你于回合外使用或打出的牌结算完成后,若此牌与“任”颜色相同,则你可以令一名角色摸一张牌。';
},
nzry_chenglve:function(player){
if(player.storage.nzry_chenglve==true) return '转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。';
return '转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。';
},
nzry_shenshi:function(player){
if(player.storage.nzry_shenshi==true) return '转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成1点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。';
return '转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成1点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。';
},
},
characterReplace:{
caoren:['caoren','old_caoren','sb_caoren','new_caoren'],
sp_caoren:['sp_caoren','jsp_caoren'],
xiahouyuan:['re_xiahouyuan','ol_xiahouyuan','xiahouyuan'],
huangzhong:['re_huangzhong','ol_huangzhong','sb_huangzhong','huangzhong','jsrg_huangzhong'],
weiyan:['re_weiyan','ol_weiyan','weiyan'],
zhoutai:['zhoutai','xin_zhoutai','old_zhoutai'],
xiaoqiao:['xiaoqiao','ol_xiaoqiao','re_xiaoqiao','sb_xiaoqiao','old_xiaoqiao'],
yuji:['xin_yuji','re_yuji','yuji'],
zhangjiao:['sp_zhangjiao','re_zhangjiao','sb_zhangjiao','zhangjiao'],
dianwei:['dianwei','ol_dianwei','re_dianwei'],
xunyu:['xunyu','ol_xunyu','re_xunyu'],
sp_zhugeliang:['sp_zhugeliang','ol_sp_zhugeliang','re_sp_zhugeliang','sb_sp_zhugeliang'],
pangtong:['pangtong','ol_pangtong','re_pangtong','sb_pangtong'],
re_jsp_pangtong:['re_jsp_pangtong','jsrg_pangtong','sp_pangtong'],
taishici:['taishici','re_taishici'],
re_yuanshao:['re_yuanshao','ol_yuanshao','xin_yuanshao','sb_yuanshao'],
pangde:['re_pangde','ol_pangde','pangde'],
yanwen:['yanwen','ol_yanwen','re_yanwen'],
caopi:['caopi','re_caopi','ps_caopi'],
xuhuang:['re_xuhuang','ol_xuhuang','sb_xuhuang','xuhuang'],
menghuo:['menghuo','re_menghuo','sb_menghuo'],
zhurong:['zhurong','ol_zhurong','re_zhurong','sb_zhurong'],
sunjian:['sunjian','ol_sunjian','re_sunjian'],
jiaxu:['jiaxu','re_jiaxu','ns_jiaxu','ps_jiaxu'],
dongzhuo:['dongzhuo','ol_dongzhuo','re_dongzhuo','sp_dongzhuo','yj_dongzhuo'],
dengai:['dengai','ol_dengai','re_dengai'],
sp_ol_zhanghe:['sp_ol_zhanghe','yj_zhanghe','sp_zhanghe','jsrg_zhanghe'],
jiangwei:['jiangwei','ol_jiangwei','re_jiangwei','sb_jiangwei'],
liushan:['liushan','ol_liushan','re_liushan'],
sunce:['sunce','re_sunce','re_sunben','sb_sunce'],
zhangzhang:['zhangzhang','ol_zhangzhang','re_zhangzhang'],
zuoci:['zuoci','re_zuoci'],
caiwenji:['caiwenji','ol_caiwenji','re_caiwenji'],
xuyou:['xuyou','sp_xuyou','jsrg_xuyou','yj_xuyou','junk_xuyou'],
guanqiujian:['guanqiujian','re_guanqiujian','tw_guanqiujian','old_guanqiujian'],
chendao:['chendao','ns_chendao','old_chendao'],
zhugezhan:['zhugezhan','old_zhugezhan'],
ol_lusu:['re_lusu','ol_lusu'],
zhanghe:['zhanghe','re_zhanghe','sb_zhanghe'],
yl_luzhi:['yl_luzhi','sb_yl_luzhi','tw_yl_luzhi'],
sunliang:['sunliang','xin_sunliang'],
},
translate:{
re_yuanshao:'袁绍',
re_lusu:'鲁肃',
re_yuji:"于吉",
wangji:'王基',
"kuailiangkuaiyue":"蒯良蒯越",
"sunliang":"孙亮",
"yl_luzhi":"卢植",
"xuyou":"许攸",
"luji":"陆绩",
"wangping":"王平",
"yanyan":"严颜",
"zhugezhan":"诸葛瞻",
"lukang":"陆抗",
"haozhao":"郝昭",
yl_yuanshu:"新杀袁术",
yl_yuanshu_prefix:"新杀",
"zhangxiu":"张绣",
"chendao":"陈到",
"guanqiujian":"毌丘俭",
zhoufei:"周妃",
"nzry_jianxiang":"荐降",
"nzry_jianxiang_info":"当你成为其他角色使用牌的目标时,你可令手牌数最少的一名角色摸一张牌。",
"nzry_shenshi1":"审时",
"nzry_shenshi":"审时",
"nzry_shenshi_info":"转换技,阴:出牌阶段限一次,你可以将一张牌交给一名除你外手牌数最多的角色,然后对其造成1点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。",
"nzry_mingren":"明任",
"nzry_mingren_info":"游戏开始时,你摸两张牌,然后将一张手牌置于你的武将牌上,称为“任”。结束阶段,你可以用一张手牌替换“任”。",
"nzry_zhenliang":"贞良",
"nzry_zhenliang_info":"转换技,阴:出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。阳:当你于回合外使用或打出的牌结算完成后,若此牌与“任”颜色相同,则你可以令一名角色摸一张牌。",
"nzry_chenglve1":"成略",
"nzry_chenglve":"成略",
"nzry_chenglve_info":"转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。",
"nzry_cunmu":"寸目",
"nzry_cunmu_info":"锁定技,当你摸牌时,改为从牌堆底摸牌。",
"nzry_kuizhu":"溃诛",
"nzry_kuizhu_info":"弃牌阶段结束后,你可以选择一项:①令至多X名角色各摸一张牌。②对任意名体力值之和为X的角色造成1点伤害。(X为你此阶段弃置的牌数)",
"nzry_zhizheng":"掣政",
rechezheng:'掣政',
"nzry_zhizheng_info":"锁定技,你的出牌阶段内,当你对攻击范围内不包含你的其他角色造成伤害时,防止此伤害。出牌阶段结束时,若你本阶段内使用的牌数小于这些角色的数量,则你弃置其中一名角色的一张牌。",
"nzry_lijun1":"立军",
"nzry_lijun":"立军",
"nzry_lijun_info":"主公技,其他吴势力角色的出牌阶段限一次,其使用【杀】结算后,可以将此【杀】对应的实体牌交给你,然后你可以令其摸一张牌且本阶段内使用【杀】的次数上限+1。",
"nzry_huaiju":"怀橘",
"nzry_huaiju_info":"锁定技,游戏开始时,你获得3个“橘”标记。(有“橘”的角色受到伤害时,防止此伤害,然后移去一个“橘”;有“橘”的角色摸牌阶段额外摸一张牌)",
"tachibana_effect":"怀橘",
"nzry_yili":"遗礼",
"nzry_yili_info":"出牌阶段开始时,你可以失去1点体力或移去一个“橘”,然后令一名其他角色获得一个“橘”。",
"nzry_zhenglun":"整论",
"nzry_zhenglun_info":"若你没有“橘”,你可以跳过摸牌阶段然后获得一个“橘”。",
"nzry_feijun":"飞军",
"nzry_feijun_info":"出牌阶段限一次。你可以弃置一张牌,然后选择一项:⒈令一名手牌数大于你的角色交给你一张牌;⒉令一名装备区里牌数大于你的角色弃置一张装备牌。",
"nzry_binglve":"兵略",
"nzry_binglve_info":"锁定技,当你发动“飞军”时,若目标与你之前指定的目标均不相同,则你摸两张牌。",
"nzry_juzhan1":"拒战",
"nzry_juzhan":"拒战",
"nzry_juzhan_info":"转换技,阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。",
liangyin:"良姻",
"liangyin_info":"当有牌移至游戏外时,你可以令手牌数大于你的一名角色摸一张牌;当有牌从游戏外加入任意角色的手牌时,你可以令手牌数小于你的一名角色弃置一张牌。",
kongsheng:"箜声",
"kongsheng_info":"准备阶段,你可以将任意张牌置于你的武将牌上;结束阶段,你使用武将牌上的装备牌,并获得武将牌上的其他牌。",
"kongsheng2":"箜声",
"kongsheng2_info":"",
"xinfu_zuilun":"罪论",
"xinfu_zuilun_info":"结束阶段,你可以观看牌堆顶三张牌,你每满足以下一项便保留一张,然后以任意顺序放回其余的牌:1.你于此回合内造成过伤害;2.你于此回合内未弃置过牌;3.手牌数为全场最少。若均不满足,你与一名其他角色失去1点体力。",
"xinfu_fuyin":"父荫",
"xinfu_fuyin_info":"锁定技,你每回合第一次成为【杀】或【决斗】的目标后,若你的手牌数小于等于该角色,此牌对你无效。",
drlt_wanglie:"往烈",
drlt_wanglie_info:"①出牌阶段,你使用的第一张牌无距离限制。②当你于出牌阶段内使用牌时,你可以令此牌不能被响应,然后你于本阶段内不能再使用牌。",
"drlt_xiongluan":"雄乱",
drlt_xiongluan1:'雄乱',
"drlt_xiongluan_info":"限定技,出牌阶段,你可以废除你的判定区和装备区,然后指定一名其他角色。直到回合结束,你对其使用牌无距离和次数限制,其不能使用和打出手牌。",
"drlt_congjian":"从谏",
"drlt_congjian_info":"当你成为锦囊牌的目标时,若此牌的目标数大于1,则你可以交给其中一名其他目标角色一张牌,然后摸一张牌,若你给出的是装备牌,改为摸两张牌。",
"drlt_yongsi":"庸肆",
"drlt_yongsi_info":"锁定技,摸牌阶段,你改为摸X张牌(X为存活势力数);出牌阶段结束时,若你本回合:1.没有造成伤害,将手牌摸至当前体力值;2.造成的伤害超过1点,本回合手牌上限改为已损失体力值。",
"drlt_weidi":"伪帝",
weidi_tag:'伪帝',
"drlt_weidi_info":"主公技,弃牌阶段开始时,若你的手牌数大于手牌上限,则你可以将至多X张手牌分别交给等量的其他群雄角色(X为你的手牌数与手牌上限之差)。",
"drlt_qianjie":"谦节",
"drlt_qianjie_info":"锁定技,当你横置时,取消之。你不能成为延时类锦囊的目标。你不能成为其他角色拼点的目标。",
"drlt_jueyan":"决堰",
"drlt_jueyan_info":"出牌阶段限一次,你可以废除一种装备栏,然后执行对应一项:武器栏,你本回合内使用【杀】的次数上限+3;防具栏,你摸三张牌,且本回合手牌上限+3;坐骑栏,你本回合内使用牌无距离限制;宝物栏,你获得〖集智〗直到回合结束。",
"drlt_poshi":"破势",
"drlt_poshi_info":"觉醒技,准备阶段开始时,若你的装备栏均已被废除或体力值为1,则你减1点体力上限,将手牌摸至体力上限,失去〖决堰〗并获得〖怀柔〗。",
"drlt_huairou":"怀柔",
"drlt_huairou_info":"出牌阶段,你可以重铸装备牌。",
"drlt_zhenggu":"镇骨",
drlt_zhenggu2:"镇骨",
"drlt_zhenggu_info":"结束阶段,你可以选择一名其他角色,你的回合结束后和该角色的下个回合结束时,其将手牌摸至或弃至X张。(X为你的手牌数且至多为5)",
"drlt_zhenrong":"征荣",
"drlt_zhenrong_info":"当你对其他角色造成伤害后,若其手牌比你多,你可以将其一张牌置于你的武将牌上,称为“荣”。",
"drlt_hongju":"鸿举",
"drlt_hongju_info":"觉醒技,准备阶段,若“荣”的数量大于或等于3且场上有角色死亡,则你可以用任意张手牌替换等量的“荣”,然后减1点体力上限并获得〖清侧〗。",
"drlt_qingce":"清侧",
"drlt_qingce_info":"出牌阶段,你可以移去一张“荣”,然后弃置一名角色装备区或判定区内的一张牌。",
zhengrong:'征荣',
hongju:'鸿举',
qingce:'清侧',
qingce_backup:'清侧',
zhengrong_info:'当你使用带有「伤害」标签的基本牌或锦囊牌指定目标后,你可以将一名手牌数不小于你的目标角色的一张牌置于你的武将牌上,称为「荣」。',
hongju_info:'觉醒技,准备阶段,若你武将牌上「荣」的数量不小于3,则你触发此技能。你可以用任意数量的手牌交换等量的「荣」。你减1点体力上限并获得技能〖清侧〗。',
qingce_info:'出牌阶段,你可以获得一张「荣」并弃置一张手牌,然后弃置场上的一张牌。',
jianchu:'鞬出',
jianchu_info:'当你使用【杀】指定一名角色为目标后,你可以弃置其一张牌,若以此法弃置的牌为装备牌,此【杀】不可被【闪】响应,若不为装备牌,该角色获得此【杀】。',
redimeng:'缔盟',
redimeng_info:'出牌阶段限一次,你可以弃置X张牌选择两名其他角色(X为这两名角色的手牌差),你混合他们的手牌,然后令其中一名角色获得其中的一张牌,并令另一名角色获得其中的一张牌,然后重复此流程,直到这些牌均被获得为止。',
reluanji:'乱击',
reluanji_info:'你可以将两张与你本回合以此法转化的花色均不相同的手牌当【万箭齐发】使用,然后当一名角色因响应此牌而打出【闪】时,该角色摸一张牌。若你以此法使用的【万箭齐发】未造成伤害,则你可以在此牌结算完成后摸X张牌。(X为此牌的目标数)',
xintianxiang:'天香',
xintianxiang2:'天香',
xintianxiang3:'天香',
xintianxiang4:'天香',
xintianxiang_bg:'香',
xintianxiang_info:'当你受到伤害时,你可以弃置一张♥牌,将此伤害转移给一名其他角色,然后你选择一项:令该角色摸X张牌(X为其已损失的体力值);或防止其造成与受到的所有伤害,且此技能失效直到你的下回合开始。',
xinshensu:'神速',
xinshensu_info:'你可以选择一至三项:1. 跳过判定阶段和摸牌阶段;2. 跳过出牌阶段并弃置一张装备牌;3. 跳过弃牌阶段并将你的武将牌翻面。你每选择一项,视为你对一名其他角色使用一张没有距离限制的【杀】。',
yinghun:'英魂',
yinghun_info:'准备阶段开始时,你可令一名其他角色执行一项:摸X张牌,然后弃置一张牌;或摸一张牌,然后弃置X张牌(X为你已损失的体力值)。',
gzyinghun:'英魂',
gzyinghun_info:'准备阶段开始时,若你已受伤,你可令一名其他角色执行一项:摸X张牌,然后弃置一张牌;或摸一张牌,然后弃置X张牌(X为你已损失的体力值)。',
tiaoxin:'挑衅',
zhiji:'志继',
zhiji_draw:'摸牌',
zhiji_recover:'回血',
xiangle:'享乐',
fangquan:'放权',
ruoyu:'若愚',
qiaobian:'巧变',
tuntian:'屯田',
tuntian_bg:'田',
zaoxian:'凿险',
jixi:'急袭',
jiang:'激昂',
hunzi:'魂姿',
zhiba:'制霸',
zhiba2:'制霸',
zhijian:'直谏',
guzheng:'固政',
beige:'悲歌',
duanchang:'断肠',
// fushen:'附身',
huashen:'化身',
xinsheng:'新生',
qimou:'奇谋',
xinqiangxi:'强袭',
xinjushou:'据守',
xinjiewei:'解围',
retianxiang:'天香',
retianxiang_info:'当你受到伤害时,你可以弃置一张红桃手牌,防止此次伤害并选择一名其他角色,然后你选择一项:1.令其受到伤害来源对其造成的1点伤害,然后摸X张牌(X为其已损失体力值且至多为5);2.令其失去1点体力,然后获得你弃置的牌。',
xinjiewei_info:'你可以将装备区里的牌当【无懈可击】使用;当你的武将牌从背面翻至正面时,你可以弃置一张牌,然后移动场上的一张牌。',
xinjushou_info:'结束阶段,你可以翻面并摸四张牌,然后弃置一张手牌,若以此法弃置的是装备牌,则你改为使用之。',
jixi_info:'出牌阶段,你可以将任意一张“田”当作【顺手牵羊】使用。',
xinqiangxi_info:'出牌阶段各限一次,你可以选择一项:1. 失去1点体力并对你攻击范围内的一名其他角色造成1点伤害;2. 弃置一张装备牌并对你攻击范围内的一名其他角色造成1点伤害。',
qimou_info:'限定技,出牌阶段,你可以失去任意点体力,然后直到回合结束,你计算与其他角色的距离时-X,且你可以多使用X张【杀】(X为你失去的体力值)。',
tiaoxin_info:'出牌阶段限一次,你可以指定一名攻击范围内包含你的角色,该角色需对你使用一张【杀】,否则你弃置其一张牌。',
zhiji_info:'觉醒技,准备阶段,若你没有手牌,你须回复1点体力或摸两张牌,然后减1点体力上限,并获得技能〖观星〗。',
xiangle_info:'锁定技,当其他角色使用【杀】指定你为目标时,其需弃置一张基本牌,否则此【杀】对你无效。',
fangquan_info:'你可跳过你的出牌阶段,若如此做,回合结束时,你可以弃置一张手牌并令一名其他角色进行一个额外的回合。',
ruoyu_info:'主公技,觉醒技,准备阶段,若你的体力是全场最少的(或之一),你须增加1点体力上限并回复1点体力,然后获得技能〖激将〗。',
qiaobian_info:'你可以弃置一张手牌并跳过自己的一个阶段(准备阶段和结束阶段除外)。若你以此法跳过了摸牌阶段,则你可以获得至多两名其他角色的各一张手牌;若你以此法跳过了出牌阶段,则你可以移动场上的一张牌。',
tuntian_info:'①当你于回合外失去牌后,你可以判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称为“田”。②你计算与其他角色的距离时-X(X为你武将牌上“田”的数目)。',
zaoxian_info:'觉醒技,准备阶段,若你武将牌上“田”的数量达到3张或更多,则你减1点体力上限,并获得技能〖急袭〗。',
jiang_info:'每当你使用(指定目标后)或被使用(成为目标后)一张【决斗】或红色的【杀】时,你可以摸一张牌。',
hunzi_info:'觉醒技,准备阶段,若你的体力值为1,你减1点体力上限,并获得技能〖英姿〗和〖英魂〗。',
zhiba_info:'主公技,其他吴势力角色的出牌阶段限一次,其可与你进行一次拼点。若该角色没赢,你可以获得双方拼点的牌。若你已发动过〖魂姿〗,你可以拒绝此拼点。',
zhijian_info:'出牌阶段,你可以将手牌中的一张装备牌置于一名其他角色装备区里(不得替换原装备),然后摸一张牌。',
guzheng_info:'其他角色的弃牌阶段结束时,你可以令其获得本阶段内进入弃牌堆的牌中的一张,然后你获得其余的牌。',
beige_info:'当有角色受到【杀】造成的伤害后,你可以弃一张牌,并令其进行一次判定,若判定结果为:♥该角色回复1点体力;♦︎该角色摸两张牌;♣伤害来源弃两张牌;♠伤害来源将其武将牌翻面。',
duanchang_info:'锁定技,杀死你的角色失去当前的所有技能。',
// fushen_info:'回合开始前,你可以选择与任意一名角色交换控制权,该角色可选择在下一个回合开始前与你换回。',
huashen_info:'①游戏开始时,你随机将武将牌堆中的两张牌扣置于武将牌上(均称为“化身牌”),选择并亮出一张“化身牌”并声明该武将牌上的一个技能,你拥有该技能且同时将性别和势力属性变成与该武将相同直到该化身被替换(你不可声明限定技、觉醒技、隐匿技、使命技、主公技等特殊技能)。②回合开始时或回合结束时,你重新可以选择一张“化身牌”并声明该武将牌上的一个技能。',
xinsheng_info:'当你受到1点伤害后,你可以获得一张“化身牌”。',
jiangwei:'姜维',
liushan:'刘禅',
zhanghe:'张郃',
dengai:'邓艾',
sunce:'孙策',
zhangzhang:'张昭张纮',
caiwenji:'蔡琰',
zuoci:'左慈',
zhurong:'祝融',
menghuo:'孟获',
caopi:'曹丕',
re_xuhuang:'徐晃',
lusu:'旧鲁肃',
lusu_prefix:'旧',
sunjian:'孙坚',
dongzhuo:'董卓',
jiaxu:'贾诩',
huoshou:'祸首',
huoshou1:'祸首',
huoshou2:'祸首',
zaiqi:'再起',
zaiqixx:'再起',
juxiang:'巨象',
juxiang1:'巨象',
juxiang2:'巨象',
lieren:'烈刃',
xingshang:'行殇',
fangzhu:'放逐',
songwei:'颂威',
songwei2:'颂威',
duanliang:'断粮',
duanliang1:'断粮',
haoshi:'好施',
dimeng:'缔盟',
jiuchi:'酒池',
roulin:'肉林',
benghuai:'崩坏',
baonue:'暴虐',
baonue2:'暴虐',
baonue_hp:'体力',
baonue_maxHp:'体力上限',
luanwu:'乱武',
wansha:'完杀',
weimu:'帷幕',
jiezi:'截辎',
jiezi_info:'锁定技,其他角色跳过摸牌阶段后,你摸一张牌。',
huoshou_info:'锁定技,【南蛮入侵】对你无效;你视为所有【南蛮入侵】的伤害来源。',
zaiqi_info:'摸牌阶段,若你已受伤,则你可以改为展示牌堆顶的X张牌(X为你已损失的体力值),并回复X点体力(X为其中♥牌的数目)。然后你将这些♥牌置入弃牌堆,并获得其余的牌。',
zaiqixx_info:'摸牌阶段,若你已受伤,则你可以改为展示牌堆顶的X张牌(X为你已损失的体力值+1),并回复X点体力(X为其中♥牌的数目)。然后你将这些♥牌置入弃牌堆,并获得其余的牌。',
juxiang_info:'锁定技。①【南蛮入侵】对你无效。②其他角色使用的【南蛮入侵】结算结束后,你获得此牌对应的所有实体牌。',
lieren_info:'当你使用【杀】造成伤害后,可与受到该伤害的角色进行拼点;若你赢,你获得对方的一张牌。',
xingshang_info:'当有角色死亡后,你可以获得该角色的所有牌。',
fangzhu_info:'当你受到伤害后,你可令一名其他角色摸X张牌(X为你已损失的体力值),然后该角色将武将牌翻面。',
songwei_info:'主公技,其他魏势力的角色的判定牌结果为黑色且生效后,其可以令你摸一张牌。',
duanliang_info:'你可以将一张黑色基本牌或装备牌当做【兵粮寸断】使用;若一名角色的手牌数大于或等于你的手牌数,则你对其使用【兵粮寸断】没有距离限制。',
haoshi_info:'摸牌阶段,你可以额外摸两张牌。若此时你的手牌数多于五张,你须将一半(向下取整)的手牌交给场上除你外手牌数最少的一名角色。',
dimeng_info:'出牌阶段限一次,你可以选择其他两名角色,你弃置等同于这两名角色手牌数量之差的牌,然后交换他们的手牌。',
yinghun_old_info:'准备阶段,若你已受伤,则你可以令一名其他角色执行下列两项中的一项: 1.摸X张牌,然后弃一张牌。 2.摸一张牌,然后弃X张牌。 (X为你已损失的体力值)',
jiuchi_info:'你可以将一张♠手牌当作【酒】使用。',
roulin_info:'锁定技。你对女性角色、女性角色对你使用【杀】时,都需连续使用两张【闪】才能抵消。',
benghuai_info:'锁定技。结束阶段,若你的体力不为全场最少,你失去1点体力或减1点体力上限。',
baonue_info:'主公技,其他群雄角色造成伤害后,可进行一次判定,若为♠,你回复1点体力。',
luanwu_info:'限定技,出牌阶段,你可令除你外的所有角色依次对与其距离最近的另一名角色使用一张【杀】,否则失去1点体力。',
wansha_info:'锁定技,你的回合内,除你以外,不处于濒死状态的角色不能使用【桃】。',
weimu_info:'锁定技,你不能成为黑色锦囊牌的目标。',
sp_zhugeliang:'卧龙',
pangtong:'庞统',
xunyu:'荀彧',
dianwei:'典韦',
taishici:'太史慈',
yanwen:'颜良文丑',
yuanshao:'旧袁绍',
yuanshao_prefix:'旧',
re_pangde:'庞德',
huoji:'火计',
bazhen:'八阵',
kanpo:'看破',
niepan:'涅槃',
oldniepan:'涅槃',
quhu:'驱虎',
jieming:'节命',
qiangxix:'强袭',
qiangxi:'强袭',
tianyi:'天义',
shuangxiong:'双雄',
shuangxiong1:'双雄',
shuangxiong2:'双雄',
luanji:'乱击',
xueyi:'血裔',
mengjin:'猛进',
huoji_info:'你可以将一张红色手牌当作【火攻】使用。',
bazhen_info:'锁定技,若你的防具栏内没有牌且没有被废除,则你视为装备着【八卦阵】。',
kanpo_info:'你可以将你的任意一张黑色手牌当做【无懈可击】使用。',
niepan_info:'限定技,出牌阶段或当你处于濒死状态时,你可以弃置你区域内的所有牌并复原你的武将牌,然后摸三张牌并将体力回复至3点。',
oldniepan_info:'限定技,当你处于濒死状态时,你可以弃置你区域内的所有牌并复原你的武将牌,然后摸三张牌并将体力回复至3点。',
quhu_info:'出牌阶段限一次,你可以与一名体力值大于你的角色拼点,若你赢,则该角色对其攻击范围内另一名由你指定的角色造成1点伤害。若你没赢,该角色对你造成1点伤害。',
jieming_info:'当你受到1点伤害后,你可令一名角色将手牌摸至X张(X为其体力上限且至多为5)。',
qiangxi_info:'出牌阶段限一次,你可以失去1点体力或弃置一张武器牌,然后对你攻击范围内的一名其他角色造成1点伤害。',
qiangxix_info:'出牌阶段限两次,你可以失去1点体力或弃置一张武器牌,然后一名本阶段内未成为过〖强袭〗的目标的其他角色造成1点伤害。',
tianyi_info:'出牌阶段限一次,你可以和一名其他角色拼点。若你赢,你获得以下技能效果直到回合结束:你使用【杀】没有距离限制;可额外使用一张【杀】;使用【杀】时可额外指定一个目标。若你没赢,你不能使用【杀】直到回合结束。',
shuangxiong_info:'摸牌阶段,你可以改为进行一次判定:你获得此判定牌,且你可以于此回合内将任意一张与此判定牌不同颜色的手牌当做【决斗】使用。',
luanji_info:'出牌阶段,你可以将任意两张相同花色的手牌当做【万箭齐发】使用。',
xueyi_info:'主公技,锁定技,场上每有一名其他群雄角色存活,你的手牌上限便+2。',
mengjin_info:'当你使用的【杀】被【闪】抵消时,你可以弃置目标角色的一张牌。',
re_xiahouyuan:'夏侯渊',
re_huangzhong:'黄忠',
re_weiyan:'魏延',
gz_xiahouyuan:'夏侯渊',
gz_huangzhong:'黄忠',
gz_weiyan:'魏延',
gz_xuhuang:'徐晃',
gz_pangde:'庞德',
gz_caoren:'曹仁',
gz_zhoutai:'周泰',
old_zhoutai:'周泰',
old_caoren:'曹仁',
xuhuang:'旧徐晃',
xuhuang_prefix:'旧',
pangde:'旧庞德',
pangde_prefix:'旧',
xiahouyuan:'旧夏侯渊',
xiahouyuan_prefix:'旧',
huangzhong:'旧黄忠',
huangzhong_prefix:'旧',
sp_zhangjiao:'张角',
weiyan:'旧魏延',
weiyan_prefix:'旧',
xiaoqiao:'小乔',
zhangjiao:'旧张角',
zhangjiao_prefix:'旧',
//yuji:'于吉',
shensu:'神速',
shensu1:'神速',
shensu2:'神速',
shensu4:'神速',
jushou:'据守',
moon_jushou:'据守',
liegong:'烈弓',
kuanggu:'狂骨',
tianxiang:'天香',
hongyan:'红颜',
buqu:'不屈',
buqu_bg:'创',
leiji:'雷击',
guidao:'鬼道',
huangtian:'黄天',
huangtian2:'黄天',
guhuo:'蛊惑',
fenji:'奋激',
releiji:'雷击',
jiewei:'解围',
tiangong:'天公',
tiangong2:'天公',
xinliegong:'烈弓',
xinkuanggu:'狂骨',
gzbuqu:'不屈',
gzbuqu_info:'①当你扣减1点体力时,若你的体力值小于1,你可以将牌堆顶的一张牌置于你的武将牌上,称为“创”。②当你回复1点体力时,你移去一张“创”。③若你有“创”且点数均不相同,则你不结算濒死流程。',
xinkuanggu_info:'当你造成1点伤害后,若受伤角色受到此伤害时你与其的距离不大于1,则你可以回复1点体力或摸一张牌。',
xinliegong_info:'①你使用【杀】可以选择你距离不大于此【杀】点数的角色为目标。②当你使用【杀】指定一个目标后,你可以根据下列条件执行相应的效果:1.其手牌数小于等于你的手牌数,此【杀】不可被响应,2.其体力值大于等于你的体力值,此【杀】伤害+1。',
jiewei_info:'当你的武将牌翻面后,你可以摸一张牌。然后你可以使用一张锦囊牌或装备牌,并可以在此牌结算后弃置场上一张同类型的牌。',
releiji_info:'当你使用或打出一张【闪】时,你可令一名其他角色进行一次判定:若结果为梅花,其受到1点雷电伤害,然后你回复1点体力;若结果为黑桃,其受到2点雷电伤害。',
tiangong_info:'锁定技,你防止即将受到的雷电伤害。每当你造成雷电伤害时,你摸一张牌。',
shensu_info:'你可以跳过判定阶段和摸牌阶段,或跳过出牌阶段并弃置一张装备牌。若如此做,则你可以视为对任意一名角色使用一张无距离限制的【杀】。',
jushou_info:'结束阶段,你可以摸三张牌并翻面。',
moon_jushou_info:'结束阶段,你可以摸一张牌并翻面。',
liegong_info:'当你使用【杀】时,若目标的手牌数大于等于你的体力值,或小于等于你的攻击范围,你可令此【杀】不能被响应。',
kuanggu_info:'锁定技,当你造成伤害后,若受伤角色受到此伤害时你与其的距离不大于1,你回复X点体力(X为伤害值)。',
tianxiang_info:'当你即将受到伤害时,你可以弃置一张♥手牌,将伤害转移给一名其他角色,然后该角色摸X张牌(X为其已损失的体力值)。',
hongyan_info:'锁定技,你区域内的黑桃牌和黑桃判定牌均视为红桃。',
buqu_info:'锁定技,当你处于濒死状态时,你亮出牌堆顶的一张牌并置于你的武将牌上,称之为“创”。若此牌的点数与你武将牌上已有的“创”点数均不同,则你回复至1体力。若点数相同,则将此牌置入弃牌堆。只要你的武将牌上有“创”,你的手牌上限便与“创”的数量相等。',
buqu_info_guozhan:'锁定技,当你处于濒死状态时,你亮出牌堆顶的一张牌并置于你的武将牌上,称之为“创”。若此牌的点数与你武将牌上已有的“创”点数均不同,则你回复至1体力。若点数相同,则将此牌置入弃牌堆。',
leiji_info:'当你使用或打出一张【闪】时,你可令任意一名角色进行一次判定。若结果为黑桃,其受到2点雷电伤害。',
guidao_info:'一名角色的判定牌生效前,你可以打出一张黑色牌替换之。',
huangtian_info:'主公技,其他群势力角色的出牌阶段限一次,其可以交给你一张【闪】或【闪电】。',
guhuo_info:'每名角色的回合限一次,你可以扣置一张手牌当一张基本牌或普通锦囊牌使用或打出。其他角色依次选择是否质疑。一旦有其他角色质疑则翻开此牌:若为假则此牌作废,若为真,则质疑角色获得技能“缠怨”(锁定技,你不能质疑于吉,只要你的体力值为1,你失去你的武将技能)。',
fenji_info:'当一名角色的手牌不因赠予或交给而被另一名角色得到后,或一名角色的手牌被另一名角色弃置后,你可以失去1点体力,令其摸两张牌。',
new_fenji:"奋激",
new_fenji_info:"一名角色的结束阶段开始时,若其没有手牌,你可以令其摸两张牌,然后你失去1点体力。",
gzduanliang:'断粮',
gzduanliang_info:'你可以将一张黑色基本牌或黑色装备牌当【兵粮寸断】使用;你可以对距离为2的角色使用【兵粮寸断】。',
xinfu_guhuo:"蛊惑",
xinfu_guhuo_info:"每回合限一次。你可以扣置一张手牌当做一张基本牌或普通锦囊牌使用或打出,其他角色依次选择是否质疑。当有角色质疑时,你终止质疑流程并展示此牌:若为假,此牌作废;若为真,该角色获得〖缠怨〗。",
guhuo_guess:"蛊惑",
guhuo_guess_info:"",
chanyuan:"缠怨",
chanyuan_info:"锁定技。你不能于〖蛊惑〗的结算流程中进行质疑。当你的体力值为1时,你的其他技能失效。",
"guhuo_respond":"蛊惑",
"guhuo_respond_info":"",
"guhuo_wuxie":"蛊惑",
"guhuo_wuxie_info":"",
"guhuo_phase":"蛊惑",
"guhuo_phase_info":"",
xinhongyan:'红颜',
xinhongyan_info:'锁定技,你的♠牌和♠判定牌的花色视为♥。一名角色的判定结果生效前,若判定结果为♥,则你将其改为一种花色。',
olliangyin:'良姻',
olliangyin_info:'当有牌发生移动后,若此移动事件是本回合内你拥有〖良姻〗期间的首个有牌移出游戏/移入游戏的事件,则你可以选择一名其他角色。你与其各摸一张牌/弃置一张牌,然后你可以选择你或其中的一名手牌数为X的角色,该角色回复1点体力(X为你的“箜”数)。',
olkongsheng:'箜声',
olkongsheng_info:'①准备阶段开始时,你可以将任意张牌置于你的武将牌上,称为“箜”。②结束阶段开始时,若你有不为装备牌的“箜”,则你获得“箜”中的非装备牌,然后令一名角色依次使用“箜”中的装备牌并失去1点体力。',
dcwanglie:"往烈",
dcwanglie_info:"①出牌阶段,你对其他角色使用的前两张牌无距离限制。②当你于出牌阶段内使用牌时,你可以令此牌不能被响应,然后你于本阶段内不能使用牌指定其他角色为目标。",
nzry_shicai:"恃才",
nzry_shicai_info:"当你使用非装备牌结算结束后,或成为自己使用装备牌的目标后,若此牌与你本回合使用的牌类型均不同,则你可以将此牌置于牌堆顶,然后摸一张牌。",
lianhuan:'连环',
lianhuan_info:'你可以将♣手牌当作【铁索连环】使用或重铸。',
shenhua_feng:'神话再临·风',
shenhua_huo:'神话再临·火',
shenhua_lin:'神话再临·林',
shenhua_shan:'神话再临·山',
shenhua_yin:'神话再临·阴',
shenhua_lei:'神话再临·雷',
},
};
});