From f4b38c9784d8eb31133423f9b05eaaeedfea0a08 Mon Sep 17 00:00:00 2001 From: Spmario233 Date: Sat, 6 May 2023 00:00:01 +0800 Subject: [PATCH] v1.9.120.3.1 --- character/clan.js | 2 +- character/mobile.js | 4 +- character/offline.js | 3 +- character/refresh.js | 11 +- character/sb.js | 14 +- character/sp2.js | 83 ++++++++---- character/tw.js | 2 +- character/yingbian.js | 237 +++++++++++++++++---------------- game/update.js | 34 ++--- image/character/pk_sp_duyu.jpg | Bin 0 -> 24113 bytes mode/doudizhu.js | 3 +- 11 files changed, 210 insertions(+), 183 deletions(-) create mode 100644 image/character/pk_sp_duyu.jpg diff --git a/character/clan.js b/character/clan.js index 32c27a9cb..7bb9bc8de 100644 --- a/character/clan.js +++ b/character/clan.js @@ -627,7 +627,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, trigger:{global:'damageEnd'}, filter:function(event,player){ - if(!event.nature) return false; + if(!event.nature||!event.player.isIn()) return false; return game.countPlayer2(current=>{ return current.hasHistory('damage',evt=>{ return evt.nature&&evt!=event; diff --git a/character/mobile.js b/character/mobile.js index 8bec7eab0..b6e81cc93 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -5955,7 +5955,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{global:'dying'}, forced:true, filter:function(event,player){ - return _status.renku.length>4; + return _status.renku.length>3; }, logTarget:'player', content:function(){ @@ -18453,7 +18453,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ yuanqing:'渊清', yuanqing_info:'锁定技,出牌阶段结束时,你随机将弃牌堆中你本阶段使用过的牌类型的各一张牌置于仁库中。', shuchen:'疏陈', - shuchen_info:'锁定技,当有角色进入濒死状态时,若仁库中的牌数大于四,则你获得仁库中的所有牌,然后其回复1点体力。', + shuchen_info:'锁定技,当有角色进入濒死状态时,若仁库中的牌数大于三,则你获得仁库中的所有牌,然后其回复1点体力。', rechuhai:'除害', rechuhai_info:'使命技。①出牌阶段限一次,你可以摸一张牌,然后和一名其他角色拼点。若你赢,则你观看其手牌,并从牌堆/弃牌堆中获得其手牌中包含的类型的牌各一张,且当你于此阶段内对其造成伤害后,你将牌堆/弃牌堆中的一张装备牌置于你的一个空置装备栏内。②当你因发动〖除害①〗而展示拼点牌时,你令此牌的点数+X(X=(4-你装备区的牌数))。③使命:当有装备牌进入你的装备区后,若你的装备区内有至少三张牌,则你将体力值回复至上限,失去〖乡害〗并获得〖彰名〗。④失败:当你因发动〖除害①〗发起的拼点没赢时,若你的最终点数不大于6,则你触发使命失败分支。', zhangming:'彰名', diff --git a/character/offline.js b/character/offline.js index 1b1820fe6..63778f26b 100644 --- a/character/offline.js +++ b/character/offline.js @@ -2059,7 +2059,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(event,player,name){ if(name=='damageEnd') return true; var evt=event.getParent(); - return evt.card&&evt.card.name=='sha'&&evt.type=='card'&&evt.targets.length==1; + return evt.card&&evt.type=='card'&&evt.targets.length==1; }, content:function(){ 'step 0' @@ -6025,6 +6025,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zyquanji:'权计', zyquanji_info:'①当你受到伤害后或使用牌对唯一目标造成伤害后,你可以摸一张牌并将一张牌置于武将上,称为“权”。②你的手牌上限+X(X为“权”数)。', zypaiyi:'排异', + zypaiyi_backup:'排异', zypaiyi_info:'出牌阶段限一次。你可以移去一张“权”并令一名角色摸X张牌(X为“权”数,且至多为7),然后若其手牌数大于你,你对其造成1点伤害。', pe_mengda:'战役篇孟达', pe_mengda_ab:'孟达', diff --git a/character/refresh.js b/character/refresh.js index 5db57e3bc..91fbd42b8 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -184,7 +184,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.draw(2); event.count--; 'step 2' - var cards=player.countCards('he'); + var cards=player.getCards('he'); if(cards.length>0&&target.isAlive()){ if(cards.length==1) event._result={bool:true,cards:cards}; else player.chooseCard('he','忘隙:交给'+get.translation(target)+'一张牌',true); @@ -6932,6 +6932,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.judge(function(card){ if(get.suit(card)=='spade') return 4; return 0; + }).set('callback',function(){ + if(event.judgeResult.suit=='spade'){ + player.recover(); + if(get.position(event.judgeResult.card)=='d') player.gain(result.card,'gain2','log') + } }).judge2=function(result){ return result.bool?true:false; }; @@ -6940,10 +6945,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.finish(); } 'step 3' - if(result.suit=='spade'){ - player.recover(); - if(get.position(result.card)=='d') player.gain(result.card,'gain2','log') - } if(event.count) event.goto(1); } }, diff --git a/character/sb.js b/character/sb.js index 43f37131b..02ad9f3a5 100644 --- a/character/sb.js +++ b/character/sb.js @@ -965,6 +965,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ player.addTempSkill('sbrende_given','phaseUseAfter'); player.markAuto('sbrende_given',[target]); + player.markAuto('sbrende_givenx',[target]); player.give(cards,target); var num=Math.min(lib.skill.sbrende.maxNum-player.countMark('sbrende'),cards.length); if(num>0) player.addMark('sbrende',num); @@ -1009,7 +1010,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, enable:'phaseUse', skillAnimation:'epic', - animationColor:'legend', + animationColor:'orange', limited:true, filter:function(event,player){ if(game.roundNumber<=1) return false; @@ -1018,14 +1019,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, filterTarget:function(card,player,target){ if(target==player) return false; - return game.hasPlayer2(current=>{ - return current.hasAllHistory('useSkill',evt=>{ - if(evt.skill!='sbrende_give') return false; - var targets=evt.targets; - if(targets.contains(target)) return true; - return false; - }); - }) + return player.getStorage('sbrende_givenx').contains(target); }, selectTarget:-1, multiline:true, @@ -3895,7 +3889,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sbrende:'仁德', sbrende_info:'①出牌阶段每名角色限一次。你可以将任意张牌交给一名其他角色,然后你获得等量“仁望”标记(至多为8)。②每回合限一次。你可以移去2枚“仁望”,视为使用或打出一张基本牌。③出牌阶段开始时,你获得2枚“仁望”。', sbzhangwu:'章武', - sbzhangwu_info:'限定技。出牌阶段,你可以令所有于本局游戏成为过〖仁德①〗目标的其他角色依次交给你X张牌,然后你回复3点体力并失去〖仁德〗(X为游戏轮数-1,且至多为3)。', + sbzhangwu_info:'限定技。出牌阶段,你可以令所有于本局游戏成为过〖仁德②〗目标的其他角色依次交给你X张牌,然后你回复3点体力并失去〖仁德〗(X为游戏轮数-1,且至多为3)。', sbjijiang:'激将', sbjijiang_info:'主公技。出牌阶段结束时,你可以选择一名体力值不小于你的其他蜀势力角色A和一名在A攻击范围内的角色B。A选择一项:1.视为对B使用一张【杀】;2.下一个出牌阶段开始前,跳过此阶段。', sb_jiangwei:'谋姜维', diff --git a/character/sp2.js b/character/sp2.js index 0f5809b23..4cb229296 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -262,7 +262,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, frequent:true, filter:function(event,player,name){ - if(player==_status.currentPhase) return (name=='logSkill'&&event.skill=='dcliying'); + if(player==_status.currentPhase) return (name=='logSkill'&&event.skill=='dcliying'&&player.getExpansions('dcwangyuan').length=game.countPlayer()) return false; if(event.name=='gain'&&event.player==player) return false; var evt=event.getl(player); @@ -2107,7 +2108,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ //滕芳兰 dcluochong:{ audio:2, - trigger:{player:'roundStart'}, + trigger:{global:'roundStart'}, filter:function(event,player){ return game.hasPlayer(current=>current.countDiscardableCards(player,'hej')>0); }, @@ -2117,7 +2118,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var num=4-player.countMark('dcluochong'); var dialog=[]; dialog.push('###'+get.prompt('dcluochong')+'###
弃置任意名角色区域内共计至多'+get.cnNumber(num)+'张牌
'); - game.countPlayer(target=>{ + game.filterPlayer().sortBySeat().forEach(target=>{ if(target.countDiscardableCards(player,'hej')<=0) return false; var name=(target==player?'你':get.translation(target)); if(target.countCards('h')){ @@ -2167,7 +2168,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } }, - ai:{threaten:2.5}, + ai:{ + threaten:2.5, + effect:{ + target:function(card,player,target,current){ + if(get.type(card)=='delay'&¤t<0){ + var current=_status.currentPhase; + if(current.getSeatNum()>target.getSeatNum()) return 'zerotarget'; + } + }, + }, + }, }, dcaichen:{ audio:2, @@ -5322,6 +5333,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ silent:true, forced:true, nopop:true, + lastDo:true, + trigger:{player:'gainEnd'}, + filter:function(event,player){ + return player.countCards('h')>player.hp; + }, + content:function(){ + trigger._dctongguan_gangying=true; + }, }, duomou:{ marktext:'谋', @@ -5365,7 +5384,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(event,player){ var target=event.player; if((target.hasSkill('dctongguan_gangying')&&(target.hasHistory('gain',function(evt){ - return target.countCards('h')>target.hp; + return evt._dctongguan_gangying==true; })||game.getGlobalHistory('changeHp',function(evt){ return evt.player==target&&(evt.getParent().name=='recover'||target.countCards('h')>target.hp); }).length>0)) || @@ -5377,13 +5396,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){ game.getGlobalHistory('cardMove',evt=>{ if(guojue&&renzhi) return; var evtx=evt.getParent(); - if(evtx.name=='gain'&&evtx.source&&evtx.source!=target&&evtx.player==target || - evtx.name=='discard'&&evtx.getParent().player==target&&evtx.player!=target){ - guojue=true; + if(!guojue){ + if(evtx.name=='gain'&&evtx.source&&evtx.source!=target&&evtx.player==target || + evtx.name=='discard'&&evtx.getParent().player==target&&evtx.player!=target){ + guojue=true; + } } - if(evtx.name=='gain'&&evtx.giver==target&&evtx.getg(evtx.player).length || - evtx.name=='loseAsync'&&evtx.giver==target&&game.hasPlayer(current=>evtx.getg(current).length)){ - renzhi=true; + if(!renzhi){ + if(evtx.name=='gain'&&evtx.giver==target&&evtx.getg(evtx.player).length || + evtx.name=='loseAsync'&&evtx.giver==target&&game.hasPlayer(current=>evtx.getg(current).length)){ + renzhi=true; + } } }); return target.hasSkill('dctongguan_guojue')&&guojue||target.hasSkill('dctongguan_renzhi')&&renzhi; @@ -5391,7 +5414,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ rules:[ (target)=>target.getHistory('sourceDamage').length, (target)=>target.hasHistory('gain',function(evt){ - return target.countCards('h')>target.hp; + return evt._dctongguan_gangying; })||game.getGlobalHistory('changeHp',function(evt){ return evt.player==target&&evt.getParent().name=='recover'; }).length>0||target.countCards('h')>target.hp, @@ -5407,13 +5430,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){ game.getGlobalHistory('cardMove',evt=>{ if(guojue||renzhi) return; var evtx=evt.getParent(); - if(evtx.name=='gain'&&evtx.source&&evtx.source!=target&&evtx.player==target || - evtx.name=='discard'&&evtx.getParent().player==target&&evtx.player!=target){ - guojue=true; + if(!guojue){ + if(evtx.name=='gain'&&evtx.source&&evtx.source!=target&&evtx.player==target || + evtx.name=='discard'&&evtx.getParent().player==target&&evtx.player!=target){ + guojue=true; + } } - if(evtx.name=='gain'&&evtx.giver==target&&evtx.getg(evtx.player).length || - evtx.name=='loseAsync'&&evtx.giver==target&&game.hasPlayer(current=>evtx.getg(current).length)){ - renzhi=true; + if(!renzhi){ + if(evtx.name=='gain'&&evtx.giver==target&&evtx.getg(evtx.player).length || + evtx.name=='loseAsync'&&evtx.giver==target&&game.hasPlayer(current=>evtx.getg(current).length)){ + renzhi=true; + } } }); event.guojue=guojue; event.renzhi=renzhi; @@ -5437,7 +5464,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ game.delayx(); event.goto(1); 'step 4' - player.chooseTarget('梦解:令一名角色回复1点体力',true).set('ai',target=>get.recoverEffect(target,player,player)); + if(game.hasPlayer(target=>target!=player&&target.isDamaged())) player.chooseTarget('梦解:令一名角色回复1点体力',true,function(card,player,target){ + return target!=player&&target.isDamaged(); + }).set('ai',target=>get.recoverEffect(target,player,player)); + else event._result={bool:false}; 'step 5' if(result.bool){ player.logSkill('dcmengjie',result.targets[0]); @@ -5452,9 +5482,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ game.delayx(); event.goto(1); 'step 8' - player.chooseTarget('梦解:弃置一名角色区域内至多两张牌',true,(card,player,target)=>{ + if(game.hasPlayer(target=>target.countDiscardableCards(player,'hej'))) player.chooseTarget('梦解:弃置一名角色区域内至多两张牌',true,(card,player,target)=>{ return target.countDiscardableCards(player,'hej'); }).set('ai',target=>get.effect(target,{name:'guohe'},player,target)); + else event._result={bool:false}; 'step 9' if(result.bool){ player.logSkill('dcmengjie',result.targets[0]); @@ -5643,7 +5674,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{global:'useCard'}, direct:true, filter:function(event,player){ - return event.card.name=='sha'&&(event.player==player||player.inRange(event.player))&&player.countCards('h')>0; + return event.card.name=='sha'&&(event.player==player||player.inRange(event.player))&&player.countCards('he')>0; }, content:function(){ 'step 0' @@ -7711,7 +7742,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(storage,player){ var list=lib.skill.dchuishu.getList(player); - return '摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做:你弃置['+list[1]+']张手牌,且当你于本回合内弃置第['+list[2]+']+1张牌后,你从弃牌堆中获得一张锦囊牌。'; + return '摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做:你弃置['+list[1]+']张手牌,且当你于本回合内弃置第['+list[2]+']+1张牌后,你从弃牌堆中获得等量的锦囊牌。'; }, }, subSkill:{ @@ -7752,6 +7783,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return get.type2(card)=='trick'&&!cards.contains(card); }); if(card) cards.push(card); + else break; } if(cards.length) player.gain(cards,'gain2'); }, @@ -7783,7 +7815,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(list[i]==min) choices.push(exps[i]+min+']'); } if(choices.length==1) event._result={control:choices[0]}; - else player.chooseControl(choices).set('prompt','易数:令〖慧淑〗的一个数值-1').set('prompt2','摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做,你弃置['+list[1]+']张手牌;且当你于本回合内弃置第['+list[2]+']+1张牌后,你从弃牌堆中获得一张锦囊牌。'); + else player.chooseControl(choices).set('prompt','易数:令〖慧淑〗的一个数值-1').set('prompt2','摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做,你弃置['+list[1]+']张手牌;且当你于本回合内弃置第['+list[2]+']+1张牌后,你从弃牌堆中获得等量的锦囊牌。'); 'step 1' var result=result.control.slice(0,result.control.indexOf('[')); var exps=['摸牌数','弃牌数','目标牌数']; @@ -7803,7 +7835,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(list[i]==min) choices.push(exps[i]+min+']'); } if(choices.length==1) event._result={control:choices[0]}; - else player.chooseControl(choices).set('prompt','易数:令〖慧淑〗的一个数值+2').set('prompt2','摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做,你弃置['+list[1]+']张手牌;且当你于本回合内弃置第['+list[2]+']+1张牌后,你从弃牌堆中获得一张锦囊牌。'); + else player.chooseControl(choices).set('prompt','易数:令〖慧淑〗的一个数值+2').set('prompt2','摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做,你弃置['+list[1]+']张手牌;且当你于本回合内弃置第['+list[2]+']+1张牌后,你从弃牌堆中获得等量的锦囊牌。'); 'step 3' var result=result.control.slice(0,result.control.indexOf('[')); var exps=['摸牌数','弃牌数','目标牌数']; @@ -26290,7 +26322,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ liupi:'刘辟[pì],东汉末年黄巾起义军将领。黄巾军将领。黄巾之乱后,与龚都一起率军盘踞在汝南。欲追随刘备,将汝南让给刘备。《三国演义》中,在与曹操的部将高览交战时,为保护刘备而战死。', zhenghun:'郑浑(生卒年不详),字文公。开封(今河南省开封市)人。汉末及三国时期曹魏大臣,东汉名儒郑众曾孙、名士郑泰之弟。郑浑早年避乱淮南,后转投豫章太守华歆。又被曹操辟为掾属,历任下蔡县长、邵陵县令,任内颇有政绩,深得民心。任左冯翊时,击杀扰乱郡县的梁兴,又击败作乱的山贼。历任上党太守、京兆尹、丞相掾属等职。曹丕称帝后,拜侍御史,加驸马都尉。先后任阳平、沛郡太守,任内兴修水利,使农田常年丰收,被百姓称为“郑陂”。后转任山阳和魏郡太守。魏明帝曹叡听闻郑浑的事迹之后,下诏将其政绩布告天下。官至将作大匠。卒年不详。', furongfuqian:'傅肜[róng](?-222年),义阳(今湖北枣阳)人,三国时蜀汉将领。刘备攻伐吴国时,傅肜为别督。后刘备被陆逊击败,傅肜率部断后,奋战至死。死前怒斥道:“吴狗!何有汉将军降者!”
傅佥[qiān] ( ? ~263年),义阳(治今湖北省枣阳市)人,蜀汉将领傅彤之子,三国时期蜀汉名将。金长于谋略,并颇有胆勇,姜维甚爱之。傅佥官至关中都督。魏国攻伐蜀汉时,傅佥和蒋舒防守阳安关,兵败战死。', - zhengxuan:'郑玄(127年-200年),字康成。北海郡高密县(今山东省高密市)人。东汉末年儒家学者、经学大师。郑玄曾入太学攻《京氏易》、《公羊春秋》及《三统历》、《九章算术》,又从张恭祖学《古文尚书》、《周礼》和《左传》等,最后从马融学古文经。游学归里之后,复客耕东莱,聚徒授课,弟子达数千人,家贫好学,终为大儒。党锢之祸起,遭禁锢,杜门注疏,潜心著述。晚年守节不仕,却遭逼迫从军,最终病逝于元城,年七十四。郑玄治学以古文经学为主,兼采今文经学。他遍注儒家经典,以毕生精力整理古代文化遗产,使经学进入了一个“小统一时代”。著有《天文七政论》、《中侯》等书,共百万余言,世称“郑学”,为汉代经学的集大成者。唐贞观年间,列郑玄于二十二“先师”之列,配享孔庙。宋代时被追封为高密伯。后人建有郑公祠以纪念。
', qinlang:'秦朗(生卒年不详),字元明,小字阿蘇(一作阿鳔),新兴(治今山西忻州)云中人。三国时期曹魏将领,官至骁骑将军、给事中,曾率兵讨伐鲜卑轲比能和步度根的叛军。', xianglang:'向朗(约167年—247年),字巨达。襄阳郡宜城县(今湖北宜城)人,三国时期蜀汉官员、藏书家、学者。向朗早年师从于司马徽,并被荆州牧刘表任命为临沮县长。后随刘备入蜀,历任巴西、牂牁、房陵太守,并拜步兵校尉,领丞相长史,随丞相诸葛亮北伐。因包庇马谡被免职,后为光禄勋,转左将军、特进,封显明亭侯。曾代理丞相册封张皇后及太子刘璿。晚年专心研究典籍,诱导青年学习,家中藏书丰富,受到举国尊重。延熙十年(247年),向朗去世。《全三国文》收录有一篇《遗言戒子》', yanghong:'杨弘,东汉末年袁术部将。袁术死后,杨弘等将其众欲归孙策,后庐江太守刘勋截击,转归于勋。', @@ -26405,7 +26436,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, dchuishu:function(player){ var list=lib.skill.dchuishu.getList(player); - return '摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做:你弃置['+list[1]+']张手牌,且当你于本回合内弃置第['+list[2]+']+1张牌后,你从弃牌堆中获得一张锦囊牌。'; + return '摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做:你弃置['+list[1]+']张手牌,且当你于本回合内弃置第['+list[2]+']+1张牌后,你从弃牌堆中随机获得等量的锦囊牌。'; }, dcshoutan:function(player){ if(player.storage.dcshoutan) return '转换技。出牌阶段限一次,阴:你可以弃置一张不为黑色的手牌。阳:你可以弃置一张黑色手牌。'; diff --git a/character/tw.js b/character/tw.js index c63b26656..d172df874 100644 --- a/character/tw.js +++ b/character/tw.js @@ -11893,7 +11893,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{global:'useCard'}, direct:true, filter:function(event,player){ - return event.card.name=='sha'&&(event.player==player||player.inRange(event.player))&&player.countCards('h')>0; + return event.card.name=='sha'&&(event.player==player||player.inRange(event.player))&&player.countCards('he')>0; }, content:function(){ 'step 0' diff --git a/character/yingbian.js b/character/yingbian.js index 794a37bef..04c248023 100644 --- a/character/yingbian.js +++ b/character/yingbian.js @@ -1444,137 +1444,137 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, onremove:true, }, - bolan:{ + bolan:{ audio:2, banned:['kotomi_chuanxiang'], - global:'bolan_g', - initList:function(player){ - var list,skills=[]; - if(get.mode()=='guozhan'){ - list=[]; - for(var i in lib.characterPack.mode_guozhan) list.push(i); - } - else if(_status.connectMode) list=get.charactersOL(); - else { - list=[]; - for(var i in lib.character){ - if(lib.filter.characterDisabled2(i)||lib.filter.characterDisabled(i)) continue; - list.push(i); - } - } - for(var i of list){ - if(i.indexOf('gz_jun')==0) continue; - for(var j of lib.character[i][3]){ - if(j=='bolan') continue; - var skill=lib.skill[j]; - if(!skill||skill.zhuSkill||skill.dutySkill||lib.skill.bolan.banned.contains(j)) continue; - if(skill.init||skill.ai&&(skill.ai.combo||skill.ai.notemp||skill.ai.neg)) continue; - var info=lib.translate[j+'_info']; - if(info&&info.indexOf('出牌阶段限一次')!=-1) skills.add(j); - } - } - player.storage.bolan=skills; - }, - check:function(event,player){ - return true; - }, - trigger:{player:'phaseUseBegin'}, - frequent:true, + global:'bolan_g', + initList:function(player){ + var list,skills=[]; + if(get.mode()=='guozhan'){ + list=[]; + for(var i in lib.characterPack.mode_guozhan) list.push(i); + } + else if(_status.connectMode) list=get.charactersOL(); + else { + list=[]; + for(var i in lib.character){ + if(lib.filter.characterDisabled2(i)||lib.filter.characterDisabled(i)) continue; + list.push(i); + } + } + for(var i of list){ + if(i.indexOf('gz_jun')==0) continue; + for(var j of lib.character[i][3]){ + if(j=='bolan') continue; + var skill=lib.skill[j]; + if(!skill||skill.juexingji||info.hiddenSkill||skill.zhuSkill||skill.dutySkill||info.chargeSkill||lib.skill.bolan.banned.contains(j)) continue; + if(skill.init||skill.ai&&(skill.ai.combo||skill.ai.notemp||skill.ai.neg)) continue; + var info=lib.translate[j+'_info']; + if(info&&info.indexOf('出牌阶段限一次')!=-1) skills.add(j); + } + } + player.storage.bolan=skills; + }, + check:function(event,player){ + return true; + }, + trigger:{player:'phaseUseBegin'}, + frequent:true, preHidden:true, - content:function(){ - 'step 0' - if(player.isIn()){ - if(!player.storage.bolan) lib.skill.bolan.initList(player); - var list=player.storage.bolan.randomGets(3); - if(!list.length){ - event.finish(); - return; - } - player.chooseControl(list).set('choiceList',list.map(function(i){ - return '
【'+get.translation(lib.translate[i+'_ab']||get.translation(i).slice(0,2))+'】
'+get.skillInfoTranslation(i,player)+'
'; - })).set('displayIndex',false).set('prompt','博览:请选择你要获得的技能').set('ai',()=>{ + content:function(){ + 'step 0' + if(player.isIn()){ + if(!player.storage.bolan) lib.skill.bolan.initList(player); + var list=player.storage.bolan.randomGets(3); + if(!list.length){ + event.finish(); + return; + } + player.chooseControl(list).set('choiceList',list.map(function(i){ + return '
【'+get.translation(lib.translate[i+'_ab']||get.translation(i).slice(0,2))+'】
'+get.skillInfoTranslation(i,player)+'
'; + })).set('displayIndex',false).set('prompt','博览:请选择你要获得的技能').set('ai',()=>{ var list=_status.event.controls.slice(); return list.sort((a,b)=>{ return get.skillRank(b,'in')-get.skillRank(a,'in'); })[0]; }); - } - else event.finish(); - 'step 1' - player.addTempSkill(result.control,'phaseUseEnd'); - player.popup(result.control); - game.log(player,'获得了','#g【'+get.translation(result.control)+'】'); - }, - ai:{threaten:0.9}, - subSkill:{ - g:{ - audio:'bolan', - forceaudio:true, - enable:'phaseUse', - usable:1, - prompt:'出牌阶段限一次。你可以令一名有〖博览〗的角色从三个描述中包含“出牌阶段限一次”的技能中选择一个,你获得此技能直到此阶段结束。', - filter:function(event,player){ - return game.hasPlayer(function(current){ - return current!=player&¤t.hasSkill('bolan'); - }); - }, - filterTarget:function(card,player,target){ - return player!=target&&target.hasSkill('bolan'); - }, - selectTarget:function(){ - if(game.countPlayer(current=>{ - return lib.skill.bolan_g.filterTarget(null,_status.event.player,current); - })==1) return -1; - return 1; - }, - content:function(){ - 'step 0' - player.loseHp(); - if(target.isIn()&&player.isIn()){ - if(!target.storage.bolan) lib.skill.bolan.initList(target); - var list=target.storage.bolan.randomGets(3); - if(!list.length){ - event.finish(); - return; - } - target.chooseControl(list).set('choiceList',list.map(function(i){ - return '
【'+get.translation(lib.translate[i+'_ab']||get.translation(i).slice(0,2))+'】
'+get.skillInfoTranslation(i,player)+'
'; - })).set('displayIndex',false).set('prompt','博览:请选择令'+get.translation(player)+'获得的技能').set('ai',()=>{ + } + else event.finish(); + 'step 1' + player.addTempSkill(result.control,'phaseUseEnd'); + player.popup(result.control); + game.log(player,'获得了','#g【'+get.translation(result.control)+'】'); + }, + ai:{threaten:0.9}, + subSkill:{ + g:{ + audio:'bolan', + forceaudio:true, + enable:'phaseUse', + usable:1, + prompt:'出牌阶段限一次。你可以令一名有〖博览〗的角色从三个描述中包含“出牌阶段限一次”的技能中选择一个,你获得此技能直到此阶段结束。', + filter:function(event,player){ + return game.hasPlayer(function(current){ + return current!=player&¤t.hasSkill('bolan'); + }); + }, + filterTarget:function(card,player,target){ + return player!=target&&target.hasSkill('bolan'); + }, + selectTarget:function(){ + if(game.countPlayer(current=>{ + return lib.skill.bolan_g.filterTarget(null,_status.event.player,current); + })==1) return -1; + return 1; + }, + content:function(){ + 'step 0' + player.loseHp(); + if(target.isIn()&&player.isIn()){ + if(!target.storage.bolan) lib.skill.bolan.initList(target); + var list=target.storage.bolan.randomGets(3); + if(!list.length){ + event.finish(); + return; + } + target.chooseControl(list).set('choiceList',list.map(function(i){ + return '
【'+get.translation(lib.translate[i+'_ab']||get.translation(i).slice(0,2))+'】
'+get.skillInfoTranslation(i,player)+'
'; + })).set('displayIndex',false).set('prompt','博览:请选择令'+get.translation(player)+'获得的技能').set('ai',()=>{ var list=_status.event.controls.slice(); return list.sort((a,b)=>{ return (get.skillRank(b,'in')-get.skillRank(a,'in'))*get.attitude(_status.event.player,_status.event.getParent().player); })[0]; }); - } - else event.finish(); - 'step 1' - target.line(player); - player.addTempSkill(result.control,'phaseUseEnd'); - player.popup(result.control); - game.log(player,'获得了','#g【'+get.translation(result.control)+'】'); - }, - ai:{ - order:function(item,player){ - if(player.hp>=5||player.countCards('h')>=10) return 10; - var list=game.filterPlayer(current=>lib.skill.bolan_g.filterTarget(null,player,current)); - for(var target of list){ - if(get.attitude(target,player)>0) return 10; - } - return 4; - }, - result:{ - player:function(player,target){ - if(player.hasUnknown()) return player.hp+player.countCards('h')/4-5>0?1:0; - var tao=player.countCards('h','tao'); - if(player.hp+tao>4) return 4+get.attitude(player,target); - if(player.hp+tao>3) return get.attitude(player,target)-2; - return 0; - }, - }, - }, - } - } - }, + } + else event.finish(); + 'step 1' + target.line(player); + player.addTempSkill(result.control,'phaseUseEnd'); + player.popup(result.control); + game.log(player,'获得了','#g【'+get.translation(result.control)+'】'); + }, + ai:{ + order:function(item,player){ + if(player.hp>=5||player.countCards('h')>=10) return 10; + var list=game.filterPlayer(current=>lib.skill.bolan_g.filterTarget(null,player,current)); + for(var target of list){ + if(get.attitude(target,player)>0) return 10; + } + return 4; + }, + result:{ + player:function(player,target){ + if(player.hasUnknown()) return player.hp+player.countCards('h')/4-5>0?1:0; + var tao=player.countCards('h','tao'); + if(player.hp+tao>4) return 4+get.attitude(player,target); + if(player.hp+tao>3) return get.attitude(player,target)-2; + return 0; + }, + }, + }, + } + } + }, yifa:{ audio:2, trigger:{target:'useCardToTargeted'}, @@ -3551,6 +3551,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ jin_simayi:['jin_zhangchunhua','shibao','duyu'], jin_simazhao:['jin_wangyuanji'], jin_simashi:['jin_xiahouhui','jin_yanghuiyu'], + xuangongzhu:['duyu'], }, characterReplace:{ yanghu:['dc_yanghu','jin_yanghu','sp_yanghu'], diff --git a/game/update.js b/game/update.js index 805c5528d..a4c55b3e0 100644 --- a/game/update.js +++ b/game/update.js @@ -1,6 +1,6 @@ window.noname_update={ - version:'1.9.120.3', - update:'1.9.120.2', + version:'1.9.120.3.1', + update:'1.9.120.3', changeLog:[ '开放常备主数量限制选项', '整合@copcap 和@萌新 编写的新武将', @@ -14,16 +14,16 @@ window.noname_update={ //'card/huanlekapai.js', //'card/mtg.js', //'card/sp.js', - 'card/standard.js', + //'card/standard.js', //'card/swd.js', //'card/yunchou.js', //'card/yingbian.js', - 'card/yongjian.js', + //'card/yongjian.js', //'card/zhenfa.js', //'card/zhulu.js', 'character/clan.js', //'character/diy.js', - 'character/extra.js', + //'character/extra.js', //'character/hearth.js', //'character/gujian.js', //'character/gwent.js', @@ -31,21 +31,21 @@ window.noname_update={ 'character/mobile.js', //'character/mtg.js', 'character/offline.js', - 'character/old.js', + //'character/old.js', //'character/ow.js', //'character/rank.js', 'character/refresh.js', 'character/sb.js', - 'character/shenhua.js', - 'character/sp.js', + //'character/shenhua.js', + //'character/sp.js', 'character/sp2.js', - 'character/standard.js', + //'character/standard.js', 'character/tw.js', //'character/swd.js', //'character/xianjian.js', - 'character/xinghuoliaoyuan.js', - 'character/yijiang.js', - //'character/yingbian.js', + //'character/xinghuoliaoyuan.js', + //'character/yijiang.js', + 'character/yingbian.js', //'character/yxs.js', //'extension/boss/extension.js', //'font/suits.ttf', @@ -59,15 +59,15 @@ window.noname_update={ //'mode/boss.js', //'mode/brawl.js', //'mode/chess.js', - 'mode/connect.js', - //'mode/doudizhu.js', - 'mode/guozhan.js', - 'mode/identity.js', + //'mode/connect.js', + 'mode/doudizhu.js', + //'mode/guozhan.js', + //'mode/identity.js', //'mode/single.js', //'mode/stone.js', //'mode/tafang.js', //'mode/versus.js', - 'game/game.js', + //'game/game.js', //'game/keyWords.js', //'game/NoSleep.js', //'game/config.js', diff --git a/image/character/pk_sp_duyu.jpg b/image/character/pk_sp_duyu.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e8f599ebc04e05a4bdfd07f9e98275e3c4f71cbd GIT binary patch literal 24113 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

5iL$E))c@Ii?8P4d literal 0 HcmV?d00001 diff --git a/mode/doudizhu.js b/mode/doudizhu.js index 1c757fd75..9cfddc19a 100644 --- a/mode/doudizhu.js +++ b/mode/doudizhu.js @@ -1837,8 +1837,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ player:{ getTopCards:function(num){ if(typeof num!='number') num=1; - if(num==0) {card=true;num=1;} - if(num<0) num=1; + if(num<=0) num=1; var cards; var player=this; if(player.storage.doudizhu_cardPile&&player.storage.doudizhu_cardPile.length){