Merge pull request #623 from mengxinzxz/PR-Branch

bugfix+配音修正
This commit is contained in:
Spmario233 2023-11-11 23:39:29 +08:00 committed by GitHub
commit c9df58c534
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
80 changed files with 277 additions and 240 deletions

BIN
audio/die/clan_xunyou.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/die/xin_fazheng.mp3 Normal file

Binary file not shown.

BIN
audio/die/xin_xushu.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/chongzhen1.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/chongzhen2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/clanbaichu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/clanbaichu2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/lianhuan1.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/lianhuan2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/xinenyuan1.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/yongsi1.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/yongsi2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -62,7 +62,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_guanyu:['male','shu',4,['wusheng','yijue']], old_guanyu:['male','shu',4,['wusheng','yijue']],
old_caochun:['male','wei',4,['shanjia']], old_caochun:['male','wei',4,['shanjia']],
masu:['male','shu',3,['xinzhan','huilei']], masu:['male','shu',3,['xinzhan','huilei']],
xushu:['male','shu',3,['xswuyan','jujian'],['border:wei']], xushu:['male','shu',3,['wuyan','jujian'],['border:wei']],
liru:['male','qun',3,['juece','mieji','fencheng']], liru:['male','qun',3,['juece','mieji','fencheng']],
xin_yujin:['male','wei',4,['jieyue']], xin_yujin:['male','wei',4,['jieyue']],
//lusu:['male','wu',3,['haoshi','dimeng']], //lusu:['male','wu',3,['haoshi','dimeng']],

View File

