From 9be171d4a40596b98737e96aceff30cd3898bbb7 Mon Sep 17 00:00:00 2001 From: libccy Date: Sun, 12 Feb 2017 11:24:03 +0800 Subject: [PATCH] s --- character/sp.js | 256 ++++++++---------------------------------------- 1 file changed, 41 insertions(+), 215 deletions(-) diff --git a/character/sp.js b/character/sp.js index d41b26fa4..fb838170a 100644 --- a/character/sp.js +++ b/character/sp.js @@ -436,14 +436,12 @@ character.sp={ return 6-ai.get.value(card); } else if(type=='equip'){ - if(player.hasSha()){ - for(var i=0;i0){ - return 6-ai.get.value(card); - } - } + if(player.hasSha()&&game.hasPlayer(function(current){ + return (player.canUse('sha',current)&& + ai.get.attitude(player,current)<0&& + ai.get.effect(current,{name:'sha'},player,player)>0) + })){ + return 6-ai.get.value(card); } } return 0; @@ -658,15 +656,12 @@ character.sp={ zhaolie:{ trigger:{player:'phaseDrawBegin'}, check:function(event,player){ - for(var i=0;i0){ - return true; - } - } - return false; + return game.hasPlayer(function(current){ + return (current!=player&& + get.distance(player,current,'attack')<=1&& + ai.get.attitude(player,current)<=0&& + ai.get.damageEffect(current,player,player)>0); + }); }, direct:true, content:function(){ @@ -935,12 +930,11 @@ character.sp={ }, ai:{ order:function(skill,player){ - for(var i=0;i0){ - return 10; - } + if(game.hasPlayer(function(current){ + return (current.hp0); + })){ + return 10; } return 1; }, @@ -1259,12 +1253,9 @@ character.sp={ order:7, result:{ target:function(player,target){ - var num=0; - for(var i=0;i3) num=3; var hs=player.get('h'); for(var i=0;i0&&event.num>0; - }, - content:function(){ - "step 0" - player.chooseCardTarget({ - filterCard:function(card,player){ - return get.suit(card)=='heart'&&lib.filter.cardDiscardable(card,player); - }, - filterTarget:function(card,player,target){ - return player!=target; - }, - ai1:function(card){ - return 10-ai.get.value(card); - }, - ai2:function(target){ - var att=ai.get.attitude(_status.event.player,target); - var trigger=_status.event.getTrigger(); - var da=0; - if(_status.event.player.hp==1){ - da=10; - } - if(trigger.num>1){ - if(target.maxHp>5&&target.hp>1) return -att/10+da; - return -att+da; - } - var eff=ai.get.damageEffect(target,trigger.source,target,trigger.nature); - if(att==0) return 0.1+da; - if(eff>=0&&trigger.num==1){ - return att+da; - } - if(target.hp==target.maxHp) return -att+da; - if(target.hp==1){ - if(target.maxHp<=4&&!target.hasSkillTag('maixie')){ - if(target.maxHp<=3){ - return -att+da; - } - return -att/2+da; - } - return da; - } - if(target.hp==target.maxHp-1){ - if(target.hp>2||target.hasSkillTag('maixie')) return att/5+da; - if(att>0) return 0.02+da; - return 0.05+da; - } - return att/2+da; - }, - prompt:'天香:弃置一张红桃牌转移伤害' - }); - "step 1" - if(result.bool){ - player.logSkill('tianxiang',result.targets); - trigger.untrigger(); - trigger.player=result.targets[0]; - trigger.player.addSkill('tianxiang2'); - player.discard(result.cards[0]); - } - else{ - event.finish(); - } - "step 2" - trigger.trigger('damageBefore'); - }, - ai:{ - effect:{ - target:function(card,player,target){ - if(player.hasSkill('jueqing')) return; - if(get.tag(card,'damage')&&target.num('h')>1) return 0.7; - } - }, - threaten:function(player,target){ - if(target.num('h')==0) return 2; - } - } - }, - liuli:{ - audio:2, - trigger:{target:'shaBefore'}, - direct:true, - priority:5, - filter:function(event,player){ - if(!player.storage.xingwu) return false; - if(!player.storage.xingwu.length) return false; - if(player.num('he')==0) return false; - for(var i=0;i0; - var vcard={name:'shacopy',nature:card.nature,suit:card.suit}; - for(var i=0;i0){ - if(!player.canUse(card,game.players[0])){ - return [0,0.1]; - } - min=0; - } - } - } - return min; - } - } - } - } - } }, xingwu:{ audio:2, @@ -2867,15 +2697,11 @@ character.sp={ }).set('ai',function(card){ var player=_status.event.player; if(player.storage.xingwu.length==2){ - var notarget=true; - for(var i=0;i0&& - ai.get.attitude(player,game.players[i])<0){ - notarget=false;break; - } - } - if(notarget) return 0; + if(!game.hasPlayer(function(current){ + return (current!=player&¤t.sex=='male'&& + ai.get.damageEffect(current,player,player)>0&& + ai.get.attitude(player,current)<0) + })) return 0; } return 7-ai.get.value(card); });