From abf018988c2134c2217e90b97ffa7b50e67cefd2 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Sun, 14 Apr 2024 23:27:22 +0800 Subject: [PATCH 1/4] =?UTF-8?q?combo=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/clan.js | 6 ++++++ character/extra.js | 17 +++++++++++++++++ character/huicui.js | 31 +++++++++++++++++++++++++++++++ character/jsrg.js | 3 +++ character/mobile.js | 6 ++++++ character/offline.js | 13 +++++++++++++ character/refresh.js | 1 + character/sb.js | 14 ++++++++++++++ character/shiji.js | 6 +++++- character/sp.js | 11 +++++++++++ character/sp2.js | 7 +++++++ character/tw.js | 17 ++++++++++++++++- character/xianding.js | 35 ++++++++++++++++++++++++++++++++++- 13 files changed, 164 insertions(+), 3 deletions(-) diff --git a/character/clan.js b/character/clan.js index 2390589fa..50eed3ae5 100644 --- a/character/clan.js +++ b/character/clan.js @@ -1468,6 +1468,9 @@ game.import('character',function(){ delete player.getStat().skill.clanguangu; game.log(player,'重置了','#g【观骨】'); }, + ai:{ + combo:'clanguangu' + }, mod:{ aiOrder(player,card,num){ if(!player.hasSkill('clanguangu')||!player.getStat().skill.clanguangu) return; @@ -2250,6 +2253,9 @@ game.import('character',function(){ }, content(){ player.recover(); + }, + ai:{ + combo:'clansankuang' } }, //族荀淑 diff --git a/character/extra.js b/character/extra.js index 761c5eafe..121d7603c 100755 --- a/character/extra.js +++ b/character/extra.js @@ -1772,6 +1772,9 @@ game.import('character', function () { }, }, }, + ai:{ + combo:'dcxianjin' + } }, dcxianjin:{ init(player){ @@ -1829,6 +1832,9 @@ game.import('character', function () { }, }, }, + ai:{ + combo:'dctuoyu' + } }, dcqijing:{ derivation:'dccuixin', @@ -1880,6 +1886,9 @@ game.import('character', function () { 'step 3' player.insertPhase(); }, + ai:{ + combo:'dctuoyu' + } }, dccuixin:{ audio:2, @@ -3856,6 +3865,7 @@ game.import('character', function () { skillTagFilter(player,tag,arg){ return arg&&arg.target&&arg.target.hasMark('yingba_mark') }, + combo:'yingba' }, subSkill:{ usea:{ @@ -3902,6 +3912,7 @@ game.import('character', function () { }, }, ai:{ + combo:'yingba', effect:{ target(card,player,target){ if(get.tag(card,'recover')&&_status.event.type=='phase'&&!player.needsToDiscard()) return 0.2; @@ -5328,6 +5339,9 @@ game.import('character', function () { player.loseMaxHp(); player.gain(player.getExpansions('chuyuan'),'gain2','fromStorage'); }, + ai:{ + combo:'chuyuan' + } }, tianxing:{ audio:2, @@ -5357,6 +5371,9 @@ game.import('character', function () { 'step 2' player.addSkills(result.control); }, + ai:{ + combo:'chuyuan' + } }, olzhiti:{ audio:'drlt_zhiti', diff --git a/character/huicui.js b/character/huicui.js index 8e6021440..305546330 100644 --- a/character/huicui.js +++ b/character/huicui.js @@ -576,6 +576,7 @@ game.import('character', function () { return 13; } }, + combo:'dcsanshi' }, }, //王凌 @@ -1640,6 +1641,7 @@ game.import('character', function () { },0); }, }, + combo:'dcqiqin' }, getWeiWanEffect:(player,cardx,target)=>{ const suit=get.suit(cardx,player); @@ -3264,6 +3266,9 @@ game.import('character', function () { player.addMark('dcgonghu_'+(trigger.name=='damage'?'damage':'basic'),1,false); game.log(player,'修改了技能','#g【破锐】'); }, + ai:{ + combo:'dcporui' + }, subSkill:{ trick:{ audio:'dcgonghu', @@ -3602,6 +3607,9 @@ game.import('character', function () { } } }, + ai:{ + combo:'dcjizhong' + } }, dcguangshi:{ audio:2, @@ -3613,6 +3621,9 @@ game.import('character', function () { content:function(){ player.draw(2); player.loseHp(); + }, + ai:{ + combo:'dcjizhong' } }, //董绾 @@ -4214,6 +4225,7 @@ game.import('character', function () { player.addSkills(['dctaji','dcqinghuang']); }, ai:{ + combo:'dchuiling', order:function(itemp,player){ if(player.hasCard(card=>{ return get.type(card)!='equip'&&player.getUseValue(card)>1; @@ -4335,6 +4347,9 @@ game.import('character', function () { player.addTempSkill('dcqinghuang_add'); player.addMark('dcqinghuang_add',1,false); }, + ai:{ + combo:'dctaji' + }, subSkill:{ add:{ charlotte:true, @@ -4687,6 +4702,9 @@ game.import('character', function () { player.gain(trigger.cards.filterInD('d'),'gain2'); } }, + ai:{ + combo:'dcyinlu' + } }, //孙资刘放 dcqinshen:{ @@ -5511,6 +5529,9 @@ game.import('character', function () { content:function(){ player.draw(player.getHistory('useSkill',evt=>['yizan_use','yizan_use_backup'].includes(evt.sourceSkill||evt.skill)).length) }, + ai:{ + combo:'yizan_use' + } }, dclongyuan:{ audio:'xinfu_longyuan', @@ -5532,6 +5553,9 @@ game.import('character', function () { player.storage.yizan=true; }, derivation:'yizan_rewrite', + ai:{ + combo:'yizan_use' + } }, //黄皓 dcqinqing:{ @@ -9260,6 +9284,9 @@ game.import('character', function () { sub:true, }, }, + ai:{ + combo:'yuanyu' + } }, //滕胤 chenjian:{ @@ -11802,6 +11829,7 @@ game.import('character', function () { if(player.countCards('h')>3||player==_status.currentPhase) return Math.max(o1,o2)+0.1; return Math.min(o1,o2)-0.1; }, + combo:'dcmiyun', respondSha:true, respondShan:true, skillTagFilter:function(player,tag,arg){ @@ -11956,6 +11984,9 @@ game.import('character', function () { content:function(){ player.addTempSkill('zhuangdan_mark',{player:'phaseEnd'}) }, + ai:{ + combo:'zhuangdan' + } }, zhuangdan_mark:{ mark:true, diff --git a/character/jsrg.js b/character/jsrg.js index a9d1495a8..0bc332c38 100644 --- a/character/jsrg.js +++ b/character/jsrg.js @@ -5906,6 +5906,9 @@ game.import('character', function () { } }, }, + ai:{ + combo:'sbyingmen' + } }, jsrgchaozheng:{ audio:2, diff --git a/character/mobile.js b/character/mobile.js index aba409c78..50faf3e9c 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -2946,6 +2946,9 @@ game.import('character', function () { }, }, }, + ai:{ + combo:'yichong' + } }, //张嶷 xinwurong:{ @@ -15400,6 +15403,9 @@ game.import('character', function () { player.storage.yizan=true; }, derivation:'yizan_rewrite', + ai:{ + combo:'yizan_use' + } }, xinfu_jingxie:{ audio:2, diff --git a/character/offline.js b/character/offline.js index b840e75ce..d9d5584cc 100644 --- a/character/offline.js +++ b/character/offline.js @@ -2140,6 +2140,7 @@ game.import('character', function () { }, }, ai:{ + combo:'psshiyin', order:9.9, result:{ player:function(player){ @@ -3372,6 +3373,9 @@ game.import('character', function () { }, }, }, + ai:{ + combo:'zyshilu' + } }, //孟达 qiuan:{ @@ -3390,6 +3394,9 @@ game.import('character', function () { player.addToExpansion('gain2',cards).gaintag.add('qiuan'); trigger.cancel(); }, + ai:{ + combo:'liangfan' + }, intro:{ content:'expansion', markcount:'expansion', @@ -3411,6 +3418,9 @@ game.import('character', function () { 'step 1' player.loseHp(); }, + ai:{ + combo:'qiuan' + } }, liangfan2:{ audio:'liangfan', @@ -4059,6 +4069,9 @@ game.import('character', function () { } } }, + ai:{ + neg:true + } }, yjyongquan:{ audio:2, diff --git a/character/refresh.js b/character/refresh.js index f392c4f97..20482b25e 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -13934,6 +13934,7 @@ game.import('character', function () { return get.effect(player,{name:'losehp'},player,player); } }, + neg:true } }, zhaxiang:{ diff --git a/character/sb.js b/character/sb.js index 7aca127ff..83ec4d74a 100644 --- a/character/sb.js +++ b/character/sb.js @@ -1107,6 +1107,7 @@ game.import('character', function () { return (Array.from({length:6}).map((_,i)=>i+5).includes(list[0])&&info.getEffect(player,list[0])>0)?1:0; }, result:{player:1}, + combo:'sbxingshang' }, subSkill:{ backup:{}, @@ -2002,6 +2003,9 @@ game.import('character', function () { }); } }, + ai:{ + combo:'sbguanxing' + } }, //卢植 sbzhenliang:{ @@ -3619,6 +3623,9 @@ game.import('character', function () { if(result.bool) player.give(result.cards,target); 'step 3' if(targets.length) event.goto(1); + }, + ai:{ + combo:'sbxuanhuo' } }, //姜维 @@ -4312,6 +4319,9 @@ game.import('character', function () { }, }, derivation:'sblongdan_shabi', + ai:{ + combo:'sblongdan' + } }, //张飞 sbpaoxiao:{ @@ -5168,6 +5178,7 @@ game.import('character', function () { target.damage('thunder'); }, ai:{ + combo:'sbguidao', order:9, result:{ target:function(player,target){ @@ -5868,6 +5879,9 @@ game.import('character', function () { name2:'业', content:'mark', }, + ai:{ + combo:'sbzhiheng' + }, subSkill:{ broadcast:{ trigger:{ diff --git a/character/shiji.js b/character/shiji.js index eb27816b9..882850ea8 100644 --- a/character/shiji.js +++ b/character/shiji.js @@ -3040,7 +3040,7 @@ game.import('character', function () { } }, ai:{ - combo:'xinmingshi', + combo:'xinlirang', effect:{ target:function(card,player,target){ if(get.tag(card,'damage')&&target.hasMark('xinlirang')){ @@ -4498,6 +4498,9 @@ game.import('character', function () { if(card) target.gain(card,'gain2'); } }, + ai:{ + combo:'mjdingyi' + } }, mjfubi:{ audio:'fubi', @@ -4569,6 +4572,7 @@ game.import('character', function () { return 2; }, }, + combo:'mjdingyi' }, subSkill:{ round:{}, diff --git a/character/sp.js b/character/sp.js index 8c0e31c11..7526c10d4 100755 --- a/character/sp.js +++ b/character/sp.js @@ -18183,6 +18183,9 @@ game.import('character', function () { if(num>0) player.gainMaxHp(num); else player.loseMaxHp(-num); player.recover(); + }, + ai:{ + combo:'fanghun' } }, refuhan:{ @@ -19422,6 +19425,9 @@ game.import('character', function () { if(cards.length) player.gain(cards,'gain2'); }, group:'rejici2', + ai:{ + combo:'regushe' + } }, rejici2:{ audio:'jici', @@ -22145,6 +22151,9 @@ game.import('character', function () { unique:true, zhuSkill:true, locked:true, + ai:{ + combo:'canshi' + } }, canshi:{ audio:2, @@ -22205,6 +22214,7 @@ game.import('character', function () { trigger.num++; }, ai:{ + neg:true, effect:{ target:function(card,player,target,current){ if(get.tag(card,'damage')&&target.countCards('h')==0) return [1,-2]; @@ -22276,6 +22286,7 @@ game.import('character', function () { trigger.num++; }, ai:{ + neg:true, effect:{ target:function(card,player,target,current){ if(card.name=='sha'&&target.countCards('h')==0) return [1,-2]; diff --git a/character/sp2.js b/character/sp2.js index 3252dad1f..3ae9d436a 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -2454,6 +2454,9 @@ game.import('character', function () { }, }, }, + ai:{ + combo:'dcjinjian' + } }, //赵俨 dcfuning:{ @@ -4499,6 +4502,9 @@ game.import('character', function () { 'step 2' game.delayx(); }, + ai:{ + combo:'jinghe' + } }, nhyinbing:{ trigger:{source:'damageBefore'}, @@ -9993,6 +9999,7 @@ game.import('character', function () { } }, ai:{ + combo:'xinfu_lveming', order:function(){ var player=_status.event.player,num=0; for(var i=1;i<6;i++){ diff --git a/character/tw.js b/character/tw.js index 18d5364c8..5efc25838 100644 --- a/character/tw.js +++ b/character/tw.js @@ -2117,6 +2117,9 @@ game.import('character', function () { }, }, }, + ai:{ + combo:'twshenyi' + } }, //张纮 twquanqian:{ @@ -9476,7 +9479,10 @@ game.import('character', function () { player.addTempSkill('twqiongji_silent'); } }, - ai:{combo:'twxiawei'}, + ai:{ + combo:'twxiawei', + halfneg:true + }, subSkill:{silent:{charlotte:true}}, }, //卞夫人 @@ -11410,6 +11416,9 @@ game.import('character', function () { }, }, }, + ai:{ + combo:'twzhengjian' + } }, //田豫 twzhenxi:{ @@ -12386,6 +12395,9 @@ game.import('character', function () { }, }, }, + ai:{ + combo:'twjingce' + } }, twlihuo:{ trigger:{player:'useCard1'}, @@ -14637,6 +14649,9 @@ game.import('character', function () { player.gain(card,'gain2','log'); } }, + ai:{ + combo:'refanghun' + } }, twqueshi:{ trigger:{ diff --git a/character/xianding.js b/character/xianding.js index 41235aaf1..c3e0a9d4b 100644 --- a/character/xianding.js +++ b/character/xianding.js @@ -1656,6 +1656,9 @@ game.import('character', function () { }, }, }, + ai:{ + combo:'dczhifou' + } }, dczhifou:{ audio:2, @@ -1782,6 +1785,9 @@ game.import('character', function () { '1':{charlotte:true}, '2':{charlotte:true}, }, + ai:{ + combo:'dclingxi' + } }, //周瑜 //无 双 万 军 取 首 @@ -2824,6 +2830,7 @@ game.import('character', function () { player.addTempSkill('dczhangcai_all',{player:'phaseBegin'}); }, ai:{ + combo:'dczhangcai', order:15, result:{ player:function(player){ @@ -6103,6 +6110,9 @@ game.import('character', function () { }); if(card) player.addToExpansion(card,'gain2').gaintag.add('dcwangyuan'); }, + ai:{ + combo:'dclingyin' + }, marktext:'妄', intro:{ name:'妄(妄缘/铃音)', @@ -7666,6 +7676,9 @@ game.import('character', function () { content:function(){ player.addMark('dclingfang',1); }, + ai:{ + combo:'dcfengying' + }, marktext:'绞', intro:{ name:'绞', @@ -7761,6 +7774,7 @@ game.import('character', function () { } }, threaten:2, + combo:'dclingfang' }, subSkill:{ record:{ @@ -7806,6 +7820,9 @@ game.import('character', function () { var card=get.discardPile(card=>get.color(card,false)=='black'); if(card) player.gain(card,'gain2'); player.loseHp(); + }, + ai:{ + combo:'dclingfang' } }, //袁姬 @@ -8266,6 +8283,9 @@ game.import('character', function () { else player.marks[name]=player.mark(name,info); player.updateMarks(); }, + ai:{ + combo:'dcmengjie' + }, subSkill:{ forceFinish:{charlotte:true}, wuyong:{ @@ -8488,6 +8508,9 @@ game.import('character', function () { } game.delayx(); event.goto(1); + }, + ai:{ + combo:'dctongguan' } }, //刘晔 @@ -9286,7 +9309,7 @@ game.import('character', function () { trigger:{player:'phaseZhunbeiBegin'}, forced:true, filter:function(event,player){ - if(!player.hasSkill('dcligong')) return false; + if(!player.hasSkill('dchuishu')) return false; var list=lib.skill.dchuishu.getList(player); for(var i of list){ if(i>=5) return true; @@ -9435,6 +9458,9 @@ game.import('character', function () { player.draw(3); } }, + ai:{ + combo:'dchuishu' + } }, //杜夔 dcfanyin:{ @@ -9693,6 +9719,9 @@ game.import('character', function () { lib.skill.dcwanglu.broadcast(player); } }, + ai:{ + combo:'dcwanglu' + } }, dcchaixie:{ audio:2, @@ -9726,6 +9755,9 @@ game.import('character', function () { } player.draw(num); }, + ai:{ + combo:'dcwanglu' + } }, dagongche_skill:{ trigger:{player:'phaseUseBegin'}, @@ -11544,6 +11576,7 @@ game.import('character', function () { })) return [1,1]; }, }, + combo:'xinzhoufu' }, }, //孙翊 From f7e78401c8cb72dd02c270534f374507143f301c Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 15 Apr 2024 00:06:06 +0800 Subject: [PATCH 2/4] =?UTF-8?q?combo=E6=B7=BB=E5=8A=A0,=20bugfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/mobile.js | 1 + character/sp2.js | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/character/mobile.js b/character/mobile.js index 7f8f4dc75..18ded1090 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -4905,6 +4905,7 @@ game.import('character', function () { player:1 }, threaten:1.4, + combo:'spdaming' }, subSkill:{ backup:{}, diff --git a/character/sp2.js b/character/sp2.js index c7e8251b2..528fe4ff8 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -8329,6 +8329,7 @@ game.import('character', function () { } } }, + combo:'liangying' }, }, sushou:{ @@ -8419,6 +8420,9 @@ game.import('character', function () { 'step 1' game.delay(); }, + ai:{ + combo:'cangchu' + } }, liehou:{ enable:'phaseUse', From d4a393b78d9cb80236dc4c06f3eb6c486892d84c Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 15 Apr 2024 00:12:25 +0800 Subject: [PATCH 3/4] bugfix --- character/sp.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/character/sp.js b/character/sp.js index 7526c10d4..d3e583e7e 100755 --- a/character/sp.js +++ b/character/sp.js @@ -26248,7 +26248,7 @@ game.import('character', function () { }, ai:{ threaten:1.4, - combo:'xinfu_dianhua' + combo:'xinfu_zhenyi' }, }, "xinfu_dianhua":{ @@ -26327,6 +26327,7 @@ game.import('character', function () { game.delayx(); }, ai:{ + combo:'xinfu_falu', threaten:2.2 }, }, @@ -26363,9 +26364,6 @@ game.import('character', function () { player.gain(event.togain,'gain2'); } }, - ai:{ - combo:'xinfu_dianhua' - } }, "zhenyi_spade":{ trigger:{ From 11b2c5661974ee873e266b8c765b135741d96fd1 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 15 Apr 2024 00:15:28 +0800 Subject: [PATCH 4/4] =?UTF-8?q?SP=E7=94=84=E5=AE=93=E3=80=90=E6=83=A0?= =?UTF-8?q?=E6=B5=8E=E3=80=91=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/xianding.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/character/xianding.js b/character/xianding.js index c4b0386b1..159158fab 100644 --- a/character/xianding.js +++ b/character/xianding.js @@ -596,7 +596,7 @@ game.import('character', function () { await game.asyncDelayx(); } } - if (target.countCards('h') <= game.countPlayer()) return; + if (target.countCards('h') < game.countPlayer()) return; player.when({global: 'wuguRemained'}).filter(evt => { return evt.getParent(3) === event; }).vars({originalOwner: target}).then(() => {