noname/character/gujian.js

1630 lines
44 KiB
JavaScript
Raw Normal View History

2015-04-29 03:25:17 +00:00
character.gujian={
character:{
2015-11-26 00:50:57 +00:00
gjqt_bailitusu:['male','shu',4,['xuelu','fanshi','shahun']],
gjqt_fengqingxue:['female','wu',3,['qinglan','yuehua','swd_wuxie']],
gjqt_xiangling:['female','wu',3,['qianhuan','meihu','xidie']],
gjqt_fanglansheng:['male','wu',3,['fanyin','mingkong','fumo']],
2017-02-05 15:22:29 +00:00
gjqt_yinqianshang:['male','qun',4,['zuiji','zuizhan']],
2015-11-26 00:50:57 +00:00
gjqt_hongyu:['female','shu',4,['jianwu','meiying']],
2015-04-29 03:25:17 +00:00
2017-01-18 03:00:22 +00:00
gjqt_yuewuyi:['male','wei',4,['yanjia','xiuhua','liuying']],
2017-01-18 08:58:53 +00:00
gjqt_wenrenyu:['female','shu',4,['chizhen','dangping']],
2015-11-26 00:50:57 +00:00
gjqt_xiayize:['male','qun',3,['xuanning','liuguang','yangming']],
gjqt_aruan:['female','wu',3,['zhaolu','jiehuo','yuling']],
2017-01-21 12:42:50 +00:00
2017-01-29 13:36:29 +00:00
gjqt_xunfang:['female','shu',3,['manwu','xfanghua']],
2017-01-22 16:20:59 +00:00
gjqt_ouyangshaogong:['male','shu',3,['yunyin','shishui','duhun']],
2015-04-29 03:25:17 +00:00
},
skill:{
2017-02-05 15:22:29 +00:00
zuiji:{
enable:'phaseUse',
filterCard:true,
position:'he',
viewAs:{name:'jiu'},
viewAsFilter:function(player){
if(!player.num('he')) return false;
},
prompt:'将一张手牌或装备牌当酒使用',
check:function(card){
return 5-ai.get.value(card);
},
ai:{
threaten:1.2
}
},
2017-01-29 13:36:29 +00:00
manwu:{
2017-01-22 16:20:59 +00:00
trigger:{global:'phaseEnd'},
check:function(event,player){
return ai.get.attitude(player,event.player)>0;
},
filter:function(event,player){
2017-02-06 16:34:20 +00:00
return event.player.isFewestHandcard();
2017-01-22 16:20:59 +00:00
},
logTarget:'player',
content:function(){
trigger.player.draw();
},
ai:{
expose:0.1
}
},
xfanghua:{
trigger:{target:'useCardToBegin'},
priority:-1,
filter:function(event,player){
return get.color(event.card)=='red'&&player.isDamaged();
},
frequent:true,
content:function(){
player.recover();
},
ai:{
effect:{
target:function(card,player,target,current){
if(get.color(card)=='red'&&target.isDamaged()) return [1,1];
}
}
}
},
duhun:{
enable:'chooseToUse',
filter:function(event,player){
if(event.type!='dying') return false;
if(player!=event.dying) return false;
if(player.maxHp<=1) return false;
if(player.num('h')==0) return false;
return true;
},
filterTarget:function(card,player,target){
return target!=player&&target.num('h')>0&&target.hp>0&&target.hp<=player.maxHp;
},
content:function(){
'step 0'
player.chooseToCompare(target);
'step 1'
if(!result.bool){
player.die();
event.finish();
}
else{
event.num=target.hp-player.hp;
player.loseMaxHp();
}
'step 2'
player.changeHp(event.num);
'step 3'
event.target.changeHp(-event.num);
'step 4'
if(event.target.hp<=0){
event.target.dying({source:player});
}
},
ai:{
order:1,
skillTagFilter:function(player){
if(player.maxHp<=1) return false;
if(player.hp>0) return false;
if(player.num('h')==0) return false;
},
save:true,
result:{
target:-1,
player:1
},
threaten:2
},
},
yunyin:{
trigger:{player:'phaseEnd'},
direct:true,
subSkill:{
count:{
trigger:{player:'useCard'},
forced:true,
popup:false,
silent:true,
filter:function(event,player){
return _status.currentPhase==player;
},
content:function(){
if(!player.storage.yunyin){
player.storage.yunyin=[];
}
var suit=get.suit(trigger.card);
if(suit){
player.storage.yunyin.add(suit);
}
}
},
set:{
trigger:{player:'phaseAfter'},
forced:true,
popup:false,
silent:true,
content:function(){
delete player.storage.yunyin;
}
}
},
filter:function(event,player){
if(!player.storage.yunyin) return true;
var hs=player.get('h');
for(var i=0;i<hs.length;i++){
if(!player.storage.yunyin.contains(get.suit(hs[i]))) return true;
}
return false;
},
group:['yunyin_count','yunyin_set'],
content:function(){
'step 0'
2017-01-23 05:31:32 +00:00
player.chooseToDiscard(get.prompt('yunyin'),function(card){
2017-01-22 16:20:59 +00:00
if(!player.storage.yunyin) return true;
return !player.storage.yunyin.contains(get.suit(card));
}).set('logSkill','yunyin').ai=function(card){
return 9-ai.get.value(card);
}
'step 1'
if(!result.bool){
event.finish();
return;
}
var list=[];
for(var i=0;i<lib.inpile.length;i++){
var name=lib.inpile[i];
var type=get.type(name);
if(type=='trick'||type=='basic'){
if(lib.filter.cardEnabled({name:name},player)){
list.push([get.translation(type),'',name]);
}
}
}
var dialog=ui.create.dialog('云音',[list,'vcard']);
player.chooseButton(dialog).ai=function(button){
var name=button.link[2];
var taoyuan=0,nanman=0;
2017-02-11 16:55:38 +00:00
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
var eff1=ai.get.effect(players[i],{name:'taoyuan'},player,player);
var eff2=ai.get.effect(players[i],{name:'nanman'},player,player);
2017-01-22 16:20:59 +00:00
if(eff1>0){
taoyuan++;
}
else if(eff1<0){
taoyuan--;
}
if(eff2>0){
nanman++;
}
else if(eff2<0){
nanman--;
}
}
if(Math.max(taoyuan,nanman)>1){
if(taoyuan>nanman) return name=='taoyuan'?1:0;
return name=='nanman'?1:0;
}
if(player.num('h')<player.hp&&player.hp>=2){
return name=='wuzhong'?1:0;
}
if(player.hp<player.maxHp&&player.hp<3){
return name=='tao'?1:0;
}
return name=='zengbin'?1:0;
}
'step 2'
if(result.bool){
var name=result.links[0][2];
var info=lib.card[name];
var card={name:name};
if(info.selectTarget==-1){
2017-02-11 16:55:38 +00:00
var targets=game.filterPlayer(function(current){
return lib.filter.filterTarget(card,player,current);
});
2017-01-22 16:20:59 +00:00
if(targets.length){
targets.sort(lib.sort.seat);
player.useCard(card,targets);
}
event.finish();
}
2017-02-03 10:57:04 +00:00
else if(info.notarget){
player.useCard(card);
}
2017-01-22 16:20:59 +00:00
else{
var next=player.chooseTarget('选择'+get.translation(name)+'的目标');
next._get_card=card;
next.filterTarget=lib.filter.filterTarget;
next.ai=ai.get.effect;
if(typeof info.selectTarget=='function'){
next.selectTarget=info.selectTarget;
}
else{
next.selectTarget=get.select(info.selectTarget);
}
event.card=card;
}
}
else{
event.finish();
}
'step 3'
if(result.bool){
player.useCard(event.card,result.targets);
}
},
ai:{
threaten:1.5,
}
},
shishui:{
trigger:{player:'useCardToBegin'},
filter:function(event,player){
return event.target&&get.color(event.card)=='red';
},
forced:true,
check:function(event,player){
return ai.get.attitude(player,event.player)<0;
},
content:function(){
2017-02-05 17:45:46 +00:00
'step 0'
if(get.info(trigger.card).multitarget){
event.list=trigger.targets.slice(0);
}
else{
trigger.target.loseHp();
event.finish();
}
'step 1'
if(event.list.length){
event.list.shift().loseHp();
event.redo();
}
2017-01-22 16:20:59 +00:00
},
ai:{
effect:{
player:function(card,player,target,current){
if(get.color(card)=='red') return [1,0,1,-2];
}
}
}
},
2017-01-18 08:58:53 +00:00
chizhen:{
trigger:{player:'phaseUseBegin'},
frequent:true,
content:function(){
'step 0'
event.num=Math.max(1,player.maxHp-player.hp);
player.draw(event.num);
'step 1'
player.chooseToDiscard('he',event.num,true);
'step 2'
var useCard=false;
if(result.bool&&result.cards){
for(var i=0;i<result.cards.length;i++){
if(result.cards[i].name=='sha'){
useCard=true;break;
}
}
}
if(useCard){
player.chooseTarget('是否视为使用一张决斗?',function(card,player,target){
return lib.filter.targetEnabled({name:'juedou'},player,target);
}).set('ai',function(target){
return ai.get.effect(target,{name:'juedou'},_status.event.player);
});
}
else{
event.finish();
}
'step 3'
if(result.bool){
player.useCard({name:'juedou'},result.targets);
}
},
ai:{
threaten:function(player,target){
return Math.sqrt(Math.max(1,target.maxHp-target.hp));
}
}
},
2017-01-18 03:00:22 +00:00
xiuhua:{
trigger:{global:'loseEnd'},
filter:function(event,player){
if(event.player==player) return false;
if(event.parent.name!='equip'&&event.parent.name!='discard') return false;
for(var i=0;i<event.cards.length;i++){
if(get.type(event.cards[i])=='equip'&&get.position(event.cards[i])=='d'){
return true;
}
}
},
frequent:true,
content:function(){
"step 0"
2017-02-14 10:22:09 +00:00
if(trigger.delay==false) game.delay();
2017-01-18 03:00:22 +00:00
"step 1"
var cards=[];
for(var i=0;i<trigger.cards.length;i++){
if(get.type(trigger.cards[i])=='equip'&&get.position(trigger.cards[i])=='d'){
cards.push(trigger.cards[i]);
}
}
if(cards.length){
2017-02-05 11:55:50 +00:00
player.gain(cards,'gain2','log');
2017-01-18 03:00:22 +00:00
}
}
},
liuying:{
trigger:{player:'useCard'},
filter:function(event,player){
if(event.card.name!='sha') return false;
2017-02-13 17:16:14 +00:00
return game.hasPlayer(function(current){
2017-02-11 16:55:38 +00:00
return (event.targets.contains(current)==false&&current!=player&&
lib.filter.targetEnabled(event.card,player,current))
});
2017-01-18 03:00:22 +00:00
},
direct:true,
content:function(){
'step 0'
2017-02-11 16:55:38 +00:00
var list=game.filterPlayer(function(current){
return (trigger.targets.contains(current)==false&&current!=player&&
lib.filter.targetEnabled(trigger.card,player,current))
});
2017-01-18 03:00:22 +00:00
event.list=list;
'step 1'
if(event.list.length){
player.chooseTarget(get.prompt('liuying'),function(card,player,target){
return event.list.contains(target);
}).ai=function(target){
return ai.get.effect(target,trigger.card,player,player);
};
}
else{
event.finish();
}
'step 2'
if(result.bool){
event.current=result.targets[0];
event.current.judge(function(card){
if(get.color(card)=='black') return -1;
return 0;
});
event.list.remove(event.current);
player.logSkill('liuying',event.current);
}
else{
event.finish();
}
'step 3'
if(result.color=='black'){
trigger.targets.push(event.current);
game.log(event.current,'被追加为额外目标');
event.goto(1);
}
}
},
yanjia:{
enable:'phaseUse',
filter:function(event,player){
var he=player.get('he');
var num=0;
for(var i=0;i<he.length;i++){
var info=lib.card[he[i].name];
if(info.type=='equip'&&!info.nomod&&lib.inpile.contains(he[i].name)){
num++;
if(num>=2) return true;
}
}
},
filterCard:function(card){
var info=get.info(card);
return info.type=='equip'&&!info.nomod&&lib.inpile.contains(card.name);
},
selectCard:2,
position:'he',
check:function(card){
return ai.get.value(card);
},
content:function(){
var name=cards[0].name+'_'+cards[1].name;
var info1=get.info(cards[0]),info2=get.info(cards[1]);
if(!lib.card[name]){
var info={
enable:true,
type:'equip',
subtype:get.subtype(cards[0]),
vanish:true,
cardimage:info1.cardimage||cards[0].name,
filterTarget:function(card,player,target){
return target==player;
},
selectTarget:-1,
modTarget:true,
content:lib.element.content.equipCard,
legend:true,
2017-02-06 06:56:22 +00:00
source:[cards[0].name,cards[1].name],
2017-01-18 03:00:22 +00:00
onEquip:[],
onLose:[],
skills:[],
distance:{},
ai:{
order:8.9,
equipValue:10,
useful:2.5,
value:function(card,player){
var value=0;
var info=get.info(card);
if(player.get('e',info.subtype[5])&&card!=player.get('e',info.subtype[5])){
value=ai.get.value(player.get('e',info.subtype[5]),player);
}
var equipValue=info.ai.equipValue||info.ai.basic.equipValue;
if(typeof equipValue=='function') return equipValue(card,player)-value;
return equipValue-value;
},
result:{
target:function(player,target){
2017-02-17 03:25:37 +00:00
return ai.get.equipResult(player,target,name);
2017-01-18 03:00:22 +00:00
}
}
}
}
for(var i in info1.distance){
info.distance[i]=info1.distance[i];
}
for(var i in info2.distance){
if(typeof info.distance[i]=='number'){
info.distance[i]+=info2.distance[i];
}
else{
info.distance[i]=info2.distance[i];
}
}
if(info1.skills){
info.skills=info.skills.concat(info1.skills);
}
if(info2.skills){
info.skills=info.skills.concat(info2.skills);
}
if(info1.onEquip){
if(Array.isArray(info1.onEquip)){
info.onEquip=info.onEquip.concat(info1.onEquip);
}
else{
info.onEquip.push(info1.onEquip);
}
}
if(info2.onEquip){
if(Array.isArray(info2.onEquip)){
info.onEquip=info.onEquip.concat(info2.onEquip);
}
else{
info.onEquip.push(info2.onEquip);
}
}
if(info1.onLose){
if(Array.isArray(info1.onLose)){
info.onLose=info.onLose.concat(info1.onLose);
}
else{
info.onLose.push(info1.onLose);
}
}
if(info2.onLose){
if(Array.isArray(info2.onLose)){
info.onLose=info.onLose.concat(info2.onLose);
}
else{
info.onLose.push(info2.onLose);
}
}
if(info.onEquip.length==0) delete info.onEquip;
if(info.onLose.length==0) delete info.onLose;
lib.card[name]=info;
lib.translate[name]=get.translation(cards[0].name,'skill')+get.translation(cards[1].name,'skill');
var str=lib.translate[cards[0].name+'_info'];
if(str[str.length-1]=='.'||str[str.length-1]=='。'){
str=str.slice(0,str.length-1);
}
lib.translate[name+'_info']=str+''+lib.translate[cards[1].name+'_info'];
try{
game.addVideo('newcard',null,{
name:name,
translate:lib.translate[name],
info:lib.translate[name+'_info'],
card:cards[0].name,
legend:true,
});
}
catch(e){
console.log(e);
}
}
player.gain(game.createCard({name:name,suit:cards[0].suit,number:cards[0].number}),'gain2');
},
ai:{
order:9.5,
result:{
player:1
}
}
},
2016-06-08 09:05:04 +00:00
meiying:{
global:'meiying2',
globalSilent:true,
trigger:{global:'phaseEnd'},
filter:function(event,player){
return event.player!=player&&!event.player.tempSkills.meiying3&&event.player.isAlive()&&player.num('he',{color:'red'})>0;
},
direct:true,
content:function(){
"step 0"
2016-07-09 15:23:11 +00:00
var next=player.chooseToDiscard('he','魅影:是否弃置一张红色牌视为对'+get.translation(trigger.player)+'使用一张杀?');
2016-06-10 02:56:48 +00:00
next.logSkill=['meiying',trigger.player];
var eff=ai.get.effect(trigger.player,{name:'sha'},player,player);
next.ai=function(card){
if(eff>0){
return 7-ai.get.value(card);
}
return 0;
}
2016-06-08 09:05:04 +00:00
"step 1"
if(result.bool){
player.useCard({name:'sha'},trigger.player).animate=false;
}
},
ai:{
expose:0.1
}
},
meiying2:{
trigger:{player:'useCard'},
filter:function(event,player){
return _status.currentPhase==player&&event.targets&&(event.targets.length>1||event.targets[0]!=player);
},
forced:true,
popup:false,
content:function(){
player.addTempSkill('meiying3','phaseAfter');
}
},
meiying3:{},
2015-04-29 03:25:17 +00:00
jianwu:{
trigger:{player:'shaBegin'},
forced:true,
filter:function(event,player){
return get.distance(event.target,player,'attack')>1;
},
content:function(){
trigger.directHit=true;
}
},
zuizhan:{
trigger:{player:'useCard'},
popup:false,
filter:function(event,player){
if(event.card.name!='sha') return false;
2017-02-11 16:55:38 +00:00
return game.hasPlayer(function(current){
return (event.targets.contains(current)==false&&current!=player&&
lib.filter.targetEnabled(event.card,player,current))
});
2015-04-29 03:25:17 +00:00
},
content:function(){
2017-02-11 16:55:38 +00:00
var list=game.filterPlayer(function(current){
return (trigger.targets.contains(current)==false&&current!=player&&
lib.filter.targetEnabled(trigger.card,player,current))
});
2015-04-29 03:25:17 +00:00
if(list.length){
event.target=list.randomGet();
2016-07-19 07:32:04 +00:00
player.line(event.target,'green');
2015-12-08 13:54:44 +00:00
game.log(event.target,'被追加为额外目标');
2015-04-29 03:25:17 +00:00
trigger.targets.push(event.target);
player.draw();
}
}
},
2016-06-08 09:05:04 +00:00
meiying_old:{
2015-04-29 03:25:17 +00:00
trigger:{global:'phaseBefore'},
filter:function(event,player){
2015-12-22 04:07:44 +00:00
return event.player!=player&&!player.isTurnedOver()&&!player.storage.meiying;
2015-04-29 03:25:17 +00:00
},
check:function(event,player){
return ai.get.attitude(player,event.player)<0&&
((player.num('h')>player.hp&&player.num('h','lebu')==0)||get.distance(player,event.player)>1);
},
2016-09-20 05:06:35 +00:00
logTarget:'player',
2015-04-29 03:25:17 +00:00
content:function(){
"step 0"
2015-11-18 03:39:14 +00:00
player.line(trigger.player,'green');
2015-04-29 03:25:17 +00:00
player.phase();
player.storage.meiying=trigger.player;
"step 1"
if(!player.isTurnedOver()){
player.turnOver();
}
delete player.storage.meiying;
},
mod:{
targetInRange:function(card,player,target,now){
if(target==player.storage.meiying) return true;
},
},
ai:{
effect:{
target:function(card){
if(card.name=='guiyoujie') return [0,0];
}
}
}
},
xidie:{
trigger:{player:'phaseBegin'},
direct:true,
filter:function(event,player){
return player.num('h')>player.hp;
},
content:function(){
"step 0"
2016-09-20 05:06:35 +00:00
var next=player.chooseToDiscard(get.prompt('xidie'),[1,Math.min(3,player.num('h')-player.hp)]);
2015-11-21 05:30:26 +00:00
next.ai=function(card){
2015-04-29 03:25:17 +00:00
return 6-ai.get.value(card);
}
2015-11-21 05:30:26 +00:00
next.logSkill='xidie';
2015-04-29 03:25:17 +00:00
"step 1"
if(result.bool){
player.storage.xidie=result.cards.length;
}
},
group:'xidie2'
},
xidie2:{
trigger:{player:'phaseEnd'},
forced:true,
filter:function(event,player){
return player.storage.xidie>0;
},
content:function(){
player.draw(player.storage.xidie);
player.storage.xidie=0;
}
},
meihu:{
trigger:{player:'damageEnd'},
check:function(event,player){
return ai.get.attitude(player,event.source)<4;
},
filter:function(event,player){
return event.source&&event.source!=player&&event.source.num('h')>0;
},
2017-02-03 10:57:04 +00:00
logTarget:'source',
2015-04-29 03:25:17 +00:00
content:function(){
"step 0"
trigger.source.chooseCard('交给'+get.translation(player)+'一张手牌',true).ai=function(card){
return -ai.get.value(card);
};
"step 1"
if(result.bool){
2017-01-13 18:51:13 +00:00
player.gain(result.cards[0],trigger.source);
2015-04-29 03:25:17 +00:00
trigger.source.$give(1,player);
}
},
ai:{
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
2016-08-12 08:26:31 +00:00
if(player.hasSkill('jueqing')) return [1,-1.5];
2015-04-29 03:25:17 +00:00
return [1,0,0,-0.5];
}
}
}
}
},
qianhuan:{
trigger:{player:'phaseAfter'},
check:function(event,player){
return player.hp==1||player.isTurnedOver();
},
filter:function(event,player){
return player.hp<player.maxHp;
},
content:function(){
"step 0"
player.recover();
2016-01-15 08:07:09 +00:00
"step 1"
2015-04-29 03:25:17 +00:00
player.turnOver();
},
mod:{
targetEnabled:function(card,player,target){
if(target.isTurnedOver()) return false;
},
cardEnabled:function(card,player){
if(player.isTurnedOver()) return false;
}
}
},
fumo:{
trigger:{player:'damageAfter'},
check:function(event,player){
return event.source&&ai.get.attitude(player,event.source)<0;
},
filter:function(event,player){
2016-09-20 05:06:35 +00:00
return event.source&&event.source.isAlive()&&player.num('h',{color:'red'})>1||player.num('h',{color:'black'})>1;
2015-04-29 03:25:17 +00:00
},
direct:true,
content:function(){
"step 0"
2017-02-10 08:13:06 +00:00
var next=player.chooseToDiscard(get.prompt('fumo',trigger.source),2,function(card){
2015-04-29 03:25:17 +00:00
if(ui.selected.cards.length){
return get.color(card)==get.color(ui.selected.cards[0]);
}
return player.num('h',{color:get.color(card)})>1;
2017-02-10 08:13:06 +00:00
}).set('complexCard',true);
next.ai=function(card){
2015-04-29 03:25:17 +00:00
if(ai.get.damageEffect(trigger.source,player,player,'thunder')>0){
return 8-ai.get.value(card);
}
return 0;
};
2017-02-10 08:13:06 +00:00
next.logSkill=['fumo',trigger.source,'thunder'];
2015-04-29 03:25:17 +00:00
"step 1"
if(result.bool){
trigger.source.damage('thunder');
}
},
ai:{
threaten:0.8
}
},
fanyin:{
trigger:{player:'phaseEnd'},
direct:true,
content:function(){
"step 0"
2016-09-20 05:06:35 +00:00
player.chooseTarget(get.prompt('fanyin'),function(card,player,target){
2015-04-29 03:25:17 +00:00
if(player==target) return false;
if(target.isLinked()) return true;
if(target.isTurnedOver()) return true;
if(target.num('j')) return true;
if(target.hp==target.maxHp) return false;
2017-02-06 16:34:20 +00:00
return target.isLowestHp();
2015-04-29 03:25:17 +00:00
}).ai=function(target){
var num=0;
var att=ai.get.attitude(player,target);
if(att>0){
2017-02-06 16:34:20 +00:00
if(target.isLowestHp()){
2015-04-29 03:25:17 +00:00
num+=5;
}
if(target.isTurnedOver()){
num+=5;
}
if(target.num('j')){
num+=2;
}
if(target.isLinked()){
num++;
}
if(num>0){
return num+att;
}
}
return num;
}
"step 1"
if(result.bool){
event.target=result.targets[0];
player.logSkill('fanyin',event.target);
}
else{
event.finish();
}
"step 2"
if(event.target.isLinked()){
event.target.link();
}
"step 3"
if(event.target.isTurnedOver()){
event.target.turnOver();
}
"step 4"
var cards=event.target.get('j');
if(cards.length){
event.target.discard(cards);
}
"step 5"
2017-02-06 16:34:20 +00:00
if(event.target.isLowestHp()){
2015-04-29 03:25:17 +00:00
event.target.recover();
}
},
ai:{
expose:0.2,
threaten:1.3
}
},
mingkong:{
trigger:{player:'damageBegin'},
forced:true,
filter:function(event,player){
return player.num('h')==0&&event.num>=1;
},
content:function(){
if(trigger.num>=1){
trigger.num--;
}
if(trigger.source){
trigger.source.storage.mingkong=true;
trigger.source.addTempSkill('mingkong2','phaseBefore');
}
},
ai:{
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')&&target.num('h')==0){
2016-08-12 08:26:31 +00:00
if(player.hasSkill('jueqing')) return;
2015-04-29 03:25:17 +00:00
return 0.1;
}
}
}
},
},
mingkong2:{
trigger:{source:'damageEnd'},
forced:true,
popup:false,
2015-11-25 12:34:54 +00:00
audio:false,
2015-04-29 03:25:17 +00:00
filter:function(event,player){
return player.storage.mingkong?true:false;
},
content:function(){
player.draw();
player.storage.mingkong=false;
player.removeSkill('mingkong2');
}
},
yuehua:{
trigger:{player:['useCardAfter','respondAfter','discardAfter']},
frequent:true,
filter:function(event,player){
if(player==_status.currentPhase) return false;
if(event.cards){
for(var i=0;i<event.cards.length;i++){
2015-08-15 09:10:06 +00:00
if(get.color(event.cards[i])=='red'&&
event.cards[i].original!='j') return true;
2015-04-29 03:25:17 +00:00
}
}
return false;
},
content:function(){
player.draw();
},
ai:{
threaten:0.7
}
},
qinglan:{
trigger:{global:'damageBefore'},
filter:function(event,player){
return event.nature&&player.num('he')>0;
},
direct:true,
priority:-5,
content:function(){
"step 0"
2016-09-20 05:06:35 +00:00
var next=player.chooseToDiscard(get.prompt('qinglan',trigger.player),'he');
next.logSkill=['qinglan',trigger.player];
2015-11-21 05:30:26 +00:00
next.ai=function(card){
2015-04-29 03:25:17 +00:00
if(trigger.num>1||!trigger.source){
if(ai.get.attitude(player,trigger.player)>0){
return 9-ai.get.value(card);
}
return -1;
}
else if(ai.get.attitude(player,trigger.player)>0){
if(trigger.player.hp==1){
return 8-ai.get.value(card);
}
if(trigger.source.hp==trigger.source.maxHp){
return 6-ai.get.value(card);
}
}
else if(ai.get.attitude(player,trigger.source)>0&&
trigger.source.hp<trigger.source.maxHp&&trigger.num<=1&&trigger.player.hp>1){
if(get.color(card)=='red') return 5-ai.get.value(card);
}
return -1;
}
"step 1"
if(result.bool){
trigger.untrigger();
trigger.finish();
if(trigger.source){
trigger.source.recover();
}
}
else{
event.finish();
}
"step 2"
if(trigger.source){
trigger.source.draw();
}
},
ai:{
expose:0.1
}
},
fanshi:{
trigger:{player:'phaseDiscardAfter'},
forced:true,
filter:function(event,player){
return player.getStat('damage')>0;
},
check:function(event,player){
return player.hp==player.maxHp;
},
content:function(){
"step 0"
player.loseHp();
"step 1"
player.draw();
}
},
xuelu:{
unique:true,
trigger:{player:'phaseEnd'},
direct:true,
filter:function(event,player){
2016-08-10 16:45:56 +00:00
return player.maxHp>player.hp&&player.num('he',{color:'red'})>0;
2015-04-29 03:25:17 +00:00
},
content:function(){
"step 0"
player.chooseCardTarget({
position:'he',
filterTarget:function(card,player,target){
return player!=target;
},
2017-01-13 18:51:13 +00:00
filterCard:function(card,player){
return get.color(card)=='red'&&lib.filter.cardDiscardable(card,player);
2015-06-12 07:15:23 +00:00
},
2015-04-29 03:25:17 +00:00
ai1:function(card){
return 9-ai.get.value(card);
},
ai2:function(target){
return ai.get.damageEffect(target,player,player,'fire');
},
2016-09-20 05:06:35 +00:00
prompt:get.prompt('xuelu')
2015-04-29 03:25:17 +00:00
});
"step 1"
if(result.bool){
event.target=result.targets[0];
player.logSkill('xuelu',event.target,'fire');
event.num=Math.ceil((player.maxHp-player.hp)/2);
2016-01-07 09:29:44 +00:00
if(event.num>2) event.num=2;
2015-04-29 03:25:17 +00:00
player.discard(result.cards);
}
else{
event.finish();
}
"step 2"
if(event.target){
event.target.damage(event.num,'fire');
}
},
ai:{
maixie:true,
expose:0.2,
threaten:function(player,target){
if(target.hp==1) return 3;
if(target.hp==2) return 1.5;
return 0.5;
},
effect:{
target:function(card,player,target){
2015-11-12 01:12:03 +00:00
if(!target.hasFriend()) return;
2015-04-29 03:25:17 +00:00
if(get.tag(card,'damage')){
if(target.hp==target.maxHp) return [0,1];
}
if(get.tag(card,'recover')&&player.hp>=player.maxHp-1) return [0,0];
}
}
}
},
2017-01-18 03:00:22 +00:00
xiuhua_old:{
2015-05-01 13:51:00 +00:00
changeSeat:true,
2015-04-29 03:25:17 +00:00
trigger:{player:'shaHit'},
filter:function(event,player){
return event.target!=player.previous;
},
content:function(){
game.swapSeat(trigger.target,player,true,true);
}
},
shahun:{
enable:'chooseToUse',
2015-12-30 04:00:49 +00:00
skillAnimation:true,
animationColor:'fire',
2015-04-29 03:25:17 +00:00
filter:function(event,player){
return !player.storage.shahun&&player.hp<=0;
},
content:function(){
"step 0"
var cards=player.get('hej');
player.discard(cards);
event.num=Math.max(3,cards.length);
"step 1"
if(player.isLinked()) player.link();
"step 2"
if(player.isTurnedOver()) player.turnOver();
"step 3"
2015-06-16 13:24:35 +00:00
player.draw(3);
2015-04-29 03:25:17 +00:00
"step 4"
player.recover(1-player.hp);
player.removeSkill('fanshi');
player.addSkill('juejing');
player.storage.shahun=3;
player.markSkill('shahun');
2015-11-04 01:59:00 +00:00
game.addVideo('storage',player,['shahun',player.storage.shahun]);
2015-04-29 03:25:17 +00:00
},
group:'shahun2',
intro:{
content:'turn'
},
ai:{
save:true,
2015-06-27 16:21:25 +00:00
skillTagFilter:function(player){
if(player.storage.shahun) return false;
if(player.hp>0) return false;
},
2015-04-29 03:25:17 +00:00
result:{
player:3
}
}
},
shahun2:{
trigger:{player:'phaseAfter'},
forced:true,
filter:function(event,player){
return player.storage.shahun?true:false;
},
content:function(){
if(player.storage.shahun>1){
player.storage.shahun--;
2015-11-04 01:59:00 +00:00
game.addVideo('storage',player,['shahun',player.storage.shahun]);
2015-04-29 03:25:17 +00:00
}
else{
player.die();
}
}
},
2017-01-18 03:00:22 +00:00
yanjia_old:{
2015-04-29 03:25:17 +00:00
enable:'chooseToUse',
filter:function(event,player){
return player.num('he',{type:'equip'})>0;
},
filterCard:function(card){
return get.type(card)=='equip';
},
position:'he',
viewAs:{name:'wuzhong'},
prompt:'将一张装备牌当无中生有使用',
check:function(card){
var player=_status.currentPhase;
if(player.num('he',{subtype:get.subtype(card)})>1){
return 11-ai.get.equipValue(card);
}
if(player.num('h')<player.hp){
return 6-ai.get.value(card);
}
return 2-ai.get.equipValue(card);
},
ai:{
order:9,
threaten:1.1
}
},
jizhan:{
enable:'phaseUse',
usable:1,
2015-05-01 13:51:00 +00:00
changeSeat:true,
2015-04-29 03:25:17 +00:00
filterTarget:function(card,player,target){
return player!=target&&player.next!=target&&player.canUse('sha',target,false);
},
2015-06-12 05:35:29 +00:00
filter:function(event,player){
var min=Math.max(1,player.maxHp-player.hp);
return lib.filter.filterCard({name:'sha'},player);
},
2015-04-29 03:25:17 +00:00
content:function(){
game.swapSeat(player,target,true,true);
2016-07-01 01:31:02 +00:00
player.useCard({name:'sha'},target,false);
2015-04-29 03:25:17 +00:00
},
ai:{
result:{
target:function(player,target){
return ai.get.effect(target,{name:'sha'},player,target);
},
},
order:4,
}
},
qianjun:{
trigger:{player:'useCard'},
direct:true,
filter:function(event,player){
if(event.card.name!='sha') return false;
if(event.targets.length!=1) return false;
2015-12-03 16:28:06 +00:00
if(!player.num('he')) return false;
2015-04-29 03:25:17 +00:00
var target=event.targets[0];
2017-02-11 16:55:38 +00:00
return game.hasPlayer(function(current){
return player!=current&&target!=current&&get.distance(target,current)<=1;
});
2015-04-29 03:25:17 +00:00
},
content:function(){
"step 0"
2017-02-11 16:55:38 +00:00
event.targets=game.filterPlayer(function(current){
var target=trigger.targets[0];
return player!=current&&target!=current&&get.distance(target,current)<=1;
});
2015-04-29 03:25:17 +00:00
var num=0;
for(var i=0;i<event.targets.length;i++){
num+=ai.get.effect(event.targets[i],{name:'sha'},player,player);
}
2016-09-20 05:06:35 +00:00
var next=player.chooseToDiscard(get.prompt('qianjun',event.targets),'he');
2015-11-21 05:30:26 +00:00
next.logSkill=['qianjun',event.targets];
next.ai=function(card){
2015-04-29 03:25:17 +00:00
if(num<=0) return -1;
return 7-ai.get.value(card);
}
"step 1"
if(result.bool){
for(var i=0;i<targets.length;i++){
trigger.targets.add(targets[i]);
2015-10-13 11:15:02 +00:00
// targets[i].classList.add('selected');
2015-04-29 03:25:17 +00:00
}
}
}
},
xuanning:{
group:['xuanning1','xuanning2'],
intro:{
content:'mark'
},
ai:{
threaten:0.9
}
},
xuanning1:{
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.num('h',{type:'basic'})>0&&player.storage.xuanning!=3;
},
filterCard:function(card){
return get.type(card)=='basic';
},
check:function(card){
return 7-ai.get.useful(card);
},
content:function(){
player.storage.xuanning=3;
player.markSkill('xuanning');
2015-11-04 01:59:00 +00:00
game.addVideo('storage',player,['xuanning',player.storage.xuanning]);
2015-04-29 03:25:17 +00:00
},
ai:{
result:{
player:function(player){
var num=player.num('h');
if(num>player.hp+1) return 1;
if(player.storage.xuanning>=2) return 0;
if(num>player.hp) return 1
if(player.storage.xuanning>=1) return 0;
return 1;
},
},
order:5
}
},
xuanning2:{
trigger:{player:'damageEnd'},
forced:true,
filter:function(event,player){
if(player.storage.xuanning){
return (event.source&&event.source.num('he')>0);
}
return false;
},
2017-02-11 12:20:30 +00:00
logTarget:'source',
2015-04-29 03:25:17 +00:00
content:function(){
2017-02-11 12:20:30 +00:00
var he=trigger.source.get('he');
if(he.length){
trigger.source.discard(he.randomGet());
}
2015-04-29 03:25:17 +00:00
player.storage.xuanning--;
if(!player.storage.xuanning){
player.unmarkSkill('xuanning');
}
2015-11-04 01:59:00 +00:00
game.addVideo('storage',player,['xuanning',player.storage.xuanning]);
2015-04-29 03:25:17 +00:00
}
},
liuguang:{
trigger:{player:'phaseBegin'},
direct:true,
filter:function(event,player){
if(player.storage.xuanning) return true;
return false;
},
content:function(){
"step 0"
player.chooseTarget(function(card,player,target){
return player!=target;
2016-09-20 05:06:35 +00:00
},get.prompt('liuguang'),[1,3]).ai=function(target){
2015-04-29 03:25:17 +00:00
return ai.get.damageEffect(target,player,player);
}
"step 1"
if(result.bool){
player.storage.xuanning--;
if(!player.storage.xuanning){
player.unmarkSkill('xuanning');
}
event.targets=result.targets.slice(0);
event.targets.sort(lib.sort.seat);
player.logSkill('liuguang',result.targets);
2015-11-04 01:59:00 +00:00
game.addVideo('storage',player,['xuanning',player.storage.xuanning]);
2015-04-29 03:25:17 +00:00
}
else{
event.finish();
}
"step 2"
if(event.targets.length){
var target=event.targets.shift();
var next=target.chooseToDiscard('流光:弃置一张牌或受到一点伤害','he');
next.ai=function(card){
if(ai.get.damageEffect(_status.event.player,player,_status.event.player)>=0) return -1;
if(_status.event.player.hp==1) return 9-ai.get.value(card);
return 8-ai.get.value(card);
};
next.autochoose=function(){
return this.player.num('he')==0;
};
event.current=target;
}
else{
event.finish();
}
"step 3"
if(result.bool&&result.cards&&result.cards.length){
event.goto(2);
}
else{
event.current.damage();
}
},
ai:{
2016-01-24 08:34:21 +00:00
expose:0.2,
threaten:1.3
2015-04-29 03:25:17 +00:00
}
},
yangming:{
enable:'phaseUse',
filter:function(event,player){
if(player.storage.yangming2>0) return false;
return player.num('h',{color:'red'})>0;
},
filterCard:function(card){
return get.color(card)=='red';
},
content:function(){
player.storage.yangming2=2;
player.addSkill('yangming2');
2015-11-04 01:59:00 +00:00
game.addVideo('storage',player,['yangming2',player.storage.yangming2]);
2015-04-29 03:25:17 +00:00
},
check:function(card){
return 6-ai.get.value(card);
},
ai:{
result:{
2015-11-05 02:34:35 +00:00
player:function(player){
if(player.num('h')<=player.hp&&player.hp==player.maxHp){
return 0;
}
return 1;
}
2015-04-29 03:25:17 +00:00
},
2016-01-24 08:34:21 +00:00
order:6,
threaten:1.3
2015-04-29 03:25:17 +00:00
}
},
yangming2:{
trigger:{player:'phaseUseEnd'},
direct:true,
mark:true,
content:function(){
"step 0"
player.storage.yangming2--;
2015-11-04 01:59:00 +00:00
game.addVideo('storage',player,['yangming2',player.storage.yangming2]);
2015-04-29 03:25:17 +00:00
if(player.storage.yangming2>0){
event.finish();
}
else{
player.removeSkill('yangming2');
2017-02-11 16:55:38 +00:00
var num=game.countPlayer(function(current){
return get.distance(player,current)<=1&&current.isDamaged();
});
2015-04-29 03:25:17 +00:00
if(num==0){
event.finish();
}
else{
player.chooseTarget(function(card,player,target){
return get.distance(player,target)<=1&&target.hp<target.maxHp;
},'请选择目标回复体力',[1,num]);
}
}
"step 1"
if(result.bool){
2017-01-15 02:06:03 +00:00
player.logSkill('yangming',result.targets);
2015-04-29 03:25:17 +00:00
for(var i=0;i<result.targets.length;i++){
result.targets[i].recover();
}
}
},
intro:{
content:'turn'
},
},
zhaolu:{
unique:true,
mark:true,
check:function(){
return false;
},
forbid:['infinity'],
init:function(player){
player.storage.zhaolu=Math.min(5,game.players.length);
2015-11-04 01:59:00 +00:00
game.addVideo('storage',player,['zhaolu',player.storage.zhaolu]);
2015-04-29 03:25:17 +00:00
},
trigger:{player:['phaseEnd','damageEnd'],global:'dieAfter'},
forced:true,
content:function(){
var num=2;
if(typeof trigger.num=='number') num=2*trigger.num;
if(trigger.name=='phase') num=1;
if(trigger.name=='die') num=2;
player.storage.zhaolu-=num;
if(player.storage.zhaolu<=0){
2015-04-29 10:02:31 +00:00
player.loseMaxHp(true);
2015-04-29 03:25:17 +00:00
player.storage.zhaolu=Math.min(5,game.players.length);
}
2015-11-04 01:59:00 +00:00
game.addVideo('storage',player,['zhaolu',player.storage.zhaolu]);
2015-04-29 03:25:17 +00:00
},
intro:{
content:'turn'
},
ai:{
mingzhi:false,
threaten:0.8
},
},
jiehuo:{
unique:true,
forbid:['infinity'],
2015-12-30 04:00:49 +00:00
skillAnimation:true,
animationColor:'fire',
2015-04-29 03:25:17 +00:00
init:function(player){
player.storage.jiehuo=false;
},
enable:'phaseUse',
filter:function(event,player){
//if(player.maxHp<=1) return false;
return !player.storage.jiehuo
},
intro:{
content:'limited'
},
2015-11-04 01:59:00 +00:00
// mark:true,
2015-04-29 03:25:17 +00:00
line:'fire',
filterTarget:function(card,player,target){
return player!=target;
},
selectTarget:-1,
content:function(){
if(!player.storage.jiehuo2){
2015-08-15 09:10:06 +00:00
player.storage.jiehuo2=player.maxHp;
player.addSkill('jiehuo2');
2015-04-29 03:25:17 +00:00
}
2015-11-04 01:59:00 +00:00
player.storage.jiehuo=true;
2015-08-15 09:10:06 +00:00
target.damage(Math.min(target.hp,player.storage.jiehuo2),'fire');
}
},
jiehuo2:{
trigger:{player:'phaseUseEnd'},
forced:true,
popup:false,
content:function(){
player.die();
2015-04-29 03:25:17 +00:00
}
},
yuling:{
unique:true,
locked:true,
group:['yuling1','yuling2','yuling3','yuling4','yuling5','yuling6'],
intro:{
content:'time'
},
ai:{
2015-12-06 15:23:47 +00:00
noh:true,
2015-04-29 03:25:17 +00:00
threaten:0.8,
effect:{
target:function(card,player,target){
if(card.name=='bingliang') return 0;
if(card.name=='lebu') return 1.5;
if(card.name=='guohe'){
if(!target.num('e')) return 0;
return 0.5;
}
if(card.name=='liuxinghuoyu') return 0;
}
}
}
},
yuling1:{
trigger:{player:['phaseDrawBefore','phaseDiscardBefore']},
priority:10,
forced:true,
popup:false,
check:function(){
return false;
},
content:function(){
trigger.untrigger();
trigger.finish();
}
},
yuling2:{
2015-11-07 00:01:37 +00:00
trigger:{player:['loseEnd','drawEnd'],global:'gameDrawAfter'},
2015-04-29 03:25:17 +00:00
check:function(event,player){
return player.num('h')<2;
},
priority:10,
forced:true,
filter:function(event,player){
return player.num('h')<5;
},
content:function(){
player.draw(5-player.num('h'));
}
},
yuling3:{
trigger:{player:'gainEnd'},
priority:10,
forced:true,
filter:function(event,player){
return player.num('h')>5;
},
check:function(event,player){
return player.num('h')<2;
},
content:function(){
player.chooseToDiscard(true,player.num('h')-5);
}
},
yuling4:{
mod:{
cardEnabled:function(card,player){
if(_status.currentPhase!=player) return;
if(get.cardCount(true,player)>=player.maxHp+2) return false;
}
}
},
yuling5:{
trigger:{player:['useCardAfter','phaseBegin']},
forced:true,
popup:false,
silent:true,
content:function(){
player.storage.yuling=player.maxHp+2-get.cardCount(true,player);
}
},
yuling6:{
trigger:{player:'phaseAfter'},
forced:true,
popup:false,
silent:true,
content:function(){
delete player.storage.yuling;
}
},
},
translate:{
gjqt_bailitusu:'百里屠苏',
gjqt_fengqingxue:'风晴雪',
gjqt_fanglansheng:'方兰生',
gjqt_xiangling:'襄铃',
gjqt_yinqianshang:'尹千觞',
gjqt_hongyu:'红玉',
2017-01-22 16:20:59 +00:00
gjqt_ouyangshaogong:'欧阳少恭',
gjqt_xunfang:'巽芳',
2015-04-29 03:25:17 +00:00
gjqt_yuewuyi:'乐无异',
gjqt_wenrenyu:'闻人羽',
gjqt_xiayize:'夏夷则',
gjqt_aruan:'阿阮',
2017-02-05 15:22:29 +00:00
zuiji:'醉饮',
2017-02-05 16:01:15 +00:00
zuiji_info:'出牌阶段,你可以将一张手牌或装备牌当作酒使用',
2017-01-29 13:36:29 +00:00
manwu:'曼舞',
2017-02-06 03:27:52 +00:00
manwu_info:'在一名角色的结束阶段,若其手牌数为全场最少或之一,你可以令其摸一张牌',
2017-01-22 16:20:59 +00:00
xfanghua:'芳华',
2017-01-29 13:36:29 +00:00
xfanghua_info:'在你成为红色牌的目标后,你可以回复一点体力',
2017-01-22 16:20:59 +00:00
yunyin:'云音',
2017-02-06 03:27:52 +00:00
yunyin_info:'结束阶段,你可以弃置一张与本回合使用过的卡牌花色均不相同的手牌,视为使用一张基本牌或通常锦囊牌',
2017-01-22 16:20:59 +00:00
shishui:'逝水',
shishui_info:'锁定技,每当你使用一张红色牌,你令目标流失一点体力',
duhun:'渡魂',
duhun_info:'濒死阶段,你可以与一名体力值不超过你的体力上限的角色拼点,若你赢,你失去一点体力上限并与该角色交换体力值;若你没赢,你立即死亡',
2017-01-18 08:58:53 +00:00
chizhen:'驰阵',
2017-01-21 12:42:50 +00:00
chizhen_info:'出牌阶段开始时你可以摸X张牌并弃置X张牌若你弃置了杀可以视为使用一张决斗X为你已损失的体力值且至少为1',
2015-04-29 03:25:17 +00:00
xidie:'戏蝶',
xidie2:'戏蝶',
2017-02-06 03:27:52 +00:00
xidie_info:'准备阶段若你的手牌数大于体力值可以弃置至多X张牌并于结束阶段摸等量的牌X为你的体力值与手牌数之差且不超过3',
2015-04-29 03:25:17 +00:00
meihu:'魅狐',
meihu2:'魅狐',
meihu_info:'当你受到伤害后,可令伤害来源交给你一张手牌',
jianwu:'剑舞',
2016-06-08 09:05:04 +00:00
jianwu_info:'锁定技,攻击范围不含你的角色无法闪避你的杀',
2015-04-29 03:25:17 +00:00
meiying:'魅影',
2016-06-08 09:05:04 +00:00
meiying_info:'一名其他角色的回合结束时,若其未于此回合内使用过指定另一名角色为目标的牌,你可以弃置一张红色牌视为对其使用一张杀',
2017-02-05 15:22:29 +00:00
zuizhan:'乱斩',
2015-04-29 03:25:17 +00:00
zuizhan_info:'每当你使用一张杀,可以摸一张牌,然后此杀随机增加一个额外目标',
qianhuan:'千幻',
2016-01-15 08:07:09 +00:00
qianhuan_info:'回合结束后,若你已受伤,你可以回复一点体力并将武将牌翻面。若你的武将牌背面朝上,你不能使用卡牌,也不能成为卡牌的目标',
2015-04-29 03:25:17 +00:00
fumo:'伏魔',
fumo_info:'每当你受到一次伤害,可以弃置两张颜色相同的手牌并对伤害来源造成一点雷电伤害',
fanyin:'梵音',
2017-02-06 03:27:52 +00:00
fanyin_info:'结束阶段,你可以令其他一名角色复原武将牌。若其体力值是全场最少的之一,其回复一点体力。',
2015-04-29 03:25:17 +00:00
mingkong:'明空',
mingkong_info:'锁定技,若你没有手牌,你受到的伤害-1然后伤害来源摸一张牌',
qinglan:'晴岚',
qinglan_info:'每当有一名角色即将受到属性伤害,你可以弃置一张牌令其防止此伤害,然后伤害来源摸一张牌并回复一点体力',
yuehua:'月华',
yuehua_info:'每当你于回合外使用、打出或弃置红色牌,你可以摸一张牌',
xuelu:'血戮',
2017-02-06 03:27:52 +00:00
xuelu_info:'结束阶段你可以弃置一张红色牌并对一名其他角色造成X点火焰伤害X为你已损失体力值的一半向上取整且不超过2',
2015-04-29 03:25:17 +00:00
fanshi:'反噬',
2017-01-21 12:42:50 +00:00
fanshi_info:'锁定技,弃牌阶段结束时,若你本回合内造成过伤害,你流失一点体力并摸一张牌',
2015-04-29 03:25:17 +00:00
shahun:'煞魂',
shahun2:'煞魂',
2017-02-06 03:27:52 +00:00
shahun_info:'限定技濒死阶段你可以复原武将牌弃置所有牌并摸三张牌然后将体力回复至1若如此做你失去技能【反噬】获得技能【绝境】并于三回合后立即死亡',
2015-04-29 03:25:17 +00:00
2017-01-18 03:00:22 +00:00
yanjia:'偃甲',
yanjia_info:'出牌阶段,你可以将两张装备牌合成为一张强化装备',
2015-04-29 03:25:17 +00:00
xiuhua:'袖花',
2017-02-03 10:57:04 +00:00
xiuhua_info:'每当一件其他角色的装备因被替换或弃置进入弃牌堆,你可以获得之',
2015-04-29 03:25:17 +00:00
liuying:'流影',
2017-01-18 03:00:22 +00:00
liuying_info:'每当你使用一张杀,你可以指定一名不是此杀目标的角色并进行一次判定,若结果是黑色,将其追加为杀的额外目标并可以再次判定',
2015-04-29 03:25:17 +00:00
boyun:'拨云',
boyun1:'拨云',
boyun2:'拨云',
boyun_info:'在你的回合内,你可以弃置一张装备牌,并展示牌堆顶的一张牌,若其为装备牌,你须将其交给任意一张角色并对其造成一点伤害,否则你摸一张牌',
jizhan:'疾战',
2016-07-01 01:31:02 +00:00
jizhan_info:'出牌阶段限一次,你可以将移动到任意一名角色的前一位,视为对其使用了一张不计入出杀次数的杀',
2015-04-29 03:25:17 +00:00
qianjun:'千军',
2015-12-03 16:29:15 +00:00
qianjun_info:'每当你使用一张杀你可以弃置一张牌令距离目标1以内的所有角色成为额外目标',
2015-04-29 03:25:17 +00:00
xuanning:'玄凝',
xuanning1:'玄凝',
xuanning2:'玄凝',
liuguang:'流光',
yangming:'养命',
yangming2:'养命',
2017-02-11 12:20:30 +00:00
xuanning_info:'出牌阶段你可以弃置一基本牌获得至多3个玄凝标记。当你受到伤害时你失去一枚玄凝标记伤害来源随机弃置一张牌',
2017-02-06 03:27:52 +00:00
liuguang_info:'准备阶段,若你有玄凝标记,你可以弃置一枚玄凝标记,选择至多三名角色依次令其选择一项:弃置一张牌,或受到一点伤害,并终止流光结算',
2015-04-29 03:25:17 +00:00
yangming_info:'出牌阶段你可以弃置一张红色牌并在下个出牌阶段结束时令距离1以内的任意名角色回复一点体力在此之前不可再次发动',
zhaolu:'朝露',
jiehuo:'劫火',
yuling:'御灵',
yuling1:'御灵',
yuling2:'御灵',
yuling3:'御灵',
yuling4:'御灵',
zhaolu_info:'锁定技每隔X回合你流失一点体力上限每当你受到一点伤害或有人死亡视为减少两个回合X为现存角色数且至多为5',
2015-08-15 09:10:06 +00:00
jiehuo_info:'限定技出牌阶段你可以令所有其他角色受到X点火焰伤害并在此阶段结束后死亡X为你的体力上限且不超过该角色的当前体力值',
2015-04-29 03:25:17 +00:00
yuling_info:'锁定技你没有摸牌和弃牌阶段你的手牌数始终为5你在一个出牌阶段最多使用X+2张牌X为你的体力上限',
},
}