final hit
This commit is contained in:
parent
240a99d82f
commit
50dc78de67
|
@ -75,7 +75,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
db_key_liyingxia:['female','shu',3,['liyingxia_sanli','liyingxia_zhenjun','liyingxia_wumai'],['doublegroup:shu:key']],
|
db_key_liyingxia:['female','shu',3,['liyingxia_sanli','liyingxia_zhenjun','liyingxia_wumai'],['doublegroup:shu:key']],
|
||||||
key_erika:['female','key','3/3/2',['erika_shisong','erika_yousheng']],
|
key_erika:['female','key','3/3/2',['erika_shisong','erika_yousheng']],
|
||||||
key_satomi:['female','key',3,['satomi_luodao','satomi_daohai']],
|
key_satomi:['female','key',3,['satomi_luodao','satomi_daohai']],
|
||||||
key_iriya:['female','key',3,['iriya_yinji','iriya_haozhi']],
|
key_iriya:['female','key',3,['iriya_yinji','iriya_haozhi'],['unseen']],
|
||||||
|
|
||||||
key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']],
|
key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']],
|
||||||
key_misuzu:['female','key',3,['misuzu_hengzhou','misuzu_nongyin','misuzu_zhongxing']],
|
key_misuzu:['female','key',3,['misuzu_hengzhou','misuzu_nongyin','misuzu_zhongxing']],
|
||||||
|
@ -8799,8 +8799,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
discard:false,
|
discard:false,
|
||||||
line:true,
|
line:true,
|
||||||
direct:true,
|
log:false,
|
||||||
clearTime:true,
|
|
||||||
delay:false,
|
delay:false,
|
||||||
lose:false,
|
lose:false,
|
||||||
prepare:function(cards,player,targets){
|
prepare:function(cards,player,targets){
|
||||||
|
|
|
@ -43,6 +43,7 @@ window.noname_character_rank={
|
||||||
'noname',
|
'noname',
|
||||||
'sb_machao',
|
'sb_machao',
|
||||||
'dc_zhouxuān',
|
'dc_zhouxuān',
|
||||||
|
'key_iriya',
|
||||||
],
|
],
|
||||||
ap:[
|
ap:[
|
||||||
'gjqt_aruan',
|
'gjqt_aruan',
|
||||||
|
@ -296,6 +297,7 @@ window.noname_character_rank={
|
||||||
'zhanghua',
|
'zhanghua',
|
||||||
'zerong',
|
'zerong',
|
||||||
'wangguan',
|
'wangguan',
|
||||||
|
'duanqiaoxiao',
|
||||||
'key_misuzu',
|
'key_misuzu',
|
||||||
'key_sunohara',
|
'key_sunohara',
|
||||||
'key_umi',
|
'key_umi',
|
||||||
|
@ -908,6 +910,8 @@ window.noname_character_rank={
|
||||||
'xia_zhaoe',
|
'xia_zhaoe',
|
||||||
'zhangkai',
|
'zhangkai',
|
||||||
'sunhong',
|
'sunhong',
|
||||||
|
'zhangjinyun',
|
||||||
|
'dc_mengda',
|
||||||
],
|
],
|
||||||
b:[
|
b:[
|
||||||
'diy_feishi',
|
'diy_feishi',
|
||||||
|
@ -1619,6 +1623,7 @@ window.noname_character_rank={
|
||||||
'tw_jiangji',
|
'tw_jiangji',
|
||||||
'tw_niufudongxie',
|
'tw_niufudongxie',
|
||||||
'tw_shen_lvmeng',
|
'tw_shen_lvmeng',
|
||||||
|
'zhangjinyun',
|
||||||
'key_tomoya',
|
'key_tomoya',
|
||||||
'key_masato',
|
'key_masato',
|
||||||
'key_shiorimiyuki',
|
'key_shiorimiyuki',
|
||||||
|
@ -1843,6 +1848,7 @@ window.noname_character_rank={
|
||||||
'mengjie',
|
'mengjie',
|
||||||
'dc_ruiji',
|
'dc_ruiji',
|
||||||
'xia_zhaoe',
|
'xia_zhaoe',
|
||||||
|
'duanqiaoxiao',
|
||||||
'key_kano',
|
'key_kano',
|
||||||
'key_haruko',
|
'key_haruko',
|
||||||
'key_akiko',
|
'key_akiko',
|
||||||
|
@ -1876,6 +1882,7 @@ window.noname_character_rank={
|
||||||
'key_yukito',
|
'key_yukito',
|
||||||
'key_kotomi',
|
'key_kotomi',
|
||||||
'db_key_liyingxia',
|
'db_key_liyingxia',
|
||||||
|
'key_iriya',
|
||||||
],
|
],
|
||||||
rare:[
|
rare:[
|
||||||
'pal_shenqishuang',
|
'pal_shenqishuang',
|
||||||
|
|
|
@ -3912,8 +3912,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
lose:false,
|
lose:false,
|
||||||
delay:false,
|
delay:false,
|
||||||
line:true,
|
line:true,
|
||||||
direct:true,
|
|
||||||
clearTime:true,
|
|
||||||
prepare:function(cards,player,targets){
|
prepare:function(cards,player,targets){
|
||||||
targets[0].logSkill('xinhuangtian');
|
targets[0].logSkill('xinhuangtian');
|
||||||
},
|
},
|
||||||
|
@ -4554,7 +4552,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
threaten:0.8,
|
threaten:0.8,
|
||||||
effect:{
|
effect:{
|
||||||
target:function(card,player,target){
|
target:function(card,player,target){
|
||||||
if(get.tag(card,'damage')){
|
if(get.tag(card,'damage')&&!target.storage.xinzili){
|
||||||
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
|
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
|
||||||
if(!target.hasFriend()) return;
|
if(!target.hasFriend()) return;
|
||||||
if(target.hp>=4) return [0.5,get.tag(card,'damage')*2];
|
if(target.hp>=4) return [0.5,get.tag(card,'damage')*2];
|
||||||
|
@ -5338,7 +5336,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(event.card.name!='sha'||event.card.nature!='fire') return false;
|
if(event.card.name!='sha'||event.card.nature!='fire') return false;
|
||||||
return game.hasPlayer(function(current){
|
return game.hasPlayer(function(current){
|
||||||
return !event.targets.contains(current)&&player.canUse(event.card,current);
|
return !event.targets.contains(current)&&lib.filter.targetEnabled(event.card,player,current)&&lib.filter.targetInRange(event.card,player,current);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
|
@ -13536,7 +13534,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
trigger:{source:'damageEnd'},
|
trigger:{source:'damageEnd'},
|
||||||
locked:true,
|
locked:true,
|
||||||
direct:true,
|
forced:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(event.name=='chooseToUse') return player.hasCard(card=>get.suit(card)=='spade','hs');
|
if(event.name=='chooseToUse') return player.hasCard(card=>get.suit(card)=='spade','hs');
|
||||||
return event.card&&event.card.name=='sha'&&event.getParent(2).jiu==true&&!player.hasSkill('oljiuchi_air');
|
return event.card&&event.card.name=='sha'&&event.getParent(2).jiu==true&&!player.hasSkill('oljiuchi_air');
|
||||||
|
|
|
@ -3886,8 +3886,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
return target.hasZhuSkill('zhiba',player)&&player.canCompare(target);
|
return target.hasZhuSkill('zhiba',player)&&player.canCompare(target);
|
||||||
},
|
},
|
||||||
direct:true,
|
log:false,
|
||||||
clearTime:true,
|
|
||||||
prepare:function(cards,player,targets){
|
prepare:function(cards,player,targets){
|
||||||
targets[0].logSkill('zhiba');
|
targets[0].logSkill('zhiba');
|
||||||
},
|
},
|
||||||
|
@ -7356,8 +7355,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
lose:false,
|
lose:false,
|
||||||
delay:false,
|
delay:false,
|
||||||
line:true,
|
line:true,
|
||||||
direct:true,
|
|
||||||
clearTime:true,
|
|
||||||
prepare:function(cards,player,targets){
|
prepare:function(cards,player,targets){
|
||||||
targets[0].logSkill('huangtian');
|
targets[0].logSkill('huangtian');
|
||||||
},
|
},
|
||||||
|
|
|
@ -13,6 +13,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie'],
|
sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie'],
|
||||||
sp_liesi:['mizhu','weizi','ol_liuba'],
|
sp_liesi:['mizhu','weizi','ol_liuba'],
|
||||||
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'],
|
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'],
|
||||||
|
sp_waitforsort:['sunhong','luoxian','ol_huban','wangguan'],
|
||||||
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'],
|
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'],
|
||||||
sp_wanglang:['wanglang'],
|
sp_wanglang:['wanglang'],
|
||||||
sp_tongque:["sp_fuwan","sp_fuhuanghou","sp_jiben"],
|
sp_tongque:["sp_fuwan","sp_fuhuanghou","sp_jiben"],
|
||||||
|
@ -22887,6 +22888,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_guozhan:"国战",
|
sp_guozhan:"国战",
|
||||||
sp_guozhan2:"国战移植",
|
sp_guozhan2:"国战移植",
|
||||||
sp_others:"其他",
|
sp_others:"其他",
|
||||||
|
sp_waitforsort:'等待分包',
|
||||||
sp_single:'新1v1',
|
sp_single:'新1v1',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -437,47 +437,49 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
onremove:function(player){
|
onremove:function(player){
|
||||||
player.removeSkill('dcjijiao_machi');
|
player.removeSkill('dcjijiao_machi');
|
||||||
},
|
},
|
||||||
filter:function(event,player){
|
onChooseToUse:function(event){
|
||||||
var cardsx=Array.from(ui.discardPile.childNodes);
|
if(event.dcjijiao==undefined&&!game.online){
|
||||||
var history=_status.globalHistory;
|
var bool=lib.skill.dcjijiao.getCards(event.player,true);
|
||||||
for(var i=0;i<history.length;i++){
|
event.set('dcjijiao',bool);
|
||||||
var history2=history[i]['cardMove'];
|
|
||||||
for(var evt of history2){
|
|
||||||
var cards2=[];
|
|
||||||
if(evt.type=='discard') cards2=evt.getl(player).cards2;
|
|
||||||
else{
|
|
||||||
var evtx=evt.getParent();
|
|
||||||
if(evtx.name!='orderingDiscard') continue;
|
|
||||||
var evtx2=evtx.relatedEvent||evtx.getParent();
|
|
||||||
if(evtx2&&evtx2.name=='useCard'){
|
|
||||||
if(!evt.getd) continue;
|
|
||||||
cards2=evt.getd(player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(cards2.some(i=>get.type(i)=='trick'&&cardsx.contains(i))) return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.dcjijiao;
|
||||||
},
|
},
|
||||||
filterTarget:true,
|
filterTarget:true,
|
||||||
|
getCards:function(player,bool){
|
||||||
|
var cards=Array.from(ui.discardPile.childNodes);
|
||||||
|
var gains=cards.slice(0);
|
||||||
|
var history=game.getAllGlobalHistory('cardMove',function(evt){
|
||||||
|
if(evt.name=='lose') return evt.position==ui.discardPile;
|
||||||
|
return evt.name=='cardsDiscard';
|
||||||
|
});
|
||||||
|
for(var i=history.length-1;i>=0;i--){
|
||||||
|
var evt=history[i];
|
||||||
|
var cards2=evt.cards.filter(function(card){
|
||||||
|
return cards.contains(card);
|
||||||
|
});
|
||||||
|
if(cards2.length){
|
||||||
|
if(!lib.skill.dcjijiao.isUse(evt,player)){
|
||||||
|
gains.removeArray(cards2);
|
||||||
|
}
|
||||||
|
cards.removeArray(cards2);
|
||||||
|
}
|
||||||
|
if(!cards.length) break;
|
||||||
|
}
|
||||||
|
if(bool) return gains.some(card=>get.type2(card,false)=='trick');
|
||||||
|
return gains.filter(card=>get.type2(card,false)=='trick');
|
||||||
|
},
|
||||||
|
isUse:function(event,player){
|
||||||
|
if(event.name!='cardsDiscard') return (event.type=='discard'&&event.player==player);
|
||||||
|
var evtx=event.getParent();
|
||||||
|
if(evtx.name!='orderingDiscard') return false;
|
||||||
|
var evt2=(evtx.relatedEvent||evtx.getParent());
|
||||||
|
return (evt2.name=='useCard'&&evt2.player==player);
|
||||||
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
player.awakenSkill('dcjijiao');
|
player.awakenSkill('dcjijiao');
|
||||||
var cardsx=Array.from(ui.discardPile.childNodes);
|
var cards=lib.skill.dcjijiao.getCards(player);
|
||||||
var cards=[];
|
|
||||||
game.getAllGlobalHistory('cardMove',evt=>{
|
|
||||||
var cards2=[];
|
|
||||||
if(evt.type=='discard') cards2=evt.getl(player).cards2;
|
|
||||||
else{
|
|
||||||
var evtx=evt.getParent();
|
|
||||||
if(evtx.name!='orderingDiscard') return;
|
|
||||||
var evtx2=evtx.relatedEvent||evtx.getParent();
|
|
||||||
if(evtx2&&evtx2.name=='useCard'){
|
|
||||||
if(!evt.getd) return;
|
|
||||||
cards2=evt.getd(player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cards.addArray(cards2.filter(i=>get.type(i)=='trick'&&cardsx.contains(i)));
|
|
||||||
});
|
|
||||||
if(cards.length){
|
if(cards.length){
|
||||||
target.gain(cards,'gain2').gaintag.add('dcjijiao');
|
target.gain(cards,'gain2').gaintag.add('dcjijiao');
|
||||||
target.addSkill('dcjijiao_nowuxie');
|
target.addSkill('dcjijiao_nowuxie');
|
||||||
|
@ -513,9 +515,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
popup:false,
|
popup:false,
|
||||||
trigger:{global:'phaseAfter'},
|
trigger:{global:'phaseAfter'},
|
||||||
content:function(){
|
content:function(){
|
||||||
player.restoreSkill('dcjijiao');
|
if(player.awakenedSkills.contains('dcjijiao')){
|
||||||
game.log(player,'重置了','#g【继椒】');
|
player.restoreSkill('dcjijiao');
|
||||||
player.removeSkill('dcjijiao_machi');
|
game.log(player,'重置了','#g【继椒】');
|
||||||
|
//player.removeSkill('dcjijiao_machi');
|
||||||
|
}
|
||||||
player.removeSkill('dcjijiao_risutoa');
|
player.removeSkill('dcjijiao_risutoa');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -539,7 +543,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
trigger.nowuxie=true;
|
trigger.nowuxie=true;
|
||||||
},
|
},
|
||||||
onremove:function(player){
|
onremove:function(player){
|
||||||
player.removeGaintag('kousheng');
|
player.removeGaintag('dcjijiao');
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -586,8 +590,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var color=event.judgeResult.color;
|
var color=event.judgeResult.color;
|
||||||
var player=event.getParent(2).player;
|
var player=event.getParent(2).player;
|
||||||
var cards=event.getParent(2).cardsx;
|
var cards=event.getParent(2).cardsx;
|
||||||
for(var card of cards){
|
for(var cardx of cards){
|
||||||
if(get.color(card)==color){
|
if(get.color(cardx)==color){
|
||||||
if(get.position(card,true)=='o') player.gain(card,'gain2');
|
if(get.position(card,true)=='o') player.gain(card,'gain2');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -5689,11 +5693,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
intro:{
|
intro:{
|
||||||
content:'limited'
|
content:'limited'
|
||||||
},
|
},
|
||||||
direct:true,
|
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.awakenSkill('dcyongdi');
|
player.awakenSkill('dcyongdi');
|
||||||
player.logSkill('dcyongdi',target);
|
//player.logSkill('dcyongdi',target);
|
||||||
if(!game.hasPlayer(current=>current.maxHp<target.maxHp)){
|
if(!game.hasPlayer(current=>current.maxHp<target.maxHp)){
|
||||||
target.gainMaxHp();
|
target.gainMaxHp();
|
||||||
}
|
}
|
||||||
|
@ -13362,7 +13365,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var getNum=function(current){
|
var getNum=function(current){
|
||||||
var history=current.actionHistory;
|
var history=current.actionHistory;
|
||||||
var num=0;
|
var num=0;
|
||||||
for(var i=history.length-1;i>=0;i--){
|
for(var i=history.length-2;i>=0;i--){
|
||||||
for(var j=0;j<history[i].useCard.length;j++){
|
for(var j=0;j<history[i].useCard.length;j++){
|
||||||
if(get.type2(history[i].useCard[j].card,false)=='trick') num++;
|
if(get.type2(history[i].useCard[j].card,false)=='trick') num++;
|
||||||
}
|
}
|
||||||
|
@ -29629,7 +29632,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dcwujie:'无节',
|
dcwujie:'无节',
|
||||||
dcwujie_info:'锁定技。①你使用无色牌无任何次数限制且无距离限制。②当其他角色执行杀死你的奖惩而摸牌或弃牌时,取消之。',
|
dcwujie_info:'锁定技。①你使用无色牌无任何次数限制且无距离限制。②当其他角色执行杀死你的奖惩而摸牌或弃牌时,取消之。',
|
||||||
|
|
||||||
|
|
||||||
sp_whlw:"文和乱武",
|
sp_whlw:"文和乱武",
|
||||||
sp_zlzy:"逐鹿中原",
|
sp_zlzy:"逐鹿中原",
|
||||||
sp_longzhou:"同舟共济",
|
sp_longzhou:"同舟共济",
|
||||||
|
|
|
@ -763,8 +763,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return {
|
return {
|
||||||
audio:'twkaizeng',
|
audio:'twkaizeng',
|
||||||
type:result.control,
|
type:result.control,
|
||||||
direct:true,
|
log:false,
|
||||||
clearTime:true,
|
|
||||||
delay:false,
|
delay:false,
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
return target.hasSkill('twkaizeng');
|
return target.hasSkill('twkaizeng');
|
||||||
|
@ -1780,17 +1779,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
usable:1,
|
usable:1,
|
||||||
forceaudio:true,
|
forceaudio:true,
|
||||||
filter:function(event,player){
|
onChooseToUse:function(event){
|
||||||
var num=1;
|
if(!game.online){
|
||||||
game.countPlayer2(current=>{
|
var num=1;
|
||||||
|
game.countPlayer2(current=>{
|
||||||
var history=current.actionHistory;
|
var history=current.actionHistory;
|
||||||
for(var i=history.length-1;i>=0;i--){
|
for(var i=history.length-1;i>=0;i--){
|
||||||
for(var evt of history[i].useSkill){
|
for(var evt of history[i].useSkill){
|
||||||
if(evt.skill=='twluannian_global') num++;
|
if(evt.skill=='twluannian_global') num++;
|
||||||
|
}
|
||||||
|
if(history[i].isRound) break;
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
event.set('twluannian_num',num);
|
||||||
return player.group=='qun'&&player.countCards('he')>=num&&game.hasPlayer(function(current){
|
}
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(!event.twluannian_num) return false;
|
||||||
|
return player.group=='qun'&&player.countCards('he')>=event.twluannian_num&&game.hasPlayer(function(current){
|
||||||
var target=current.storage.twxiongzheng_target;
|
var target=current.storage.twxiongzheng_target;
|
||||||
return target&&target.isIn()&¤t!=player&¤t.hasZhuSkill('twluannian',player)
|
return target&&target.isIn()&¤t!=player&¤t.hasZhuSkill('twluannian',player)
|
||||||
})
|
})
|
||||||
|
@ -1799,31 +1805,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
position:'he',
|
position:'he',
|
||||||
prompt:function(){
|
prompt:function(){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
var num=1;
|
var num=_status.event.twluannian_num
|
||||||
game.countPlayer2(current=>{
|
|
||||||
var history=current.actionHistory;
|
|
||||||
for(var i=history.length-1;i>=0;i--){
|
|
||||||
for(var evt of history[i].useSkill){
|
|
||||||
if(evt.skill=='twluannian_global') num++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
var list=game.filterPlayer(function(current){
|
var list=game.filterPlayer(function(current){
|
||||||
return current.hasZhuSkill('twluannian',player);
|
return current.hasZhuSkill('twluannian',player);
|
||||||
}).map(i=>i.storage.twxiongzheng_target).sortBySeat();
|
}).map(i=>i.storage.twxiongzheng_target).sortBySeat();
|
||||||
return '弃置'+get.cnNumber(num)+'张牌,对'+get.translation(list)+(list.length>1?'中的一人':'')+'造成1点伤害';
|
return '弃置'+get.cnNumber(num)+'张牌,对'+get.translation(list)+(list.length>1?'中的一人':'')+'造成1点伤害';
|
||||||
},
|
},
|
||||||
selectCard:function(){
|
selectCard:function(){
|
||||||
var num=1;
|
return _status.event.twluannian_num;
|
||||||
game.countPlayer2(current=>{
|
|
||||||
var history=current.actionHistory;
|
|
||||||
for(var i=history.length-1;i>=0;i--){
|
|
||||||
for(var evt of history[i].useSkill){
|
|
||||||
if(evt.skill=='twluannian_global') num++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return num;
|
|
||||||
},
|
},
|
||||||
complexSelect:true,
|
complexSelect:true,
|
||||||
complexCard:true,
|
complexCard:true,
|
||||||
|
@ -10264,12 +10253,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
usable:1,
|
usable:1,
|
||||||
mahouSkill:true,
|
mahouSkill:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return !player.hasSkill('twzhouzu_mahou')
|
return !player.hasSkill('twzhouzu_mahou');
|
||||||
},
|
},
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
return player!=target;
|
return player!=target;
|
||||||
},
|
},
|
||||||
direct:true,
|
|
||||||
line:false,
|
line:false,
|
||||||
delay:false,
|
delay:false,
|
||||||
content:function(){
|
content:function(){
|
||||||
|
|
|
@ -4357,7 +4357,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return current.hasSkill('wengua');
|
return current.hasSkill('wengua');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
direct:true,
|
log:false,
|
||||||
delay:false,
|
delay:false,
|
||||||
filterCard:true,
|
filterCard:true,
|
||||||
discard:false,
|
discard:false,
|
||||||
|
@ -13073,7 +13073,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
forceaudio:true,
|
forceaudio:true,
|
||||||
direct:true,
|
|
||||||
prompt:'弃置一名有【逆】的角色的两张【逆】,然后视为对包含其在内的角色使用【杀】。',
|
prompt:'弃置一名有【逆】的角色的两张【逆】,然后视为对包含其在内的角色使用【杀】。',
|
||||||
delay:false,
|
delay:false,
|
||||||
log:false,
|
log:false,
|
||||||
|
|
|
@ -819,29 +819,41 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio:'qimei',
|
audio:'qimei',
|
||||||
charlotte:true,
|
charlotte:true,
|
||||||
forced:true,
|
forced:true,
|
||||||
|
popup:false,
|
||||||
trigger:{global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','loseAfter','gainAfter','addToExpansionAfter']},
|
trigger:{global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','loseAfter','gainAfter','addToExpansionAfter']},
|
||||||
logTarget:function(event,player){
|
|
||||||
return player.storage.qimei_draw;
|
|
||||||
},
|
|
||||||
usable:1,
|
usable:1,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
var target=player.storage.qimei_draw;
|
var target=player.storage.qimei_draw;
|
||||||
if(!target||!target.isIn()) return false;
|
if(!target||!target.isIn()) return false;
|
||||||
if(event.name!='gain'||(event.player!=player&&event.player!=target)){
|
if(player.countCards('h')!=target.countCards('h')) return false;
|
||||||
var evt1=event.getl(player);
|
var hasChange=function(event,player){
|
||||||
if(!evt1||!evt1.hs||!evt1.hs.length){
|
var gain=0,lose=0;
|
||||||
var evt2=event.getl(target);
|
if(event.getg) gain=event.getg(player).length;
|
||||||
if(!evt2||!evt2.hs||!evt2.hs.length) return false;
|
if(event.getl) lose=event.getl(player).hs.length;
|
||||||
}
|
return gain!=lose;
|
||||||
}
|
};
|
||||||
return player.countCards('h')==target.countCards('h');
|
return hasChange(event,player)||hasChange(event,target);
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
|
'step 0'
|
||||||
if(trigger.delay===false) game.delayx();
|
if(trigger.delay===false) game.delayx();
|
||||||
var evt1=trigger.getl(player);
|
'step 1'
|
||||||
if((trigger.name=='gain'&&player==trigger.player)||(evt1&&evt1.hs&&evt1.hs.length)) player.storage.qimei_draw.draw();
|
var target=player.storage.qimei_draw;
|
||||||
var evt2=trigger.getl(player.storage.qimei_draw);
|
player.logSkill('qimei_draw',target);
|
||||||
if((trigger.name=='gain'&&player==player.storage.qimei_draw)||evt2&&evt2.hs&&evt2.hs.length) player.draw();
|
var drawer=[];
|
||||||
|
var hasChange=function(event,player){
|
||||||
|
var gain=0,lose=0;
|
||||||
|
if(event.getg) gain=event.getg(player).length;
|
||||||
|
if(event.getl) lose=event.getl(player).hs.length;
|
||||||
|
return gain!=lose;
|
||||||
|
};
|
||||||
|
if(hasChange(trigger,player)) drawer.push(target);
|
||||||
|
if(hasChange(trigger,target)) drawer.push(player);
|
||||||
|
if(drawer.length==1) drawer[0].draw();
|
||||||
|
else{
|
||||||
|
game.asyncDraw(drawer.sortBySeat());
|
||||||
|
game.delayex();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
group:'qimei_hp',
|
group:'qimei_hp',
|
||||||
onremove:true,
|
onremove:true,
|
||||||
|
@ -2633,8 +2645,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
lose:false,
|
lose:false,
|
||||||
delay:false,
|
delay:false,
|
||||||
line:true,
|
line:true,
|
||||||
direct:true,
|
log:false,
|
||||||
clearTime:true,
|
|
||||||
prepare:function(cards,player,targets){
|
prepare:function(cards,player,targets){
|
||||||
targets[0].logSkill('ruilve');
|
targets[0].logSkill('ruilve');
|
||||||
},
|
},
|
||||||
|
|
|
@ -12682,7 +12682,7 @@
|
||||||
if(game.modeSwapPlayer&&!_status.auto&&player.isUnderControl()&&!lib.filter.wuxieSwap(event)){
|
if(game.modeSwapPlayer&&!_status.auto&&player.isUnderControl()&&!lib.filter.wuxieSwap(event)){
|
||||||
game.modeSwapPlayer(player);
|
game.modeSwapPlayer(player);
|
||||||
}
|
}
|
||||||
var skills=player.getSkills(true);
|
var skills=player.getSkills('invisible').concat(lib.skill.global);
|
||||||
game.expandSkills(skills);
|
game.expandSkills(skills);
|
||||||
for(var i=0;i<skills.length;i++){
|
for(var i=0;i<skills.length;i++){
|
||||||
var info=lib.skill[skills[i]];
|
var info=lib.skill[skills[i]];
|
||||||
|
@ -12937,7 +12937,7 @@
|
||||||
delete event.dialog;
|
delete event.dialog;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var skills=player.getSkills(true);
|
var skills=player.getSkills('invisible').concat(lib.skill.global);
|
||||||
game.expandSkills(skills);
|
game.expandSkills(skills);
|
||||||
for(var i=0;i<skills.length;i++){
|
for(var i=0;i<skills.length;i++){
|
||||||
var info=lib.skill[skills[i]];
|
var info=lib.skill[skills[i]];
|
||||||
|
@ -26906,7 +26906,7 @@
|
||||||
}
|
}
|
||||||
if(lib.config.compatiblemode){
|
if(lib.config.compatiblemode){
|
||||||
(function(){
|
(function(){
|
||||||
var skills=player.getSkills(true).concat(lib.skill.global);
|
var skills=player.getSkills('invisible').concat(lib.skill.global);
|
||||||
game.expandSkills(skills);
|
game.expandSkills(skills);
|
||||||
for(var i=0;i<skills.length;i++){
|
for(var i=0;i<skills.length;i++){
|
||||||
var info=get.info(skills[i]);
|
var info=get.info(skills[i]);
|
||||||
|
@ -35265,7 +35265,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var equipskills=[];
|
var equipskills=[];
|
||||||
var ownedskills=player.getSkills(true,false);
|
var ownedskills=player.getSkills('invisible',false);
|
||||||
game.expandSkills(ownedskills);
|
game.expandSkills(ownedskills);
|
||||||
for(var i=0;i<skills.length;i++){
|
for(var i=0;i<skills.length;i++){
|
||||||
if(!ownedskills.contains(skills[i])){
|
if(!ownedskills.contains(skills[i])){
|
||||||
|
|
Loading…
Reference in New Issue