v1.9.95.4

This commit is contained in:
Spmario233 2019-11-22 13:19:45 +08:00 committed by GitHub
parent 1f86656da4
commit 810d156e21
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 603 additions and 450 deletions

View File

@ -10,6 +10,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_kyousuke:['male','qun',4,['nk_shekong','key_huanjie']], key_kyousuke:['male','qun',4,['nk_shekong','key_huanjie']],
key_yuri:['female','qun',3,['yuri_xingdong','key_huanjie','yuri_wangxi'],['zhu']], key_yuri:['female','qun',3,['yuri_xingdong','key_huanjie','yuri_wangxi'],['zhu']],
key_haruko:['female','qun',4,['haruko_haofang','haruko_zhuishi']], key_haruko:['female','qun',4,['haruko_haofang','haruko_zhuishi']],
key_kagari:['female','shen',3,['kagari_zongsi']],
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']], // diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
// diy_hanlong:['male','wei',4,['siji','ciqiu']], // diy_hanlong:['male','wei',4,['siji','ciqiu']],
diy_feishi:['male','shu',3,['shuaiyan','moshou']], diy_feishi:['male','shu',3,['shuaiyan','moshou']],
@ -86,7 +87,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy:{ diy:{
diy_tieba:["diy_wenyang","ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua"], diy_tieba:["diy_wenyang","ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua"],
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"], diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko"], diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_kagari"],
}, },
}, },
characterIntro:{ characterIntro:{
@ -100,6 +101,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。', diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
}, },
characterTitle:{ characterTitle:{
key_kagari:'#bRewrite',
key_lucia:'#bRewrite', key_lucia:'#bRewrite',
key_kyousuke:'#bLittle Busters!', key_kyousuke:'#bLittle Busters!',
key_yuri:'#rAngel Beats!', key_yuri:'#rAngel Beats!',
@ -139,6 +141,118 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuji:['zuoci'] yuji:['zuoci']
}, },
skill:{ skill:{
kagari_zongsi:{
enable:'phaseUse',
usable:1,
content:function(){
'step 0'
var controls=[];
if(ui.cardPile.hasChildNodes()) controls.push('选择牌堆中的一张牌');
if(ui.discardPile.hasChildNodes()) controls.push('选择弃牌堆中的一张牌');
if(game.hasPlayer(function(current){
return current.countCards('hej')>0;
})) controls.push('选择一名角色区域内的一张牌');
if(!controls.length){event.finish();return;}
event.controls=controls;
var next=player.chooseControl();
next.set('choiceList',controls)
next.set('prompt','请选择要移动的卡牌的来源');
'step 1'
result.control=event.controls[result.index];
var list=['弃牌堆','牌堆','角色'];
for(var i=0;i<list.length;i++){
if(result.control.indexOf(list[i])!=-1){event.index=i;break;}
}
if(event.index==2){
player.chooseTarget('请选择要移动的卡牌的来源',true,function(card,kagari,target){
return target.countCards('hej')>0;
});
}
else{
var source=ui[event.index==0?'discardPile':'cardPile'].childNodes;
var list=[];
for(var i=0;i<source.length;i++) list.push(source[i]);
player.chooseButton(['请选择要移动的卡牌',list],true);
}
'step 2'
if(event.index==2){
player.line(result.targets[0]);
event.target1=result.targets[0];
player.choosePlayerCard(result.targets[0],true,'hej').set('visible',true);
}
else{
event.card=result.links[0];
}
'step 3'
if(event.index==2) event.card=result.cards[0];
var controls=[
'将这张牌移动到牌堆的顶部或者底部',
'将这张牌移动到弃牌堆的顶部或者底部',
'将这张牌移动到一名角色对应的区域里',
];
event.controls=controls;
var next=player.chooseControl();
next.set('prompt','要对'+get.translation(card)+'做什么呢?');
next.set('choiceList',controls);
'step 4'
result.control=event.controls[result.index];
var list=['弃牌堆','牌堆','角色'];
for(var i=0;i<list.length;i++){
if(result.control.indexOf(list[i])!=-1){event.index2=i;break;}
}
if(event.index2==2){
player.chooseTarget('要将'+get.translation(card)+'移动到哪一名角色的对应区域呢',true);
}
else{
player.chooseControl('顶部','底部').set('prompt','把'+get.translation(card)+'移动到'+(event.index2==0?'弃':'')+'牌堆的...');
}
'step 5'
if(event.index2!=2){
if(event.target1) event.target1.lose(card,ui.special);
else card.goto(ui.special);
event.way=result.control;
}
else{
event.target2=result.targets[0];
var list=['手牌区'];
if(lib.card[card.name].type=='equip'&&event.target2.isEmpty(lib.card[card.name].subtype)) list.push('装备区');
if(lib.card[card.name].type=='delay'&&!event.target2.storage._disableJudge&&!event.target2.hasJudge(card.name)) list.push('判定区');
if(list.length==1) event._result={control:list[0]};
else{
player.chooseControl(list).set('prompt','把'+get.translation(card)+'移动到'+get.translation(event.target2)+'的...');
}
}
'step 6'
if(event.index2!=2){
card.fix();
var node=ui[event.index==0?'discardPile':'cardPile'];
if(event.way=='底部') node.appendChild(card);
else node.insertBefore(card,node.firstChild);
game.updateRoundNumber();
event.finish();
}
else{
if(result.control=='手牌区'){
var next=event.target2.gain(card);
if(event.target1){
next.source=event.target1;
next.animate='giveAuto';
}
else next.animate='draw';
}
else if(result.control=='装备区'){
if(event.target1) event.target1.$give(card,event.target2);
event.target2.equip(card);
}
else{
if(event.target1) event.target1.$give(card,event.target2);
event.target2.addJudge(card);
}
}
'step 7'
game.updateRoundNumber();
},
},
haruko_haofang:{ haruko_haofang:{
mod:{ mod:{
cardname:function(card,player,name){ cardname:function(card,player,name){
@ -5115,6 +5229,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_kyousuke:'棗恭介', key_kyousuke:'棗恭介',
key_yuri:'仲村ゆり', key_yuri:'仲村ゆり',
key_haruko:'神尾晴子', key_haruko:'神尾晴子',
key_kagari:'篝',
lucia_duqu:'毒躯', lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。', lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_zhenren:'振刃', lucia_zhenren:'振刃',
@ -5131,6 +5246,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
haruko_haofang_info:'锁定技,你不能使用非转化的延时锦囊牌。你可以将一张延时锦囊牌当做【无中生有】使用。', haruko_haofang_info:'锁定技,你不能使用非转化的延时锦囊牌。你可以将一张延时锦囊牌当做【无中生有】使用。',
haruko_zhuishi:'追逝', haruko_zhuishi:'追逝',
haruko_zhuishi_info:'一名角色的判定阶段开始时若其判定区内有牌则你可以失去1点体力然后获得其判定区内的所有牌。', haruko_zhuishi_info:'一名角色的判定阶段开始时若其判定区内有牌则你可以失去1点体力然后获得其判定区内的所有牌。',
kagari_zongsi:'纵丝',
kagari_zongsi_info:'出牌阶段限一次,你可以选择一张不在游戏外的牌,然后将其置于牌堆/弃牌堆的顶部/底部或一名角色的对应区域内。',
ns_chuanshu:'传术', ns_chuanshu:'传术',
ns_chuanshu_info:'<span class=yellowtext>限定技</span> 当一名其他角色进入濒死状态时你可以令其选择获得技能【雷击】或【鬼道】其回复体力至1并摸两张牌。当该被【传术】的角色造成或受到一次伤害后你摸一张牌。其阵亡后你重置技能【传术】', ns_chuanshu_info:'<span class=yellowtext>限定技</span> 当一名其他角色进入濒死状态时你可以令其选择获得技能【雷击】或【鬼道】其回复体力至1并摸两张牌。当该被【传术】的角色造成或受到一次伤害后你摸一张牌。其阵亡后你重置技能【传术】',
ns_xiandao1:'仙道', ns_xiandao1:'仙道',

View File

@ -279,10 +279,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.storage.ol_wuqian_target=target; player.storage.ol_wuqian_target=target;
player.addTempSkill('ol_wuqian_target'); player.addTempSkill('ol_wuqian_target');
target.addTempSkill('ol_wuqian_targeted'); target.addTempSkill('ol_wuqian_targeted');
var list=game.filterPlayer();
for(var i=0;i<list.length;i++){
list[i].addTempSkill('ol_wuqian_equip');
}
}, },
subSkill:{ subSkill:{
equip:{ equip:{
@ -294,13 +290,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
targeted:{}, targeted:{ai:{unequip2:true}},
target:{ target:{
mark:'character', mark:'character',
onremove:true, onremove:true,
intro:{ intro:{
content:'获得无双且$防具失效直到回合结束' content:'获得无双且$防具失效直到回合结束'
} },
} }
} }
}, },
@ -618,7 +614,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sbaiyin:{ sbaiyin:{
skillAnimation:'epic', skillAnimation:'epic',
animationColor:'thunder', animationColor:'thunder',
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
unique:true, unique:true,
audio:true, audio:true,
@ -690,7 +686,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:true, audio:true,
trigger:{player:'damageEnd'}, trigger:{player:'damageEnd'},
direct:true, direct:true,
priority:-1, //priority:-1,
filter:function(event,player){ filter:function(event,player){
return player.storage.renjie>0; return player.storage.renjie>0;
}, },
@ -1105,7 +1101,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qixing:{ qixing:{
audio:2, audio:2,
unique:true, unique:true,
trigger:{global:'gameDrawAfter',player:'phaseBegin'}, trigger:{global:'gameDrawAfter',player:'phaseZhunbeiBegin'},
forced:true, forced:true,
check:function(event,player){ check:function(event,player){
return player.hp<=1; return player.hp<=1;
@ -1203,8 +1199,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
dawu:{ dawu:{
unique:true, unique:true,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
priority:1, //priority:1,
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.qixing&&player.storage.qixing.length; return player.storage.qixing&&player.storage.qixing.length;
@ -1273,7 +1269,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
dawu3:{ dawu3:{
trigger:{player:['phaseBegin','dieBegin']}, trigger:{player:['phaseZhunbeiBegin','dieBegin']},
silent:true, silent:true,
content:function(){ content:function(){
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
@ -1291,7 +1287,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kuangfeng:{ kuangfeng:{
unique:true, unique:true,
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.qixing&&player.storage.qixing.length; return player.storage.qixing&&player.storage.qixing.length;
@ -1559,13 +1555,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
audio:true, audio:true,
trigger:{player:'phaseDrawBegin'}, trigger:{player:'phaseDrawBegin'},
priority:-5, //priority:-5,
filter:function(event,player){ filter:function(event,player){
return player.hp<player.maxHp; return player.hp<player.maxHp;
}, },
forced:true, forced:true,
content:function(){ content:function(){
trigger.num=2+player.maxHp-player.hp; trigger.num+=(player.maxHp-player.hp);
} }
}, },
xinlonghun:{ xinlonghun:{
@ -1947,7 +1943,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'2':{ '2':{
audio:2, audio:2,
trigger:{ trigger:{
player:'phaseEnd', player:'phaseJieshuBegin',
}, },
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
@ -2094,8 +2090,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
targets[i].discard(targets[i].getCards('e')); targets[i].discard(targets[i].getCards('e'));
} }
player.chooseTarget(true,'对一名目标角色造成1点火焰伤害',function(card,player,target){ player.chooseTarget(true,'对一名目标角色造成1点火焰伤害',function(card,player,target){
return targets.contains(target); return _status.event.targets.contains(target);
}).ai=function(){return 1}; }).set('targets',targets).ai=function(){return 1};
'step 2' 'step 2'
if(result.bool){ if(result.bool){
result.targets[0].damage('fire','nocard'); result.targets[0].damage('fire','nocard');
@ -2417,7 +2413,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'1':{ '1':{
audio:'drlt_jieying', audio:'drlt_jieying',
trigger:{ trigger:{
player:'phaseBegin' player:'phaseZhunbeiBegin'
}, },
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
@ -2432,7 +2428,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'2':{ '2':{
audio:'drlt_jieying', audio:'drlt_jieying',
trigger:{ trigger:{
player:"phaseEnd", player:"phaseJieshuBegin",
}, },
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){

View File

@ -399,14 +399,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
relieren:{ relieren:{
audio:'lieren', audio:'lieren',
audioname:['boss_lvbu3'], audioname:['boss_lvbu3'],
trigger:{player:'shaBegin'}, trigger:{player:'useCardToTargeted'},
filter:function(event,player){ filter:function(event,player){
return player.canCompare(event.target); return event.card.name=='sha'&&player.canCompare(event.target);
}, },
check:function(event,player){ check:function(event,player){
return get.attitude(player,event.target)<0; return get.attitude(player,event.target)<0;
}, },
priority:5, //priority:5,
content:function(){ content:function(){
"step 0" "step 0"
player.chooseToCompare(trigger.target); player.chooseToCompare(trigger.target);
@ -552,7 +552,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liezhi:{ liezhi:{
audio:2, audio:2,
group:'liezhi_damage', group:'liezhi_damage',
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return !player.hasSkill('liezhi_disable'); return !player.hasSkill('liezhi_disable');
@ -845,7 +845,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liezhi:'烈直', liezhi:'烈直',
liezhi_info:'准备阶段,你可以依次弃置至多两名角色区域内的各一张牌。若你受到过伤害,则〖烈直〗于你的下个回合无效。', liezhi_info:'准备阶段,你可以依次弃置至多两名角色区域内的各一张牌。若你受到过伤害,则〖烈直〗于你的下个回合无效。',
relieren:'烈刃', relieren:'烈刃',
relieren_info:'当你使用【杀】指定目标,你可以和目标角色进行拼点。若你赢,你获得其一张牌。若你没赢,你获得对方的拼点牌,其获得你的拼点牌。', relieren_info:'当你使用【杀】指定目标,你可以和目标角色进行拼点。若你赢,你获得其一张牌。若你没赢,你获得对方的拼点牌,其获得你的拼点牌。',
rezaiqi:'再起', rezaiqi:'再起',
rezaiqi_info:'弃牌阶段结束时你可以令至多X名角色选择一项1.摸一张牌2.令你回复1点体力X为本回合进入弃牌堆的红色牌数', rezaiqi_info:'弃牌阶段结束时你可以令至多X名角色选择一项1.摸一张牌2.令你回复1点体力X为本回合进入弃牌堆的红色牌数',

View File

@ -390,7 +390,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
"old_fangtong":{ "old_fangtong":{
trigger:{ trigger:{
player:"phaseEnd", player:"phaseJieshuBegin",
}, },
audio:"xinfu_fangtong", audio:"xinfu_fangtong",
forced:true, forced:true,
@ -692,7 +692,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
oldmiji:{ oldmiji:{
trigger:{player:['phaseBegin','phaseEnd']}, trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
filter:function(event,player){ filter:function(event,player){
return player.isDamaged(); return player.isDamaged();
}, },

View File

@ -1040,7 +1040,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{ trigger:{
player:"damageBegin3", player:"damageBegin3",
}, },
priority:1, //priority:1,
audio:"yaowu", audio:"yaowu",
filter:function (event){ filter:function (event){
return event.card&&event.card.name=='sha'; return event.card&&event.card.name=='sha';
@ -1072,10 +1072,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reguanxing:{ reguanxing:{
audio:'guanxing', audio:'guanxing',
audioname:['jiangwei'], audioname:['jiangwei'],
trigger:{player:['phaseBegin','phaseEnd']}, trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
frequent:true, frequent:true,
filter:function(event,player,name){ filter:function(event,player,name){
if(name=='phaseEnd'){ if(name=='phaseJieshuBegin'){
return player.hasSkill('reguanxing_on'); return player.hasSkill('reguanxing_on');
} }
return true; return true;
@ -1126,7 +1126,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
for(i=0;i<bottom.length;i++){ for(i=0;i<bottom.length;i++){
ui.cardPile.appendChild(bottom[i]); ui.cardPile.appendChild(bottom[i]);
} }
if(event.triggername=='phaseBegin'&&top.length==0){ if(event.triggername=='phaseZhunbeiBegin'&&top.length==0){
player.addTempSkill('reguanxing_on'); player.addTempSkill('reguanxing_on');
} }
player.popup(get.cnNumber(top.length)+'上'+get.cnNumber(bottom.length)+'下'); player.popup(get.cnNumber(top.length)+'上'+get.cnNumber(bottom.length)+'下');
@ -1178,7 +1178,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.dialog.buttons[i].classList.contains('target')==false) event.dialog.buttons[i].classList.contains('target')==false)
ui.cardPile.appendChild(event.dialog.buttons[i].link); ui.cardPile.appendChild(event.dialog.buttons[i].link);
} }
if(event.triggername=='phaseBegin'&&event.top.length==0){ if(event.triggername=='phaseZhunbeiBegin'&&event.top.length==0){
player.addTempSkill('reguanxing_on'); player.addTempSkill('reguanxing_on');
} }
player.popup(get.cnNumber(event.top.length)+'上'+get.cnNumber(event.cards.length-event.top.length)+'下'); player.popup(get.cnNumber(event.top.length)+'上'+get.cnNumber(event.cards.length-event.top.length)+'下');
@ -1264,7 +1264,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ui.cardPile.appendChild(event.cards[i]); ui.cardPile.appendChild(event.cards[i]);
} }
} }
if(event.triggername=='phaseBegin'&&top.length==0){ if(event.triggername=='phaseZhunbeiBegin'&&top.length==0){
player.addTempSkill('reguanxing_on'); player.addTempSkill('reguanxing_on');
} }
player.popup(get.cnNumber(top.length)+'上'+get.cnNumber(event.cards.length-top.length)+'下'); player.popup(get.cnNumber(top.length)+'上'+get.cnNumber(event.cards.length-top.length)+'下');
@ -1280,7 +1280,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reluoshen:{ reluoshen:{
audio:'luoshen', audio:'luoshen',
locked:false, locked:false,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
frequent:true, frequent:true,
content:function(){ content:function(){
"step 0" "step 0"
@ -1585,7 +1585,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
rebiyue:{ rebiyue:{
audio:'biyue', audio:'biyue',
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
frequent:true, frequent:true,
content:function(){ content:function(){
var num=1; var num=1;
@ -2005,7 +2005,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
unique:true, unique:true,
juexingji:true, juexingji:true,
derivation:'gongxin', derivation:'gongxin',
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
if(player.storage.qinxue) return false; if(player.storage.qinxue) return false;
@ -2257,7 +2257,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skillAnimation:true, skillAnimation:true,
animationColor:'soil', animationColor:'soil',
limited:true, limited:true,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
init:function(player){ init:function(player){
player.storage.retishen=false; player.storage.retishen=false;
}, },
@ -2291,7 +2291,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:['retishen2'] group:['retishen2']
}, },
retishen2:{ retishen2:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
priority:-10, priority:-10,
silent:true, silent:true,
content:function(){ content:function(){
@ -2808,7 +2808,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
zhuhai:{ zhuhai:{
trigger:{global:'phaseEnd'}, trigger:{global:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return event.player.isAlive()&&event.player.getStat('damage')&& return event.player.isAlive()&&event.player.getStat('damage')&&
@ -2939,7 +2939,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mark:true, mark:true,
limited:true, limited:true,
trigger:{global:'useCardToPlayered'}, trigger:{global:'useCardToPlayered'},
priority:5, //priority:5,
filter:function(event,player){ filter:function(event,player){
if(event.getParent().triggeredTargets3.length>1) return false; if(event.getParent().triggeredTargets3.length>1) return false;
if(get.type(event.card)!='trick') return false; if(get.type(event.card)!='trick') return false;

View File

@ -180,7 +180,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
animationColor:'thunder', animationColor:'thunder',
audio:2, audio:2,
trigger:{ trigger:{
player:'phaseBegin', player:'phaseZhunbeiBegin',
}, },
forced:true, forced:true,
unique:true, unique:true,
@ -269,7 +269,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"drlt_zhenggu":{ "drlt_zhenggu":{
audio:2, audio:2,
trigger:{ trigger:{
player:"phaseEnd", player:"phaseJieshuBegin",
}, },
group:["drlt_zhenggu2"], group:["drlt_zhenggu2"],
direct:true, direct:true,
@ -363,7 +363,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
audio:2, audio:2,
trigger:{ trigger:{
player:"phaseEnd", player:"phaseJieshuBegin",
}, },
check:function (event,player){ check:function (event,player){
var num=0; var num=0;
@ -538,7 +538,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skillAnimation:true, skillAnimation:true,
animationColor:'wood', animationColor:'wood',
trigger:{ trigger:{
player:'phaseBegin', player:'phaseZhunbeiBegin',
}, },
forced:true, forced:true,
unique:true, unique:true,
@ -565,7 +565,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
enable:"phaseUse", enable:"phaseUse",
filter:function (event,player){ filter:function (event,player){
return player.countCards('h',{type:'equip'})>0; return player.countCards('he',{type:'equip'})>0;
}, },
filterCard:function (card){ filterCard:function (card){
return get.type(card)=='equip'; return get.type(card)=='equip';
@ -577,10 +577,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.draw(); player.draw();
}, },
discard:false, discard:false,
visible:true,
loseTo:'discardPile',
prompt:"将一张装备牌置入弃牌堆并摸一张牌", prompt:"将一张装备牌置入弃牌堆并摸一张牌",
delay:0.5, delay:0.5,
prepare:function (cards,player){ prepare:function (cards,player){
player.$throw(cards,1000); player.$throw(cards,1000);
game.log(player,'将',cards,'置入了弃牌堆');
}, },
}, },
"drlt_yongsi":{ "drlt_yongsi":{
@ -599,7 +602,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'2':{ '2':{
audio:["yongsi2",2], audio:["yongsi2",2],
trigger:{ trigger:{
player:'phaseDiscardBegin' player:'phaseUseEnd'
}, },
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
@ -632,41 +635,56 @@ game.import('character',function(lib,game,ui,get,ai,_status){
unique:true, unique:true,
zhuSkill:true, zhuSkill:true,
trigger:{ trigger:{
player:"phaseDiscardAfter", player:"phaseDiscardBegin",
}, },
direct:true, direct:true,
filter:function (event,player){ filter:function (event,player){
if(!player.hasZhuSkill('drlt_weidi')) return false; if(!player.hasZhuSkill('drlt_weidi')) return false;
return event.cards&&event.cards.length>0&&game.countPlayer(function(current){return current!=player&&current.group=='qun'})>0; return player.needsToDiscard()>0&&game.countPlayer(function(current){return current!=player&&current.group=='qun'})>0;
}, },
content:function(){ content:function(){
'step 0' 'step 0'
event.cards=trigger.cards; event.count=player.needsToDiscard();
event.logged=false; event.logged=false;
event.gived=[]; event.gived=[];
'step 1' 'step 1'
if(!game.hasPlayer(function(target){ if(!game.hasPlayer(function(target){
return target!=player&&target.group=='qun'&&!event.gived.contains(target); return target!=player&&target.group=='qun'&&!event.gived.contains(target);
})) event.finish(); })) event.finish();
else player.chooseTarget('是否将 '+get.translation(event.cards[0])+' 给予其他群雄角色?',function(card,player,target){ else player.chooseCardTarget({
return target!=player&&target.group=='qun'&&!event.gived.contains(target); prompt:'是否将一张手牌给予其他群雄角色?',
}).ai=function(target){ filterTarget:function(card,player,target){
if(event.cards[0].name=='du') return -get.attitude(player,target); return target!=player&&target.group=='qun'&&!_status.event.gived.contains(target);
return get.attitude(player,target); },
}; filterCard:true,
position:'h',
ai1:function(card){
var value=get.value(card);
var player=_status.event.player;
if(game.hasPlayer(function(current){
return get.sgn(value)==get.sgn(get.attitude(player,current))
})) return 1;
return -1;
},
ai2:function(target){
var player=_status.event.player;
if(get.value(ui.selected.cards[0])<0) return -get.attitude(player,target);
return get.attitude(player,target);
},
gived:event.gived,
});
'step 2' 'step 2'
if(result.bool){ if(result.bool){
if(!event.logged){ if(!event.logged){
player.logSkill('drlt_weidi'); player.logSkill('drlt_weidi');
event.logged=true; event.logged=true;
} }
player.line(result.targets); player.line(result.targets[0]);
player.$give(event.cards[0],result.targets[0]); result.targets[0].gain(result.cards[0],player,'giveAuto');
result.targets[0].gain(event.cards[0]);
event.gived.add(result.targets[0]); event.gived.add(result.targets[0]);
}; event.count--;
event.cards.remove(event.cards[0]); if(event.count) event.goto(1);
if(event.cards.length>0) event.goto(1); }
}, },
}, },
"drlt_xiongluan":{ "drlt_xiongluan":{
@ -906,7 +924,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kongsheng:{ kongsheng:{
audio:2, audio:2,
trigger:{ trigger:{
player:"phaseBegin", player:"phaseZhunbeiBegin",
}, },
direct:true, direct:true,
filter:function (event,player){ filter:function (event,player){
@ -938,7 +956,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
mark:true, mark:true,
trigger:{ trigger:{
player:"phaseEnd", player:"phaseJieshuBegin",
}, },
filter:function (event,player){ filter:function (event,player){
return player.storage.kongsheng2!=undefined&&player.storage.kongsheng2.length>0; return player.storage.kongsheng2!=undefined&&player.storage.kongsheng2.length>0;
@ -950,7 +968,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.logSkill('kongsheng'); player.logSkill('kongsheng');
event.list=[]; event.list=[];
for(var i=0;i<player.storage.kongsheng2.length;i++){ for(var i=0;i<player.storage.kongsheng2.length;i++){
if(get.type(player.storage.kongsheng2[i])=='equip'&&player.canUse(player.storage.kongsheng2[i],player)){ if(get.type(player.storage.kongsheng2[i])=='equip'&&game.hasPlayer(function(current){
return player.canUse(player.storage.kongsheng2[i],current);
})){
player.chooseUseTarget(player.storage.kongsheng2[i],true,'nopopup','noanimate'); player.chooseUseTarget(player.storage.kongsheng2[i],true,'nopopup','noanimate');
event.list.push(player.storage.kongsheng2[i]); event.list.push(player.storage.kongsheng2[i]);
}; };
@ -1613,7 +1633,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'2':{ '2':{
audio:2, audio:2,
trigger:{ trigger:{
player:'phaseEnd', player:'phaseJieshuBegin',
}, },
direct:true, direct:true,
content:function (){ content:function (){
@ -1844,7 +1864,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"nzry_shenshi1":{ "nzry_shenshi1":{
audio:2, audio:2,
trigger:{ trigger:{
global:'phaseEnd', global:'phaseJieshuBegin',
}, },
forced:true, forced:true,
popup:false, popup:false,
@ -1866,7 +1886,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinjushou:{ xinjushou:{
audio:'jushou', audio:'jushou',
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
content:function(){ content:function(){
'step 0' 'step 0'
player.draw(4); player.draw(4);
@ -2409,24 +2429,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
audio:'liegong', audio:'liegong',
trigger:{player:'shaBegin'}, trigger:{player:'useCardToTargeted'},
logTarget:'target', logTarget:'target',
check:function(event,player){ check:function(event,player){
return get.attitude(player,event.target)<=0; return get.attitude(player,event.target)<=0;
}, },
filter:function(event,player){ filter:function(event,player){
if(event.card.name!='sha') return false;
if(event.target.countCards('h')<=player.countCards('h')) return true; if(event.target.countCards('h')<=player.countCards('h')) return true;
if(event.target.hp>=player.hp) return true; if(event.target.hp>=player.hp) return true;
return false; return false;
}, },
content:function(){ content:function(){
if(trigger.target.countCards('h')<=player.countCards('h')) trigger.directHit=true; if(trigger.target.countCards('h')<=player.countCards('h')) trigger.getParent().directHit.push(trigger.target);
if(trigger.target.hp>=player.hp){ if(trigger.target.hp>=player.hp){
if(typeof trigger.extraDamage!='number'){ var id=trigger.target.playerid;
trigger.extraDamage=0; var map=trigger.getParent().customArgs;
if(!map[id]) map[id]={};
if(typeof map[id].extraDamage!='number'){
map[id].extraDamage=0;
} }
trigger.extraDamage++; map[id].extraDamage++;
} }
}, },
ai:{ ai:{
@ -2439,7 +2462,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 lib.filter.targetInRange({name:'sha'},target,player)&&target.countCards('he'); return target!=player&&lib.filter.targetInRange({name:'sha'},target,player)&&target.countCards('he');
}, },
content:function(){ content:function(){
"step 0" "step 0"
@ -2479,7 +2502,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
juexingji:true, juexingji:true,
//priority:-10, //priority:-10,
derivation:'reguanxing', derivation:'reguanxing',
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
if(player.storage.zhiji) return false; if(player.storage.zhiji) return false;
@ -2576,7 +2599,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
popup:false, popup:false,
audio:false, audio:false,
priority:-50, //priority:-50,
content:function(){ content:function(){
"step 0" "step 0"
player.chooseToDiscard(true); player.chooseToDiscard(true);
@ -2608,7 +2631,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhuSkill:true, zhuSkill:true,
keepSkill:true, keepSkill:true,
derivation:'jijiang', derivation:'jijiang',
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
if(!player.hasZhuSkill('ruoyu'))return false; if(!player.hasZhuSkill('ruoyu'))return false;
@ -2808,26 +2831,34 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return false; return false;
}, },
content:function(){ content:function(){
"step 0"
player.judge(function(card){ player.judge(function(card){
if(get.suit(card)=='heart') return -1; if(get.suit(card)=='heart') return -1;
return 1; return 1;
},ui.special); }).callback=lib.skill.tuntian.callback;
"step 1" },
var bool1=result.bool; callback:function(){
var bool2=!get.owner(result.card); 'step 0'
if(bool1&&bool2){ if(!event.judgeResult.bool){
event.card=result.card; game.cardsDiscard(card);
event.node=result.node; event.finish();
} }
else{ else if(get.mode()=='guozhan'){
if(bool2) game.cardsDiscard(result.card); player.chooseBool('是否将'+get.translation(card)+'作为【田】置于武将牌上?').ai=function(){
event.finish(); return true;
} };
"step 2" }
event.card.goto(ui.special); else event.directbool=true;
event.trigger("addCardToStorage"); 'step 1'
if(!result.bool&&!event.directbool){
game.cardsDiscard(card);
return;
};
event.node=event.judgeResult.node;
//event.trigger("addCardToStorage");
//event.card.fix();
player.storage.tuntian.push(event.card); player.storage.tuntian.push(event.card);
//event.card.goto(ui.special);
game.cardsGotoSpecial(card);
event.node.moveDelete(player); event.node.moveDelete(player);
game.broadcast(function(cardid,player){ game.broadcast(function(cardid,player){
var node=lib.cardOL[cardid]; var node=lib.cardOL[cardid];
@ -2846,13 +2877,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:'cards' content:'cards'
}, },
group:'tuntian_dist', group:'tuntian_dist',
locked:false,
subSkill:{ subSkill:{
dist:{ dist:{
locked:false,
mod:{ mod:{
globalFrom:function(from,to,distance){ globalFrom:function(from,to,distance){
if(from.storage.tuntian){ if(from.storage.tuntian){
var num=distance-from.storage.tuntian.length; var num=distance-from.storage.tuntian.length;
if(_status.event.skill=='jixi_backup'||_status.event.skill=='gzjixi') num++; if(_status.event.skill=='jixi_backup'||_status.event.skill=='gzjixi_backup') num++;
return num; return num;
} }
} }
@ -2900,7 +2933,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
unique:true, unique:true,
juexingji:true, juexingji:true,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
if(player.storage.tuntian) return player.storage.tuntian.length>=3&&!player.storage.zaoxian; if(player.storage.tuntian) return player.storage.tuntian.length>=3&&!player.storage.zaoxian;
@ -2990,7 +3023,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
juexingji:true, juexingji:true,
derivation:['reyingzi','gzyinghun'], derivation:['reyingzi','gzyinghun'],
unique:true, unique:true,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){ filter:function(event,player){
return player.hp==1&&!player.storage.hunzi; return player.hp==1&&!player.storage.hunzi;
}, },
@ -3465,9 +3498,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
huashen2:{ huashen2:{
audio:2, audio:2,
trigger:{player:['phaseBeginStart','phaseAfter','huashenStart']}, trigger:{player:['phaseZhunbeiBeginStart','phaseAfter','huashenStart']},
filter:function(event,player,name){ filter:function(event,player,name){
if(name=='phaseBeginStart'&&game.phaseNumber==1) return false; if(name=='phaseZhunbeiBeginStart'&&game.phaseNumber==1) return false;
return true; return true;
}, },
//priority:50, //priority:50,
@ -3552,13 +3585,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
// if(event.triggername=='phaseBegin'){ // if(event.triggername=='phaseZhunbeiBegin'){
// (function(){ // (function(){
// var skills=[link]; // var skills=[link];
// var list=[]; // var list=[];
// game.expandSkills(skills); // game.expandSkills(skills);
// var triggerevent=event._trigger; // var triggerevent=event._trigger;
// var name='phaseBegin'; // var name='phaseZhunbeiBegin';
// for(i=0;i<skills.length;i++){ // for(i=0;i<skills.length;i++){
// var trigger=get.info(skills[i]).trigger; // var trigger=get.info(skills[i]).trigger;
// if(trigger){ // if(trigger){
@ -3579,7 +3612,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
// } // }
// } // }
// for(var i=0;i<list.length;i++){ // for(var i=0;i<list.length;i++){
// game.createTrigger('phaseBegin',list[i],player,triggerevent); // game.createTrigger('phaseZhunbeiBegin',list[i],player,triggerevent);
// } // }
// }()); // }());
// } // }
@ -3675,7 +3708,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
var cond='out'; var cond='out';
if(event.triggername=='phaseBegin'){ if(event.triggername=='phaseZhunbeiBegin'){
cond='in'; cond='in';
} }
skills.randomSort(); skills.randomSort();
@ -3847,7 +3880,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
check:function(event,player){ check:function(event,player){
return get.attitude(player,event.player)<0&&player.countCards('h')>1; return get.attitude(player,event.player)<0&&player.countCards('h')>1;
}, },
priority:5, //priority:5,
content:function(){ content:function(){
"step 0" "step 0"
player.chooseToCompare(trigger.player); player.chooseToCompare(trigger.player);
@ -3859,10 +3892,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
xingshang:{ xingshang:{
audio:2, audio:2,
unique:true, //unique:true,
gainable:true, //gainable:true,
trigger:{global:'die'}, trigger:{global:'die'},
priority:5, //priority:5,
filter:function(event){ filter:function(event){
return event.player.countCards('he')>0; return event.player.countCards('he')>0;
}, },
@ -4186,7 +4219,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yinghun:{ yinghun:{
audio:2, audio:2,
audioname:['sunce'], audioname:['sunce'],
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){ filter:function(event,player){
return player.hp<player.maxHp; return player.hp<player.maxHp;
}, },
@ -4263,7 +4296,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
gzyinghun:{ gzyinghun:{
audio:'yinghun', audio:'yinghun',
audioname:['sunce'], audioname:['sunce'],
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){ filter:function(event,player){
return player.getDamagedHp()>0; return player.getDamagedHp()>0;
}, },
@ -4350,10 +4383,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
roulin:{ roulin:{
audio:2, audio:2,
trigger:{player:'shaBegin',target:'shaBegin'}, trigger:{player:'useCardToPlayered',target:'useCardToTargeted'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
if(event.directHit) return false; if(event.card.name!='sha') return false;
if(player==event.player){ if(player==event.player){
return event.target.sex=='female'; return event.target.sex=='female';
} }
@ -4362,20 +4395,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
check:function(event,player){ check:function(event,player){
return player==event.player; return player==event.player;
}, },
priority:-1,
content:function(){ content:function(){
if(typeof trigger.shanRequired=='number'){ var id=(player==trigger.player?trigger.target:player).playerid;
trigger.shanRequired++; var map=trigger.getParent().customArgs;
if(!map[id]) map[id]={};
if(typeof map[id].shanRequired=='number'){
map[id].shanRequired++;
} }
else{ else{
trigger.shanRequired=2; map[id].shanRequired=2;
} }
} }
}, },
benghuai:{ benghuai:{
audio:2, audio:2,
audioname:['zhugedan'], audioname:['zhugedan'],
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
forced:true, forced:true,
check:function(){ check:function(){
return false; return false;
@ -4646,16 +4681,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 5-get.useful(card); return 5-get.useful(card);
}, },
content:function(){ content:function(){
'step 0'
player.draw(); player.draw();
'step 1'
game.cardsDiscard(cards);
}, },
discard:false, discard:false,
visible:true,
loseTo:'discardPile',
prompt:'将一张梅花牌置入弃牌堆并摸一张牌', prompt:'将一张梅花牌置入弃牌堆并摸一张牌',
delay:0.5, delay:0.5,
prepare:function(cards,player){ prepare:function(cards,player){
player.$throw(cards,1000); player.$throw(cards,1000);
game.log(player,'将',cards,'置入了弃牌堆');
}, },
ai:{ ai:{
basic:{ basic:{
@ -5221,7 +5256,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mengjin:{ mengjin:{
audio:2, audio:2,
trigger:{player:'shaMiss'}, trigger:{player:'shaMiss'},
priority:-1, //priority:-1,
filter:function(event){ filter:function(event){
return event.target.countCards('he')>0; return event.target.countCards('he')>0;
}, },
@ -5468,7 +5503,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
jushou:{ jushou:{
audio:true, audio:true,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
content:function(){ content:function(){
player.draw(3); player.draw(3);
player.turnOver(); player.turnOver();
@ -5483,7 +5518,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
moon_jushou:{ moon_jushou:{
audio:'jushou', audio:'jushou',
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
content:function(){ content:function(){
player.draw(); player.draw();
player.turnOver(); player.turnOver();
@ -5498,17 +5533,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
liegong:{ liegong:{
audio:2, audio:2,
trigger:{player:'shaBegin'}, trigger:{player:'useCardToTargeted'},
check:function(event,player){ check:function(event,player){
return get.attitude(player,event.target)<=0; return get.attitude(player,event.target)<=0;
}, },
logTarget:'target', logTarget:'target',
filter:function(event,player){ filter:function(event,player){
if(event.card.name!='sha') return false;
var length=event.target.countCards('h'); var length=event.target.countCards('h');
return (length>=player.hp||length<=player.getAttackRange()); return (length>=player.hp||length<=player.getAttackRange());
}, },
content:function(){ content:function(){
trigger.directHit=true; trigger.getParent().directHit.push(trigger.target);
}, },
locked:false, locked:false,
mod:{ mod:{
@ -5880,7 +5916,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
xintianxiang3:{ xintianxiang3:{
trigger:{player:['phaseBegin','dieBegin']}, trigger:{player:['phaseZhunbeiBegin','dieBegin']},
silent:true, silent:true,
content:function(){ content:function(){
if(player.storage.xintianxiang3){ if(player.storage.xintianxiang3){
@ -5937,7 +5973,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
init:function(player){ init:function(player){
player.storage.gzbuqu=[]; player.storage.gzbuqu=[];
}, },
priority:-15, //priority:-15,
intro:{ intro:{
content:'cards' content:'cards'
}, },
@ -6014,9 +6050,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' 'step 0'
var num=(-trigger.num-Math.max(player.hp-trigger.num,1)+1) var num=(-trigger.num-Math.max(player.hp-trigger.num,1)+1);
player.storage.gzbuqu.addArray(get.cards(num)); var cards=get.cards(num);
event.trigger("addCardToStorage"); game.cardsGotoSpecial(cards);
player.storage.gzbuqu.addArray(cards);
//event.trigger("addCardToStorage");
player.showCards(get.translation(player)+'的不屈牌',player.storage.gzbuqu); player.showCards(get.translation(player)+'的不屈牌',player.storage.gzbuqu);
'step 1' 'step 1'
lib.skill.gzbuqu.process(player); lib.skill.gzbuqu.process(player);
@ -6036,7 +6074,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.storage.buqu==undefined) player.storage.buqu=[]; if(player.storage.buqu==undefined) player.storage.buqu=[];
player.storage.buqu.push(event.card); player.storage.buqu.push(event.card);
player.syncStorage('buqu'); player.syncStorage('buqu');
event.trigger("addCardToStorage"); //event.trigger("addCardToStorage");
game.cardsGotoSpecial(event.card);
player.showCards(player.storage.buqu,'不屈') player.showCards(player.storage.buqu,'不屈')
player.markSkill('buqu'); player.markSkill('buqu');
"step 1" "step 1"
@ -6444,15 +6483,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"drlt_congjian":"从谏", "drlt_congjian":"从谏",
"drlt_congjian_info":"当你成为锦囊牌的目标时若此牌的目标数大于1则你可以交给其中一名其他目标角色一张牌然后摸一张牌若你给出的是装备牌改为摸两张牌", "drlt_congjian_info":"当你成为锦囊牌的目标时若此牌的目标数大于1则你可以交给其中一名其他目标角色一张牌然后摸一张牌若你给出的是装备牌改为摸两张牌",
"drlt_yongsi":"庸肆", "drlt_yongsi":"庸肆",
"drlt_yongsi_info":"锁定技摸牌阶段你改为摸X张牌X为存活势力数弃牌阶段若你本回合1.没有造成伤害将手牌摸至当前体力值2.造成的伤害超过1点本回合手牌上限改为已损失体力值", "drlt_yongsi_info":"锁定技摸牌阶段你改为摸X张牌X为存活势力数出牌阶段结束时若你本回合1.没有造成伤害将手牌摸至当前体力值2.造成的伤害超过1点本回合手牌上限改为已损失体力值",
"drlt_weidi":"伪帝", "drlt_weidi":"伪帝",
"drlt_weidi_info":"主公技,你于弃牌阶段弃置的牌可以交给其他群雄角色各一张。", "drlt_weidi_info":"主公技,弃牌阶段开始时若你的手牌数大于手牌上限则你可以将至多X张手牌分别交给等量的其他群雄角色X为你的手牌数与手牌上限之差。",
"drlt_qianjie":"谦节", "drlt_qianjie":"谦节",
"drlt_qianjie_info":"锁定技,你不能被横置,且不能成为延时类锦囊的目标。你不能成为其他角色拼点的目标。", "drlt_qianjie_info":"锁定技,当你横置时,取消之。你不能成为延时类锦囊的目标。你不能成为其他角色拼点的目标。",
"drlt_jueyan":"决堰", "drlt_jueyan":"决堰",
"drlt_jueyan_info":"出牌阶段限一次,你可以废除一个装备栏,然后执行对应一项:武器栏,本回合内你可以多使用三张【杀】;防具栏,摸三张牌,本回合手牌上限+32个坐骑栏本回合你使用的牌无距离限制宝物栏本回合获得技能集智", "drlt_jueyan_info":"出牌阶段限一次,你可以废除一个装备栏,然后执行对应一项:武器栏,本回合内你可以多使用三张【杀】;防具栏,摸三张牌,本回合手牌上限+32个坐骑栏本回合你使用的牌无距离限制宝物栏本回合获得技能集智",
"drlt_poshi":"破势", "drlt_poshi":"破势",
"drlt_poshi_info":"觉醒技准备阶段开始时若你的装备栏均已被废除或体力值为1则你减一点体力上限,将手牌摸至体力上限,失去技能“决堰”并获得技能“怀柔”", "drlt_poshi_info":"觉醒技准备阶段开始时若你的装备栏均已被废除或体力值为1则你减一点体力上限,将手牌摸至体力上限,失去技能“决堰”并获得技能“怀柔”",
"drlt_huairou":"怀柔", "drlt_huairou":"怀柔",
"drlt_huairou_info":"出牌阶段,你可以重铸装备牌", "drlt_huairou_info":"出牌阶段,你可以重铸装备牌",
"drlt_zhenggu":"镇骨", "drlt_zhenggu":"镇骨",

View File

@ -629,14 +629,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(target.canUse('juedou',player,false)) list.push('juedou'); if(target.canUse('juedou',player,false)) list.push('juedou');
if(!list.length) event.finish(); if(!list.length) event.finish();
else if(list.length==1) event._result={control:list[0]}; else if(list.length==1) event._result={control:list[0]};
else target.chooseControl(list).set('prompt','对'+get.translation(player)+'使用一张【杀】或【决斗】。'); else target.chooseControl(list).set('prompt','对'+get.translation(player)+'使用一张【杀】或【决斗】。').ai=function(){
return get.effect(player,{name:'sha'},target,target)>=get.effect(player,{name:'juedou'},target,target)?'sha':'juedou';
};
'step 3' 'step 3'
target.useCard({name:result.control},player); target.useCard({name:result.control},player);
}, },
ai:{
order:7,
result:{
target:-1.2,
player:function(player,target){
if(target.countCards('h')-player.countCards('h')>1) return 1;
if(get.damageEffect(target,player,player,player)>0) return 1;
if(player.hp>3||player.countCards('h','sha')&&player.countCards('h','shan')) return 0;
if(player.hp>2) return -1.1;
return -2;
},
},
},
}, },
niluan:{ niluan:{
audio:2, audio:2,
trigger:{global:'phaseEnd'}, trigger:{global:'phaseJieshuBegin'},
filter:function(event,player){ filter:function(event,player){
return event.player!=player&&(event.player.hp>player.hp||event.player.countUsed('sha')) return event.player!=player&&(event.player.hp>player.hp||event.player.countUsed('sha'))
}, },
@ -726,7 +741,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
audio:'gxlianhua', audio:'gxlianhua',
sub:true, sub:true,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
//filter:function(event,player){ //filter:function(event,player){
// return player.storage.gxlianhua&&player.storage.gxlianhua.red+player.storage.gxlianhua.black>0; // return player.storage.gxlianhua&&player.storage.gxlianhua.red+player.storage.gxlianhua.black>0;
//}, //},
@ -887,7 +902,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
mingjie:{ mingjie:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
check:function(){ check:function(){
return ui.cardPile.hasChildNodes()&&get.color(ui.cardPile.firstChild)!='black'; return ui.cardPile.hasChildNodes()&&get.color(ui.cardPile.firstChild)!='black';
}, },
@ -1155,7 +1170,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
beishui:{ beishui:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
audio:2, audio:2,
skillAnimation:'epic', skillAnimation:'epic',
animationColor:'thunder', animationColor:'thunder',
@ -1335,7 +1350,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:"cards", content:"cards",
}, },
trigger:{ trigger:{
player:"phaseEnd", player:"phaseJieshuBegin",
}, },
direct:true, direct:true,
filter:function (event,player){ filter:function (event,player){
@ -1391,7 +1406,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
"biaozhao3":{ "biaozhao3":{
trigger:{ trigger:{
player:"phaseBegin", player:"phaseZhunbeiBegin",
}, },
forced:true, forced:true,
audio:"biaozhao", audio:"biaozhao",
@ -1445,7 +1460,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var target=result.targets[0]; var target=result.targets[0];
player.logSkill('yechou',target); player.logSkill('yechou',target);
player.line(target,'green'); player.line(target,'green');
target.addTempSkill('yechou2',{player:'phaseBeginStart'}); target.addTempSkill('yechou2',{player:'phaseZhunbeiBegin'});
} }
}, },
ai:{ ai:{
@ -1954,7 +1969,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
if(list.length==1){ if(list.length==1){
target.storage.xiongsuan_restore=list[0]; target.storage.xiongsuan_restore=list[0];
target.addTempSkill('xiongsuan_restore','phaseBegin'); target.addTempSkill('xiongsuan_restore','phaseZhunbeiBegin');
event.finish(); event.finish();
} }
else if(list.length>1){ else if(list.length>1){
@ -1965,7 +1980,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
'step 2' 'step 2'
target.storage.xiongsuan_restore=result.control; target.storage.xiongsuan_restore=result.control;
target.addTempSkill('xiongsuan_restore','phaseBegin'); target.addTempSkill('xiongsuan_restore','phaseZhunbeiBegin');
}, },
subSkill:{ subSkill:{
restore:{ restore:{
@ -2799,7 +2814,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.bool){ if(result.bool){
player.addTempSkill('spwenji_respond'); player.addTempSkill('spwenji_respond');
player.storage.spwenji_respond=result.cards[0].name; player.storage.spwenji_respond=result.cards[0].name;
event.target.give(result.cards,player); event.target.give(result.cards,player,true);
} }
}, },
subSkill:{ subSkill:{
@ -2849,7 +2864,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
used:{}, used:{},
end:{ end:{
audio:'sptunjiang', audio:'sptunjiang',
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
frequent:true, frequent:true,
prompt2:'结束阶段若你未跳过本回合的出牌阶段且你于本回合出牌阶段内未使用牌指定过其他角色为目标则你可以摸X张牌X为全场势力数。', prompt2:'结束阶段若你未跳过本回合的出牌阶段且你于本回合出牌阶段内未使用牌指定过其他角色为目标则你可以摸X张牌X为全场势力数。',
filter:function(event,player){ filter:function(event,player){
@ -2911,7 +2926,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{ ai:{
combo:'guju' combo:'guju'
}, },
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
skillAnimation:true, skillAnimation:true,
animationColor:'thunder', animationColor:'thunder',
@ -3038,7 +3053,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
zongkui:{ zongkui:{
trigger:{player:'phaseBegin',global:'roundStart'}, trigger:{player:'phaseZhunbeiBegin',global:'roundStart'},
direct:true, direct:true,
audio:2, audio:2,
filter:function(event,player){ filter:function(event,player){
@ -3126,7 +3141,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
discard3:{ discard3:{
trigger:{global:'phaseBegin'}, trigger:{global:'phaseZhunbeiBegin'},
silent:true, silent:true,
content:function(){ content:function(){
delete player.storage.zishu; delete player.storage.zishu;
@ -3282,7 +3297,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
polu:{ polu:{
audio:2, audio:2,
trigger:{player:['phaseBegin','damageEnd']}, trigger:{player:['phaseZhunbeiBegin','damageEnd']},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return !player.getEquip('ly_piliche'); return !player.getEquip('ly_piliche');
@ -3488,7 +3503,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:['damageEnd','recoverEnd']}, trigger:{player:['damageEnd','recoverEnd']},
forced:true, forced:true,
popup:false, popup:false,
priority:15, //priority:15,
filter:function(event,player){ filter:function(event,player){
if(!(player.storage.xianfu2&&player.storage.xianfu2.isIn()&&event.num>0)) return false; if(!(player.storage.xianfu2&&player.storage.xianfu2.isIn()&&event.num>0)) return false;
if(event.name=='damage') return true; if(event.name=='damage') return true;
@ -3934,7 +3949,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
jingong2:{ jingong2:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return !player.getStat('damage'); return !player.getStat('damage');
@ -3990,7 +4005,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
lizhan:{ lizhan:{
audio:'yanzheng', audio:'yanzheng',
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
@ -4022,7 +4037,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
trigger:{global:'dying'}, trigger:{global:'dying'},
forced:true, forced:true,
priority:12, //priority:12,
filter:function(event,player){ filter:function(event,player){
return event.player!=player&&player.maxHp>1; return event.player!=player&&player.maxHp>1;
}, },
@ -4036,13 +4051,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
yixiang:{ yixiang:{
audio:2, audio:2,
trigger:{target:'useCardToBegin'}, trigger:{target:'useCardToTargeted'},
frequent:true, frequent:true,
filter:function(event,player){ filter:function(event,player){
if(event.player.hp<=player.hp) return false; if(event.player.hp<=player.hp) return false;
if(event.targets.length>1) return false; if(event.targets.length>1) return false;
var hs=player.getCards('h'); var hs=player.getCards('h');
var names=['sha','shan','tao','jiu']; var names=['sha','shan','tao','jiu','du'];
for(var i=0;i<hs.length;i++){ for(var i=0;i<hs.length;i++){
names.remove(hs[i].name); names.remove(hs[i].name);
} }
@ -4057,7 +4072,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
var hs=player.getCards('h'); var hs=player.getCards('h');
var list=[]; var list=[];
var names=['sha','shan','tao','jiu']; var names=['sha','shan','tao','jiu','du'];
for(var i=0;i<hs.length;i++){ for(var i=0;i<hs.length;i++){
names.remove(hs[i].name); names.remove(hs[i].name);
} }
@ -4297,7 +4312,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
zhuoshui:{ zhuoshui:{
audio:'huoshui', audio:'huoshui',
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
content:function(){ content:function(){
game.countPlayer(function(current){ game.countPlayer(function(current){
@ -4501,7 +4516,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shuangren:{ shuangren:{
trigger:{player:'phaseUseBegin'}, trigger:{player:'phaseUseBegin'},
direct:true, direct:true,
priority:15, //priority:15,
content:function(){ content:function(){
'step 0' 'step 0'
var goon; var goon;
@ -4577,7 +4592,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
kuanshi:{ kuanshi:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
content:function(){ content:function(){
'step 0' 'step 0'
@ -4616,7 +4631,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
onremove:true, onremove:true,
subSkill:{ subSkill:{
remove:{ remove:{
trigger:{global:['phaseBegin','dieAfter']}, trigger:{global:['phaseZhunbeiBegin','dieAfter']},
forced:true, forced:true,
popup:false, popup:false,
filter:function(event,player){ filter:function(event,player){
@ -5332,7 +5347,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.storage.yjixi=0; player.storage.yjixi=0;
}, },
derivation:'wangzun', derivation:'wangzun',
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.yjixi>=3; return player.storage.yjixi>=3;
@ -5386,7 +5401,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:['yjixi_count1','yjixi_count2'], group:['yjixi_count1','yjixi_count2'],
subSkill:{ subSkill:{
count1:{ count1:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
silent:true, silent:true,
content:function(){ content:function(){
player.storage.yjixi++; player.storage.yjixi++;
@ -5836,7 +5851,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:['dying','dieBegin']}, trigger:{global:['dying','dieBegin']},
forced:true, forced:true,
popup:false, popup:false,
priority:10, //priority:10,
filter:function(event,player){ filter:function(event,player){
return event.player==player.storage.shichou_target; return event.player==player.storage.shichou_target;
}, },
@ -5967,7 +5982,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
yingjian:{ yingjian:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
direct:true, direct:true,
content:function(){ content:function(){
player.chooseUseTarget('###是否发动【影箭】?###视为使用一张没有距离限制的【杀】',{name:'sha'},false,'nodistance').logSkill='yingjian'; player.chooseUseTarget('###是否发动【影箭】?###视为使用一张没有距离限制的【杀】',{name:'sha'},false,'nodistance').logSkill='yingjian';
@ -6203,7 +6218,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
tuifeng2:{ tuifeng2:{
audio:'tuifeng', audio:'tuifeng',
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.tuifeng.length>0; return player.storage.tuifeng.length>0;
@ -6548,7 +6563,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
shefu:{ shefu:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
audio:2, audio:2,
init:function(player){ init:function(player){
@ -6638,7 +6653,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
shefu2:{ shefu2:{
trigger:{global:['useCard','respondEnd']}, trigger:{global:['useCard','respondEnd']},
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;
@ -7040,7 +7055,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:'qizhi2' group:'qizhi2'
}, },
qizhi2:{ qizhi2:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
silent:true, silent:true,
content:function(){ content:function(){
player.storage.qizhi=0; player.storage.qizhi=0;
@ -7048,7 +7063,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
jinqu:{ jinqu:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
check:function(event,player){ check:function(event,player){
return player.storage.qizhi>=player.countCards('h'); return player.storage.qizhi>=player.countCards('h');
}, },
@ -7109,8 +7124,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
mouduan2:{ mouduan2:{
audio:1, audio:1,
trigger:{global:'phaseBegin'}, trigger:{global:'phaseZhunbeiBegin'},
priority:5, //priority:5,
filter:function(event,player){ filter:function(event,player){
return player._mouduan_mark&&player._mouduan_mark.name=='文'&&player.countCards('h')>2; return player._mouduan_mark&&player._mouduan_mark.name=='文'&&player.countCards('h')>2;
}, },
@ -7311,7 +7326,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
xuehen:{ xuehen:{
audio:2, audio:2,
trigger:{global:'phaseEnd'}, trigger:{global:'phaseJieshuBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return player.hasSkill('fenyong2')&&event.player.isAlive(); return player.hasSkill('fenyong2')&&event.player.isAlive();
@ -7424,17 +7439,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.player.line(player); trigger.player.line(player);
} }
else{ else{
if(get.itemtype(trigger.card)=='card'){ if(get.itemtype(trigger.cards)=='cards'){
trigger.player.$gain2(trigger.card); trigger.player.$gain2(trigger.cards);
if(!trigger.player.storage.zhenwei2){ if(!trigger.player.storage.zhenwei2){
trigger.player.storage.zhenwei2=[trigger.card]; trigger.player.storage.zhenwei2=trigger.cards.slice(0);
} }
else{ else{
trigger.player.storage.zhenwei2.push(trigger.card); trigger.player.storage.zhenwei2.addArray(trigger.cards);
} }
ui.special.appendChild(trigger.card); game.cardsGotoSpecial(trigger.cards);
//ui.special.appendChild(trigger.card);
trigger.player.markSkill('zhenwei2'); trigger.player.markSkill('zhenwei2');
event.trigger("addCardToStorage"); //event.trigger("addCardToStorage");
} }
trigger.getParent().excluded.add(trigger.target); trigger.getParent().excluded.add(trigger.target);
trigger.player.addSkill('zhenwei2'); trigger.player.addSkill('zhenwei2');
@ -7545,7 +7561,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
xunzhi:{ xunzhi:{
audio:2, audio:2,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
init:function(player){ init:function(player){
player.storage.xunzhi=0; player.storage.xunzhi=0;
}, },
@ -7614,7 +7630,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
junwei:{ junwei:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.yinling&&player.storage.yinling.length>=3; return player.storage.yinling&&player.storage.yinling.length>=3;
@ -7730,7 +7746,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
intro:{ intro:{
content:'cards' content:'cards'
}, },
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
forced:true, forced:true,
content:function(){ content:function(){
'step 0' 'step 0'
@ -7817,10 +7833,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return player.countCards('he',{suit:'diamond'})>0; return player.countCards('he',{suit:'diamond'})>0;
}, },
discard:false, discard:false,
lose:false, //lose:false,
visible:true,
toStorage:true,
prepare:'give', prepare:'give',
content:function(){ content:function(){
player.lose(cards,ui.special,'toStorage','visible'); //player.lose(cards,ui.special,'toStorage','visible');
if(target.hasSkill('yanxiao2')&&target.storage.yanxiao2){ if(target.hasSkill('yanxiao2')&&target.storage.yanxiao2){
target.storage.yanxiao2.push(cards[0]); target.storage.yanxiao2.push(cards[0]);
target.syncStorage('yanxiao2'); target.syncStorage('yanxiao2');
@ -7942,7 +7960,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:['xingwu_color','xingwu_color2'], group:['xingwu_color','xingwu_color2'],
subSkill:{ subSkill:{
color:{ color:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
silent:true, silent:true,
content:function(){ content:function(){
player.storage.xingwu_color=['black','red']; player.storage.xingwu_color=['black','red'];
@ -8050,7 +8068,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
yinbing:{ yinbing:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
audio:2, audio:2,
init:function(player){ init:function(player){
@ -8128,7 +8146,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:'yinbing_discard' group:'yinbing_discard'
}, },
juedi:{ juedi:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){ filter:function(event,player){
return player.storage.yinbing&&player.storage.yinbing.length>0; return player.storage.yinbing&&player.storage.yinbing.length>0;
}, },
@ -8348,7 +8366,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
fentian:{ fentian:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
if(player.countCards('h')>=player.hp) return false; if(player.countCards('h')>=player.hp) return false;
@ -8396,7 +8414,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
zhiri:{ zhiri:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
unique:true, unique:true,
juexingji:true, juexingji:true,
@ -8448,7 +8466,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
danji:{ danji:{
skillAnimation:true, skillAnimation:true,
animationColor:'water', animationColor:'water',
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
unique:true, unique:true,
juexingji:true, juexingji:true,
@ -8560,7 +8578,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
shuliang:{ shuliang:{
audio:2, audio:2,
trigger:{global:'phaseEnd'}, trigger:{global:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.tunchu&&player.storage.tunchu.length>0&&event.player.countCards('h')<event.player.hp&&event.player.isAlive(); return player.storage.tunchu&&player.storage.tunchu.length>0&&event.player.countCards('h')<event.player.hp&&event.player.isAlive();
@ -8765,7 +8783,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
qingyi1:{ qingyi1:{
audio:true, audio:true,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
@ -8943,7 +8961,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
chenqing:{ chenqing:{
audio:2, audio:2,
trigger:{global:'dying'}, trigger:{global:'dying'},
priority:6, //priority:6,
filter:function(event,player){ filter:function(event,player){
return event.player.hp<=0&&!player.hasSkill('chenqing2'); return event.player.hp<=0&&!player.hasSkill('chenqing2');
}, },
@ -8969,7 +8987,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}); });
'step 1' 'step 1'
if(result.bool){ if(result.bool){
player.addTempSkill('chenqing2',{player:'phaseBegin'}); player.addTempSkill('chenqing2',{player:'phaseZhunbeiBegin'});
event.target=result.targets[0]; event.target=result.targets[0];
event.target.draw(4); event.target.draw(4);
player.logSkill('chenqing',event.target); player.logSkill('chenqing',event.target);
@ -9032,7 +9050,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
init:function(player){ init:function(player){
player.storage.mozhi=[]; player.storage.mozhi=[];
}, },
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.mozhi.length>0&&player.countCards('h')>0; return player.storage.mozhi.length>0&&player.countCards('h')>0;
@ -9132,7 +9150,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
ranshang2:{ ranshang2:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.ranshang>0; return player.storage.ranshang>0;
@ -9148,8 +9166,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
(event.card.name=='nanman'||event.card.name=='wanjian'); (event.card.name=='nanman'||event.card.name=='wanjian');
}, },
content:function(){ content:function(){
player.addTempSkill('hanyong3'); trigger.baseDamage++;
player.storage.hanyong3=trigger.card;
}, },
}, },
hanyong3:{ hanyong3:{
@ -9166,7 +9183,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
yishe:{ yishe:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
init:function(player){ init:function(player){
player.storage.yishe=[]; player.storage.yishe=[];
}, },
@ -9399,7 +9416,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
lixia:{ lixia:{
audio:2, audio:2,
trigger:{global:'phaseEnd'}, trigger:{global:'phaseJieshuBegin'},
filter:function(event,player){ filter:function(event,player){
return event.player.isAlive()&&event.player!=player&&get.distance(event.player,player,'attack')>1; return event.player.isAlive()&&event.player!=player&&get.distance(event.player,player,'attack')>1;
}, },
@ -9434,18 +9451,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
logTarget:'source', logTarget:'source',
content:function(){ content:function(){
"step 0" trigger.source.judge().callback=lib.skill.fuji.callback;
trigger.source.judge(ui.special); },
"step 1" callback:function(){
if(result.color=='black'){ var evt=event.getParent(2);
game.cardsDiscard(result.card); if(event.judgeResult.color=='black'){
trigger.num++; game.cardsDiscard(card);
evt._trigger.num++;
} }
else{ else{
trigger.source.gain(result.card); evt._trigger.source.gain(card,'gain2');
trigger.source.$gain2(result.card);
} }
} },
}, },
fulu:{ fulu:{
enable:'chooseToUse', enable:'chooseToUse',
@ -9528,7 +9545,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
kunfen:{ kunfen:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
@ -9571,7 +9588,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
derivation:'tiaoxin', derivation:'tiaoxin',
trigger:{player:'dying'}, trigger:{player:'dying'},
priority:10, //priority:10,
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return !player.storage.kunfen; return !player.storage.kunfen;
@ -9623,7 +9640,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
jilei:{ jilei:{
trigger:{player:'damageEnd'}, trigger:{player:'damageEnd'},
priority:9, //priority:9,
audio:2, audio:2,
direct:true, direct:true,
filter:function(event){ filter:function(event){
@ -9750,7 +9767,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var current=ui.discardPile.childNodes[i]; var current=ui.discardPile.childNodes[i];
if((!trigger.cards.contains(current))&&get.number(current)==number) event.togain.push(current); if((!trigger.cards.contains(current))&&get.number(current)==number) event.togain.push(current);
} }
if(!event.togain.length) event.goto(4); if(!event.togain.length) event.goto(5);
"step 3" "step 3"
player.chooseButton(['是否获得其中的一张牌?',event.togain]).ai=function(button){ player.chooseButton(['是否获得其中的一张牌?',event.togain]).ai=function(button){
return get.value(button.link); return get.value(button.link);
@ -9828,8 +9845,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:true, audio:true,
unique:true, unique:true,
mark:true, mark:true,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
priority:10, //priority:10,
filter:function(event,player){ filter:function(event,player){
if(player.storage.zuixiang) return false; if(player.storage.zuixiang) return false;
return true; return true;
@ -9839,8 +9856,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
"step 0" "step 0"
player.storage.zuixiang=get.cards(3); var cards=get.cards(3);
event.trigger('addCardToStorage'); player.storage.zuixiang=cards;
game.cardsGotoSpecial(cards);
player.showCards(player.storage.zuixiang); player.showCards(player.storage.zuixiang);
player.markSkill('zuixiang'); player.markSkill('zuixiang');
player.syncStorage('zuixiang'); player.syncStorage('zuixiang');
@ -9904,8 +9922,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
zuixiang2:{ zuixiang2:{
unique:true, unique:true,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
priority:9.5, //priority:9.5,
filter:function(event,player){ filter:function(event,player){
if(player.storage.zuixiang&&player.storage.zuixiang.length) return true; if(player.storage.zuixiang&&player.storage.zuixiang.length) return true;
return false; return false;
@ -9919,8 +9937,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish(); event.finish();
} }
else{ else{
player.storage.zuixiang.addArray(get.cards(3)); var cards=get.cards(3);
event.trigger('addCardToStorage'); player.storage.zuixiang.addArray(cards);
game.cardsGotoSpecial(cards);
//event.trigger('addCardToStorage');
player.showCards(player.storage.zuixiang); player.showCards(player.storage.zuixiang);
player.markSkill('zuixiang'); player.markSkill('zuixiang');
player.syncStorage('zuixiang'); player.syncStorage('zuixiang');
@ -10077,14 +10097,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
prepare:'throw', prepare:'throw',
discard:false, discard:false,
lose:false, //lose:false,
visible:true,
toStorage:true,
content:function(){ content:function(){
player.lose(cards,ui.special,'toStorage'); //player.lose(cards,ui.special,'toStorage');
target.$gain2(cards); target.$gain2(cards);
target.storage.zhoufu2=cards[0]; target.storage.zhoufu2=cards[0];
target.addSkill('zhoufu2'); target.addSkill('zhoufu2');
target.storage.zhoufu3=player; target.storage.zhoufu3=player;
ui.special.appendChild(cards[0]); //ui.special.appendChild(cards[0]);
target.syncStorage('zhoufu2'); target.syncStorage('zhoufu2');
}, },
check:function(card){ check:function(card){
@ -10101,7 +10123,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhoufu2:{ zhoufu2:{
trigger:{player:'judgeBegin'}, trigger:{player:'judgeBegin'},
forced:true, forced:true,
priority:10, //priority:10,
mark:'card', mark:'card',
filter:function(event){ filter:function(event){
return !event.directresult; return !event.directresult;
@ -10123,7 +10145,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
zhoufu3:{ zhoufu3:{
trigger:{global:'phaseEnd'}, trigger:{global:'phaseJieshuBegin'},
silent:true, silent:true,
content:function(){ content:function(){
if(player.storage.zhoufu3.isIn()){ if(player.storage.zhoufu3.isIn()){
@ -10159,7 +10181,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
kuiwei:{ kuiwei:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
check:function(event,player){ check:function(event,player){
if(player.isTurnedOver()) return true; if(player.isTurnedOver()) return true;
var num=game.countPlayer(function(current){ var num=game.countPlayer(function(current){
@ -10250,7 +10272,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
wangzun:{ wangzun:{
audio:2, audio:2,
trigger:{global:'phaseBegin'}, trigger:{global:'phaseZhunbeiBegin'},
check:function(event,player){ check:function(event,player){
var att=get.attitude(player,event.player); var att=get.attitude(player,event.player);
return !game.hasPlayer(function(current){ return !game.hasPlayer(function(current){
@ -10276,7 +10298,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:'wangzun2' group:'wangzun2'
}, },
wangzun2:{ wangzun2:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
silent:true, silent:true,
content:function(){ content:function(){
player.unmarkSkill('wangzun'); player.unmarkSkill('wangzun');
@ -10392,7 +10414,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
juexingji:true, juexingji:true,
forceunique:true, forceunique:true,
derivation:'xiaoji', derivation:'xiaoji',
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){ filter:function(event,player){
if(player.storage.fanxiang) return false; if(player.storage.fanxiang) return false;
return game.hasPlayer(function(current){ return game.hasPlayer(function(current){
@ -10755,7 +10777,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
qiluan4:{ qiluan4:{
trigger:{global:'phaseBegin'}, trigger:{global:'phaseZhunbeiBegin'},
silent:true, silent:true,
content:function(){ content:function(){
player.storage.qiluan=0; player.storage.qiluan=0;
@ -10964,7 +10986,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
fenming:{ fenming:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
check:function(event,player){ check:function(event,player){
var num=game.countPlayer(function(current){ var num=game.countPlayer(function(current){
if(current.isLinked()&&current.countCards('he')){ if(current.isLinked()&&current.countCards('he')){
@ -11032,7 +11054,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
xiaoguo:{ xiaoguo:{
audio:2, audio:2,
trigger:{global:'phaseEnd'}, trigger:{global:'phaseJieshuBegin'},
filter:function(event,player){ filter:function(event,player){
return event.player.isAlive()&&event.player!=player&&player.countCards('h',{type:'basic'}); return event.player.isAlive()&&event.player!=player&&player.countCards('h',{type:'basic'});
}, },
@ -11082,7 +11104,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'dying'}, trigger:{global:'dying'},
forced:true, forced:true,
popup:false, popup:false,
priority:12, //priority:12,
check:function(){ check:function(){
return false; return false;
}, },
@ -11217,7 +11239,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
junbing2:{ junbing2:{
audio:'junbing', audio:'junbing',
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
filter:function(event,player){ filter:function(event,player){
if(player.countCards('h')>1) return false; if(player.countCards('h')>1) return false;
return game.hasPlayer(function(current){ return game.hasPlayer(function(current){
@ -11390,7 +11412,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
shenzhi:{ shenzhi:{
audio:2, audio:2,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
check:function(event,player){ check:function(event,player){
if(player.hp>2) return false; if(player.hp>2) return false;
var cards=player.getCards('h'); var cards=player.getCards('h');
@ -11419,7 +11441,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skillAnimation:true, skillAnimation:true,
animationColor:'orange', animationColor:'orange',
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
forced:true, forced:true,
unique:true, unique:true,
juexingji:true, juexingji:true,
@ -11545,7 +11567,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
huxiao:{ huxiao:{
trigger:{source:'damageSource'}, trigger:{source:'damageSource'},
silent:true, //silent:true,
filter:function(event,player){ filter:function(event,player){
if(event._notrigger.contains(event.player)) return false; if(event._notrigger.contains(event.player)) return false;
return event.nature=='fire'; return event.nature=='fire';
@ -11555,37 +11577,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.storage.huxiao=[]; player.storage.huxiao=[];
} }
player.storage.huxiao.add(trigger.player); player.storage.huxiao.add(trigger.player);
trigger.player.draw();
player.addTempSkill('huxiao3');
}, },
group:['huxiao_draw','huxiao_clear'], group:['huxiao_clear'],
subSkill:{ subSkill:{
draw:{
trigger:{source:'damageSource'},
priority:-6,
filter:function(event,player){
if(!player.storage.huxiao||!player.storage.huxiao.length) return false;
for(var i=0;i<player.storage.huxiao.length;i++){
if(player.storage.huxiao[i].isIn()) return true;
}
return false;
},
check:function(){
return false;
},
forced:true,
content:function(){
for(var i=0;i<player.storage.huxiao.length;i++){
if(!player.storage.huxiao[i].isIn()){
player.storage.huxiao.splice(i--,1);
}
}
game.asyncDraw(player.storage.huxiao);
if(!player.storage.huxiao3){
player.storage.huxiao3=[];
}
player.storage.huxiao3.addArray(player.storage.huxiao);
player.addTempSkill('huxiao3');
}
},
clear:{ clear:{
trigger:{source:'damageSource'}, trigger:{source:'damageSource'},
priority:-7, priority:-7,
@ -11932,7 +11928,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
duwu2:{ duwu2:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
popup:false, popup:false,
audio:false, audio:false,
@ -11997,7 +11993,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
bifa:{ bifa:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
audio:2, audio:2,
filter:function(event,player){ filter:function(event,player){
@ -12040,7 +12036,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
bifa2:{ bifa2:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
mark:true, mark:true,
audio:false, audio:false,
@ -12262,7 +12258,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
yuanhu:{ yuanhu:{
audio:3, audio:3,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player.countCards('he',{type:'equip'})>0; return player.countCards('he',{type:'equip'})>0;
@ -12478,7 +12474,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
animationColor:'thunder', animationColor:'thunder',
audio:true, audio:true,
derivation:['benghuai','weizhong'], derivation:['benghuai','weizhong'],
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){ filter:function(event,player){
return player.maxHp>game.players.length&&player.hp<player.maxHp&&!player.storage.juyi; return player.maxHp>game.players.length&&player.hp<player.maxHp&&!player.storage.juyi;
}, },
@ -12578,7 +12574,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
suiren:{ suiren:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
skillAnimation:true, skillAnimation:true,
animationColor:'gray', animationColor:'gray',
filter:function(event,player){ filter:function(event,player){

View File

@ -335,7 +335,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}); });
}, },
content:function(){ content:function(){
player.addTempSkill('luoyi2','phaseEnd'); player.addTempSkill('luoyi2','phaseJieshuBegin');
trigger.num--; trigger.num--;
} }
}, },
@ -354,11 +354,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
tiandu:{ tiandu:{
audio:2, audio:2,
audioname:['re_guojia','xizhicai'], audioname:['re_guojia','xizhicai','gz_nagisa'],
trigger:{player:'judgeEnd'}, trigger:{player:'judgeEnd'},
frequent:function(event){ frequent:function(event){
if(event.result.card.name=='du') return false; if(event.result.card.name=='du') return false;
if(get.mode()=='guozhan') return false; //if(get.mode()=='guozhan') return false;
return true; return true;
}, },
check:function(event){ check:function(event){
@ -366,17 +366,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return true; return true;
}, },
filter:function(event,player){ filter:function(event,player){
if(get.owner(event.result.card)){ return get.position(event.result.card)=='d';
return false;
}
if(event.nogain&&event.nogain(event.result.card)){
return false;
}
return true;
}, },
content:function(){ content:function(){
player.gain(trigger.result.card); player.gain(trigger.result.card,'gain2');
player.$gain2(trigger.result.card);
} }
}, },
yiji:{ yiji:{
@ -456,7 +449,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
luoshen:{ luoshen:{
audio:2, audio:2,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
frequent:true, frequent:true,
content:function(){ content:function(){
"step 0" "step 0"
@ -502,7 +495,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinluoshen:{ xinluoshen:{
audio:'luoshen', audio:'luoshen',
// alter:true, // alter:true,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
frequent:true, frequent:true,
content:function(){ content:function(){
"step 0" "step 0"
@ -591,7 +584,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterCard:true, filterCard:true,
selectCard:[1,Infinity], selectCard:[1,Infinity],
discard:false, discard:false,
prepare:'give', prepare:'give2',
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return player!=target; return player!=target;
}, },
@ -892,10 +885,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinguanxing:{ xinguanxing:{
audio:'guanxing', audio:'guanxing',
// alter:true, // alter:true,
trigger:{player:['phaseBegin','phaseEnd']}, trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
frequent:true, frequent:true,
filter:function(event,player,name){ filter:function(event,player,name){
if(name=='phaseEnd'){ if(name=='phaseJieshuBegin'){
return player.hasSkill('xinguanxing_on'); return player.hasSkill('xinguanxing_on');
} }
return true; return true;
@ -921,7 +914,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(js[pos]){ if(js[pos]){
return (get.judge(js[pos]))(card); return (get.judge(js[pos]))(card);
} }
else if(event.triggername=='phaseEnd'&&get.attitude(player,player.getNext())<=0){ else if(event.triggername=='phaseJieshuBegin'&&get.attitude(player,player.getNext())<=0){
return 11.5-get.value(card,player); return 11.5-get.value(card,player);
} }
else{ else{
@ -1009,7 +1002,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
player.popup(get.cnNumber(event.num1)+'上'+get.cnNumber(event.num2)+'下'); player.popup(get.cnNumber(event.num1)+'上'+get.cnNumber(event.num2)+'下');
game.log(player,'将','#y'+get.cnNumber(event.num1)+'张牌','置于牌堆顶,','#y'+get.cnNumber(event.num2)+'张牌','置于牌堆底'); game.log(player,'将','#y'+get.cnNumber(event.num1)+'张牌','置于牌堆顶,','#y'+get.cnNumber(event.num2)+'张牌','置于牌堆底');
if(event.triggername=='phaseBegin'&&get.is.altered('xinguanxing')&&event.num1==0){ if(event.triggername=='phaseZhunbeiBegin'&&get.is.altered('xinguanxing')&&event.num1==0){
player.addTempSkill('xinguanxing_on'); player.addTempSkill('xinguanxing_on');
} }
}, },
@ -1020,7 +1013,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guanxing_oldnew:{ guanxing_oldnew:{
audio:2, audio:2,
audioname:['jiangwei'], audioname:['jiangwei'],
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
frequent:true, frequent:true,
content:function(){ content:function(){
'step 0' 'step 0'
@ -1112,7 +1105,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guanxing:{ guanxing:{
audio:2, audio:2,
audioname:['jiangwei'], audioname:['jiangwei'],
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
frequent:true, frequent:true,
content:function(){ content:function(){
"step 0" "step 0"
@ -1417,6 +1410,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
mashu2:{
mod:{
globalFrom:function(from,to,distance){
return distance-1;
}
}
},
feiying:{ feiying:{
mod:{ mod:{
globalTo:function(from,to,distance){ globalTo:function(from,to,distance){
@ -2216,48 +2216,46 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
wushuang1:{ wushuang1:{
audio:2, audio:2,
audioname:['re_lvbu'], audioname:['re_lvbu','shen_lvbu'],
trigger:{player:'shaBegin'}, trigger:{player:'useCardToPlayered'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return !event.directHit; return event.card.name=='sha'&&!event.getParent().directHit.contains(event.target);
}, },
priority:-1, //priority:-1,
logTarget:'target',
content:function(){ content:function(){
if(typeof trigger.shanRequired=='number'){ var id=trigger.target.playerid;
trigger.shanRequired++; var map=trigger.getParent().customArgs;
if(!map[id]) map[id]={};
if(typeof map[id].shanRequired=='number'){
map[id].shanRequired++;
} }
else{ else{
trigger.shanRequired=2; map[id].shanRequired=2;
} }
} }
}, },
wushuang2:{ wushuang2:{
audio:2, audio:2,
audioname:['re_lvbu'], audioname:['re_lvbu','shen_lvbu'],
trigger:{player:'juedou',target:'juedou'}, trigger:{player:'useCardToPlayered',target:'useCardToTargeted'},
forced:true, forced:true,
filter:function(event,player){ logTarget:function(trigger,player){
return event.turn!=player; return player==trigger.player?trigger.target:trigger.player
}, },
priority:-1, filter:function(event,player){
return event.card.name=='juedou';
},
//priority:-1,
content:function(){ content:function(){
"step 0" var id=(player==trigger.player?trigger.target:trigger.player)['playerid'];
var next=trigger.turn.chooseToRespond({name:'sha'},'请打出一张杀响应决斗'); var idt=trigger.target.playerid;
next.set('prompt2','共需打出2张杀'); var map=trigger.getParent().customArgs;
next.autochoose=lib.filter.autoRespondSha; if(!map[idt]) map[idt]={};
next.set('ai',function(card){ if(!map[idt].shaReq) map[idt].shaReq={};
var player=_status.event.player; if(!map[idt].shaReq[id]) map[idt].shaReq[id]=1;
var trigger=_status.event.getTrigger(); map[idt].shaReq[id]++;
if(get.attitude(trigger.turn,player)<0&&trigger.turn.countCards('h','sha')>1){
return get.unuseful2(card);
}
return -1;
});
"step 1"
if(result.bool==false){
trigger.directHit=true;
}
}, },
ai:{ ai:{
result:{ result:{
@ -2312,7 +2310,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
biyue:{ biyue:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
frequent:true, frequent:true,
content:function(){ content:function(){
player.draw(); player.draw();
@ -2320,7 +2318,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
xinbiyue:{ xinbiyue:{
audio:'biyue', audio:'biyue',
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
frequent:true, frequent:true,
// alter:true, // alter:true,
content:function(){ content:function(){
@ -2332,8 +2330,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
yaowu:{ yaowu:{
trigger:{player:'damage'}, trigger:{player:'damageBegin3'},
priority:1, //priority:1,
audio:2, audio:2,
filter:function(event){ filter:function(event){
if(event.card&&(event.card.name=='sha')){ if(event.card&&(event.card.name=='sha')){
@ -2460,6 +2458,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
longdan1:'龙胆', longdan1:'龙胆',
longdan2:'龙胆', longdan2:'龙胆',
mashu:'马术', mashu:'马术',
mashu2:'马术',
feiying:'飞影', feiying:'飞影',
tieji:'铁骑', tieji:'铁骑',
jizhi:'集智', jizhi:'集智',
@ -2508,6 +2507,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kongcheng_info:'锁定技,当你没有手牌时,你不能成为【杀】或【决斗】的目标。', kongcheng_info:'锁定技,当你没有手牌时,你不能成为【杀】或【决斗】的目标。',
longdan_info:'你可以将【杀】当做【闪】,或将【闪】当做【闪】使用或打出', longdan_info:'你可以将【杀】当做【闪】,或将【闪】当做【闪】使用或打出',
mashu_info:'锁定技,你计算与其他角色的距离时-1。', mashu_info:'锁定技,你计算与其他角色的距离时-1。',
mashu2_info:'锁定技,你计算与其他角色的距离时-1。',
feiying_info:'锁定技,其他角色计算与你的距离时+1', feiying_info:'锁定技,其他角色计算与你的距离时+1',
tieji_info:'当你使用【杀】指定目标时,你可以进行一次判定。若结果为红色,则此【杀】不可被闪避。', tieji_info:'当你使用【杀】指定目标时,你可以进行一次判定。若结果为红色,则此【杀】不可被闪避。',
jizhi_info:'当你使用一张非转化的普通锦囊牌时,你可以摸一张牌。', jizhi_info:'当你使用一张非转化的普通锦囊牌时,你可以摸一张牌。',

View File

@ -46,7 +46,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_langxi":{ "xinfu_langxi":{
audio:2, audio:2,
trigger:{ trigger:{
player:"phaseBegin", player:"phaseZhunbeiBegin",
}, },
direct:true, direct:true,
content:function (){ content:function (){
@ -491,7 +491,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
discard:{ discard:{
trigger:{ trigger:{
player:"phaseBegin", player:"phaseZhunbeiBegin",
}, },
forced:true, forced:true,
filter:function (event,player){ filter:function (event,player){
@ -520,7 +520,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
trigger:{ trigger:{
player:"phaseEnd", player:"phaseJieshuBegin",
}, },
direct:true, direct:true,
filter:function (player,event){ filter:function (player,event){
@ -543,7 +543,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_zhenxing":{ "xinfu_zhenxing":{
audio:2, audio:2,
trigger:{ trigger:{
player:["damageEnd","phaseEnd"], player:["damageEnd","phaseJieshuBegin"],
}, },
direct:true, direct:true,
content:function (){ content:function (){
@ -806,11 +806,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{ trigger:{
player:"phaseDrawBefore", player:"phaseDrawBefore",
}, },
priority:10, //priority:10,
content:function (){ content:function (){
"step 0" "step 0"
event.cards=get.cards(4); event.cards=get.cards(4);
player.chooseCardButton(event.cards,2,'选择两张牌置于牌堆顶').set('ai',ai.get.buttonValue); player.chooseCardButton(true.event.cards,2,'选择两张牌置于牌堆顶').set('ai',ai.get.buttonValue);
"step 1" "step 1"
if(result.bool){ if(result.bool){
var choice=[]; var choice=[];
@ -1177,7 +1177,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
unique:true, unique:true,
gainable:true, gainable:true,
trigger:{global:'die'}, trigger:{global:'die'},
priority:5, //priority:5,
filter:function(event){ filter:function(event){
return event.player.countCards('he')>0; return event.player.countCards('he')>0;
}, },
@ -1190,7 +1190,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_fujian":{ "xinfu_fujian":{
audio:2, audio:2,
trigger:{ trigger:{
player:"phaseEnd", player:"phaseJieshuBegin",
}, },
filter:function (event,player){ filter:function (event,player){
return !game.hasPlayer(function(current){ return !game.hasPlayer(function(current){
@ -1361,7 +1361,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.player.hp<0&&event.player!=player; return event.player.hp<0&&event.player!=player;
}, },
forced:true, forced:true,
priority:7, //priority:7,
content:function (){ content:function (){
if(trigger.parent.name=='damage'&&get.itemtype(trigger.parent.cards)=='cards'&&get.position(trigger.parent.cards[0])=='d'){ if(trigger.parent.name=='damage'&&get.itemtype(trigger.parent.cards)=='cards'&&get.position(trigger.parent.cards[0])=='d'){
player.gain(trigger.parent.cards,"gain2"); player.gain(trigger.parent.cards,"gain2");
@ -1386,7 +1386,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
audio:3, audio:3,
trigger:{ trigger:{
player:"phaseBegin", player:"phaseZhunbeiBegin",
}, },
forced:true, forced:true,
direct:true, direct:true,
@ -2037,7 +2037,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
"xinfu_dianhua":{ "xinfu_dianhua":{
trigger:{ trigger:{
player:["phaseBegin","phaseEnd"], player:["phaseZhunbeiBegin","phaseJieshuBegin"],
}, },
frequent:true, frequent:true,
audio:2, audio:2,
@ -2709,7 +2709,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
intro:{ intro:{
content:"limited", content:"limited",
}, },
priority:6, //priority:6,
audio:2, audio:2,
content:function (){ content:function (){
"step 0" "step 0"
@ -2740,7 +2740,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
unique:true, unique:true,
audio:2, audio:2,
trigger:{ trigger:{
player:"phaseEnd", player:"phaseJieshuBegin",
}, },
limited:true, limited:true,
init:function (player){ init:function (player){
@ -2870,27 +2870,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.targets.contains(player)) return true; if(event.targets.contains(player)) return true;
return false; return false;
}, },
content:function (){ callback:function(){
"step 0" game.cardsGotoSpecial(card);
player.judge(function(card){ player.storage.xinfu_jijun.push(card);
return 1; var node=event.judgeResult.node;
},ui.special); node.moveDelete(player);
"step 1"
if(result.bool){
result.card.goto(ui.special);
player.storage.xinfu_jijun.push(result.card);
result.node.moveDelete(player);
game.broadcast(function(cardid,player){ game.broadcast(function(cardid,player){
var node=lib.cardOL[cardid]; var node=lib.cardOL[cardid];
if(node){ if(node){
node.moveDelete(player); node.moveDelete(player);
} }
},result.node.cardid,player); },node.cardid,player);
game.addVideo('gain2',player,get.cardsInfo([result.node])); game.addVideo('gain2',player,get.cardsInfo([node]));
player.markSkill('xinfu_jijun'); player.markSkill('xinfu_jijun');
game.addVideo('storage',player,['xinfu_jijun',get.cardsInfo(player.storage.xinfu_jijun),'cards']); game.addVideo('storage',player,['xinfu_jijun',get.cardsInfo(player.storage.xinfu_jijun),'cards']);
event.trigger("addCardToStorage"); //event.trigger("addCardToStorage");
} },
content:function (){
player.judge(function(card){
return 1;
}).callback=lib.skill.xinfu_jijun.callback;
}, },
init:function (player){ init:function (player){
player.storage.xinfu_jijun=[]; player.storage.xinfu_jijun=[];
@ -2963,7 +2962,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
audio:2, audio:2,
trigger:{ trigger:{
player:"phaseEnd", player:"phaseJieshuBegin",
}, },
filter:function (event,player){ filter:function (event,player){
return player.countCards('he')&&player.storage.xinfu_jijun.length; return player.countCards('he')&&player.storage.xinfu_jijun.length;
@ -3299,7 +3298,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(range<3&&event.num<=1) return false; if(range<3&&event.num<=1) return false;
return true; return true;
}, },
priority:-9.5, //priority:-9.5,
content:function (){ content:function (){
trigger.num=trigger.source.getAttackRange()<3?1:trigger.num+1; trigger.num=trigger.source.getAttackRange()<3?1:trigger.num+1;
}, },
@ -3491,7 +3490,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_youdi":{ "xinfu_youdi":{
audio:2, audio:2,
trigger:{ trigger:{
player:"phaseEnd", player:"phaseJieshuBegin",
}, },
direct:true, direct:true,
filter:function (event,player){ filter:function (event,player){
@ -4434,19 +4433,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
trigger:{ trigger:{
player:['phaseBegin','phaseEnd'], player:['phaseZhunbeiBefore','phaseJieshuBefore'],
}, },
forced:true, forced:true,
audio:2, audio:2,
group:'xinfu_pdgyingshi2', group:'xinfu_pdgyingshi2',
priority:Infinity, priority:15,
content:function(){ content:function(){
var evt=event.getParent('arrangeTrigger'); trigger.cancel();
if(evt&&evt.map){ game.log(player,'跳过了',event.triggername=='phaseZhunbeiBefore'?'准备阶段':'结束阶段');
evt.map=[];
evt.doing.list=[];
}
game.log(player,'跳过了',event.triggername=='phaseBegin'?'准备阶段':'结束阶段');
}, },
}, },
xinfu_pdgyingshi2:{ xinfu_pdgyingshi2:{
@ -4650,7 +4645,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
prompt:function (links,player){ prompt:function (links,player){
var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌'; var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌';
return '将'+str+'当做'+get.translation(links[0][3]||'')+get.translation(links[0][2])+'使用'; return '将'+str+'当做'+get.translation(links[0][3]||'')+get.translation(links[0][2])+'使用';
}, },
}, },
@ -4959,7 +4954,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:"dying", global:"dying",
source:"gainEnd", source:"gainEnd",
}, },
priority:6, //priority:6,
audio:2, audio:2,
filter:function (event,player){ filter:function (event,player){
if(event.name=='dying') return true; if(event.name=='dying') return true;
@ -5233,7 +5228,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_shangjian":{ "xinfu_shangjian":{
group:["xinfu_shangjian_count","xinfu_shangjian_init"], group:["xinfu_shangjian_count","xinfu_shangjian_init"],
trigger:{ trigger:{
global:"phaseEnd", global:"phaseJieshuBegin",
}, },
audio:2, audio:2,
filter:function (event,player){ filter:function (event,player){
@ -5346,7 +5341,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
})) return false; })) return false;
return true; return true;
}, },
priority:-10, //priority:-10,
content:function (){ content:function (){
trigger.num=1; trigger.num=1;
}, },

View File

@ -195,14 +195,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xindanshou:{ xindanshou:{
audio:'danshou', audio:'danshou',
trigger:{ trigger:{
global:['phaseEnd','phaseBefore'], global:['phaseJieshuBegin','phaseBefore'],
target:'useCardToTargeted', target:'useCardToTargeted',
}, },
forced:true, forced:true,
popup:false, popup:false,
filter:function(event,player,name){ filter:function(event,player,name){
return name=='phaseBefore'|| return name=='phaseBefore'||
((name=='phaseEnd'&&event.player!=player&&player.countCards('he')>=event.player.countCards('h'))|| ((name=='phaseJieshuBegin'&&event.player!=player&&player.countCards('he')>=event.player.countCards('h'))||
(event.targets&&event.targets.contains(player))) (event.targets&&event.targets.contains(player)))
&&!player.hasSkill('xindanshou_as'); &&!player.hasSkill('xindanshou_as');
}, },
@ -213,7 +213,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish(); event.finish();
return; return;
} }
else if(event.triggername=='phaseEnd'){ else if(event.triggername=='phaseJieshuBegin'){
var num=trigger.player.countCards('h'); var num=trigger.player.countCards('h');
if(num>0) player.chooseToDiscard(get.prompt('xindanshou',trigger.player),num,'弃置'+get.cnNumber(num)+'张牌并对'+get.translation(trigger.player)+'造成1点伤害','he').set('logSkill',['xindanshou',trigger.player]).set('ai',function(card){ if(num>0) player.chooseToDiscard(get.prompt('xindanshou',trigger.player),num,'弃置'+get.cnNumber(num)+'张牌并对'+get.translation(trigger.player)+'造成1点伤害','he').set('logSkill',['xindanshou',trigger.player]).set('ai',function(card){
if(get.damageEffect(_status.event.getTrigger().player,_status.event.player,_status.event.player)>0) return 6-get.value(card); if(get.damageEffect(_status.event.getTrigger().player,_status.event.player,_status.event.player)>0) return 6-get.value(card);
@ -658,7 +658,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
xindangxian:{ xindangxian:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
audio:'dangxian', audio:'dangxian',
audioname:['guansuo'], audioname:['guansuo'],
@ -1401,7 +1401,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhenjun:{ zhenjun:{
audio:"jieyue", audio:"jieyue",
trigger:{ trigger:{
player:"phaseBegin", player:"phaseZhunbeiBegin",
}, },
filter:function (event,player){ filter:function (event,player){
return game.hasPlayer(function(current){ return game.hasPlayer(function(current){
@ -1452,7 +1452,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rezhenjun:{ rezhenjun:{
audio:"jieyue", audio:"jieyue",
trigger:{ trigger:{
player:"phaseBegin", player:"phaseZhunbeiBegin",
}, },
filter:function (event,player){ filter:function (event,player){
return game.hasPlayer(function(current){ return game.hasPlayer(function(current){
@ -1556,7 +1556,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:['pingkou_init','pingkou_count'], group:['pingkou_init','pingkou_count'],
subSkill:{ subSkill:{
init:{ init:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
silent:true, silent:true,
content:function(){ content:function(){
player.storage.pingkou=0; player.storage.pingkou=0;
@ -1576,7 +1576,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.pingkou>0; return player.storage.pingkou>0;
@ -1735,9 +1735,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
order:8, order:8,
threaten:1.8, threaten:1.8,
result:{ result:{
player:function(player,target){ target:function(player,target){
if(target.isEnemiesOf(player)&&!target.countCards('he')) return 0; var att=get.attitude(player,target);
return 1; var num=player.getStat('skill').pindi+1;
if(att<=0&&target.countCards('he')<num) return 0;
return get.sgn(att);
} }
} }
} }
@ -1796,7 +1798,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
jiexun:{ jiexun:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
// filter:function(event,player){ // filter:function(event,player){
// return game.hasPlayer(function(current){ // return game.hasPlayer(function(current){
// return current.countCards('ej',{suit:'diamond'}); // return current.countCards('ej',{suit:'diamond'});
@ -2203,7 +2205,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var target=result.targets[0] var target=result.targets[0]
player.logSkill('juexiang',target); player.logSkill('juexiang',target);
target.addSkill(lib.skill.juexiang.derivation.randomGet()); target.addSkill(lib.skill.juexiang.derivation.randomGet());
target.addTempSkill('juexiang_club',{player:'phaseBegin'}); target.addTempSkill('juexiang_club',{player:'phaseZhunbeiBegin'});
} }
}, },
derivation:['juexiang_ji','juexiang_lie','juexiang_rou','juexiang_he'], derivation:['juexiang_ji','juexiang_lie','juexiang_rou','juexiang_he'],
@ -2646,7 +2648,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
huimin:{ huimin:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
check:function(event,player){ check:function(event,player){
return game.countPlayer(function(current){ return game.countPlayer(function(current){
if(current.countCards('h')<current.hp){ if(current.countCards('h')<current.hp){
@ -2758,7 +2760,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
fuzhu:{ fuzhu:{
audio:2, audio:2,
trigger:{global:'phaseEnd'}, trigger:{global:'phaseJieshuBegin'},
filter:function(event,player){ filter:function(event,player){
return event.player!=player&&event.player.sex=='male'&&ui.cardPile.childElementCount<=player.hp*10; return event.player!=player&&event.player.sex=='male'&&ui.cardPile.childElementCount<=player.hp*10;
}, },
@ -2936,7 +2938,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wengua3:{}, wengua3:{},
daiyan:{ daiyan:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
init:function(){ init:function(){
lib.onwash.push(function(){ lib.onwash.push(function(){
@ -2998,7 +3000,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
fumian:{ fumian:{
audio:2, audio:2,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
direct:true, direct:true,
content:function(){ content:function(){
'step 0' 'step 0'
@ -3752,7 +3754,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
jishe3:{ jishe3:{
audio:'jishe', audio:'jishe',
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
if(player.countCards('h')) return false; if(player.countCards('h')) return false;
@ -3890,7 +3892,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
available:function(mode){ available:function(mode){
if(mode=='versus'&&_status.mode!='four') return false; if(mode=='versus'&&_status.mode!='four') return false;
}, },
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
var zhu=get.zhu(player); var zhu=get.zhu(player);
@ -4229,7 +4231,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
jiaozhao3:{ jiaozhao3:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
silent:true, silent:true,
content:function(){ content:function(){
delete player.storage.jiaozhao; delete player.storage.jiaozhao;
@ -4395,7 +4397,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
subSkill:{ subSkill:{
draw:{ draw:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
mark:true, mark:true,
intro:{ intro:{
@ -4427,7 +4429,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:['fulin_count','fulin_reset'], group:['fulin_count','fulin_reset'],
subSkill:{ subSkill:{
reset:{ reset:{
trigger:{player:['phaseBegin','phaseEnd']}, trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
silent:true, silent:true,
priority:10, priority:10,
content:function(){ content:function(){
@ -4616,7 +4618,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
xinjuece:{ xinjuece:{
audio:'juece', audio:'juece',
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return game.hasPlayer(function(player){ return game.hasPlayer(function(player){
@ -4743,7 +4745,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
jieyue1:{ jieyue1:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
content:function(){ content:function(){
'step 0' 'step 0'
@ -4845,7 +4847,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
jieyue4:{ jieyue4:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
content:function(){ content:function(){
player.gain(player.storage.jieyue2,'gain2','fromStorage'); player.gain(player.storage.jieyue2,'gain2','fromStorage');
@ -5055,7 +5057,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
chunlao:{ chunlao:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
audio:2, audio:2,
filter:function(event,player){ filter:function(event,player){
@ -5140,7 +5142,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
chunlao2_old:{ chunlao2_old:{
trigger:{global:'dying'}, trigger:{global:'dying'},
priority:6, //priority:6,
filter:function(event,player){ filter:function(event,player){
return event.player.hp<=0&&player.storage.chunlao.length>0; return event.player.hp<=0&&player.storage.chunlao.length>0;
}, },
@ -5549,7 +5551,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
dangxian:{ dangxian:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
audio:2, audio:2,
audioname:['guansuo'], audioname:['guansuo'],
@ -5913,7 +5915,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
xingxue:{ xingxue:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
content:function(){ content:function(){
'step 0' 'step 0'
@ -6537,7 +6539,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
init:function(player){ init:function(player){
player.storage.huomo={}; player.storage.huomo={};
}, },
trigger:{global:'phaseBegin'}, trigger:{global:'phaseZhunbeiBegin'},
silent:true, silent:true,
content:function(){ content:function(){
player.storage.huomo={}; player.storage.huomo={};
@ -6741,7 +6743,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
taoxi3:{ taoxi3:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
forced:true, forced:true,
popup:false, popup:false,
filter:function(event,player){ filter:function(event,player){
@ -6762,7 +6764,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
animationColor:'thunder', animationColor:'thunder',
audio:2, audio:2,
trigger:{player:'dying'}, trigger:{player:'dying'},
priority:6, //priority:6,
zhuSkill:true, zhuSkill:true,
filter:function(event,player){ filter:function(event,player){
if(player.storage.xingshuai) return false; if(player.storage.xingshuai) return false;
@ -7045,7 +7047,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
xinpojun2:{ xinpojun2:{
trigger:{global:'phaseEnd'}, trigger:{global:'phaseJieshuBegin'},
forced:true, forced:true,
audio:false, audio:false,
mark:true, mark:true,
@ -7077,14 +7079,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
qiaoshi:{ qiaoshi:{
audio:2, audio:2,
trigger:{global:'phaseEnd'}, trigger:{global:'phaseJieshuBegin'},
filter:function(event,player){ filter:function(event,player){
return event.player!=player&&event.player.countCards('h')==player.countCards('h')&&event.player.isAlive(); return event.player!=player&&event.player.countCards('h')==player.countCards('h')&&event.player.isAlive();
}, },
check:function(event,player){ check:function(event,player){
return get.attitude(player,event.player)>=0; return get.attitude(player,event.player)>=0;
}, },
priority:-5, //priority:-5,
logTarget:'player', logTarget:'player',
content:function(){ content:function(){
game.asyncDraw([trigger.player,player]); game.asyncDraw([trigger.player,player]);
@ -7102,14 +7104,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterCard:{name:'sha'}, filterCard:{name:'sha'},
prepare:function(cards,player){ prepare:function(cards,player){
player.$throw(cards,1000); player.$throw(cards,1000);
game.log(player,'将',cards,'置入了弃牌堆');
}, },
discard:false, discard:false,
loseTo:'discardPile',
visible:true,
delay:0.5, delay:0.5,
content:function(){ content:function(){
"step 0"
player.draw(); player.draw();
"step 1"
game.cardsDiscard(cards);
}, },
ai:{ ai:{
basic:{ basic:{
@ -7143,7 +7145,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
youdi:{ youdi:{
audio:true, audio:true,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player.countCards('he')>0; return player.countCards('he')>0;
@ -7501,7 +7503,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
qianxi:{ qianxi:{
audio:2, audio:2,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
content:function(){ content:function(){
"step 0" "step 0"
player.draw(); player.draw();
@ -7763,8 +7765,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
bingyi:{ bingyi:{
audio:2, audio:2,
trigger:{player:'phaseDiscardEnd'}, trigger:{player:'phaseJieshuBegin'},
filter:function(event,player){ filter:function(event,player){
return player.countCards('h')>0;
},
filterx:function(event,player){
var cards=player.getCards('h'); var cards=player.getCards('h');
if(cards.length<1) return false; if(cards.length<1) return false;
var color=get.color(cards[0]); var color=get.color(cards[0]);
@ -7776,11 +7781,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget(get.prompt('bingyi'),'令至多'+get.cnNumber(player.countCards('h'))+'名角色各摸一张牌',[1,player.countCards('h')],function(card,player,target){ if(lib.skill.bingyi.filterx(trigger,player)){player.chooseTarget(get.prompt('bingyi'),'展示所有手牌,并令至多'+get.cnNumber(player.countCards('h'))+'名角色各摸一张牌',[1,player.countCards('h')],function(card,player,target){
return true; return true;
}).set('ai',function(target){ }).set('ai',function(target){
return get.attitude(_status.event.player,target); return get.attitude(_status.event.player,target);
}); });}
else player.chooseBool(get.prompt('bingyi'),'展示所有手牌').ai=function(){return false};
"step 1" "step 1"
if(result.bool){ if(result.bool){
player.logSkill('bingyi'); player.logSkill('bingyi');
@ -7793,6 +7799,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 2" "step 2"
if(targets&&targets.length){ if(targets&&targets.length){
player.line(targets,'green'); player.line(targets,'green');
targets.sortBySeat();
game.asyncDraw(targets); game.asyncDraw(targets);
} }
}, },
@ -8062,7 +8069,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
chanhui2:{ chanhui2:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
forced:true, forced:true,
popup:false, popup:false,
audio:false, audio:false,
@ -8133,7 +8140,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:3, audio:3,
unique:true, unique:true,
juexingji:true, juexingji:true,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return !player.hasSkill('paiyi')&&player.storage.quanji&&player.storage.quanji.length>=3; return !player.hasSkill('paiyi')&&player.storage.quanji&&player.storage.quanji.length>=3;
@ -8272,7 +8279,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
global:'qieting2', global:'qieting2',
globalSilent:true, globalSilent:true,
trigger:{global:'phaseEnd'}, trigger:{global:'phaseJieshuBegin'},
filter:function(event,player){ filter:function(event,player){
return event.player!=player&&!event.player.tempSkills.qieting3&&event.player.isAlive(); return event.player!=player&&!event.player.tempSkills.qieting3&&event.player.isAlive();
}, },
@ -8346,7 +8353,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
zhuikong:{ zhuikong:{
audio:2, audio:2,
trigger:{global:'phaseBegin'}, trigger:{global:'phaseZhunbeiBegin'},
check:function(event,player){ check:function(event,player){
if(get.attitude(player,event.player)<-2){ if(get.attitude(player,event.player)<-2){
var cards=player.getCards('h'); var cards=player.getCards('h');
@ -8899,7 +8906,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
zhiyan:{ zhiyan:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
@ -8935,7 +8942,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
miji:{ miji:{
audio:2, audio:2,
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
filter:function(event,player){ filter:function(event,player){
return player.hp<player.maxHp; return player.hp<player.maxHp;
}, },
@ -9088,7 +9095,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
xinjujian:{ xinjujian:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
audio:2, audio:2,
filter:function(event,player){ filter:function(event,player){
@ -9268,8 +9275,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
luoying:{ luoying:{
unique:true, //unique:true,
gainable:true, //gainable:true,
group:['luoying_discard','luoying_judge'], group:['luoying_discard','luoying_judge'],
subfrequent:['discard','judge'], subfrequent:['discard','judge'],
subSkill:{ subSkill:{
@ -9319,7 +9326,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
filter:function(event,player){ filter:function(event,player){
if(event.player==player) return false; if(event.player==player) return false;
if(event.result.card.parentNode.id!='discardPile') return false; if(get.position(event.result.card)!='d') return false;
return (get.suit(event.result.card)=='club'); return (get.suit(event.result.card)=='club');
}, },
content:function(){ content:function(){
@ -10057,7 +10064,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
buyi:{ buyi:{
trigger:{global:'dying'}, trigger:{global:'dying'},
priority:6, //priority:6,
audio:2, audio:2,
filter:function(event,player){ filter:function(event,player){
return event.player.hp<=0&&event.player.countCards('h')>0; return event.player.hp<=0&&event.player.countCards('h')>0;
@ -10144,7 +10151,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
}, },
xinjingce:{ xinjingce:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
frequent:true, frequent:true,
filter:function(event,player){ filter:function(event,player){
return player.countUsed()>=player.hp; return player.countUsed()>=player.hp;
@ -10238,7 +10245,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
oldrenxin:{ oldrenxin:{
trigger:{global:'dying'}, trigger:{global:'dying'},
priority:6, //priority:6,
filter:function(event,player){ filter:function(event,player){
return event.player!=player&&event.player.hp<=0&&player.countCards('h')>0; return event.player!=player&&event.player.hp<=0&&player.countCards('h')>0;
}, },
@ -10348,7 +10355,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
xiansi:{ xiansi:{
audio:2, audio:2,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
direct:true, direct:true,
init:function(player){ init:function(player){
if(!player.storage.xiansi) player.storage.xiansi=[]; if(!player.storage.xiansi) player.storage.xiansi=[];
@ -10403,24 +10410,37 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:'xiansi2' global:'xiansi2'
}, },
xiansi2:{ xiansi2:{
enable:'phaseUse', enable:'chooseToUse',
audio:2, audio:2,
forceaudio:true, viewAs:{name:'sha'},
filter:function(event,player){ filter:function(event,player){
var players=game.filterPlayer(); return game.hasPlayer(function(current){
return current.hasSkill('xiansi')&&current.storage.xiansi.length>1&&event.filterTarget({name:'sha'},player,current);
});
},
filterTarget:function(card,player,target){
var bool=false;
var players=ui.selected.targets.slice(0);
for(var i=0;i<players.length;i++){ for(var i=0;i<players.length;i++){
if(players[i].hasSkill('xiansi')){ if(players[i].hasSkill('xiansi')&&players[i].storage.xiansi.length>1) bool=true;break;
return players[i].storage.xiansi.length>1&&player.canUse('sha',players[i],true,true);
}
} }
if(!bool&&(!target.hasSkill('xiansi')||target.storage.xiansi.length<=1)) return false;
return _status.event._backup.filterTarget.apply(this,arguments);
},
complexSelect:true,
selectCard:-1,
filterCard:function(){
return false; return false;
}, },
forceaudio:true,
direct:true, direct:true,
prompt:'弃置一名有【逆】的角色的两张【逆】,然后视为对包含其在内的角色使用【杀】。',
delay:0, delay:0,
content:function(){ log:false,
precontent:function(){
"step 0" "step 0"
var targets=game.filterPlayer(function(current){ var targets=game.filterPlayer(function(current){
if(current.storage.xiansi){ if(event.result.targets.contains(current)&&current.storage.xiansi){
return current.storage.xiansi.length>1&&player.canUse('sha',current,true,true); return current.storage.xiansi.length>1&&player.canUse('sha',current,true,true);
} }
return false; return false;
@ -10461,7 +10481,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
"step 3" "step 3"
if(event.directresult||result.bool){ if(event.directresult||result.bool){
player.logSkill('xiansi2'); player.logSkill('xiansi2',event.target);
var links=event.directresult||result.links; var links=event.directresult||result.links;
for(var i=0;i<links.length;i++){ for(var i=0;i<links.length;i++){
event.target.storage.xiansi.remove(links[i]); event.target.storage.xiansi.remove(links[i]);
@ -10476,23 +10496,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.target.$throw(links); event.target.$throw(links);
game.log(event.target,'被移去了',links); game.log(event.target,'被移去了',links);
game.cardsDiscard(links); game.cardsDiscard(links);
player.useCard({name:'sha'},event.target);
} }
}, },
ai:{ ai:{
order:function(){ order:function(){
return get.order({name:'sha'})+0.05; return get.order({name:'sha'})+0.05;
}, },
result:{
player:function(player){
var target=game.findPlayer(function(current){
return current.storage.xiansi;
});
if(target){
return get.effect(target,{name:'sha'},player,player);
}
}
}
} }
}, },
shibei:{ shibei:{
@ -10666,8 +10675,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
zquanji:{ zquanji:{
trigger:{global:'phaseBegin'}, trigger:{global:'phaseZhunbeiBegin'},
priority:15, //priority:15,
check:function(event,player){ check:function(event,player){
var att=get.attitude(player,event.player); var att=get.attitude(player,event.player);
if(att<0){ if(att<0){
@ -10697,7 +10706,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
zbaijiang:{ zbaijiang:{
skillAnimation:true, skillAnimation:true,
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
unique:true, unique:true,
derivation:['zyexin','zzili'], derivation:['zyexin','zzili'],
@ -10781,7 +10790,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.storage.zzili=false; player.storage.zzili=false;
}, },
derivation:'zpaiyi', derivation:'zpaiyi',
trigger:{player:'phaseBegin'}, trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){ filter:function(event,player){
return player.storage.zyexin.length>=4&&!player.storage.zzili; return player.storage.zyexin.length>=4&&!player.storage.zzili;
}, },
@ -10797,7 +10806,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
// } // }
}, },
zpaiyi:{ zpaiyi:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseJieshuBegin'},
filter:function(event,player){ filter:function(event,player){
for(var i=0;i<player.storage.zyexin.length;i++){ for(var i=0;i<player.storage.zyexin.length;i++){
var type=get.type(player.storage.zyexin[i]); var type=get.type(player.storage.zyexin[i]);