diff --git a/card/extra.js b/card/extra.js index a02ea45bc..17ba4277d 100644 --- a/card/extra.js +++ b/card/extra.js @@ -230,10 +230,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){ value:[3,1], useful:1, }, - wuxie:function(target,card,player,viewer,state){ - let att=get.attitude(viewer,target), eff=get.effect(target,card,player,target); - if(status*get.attitude(viewer,player)>0&&!player.isMad() || status*eff*att>=0) return 0; - if(get.attitude(viewer,player)>=0 || _status.event.getRand('huogong_wuxie')*4>player.countCards('h')) return 0; + wuxie:function(target,card,player,viewer,status){ + if(get.attitude(viewer,player._trueMe||player)>0) return 0; + if(status*get.attitude(viewer,target)*get.effect(target,card,player,target)>=0) return 0; + if(_status.event.getRand('huogong_wuxie')*4>player.countCards('h')) return 0; }, result:{ player:function(player){ @@ -302,7 +302,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ recastable:true, ai:{ wuxie:(target,card,player,viewer, status)=>{ - if(status*get.attitude(viewer,player)>0&&!player.isMad() || target.hasSkillTag('nodamage') || target.hasSkillTag('nofire') || target.hasSkillTag('nothunder') || get.attitude(viewer,player)>0 || (1+target.countCards('hs'))*_status.event.getRand()>1.57) return 0; + if(status*get.attitude(viewer,player._trueMe||player)>0 || target.hasSkillTag('nodamage') || target.hasSkillTag('nofire') || target.hasSkillTag('nothunder') || get.attitude(viewer,player)>0 || (1+target.countCards('hs'))*_status.event.getRand()>1.57) return 0; }, basic:{ order:(item,player)=>{ diff --git a/card/standard.js b/card/standard.js index e3265f4eb..668a5c631 100644 --- a/card/standard.js +++ b/card/standard.js @@ -1228,10 +1228,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){ event._result={}; }, ai:{ - wuxie:function(target,card,player,viewer){ - if(player==game.me&&get.attitude(viewer,player)>0){ - return 0; - } + wuxie:function(target,card,player,viewer,status){ + if(player===game.me&&get.attitude(viewer,player._trueMe||player)>0) return 0; + if(status*get.attitude(viewer,target)*get.effect(target,card,player,target)>=0) return 0; }, basic:{ order:5, @@ -1295,9 +1294,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, ai:{ wuxie:function(target,card,player,viewer){ - if(get.attitude(viewer,player)>0&&get.attitude(viewer,target)>0){ - return 0; - } + if(get.attitude(viewer,player._trueMe||player)>0) return 0; }, basic:{ order:7.5, @@ -1574,7 +1571,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, ai:{ wuxie:(target,card,player,viewer,status)=>{ - if(status*get.attitude(viewer,player)>0&&!player.isMad() || target.hp>2&&!target.hasCard(i=>{ + if(status*get.attitude(viewer,player._trueMe||player)>0 || target.hp>2&&!target.hasCard(i=>{ let val=get.value(i,target),subtypes=get.subtypes(i); if(val<8&&target.hp<2&&!subtypes.includes('equip2')&&!subtypes.includes('equip5')) return false; return val>3+Math.min(5,target.hp); @@ -1824,9 +1821,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, ai:{ wuxie:function(target,card,player,viewer){ - if(player==game.me&&get.attitude(viewer,player)>0){ - return 0; - } + if(player==game.me&&get.attitude(viewer,player._trueMe||player)>0) return 0; }, basic:{ order:8, diff --git a/card/yingbian.js b/card/yingbian.js index f00b13dd4..885564123 100644 --- a/card/yingbian.js +++ b/card/yingbian.js @@ -28,7 +28,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, ai:{ wuxie:function(target,card,player,viewer,status){ - if(status*get.attitude(viewer,player)>0&&!player.isMad()) return 0; + if(get.attitude(viewer,player._trueMe||player)>0) return 0; if(!card.yingbian_all&&get.distance(player,target)>1&&!target.hasCard(i=>{ let val=get.value(i,target),subtypes=get.subtypes(i); if(val<8&&target.hp<2&&!subtypes.includes('equip2')&&!subtypes.includes('equip5')) return false;