v1.9.95.9

This commit is contained in:
Spmario233 2019-12-05 23:15:43 +08:00 committed by GitHub
parent fe66f8e9a0
commit ceee9f888e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 13853 additions and 13682 deletions

View File

@ -1508,7 +1508,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
nsfuhuo2:{ nsfuhuo2:{
trigger:{player:'respondAfter'}, trigger:{player:['respondAfter','useCardAfter']},
forced:true, forced:true,
priority:10, priority:10,
mark:'card', mark:'card',
@ -1655,9 +1655,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(Math.abs(targets[0].hp-targets[1].hp)==1){ if(Math.abs(targets[0].hp-targets[1].hp)==1){
player.loseHp(); player.loseHp();
} }
//else{ else{
//player.die(); player.die();
//} }
}, },
ai:{ ai:{
order:10, order:10,
@ -3738,7 +3738,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:"phaseUse", enable:"phaseUse",
usable:1, usable:1,
filterTarget:function (card,player,target){ filterTarget:function (card,player,target){
return target!=player&&!target.hasSkill('liangji_1'); return target!=player;
}, },
content:function (){ content:function (){
'step 0' 'step 0'
@ -5299,7 +5299,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
nsjianning:'奸佞', nsjianning:'奸佞',
nsjianning_info:'出牌阶段限一次,如果你的身份为内奸,你可以与一名手牌数比你少的角色交换手牌,并对其造成一点伤害', nsjianning_info:'出牌阶段限一次,如果你的身份为内奸,你可以与一名手牌数比你少的角色交换手牌,并对其造成一点伤害',
nschangshi:'常仕', nschangshi:'常仕',
nschangshi_info:'出牌阶段限一次如果你的身份为反贼你可以指定两名其他角色互换体力如果两名角色体力之差等于1你失去一点体力', nschangshi_info:'出牌阶段限一次如果你的身份为反贼你可以指定两名其他角色互换体力如果两名角色体力之差等于1你失去一点体力,否则你立即死亡',
nsbaquan:'霸权', nsbaquan:'霸权',
nsbaquan_info:'回合结束时,你可以弃置所有手牌,并获得相应点数的护甲,你的新一回合开始时清除所有护甲', nsbaquan_info:'回合结束时,你可以弃置所有手牌,并获得相应点数的护甲,你的新一回合开始时清除所有护甲',
nsbugua:'卜卦', nsbugua:'卜卦',
@ -5382,7 +5382,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yiesheng:'回雪', yiesheng:'回雪',
yiesheng_info:'出牌阶段,你可以弃置任意数量的黑色手牌,然后摸等量的牌。', yiesheng_info:'出牌阶段,你可以弃置任意数量的黑色手牌,然后摸等量的牌。',
liangji:'环计', liangji:'环计',
liangji_info:'出牌阶段限一次,你可以选择一名武将牌上没以此法获得牌的其他角色并将一张手牌置于其武将牌上。目标角色于摸牌阶段开始时,获得此牌。若其为男性角色,则获得技能【无双】,若其为女性角色,则获得技能【离间】,直到回合结束。', liangji_info:'出牌阶段限一次,你可以选择一名其他角色并将一张手牌置于其武将牌上。目标角色于摸牌阶段开始时,获得此牌。若其为男性角色,则获得技能【无双】,若其为女性角色,则获得技能【离间】,直到回合结束。',
chengmou:'逞谋', chengmou:'逞谋',
chengmou_info:'摸牌阶段开始时,若你有“功”牌,你获得之并跳过摸牌阶段,若你所获得的“功”牌多于两张,你须失去一点体力。', chengmou_info:'摸牌阶段开始时,若你有“功”牌,你获得之并跳过摸牌阶段,若你所获得的“功”牌多于两张,你须失去一点体力。',
jugong:'居功', jugong:'居功',

View File

@ -1111,18 +1111,50 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
"step 0" "step 0"
player.gain(get.cards(7))._triggered=null; player.storage.qixing=game.cardsGotoSpecial(get.cards(7)).cards;
player.markSkill('qixing');
game.addVideo('storage',player,['qixing',get.cardsInfo(player.storage.qixing),'cards']);
"step 1" "step 1"
if(player==game.me){ player.chooseCard('选择任意张手牌与“星”交换',[1,Math.min(player.countCards('h'),player.storage.qixing.length)]).set('promptx',[player.storage.qixing]).ai=function(card){
game.addVideo('delay',null); var val=get.value(card);
} if(val<0) return 10;
player.chooseCard('选择七张牌作为星',7,true).ai=function(card){ if(player.skipList.contains('phaseUse')){
return get.value(card); return val;
}
return -val;
}; };
"step 2" "step 2"
player.lose(result.cards,ui.special,'toStorage'); if(result.bool){
player.storage.qixing=result.cards; player.logSkill('qixing');
game.addVideo('storage',player,['qixing',get.cardsInfo(player.storage.qixing),'cards']); player.lose(result.cards,ui.special,'toStorage');
player.storage.qixing=player.storage.qixing.concat(result.cards);
player.syncStorage('qixing');
event.num=result.cards.length;
}
else{
event.finish();
}
"step 3"
player.chooseCardButton(player.storage.qixing,'选择'+event.num+'张牌作为手牌',event.num,true).ai=function(button){
var val=get.value(button.link);
if(val<0) return -10;
if(player.skipList.contains('phaseUse')){
return -val;
}
return val;
}
if(player==game.me&&!event.isMine()){
game.delay(0.5);
}
"step 4"
player.gain(result.links,'fromStorage');
for(var i=0;i<result.links.length;i++){
player.storage.qixing.remove(result.links[i]);
}
player.syncStorage('qixing');
if(player==game.me&&_status.auto){
game.delay(0.5);
}
}, },
mark:true, mark:true,
intro:{ intro:{
@ -1532,7 +1564,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:true, audio:true,
enable:['chooseToUse','chooseToRespond'], enable:['chooseToUse','chooseToRespond'],
prompt:function(){ prompt:function(){
return '将'+get.cnNumber(Math.max(1,_status.event.player.hp))+'张梅花牌当作闪打出'; return '将'+get.cnNumber(Math.max(1,_status.event.player.hp))+'张梅花牌当作闪使用或打出';
}, },
position:'he', position:'he',
check:function(card,event){ check:function(card,event){
@ -1686,7 +1718,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'longhun4', audio:'longhun4',
enable:['chooseToUse','chooseToRespond'], enable:['chooseToUse','chooseToRespond'],
prompt:function(){ prompt:function(){
return '将至多两张梅花牌当作闪打出'; return '将至多两张梅花牌当作闪使用或打出';
}, },
position:'he', position:'he',
check:function(card,event){ check:function(card,event){
@ -2594,7 +2626,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qixing_bg:'星', qixing_bg:'星',
qixing2:'七星', qixing2:'七星',
qixing3:'七星', qixing3:'七星',
qixing_info:'游戏开始共发你11张牌选4张作为手牌其余的面朝下置于一旁移出游戏称之为“星”。每当你于摸牌阶段摸牌后可用任意数量的手牌等量交换这些“星”。', qixing_info:'游戏开始时,你将牌堆顶的七张牌置于你的武将牌上,称之为“星”。然后/摸牌阶段结束后,你可用任意数量的手牌等量交换这些“星”。',
dawu:'大雾', dawu:'大雾',
dawu2_bg:'雾', dawu2_bg:'雾',
dawu2:'大雾', dawu2:'大雾',

View File

@ -6996,7 +6996,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
qiaodong:{ qiaodong:{
enable:['chooseToRespond'], enable:['chooseToUse','chooseToRespond'],
filterCard:{type:'equip'}, filterCard:{type:'equip'},
filter:function(event,player){ filter:function(event,player){
return player.countCards('he',{type:'equip'})>0; return player.countCards('he',{type:'equip'})>0;

View File

@ -55,7 +55,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_zhuhuan:['male','wu',4,['youdi']], old_zhuhuan:['male','wu',4,['youdi']],
old_zhuzhi:['male','wu',4,['anguo']], old_zhuzhi:['male','wu',4,['anguo']],
old_machao:['male','qun',4,['zhuiji','cihuai']], old_machao:['male','qun',4,['zhuiji','oldcihuai']],
old_zhugezhan:["male","shu",3,["old_zuilun","old_fuyin"]], old_zhugezhan:["male","shu",3,["old_zuilun","old_fuyin"]],
zhangliang:["male","qun",4,["old_jijun","old_fangtong"]], zhangliang:["male","qun",4,["old_jijun","old_fangtong"]],
old_guanzhang:['male','shu',4,['old_fuhun']], old_guanzhang:['male','shu',4,['old_fuhun']],
@ -142,7 +142,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return '将一张手牌当'+get.translation(links[0][2])+'使用'; return '将一张手牌当'+get.translation(links[0][2])+'使用';
}, },
}, },
ai:{save:true}, ai:{save:true,respondShan:true},
}, },
"old_guhuo_guess":{ "old_guhuo_guess":{
audio:'guhuo_guess', audio:'guhuo_guess',
@ -164,7 +164,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.line=false; trigger.line=false;
event.prompt=get.translation(player)+'声明了'+get.translation(trigger.card.name)+',是否质疑?'; event.prompt=get.translation(player)+'声明了'+get.translation(trigger.card.name)+',是否质疑?';
event.guessers=game.filterPlayer(function(current){ event.guessers=game.filterPlayer(function(current){
return current!=player; return current!=player&&current.hp>0;
}); });
event.guessers.sort(lib.sort.seat); event.guessers.sort(lib.sort.seat);
event.ally=[]; event.ally=[];
@ -517,7 +517,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'chooseToRespondBegin'}, trigger:{player:'chooseToRespondBegin'},
filter:function(event,player){ filter:function(event,player){
if(event.responded) return false; if(event.responded) return false;
if(!event.filterCard({name:'shan'},player,event)&&!!event.filterCard({name:'sha'},player,event)) return false; if(!event.filterCard({name:'shan'},player,event)&&!event.filterCard({name:'sha'},player,event)) return false;
if(player.hasSkill('zhenshan2')) return false; if(player.hasSkill('zhenshan2')) return false;
var nh=player.countCards('h'); var nh=player.countCards('h');
return game.hasPlayer(function(current){ return game.hasPlayer(function(current){
@ -562,7 +562,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return event.filterCard({name:'sha'},player,event)|| return event.filterCard({name:'sha'},player,event)||
event.filterCard({name:'jiu'},player,event)|| event.filterCard({name:'jiu'},player,event)||
event.filterCard({name:'tao'},player,event); event.filterCard({name:'tao'},player,event)||
event.filterCard({name:'shan'},player,event);
}, },
chooseButton:{ chooseButton:{
dialog:function(event,player){ dialog:function(event,player){
@ -578,6 +579,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.filterCard({name:'jiu'},player,event)){ if(event.filterCard({name:'jiu'},player,event)){
list.push(['基本','','jiu']); list.push(['基本','','jiu']);
} }
if(event.filterCard({name:'shan'},player,event)){
list.push(['基本','','shan']);
}
return ui.create.dialog('振赡',[list,'vcard'],'hidden'); return ui.create.dialog('振赡',[list,'vcard'],'hidden');
}, },
check:function(button){ check:function(button){
@ -592,7 +596,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else if(card.nature=='fire') return 2.92; else if(card.nature=='fire') return 2.92;
else return 2.9; else return 2.9;
} }
else if(card.name=='tao'){ else if(card.name=='tao'||card.name=='shan'){
return 4; return 4;
} }
} }
@ -639,7 +643,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
else{ else{
if(event.filterCard({name:'tao'},player,event)){ if(event.filterCard({name:'tao'},player,event)||event.filterCard({name:'shan'},player,event)){
return 4; return 4;
} }
if(event.filterCard({name:'sha'},player,event)){ if(event.filterCard({name:'sha'},player,event)){

View File

@ -41,7 +41,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skill:{ skill:{
reqingguo:{ reqingguo:{
audio:'qingguo', audio:'qingguo',
enable:['chooseToRespond'], enable:['chooseToRespond','chooseToUse'],
filterCard:function(card){ filterCard:function(card){
return get.color(card)=='black'; return get.color(card)=='black';
}, },
@ -813,21 +813,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
mark:true, mark:true,
mod:{ mod:{
cardEnabled:function (){ cardEnabled2:function (card){
return false; if(get.position(card)=='h') return false;
},
cardUsable:function (){
return false;
},
cardRespondable:function (){
return false;
},
cardSavable:function (){
return false;
}, },
}, },
intro:{ intro:{
content:"不能使用或打出牌", content:"不能使用或打出手牌",
}, },
}, },
"new_repaoxiao":{ "new_repaoxiao":{

View File

@ -200,7 +200,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(num>player.countCards('h')) num=player.countCards('h'); if(num>player.countCards('h')) num=player.countCards('h');
player.chooseCard('h',[1,num],'请选择需要替换“荣”的手牌').set('ai',function(card){ player.chooseCard('h',[1,num],'请选择需要替换“荣”的手牌').set('ai',function(card){
return 5-get.value(card); return 5-get.value(card);
}).set('promptx',[player.storage.drlt_zhengrong]); });
'step 1' 'step 1'
if(result.bool){ if(result.bool){
event.cards=result.cards; event.cards=result.cards;
@ -763,16 +763,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
'drlt_xiongluan2':{ 'drlt_xiongluan2':{
mod:{ mod:{
cardEnabled:function(card,player){ cardEnabled2:function(card,player){
if(get.position(card)=='h') return false;
},
cardUsable:function(card,player){
if(get.position(card)=='h') return false;
},
cardRespondable:function(card,player){
if(get.position(card)=='h') return false;
},
cardSavable:function(card,player){
if(get.position(card)=='h') return false; if(get.position(card)=='h') return false;
}, },
}, },
@ -1486,7 +1477,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1' 'step 1'
if(result.bool){ if(result.bool){
player.storage.nzry_chenglve1=result.cards; player.storage.nzry_chenglve1=result.cards;
player.syncStorage('nzry_chenglve1');
player.addTempSkill('nzry_chenglve1',{player:'phaseAfter'}); player.addTempSkill('nzry_chenglve1',{player:'phaseAfter'});
}; };
}, },
@ -1543,21 +1533,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
prompt2:"当你使用牌指定目标时,若此牌与你本回合使用的牌类型均不同(包括装备牌),则你可以将此牌置于牌堆顶,然后摸一张牌", prompt2:"当你使用牌指定目标时,若此牌与你本回合使用的牌类型均不同(包括装备牌),则你可以将此牌置于牌堆顶,然后摸一张牌",
trigger:{ trigger:{
player:['useCardAfter','respondAfter'], player:['useCard','useCardAfter'],
target:'useCardToTargeted',
}, },
filter:function (event,player,name){ filter:function (event,player,name){
if(name=='useCardToTargeted'&&(event.player!=player||get.type(event.card)!='equip')) return false; if(name=='useCard'&&!['equip','delay'].contains(get.type(event.card))) return false;
if(name=='useCardAfter'&&['equip','delay'].contains(get.type(event.card))) return false; if(name=='useCardAfter'&&['equip','delay'].contains(get.type(event.card))) return false;
return ((event.name=='respond'&&event.card.name=='shan'&&event.parent.parent.name=='sha')||event.name=='useCardToTargeted'||event.name=='useCard')&&event.cards.length>0&&player.storage.nzry_shicai!=undefined&&!player.storage.nzry_shicai.contains(get.type(event.card,'trick')); return event.cards.filterInD().length>0&&player.storage.nzry_shicai!=undefined&&!player.storage.nzry_shicai.contains(get.type(event.card,'trick'));
}, },
check:function (event,player){ check:function (event,player){
if(get.type(event.card)=='equip'){ if(get.type(event.card)=='equip'){
return get.equipResult(player,player,event.card.name)<=0; return get.equipResult(player,player,event.card.name)<=0;
} }
return true; return event.card.name!='lebu'&&event.card.name!='bingliang';
}, },
content:function(){ content:function(){
"step 0"
player.storage.nzry_shicai.push(get.type(trigger.card,'trick')); player.storage.nzry_shicai.push(get.type(trigger.card,'trick'));
for(var i=0;i<trigger.cards.length;i++){ for(var i=0;i<trigger.cards.length;i++){
if(get.position(trigger.cards[i])=='d'){ if(get.position(trigger.cards[i])=='d'){
@ -1568,8 +1558,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}; };
game.updateRoundNumber(); game.updateRoundNumber();
player.draw(); player.draw();
if(event.triggername=='useCardToTargeted'){ "step 1"
trigger.getParent().excluded.push(player); if(event.triggername=='useCard'&&['equip','delay'].contains(get.type(trigger.card))){
trigger.cancel();
game.broadcastAll(ui.clear);
} }
}, },
}, },
@ -1834,7 +1826,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'2':{ '2':{
audio:2, audio:2,
trigger:{ trigger:{
player:'damageEnd', player:'damageAfter',
}, },
filter:function (event,player){ filter:function (event,player){
return player.countCards('he')>0&&event.source&&event.source!=player&&player.storage.nzry_shenshi==true; return player.countCards('he')>0&&event.source&&event.source!=player&&player.storage.nzry_shenshi==true;
@ -5353,7 +5345,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
releiji:{ releiji:{
audio:2, audio:2,
audioname:['boss_qinglong'], audioname:['boss_qinglong'],
trigger:{player:'respond'}, trigger:{player:['useCard','respond']},
filter:function(event,player){ filter:function(event,player){
return event.card.name=='shan'; return event.card.name=='shan';
}, },
@ -6163,7 +6155,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
leiji:{ leiji:{
audio:2, audio:2,
trigger:{player:'respond'}, trigger:{player:['useCard','respond']},
filter:function(event,player){ filter:function(event,player){
return event.card.name=='shan'; return event.card.name=='shan';
}, },

View File

@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true, connect:true,
characterSort:{ characterSort:{
sp:{ sp:{
sp_default:["caoying","simahui","baosanniang","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","guansuo","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","wenyang","guanlu","gexuan"], sp_default:["caoying","simahui","baosanniang","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","guansuo","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","wenyang","guanlu","gexuan","xinpi"],
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"], sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"],
sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"], sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"],
sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"], sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"],
@ -19,6 +19,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
character:{ character:{
xinpi:['male','wei',3,['xpchijie','yinju'],['unseen']],
hejin:['male','qun',4,['mouzhu','yanhuo']], hejin:['male','qun',4,['mouzhu','yanhuo']],
hansui:['male','qun',4,['mashu','niluan']], hansui:['male','qun',4,['mashu','niluan']],
niujin:['male','wei',4,['cuorui','liewei']], niujin:['male','wei',4,['cuorui','liewei']],
@ -162,6 +163,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kaisa:["male","western",4,["zhengfu"]], //kaisa:["male","western",4,["zhengfu"]],
}, },
characterIntro:{ characterIntro:{
xinpi:'辛毗生卒年不详字佐治颍川阳翟人。三国时期曹魏大臣。原居陇西郡治在今甘肃临洮县东汉光武帝建武年间其先人东迁。当初辛毗跟随其兄事袁绍。曹操任司空时征召辛毗他不受命。官渡战后辛毗事袁绍的儿子袁谭。公元204年曹操攻下邺城上表推荐辛毗任议郎后为丞相长史。公元220年曹丕即皇帝位以辛毗为侍中赐爵关内侯后赐广平亭侯。魏明帝即位封辛毗颍乡侯食邑三百户后为卫尉。公元234年诸葛亮屯兵渭南司马懿上表魏明帝。魏明帝任辛毗为大将军军师加使持节号。诸葛亮病逝后辛毗返回仍任卫尉。不久逝世谥肃侯。',
hejin:'何进(?~189年字遂高南阳郡宛县今河南南阳市宛城区人。东汉时期外戚大臣灵思皇后之兄。初以妹妹有宠拜为郎中出任虎贲中郎将、颍川太守迁侍中、将作大匠、河南尹。黄巾起义时拜为大将军总镇京师发现并镇压马元义的密谋封为慎侯。为张大威望在京师讲武结营置西园八校尉。汉灵帝驾崩后粉碎了中常侍蹇硕拥立皇子刘协的图谋听从袁绍之言博征智谋之士内借元舅之资外据辅政之权独揽朝中大权。中平六年189不纳陈琳和曹操劝谏阴结军阀董卓联合袁绍谋诛宦竖。事情败露后为中常侍张让等人损害其后代是魏晋高门士族南阳何氏。', hejin:'何进(?~189年字遂高南阳郡宛县今河南南阳市宛城区人。东汉时期外戚大臣灵思皇后之兄。初以妹妹有宠拜为郎中出任虎贲中郎将、颍川太守迁侍中、将作大匠、河南尹。黄巾起义时拜为大将军总镇京师发现并镇压马元义的密谋封为慎侯。为张大威望在京师讲武结营置西园八校尉。汉灵帝驾崩后粉碎了中常侍蹇硕拥立皇子刘协的图谋听从袁绍之言博征智谋之士内借元舅之资外据辅政之权独揽朝中大权。中平六年189不纳陈琳和曹操劝谏阴结军阀董卓联合袁绍谋诛宦竖。事情败露后为中常侍张让等人损害其后代是魏晋高门士族南阳何氏。',
hansui:'韩遂215年字文约。凉州金城郡人。东汉末年军阀、将领汉末群雄之一。原名韩约后改名遂。韩遂最初闻名于西州被羌胡叛军劫持并推举为首领以诛宦官为名举兵造反聚众十万先后败皇甫嵩、张温、董卓、孙坚等名将使得天下骚动。后受朝廷招安拥兵割据一方长达三十余年。韩遂曾与马腾结为异姓兄弟后二人关系破裂。袁绍、曹操相争之际马腾、韩遂被钟繇说服依附于曹操。马腾入京后留其子马超统领部队。马超推举韩遂为都督起兵反叛曹操为曹操所败韩遂逃奔凉州后又为夏侯渊所败病死一说被杀享年七十余岁。', hansui:'韩遂215年字文约。凉州金城郡人。东汉末年军阀、将领汉末群雄之一。原名韩约后改名遂。韩遂最初闻名于西州被羌胡叛军劫持并推举为首领以诛宦官为名举兵造反聚众十万先后败皇甫嵩、张温、董卓、孙坚等名将使得天下骚动。后受朝廷招安拥兵割据一方长达三十余年。韩遂曾与马腾结为异姓兄弟后二人关系破裂。袁绍、曹操相争之际马腾、韩遂被钟繇说服依附于曹操。马腾入京后留其子马超统领部队。马超推举韩遂为都督起兵反叛曹操为曹操所败韩遂逃奔凉州后又为夏侯渊所败病死一说被杀享年七十余岁。',
niujin:'牛金(生卒年不详),初为曹仁部曲将,周瑜军数万人来攻,前锋数千人始至,曹仁登城望,乃募得三百人,遣牛金迎战。但对方兵力较多,牛金遂被围困。曹仁亲自杀入阵中救出牛金。司马懿使牛金轻骑饵诱蜀军,刚交战诸葛亮就退兵,追至祁山。蜀将马岱入寇,司马懿遣将军牛金击退,斩千余级。公孙渊反,司马懿帅牛金、胡遵等步骑四万发自洛阳,后平定辽东。牛金官至后将军。', niujin:'牛金(生卒年不详),初为曹仁部曲将,周瑜军数万人来攻,前锋数千人始至,曹仁登城望,乃募得三百人,遣牛金迎战。但对方兵力较多,牛金遂被围困。曹仁亲自杀入阵中救出牛金。司马懿使牛金轻骑饵诱蜀军,刚交战诸葛亮就退兵,追至祁山。蜀将马岱入寇,司马懿遣将军牛金击退,斩千余级。公孙渊反,司马懿帅牛金、胡遵等步骑四万发自洛阳,后平定辽东。牛金官至后将军。',
@ -572,6 +574,109 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
skill:{ skill:{
//辛毗
xpchijie:{
audio:2,
trigger:{
target:'useCardToTargeted'
},
filter:function(event,player){
return event.player!=player;
},
usable:1,
content:function(){
player.addTempSkill('xpchijie2');
player.storage.xpchijie2=trigger.card;
},
check:function(event,player){
if(get.tag(event.card,'respondSha')){
if(player.countCards('h',{name:'sha'})==0){
return false;
}
}
else if(get.tag(event.card,'respondShan')){
if(player.countCards('h',{name:'shan'})==0){
return false;
}
}
else if(get.tag(event.card,'damage')){
return false;
}
return get.value(event.cards)>0;
},
},
xpchijie2:{
charlotte:true,
trigger:{
global:'useCardAfter',
player:'damage',
},
onremove:true,
forced:true,
silent:true,
popup:false,
filter:function(event,player){
return event.card==player.storage.xpchijie2;
},
content:function(){
if(trigger.name=='damage') player.addTempSkill('xpchijie3');
else if(!player.hasSkill('xpchijie3')){
var cards=[];
var cs=trigger.cards;
for(var i=0;i<cs.length;i++){
if(get.position(cs[i])=='d') cards.push(cs[i]);
}
if(cards.length){
player.logSkill('xpchijie3');
player.gain(cards,'gain2');
}
}
},
},
xpchijie3:{
trigger:{global:'damageBegin4'},
forced:true,
filter:function(event,player){
return event.card&&event.card==player.storage.xpchijie2;
},
content:function(){
trigger.cancel();
},
},
yinju:{
audio:2,
enable:'phaseUse',
limited:true,
filterTarget:lib.filter.notMe,
skillAnimation:true,
animationColor:'water',
content:function(){
player.awakenSkill('yinju');
player.storage.yinju2=target;
player.addTempSkill('yinju2');
},
},
yinju2:{
trigger:{
player:'useCardToPlayered',
source:'damageBefore',
},
forced:true,
onremove:true,
filter:function(event,player){
return lib.skill.yinju2.logTarget(event)==player.storage.yinju2;
},
logTarget:function(event){
return event[event.name=='damage'?'player':'target'];
},
content:function(){
if(trigger.name=='damage'){
trigger.cancel();
trigger.player.recover(trigger.num);
}
else player.draw();
},
},
//新1v1 //新1v1
yanhuo:{ yanhuo:{
audio:2, audio:2,
@ -1101,16 +1206,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
lvli4:{ lvli4:{
log:false,
enable:'chooseToRespond',
filter:function(event,player){
if(player.storage.lvli>1) return false;
if(player.storage.lvli>0&&(player!=_status.currentPhase||!player.storage.choujue)) return false;
return (event.parent.name=='sha');
},
filterCard:function(){return false},
selectCard:-1,
viewAs:{name:'shan'},
ai:{ ai:{
skillTagFilter:function(player){ skillTagFilter:function(player){
if(player.storage.lvli>1) return false; if(player.storage.lvli>1) return false;
@ -1200,9 +1295,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){ filter:function(event,player){
return player.countCards('h')&&(ui.cardPile.hasChildNodes()||ui.discardPile.hasChildNodes()); return player.countCards('h')&&(ui.cardPile.hasChildNodes()||ui.discardPile.hasChildNodes());
}, },
check:function(event,player){ //check:function(event,player){
return player.countCards('h')<=player.hp; // return player.countCards('h')<=player.hp;
}, //},
content:function(){ content:function(){
'step 0' 'step 0'
player.discard(player.getCards('h')); player.discard(player.getCards('h'));
@ -1376,13 +1471,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
"biaozhao2":{ "biaozhao2":{
trigger:{ trigger:{
global:["loseEnd","cardsDiscardEnd"], global:["loseEnd","cardsDiscardEnd","useCardAfter","respondAfter"],
}, },
forced:true,
audio:"biaozhao", audio:"biaozhao",
filter:function (event,player){ filter:function (event,player){
if(!player.storage.biaozhao) return false; if(!player.storage.biaozhao) return false;
if(event.getParent().name=='biaozhao2') return false; var evt=event.getParent();
if(evt&&(evt.name=='useCard'||evt.name=='respond'||evt.name=='biaozhao2')) return false;
var suit=get.suit(player.storage.biaozhao[0]); var suit=get.suit(player.storage.biaozhao[0]);
var num=get.number(player.storage.biaozhao[0]); var num=get.number(player.storage.biaozhao[0]);
for(var i=0;i<event.cards.length;i++){ for(var i=0;i<event.cards.length;i++){
@ -2672,7 +2767,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
if(player.countCards('h')<=2) return true; if(player.countCards('h')<=2) return true;
// if(player.countCards('h')<=3&&!player.countCards('h','shan')) return true; // if(player.countCards('h')<=3&&!player.countCards('h','shan')) return true;
if(player.countCards('h',{type:'basic'})<=1) return true; //if(player.countCards('h',{type:'basic'})<=1) return true;
return false; return false;
}, },
content:function(){ content:function(){
@ -2753,17 +2848,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
shan:{ shan:{
enable:'chooseToRespond', enable:'chooseToUse',
viewAs:{name:'shan'}, viewAs:{name:'shan'},
mark:false, mark:false,
filterCard:function(){return false}, filterCard:function(){return false},
viewAsFilter:function(player){ viewAsFilter:function(player){
if(player.hasSkill('weijing_disable')) return false; if(player.hasSkill('weijing_disable')) return false;
if(!lib.filter.cardRespondable({name:'shan'},player)) return false;
if(_status.event.getParent().name!='sha') return false;
return true; return true;
}, },
onrespond:function(event,player){ onuse:function(event,player){
player.addTempSkill('weijing_disable','roundStart'); player.addTempSkill('weijing_disable','roundStart');
}, },
selectCard:-1, selectCard:-1,
@ -2775,7 +2868,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
skillTagFilter:function(player){ skillTagFilter:function(player){
if(player.hasSkill('weijing_disable')) return false; if(player.hasSkill('weijing_disable')) return false;
if(!lib.filter.cardRespondable({name:'sha'},player)) return false;
}, },
respondShan:true, respondShan:true,
} }
@ -4300,21 +4392,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fenyue2:{ fenyue2:{
mark:true, mark:true,
mod:{ mod:{
cardEnabled:function(){ cardEnabled2:function (card){
return false; if(get.position(card)=='h') return false;
}, },
cardUsable:function(){
return false;
},
cardRespondable:function(){
return false;
},
cardSavable:function(){
return false;
}
}, },
intro:{ intro:{
content:'不能使用或打出牌' content:'不能使用或打出手牌'
} }
}, },
zhuoshui:{ zhuoshui:{
@ -5320,11 +5403,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
shan:{ shan:{
enable:['chooseToRespond'], enable:['chooseToUse','chooseToRespond'],
audio:'fanghun', audio:'fanghun',
filterCard:{name:'sha'}, filterCard:{name:'sha'},
viewAs:{name:'shan'}, viewAs:{name:'shan'},
prompt:'将一张杀当闪打出', prompt:'将一张杀当闪使用或打出',
viewAsFilter:function(player){ viewAsFilter:function(player){
if(!player.storage.fanghun||player.storage.fanghun<0) return false; if(!player.storage.fanghun||player.storage.fanghun<0) return false;
if(!player.countCards('h','sha')) return false; if(!player.countCards('h','sha')) return false;
@ -5339,6 +5422,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.updateMarks(); player.updateMarks();
} }
}, },
onuse:function(result,player){
player.storage.fanghun--;
if(!player.storage.fanghun||player.storage.fanghun<0){
player.storage.fanghun=0;
player.unmarkSkill('fanghun');
}
else{
player.updateMarks();
}
},
check:function(){return 1}, check:function(){return 1},
ai:{ ai:{
respondShan:true, respondShan:true,
@ -5555,16 +5648,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cardDiscardable:function(card,player){ cardDiscardable:function(card,player){
if(player.storage.xiehui2&&player.storage.xiehui2.contains(card)) return false; if(player.storage.xiehui2&&player.storage.xiehui2.contains(card)) return false;
}, },
cardEnabled:function(card,player){ cardEnabled2:function(card,player){
if(player.storage.xiehui2&&player.storage.xiehui2.contains(card)) return false;
},
cardUsable:function(card,player){
if(player.storage.xiehui2&&player.storage.xiehui2.contains(card)) return false;
},
cardRespondable:function(card,player){
if(player.storage.xiehui2&&player.storage.xiehui2.contains(card)) return false;
},
cardSavable:function(card,player){
if(player.storage.xiehui2&&player.storage.xiehui2.contains(card)) return false; if(player.storage.xiehui2&&player.storage.xiehui2.contains(card)) return false;
}, },
}, },
@ -5771,6 +5855,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
animationColor:'orange', animationColor:'orange',
unique:true, unique:true,
limited:true, limited:true,
mark:null,
enable:'phaseUse', enable:'phaseUse',
zhuSkill:true, zhuSkill:true,
filter:function(event,player){ filter:function(event,player){
@ -6663,21 +6748,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:['shefu2'] group:['shefu2']
}, },
shefu2:{ shefu2:{
trigger:{global:['useCard','respondEnd']}, trigger:{global:['useCard']},
//priority:15, //priority:15,
audio:'shefu', audio:'shefu',
filter:function(event,player){ filter:function(event,player){
if(_status.currentPhase==player) return false; if(_status.currentPhase==player) return false;
if(event.name=='respond'){
if(event.getParent(2).name!='sha') return false;
}
return player.storage.shefu2&&player.storage.shefu2.contains(event.card.name); return player.storage.shefu2&&player.storage.shefu2.contains(event.card.name);
}, },
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
var effect=0; var effect=0;
if(trigger.card.name=='wuxie'||trigger.name=='respond'){ if(trigger.card.name=='wuxie'||trigger.card.name=='shan'){
if(get.attitude(player,trigger.player)<-1){ if(get.attitude(player,trigger.player)<-1){
effect=-1; effect=-1;
} }
@ -6691,7 +6773,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(trigger.targets&&trigger.targets.length){ if(trigger.targets&&trigger.targets.length){
str+='对'+get.translation(trigger.targets); str+='对'+get.translation(trigger.targets);
} }
str+='的'+get.translation(trigger.card)+'失效?' str+='使用的'+get.translation(trigger.card)+'失效?'
var next=player.chooseBool(str,function(){ var next=player.chooseBool(str,function(){
var player=_status.event.player; var player=_status.event.player;
var trigger=_status.event.getTrigger(); var trigger=_status.event.getTrigger();
@ -7568,6 +7650,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cardRespondable:function(card,player){ cardRespondable:function(card,player){
if(card.name=='shan'&&get.suit(card)!='heart') return false; if(card.name=='shan'&&get.suit(card)!='heart') return false;
}, },
cardEnabled:function(card,player){
if(card.name=='shan'&&get.suit(card)!='heart') return false;
},
} }
}, },
xunzhi:{ xunzhi:{
@ -7659,6 +7744,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
'step 1' 'step 1'
if(result.bool){ if(result.bool){
player.logSkill('junwei');
var cards=event.cards||result.links; var cards=event.cards||result.links;
for(var i=0;i<cards.length;i++){ for(var i=0;i<cards.length;i++){
player.storage.yinling.remove(cards[i]); player.storage.yinling.remove(cards[i]);
@ -7685,7 +7771,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 2' 'step 2'
if(result.bool&&result.targets&&result.targets.length){ if(result.bool&&result.targets&&result.targets.length){
var target=result.targets[0]; var target=result.targets[0];
player.logSkill('junwei',result.targets); player.line(result.targets);
event.target=target; event.target=target;
var nshan=target.countCards('h','shan'); var nshan=target.countCards('h','shan');
if(nshan==0){ if(nshan==0){
@ -8482,6 +8568,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
unique:true, unique:true,
juexingji:true, juexingji:true,
filter:function(event,player){ filter:function(event,player){
var zhu=get.zhu(player);
if(zhu&&zhu.isZhu){
var name=zhu.name
while(name.indexOf('_')!=-1){
name=name.slice(name.indexOf('_')+1);
}
if(name.indexOf('liubei')==0) return false;
}
return !player.storage.danji&&player.countCards('h')>player.hp; return !player.storage.danji&&player.countCards('h')>player.hp;
}, },
content:function(){ content:function(){
@ -9624,6 +9718,51 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
oldcihuai:{
audio:'cihuai',
trigger:{player:'phaseUseBegin'},
filter:function(event,player){
return player.countCards('h')>0;
},
check:function(event,player){
return !player.countCards('h','sha');
},
content:function(){
player.showHandcards();
if(!player.countCards('h','sha')) player.addTempSkill('oldcihuai2');
},
},
oldcihuai2:{
group:'oldcihuai3',
prompt:'视为使用一张杀',
enable:'chooseToUse',
viewAs:{name:'sha'},
filterCard:function(){return false},
selectCard:-1,
ai:{
presha:true,
respondSha:true,
},
},
oldcihuai3:{
trigger:{
player:['gainEnd','loseEnd'],
global:'die',
},
silent:true,
filter:function(event,player){
if(event.name=='gain'){
for(var i=0;i<event.cards.length;i++){
if(event.cards[i].original=='h') return true;
}
return false;
}
return true;
},
content:function(){
player.removeSkill('oldcihuai2');
},
},
cihuai:{ cihuai:{
trigger:{player:'phaseUseBegin'}, trigger:{player:'phaseUseBegin'},
direct:true, direct:true,
@ -10014,11 +10153,76 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
xiemu:{ xiemu:{
audio:2, audio:2,
trigger:{target:'useCardToBegin'}, enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.countCards('h','sha')>0;
},
filterCard:{name:'sha'},
check:function(card){return 6-get.value(card)},
content:function(){
'step 0'
var list=lib.group.slice(0);
list.remove('shen');
if(player.storage.xiemu2) list.removeArray(player.storage.xiemu2);
var list2=list.slice(0);
list2.sort(function(a,b){
return lib.skill.xiemu.count(b)-lib.skill.xiemu.count(a);
});
player.chooseControl(list).set('prompt','请选择一个势力').ai=function(){return list2[0]};
'step 1'
player.popup(result.control+2,get.groupnature(result.control));
game.log(player,'选择了','#g'+get.translation(result.control+2));
player.addTempSkill('xiemu2',{player:'phaseBegin'});
player.storage.xiemu2.add(result.control);
player.updateMarks('xiemu2');
},
ai:{
order:1,
result:{player:1},
},
count:function(group){
var player=_status.event.player;
return game.countPlayer(function(current){
return current!=player&&current.group==group&&get.attitude(current,player)<0;
});
},
},
xiemu2:{
onremove:true,
mark:true,
forced:true,
audio:'xiemu',
intro:{
content:function(storage){
return '已指定'+get.translation(storage)+'势力';
},
},
trigger:{
target:'useCardToTargeted'
},
init:function(player){
if(!player.storage.xiemu2) player.storage.xiemu2=[];
},
filter:function(event,player){
if(!player.storage.xiemu2) return false;
if(get.color(event.card)!='black') return false;
if(!event.player) return false;
if(event.player==player||!player.storage.xiemu2.contains(event.player.group)) return false;
return true;
},
content:function(){
player.draw(2);
},
},
oldxiemu:{
audio:'xiemu',
trigger:{target:'useCardToTargeted'},
filter:function(event,player){ filter:function(event,player){
if(get.color(event.card)!='black') return false; if(get.color(event.card)!='black') return false;
if(!event.player) return false; if(!event.player) return false;
if(event.player==player) return false; if(event.player==player) return false;
if(get.mode()!='guozhan') return false;
return player.countCards('h','sha')>0; return player.countCards('h','sha')>0;
}, },
direct:true, direct:true,
@ -11718,6 +11922,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
ai:{ ai:{
order:11, order:11,
respondShan:true,
save:true, save:true,
result:{ result:{
player:function(player){ player:function(player){
@ -12198,15 +12403,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
chongzhen1:{ chongzhen1:{
audio:2, audio:2,
trigger:{player:'shaBefore'}, trigger:{player:'useCard'},
filter:function(event,player){ filter:function(event,player){
if(event.skill!='longdan_sha'&&event.skill!='fanghun_sha') return false; if(event.skill!='longdan_shan'&&event.skill!='longdan_sha'&&
return event.target.countGainableCards(player,'h')>0; event.skill!='fanghun_shan'&&event.skill!='fanghun_sha') 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];
}, },
logTarget:'target',
prompt2:'每当你发动“龙胆”使用或打出一张手牌时,你可以立即获得对方的一张手牌。', prompt2:'每当你发动“龙胆”使用或打出一张手牌时,你可以立即获得对方的一张手牌。',
content:function(){ content:function(){
player.gainPlayerCard(trigger.target,'h',true); var target=lib.skill.chongzhen1.logTarget(trigger,player);
player.gainPlayerCard(target,'h',true);
} }
}, },
chongzhen2:{ chongzhen2:{
@ -12563,11 +12774,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
chixin2:{ chixin2:{
enable:['chooseToRespond'], enable:['chooseToUse','chooseToRespond'],
filterCard:{suit:'diamond'}, filterCard:{suit:'diamond'},
viewAs:{name:'shan'}, viewAs:{name:'shan'},
position:'he', position:'he',
prompt:'将一张♦牌当闪打出', prompt:'将一张♦牌当闪使用或打出',
check:function(card){return 5-get.value(card)}, check:function(card){return 5-get.value(card)},
ai:{ ai:{
respondShan:true, respondShan:true,
@ -12808,7 +13019,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
hejin:'何进', hejin:'何进',
hansui:'韩遂', hansui:'韩遂',
niujin:'牛金', niujin:'牛金',
xinpi:'辛毗',
xpchijie:'持节',
xpchijie_info:'每回合限一次,当你成为其他角色使用牌的目标后,你可以获得如下效果:当此牌对其他角色造成伤害时,若此牌已对你造成过伤害,则你获得此牌;当此牌使用结算完成时,你可以获得此牌对应的所有实体牌。',
xpchijie3:'持节',
yinju:'引裾',
yinju_info:'限定技,出牌阶段,你可以选择一名其他角色。若如此做,当你对此角色使用牌时,你摸一张牌;当你即将对其造成伤害时,防止此伤害,然后其回复等量的体力。',
yinju2:'引裾',
mouzhu:'谋诛', mouzhu:'谋诛',
mouzhu_info:'出牌阶段限一次,你可以令一名有牌的其他角色交给你一张牌。然后若你的手牌数大于其,其选择视为对你使用一张【杀】或【决斗】。', mouzhu_info:'出牌阶段限一次,你可以令一名有牌的其他角色交给你一张牌。然后若你的手牌数大于其,其选择视为对你使用一张【杀】或【决斗】。',
yanhuo:'延祸', yanhuo:'延祸',
@ -12932,7 +13150,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhengbi:'征辟', zhengbi:'征辟',
zhengbi_info:'出牌阶段开始时,你可以选择一项:选择一名未受伤的其他角色,你对其使用的牌无距离限制且不计入使用次数直到回合结束;或将一张基本牌交给一名其他角色,然后其交给你一张非基本牌或两张基本牌。', zhengbi_info:'出牌阶段开始时,你可以选择一项:选择一名未受伤的其他角色,你对其使用的牌无距离限制且不计入使用次数直到回合结束;或将一张基本牌交给一名其他角色,然后其交给你一张非基本牌或两张基本牌。',
fengying:'奉迎', fengying:'奉迎',
fengying_info:'限定技出牌阶段你可以弃置所有手牌。若如此做你可以令等量的角色将手牌摸至X张(X为其手牌上限且至多为5)。然后,你结束出牌阶段,并在当前回合结束后进行一个新的回合。', fengying_info:'限定技出牌阶段你可以弃置所有手牌。若如此做你可以令等量的角色将手牌摸至X张(X为其体力上限且至多为5)。然后,你结束出牌阶段,并在当前回合结束后进行一个新的回合。',
qingzhong:'清忠', qingzhong:'清忠',
qingzhong_info:'出牌阶段开始时,你可以摸两张牌,若如此做,本阶段结束时,你与手牌数最少的角色交换手牌。', qingzhong_info:'出牌阶段开始时,你可以摸两张牌,若如此做,本阶段结束时,你与手牌数最少的角色交换手牌。',
@ -13178,7 +13396,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
nuzhan2:'怒斩', nuzhan2:'怒斩',
nuzhan_info:'锁定技,你每当你使用由一张锦囊牌转化而来的【杀】时,你可以额外使用一张杀;锁定技,你使用的由一张装备牌转化而来的【杀】的伤害值基数+1', nuzhan_info:'锁定技,你每当你使用由一张锦囊牌转化而来的【杀】时,你可以额外使用一张杀;锁定技,你使用的由一张装备牌转化而来的【杀】的伤害值基数+1',
danji:'单骑', danji:'单骑',
danji_info:'觉醒技,准备阶段开始时,若你的手牌数大于你的体力值你减1点体力上限然后获得“马术”和“怒斩”', danji_info:'觉醒技,准备阶段开始时,若你的手牌数大于你的体力值且本局游戏的主公不为刘备你减1点体力上限然后获得“马术”和“怒斩”',
tunchu:'屯储', tunchu:'屯储',
tunchu_info:'摸牌阶段摸牌时,若你没有“粮”,你可以额外摸两张牌,然后可以将任意张手牌置于你的武将上,称为“粮”,只要你的武将牌上有“粮”,你便不能使用【杀】', tunchu_info:'摸牌阶段摸牌时,若你没有“粮”,你可以额外摸两张牌,然后可以将任意张手牌置于你的武将上,称为“粮”,只要你的武将牌上有“粮”,你便不能使用【杀】',
shuliang:'输粮', shuliang:'输粮',
@ -13297,6 +13515,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fenxun2:'奋迅', fenxun2:'奋迅',
spmengjin:'猛进', spmengjin:'猛进',
xiemu:'协穆', xiemu:'协穆',
xiemu2:'协穆',
oldxiemu:'协穆',
naman:'纳蛮', naman:'纳蛮',
zuixiang:'醉乡', zuixiang:'醉乡',
manjuan:'漫卷', manjuan:'漫卷',
@ -13341,6 +13561,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kunfen_info:'锁定技,结束阶段开始时,你失去1点体力,然后摸两张牌', kunfen_info:'锁定技,结束阶段开始时,你失去1点体力,然后摸两张牌',
fengliang:'逢亮', fengliang:'逢亮',
fengliang_info:'觉醒技,当你进入濒死状态时,你减1点体力上限并将体力值回复至2点,然后获得技能挑衅,将困奋改为非锁定技', fengliang_info:'觉醒技,当你进入濒死状态时,你减1点体力上限并将体力值回复至2点,然后获得技能挑衅,将困奋改为非锁定技',
oldcihuai:'刺槐',
oldcihuai2:'刺槐',
oldcihuai_info:'出牌阶段开始时,你可以展示手牌。若其中没有【杀】,则当你于此阶段内手牌数变化之前/有角色死亡之前需要使用【杀】时,你可以使用无对应实体牌的【杀】。',
cihuai:'刺槐', cihuai:'刺槐',
cihuai_info:'出牌阶段开始时,若你的手牌中没有【杀】,则你可以展示你的手牌,并视为对一名角色使用一张【杀】。', cihuai_info:'出牌阶段开始时,若你的手牌中没有【杀】,则你可以展示你的手牌,并视为对一名角色使用一张【杀】。',
gongao_info:'锁定技,每当一名角色死亡后,你增加一点体力上限,回复一点体力。', gongao_info:'锁定技,每当一名角色死亡后,你增加一点体力上限,回复一点体力。',
@ -13354,7 +13577,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinmanjuan_info:'锁定技,当你不因【漫卷】或【醉乡】而获得牌时,你将此牌置入弃牌堆。然后若此时处于你的回合内,则你可以从弃牌堆中选择获得一张与此牌点数相同的其他牌。', xinmanjuan_info:'锁定技,当你不因【漫卷】或【醉乡】而获得牌时,你将此牌置入弃牌堆。然后若此时处于你的回合内,则你可以从弃牌堆中选择获得一张与此牌点数相同的其他牌。',
zuixiang_info:'限定技准备阶段开始时你可以展示牌堆顶的3张牌并置于你的武将牌上。你不可使用或打出与该些牌同类的牌所有同类牌对你无效。之后每个你的准备阶段你须重复展示一次直至这些牌中任意两张点数相同时将你武将牌上的全部牌置于你的手上。', zuixiang_info:'限定技准备阶段开始时你可以展示牌堆顶的3张牌并置于你的武将牌上。你不可使用或打出与该些牌同类的牌所有同类牌对你无效。之后每个你的准备阶段你须重复展示一次直至这些牌中任意两张点数相同时将你武将牌上的全部牌置于你的手上。',
naman_info:'你可以获得其他角色打出的杀', naman_info:'你可以获得其他角色打出的杀',
xiemu_info:'每当你成为其他角色的黑色牌的目标,可以弃置一张杀并摸两张牌', xiemu_info:'出牌阶段限一次,你可以弃置一张【杀】并选择一个势力。若如此做,直到你的下回合开始时,当你成为该势力的其他角色使用的黑色牌的目标时,你摸两张牌。',
oldxiemu_info:'每当你成为其他角色的黑色牌的目标,可以弃置一张杀并摸两张牌',
spmengjin_info:'每当你使用一张杀,可以弃置目标一张牌', spmengjin_info:'每当你使用一张杀,可以弃置目标一张牌',
fenxun_info:'出牌阶段限一次你可以弃置一张牌并选择一名其他角色然后本回合你计算与其的距离视为1', fenxun_info:'出牌阶段限一次你可以弃置一张牌并选择一名其他角色然后本回合你计算与其的距离视为1',
yingbin_info:'锁定技,有“咒”的角色使用与“咒”花色相同的牌时,你摸一张牌;当你因同一名角色的同一张“咒”的效果摸第二张牌时,移去该“咒”', yingbin_info:'锁定技,有“咒”的角色使用与“咒”花色相同的牌时,你摸一张牌;当你因同一名角色的同一张“咒”的效果摸第二张牌时,移去该“咒”',

View File

@ -95,7 +95,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audioname:['re_caocao'], audioname:['re_caocao'],
unique:true, unique:true,
zhuSkill:true, zhuSkill:true,
trigger:{player:'chooseToRespondBegin'}, trigger:{player:['chooseToRespondBegin','chooseToUse']},
filter:function(event,player){ filter:function(event,player){
if(event.responded) return false; if(event.responded) return false;
if(player.storage.hujiaing) return false; if(player.storage.hujiaing) return false;
@ -457,7 +457,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.judge(function(card){ player.judge(function(card){
if(get.color(card)=='black') return 1.5; if(get.color(card)=='black') return 1.5;
return -1.5; return -1.5;
},ui.special); });
"step 1" "step 1"
if(result.judge>0){ if(result.judge>0){
event.cards.push(result.card); event.cards.push(result.card);
@ -470,13 +470,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
else{ else{
for(var i=0;i<event.cards.length;i++){ for(var i=0;i<event.cards.length;i++){
if(get.position(event.cards[i])!='s'){ if(get.position(event.cards[i])!='d'){
event.cards.splice(i,1);i--; event.cards.splice(i,1);i--;
} }
} }
player.gain(event.cards);
if(event.cards.length){ if(event.cards.length){
player.$draw(event.cards); player.gain(event.cards,'gain2');
} }
event.finish(); event.finish();
} }
@ -485,9 +484,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.goto(0); event.goto(0);
} }
else{ else{
player.gain(event.cards);
if(event.cards.length){ if(event.cards.length){
player.$draw(event.cards); player.gain(event.cards,'gain2');
} }
} }
} }
@ -555,7 +553,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
qingguo:{ qingguo:{
audio:2, audio:2,
enable:['chooseToRespond'], enable:['chooseToRespond','chooseToUse'],
filterCard:function(card){ filterCard:function(card){
return get.color(card)=='black'; return get.color(card)=='black';
}, },
@ -563,7 +561,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
viewAsFilter:function(player){ viewAsFilter:function(player){
if(!player.countCards('h',{color:'black'})) return false; if(!player.countCards('h',{color:'black'})) return false;
}, },
prompt:'将一张黑色手牌当闪打出', prompt:'将一张黑色手牌当闪使用或打出',
check:function(){return 1}, check:function(){return 1},
ai:{ ai:{
respondShan:true, respondShan:true,
@ -1378,10 +1376,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shan:{ shan:{
audio:'longdan_sha', audio:'longdan_sha',
audioname:['re_zhaoyun'], audioname:['re_zhaoyun'],
enable:['chooseToRespond'], enable:['chooseToRespond','chooseToUse'],
filterCard:{name:'sha'}, filterCard:{name:'sha'},
viewAs:{name:'shan'}, viewAs:{name:'shan'},
prompt:'将一张杀当闪打出', prompt:'将一张杀当闪使用或打出',
check:function(){return 1}, check:function(){return 1},
viewAsFilter:function(player){ viewAsFilter:function(player){
if(!player.countCards('h','sha')) return false; if(!player.countCards('h','sha')) return false;

View File

@ -1357,7 +1357,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
shan:{ shan:{
trigger:{player:'chooseToRespondBegin'}, trigger:{player:['chooseToRespondBegin','chooseToUseBegin']},
filter:function(event,player){ filter:function(event,player){
if(!player.isLinked()) return false; if(!player.isLinked()) return false;
if(event.responded) return false; if(event.responded) return false;
@ -1690,7 +1690,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
hyunshen:{ hyunshen:{
trigger:{player:'respond'}, trigger:{player:['respond','useCard']},
filter:function(event,player){ filter:function(event,player){
return event.card.name=='shan'; return event.card.name=='shan';
}, },
@ -1743,7 +1743,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
hlingbo:{ hlingbo:{
audio:['lingbo',2], audio:['lingbo',2],
trigger:{player:'respond'}, trigger:{player:['respond','useCard']},
filter:function(event,player){ filter:function(event,player){
return event.card.name=='shan'; return event.card.name=='shan';
}, },
@ -2374,7 +2374,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(num==0) return false; if(num==0) return false;
return num%2==1; return num%2==1;
}, },
prompt:'将一张手牌当作闪打出', prompt:'将一张手牌当作闪使用或打出',
check:function(card){return 6-get.value(card)} check:function(card){return 6-get.value(card)}
}, },
yaotong3:{ yaotong3:{
@ -6426,7 +6426,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
shengong:{ shengong:{
trigger:{player:'chooseToRespondBegin'}, trigger:{player:['chooseToRespondBegin']},
filter:function(event,player){ filter:function(event,player){
if(event.responded) return false; if(event.responded) return false;
if(!player.countCards('he')) return false; if(!player.countCards('he')) return false;
@ -6714,7 +6714,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterCard:{color:'red'}, filterCard:{color:'red'},
viewAs:{name:'shan'}, viewAs:{name:'shan'},
position:'he', position:'he',
prompt:'将一张红色牌当闪打出', prompt:'将一张红色牌当闪使用或打出',
check:function(card){return 6-get.value(card)} check:function(card){return 6-get.value(card)}
}, },
duoren:{ duoren:{

View File

@ -2360,7 +2360,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
zhangmu:{ zhangmu:{
trigger:{player:'chooseToRespondBegin'}, trigger:{player:['chooseToRespondBegin','chooseToUseBegin']},
filter:function(event,player){ filter:function(event,player){
if(event.responded) return false; if(event.responded) return false;
if(!event.filterCard({name:'shan'})) return false; if(!event.filterCard({name:'shan'})) return false;
@ -2756,7 +2756,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
feixu:{ feixu:{
trigger:{global:'respond'}, trigger:{global:['useCard','respond']},
filter:function(event,player){ filter:function(event,player){
return event.card&&event.card.name=='shan'; return event.card&&event.card.name=='shan';
}, },

View File

@ -454,10 +454,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.directindex=result.index; event.directindex=result.index;
} }
if(event.directindex==1){ if(event.directindex==1){
target.chooseUseTarget({name:'sha'},cards,true) target.chooseUseTarget({name:'sha'},cards,true,false)
} }
else{ else{
target.chooseUseTarget(card,true); target.chooseUseTarget(card,true,false,'nodistance');
} }
}, },
ai:{ ai:{
@ -1124,8 +1124,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
if(event.num>1) player.draw(2); if(event.num>1) player.draw(2);
if(event.num>2){ if(event.num>2){
player.addTempSkill('lingren_jianxiong',{player:'phaseBefore'}); player.addTempSkill('lingren_jianxiong',{player:'phaseBegin'});
player.addTempSkill('lingren_xingshang',{player:'phaseBefore'}); player.addTempSkill('lingren_xingshang',{player:'phaseBegin'});
} }
}, },
ai:{ ai:{
@ -2303,7 +2303,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function (event,player){ filter:function (event,player){
if(player.storage.xinfu_yanyu2>=3) return false; if(player.storage.xinfu_yanyu2>=3) return false;
var evt=event.getParent(); var evt=event.getParent();
if(evt&&evt.name=='useCard') return false; if(evt&&(evt.name=='useCard'||evt.name=='respond')) return false;
var type=player.storage.xinfu_yanyu; var type=player.storage.xinfu_yanyu;
var cards=event.cards; var cards=event.cards;
for(var i=0;i<cards.length;i++){ for(var i=0;i<cards.length;i++){
@ -3854,7 +3854,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function (event,player){ filter:function (event,player){
if(player.hasSkill('guhuo_phase'))return false; if(player.hasSkill('guhuo_phase'))return false;
if(!player.countCards('h')) return false; if(!player.countCards('h')) return false;
var list=['sha','tao','jiu','taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman']; var list=['sha','shan','tao','jiu','taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman'];
if(get.mode()=='guozhan'){ if(get.mode()=='guozhan'){
list=list.concat(['xietianzi','shuiyanqijunx','lulitongxin','lianjunshengyan','chiling','diaohulishan','yuanjiao','huoshaolianying']); list=list.concat(['xietianzi','shuiyanqijunx','lulitongxin','lianjunshengyan','chiling','diaohulishan','yuanjiao','huoshaolianying']);
} }
@ -3897,7 +3897,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return '将一张手牌做当'+get.translation(links[0][2])+'使用'; return '将一张手牌做当'+get.translation(links[0][2])+'使用';
}, },
}, },
ai:{save:true}, ai:{
save:true,
respondShan:true,
skillTagFilter:function(player){
if(player.hasSkill('guhuo_phase')) return false;
},
},
}, },
"guhuo_guess":{ "guhuo_guess":{
audio:2, audio:2,
@ -4674,7 +4680,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"yizan_respond_shan":{ "yizan_respond_shan":{
complexCard:true, complexCard:true,
audio:2, audio:2,
enable:["chooseToRespond"], enable:["chooseToUse","chooseToRespond"],
filterCard:function (card,player,target){ filterCard:function (card,player,target){
if(player.storage.yizan) return get.type(card)=='basic'; if(player.storage.yizan) return get.type(card)=='basic';
else if(ui.selected.cards.length){ else if(ui.selected.cards.length){
@ -4703,7 +4709,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
prompt:function (){ prompt:function (){
var player=_status.event.player; var player=_status.event.player;
var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌'; var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌';
return '将'+str+'当做闪打出'; return '将'+str+'当做闪使用或打出';
}, },
check:function (card){ check:function (card){
if(!ui.selected.cards.length&&get.type(card)=='basic') return 6; if(!ui.selected.cards.length&&get.type(card)=='basic') return 6;
@ -4758,7 +4764,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
silent:true, silent:true,
popup:false, popup:false,
trigger:{ trigger:{
player:["respond","useCard"], player:["respond","useCard1"],
}, },
filter:function (event,player){ filter:function (event,player){
if(event.skill!='yizan_respond_sha'&&event.skill!='yizan_respond_shan'&&event.skill!='yizan_use_backup') return false; if(event.skill!='yizan_respond_sha'&&event.skill!='yizan_respond_shan'&&event.skill!='yizan_use_backup') return false;
@ -5273,29 +5279,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
"rw_bagua_skill":{ "rw_bagua_skill":{
equipSkill:true,
inherit:"bagua_skill", inherit:"bagua_skill",
trigger:{
player:"chooseToRespondBegin",
},
filter:function (event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.responded) return false;
if(!event.filterCard({name:'shan'})) return false;
if(!lib.filter.cardRespondable({name:'shan'},player,event)) return false;
var evt=event.getParent();
if(evt.player&&evt.player.hasSkillTag('unequip',false,{
name:evt.card?evt.card.name:null,
target:player,
card:evt.card
})) return false;
return true;
},
audio:"bagua_skill", audio:"bagua_skill",
check:function (event,player){
if(get.damageEffect(player,event.player,player)>=0) return false;
return true;
},
content:function (){ content:function (){
"step 0" "step 0"
player.judge('rewrite_bagua',function(card){return (get.suit(card)!='spade')?1.5:-0.5}); player.judge('rewrite_bagua',function(card){return (get.suit(card)!='spade')?1.5:-0.5});
@ -5306,19 +5291,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.result={bool:true,card:{name:'shan'}} trigger.result={bool:true,card:{name:'shan'}}
} }
}, },
ai:{
effect:{
target:function (card,player,target,effect){
if(player.getEquip('qinggang')&&card.name=='sha'||target.hasSkillTag('unequip2')) return;
if(player.hasSkillTag('unequip',false,{
name:card?card.name:null,
target:player,
card:card
})) return;
if(get.tag(card,'respondShan')) return 0.5;
},
},
},
}, },
"rw_baiyin_skill":{ "rw_baiyin_skill":{
equipSkill:true, equipSkill:true,
@ -5346,7 +5318,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"rw_lanyinjia":{ "rw_lanyinjia":{
equipSkill:true, equipSkill:true,
inherit:"lanyinjia", inherit:"lanyinjia",
enable:["chooseToRespond"], enable:["chooseToRespond","chooseToUse"],
filterCard:true, filterCard:true,
viewAs:{ viewAs:{
name:"shan", name:"shan",
@ -5354,7 +5326,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
viewAsFilter:function (player){ viewAsFilter:function (player){
if(!player.countCards('h')) return false; if(!player.countCards('h')) return false;
}, },
prompt:"将一张手牌当闪打出", prompt:"将一张手牌当闪使用或打出",
check:function (card){ check:function (card){
return 6-get.value(card); return 6-get.value(card);
}, },

View File

@ -585,8 +585,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
else{ else{
player.chooseTarget('是否对'+get.translation(target)+'或其攻击范围内的一名角色造成1点伤害',function(card,player,target){ player.chooseTarget('是否对'+get.translation(target)+'或其攻击范围内的一名角色造成1点伤害',function(card,player,target){
return target==event.target||get.distance(event.target,target,'attack')<=1; return target==_status.event.targetx||get.distance(_status.event.targetx,target,'attack')<=1;
}).ai=function(target){ }).set('targetx',event.target).ai=function(target){
var player=_status.event.player; var player=_status.event.player;
return get.damageEffect(target,player,player) return get.damageEffect(target,player,player)
}; };
@ -756,7 +756,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
"step 0" "step 0"
targets[0].chooseCard('交给'+get.translation(player)+'一张【杀】或武器牌,否则视为对'+get.translation(targets[1])+'使用一张【杀】','he',function(card){ targets[0].chooseCard('交给'+get.translation(player)+'一张【杀】或武器牌,否则视为对'+get.translation(targets[1])+'使用一张【杀】','he',function(card){
return card.name=='sha'||get.subtype(card)=='equip1'; return get.name(card)=='sha'||get.subtype(card)=='equip1';
}).ai=function(card){ }).ai=function(card){
var player=_status.event.player; var player=_status.event.player;
var target=_status.event.getParent('xinzhige').targets[1]; var target=_status.event.getParent('xinzhige').targets[1];
@ -1008,12 +1008,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xintaoluan4:{ xintaoluan4:{
audio:'taoluan', audio:'taoluan',
prompt:'将一张牌当做闪使用', prompt:'将一张牌当做闪使用',
enable:'chooseToRespond', enable:'chooseToUse',
filter:function(event,player){ filter:function(event,player){
if(event.parent.name!='sha') return false;
return !player.storage.xintaoluan.contains('shan')&&!player.hasSkill('xintaoluan3')&&!_status.dying.length; return !player.storage.xintaoluan.contains('shan')&&!player.hasSkill('xintaoluan3')&&!_status.dying.length;
}, },
onrespond:function(result,player){ onuse:function(result,player){
player.storage.xintaoluan.add('shan'); player.storage.xintaoluan.add('shan');
}, },
filterCard:true, filterCard:true,
@ -1072,7 +1071,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
xintaoluan6:{ xintaoluan6:{
trigger:{player:'phaseAfter'}, trigger:{global:'phaseAfter'},
silent:true, silent:true,
content:function(){ content:function(){
player.storage.xintaoluan=[]; player.storage.xintaoluan=[];
@ -2456,7 +2455,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return 10-val; return 10-val;
} }
}).set('four',four).set('suits2',suits2).set('nofour',nofour); }).set('four',four).set('suits2',suits2).set('nofour',nofour).set('promptx',[player.storage.bizhuan]);
event.four=four; event.four=four;
event.nofour=nofour; event.nofour=nofour;
"step 1" "step 1"
@ -3113,15 +3112,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
prompt2+='名'+get.translation(trigger.card)+'的目标' prompt2+='名'+get.translation(trigger.card)+'的目标'
player.chooseTarget([1,player.storage.fumian_red],get.prompt('fumian'),function(card,player,target){ player.chooseTarget([1,player.storage.fumian_red],get.prompt('fumian'),function(card,player,target){
var trigger=_status.event.getTrigger();
var player=_status.event.player; var player=_status.event.player;
if(trigger.targets.contains(target)) return false; if(_status.event.targets.contains(target)) return false;
return lib.filter.targetEnabled2(trigger.card,player,target); return lib.filter.targetEnabled2(_status.event.card,player,target);
}).set('prompt2',prompt2).set('ai',function(target){ }).set('prompt2',prompt2).set('ai',function(target){
var trigger=_status.event.getTrigger(); var trigger=_status.event.getTrigger();
var player=_status.event.player; var player=_status.event.player;
return get.effect(target,trigger.card,player,player); return get.effect(target,trigger.card,player,player);
}); }).set('targets',trigger.targets).set('card',trigger.card);
'step 1' 'step 1'
if(result.bool){ if(result.bool){
if(!event.isMine()) game.delayx(); if(!event.isMine()) game.delayx();
@ -3681,12 +3679,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
taoluan3:{}, taoluan3:{},
taoluan4:{ taoluan4:{
prompt:'将一张牌当做闪使用', prompt:'将一张牌当做闪使用',
enable:'chooseToRespond', enable:'chooseToUse',
filter:function(event,player){ filter:function(event,player){
if(event.parent.name!='sha') return false;
return !player.storage.taoluan.contains('shan')&&!player.hasSkill('taoluan3')&&!_status.dying.length; return !player.storage.taoluan.contains('shan')&&!player.hasSkill('taoluan3')&&!_status.dying.length;
}, },
onrespond:function(result,player){ onuse:function(result,player){
player.storage.taoluan.add('shan'); player.storage.taoluan.add('shan');
}, },
filterCard:true, filterCard:true,
@ -4525,7 +4522,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.tothrow.push(cards[i]); event.tothrow.push(cards[i]);
} }
} }
game.cardsDiscard(event.tothrow); while(event.tothrow.length){
ui.cardPile.insertBefore(event.tothrow.pop(),ui.cardPile.firstChild);
}
} }
else{ else{
target.addSkill('duliang2'); target.addSkill('duliang2');
@ -4538,6 +4537,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.gain(event.cards2,'draw'); target.gain(event.cards2,'draw');
game.log(target,'获得了'+get.cnNumber(event.cards2.length)+'张牌'); game.log(target,'获得了'+get.cnNumber(event.cards2.length)+'张牌');
} }
game.updateRoundNumber();
}, },
ai:{ ai:{
order:4, order:4,
@ -4857,7 +4857,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:['jieyue3','jieyue4'] group:['jieyue3','jieyue4']
}, },
jieyue3:{ jieyue3:{
enable:['chooseToRespond'], enable:['chooseToRespond','chooseToUse'],
filterCard:function(card){ filterCard:function(card){
return get.color(card)=='red'; return get.color(card)=='red';
}, },
@ -4866,7 +4866,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.countCards('h',{color:'red'})) return false; if(!player.countCards('h',{color:'red'})) return false;
}, },
audio:true, audio:true,
prompt:'将一张红色手牌当闪打出', prompt:'将一张红色手牌当闪使用或打出',
check:function(){return 1}, check:function(){return 1},
ai:{ ai:{
respondShan:true, respondShan:true,
@ -5482,14 +5482,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var cards=trigger.responded.cards; var cards=trigger.responded.cards;
event.cards=cards; event.cards=cards;
player.chooseTarget('忠勇:将'+get.translation(trigger.responded.cards)+'交给一名角色',function(card,player,target){ player.chooseTarget('忠勇:将'+get.translation(trigger.responded.cards)+'交给一名角色',function(card,player,target){
return target!=_status.event.getTrigger().target; return target!=_status.event.source;
}).set('ai',function(target){ }).set('ai',function(target){
var att=get.attitude(_status.event.player,target); var att=get.attitude(_status.event.player,target);
if(target.countCards('h','shan')&&target.countCards('h')>=2){ if(target.countCards('h','shan')&&target.countCards('h')>=2){
att/=1.5; att/=1.5;
} }
return att; return att;
}); }).set('source',trigger.target);
"step 1" "step 1"
if(result.bool){ if(result.bool){
player.logSkill('zhongyong',result.targets); player.logSkill('zhongyong',result.targets);
@ -5502,19 +5502,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish(); event.finish();
} }
"step 2" "step 2"
if(player.hasSkill('jiu')){
game.broadcastAll(function(player){
player.removeSkill('jiu');
},player);
event.jiu=true;
}
player.chooseToUse('是否对'+get.translation(trigger.target)+'再使用一张杀?', player.chooseToUse('是否对'+get.translation(trigger.target)+'再使用一张杀?',
{name:'sha'},trigger.target,-1); {name:'sha'},trigger.target,-1);
"step 3"
if(result.bool);
else if(event.jiu){
player.addSkill('jiu');
}
} }
}, },
xinzhongyong:{ xinzhongyong:{
@ -5531,10 +5520,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.cards2=trigger.responded.cards.slice(0); event.cards2=trigger.responded.cards.slice(0);
} }
player.chooseTarget(get.prompt2('zhongyong'),function(card,player,target){ player.chooseTarget(get.prompt2('zhongyong'),function(card,player,target){
return target!=_status.event.getTrigger().target&&target!=player; return target!=_status.event.source&&target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
return get.attitude(_status.event.player,target); return get.attitude(_status.event.player,target);
}); }).set('source',trigger.target);
"step 1" "step 1"
if(result.bool){ if(result.bool){
event.target=result.targets[0]; event.target=result.targets[0];
@ -5699,12 +5688,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
shifei:{ shifei:{
audio:2, audio:2,
trigger:{player:'chooseToRespondBegin'}, trigger:{player:['chooseToRespondBegin','chooseToUseBegin']},
filter:function(event,player){ filter:function(event,player){
if(!_status.currentPhase) return false; if(!_status.currentPhase) return false;
if(event.responded) return false; if(event.responded) return false;
if(!event.filterCard({name:'shan'})) return false; if(!event.filterCard({name:'shan'})) return false;
if(!lib.filter.cardRespondable({name:'shan'},player,event)) return false; if(event.name!='chooseToUse'&&!lib.filter.cardRespondable({name:'shan'},player,event)) return false;
return true; return true;
}, },
check:function(event,player){ check:function(event,player){
@ -6234,8 +6223,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterCard:true, filterCard:true,
selectCard:-1, selectCard:-1,
filter:function(event,player){ filter:function(event,player){
if(!player.countCards('h')) return false;
if(player.storage.zhanjue>=2) return false; if(player.storage.zhanjue>=2) return false;
var hs=player.getCards('h');
if(!hs.length) return false;
for(var i=0;i<hs.length;i++){
var mod2=game.checkMod(hs[i],player,'unchanged','cardEnabled2',player);
if(mod2===false) return false;
}
return true; return true;
}, },
viewAs:{name:'juedou'}, viewAs:{name:'juedou'},
@ -6427,8 +6421,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else if(event.current.group=='shu'){ else if(event.current.group=='shu'){
var next=event.current.chooseToRespond('是否替'+get.translation(player)+'对'+get.translation(target)+'使用一张杀', var next=event.current.chooseToRespond('是否替'+get.translation(player)+'对'+get.translation(target)+'使用一张杀',
function(card){ function(card){
var evt=_status.event.getParent(); var evt=_status.event.source;
return evt.player.canUse(card,evt.target)&&card.name=='sha'; return card.name=='sha'||evt.source.canUse(card,evt.target);
}); });
next.set('ai',function(card){ next.set('ai',function(card){
var event=_status.event; var event=_status.event;
@ -6488,10 +6482,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseTarget(get.prompt('zuoding'),'令一名目标角色摸一张牌',function(card,player,target){ player.chooseTarget(get.prompt('zuoding'),'令一名目标角色摸一张牌',function(card,player,target){
return _status.event.getTrigger().targets.contains(target); return _status.event.targets.contains(target);
}).set('ai',function(target){ }).set('ai',function(target){
return get.attitude(_status.event.player,target); return get.attitude(_status.event.player,target);
}); }).set('targets',trigger.targets);
'step 1' 'step 1'
if(result.bool){ if(result.bool){
player.logSkill('zuoding',result.targets); player.logSkill('zuoding',result.targets);
@ -6513,59 +6507,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
huomo:{ huomo:{
audio:2, audio:2,
trigger:{player:'chooseToRespondBegin'},
filter:function(event,player){
if(event.responded) return false;
if(!event.filterCard({name:'shan'})) return false;
if(!lib.filter.cardRespondable({name:'shan'},player,event)) return false;
if(player.storage.huomo&&player.storage.huomo.shan) return false;
if(event.parent.name!='sha') return false;
var hs=player.getCards('he',{color:'black'});
for(var i=0;i<hs.length;i++){
if(get.type(hs[i])!='basic'){
break;
}
}
if(i==hs.length) return false;
return true;
},
direct:true,
content:function(){
"step 0"
player.chooseCard(get.prompt2('huomo'),'he',function(card){
return get.type(card)!='basic'&&get.color(card)=='black';
}).set('ai',function(card){
if(!_status.event.player.countCards('h','shan')){
return 8-get.value(card);
}
return 6-get.value(card);
});
"step 1"
if(result.bool){
trigger.untrigger();
trigger.responded=true;
trigger.result={bool:true,card:{name:'shan'}}
player.lose(result.cards,ui.special);
player.$throw(result.cards);
event.card=result.cards[0];
player.logSkill('huomo');
if(!player.storage.huomo) player.storage.huomo={};
player.storage.huomo.shan=true;
}
else{
event.finish();
}
'step 2'
if(player==game.me&&event.card){
game.delay();
}
'step 3'
if(event.card){
event.card.fix();
ui.cardPile.insertBefore(event.card,ui.cardPile.firstChild);
game.updateRoundNumber();
}
},
group:['huomo_count','huomo_count2','huomo_use'] group:['huomo_count','huomo_count2','huomo_use']
}, },
huomo2:{}, huomo2:{},
@ -6573,18 +6514,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
init:function(player){ init:function(player){
player.storage.huomo={}; player.storage.huomo={};
}, },
trigger:{global:'phaseZhunbeiBegin'}, trigger:{global:'phaseBefore'},
silent:true, silent:true,
content:function(){ content:function(){
player.storage.huomo={}; player.storage.huomo={};
} }
}, },
huomo_count2:{ huomo_count2:{
trigger:{player:['useCard','respond']}, trigger:{player:['useCard']},
silent:true, silent:true,
filter:function(event){ filter:function(event){
if(get.type(event.card)!='basic') return false; return get.type(event.card)=='basic';
return event.name=='useCard'||(event.card.name=='shan'&&event.getParent(2).name=='sha');
}, },
content:function(){ content:function(){
if(!player.storage.huomo) player.storage.huomo={}; if(!player.storage.huomo) player.storage.huomo={};
@ -6597,6 +6537,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.storage.huomo) player.storage.huomo={}; if(!player.storage.huomo) player.storage.huomo={};
if((!player.storage.huomo.sha&&event.filterCard({name:'sha'},player,event))|| if((!player.storage.huomo.sha&&event.filterCard({name:'sha'},player,event))||
(!player.storage.huomo.jiu&&event.filterCard({name:'jiu'},player,event))|| (!player.storage.huomo.jiu&&event.filterCard({name:'jiu'},player,event))||
(!player.storage.huomo.shan&&event.filterCard({name:'shan'},player,event))||
(!player.storage.huomo.tao&&event.filterCard({name:'tao'},player,event))){ (!player.storage.huomo.tao&&event.filterCard({name:'tao'},player,event))){
return player.hasCard(function(card){ return player.hasCard(function(card){
return get.color(card)=='black'&&get.type(card)!='basic'; return get.color(card)=='black'&&get.type(card)!='basic';
@ -6615,6 +6556,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.storage.huomo.tao&&event.filterCard({name:'tao'},player,event)){ if(!player.storage.huomo.tao&&event.filterCard({name:'tao'},player,event)){
list.push(['基本','','tao']); list.push(['基本','','tao']);
} }
if(!player.storage.huomo.shan&&event.filterCard({name:'shan'},player,event)){
list.push(['基本','','shan']);
}
if(!player.storage.huomo.jiu&&event.filterCard({name:'jiu'},player,event)){ if(!player.storage.huomo.jiu&&event.filterCard({name:'jiu'},player,event)){
list.push(['基本','','jiu']); list.push(['基本','','jiu']);
} }
@ -6629,6 +6573,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
switch(button.link[2]){ switch(button.link[2]){
case 'tao':return 5; case 'tao':return 5;
case 'jiu':return 3.01; case 'jiu':return 3.01;
case 'shan':return 3.01;
case 'sha': case 'sha':
if(button.link[3]=='fire') return 2.95; if(button.link[3]=='fire') return 2.95;
else if(button.link[3]=='fire') return 2.92; else if(button.link[3]=='fire') return 2.92;
@ -6819,6 +6764,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
unique:true, unique:true,
limited:true, limited:true,
mark:null,
content:function(){ content:function(){
'step 0' 'step 0'
player.storage.xingshuai=true; player.storage.xingshuai=true;
@ -6953,6 +6899,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'phaseAfter'}, trigger:{global:'phaseAfter'},
forced:true, forced:true,
popup:false, popup:false,
charlotte:true,
content:function(){ content:function(){
if(lib.config.glow_phase){ if(lib.config.glow_phase){
if(_status.currentPhase){ if(_status.currentPhase){
@ -7338,7 +7285,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
mieji:{ mieji:{
trigger:{player:'useCard'}, trigger:{player:'useCard2'},
direct:true, direct:true,
audio:2, audio:2,
filter:function(event,player){ filter:function(event,player){
@ -7348,13 +7295,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget(get.prompt('mieji'),'为'+get.translation(trigger.card)+'增加一个额外目标',function(card,player,target){ player.chooseTarget(get.prompt('mieji'),'为'+get.translation(trigger.card)+'增加一个额外目标',function(card,player,target){
var trigger=_status.event.getTrigger(); var trigger=_status.event;
return lib.filter.filterTarget(trigger.card,player,target)&&target!=trigger.targets[0]; return lib.filter.filterTarget(trigger.card,player,target)&&target!=trigger.targets[0];
}).set('autodelay',true).set('ai',function(target){ }).set('autodelay',true).set('ai',function(target){
var trigger=_status.event.getTrigger(); var trigger=_status.event.getTrigger();
var player=_status.event.player; var player=_status.event.player;
return get.effect(target,trigger.card,player,player); return get.effect(target,trigger.card,player,player);
}); }).set('targets',trigger.targets).set('card',trigger.card);
"step 1" "step 1"
if(result.bool){ if(result.bool){
trigger.targets.push(result.targets[0]); trigger.targets.push(result.targets[0]);
@ -7579,18 +7526,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
delete player.storage.qianxi2; delete player.storage.qianxi2;
}, },
mod:{ mod:{
cardEnabled:function(card,player){ cardEnabled2:function(card,player){
if(get.color(card)==player.storage.qianxi2) return false; if(get.color(card)==player.storage.qianxi2) return false;
}, },
cardUsable:function(card,player){
if(get.color(card)==player.storage.qianxi2) return false;
},
cardRespondable:function(card,player){
if(get.color(card)==player.storage.qianxi2) return false;
},
cardSavable:function(card,player){
if(get.color(card)==player.storage.qianxi2) return false;
}
}, },
intro:{ intro:{
content:function(color){ content:function(color){
@ -7715,14 +7653,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
if(goon){ if(goon){
player.chooseTarget('巧说:是否额外指定一名'+get.translation(trigger.card)+'的目标?',function(card,player,target){ player.chooseTarget('巧说:是否额外指定一名'+get.translation(trigger.card)+'的目标?',function(card,player,target){
var trigger=_status.event.getTrigger(); var trigger=_status.event;
if(trigger.targets.contains(target)) return false; if(trigger.targets.contains(target)) return false;
return lib.filter.targetEnabled2(trigger.card,_status.event.player,target); return lib.filter.targetEnabled2(trigger.card,_status.event.player,target);
}).set('ai',function(target){ }).set('ai',function(target){
var trigger=_status.event.getTrigger(); var trigger=_status.event.getTrigger();
var player=_status.event.player; var player=_status.event.player;
return get.effect(target,trigger.card,player,player); return get.effect(target,trigger.card,player,player);
}); }).set('targets',trigger.targets).set('card',trigger.card);
} }
else{ else{
if(!info.multitarget&&trigger.targets&&trigger.targets.length>1){ if(!info.multitarget&&trigger.targets&&trigger.targets.length>1){
@ -7745,11 +7683,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish(); event.finish();
'step 3' 'step 3'
player.chooseTarget('巧说:是否减少一名'+get.translation(trigger.card)+'的目标?',function(card,player,target){ player.chooseTarget('巧说:是否减少一名'+get.translation(trigger.card)+'的目标?',function(card,player,target){
return _status.event.getTrigger().targets.contains(target); return _status.event.targets.contains(target);
}).set('ai',function(target){ }).set('ai',function(target){
var trigger=_status.event.getTrigger(); var trigger=_status.event.getTrigger();
return -get.effect(target,trigger.card,trigger.player,_status.event.player); return -get.effect(target,trigger.card,trigger.player,_status.event.player);
}); }).set('targets',trigger.targets);
'step 4' 'step 4'
if(result.bool){ if(result.bool){
event.targets=result.targets; event.targets=result.targets;
@ -7969,8 +7907,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
dingpin:{ dingpin:{
group:['dingpin3','dingpin4'],
enable:'phaseUse', enable:'phaseUse',
usable:3, //usable:3,
audio:2, audio:2,
filter:function(event,player){ filter:function(event,player){
return player.countCards('h')>0; return player.countCards('h')>0;
@ -7978,12 +7917,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return target.hp<target.maxHp&&!target.tempSkills.dingpin2; return target.hp<target.maxHp&&!target.tempSkills.dingpin2;
}, },
filterCard:true, filterCard:function(card,player){
return !player.storage.dingpin.contains(get.type(card,'trick'));
},
check:function(card){ check:function(card){
return 6-get.value(card); return 6-get.value(card);
}, },
content:function(){ content:function(){
"step 0" "step 0"
player.storage.dingpin.push(get.type(cards[0],'trick'));
target.judge(function(card){ target.judge(function(card){
return get.color(card)=='black'?1:-1; return get.color(card)=='black'?1:-1;
}); });
@ -8008,6 +7950,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
dingpin2:{}, dingpin2:{},
dingpin3:{
trigger:{player:'useCard'},
silent:true,
content:function(){player.storage.dingpin.add(get.type(trigger.card,'trick'))},
},
dingpin4:{
trigger:{player:'phaseUseBefore'},
silent:true,
content:function(){player.storage.dingpin=[]},
},
faen:{ faen:{
audio:2, audio:2,
trigger:{global:['turnOverAfter','linkAfter']}, trigger:{global:['turnOverAfter','linkAfter']},
@ -8073,13 +8025,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 0" "step 0"
player.chooseTarget(get.prompt2('chanhui'),function(card,player,target){ player.chooseTarget(get.prompt2('chanhui'),function(card,player,target){
if(player==target) return false; if(player==target) return false;
var trigger=_status.event.getTrigger(); var trigger=_status.event;
return player.canUse(trigger.card,target)&&trigger.targets.contains(target)==false; return player.canUse(trigger.card,target)&&trigger.targets.contains(target)==false;
}).set('ai',function(target){ }).set('ai',function(target){
var trigger=_status.event.getTrigger(); var trigger=_status.event.getTrigger();
var player=_status.event.player; var player=_status.event.player;
return get.effect(target,trigger.card,player,player)+0.01; return get.effect(target,trigger.card,player,player)+0.01;
}); }).set('targets',trigger.targets).set('card',trigger.card);
"step 1" "step 1"
if(result.bool){ if(result.bool){
game.delay(0,200); game.delay(0,200);
@ -8442,12 +8394,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget(get.prompt2('oldqiuyuan'),function(card,player,target){ player.chooseTarget(get.prompt2('oldqiuyuan'),function(card,player,target){
return target!=player&&!_status.event.getTrigger().targets.contains(target)&&_status.event.getTrigger().player.canUse('sha',target,false)&&target.countCards('h'); return target!=player&&!_status.event.targets.contains(target)&&_status.event.playerx.canUse('sha',target,false)&&target.countCards('h');
}).set('ai',function(target){ }).set('ai',function(target){
var trigger=_status.event.getTrigger(); var trigger=_status.event.getTrigger();
var player=_status.event.player; var player=_status.event.player;
return get.effect(target,trigger.card,trigger.player,player)+0.1; return get.effect(target,trigger.card,trigger.player,player)+0.1;
}); }).set('targets',trigger.targets).set('playerx',trigger.player);
"step 1" "step 1"
if(result.bool){ if(result.bool){
var target=result.targets[0]; var target=result.targets[0];
@ -8483,12 +8435,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget(get.prompt2('qiuyuan'),function(card,player,target){ player.chooseTarget(get.prompt2('qiuyuan'),function(card,player,target){
return target!=player&&!_status.event.getTrigger().targets.contains(target)&&_status.event.getTrigger().player.canUse('sha',target,false); return target!=player&&!_status.event.targets.contains(target)&&_status.event.playerx.canUse('sha',target,false);
}).set('ai',function(target){ }).set('ai',function(target){
var trigger=_status.event.getTrigger(); var trigger=_status.event.getTrigger();
var player=_status.event.player; var player=_status.event.player;
return get.effect(target,trigger.card,trigger.player,player)+0.1; return get.effect(target,trigger.card,trigger.player,player)+0.1;
}); }).set('targets',trigger.targets).set('playerx',trigger.player);
"step 1" "step 1"
if(result.bool){ if(result.bool){
var target=result.targets[0]; var target=result.targets[0];
@ -9621,7 +9573,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
usable:1, usable:1,
audio:'qice_backup', audio:'qice_backup',
filter:function(event,player){ filter:function(event,player){
return player.countCards('h')>0 var hs=player.getCards('h');
if(!hs.length) return false;
for(var i=0;i<hs.length;i++){
var mod2=game.checkMod(hs[i],player,'unchanged','cardEnabled2',player);
if(mod2===false) return false;
}
return true;
}, },
chooseButton:{ chooseButton:{
dialog:function(player){ dialog:function(player){
@ -10857,11 +10815,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
"step 0" "step 0"
var next=player.chooseCardButton(get.prompt('zpaiyi'),player.storage.zyexin); var next=player.chooseCardButton(get.prompt('zpaiyi'),player.storage.zyexin);
next.filterButton=function(button){ next.set('filterButton',function(button){
var type=get.type(button.link); var type=get.type(button.link);
if(type=='delay'||type=='equip') return true; if(type=='delay'||type=='equip') return true;
return false; return false;
}; });
next.ai=function(button){ next.ai=function(button){
return get.value(button.link); return get.value(button.link);
} }
@ -11265,7 +11223,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xiantu3:'献图', xiantu3:'献图',
xiantu_info:'一名其他角色的出牌阶段开始时你可以摸两张牌然后交给其两张牌。若如此做此阶段结束时若该角色未于此阶段内杀死过角色则你失去1点体力。', xiantu_info:'一名其他角色的出牌阶段开始时你可以摸两张牌然后交给其两张牌。若如此做此阶段结束时若该角色未于此阶段内杀死过角色则你失去1点体力。',
dingpin:'定品', dingpin:'定品',
dingpin_info:'出牌阶段限三次你可以弃置一张手牌然后令一名已受伤的角色进行一次判定若结果为黑色该角色摸X张牌(X为该角色已损失的体力值),然后你本回合不能再对其发动〖定品〗;若结果为红色,将你的武将牌翻面。', dingpin_info:'出牌阶段你可以弃置一张手牌然后令一名已受伤的角色进行一次判定若结果为黑色该角色摸X张牌(X为该角色已损失的体力值),然后你本回合不能再对其发动〖定品〗;若结果为红色,将你的武将牌翻面。(你不能弃置本回合已弃置或使用过的类型的牌)',
faen:'法恩', faen:'法恩',
faen_info:'当一名角色翻至正面或横置后,你可以令其摸一张牌。', faen_info:'当一名角色翻至正面或横置后,你可以令其摸一张牌。',
jyzongshi:'纵适', jyzongshi:'纵适',

View File

@ -521,7 +521,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
taiji:{ taiji:{
trigger:{player:'respond'}, trigger:{player:['useCard','respond']},
filter:function(event,player){ filter:function(event,player){
return event.card.name=='shan'&&player.hasSha(); return event.card.name=='shan'&&player.hasSha();
}, },
@ -1414,14 +1414,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
jimin:{ jimin:{
enable:['chooseToRespond'], enable:['chooseToRespond','chooseToUse'],
filterCard:true, filterCard:true,
viewAs:{name:'shan'}, viewAs:{name:'shan'},
viewAsFilter:function(player){ viewAsFilter:function(player){
if(!player.countCards('h')) return false; if(!player.countCards('h')) return false;
if(player.countCards('e')) return false; if(player.countCards('e')) return false;
}, },
prompt:'将一张手牌当闪打出', prompt:'将一张手牌当闪使用或打出',
check:function(){return 1}, check:function(){return 1},
ai:{ ai:{
respondShan:true, respondShan:true,
@ -1646,7 +1646,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
tuqiang:{ tuqiang:{
trigger:{player:'respond'}, trigger:{player:['respond','useCard']},
filter:function(event,player){ filter:function(event,player){
return event.card&&event.card.name=='shan'; return event.card&&event.card.name=='shan';
}, },