diff --git a/character/diy.js b/character/diy.js index 0395dc960..825420159 100644 --- a/character/diy.js +++ b/character/diy.js @@ -963,7 +963,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ result:{ target:function(card,player,target,current){ if(target.hp<=1&&get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-5]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-5]; return [1,0,0,-2]; } } diff --git a/character/extra.js b/character/extra.js index 662891d5e..09012da82 100644 --- a/character/extra.js +++ b/character/extra.js @@ -240,7 +240,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ maixie_hp:true, effect:{ target:function(card,player,target){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(get.tag(card,'damage')){ if(target.hp==target.maxHp){ if(!target.hasSkill('jilue')){ @@ -253,6 +253,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, player:function(card,player){ if(_status.currentPhase!=player) return; + if(_status.event.name!='chooseToUse'||_status.event.player!=player) return; if(get.type(card)=='basic') return; if(get.tag(card,'gain')) return; if(get.value(card,player,'raw')>=7) return; @@ -496,7 +497,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target,current){ if(target.hp<=1&&get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-5]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-5]; if(!target.hasFriend()) return; if(player.hp>2&&get.attitude(player,target)<=0) return [0,2]; return [1,0,0,-player.hp]; @@ -568,7 +569,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(target.hp==1) return 0.8; if(target.isTurnedOver()) return [0,3]; var num=game.countPlayer(function(current){ diff --git a/character/gujian.js b/character/gujian.js index 1c40966f7..80a9ae251 100644 --- a/character/gujian.js +++ b/character/gujian.js @@ -699,7 +699,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-1.5]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-1.5]; return [1,0,0,-0.5]; } } @@ -844,7 +844,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')&&target.countCards('h')==0){ - if(player.hasSkillTag('jueqing')) return; + if(player.hasSkillTag('jueqing',false,target)) return; return 0.1; } } diff --git a/character/gwent.js b/character/gwent.js index 0f9c6a132..9d3e85bce 100644 --- a/character/gwent.js +++ b/character/gwent.js @@ -239,8 +239,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, ai:{ - threaten:2, - expose:0.2 + threaten:2 } }, junchi:{ diff --git a/character/hearth.js b/character/hearth.js index c85a6ed6d..72fa935f8 100644 --- a/character/hearth.js +++ b/character/hearth.js @@ -1916,7 +1916,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return; + if(player.hasSkillTag('jueqing',false,target)) return; return 0.5; } } @@ -2032,7 +2032,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(!target.hasFriend()) return; if(target.hp>=4) return [1,get.tag(card,'damage')*2]; if(target.hp==3) return [1,get.tag(card,'damage')*1.5]; @@ -2388,7 +2388,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ maixie_hp:true, effect:{ target:function(card,player,target){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(!target.hasFriend()) return false; if(get.tag(card,'damage')&&player.countCards('h')>1) return [1,0,0,-1]; } @@ -4069,7 +4069,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(!target.hasFriend()) return; var nh=target.countCards('h'); if(nh>5) return [1,-1]; @@ -5301,7 +5301,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-1]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-1]; return 0.8; } } @@ -6231,7 +6231,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ai:{ effect:function(card,player){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,1]; + if(player.hasSkillTag('jueqing',false,target)) return [1,1]; return 1.2; } }, @@ -6383,7 +6383,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, effect:function(card,player){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return; + if(player.hasSkillTag('jueqing',false,target)) return; return 1.2; } }, diff --git a/character/refresh.js b/character/refresh.js index 12e9349e3..39a54b033 100644 --- a/character/refresh.js +++ b/character/refresh.js @@ -383,7 +383,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(player.countCards('he')>1&&get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-1.5]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-1.5]; if(get.attitude(target,player)<0) return [1,1]; } } @@ -896,7 +896,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ maixie_hp:true, effect:{ target:function(card,player,target){ - if(player.hasSkillTag('jueqing')) return [1,-1]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-1]; if(get.tag(card,'damage')&&player!=target) return [1,0.6]; } } @@ -976,7 +976,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ result:{ effect:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(player.hp>=4) return [1,get.tag(card,'damage')*2]; if(target.hp==3) return [1,get.tag(card,'damage')*1.5]; if(target.hp==2) return [1,get.tag(card,'damage')*0.5]; @@ -1178,7 +1178,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, effect:function(card,player){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,1]; + if(player.hasSkillTag('jueqing',false,target)) return [1,1]; return 1.2; } if(get.tag(card,'loseHp')){ diff --git a/character/shenhua.js b/character/shenhua.js index 5d11fec94..ee52eacbb 100644 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -1949,7 +1949,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(target.hp<=1) return; if(!target.hasFriend()) return; var hastarget=false; @@ -2865,7 +2865,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return 0; }, player:function(player,target){ - if(target.hasSkillTag('jueqing')) return -10; + if(target.hasSkillTag('jueqing',false,target)) return -10; var mn=1; var hs=player.getCards('h'); for(var i=0;i1){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; var max=0; var players=game.filterPlayer(); for(var i=0;i1) return 0.7; } }, @@ -3646,7 +3646,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ maixie_fake:true, effect:{ target:function(card,player,target){ - if(player.hasSkillTag('jueqing')) return; + if(player.hasSkillTag('jueqing',false,target)) return; if(get.tag(card,'damage')&&target.countCards('he')>1) return 0.7; } }, diff --git a/character/sp.js b/character/sp.js index 6d6af5e50..a97e08390 100644 --- a/character/sp.js +++ b/character/sp.js @@ -1931,7 +1931,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target,current){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(get.attitude(player,target)>0) return [0,0]; var eff=get.damageEffect(target.storage.shichou_target,player,target); if(eff>0){ diff --git a/character/standard.js b/character/standard.js index 63460d604..fc04c7abf 100644 --- a/character/standard.js +++ b/character/standard.js @@ -145,7 +145,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ maixie_hp:true, effect:{ target:function(card,player){ - if(player.hasSkillTag('jueqing')) return [1,-1]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-1]; if(get.tag(card,'damage')) return [1,0.5]; } } @@ -165,7 +165,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(player.countCards('he')>1&&get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-1.5]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-1.5]; if(get.attitude(target,player)<0) return [1,1]; } } @@ -262,7 +262,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ai:{ result:{ target:function(card,player,target){ - if(player.hasSkillTag('jueqing')) return [1,-1]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-1]; if(get.tag(card,'damage')&&get.damageEffect(target,player,player)>0) return [1,0,0,-1.5]; } } @@ -405,7 +405,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(!target.hasFriend()) return; if(target.hp>=4) return [1,get.tag(card,'damage')*2]; if(target.hp==3) return [1,get.tag(card,'damage')*1.5]; diff --git a/character/swd.js b/character/swd.js index 0be5b4c4b..ebdf69d96 100644 --- a/character/swd.js +++ b/character/swd.js @@ -2476,7 +2476,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; return 0.7; } } @@ -3182,7 +3182,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ maixie_hp:true, effect:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-0.5]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-0.5]; if(!target.hasFriend()){ if(lib.config.mode=='guozhan'){ if(!player.hasFriend()) return; @@ -3413,7 +3413,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-1.5]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-1.5]; if(player.hp>=4) return [1,1.5]; if(target.hp==3) return [1,1]; if(target.hp==2) return [1,0.5]; @@ -5497,7 +5497,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(target.storage.yishan.length==0) return 1.5; if(target.storage.yishan[0]=='tao'||target.storage.yishan[1]=='tao'){ return [0,2]; @@ -5773,7 +5773,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return; + if(player.hasSkillTag('jueqing',false,target)) return; if(target.storage.daixing>1) return 0.1; if(target.storage.daixing==1) return 0.5; } @@ -6391,7 +6391,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-1]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-1]; var num=player.countCards('h')-target.countCards('h'); if(num>0){ return [1,0,0,-num/2]; @@ -6633,7 +6633,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')&&_status.currentPhase!=target){ - if(player.hasSkillTag('jueqing')) return [1,-1.5]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-1.5]; return [1,0.5]; } } diff --git a/character/xianjian.js b/character/xianjian.js index 83d28262f..cfdd1f550 100644 --- a/character/xianjian.js +++ b/character/xianjian.js @@ -31,7 +31,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ pal_xuanxiao:['male','wei',4,['xuanyan','ningbin','xfenxin']], pal_jiangyunfan:['male','wei',4,['xunying','liefeng']], - // pal_tangyurou:['male','wei',4,[]], + pal_tangyurou:['female','shu',3,['txianqu','qiongguang']], pal_longyou:['male','wei',4,['yuexing','minsha']], // pal_xiaoman:['male','wei',4,[]], @@ -85,6 +85,81 @@ game.import('character',function(lib,game,ui,get,ai,_status){ pal_jiangcheng:'折剑山庄庄主欧阳英的得意门生,但因其蚩尤后人魔族的身份,令他无法被容于人界;再加上人界半魔同族饱受人类迫害,故最终成为净天教教主魔君“姜世离”,毅然肩负起保护同族的重任。', }, skill:{ + qiongguang:{ + trigger:{player:'phaseDiscardEnd'}, + filter:function(event,player){ + return event.cards&&event.cards.length>1 + }, + content:function(){ + 'step 0' + event.targets=player.getEnemies().sortBySeat(); + 'step 1' + if(event.targets.length){ + player.line(event.targets.shift().getDebuff(false).addExpose(0.1),'green'); + event.redo(); + } + 'step 2' + game.delay(); + }, + ai:{ + threaten:1.5, + expose:0.2, + effect:{ + player:function(card,player){ + if(_status.currentPhase!=player) return; + if(_status.event.name!='chooseToUse'||_status.event.player!=player) return; + var num=player.needsToDiscard(); + if(num>2||num==1) return; + if(get.type(card)=='basic'&&num!=2) return; + if(get.tag(card,'gain')) return; + if(get.value(card,player,'raw')>=7) return; + if(player.hp<=2) return; + if(!player.hasSkill('jilue')||player.storage.renjie==0){ + return 'zeroplayertarget'; + } + } + } + } + }, + txianqu:{ + trigger:{source:'damageBefore'}, + logTarget:'player', + filter:function(event,player){ + var evt=event.getParent('phaseUse'); + if(evt&&evt.player==player) return true; + return false; + }, + check:function(event,player){ + var target=event.player; + if(get.attitude(player,target)>=0||get.damageEffect(target,player,player)<=0) return true; + if(target.hp>player.hp&&player.isDamaged()) return true; + return false; + }, + content:function(){ + trigger.untrigger(); + trigger.finish(); + player.draw(2); + player.recover(); + }, + ai:{ + jueqing:true, + skillTagFilter:function(player,tag,arg){ + if(!arg) return false; + if(get.attitude(player,arg)>0) return false; + var evt=event.getParent('phaseUse'); + if(evt&&evt.player==player) return true; + return false; + }, + effect:{ + player:function(card,player,target){ + if(get.tag(card,'damage')&&get.attitude(player,target)>0){ + if(player.hp==player.maxHp||get.recoverEffect(player,player,player)<=0) return 'zeroplayertarget'; + return [0,0,0,0.5]; + } + } + } + } + }, xunying:{ trigger:{player:'shaAfter'}, direct:true, @@ -4213,6 +4288,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ pal_mingxiu:'明绣', pal_jushifang:'居十方', + txianqu:'仙曲', + txianqu_info:'每当你于出牌阶段即将造成伤害,你可以防止之,然后摸两张牌并回复一点体力', + qiongguang:'穹光', + qiongguang_info:'弃牌阶段结束时,若你弃置了至少两张牌,你可以对所有敌方角色施加一个随机的负面效果', xunying:'迅影', xunying_info:'每当你使用杀对一名目标结算完毕后,你可以继续对目标使用杀', liefeng:'冽风', diff --git a/character/yijiang.js b/character/yijiang.js index e8120ee85..7df0a11a5 100644 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -4808,7 +4808,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(!target.hasFriend()) return; if(target.hp>=4) return [0.5,get.tag(card,'damage')*2]; if(!target.hasSkill('paiyi')&&target.hp>1) return [0.5,get.tag(card,'damage')*1.5]; @@ -5981,7 +5981,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(card.name=='guiyoujie') return [0,0.5]; if(target.isTurnedOver()){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(target.hp==1) return; return [1,target.countCards('h')/2]; } @@ -6472,7 +6472,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ai:{ effect:{ target:function(card,player,target){ - if(player.hasSkillTag('jueqing')) return [1,-1.5]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-1.5]; if(!target.hasFriend()) return; if(get.tag(card,'damage')) return [1,0,0,-0.7]; } @@ -6499,7 +6499,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ai:{ effect:{ target:function(card,player,target){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(!target.hasFriend()) return; if(get.tag(card,'damage')) return [1,0,0,-1]; } @@ -6833,7 +6833,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(!target.hasFriend()) return; if(target.hp>=4) return [1,2]; if(target.hp==3) return [1,1.5]; diff --git a/character/yxs.js b/character/yxs.js index 03b7badfa..2eaf40ae8 100644 --- a/character/yxs.js +++ b/character/yxs.js @@ -535,7 +535,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(!target.hasFriend()) return; var players=game.filterPlayer(); for(var i=0;i=4) return [1,get.tag(card,'damage')*2]; if(target.hp==3) return [1,get.tag(card,'damage')*1.5]; @@ -2019,7 +2019,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target){ if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-2]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(!target.hasFriend()) return; if(target.hp>=4) return [1,2]; if(target.hp==3) return [1,1.5]; @@ -2185,7 +2185,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ result:{ target:function(card,player,target){ if(player.countCards('he')>1&&get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing')) return [1,-1]; + if(player.hasSkillTag('jueqing',false,target)) return [1,-1]; if(get.attitude(target,player)<0) return [1,0,0,-1.5]; } } diff --git a/game/game.js b/game/game.js index ff9b2e4fe..026693e05 100644 --- a/game/game.js +++ b/game/game.js @@ -15032,6 +15032,7 @@ break; } } + return this; }, getDebuff:function(){ var list=[1,2,3,4,5,6]; @@ -15079,6 +15080,7 @@ break; } } + return this; }, dying:function(reason){ if(this.nodying||this.hp>0||this.isDying()) return; @@ -16650,7 +16652,7 @@ for(var i=0;i