From 413e4e2848567643b5f392068e5a9f8dab563398 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Tue, 26 Dec 2023 09:59:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E3=80=90=E8=B4=9E=E7=83=88?= =?UTF-8?q?=E3=80=91=E3=80=90=E6=A8=AA=E9=AA=9B=E3=80=91=E3=80=90=E9=A3=9E?= =?UTF-8?q?=E6=89=AC=E3=80=91ai?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- card/sp.js | 5 +++++ card/standard.js | 8 ++++---- character/extra.js | 16 ++++++++++++++++ character/jsrg.js | 14 ++++++++++++-- character/yijiang.js | 14 +++++++++++++- mode/doudizhu.js | 16 ++++++++++------ 6 files changed, 60 insertions(+), 13 deletions(-) diff --git a/card/sp.js b/card/sp.js index 2a00dc468..396e64816 100644 --- a/card/sp.js +++ b/card/sp.js @@ -197,6 +197,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){ return lib.card.shandian.ai.result.target(player,target); } }, + tag:{ + damage:0.25, + natureDamage:0.25, + thunderDamage:0.25, + } } }, qibaodao:{ diff --git a/card/standard.js b/card/standard.js index 668a5c631..182ec7c5f 100644 --- a/card/standard.js +++ b/card/standard.js @@ -2032,7 +2032,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ result:{ target:function(player,target){ var num=game.countPlayer(function(current){ - var skills=current.getSkills(); + //var skills=current.getSkills(); for(var j=0;j{ + if(typeof card!=='object') return; + let suit=get.suit(card); + if(!lib.suit.contains(suit)||player.hasCard(function(i){ + return get.suit(i,player)==suit; + },'h')) return; + return [1,0.8*game.countPlayer(current=>{ + return current.countCards('e',card=>{ + return get.suit(card,current)==suit; + }); + })]; + } + } + } }, changandajian_equip5:{ equipSkill:true, diff --git a/character/jsrg.js b/character/jsrg.js index 4847fa1dd..f34c6bbb1 100644 --- a/character/jsrg.js +++ b/character/jsrg.js @@ -4039,8 +4039,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ 'step 0' player.chooseToDiscard('h',2,get.prompt('jsrgfeiyang'),'弃置两张手牌并弃置判定区里的一张牌').set('logSkill','jsrgfeiyang').set('ai',function(card){ - return 6-get.value(card); - }); + if(_status.event.goon) return 6-get.value(card); + return 0; + }).set('goon',(()=>{ + if(player.hasSkillTag('rejudge')&&player.countCards('j')<2) return false; + return player.hasCard(function(card){ + if(get.tag(card,'damage')&&get.damageEffect(player,player,_status.event.player,get.natureList(card))>=0) return false; + return get.effect(player,{ + name:card.viewAs||card.name, + cards:[card], + },player,player)<0; + },'j'); + })()); 'step 1' if(result.bool){ player.discardPlayerCard(player,'j',true); diff --git a/character/yijiang.js b/character/yijiang.js index 7eef0fb8e..1644392a3 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -11907,16 +11907,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{target:'useCardToTargeted'}, content:function(){ "step 0" + if(get.attitude(player,trigger.player)<0&&trigger.player.countDiscardableCards(player,'he')) player.addTempSkill('zhenlie_lose'); player.loseHp(); "step 1" + player.removeSkill('zhenlie_lose'); trigger.getParent().excluded.add(player); "step 2" if(trigger.player.countCards('he')){ + if(get.mode()!=='identity'||player.identity!=='nei') player.addExpose(0.12); player.discardPlayerCard(trigger.player,'he',true); } }, + subSkill:{ + lose:{ + charlotte:true + } + }, ai:{ - expose:0.3 + effect:{ + target:(card,player,target)=>{ + if(target.hp<=0&&target.hasSkill('zhenlie_lose')&&get.tag(card,'recover')) return [1,1.2]; + } + } } }, //吾彦... diff --git a/mode/doudizhu.js b/mode/doudizhu.js index 1cecbb59b..43ff0d49e 100644 --- a/mode/doudizhu.js +++ b/mode/doudizhu.js @@ -2256,12 +2256,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ player.chooseToDiscard('h',2,get.prompt('feiyang'),'弃置两张手牌,然后弃置判定区里的一张牌').set('logSkill','feiyang').set('ai',function(card){ if(_status.event.goon) return 6-get.value(card); return 0; - }).set('goon',player.hasCard(function(card){ - return get.effect(player,{ - name:card.viewAs||card.name, - cards:[card], - },player,player)<0; - },'j')); + }).set('goon',(()=>{ + if(player.hasSkillTag('rejudge')&&player.countCards('j')<2) return false; + return player.hasCard(function(card){ + if(get.tag(card,'damage')&&get.damageEffect(player,player,_status.event.player,get.natureList(card))>=0) return false; + return get.effect(player,{ + name:card.viewAs||card.name, + cards:[card], + },player,player)<0; + },'j'); + })()); "step 1" if(result.bool){ player.discardPlayerCard(player,'j',true);