@ -11388,12 +11388,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
check:function (card){return 8-get.value(card)}, check:function (card){return 8-get.value(card)},
}, },
reshuangxiong:{ reshuangxiong:{
audio:"shuangxiong",
audioname:['re_yanwen'],
group:['reshuangxiong1',"reshuangxiong2"],
},
reshuangxiong1:{
audio:"shuangxiong1",
audioname:['re_yanwen'],
trigger:{ trigger:{
player:"phaseDrawBegin1", player:"phaseDrawBegin1",
}, },
group:"reshuangxiong2",
audio:"shuangxiong",
audioname:['re_yanwen'],
check:function (event,player){ check:function (event,player){
if(player.countCards('h')>player.hp) return true; if(player.countCards('h')>player.hp) return true;
if(player.countCards('h')>3) return true; if(player.countCards('h')>3) return true;
@ -11402,7 +11406,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){ filter:function(event,player){
return !event.numFixed; return !event.numFixed;
}, },
content:function (){ prompt2:function(){
return '放弃摸牌,然后展示牌堆顶的两张牌并选择获得其中的一张。本回合内可以将与此牌颜色不同的一张手牌当做【决斗】使用';
},
content:function(){
"step 0" "step 0"
trigger.changeToZero(); trigger.changeToZero();
event.cards=get.cards(2); event.cards=get.cards(2);
@ -11450,10 +11457,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var card2=event.card2; var card2=event.card2;
player.gain(card2,'gain2'); player.gain(card2,'gain2');
player.addTempSkill('shuangxiong2'); player.addTempSkill('shuangxiong2');
player.storage.shuangxiong=get.color(card2); player.markAuto('shuangxiong2',[get.color(card2,false)]);
}, },
}, },
"reshuangxiong2":{ reshuangxiong2:{
trigger:{ trigger:{
player:"damageEnd", player:"damageEnd",
}, },
@ -14790,9 +14797,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rekanpo:"看破", rekanpo:"看破",
rekanpo_info:"你可以将一张黑色牌当作【无懈可击】使用。", rekanpo_info:"你可以将一张黑色牌当作【无懈可击】使用。",
reshuangxiong:"双雄", reshuangxiong:"双雄",
"reshuangxiong_info":"摸牌阶段,你可以放弃摸牌。若如此做,你展示牌堆顶的两张牌并选择获得其中的一张。然后,你本回合内可以将与此牌颜色不同的一张手牌当做【决斗】使用。当你受到【决斗】造成的伤害时,你可以获得对方于此决斗中打出的所有【杀】。", reshuangxiong1:"双雄",
"reshuangxiong2":"双雄", reshuangxiong2:"双雄",
"reshuangxiong2_info":"", reshuangxiong_info:"摸牌阶段,你可以放弃摸牌。若如此做,你展示牌堆顶的两张牌并选择获得其中的一张。然后,你本回合内可以将与此牌颜色不同的一张手牌当做【决斗】使用。当你受到【决斗】造成的伤害时,你可以获得对方于此决斗中打出的所有【杀】。",
reguanxing:'观星', reguanxing:'观星',
reguanxing_info:'准备阶段你可以观看牌堆顶的五张牌存活角色小于4时改为三张并将其以任意顺序置于牌堆项或牌堆底若你将〖观星〗的牌都放在了牌堆底则你可以在结束阶段再次发动〖观星〗。', reguanxing_info:'准备阶段你可以观看牌堆顶的五张牌存活角色小于4时改为三张并将其以任意顺序置于牌堆项或牌堆底若你将〖观星〗的牌都放在了牌堆底则你可以在结束阶段再次发动〖观星〗。',

View File

@ -27,7 +27,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
// yuji:['male','qun',3,['guhuo']], // yuji:['male','qun',3,['guhuo']],
// xin_yuji:['male','qun',3,['guhuo']], // xin_yuji:['male','qun',3,['guhuo']],
sp_zhugeliang:['male','shu',3,['huoji','bazhen','kanpo']], sp_zhugeliang:['male','shu',3,['bazhen','huoji','kanpo']],
pangtong:['male','shu',3,['lianhuan','oldniepan']], pangtong:['male','shu',3,['lianhuan','oldniepan']],
xunyu:['male','wei',3,['quhu','jieming'],['clan:颍川荀氏']], xunyu:['male','wei',3,['quhu','jieming'],['clan:颍川荀氏']],
dianwei:['male','wei',4,['qiangxix']], dianwei:['male','wei',4,['qiangxix']],
@ -143,7 +143,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skill:{ skill:{
//庞统写法修改 //庞统写法修改
lianhuan:{ lianhuan:{
audio:'lianhuan1', audio:2,
hiddenCard:(player,name)=>{ hiddenCard:(player,name)=>{
return name=='tiesuo'&&player.hasCard(card=>get.suit(card)=='club','sh'); return name=='tiesuo'&&player.hasCard(card=>get.suit(card)=='club','sh');
}, },
@ -215,8 +215,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.recast(cards); player.recast(cards);
}, },
}, },
lianhuan1:{audio:2},
lianhuan2:{audio:2},
//新杀小加强 陈到 //新杀小加强 陈到
dcwanglie:{ dcwanglie:{
audio:'drlt_wanglie', audio:'drlt_wanglie',
@ -6024,6 +6022,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
charlotte:true, charlotte:true,
}, },
shuangxiong:{ shuangxiong:{
audio:2,
audioname:['re_yanwen'],
group:'shuangxiong1',
},
shuangxiong1:{
audio:true, audio:true,
audioname:['re_yanwen'], audioname:['re_yanwen'],
trigger:{player:'phaseDrawBegin1'}, trigger:{player:'phaseDrawBegin1'},
@ -6036,39 +6039,53 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return !event.numFixed; return !event.numFixed;
}, },
preHidden:true, preHidden:true,
prompt2:()=>'进行一次判定,本回合可以将一张与此牌颜色不同的手牌当作【决斗】使用',
content:function(){ content:function(){
player.judge().set('callback',lib.skill.shuangxiong.callback); player.judge().set('callback',lib.skill.shuangxiong1.callback);
trigger.changeToZero(); trigger.changeToZero();
}, },
callback:function(){ callback:function(){
player.gain(card,'gain2'); player.gain(card,'gain2');
player.addTempSkill('shuangxiong2'); player.addTempSkill('shuangxiong2');
player.storage.shuangxiong=event.judgeResult.color; player.markAuto('shuangxiong2',[event.judgeResult.color]);
}, },
}, },
shuangxiong2:{ shuangxiong2:{
charlotte:true,
onremove:true,
audio:true, audio:true,
audioname:['re_yanwen'], audioname:['re_yanwen'],
enable:'chooseToUse', enable:'chooseToUse',
prompt:function(){
var player=_status.event.player;
var str='将一张'+(player.storage.shuangxiong!='red'?'红':'黑')+'色手牌当做【决斗】使用';
return str;
},
viewAs:{name:'juedou'}, viewAs:{name:'juedou'},
position:'hs', position:'hs',
onremove:true, viewAsFilter:function(player){
return player.hasCard(card=>lib.skill.shuangxiong2.filterCard(card,player),'hs');
},
filterCard:function(card,player){ filterCard:function(card,player){
return get.color(card)!=player.storage.shuangxiong; 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;i<colors.length;i++){
if(i>0) str+='或';
str+='不为';
str+=get.translation(colors[i]);
}
str+='的牌当做【决斗】使用';
return str;
}, },
check:function(card){ check:function(card){
return 8-get.value(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:{ ai:{order:7},
basic:{
order:10
}
}
}, },
luanji:{ luanji:{
audio:2, audio:2,
@ -8073,6 +8090,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qiangxi:'强袭', qiangxi:'强袭',
tianyi:'天义', tianyi:'天义',
shuangxiong:'双雄', shuangxiong:'双雄',
shuangxiong1:'双雄',
shuangxiong2:'双雄', shuangxiong2:'双雄',
luanji:'乱击', luanji:'乱击',
xueyi:'血裔', xueyi:'血裔',

View File

@ -1469,15 +1469,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'useCard1'}, trigger:{player:'useCard1'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
if(event.card.name!='sha'||!event.cards||event.cards.length!=1) return false; if(event.card.name!='sha'||!event.cards||!event.cards.length) return false;
var evt=event.getParent('phaseUse'); var evt=event.getParent('phaseUse');
return evt&&evt.player==player&&player.getHistory('useCard',function(evt2){ return evt&&evt.player==player&&player.getHistory('useCard',function(evt2){
return evt2.card.name=='sha'&&evt.cards&&evt.cards.length==1&&evt2.getParent('phaseUse')==evt; return evt2.card.name=='sha'&&evt2.cards&&evt2.cards.length&&evt2.getParent('phaseUse')==evt;
}).indexOf(event)==0; }).indexOf(event)==0;
}, },
content:function(){ content:function(){
game.log(player,'将',trigger.card,'的花色改为','#y♦'); game.log(player,'将',trigger.card,'的花色改为','#y♦');
trigger.card.suit='diamond'; trigger.card.suit='diamond';
trigger.card.color='red';
}, },
group:'liubing_gain', group:'liubing_gain',
subSkill:{ subSkill:{
@ -6471,7 +6472,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
heji:'合击', heji:'合击',
heji_info:'当有角色使用的【决斗】或红色【杀】结算完成后若此牌对应的目标数为1则你可以对相同的目标使用一张【杀】或【决斗】无距离和次数限制。若你以此法使用的牌不为转化牌则你从牌堆中随机获得一张红色牌。', heji_info:'当有角色使用的【决斗】或红色【杀】结算完成后若此牌对应的目标数为1则你可以对相同的目标使用一张【杀】或【决斗】无距离和次数限制。若你以此法使用的牌不为转化牌则你从牌堆中随机获得一张红色牌。',
liubing:'流兵', liubing:'流兵',
liubing_info:'锁定技。①你于出牌阶段使用的第一张有唯一对应实体牌的【杀】的花色视为♦。②其他角色于其出牌阶段内使用的非转化黑色杀结算结束后,若此【杀】未造成伤害,则你获得之。', liubing_info:'锁定技。①你于出牌阶段使用的第一张非虚拟【杀】的花色视为♦。②其他角色于其出牌阶段内使用的非转化黑色杀结算结束后,若此【杀】未造成伤害,则你获得之。',
sp_mifuren:'手杀糜夫人', sp_mifuren:'手杀糜夫人',
spcunsi:'存嗣', spcunsi:'存嗣',
spcunsi2:'存嗣', spcunsi2:'存嗣',

View File

@ -749,7 +749,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!i) continue; if(!i) continue;
str+='<br>'; str+='<br>';
str+=get.translation(target)+'的下个结束阶段,其可令你获得其本回合使用的最后一张牌对应的所有位于弃牌堆的实体牌'; str+=get.translation(target)+'的下个结束阶段,其可令你获得其本回合使用的最后一张牌对应的所有位于弃牌堆的实体牌';
str+=',然后若此牌名为'+get.translation(player.storage.ollianju_effect[i])+'则你失去1点体力'; str+=',然后若此牌名为'+get.translation(player.storage.ollianju_effect[i])+'则你失去1点体力,否则你可以视为使用'+get.translation(player.storage.ollianju_effect[i]);
} }
} }
return str; return str;
@ -779,10 +779,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.player.chooseBool(get.prompt('ollianju',player),'令'+get.translation(player)+'获得'+get.translation(evt.cards.filterInD('d'))+(event.list.contains(evt.card.name)?',然后'+get.translation(player)+'失去1点体力':'')).set('choice',get.attitude(trigger.player,player)>0&&(!event.list.contains(evt.card.name)||player.getHp()>1)); trigger.player.chooseBool(get.prompt('ollianju',player),'令'+get.translation(player)+'获得'+get.translation(evt.cards.filterInD('d'))+(event.list.contains(evt.card.name)?',然后'+get.translation(player)+'失去1点体力':'')).set('choice',get.attitude(trigger.player,player)>0&&(!event.list.contains(evt.card.name)||player.getHp()>1));
'step 2' 'step 2'
if(result.bool){ if(result.bool){
var evt=event.evt; var evt=event.evt,cards=evt.cards.filterInD('d');
trigger.player.line(player); trigger.player.line(player);
player.gain(evt.cards.filterInD('d'),'gain2'); player.gain(cards,'gain2');
if(event.list.contains(evt.card.name)) player.loseHp(); if(event.list.contains(evt.card.name)) player.loseHp();
else{
var card={
name:evt.card.name,
isCard:true,
};
if(player.hasUseTarget(card)) player.chooseUseTarget(card,false);
}
} }
}, },
}, },
@ -797,13 +804,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){ filter:function(event,player){
var name=player.storage.ollianju; var name=player.storage.ollianju;
if(!name) return false; if(!name) return false;
if(event.getg) return event.getg(player).some(card=>card.name==name); if(event.getg) return event.getg(player).some(card=>card.name==name)&&!player.hasSkill('olsilv_gain');
return event.getl(player).cards2.some(card=>card.name==name); return event.getl(player).cards2.some(card=>card.name==name)&&!player.hasSkill('olsilv_lose');
}, },
forced:true, forced:true,
usable:1,
content:function(){ content:function(){
'step 0' 'step 0'
player.addTempSkill('olsilv'+(trigger.getg?'gain':'lose'));
if(!trigger.visible){ if(!trigger.visible){
var cards,name=player.storage.ollianju; var cards,name=player.storage.ollianju;
if(trigger.getg) cards=trigger.getg(player).filter(card=>card.name==name); if(trigger.getg) cards=trigger.getg(player).filter(card=>card.name==name);
@ -814,6 +821,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.draw(); player.draw();
}, },
ai:{combo:'ollianju'}, ai:{combo:'ollianju'},
subSkill:{
gain:{charlotte:true},
lose:{charlotte:true},
},
}, },
//丁尚涴 //丁尚涴
olfudao:{ olfudao:{
@ -829,27 +840,44 @@ game.import('character',function(lib,game,ui,get,ai,_status){
locked:false, locked:false,
content:function(){ content:function(){
'step 0' 'step 0'
var list=[],num=player.countCards('he'); player.draw(3);
for(var i=-4;i<=4;i++){
if(num+i<0||i==0) continue;
list.push(i);
}
player.chooseControl(list).set('prompt','讽言:请选择一个数字').set('prompt2','令此数值作为调整的手牌数值').set('ai',function(){
var list=[],num=_status.event.player.countCards('he');
for(var i=-4;i<=4;i++){
if(num+i<0||i==0) continue;
if(i>0&&i!=4) continue;
list.push(i);
}
return list.randomGet();
});
'step 1' 'step 1'
var num=result.control var num=player.countCards('h');
player.popup(num); if(num>0){
if(num>0) player.draw(num); player.chooseCardTarget({
else player.chooseToDiscard('he',true,-num); prompt:'抚悼:将至多三手张牌交给一名其他角色',
selectCard:[1,3],
filterCard:true,
filterTarget:lib.filter.notMe,
position:'h',
forced:true,
ai1:function(card){
if(card.name=='du') return 10;
else if(ui.selected.cards.length&&ui.selected.cards[0].name=='du') return 0;
var player=_status.event.player;
if(ui.selected.cards.length>4||!game.hasPlayer(function(current){
return get.attitude(player,current)>0&&!current.hasSkillTag('nogain');
})) return 0;
return 1/Math.max(0.1,get.value(card));
},
ai2:function(target){
var player=_status.event.player,att=get.attitude(player,target);
if(ui.selected.cards[0].name=='du') return -att;
if(target.hasSkillTag('nogain')) att/=6;
return att;
},
});
}
else event.goto(3);
'step 2' 'step 2'
player.storage.olfudao=player.countCards('he'); if(result.bool){
player.give(result.cards,result.targets[0]);
}
'step 3'
var num=player.countCards('h');
if(num>0) player.chooseToDiscard('h',[1,num],'抚悼:弃置任意张手牌,然后记录手牌数');
'step 4'
player.storage.olfudao=player.countCards('h');
player.markSkill('olfudao'); player.markSkill('olfudao');
}, },
intro:{ intro:{
@ -17224,7 +17252,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
xinyongsi:{ xinyongsi:{
audio:'yongsi1', audio:'yongsi',
group:['xinyongsi1','xinyongsi2'], group:['xinyongsi1','xinyongsi2'],
locked:true, locked:true,
}, },
@ -17979,7 +18007,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.awakenSkill('yongdi'); player.awakenSkill('yongdi');
target.gainMaxHp(); target.gainMaxHp();
target.recover(); target.recover();
var mode=get.mode();
var skills=target.getStockSkills(true,true).filter(skill=>{ var skills=target.getStockSkills(true,true).filter(skill=>{
if(target.hasSkill(skill)) return false; if(target.hasSkill(skill)) return false;
var info=get.info(skill); var info=get.info(skill);
@ -17988,6 +18015,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(skills.length){ if(skills.length){
for(var i of skills) target.addSkillLog(i); for(var i of skills) target.addSkillLog(i);
} }
if(target.isZhu2()) event.trigger('zhuUpdate');
} }
}, },
ai:{expose:0.2}, ai:{expose:0.2},
@ -23366,15 +23394,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
yongsi:{ yongsi:{
audio:'yongsi1', audio:2,
group:['yongsi1','yongsi2'], group:['yongsi1','yongsi2'],
locked:true, locked:true,
ai:{ ai:{
threaten:2.2 threaten:3.2
} }
}, },
yongsi1:{ yongsi1:{
audio:2, audio:true,
trigger:{player:'phaseDrawBegin2'}, trigger:{player:'phaseDrawBegin2'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
@ -23385,7 +23413,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
yongsi2:{ yongsi2:{
audio:2, audio:true,
trigger:{player:'phaseDiscardBegin'}, trigger:{player:'phaseDiscardBegin'},
forced:true, forced:true,
content:function(){ content:function(){
@ -23598,8 +23626,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
chongzhen:{ chongzhen:{
group:['chongzhen1','chongzhen2'], audio:2,
audio:'chongzhen1', trigger:{player:['useCard','respond']},
filter:function(event,player){
if(event.card.name!='sha'&&event.card.name!='shan') return false;
if(!event.skill||event.skill.indexOf('fanghun')+event.skill.indexOf('longdan')==-2) return false;
var target=lib.skill.chongzhen.logTarget(event,player);
return target&&target.countGainableCards(player,'h')>0;
},
logTarget:function(event,player){
if(event.name=='respond') return event.source;
if(event.card.name=='sha') return event.targets[0];
return event.respondTo[0];
},
prompt2:function(event,player){
var target=lib.skill.chongzhen.logTarget(event,player);
return '获得'+get.translation(target)+'的一张手牌';
},
content:function(){
var target=lib.skill.chongzhen.logTarget(trigger,player);
player.gainPlayerCard(target,'h',true);
},
ai:{ ai:{
combo:'ollongdan', combo:'ollongdan',
mingzhi:false, mingzhi:false,
@ -23616,40 +23663,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
}, },
}
},
chongzhen1:{
audio:2,
trigger:{player:'useCard'},
filter:function(event,player){
if((event.card.name!='sha'&&event.card.name!='shan')||(event.skill!='longdan_shan'&&event.skill!='longdan_sha'&&
event.skill!='fanghun_shan'&&event.skill!='fanghun_sha'&&event.skill!='ollongdan')) return false;
var target=lib.skill.chongzhen1.logTarget(event,player);
return target&&target.countGainableCards(player,'h')>0;
}, },
logTarget:function(event,player){
if(event.card.name=='sha') return event.targets[0];
return event.respondTo[0];
},
prompt2:'当你因发动〖龙胆〗而使用或打出【杀】或【闪】时,你可以获得对方的一张手牌。',
content:function(){
var target=lib.skill.chongzhen1.logTarget(trigger,player);
player.gainPlayerCard(target,'h',true);
}
},
chongzhen2:{
audio:2,
trigger:{player:'respond'},
filter:function(event,player){
if(event.skill!='longdan_shan'&&event.skill!='longdan_sha'&&
event.skill!='fanghun_shan'&&event.skill!='fanghun_sha'&&event.skill!='ollongdan') return false;
return event.source&&event.source.countGainableCards(player,'h')>0;
},
logTarget:'source',
prompt2:'当你因发动〖龙胆〗而使用或打出【杀】或【闪】时,你可以获得对方的一张手牌。',
content:function(){
player.gainPlayerCard(trigger.source,'h',true);
}
}, },
lihun:{ lihun:{
audio:2, audio:2,
@ -25826,8 +25840,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
baobian:'豹变', baobian:'豹变',
lihun:'离魂', lihun:'离魂',
chongzhen:'冲阵', chongzhen:'冲阵',
chongzhen1:'冲阵',
chongzhen2:'冲阵',
yuanhu:'援护', yuanhu:'援护',
tianming:'天命', tianming:'天命',
mizhao:'密诏', mizhao:'密诏',
@ -26494,15 +26506,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_dingshangwan:'OL丁尚涴', ol_dingshangwan:'OL丁尚涴',
ol_dingshangwan_prefix:'OL', ol_dingshangwan_prefix:'OL',
olfudao:'抚悼', olfudao:'抚悼',
olfudao_info:'①游戏开始时,你选择弃置或摸至多四张牌,然后记录你的手牌数。②一名角色的回合结束时,若其手牌数和你发动〖抚悼①〗记录的数值相同,则你可以与其各摸一张牌。', olfudao_info:'①游戏开始时,你摸三张牌并将至多三张手牌交给一名其他角色,然后弃置任意张手牌并记录你的手牌数。②一名角色的回合结束时,若其手牌数和你发动〖抚悼①〗记录的数值相同,则你可以与其各摸一张牌。',
olfengyan:'讽言', olfengyan:'讽言',
olfengyan_info:'锁定技。①当你受到其他角色造成的伤害后,你摸一张牌,然后交给其一张牌。②当你响应其他角色使用的牌时,其摸一张牌,然后弃置两张牌。', olfengyan_info:'锁定技。①当你受到其他角色造成的伤害后,你摸一张牌,然后交给其一张牌。②当你响应其他角色使用的牌时,其摸一张牌,然后弃置两张牌。',
ol_liwan:'OL李婉', ol_liwan:'OL李婉',
ol_liwan_prefix:'OL', ol_liwan_prefix:'OL',
ollianju:'联句', ollianju:'联句',
ollianju_info:'结束阶段你可以令一名其他角色获得你本回合使用的最后一张牌A对应的所有位于弃牌堆的实体牌并记录A的牌名然后其下个结束阶段可以令你获得其本回合使用的最后一张牌B对应的所有位于弃牌堆的实体牌且若A与B的牌名相同则你失去1点体力。', ollianju_info:'结束阶段你可以令一名其他角色获得你本回合使用的最后一张牌A对应的所有位于弃牌堆的实体牌并记录A的牌名然后其下个结束阶段可以令你获得其本回合使用的最后一张牌B对应的所有位于弃牌堆的实体牌然后若A与B的牌名相同则你失去1点体力若A与B的牌名不同则你可以视为使用A。',
olsilv:'思闾', olsilv:'思闾',
olsilv_info:'锁定技,每回合限一次,当你获得或失去你发动〖联句〗记录的最后一次牌名的同名牌后,你展示这些牌,然后摸一张牌。', olsilv_info:'锁定技,每回合每项限一次,当你获得或失去你发动〖联句〗记录的最后一次牌名的同名牌后,你展示这些牌,然后摸一张牌。',
xueji_old:'血祭', xueji_old:'血祭',
xueji_old_info:'出牌阶段限一次你可以弃置一张红色牌并对攻击范围内的至多X名角色各造成1点伤害X为你已损失的体力值然后这些角色各摸一张牌。', xueji_old_info:'出牌阶段限一次你可以弃置一张红色牌并对攻击范围内的至多X名角色各造成1点伤害X为你已损失的体力值然后这些角色各摸一张牌。',
oldhuxiao:'虎啸', oldhuxiao:'虎啸',

View File

@ -10906,7 +10906,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if (trigger.source.countCards('he')) choiceList.push('令'+get.translation(trigger.source)+'弃置两张牌'); if (trigger.source.countCards('he')) choiceList.push('令'+get.translation(trigger.source)+'弃置两张牌');
player.chooseControl('cancel2').set('prompt2',get.prompt2('yuzhang')).set('choiceList',choiceList).set('ai',function(){ player.chooseControl('cancel2').set('prompt2',get.prompt2('yuzhang')).set('choiceList',choiceList).set('ai',function(){
var player=_status.event.player,source=_status.event.source; var player=_status.event.player,source=_status.event.source;
if(get.attitude(player,event.source)>=0) return 'cancel2'; if(get.attitude(player,source)>=0) return 'cancel2';
if(source.hasSkillTag('noh')||source.hasSkillTag('noe')||source.countCards('h')>=4) return 0; if(source.hasSkillTag('noh')||source.hasSkillTag('noe')||source.countCards('h')>=4) return 0;
if(source.hp>1&&source.countCards('he')>1) return 1; if(source.hp>1&&source.countCards('he')>1) return 1;
return [0,1].randomGet(); return [0,1].randomGet();
@ -10939,7 +10939,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
check:function(event,player){ check:function(event,player){
if(event.name=='phaseDiscard') return player.needsToDiscard(); if(event.name=='phaseDiscard') return player.needsToDiscard();
return event.name=='phaseJudge'; if(event.name=='phaseJudge') return player.countCards('j');
return false;
}, },
content:function(){ content:function(){
player.removeMark('twjingce',1); player.removeMark('twjingce',1);

View File

@ -30,7 +30,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhugeshang:['male','shu',3,['sangu','yizu']], zhugeshang:['male','shu',3,['sangu','yizu']],
kebineng:['male','qun',4,['kousheng']], kebineng:['male','qun',4,['kousheng']],
lukai:['male','wu',4,['lkbushi','lkzhongzhuang']], lukai:['male','wu',4,['lkbushi','lkzhongzhuang']],
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']], xin_fazheng:['male','shu',3,['xinxuanhuo','xinenyuan']],
guanzhang:['male','shu',4,['fuhun']], guanzhang:['male','shu',4,['fuhun']],
wangyi:['female','wei',3,['zhenlie','miji']], wangyi:['female','wei',3,['zhenlie','miji']],
caozhang:['male','wei',4,['new_jiangchi']], caozhang:['male','wei',4,['new_jiangchi']],
@ -6723,15 +6723,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
jieyue:{ jieyue:{
group:'jieyue1'
},
jieyue1:{
audio:2, audio:2,
trigger:{player:'phaseJieshuBegin'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){
return !player.getExpansions('jieyue2').length;
},
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseCardTarget({ player.chooseCardTarget({
@ -6749,7 +6743,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}); });
'step 1' 'step 1'
if(result.bool){ if(result.bool){
player.logSkill('jieyue1',result.targets); player.logSkill('jieyue',result.targets);
player.discard(result.cards); player.discard(result.cards);
var target=result.targets[0]; var target=result.targets[0];
event.target=target; event.target=target;
@ -6774,18 +6768,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
'step 2' 'step 2'
if(result.bool&&result.cards&&result.cards.length){ if(result.bool&&result.cards&&result.cards.length){
player.addToExpansion(result.cards,'give',target).gaintag.add('jieyue2'); player.addToExpansion(result.cards,'give',target).gaintag.add('jieyue');
player.addSkill('jieyue2');
} }
else if(event.target.countCards('he')){ else if(event.target.countCards('he')){
player.discardPlayerCard(event.target,true); player.discardPlayerCard(event.target,true);
} }
}, },
ai:{ ai:{expose:0.1},
expose:0.1 marktext:'节',
},
},
jieyue2:{
intro:{ intro:{
content:'expansion', content:'expansion',
markcount:'expansion', markcount:'expansion',
@ -6794,58 +6784,62 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var cards=player.getExpansions(skill); var cards=player.getExpansions(skill);
if(cards.length) player.loseToDiscardpile(cards); if(cards.length) player.loseToDiscardpile(cards);
}, },
marktext:'钺', group:['jieyue_wuxie','jieyue_shan','jieyue_gain'],
audio:true, subSkill:{
enable:'chooseToUse', wuxie:{
filterCard:function(card){ audio:true,
return get.color(card)=='black'; enable:'chooseToUse',
}, filterCard:function(card){
viewAsFilter:function(player){ return get.color(card)=='black';
return player.countCards('hs',{color:'black'})>0; },
}, viewAsFilter:function(player){
position:'hs', return player.getExpansions('jieyue').length&&player.countCards('hs',{color:'black'})>0;
viewAs:{name:'wuxie'}, },
prompt:'将一张黑色手牌当无懈可击使用', position:'hs',
check:function(card){return 8-get.value(card)}, viewAs:{name:'wuxie'},
threaten:1.2, prompt:'将一张黑色手牌当无懈可击使用',
charlotte:true, check:function(card){
group:['jieyue3','jieyue4'] return 8-get.value(card);
}, },
jieyue3:{
enable:['chooseToRespond','chooseToUse'],
filterCard:function(card){
return get.color(card)=='red';
},
viewAs:{name:'shan'},
position:'hs',
viewAsFilter:function(player){
if(!player.countCards('hs',{color:'red'})) return false;
},
audio:true,
prompt:'将一张红色手牌当闪使用或打出',
check:function(){return 1},
ai:{
respondShan:true,
skillTagFilter:function(player){
if(!player.countCards('h',{color:'red'})) return false;
}, },
effect:{ shan:{
target:function(card,player,target,current){ audio:true,
if(get.tag(card,'respondShan')&&current<0) return 0.8 enable:['chooseToRespond','chooseToUse'],
} filterCard:function(card){
} return get.color(card)=='red';
} },
}, position:'hs',
jieyue4:{ viewAs:{name:'shan'},
trigger:{player:'phaseZhunbeiBegin'}, viewAsFilter:function(player){
forced:true, return player.getExpansions('jieyue').length&&player.countCards('hs',{color:'red'})>0;
content:function(){ },
'step 0' prompt:'将一张红色手牌当闪使用或打出',
var cards=player.getExpansions('jieyue2'); check:()=>1,
if(cards.length) player.gain(cards,'gain2'); ai:{
'step 1' respondShan:true,
player.removeSkill('jieyue2'); skillTagFilter:function(player){
} if(!player.getExpansions('jieyue').length||!player.countCards('hs',{color:'red'})) return false;
},
effect:{
target:function(card,player,target,current){
if(get.tag(card,'respondShan')&&current<0) return 0.8
},
},
},
},
gain:{
audio:'jieyue',
trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){
return player.getExpansions('jieyue').length;
},
forced:true,
content:function(){
var cards=player.getExpansions('jieyue');
if(cards.length) player.gain(cards,'gain2');
},
},
},
}, },
jinjiu:{ jinjiu:{
mod:{ mod:{
@ -12016,12 +12010,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
expose:0.3 expose:0.3
} }
}, },
wuyan:{audio:2}, wuyan:{
xswuyan:{ audio:2,
audio:'wuyan',
trigger:{target:'useCardToBefore',player:'useCardToBefore'}, trigger:{target:'useCardToBefore',player:'useCardToBefore'},
forced:true, forced:true,
priority:15,
check:function(event,player){ check:function(event,player){
return get.effect(event.target,event.card,event.player,player)<0; return get.effect(event.target,event.card,event.player,player)<0;
}, },
@ -12040,15 +12032,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
player:function(card,player,target,current){ player:function(card,player,target,current){
if(get.type(card)=='trick'&&player!=target) return 'zeroplayertarget'; if(get.type(card)=='trick'&&player!=target) return 'zeroplayertarget';
} },
} },
} },
}, },
xinwuyan:{ xinwuyan:{
audio:2, audio:2,
trigger:{source:'damageBegin2',player:'damageBegin4'}, trigger:{source:'damageBegin2',player:'damageBegin4'},
forced:true, forced:true,
//priority:15,
check:function(event,player){ check:function(event,player){
if(player==event.player) return true; if(player==event.player) return true;
return false; return false;
@ -12866,6 +12857,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
xinenyuan:{ xinenyuan:{
audio:2,
group:['xinenyuan1','xinenyuan2'],
},
xinenyuan1:{
audio:true,
trigger:{player:'gainEnd'},
filter:function(event,player){
return event.source&&event.source.isIn()&&event.source!=player&&event.cards.length>=2;
},
logTarget:'source',
check:function(event,player){
return get.attitude(player,event.source)>0;
},
prompt2:function(event,player){
return '令'+get.translation(event.source)+'摸一张牌';
},
content:function(){
trigger.source.draw();
},
},
xinenyuan2:{
audio:true, audio:true,
trigger:{player:'damageEnd'}, trigger:{player:'damageEnd'},
check:function(event,player){ check:function(event,player){
@ -12880,17 +12892,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.source&&event.source!=player&&event.num>0&&event.source.isIn(); return event.source&&event.source!=player&&event.num>0&&event.source.isIn();
}, },
logTarget:'source', logTarget:'source',
prompt2:function(event,player){
return '令'+get.translation(event.source)+'交给你一张手牌或失去1点体力';
},
content:function(){ content:function(){
"step 0" 'step 0'
event.num=trigger.num; event.num=trigger.num;
"step 1" 'step 1'
trigger.source.chooseCard('选择一张手牌交给'+get.translation(player)+'或点“取消”失去1点体力').set('ai',function(card){ trigger.source.chooseCard('选择一张手牌交给'+get.translation(player)+'或点“取消”失去1点体力').set('ai',function(card){
var player=_status.event.getParent().player,source=_status.event.player; var player=_status.event.getParent().player,source=_status.event.player;
if(get.effect(source,{name:'losehp'},source,source)>=0) return 0; if(get.effect(source,{name:'losehp'},source,source)>=0) return 0;
if(get.attitude(player,source)>0) return 11-get.value(card); if(get.attitude(player,source)>0) return 11-get.value(card);
return 7-get.value(card); return 7-get.value(card);
}); });
"step 2" 'step 2'
if(result.bool){ if(result.bool){
trigger.source.give(result.cards,player); trigger.source.give(result.cards,player);
} }
@ -12910,67 +12925,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.hasSkillTag('jueqing',false,target)) return [1,-1.5]; if(player.hasSkillTag('jueqing',false,target)) return [1,-1.5];
if(!target.hasFriend()) return; if(!target.hasFriend()) return;
if(get.tag(card,'damage')) return [1,0,0,-0.7]; if(get.tag(card,'damage')) return [1,0,0,-0.7];
} },
} },
}, },
group:'xinenyuan2'
},
xinenyuan2:{
audio:true,
trigger:{player:'gainEnd'},
filter:function(event,player){
return event.source&&event.source.isIn()&&event.source!=player&&event.cards.length>=2;
},
logTarget:'source',
check:function(event,player){
return get.attitude(player,event.source)>0;
},
content:function(){
trigger.source.draw();
}
}, },
enyuan:{ enyuan:{
audio:'enyuan1', audio:2,
locked:true, locked:true,
group:['enyuan1','enyuan2'], group:['enyuan1','enyuan2'],
ai:{
maixie_defend:true,
effect:{
target:function(card,player,target){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(!target.hasFriend()) return;
if(get.tag(card,'damage')) return [1,0,0,-1];
}
}
}
}, },
enyuan1:{ enyuan1:{
trigger:{player:'recoverEnd'}, audio:true,
forced:true,
audio:2,
logTarget:'source',
filter:function(event,player){
return event.source&&event.source!=player;
},
content:function(){
'step 0'
event.num=trigger.num;
'step 1'
if(event.num>0){
player.logSkill('enyuan1',trigger.source);
trigger.source.draw();
event.num--;
event.redo();
}
}
},
enyuan2:{
trigger:{player:'damageEnd'}, trigger:{player:'damageEnd'},
forced:true, forced:true,
audio:2,
filter:function(event,player){ filter:function(event,player){
return event.source&&event.source!=player; return event.source&&event.source!=player&&event.source.isIn();
}, },
logTarget:'source',
content:function(){ content:function(){
'step 0' 'step 0'
trigger.source.chooseCard('选择一张红桃牌交给'+get.translation(player)+'或点“取消”失去1点体力',function(card){ trigger.source.chooseCard('选择一张红桃牌交给'+get.translation(player)+'或点“取消”失去1点体力',function(card){
@ -12988,7 +12959,37 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{ else{
trigger.source.loseHp(); trigger.source.loseHp();
} }
} },
ai:{
maixie_defend:true,
effect:{
target:function(card,player,target){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(!target.hasFriend()) return;
if(get.tag(card,'damage')) return [1,0,0,-1];
},
},
},
},
enyuan2:{
audio:true,
trigger:{player:'recoverEnd'},
forced:true,
logTarget:'source',
filter:function(event,player){
return event.source&&event.source!=player&&event.source.isIn();
},
content:function(){
'step 0'
event.num=trigger.num;
'step 1'
if(event.num>0){
player.logSkill('enyuan1',trigger.source);
trigger.source.draw();
event.num--;
event.redo();
}
},
}, },
xuanhuo:{ xuanhuo:{
audio:2, audio:2,
@ -14278,11 +14279,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reqingxi:'倾袭', reqingxi:'倾袭',
reqingxi_info:'当你使用【杀】或【决斗】指定目标后你可以令其选择一项1、弃置X张手牌X为你攻击范围内的角色数且当你装备区内有武器牌/没有武器牌时至多为4/2若如此做其弃置你的此武器牌2、令此牌的伤害值+1且你进行判定若结果为红色则其不能响应此牌。', reqingxi_info:'当你使用【杀】或【决斗】指定目标后你可以令其选择一项1、弃置X张手牌X为你攻击范围内的角色数且当你装备区内有武器牌/没有武器牌时至多为4/2若如此做其弃置你的此武器牌2、令此牌的伤害值+1且你进行判定若结果为红色则其不能响应此牌。',
jieyue:'节钺', jieyue:'节钺',
jieyue1:'节钺', jieyue_info:'①结束阶段你可以弃置一张手牌然后令一名其他角色选择一项1.将一张牌置于你的武将牌上,称之为“节”2.令你弃置其一张牌。②若你有“节”,你可以将红色/黑色手牌当作【闪】/【无懈可击】使用或打出。③准备阶段,若你有“节”,则你获得之。',
jieyue2:'节钺',
jieyue3:'节钺',
jieyue4:'节钺',
jieyue_info:'结束阶段开始时,你可以弃置一张手牌,然后令一名其他角色选择一项:将一张牌置于你的武将牌上(称之为“节”);或令你弃置其一张牌。当你你武将牌上有“节”时,你可以将红色手牌当作【闪】、黑色的手牌当作【无懈可击】使用或打出。准备阶段开始时,你获得你武将牌上的“节”。',
xianzhen:'陷阵', xianzhen:'陷阵',
xianzhen_info:'出牌阶段限一次,你可以与一名角色拼点。若你赢,你获得以下效果直到回合结束:无视与该角色的距离;无视该角色的防具且对其使用【杀】没有次数限制。若你没赢,你不能使用【杀】直到回合结束。', xianzhen_info:'出牌阶段限一次,你可以与一名角色拼点。若你赢,你获得以下效果直到回合结束:无视与该角色的距离;无视该角色的防具且对其使用【杀】没有次数限制。若你没赢,你不能使用【杀】直到回合结束。',
xinxianzhen:'陷阵', xinxianzhen:'陷阵',
@ -14414,6 +14411,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jianying:'渐营', jianying:'渐营',
jianying_info:'当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。', jianying_info:'当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。',
xinenyuan:'恩怨', xinenyuan:'恩怨',
xinenyuan1:'恩怨',
xinenyuan2:'恩怨', xinenyuan2:'恩怨',
xinenyuan_info:'当你获得一名其他角色两张或更多的牌后你可以令其摸一张牌当你受到1点伤害后你可以令伤害来源选择一项1、将一张手牌交给你2、失去1点体力。', xinenyuan_info:'当你获得一名其他角色两张或更多的牌后你可以令其摸一张牌当你受到1点伤害后你可以令伤害来源选择一项1、将一张手牌交给你2、失去1点体力。',
xinxuanhuo:'眩惑', xinxuanhuo:'眩惑',
@ -14463,7 +14461,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinjunxing:'峻刑', xinjunxing:'峻刑',
xinjunxing_info:'出牌阶段限一次,你可以弃置至少一张手牌并选择一名其他角色,该角色需弃置一张与你弃置的牌类别均不同的手牌,否则其先将其武将牌翻面,然后将手牌摸至四张。', xinjunxing_info:'出牌阶段限一次,你可以弃置至少一张手牌并选择一名其他角色,该角色需弃置一张与你弃置的牌类别均不同的手牌,否则其先将其武将牌翻面,然后将手牌摸至四张。',
xswuyan:'无言', wuyan:'无言',
xinwuyan:'无言', xinwuyan:'无言',
jujian:'举荐', jujian:'举荐',
xinjujian:'举荐', xinjujian:'举荐',
@ -14580,7 +14578,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oldrenxin_info:'其他角色进入濒死状态时你可以将所有手牌交给该角色并翻面然后该角色回复1点体力。', oldrenxin_info:'其他角色进入濒死状态时你可以将所有手牌交给该角色并翻面然后该角色回复1点体力。',
jingce_info:'出牌阶段结束时,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。', jingce_info:'出牌阶段结束时,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。',
xinjingce_info:'结束阶段,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。', xinjingce_info:'结束阶段,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。',
xswuyan_info:'锁定技,你使用的普通锦囊牌对其他角色无效;其他角色使用的普通锦囊牌对你无效。', wuyan_info:'锁定技,你使用的普通锦囊牌对其他角色无效;其他角色使用的普通锦囊牌对你无效。',
xinwuyan_info:'锁定技,当你使用锦囊牌造成伤害时,你防止此伤害;锁定技,当你受到锦囊牌对你造成的伤害时,你防止此伤害。', xinwuyan_info:'锁定技,当你使用锦囊牌造成伤害时,你防止此伤害;锁定技,当你受到锦囊牌对你造成的伤害时,你防止此伤害。',
jujian_info:'出牌阶段限一次你可以弃至多三张牌然后令一名其他角色摸等量的牌。若你以此法弃牌不少于三张且均为同一类别你回复1点体力。', jujian_info:'出牌阶段限一次你可以弃至多三张牌然后令一名其他角色摸等量的牌。若你以此法弃牌不少于三张且均为同一类别你回复1点体力。',
xinjujian_info:'结束阶段开始时你可以弃置一张非基本牌并选择一名其他角色令其选择一项1.摸两张牌2.回复1点体力3.将其武将牌翻转至正面朝上并重置之。', xinjujian_info:'结束阶段开始时你可以弃置一张非基本牌并选择一名其他角色令其选择一项1.摸两张牌2.回复1点体力3.将其武将牌翻转至正面朝上并重置之。',