From ca7a363172a837af9244fca300d6a008cafc03ac Mon Sep 17 00:00:00 2001 From: Spmario233 Date: Mon, 12 Jun 2023 18:52:21 +0800 Subject: [PATCH] various bug fix --- character/clan.js | 6 +- character/diy.js | 24 +++++- character/extra.js | 13 ++- character/mobile.js | 70 +++++++--------- character/offline.js | 12 +-- character/old.js | 1 + character/refresh.js | 36 ++++++-- character/shenhua.js | 16 ++-- character/sp.js | 195 ++----------------------------------------- character/sp2.js | 23 ++--- character/yijiang.js | 10 ++- 11 files changed, 122 insertions(+), 284 deletions(-) diff --git a/character/clan.js b/character/clan.js index 96d402563..5597c06ad 100644 --- a/character/clan.js +++ b/character/clan.js @@ -506,7 +506,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var winner=result.bool?player:target; var cards=[]; game.getGlobalHistory('cardMove',evt=>{ - if(evt.getParent(2)==event) cards.addArray(evt.cards.filterInD('d')); + if(evt.getParent(3)==event) cards.addArray(evt.cards.filterInD('d')); }); event.winner=winner; if(cards.length) event.cards=cards; @@ -1108,8 +1108,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audioname:['clan_xunshu','clan_xunchen','clan_xuncai','clan_xuncan'], trigger:{player:'useCardAfter'}, filter:function(event,player){ - return player.getHistory('useCard',evt=>{ - return get.type(evt.card)=='trick'&&!get.tag(evt.card,'damage'); + return get.type(evt.card,null,false)=='trick'&&!get.tag(evt.card,'damage')&&event.cards.filterInD('d').length>0&&player.getHistory('useCard',evt=>{ + return get.type(evt.card,null,false)=='trick'&&!get.tag(evt.card,'damage'); }).indexOf(event)==0; }, forced:true, diff --git a/character/diy.js b/character/diy.js index ff2224b24..69a00395e 100755 --- a/character/diy.js +++ b/character/diy.js @@ -221,7 +221,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ diy_default:["diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji"], diy_noname:['noname'], diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha","key_shizuku","key_hiroto","key_sakuya","key_youta","key_rumi","key_chihaya","key_yukito","key_asara","key_kotomi","key_mia","key_kano","db_key_liyingxia","key_erika","key_satomi"], - diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang','old_bulianshi','junk_sunquan','ol_maliang','junk_liubei','junk_huangyueying','junk_lidian'], + diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang','old_bulianshi','junk_sunquan','ol_maliang','junk_liubei','junk_huangyueying','junk_lidian','junk_duanwei'], }, }, characterIntro:{ @@ -752,6 +752,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){ game.delayex(); } }, + content2:function(){ + 'step 0' + player.chooseTarget([1,3],'是否弃置至多三名角色的各一张牌?',function(card,player,target){ + return target!=player&&target.hasCard(function(card){ + return lib.filter.canBeDiscarded(card,player,target); + },'he') + }); + 'step 1' + if(result.bool){ + var targets=result.targets.sortBySeat(); + for(var target of targets){ + player.discardPlayerCard(target,true,'he'); + } + } + 'step 2' + player.recover(); + player.draw(); + }, content3:function(){ 'step 0' player.chooseTarget([1,2],'是否对至多两名其他角色造成1点伤害?',lib.filter.notMe); @@ -12379,6 +12397,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:['useCardAfter','respondAfter']}, forced:true, popup:false, + charlotte:true, filter:function(event,player){ return event.skill=='junktaoluan_backup'||event.skill=='junktaoluan5'||event.skill=='junktaoluan4'; }, @@ -12422,6 +12441,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'phaseEnd'}, forced:true, popup:false, + charlotte:true, content:function(){ player.loseHp(); }, @@ -18151,7 +18171,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ iriya_haozhi:'豪掷', iriya_haozhi_info:'出牌阶段,你可以按照斗地主牌型弃置至少两张牌,且其他角色可以依次对其进行一轮响应。最后一名进行响应的角色可以根据对应牌型执行对应效果。' +'对子:其可以令至多两名角色各摸一张牌。' - +'三带:其使用的下一张牌可以多指定一个目标且无距离和次数限制。' + +'三带:其可以弃置至多三名其他角色的各一张牌,然后回复1点体力并摸一张牌。' +'单顺:其可以对至多2名其他角色造成1点伤害。' +'双顺:其可以弃置至多2名其他角色的一张牌并对其造成1点伤害。' +'三顺/飞机:其可以令至多2名其他角色翻面,弃置其的一张牌并对其造成1点伤害。' diff --git a/character/extra.js b/character/extra.js index 7400c1839..b43d89661 100755 --- a/character/extra.js +++ b/character/extra.js @@ -4273,11 +4273,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{global:'judge'}, direct:true, filter:function(event,player){ - return player.countCards('he')>0&&player.hasMark('renjie'); + return player.countCards('hes')>0&&player.hasMark('renjie'); }, content:function(){ "step 0" - player.chooseCard('是否弃置一枚“忍”,并发动〖鬼才〗?','he',function(card){ + player.chooseCard('是否弃置一枚“忍”,并发动〖鬼才〗?','hes',function(card){ var player=_status.event.player; var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player); if(mod2!='unchanged') return mod2; @@ -4774,7 +4774,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player:'enterGame', }, forced:true, - locked:false, filter:function(event,player){ return (event.name!='phase'||game.phaseNumber==0); }, @@ -4808,8 +4807,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ gains.removeArray(player.getCards('h')); if(!pushs.length||pushs.length!=gains.length) return; player.addToExpansion(pushs,player,'giveAuto').gaintag.add('qixing'); - game.log(player,'将',pushs,'作为“星”置于武将牌上'); - player.gain(gains,'gain2'); + //game.log(player,'将','#y'+get.cnNumber(pushs.length)+'张牌','作为“星”置于武将牌上'); + player.gain(gains,'draw'); } }, intro:{ @@ -4873,8 +4872,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(!pushs.length||pushs.length!=gains.length) return; player.logSkill('qixing2'); player.addToExpansion(pushs,player,'giveAuto').gaintag.add('qixing'); - game.log(player,'将',pushs,'作为“星”置于武将牌上'); - player.gain(gains,'gain2'); + //game.log(player,'将','#y'+get.cnNumber(pushs.length)+'张牌','作为“星”置于武将牌上'); + player.gain(gains,'draw'); } }, }, diff --git a/character/mobile.js b/character/mobile.js index c0e9128e5..392eace44 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -793,7 +793,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:3, trigger:{global:'phaseBefore',player:'enterGame'}, forced:true, - locked:false, global:'spdaming_give', filter:function(event,player){ return (event.name!='phase'||game.phaseNumber==0); @@ -12200,7 +12199,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ else player.discardPlayerCard('he',target,true); 'step 2' player.chooseBool('是否令'+get.translation(target)+'获得一张【杀】?').set('ai',function(){ - var evt=status.event.getParent(); + var evt=_status.event.getParent(); return get.attitude(evt.player,evt.target)>0; }); 'step 3' @@ -12234,6 +12233,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'damageEnd'}, forced:true, popup:false, + charlotte:true, filter:function(event,player){ return event.card&&event.card.beizhu; }, @@ -15688,34 +15688,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, "xinfu_qianchong":{ audio:3, - mod:{ - targetInRange:function(card,player,target){ - if(player.storage.xinfu_qianchong.contains(get.type(card,'trick'))){ - return true; - } - }, - cardUsable:function(card,player,num){ - if(player.storage.xinfu_qianchong.contains(get.type(card,'trick'))) return Infinity; - }, - }, - group:["xinfu_qianchong_clear","qc_weimu","qc_mingzhe"], + group:["qc_weimu","qc_mingzhe"], subSkill:{ - clear:{ - sub:true, - forced:true, - silent:true, - popup:false, - trigger:{ - player:"phaseAfter", - }, - content:function(){ - player.storage.xinfu_qianchong=[]; + effect:{ + charlotte:true, + onremove:true, + mod:{ + cardUsable:function(card,player){ + var type=get.type2(card); + if(player.getStorage('xinfu_qianchong_effect').contains(type)) return Infinity; + }, + targetInRange:function(card,player){ + var type=get.type2(card); + if(player.getStorage('xinfu_qianchong_effect').contains(type)) return Infinity; + }, }, }, }, - init:function(event,player){ - event.storage[player]=[]; - }, trigger:{ player:"phaseUseBegin", }, @@ -15732,20 +15721,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ 'step 0' var list=['basic','trick','equip','cancel2']; - for(var i=0;i1){ player.chooseControl(list).set('ai',function(){ return list[0]; - }).set('prompt',get.prompt('xinfu_qianchong')).set('prompt2',get.translation('xinfu_qianchong_info')); + }).set('prompt',get.prompt('xinfu_qianchong')).set('prompt2','你可以选择一种类别的牌,然后你本回合内使用该类别的牌时没有次数和距离限制。'); } else event.finish(); 'step 1' if(result.control&&result.control!='cancel2'){ player.logSkill('xinfu_qianchong'); - player.storage.xinfu_qianchong.add(result.control); - var str=get.translation(result.control)+'牌'; + var type=result.control; + player.addTempSkill('xinfu_qianchong_effect'); + player.markAuto('xinfu_qianchong_effect',[type]); + var str=get.translation(type)+'牌'; game.log(player,'声明了','#y'+str); player.popup(str,'thunder'); } @@ -15827,6 +15816,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(event,player){ var num=0; player.getHistory('lose',function(evt){ + var evt2=evt.getParent(); + if(evt2.name=='useCard'&&evt2.player==player&&get.type(evt2.card,null,false)=='equip') return; if(evt.cards2) num+=evt.cards2.length; }); return num>0&&num<=player.hp @@ -15836,6 +15827,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 0' var num=0; player.getHistory('lose',function(evt){ + var evt2=evt.getParent(); + if(evt2.name=='useCard'&&evt2.player==player&&get.type(evt2.card,null,false)=='equip') return; if(evt.cards2) num+=evt.cards2.length; }); if(num>0){ @@ -17624,7 +17617,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ gnjinfan:{ trigger:{player:'phaseDiscardBegin'}, direct:true, - locked:false, audio:2, filter:function(event,player){ var list=[]; @@ -17850,11 +17842,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ qiaogong:['tw_qiaogong','qiaogong'], sp_chendong:['tw_chendong','sp_chendong','chendong'], sp_jiangqing:['tw_jiangqing','sp_jiangqing','jiangqing'], - zhaotongzhaoguang:['dc_zhaotongzhaoguang','zhaotongzhaoguang'], - yangbiao:['yangbiao','dc_yangbiao','jsrg_yangbiao'], + zhaotongzhaoguang:['dc_zhaotongzhaoguang','zhaotongzhaoguang'], + yangbiao:['yangbiao','dc_yangbiao','jsrg_yangbiao'], qiaozhou:['yj_qiaozhou','qiaozhou'], sunhanhua:['dc_qiaozhou','sunhanhua'], - sp_duyu:['sp_duyu','pk_sp_duyu'], + duyu:['duyu','sp_duyu','pk_sp_duyu'], kongrong:['sp_kongrong','jsrg_kongrong','kongrong'], }, translate:{ @@ -17901,7 +17893,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "qc_mingzhe":"明哲", "qc_mingzhe_info":"", "xinfu_shangjian":"尚俭", - "xinfu_shangjian_info":"锁定技。一名角色的结束阶段开始时,若你于此回合内失去了X张或更少的牌,则你摸等量的牌(X为你的体力值)。", + "xinfu_shangjian_info":"锁定技。一名角色的结束阶段开始时,若你于此回合内不因使用装备牌而失去了X张或更少的牌,则你摸等量的牌(X为你的体力值)。", "rw_bagua_skill":"先天八卦阵", "rw_bagua_skill_info":"当你需要使用或打出一张【闪】时,你可以进行判定,若判定结果不为黑桃,视为你使用或打出了一张【闪】。", "rw_baiyin_skill":"照月狮子盔", @@ -18672,7 +18664,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ tongduo_info:'每回合限一次。当你成为其他角色使用牌的唯一目标后,你可令一名角色重铸一张牌。', xin_jushou:'手杀沮授', xinjianying:'渐营', - xinjianying_info:'①当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。②出牌阶段限一次,你可以将一张牌当做任意基本牌使用(不计入次数限制)。若你于此阶段内使用的上一张牌有花色,则此牌的花色视为上一张牌的花色。', + xinjianying_info:'锁定技。①当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。②出牌阶段限一次,你可以将一张牌当做任意基本牌使用(不计入次数限制)。若你于此阶段内使用的上一张牌有花色,则此牌的花色视为上一张牌的花色。', re_xunyu:"手杀荀彧", rejieming:"节命", rejieming_info:"当你受到1点伤害后,你可以令一名角色摸两张牌。然后若其手牌数小于体力上限,则你摸一张牌。", @@ -18690,7 +18682,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ chengye_append:'
  • 《诗经》:伤害类锦囊牌
  • 《尚书》:基本牌
  • 《仪礼》:无懈可击
  • 《易经》:无中生有
  • 《乐经》:乐不思蜀
  • 《春秋》:装备牌', buxu:'补叙', buxu_backup:'补叙', - buxu_info:'出牌阶段,若你的“六经”中有空缺的位置,则你可以弃置X+1张牌并选择一种空缺的“六经”。系统从牌堆或弃牌堆中检索一张对应的牌,然后你将此牌置于你武将牌上,填补“六经”的对应位置。', + buxu_info:'出牌阶段,若你的“六经”中有空缺的位置,则你可以弃置X+1张牌并选择一种空缺的“六经”(X为你本阶段内发动过〖补叙〗的次数)。系统从牌堆或弃牌堆中检索一张对应的牌,然后你将此牌置于你武将牌上,填补“六经”的对应位置。', re_dianwei:"手杀典韦", liuye:'手杀刘晔', sp_caosong:'手杀曹嵩', diff --git a/character/offline.js b/character/offline.js index fb7a53f38..62408366c 100644 --- a/character/offline.js +++ b/character/offline.js @@ -279,6 +279,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ priority:10, filter:function(event,player){ if(event.revealed) return false; + var info=get.info(event.skill); + if(info.charlotte) return false; var skills=lib.skill.sbyingmen.getSkills(player.getStorage('sbyingmen'),player); game.expandSkills(skills); return skills.contains(event.skill); @@ -3338,7 +3340,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ psliaozou:{ audio:2, enable:'phaseUse', - locked:false, filter:function(event,player){ return !player.hasSkill('psliaozou_blocker',null,null,false); }, @@ -4226,7 +4227,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filterCard:true, selectCard:-1, position:'h', - locked:false, filter:function(event,player){ if(player.hasSkill('pssheji_used')) return false; var hs=player.getCards('h'); @@ -5412,7 +5412,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, enable:'phaseUse', usable:1, - locked:false, filter:function(event,player){ for(var card of ui.discardPile.childNodes){ if(get.type(card)=='equip') return true; @@ -6663,7 +6662,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ spyicong:{ trigger:{player:'phaseDiscardEnd'}, direct:true, - locked:false, filter:function(event,player){ return player.countCards('he')>0; }, @@ -6701,7 +6699,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sptuji:{ trigger:{player:'phaseZhunbeiBegin'}, forced:true, - locked:false, filter:function(event,player){ return player.getExpansions('spyicong').length>0; }, @@ -6929,7 +6926,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'useCardToPlayered'}, silent:true, firstDo:true, - locked:false, content:function(){ trigger.target.addTempSkill('chixin3'); } @@ -6961,7 +6957,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, } }, - chixin3:{charlotte:true}, + chixin3:{}, suiren:{ trigger:{player:'phaseZhunbeiBegin'}, skillAnimation:true, @@ -7521,7 +7517,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, trigger:{global:'phaseJieshuBegin'}, forced:true, - locked:false, filter:function(event,player){ return player.hasSkill('fenyong2')&&event.player.isAlive(); }, @@ -7580,7 +7575,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, trigger:{player:'loseEnd'}, forced:true, - locked:false, filter:function(event,player){ return player._mouduan_mark&&player._mouduan_mark.name=='武'&&player.countCards('h')<=2; }, diff --git a/character/old.js b/character/old.js index bf4ad85cb..41ac62a3d 100755 --- a/character/old.js +++ b/character/old.js @@ -567,6 +567,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ silent:true, popup:false, firstDo:true, + charlotte:true, filter:function(event,player){ return event.skill&&event.skill.indexOf('old_guhuo_')==0; }, diff --git a/character/refresh.js b/character/refresh.js index b5dce80ee..01997d04d 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -26,7 +26,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ re_wenpin:['male','wei',5,['rezhenwei'],['unseen']], re_guanzhang:['male','shu',4,['fuhun','retongxin']], re_mazhong:['male','shu',4,['refuman']], - dc_chenqun:['male','wei',3,['repindi','refaen']], + dc_chenqun:['male','wei',3,['repindi','dcfaen']], re_sundeng:['male','wu',4,['rekuangbi']], re_caiyong:['male','qun',3,['rebizhuan','retongbo']], re_chengong:['male','qun',3,['remingce','zhichi']], @@ -3234,7 +3234,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, enable:'phaseUse', group:'rejiaozhao_base', - locked:false, mod:{ targetEnabled:function(card,player,target){ if(player==target&&card.storage&&card.storage.rejiaozhao) return false; @@ -5221,6 +5220,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audioname:['dc_chenqun'], trigger:{global:['turnOverAfter','linkAfter']}, logTarget:'player', + filter:function(event,player){ + if(event.name=='link') return event.player.isLinked(); + return true; + }, + check:function(event,player){ + return get.attitude(player,event.player)>0; + }, + content:function(){ + trigger.player.draw(); + }, + }, + dcfaen:{ + audio:'refaen', + audioname:['dc_chenqun'], + trigger:{global:['turnOverAfter','linkAfter']}, + logTarget:'player', filter:function(event,player){ if(event.name=='link') return event.player.isLinked(); return !event.player.isTurnedOver(); @@ -5312,7 +5327,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return false; }, audio:'lihuo', - locked:false, prompt2:function(event){ return '将'+get.translation(event.card)+'改为火属性'; }, @@ -9598,6 +9612,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } },player,list); }, + mark:true, intro:{ onunmark:function(storage,player){ _status.characterlist.addArray(storage.character); @@ -9874,6 +9889,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ silent:true, popup:false, firstDo:true, + charlotte:true, filter:function(event,player){ return event.skill&&event.skill.indexOf('reguhuo_')==0; }, @@ -13269,7 +13285,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.finish(); } else if(get.mode()=='guozhan'){ - player.chooseBool('是否将'+get.translation(card)+'作为“田”置于武将牌上?').set('frequentSkill','retuntian').ai=function(){ + player.chooseBool('是否将'+get.translation(card)+'作为【田】置于武将牌上?').set('frequentSkill','retuntian').ai=function(){ return true; }; } @@ -13870,7 +13886,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ re_baosanniang:'手杀鲍三娘', retuntian:'屯田', rebeige:'悲歌', - retuntian_info:'①当你于回合外失去牌后,你可以判定。若判定结果为♥,你获得此判定牌。否则你将此牌置于你的武将牌上,称为“田”。②你计算与其他角色的距离时-X(X为你武将牌上“田”的数目)。', + retuntian_info:'当你于回合外失去牌时,你可以进行一次判定。若判定结果为♥,你获得此判定牌。否则你将此牌置于你的武将牌上,称之为【田】。锁定技,你计算与其他角色的距离时-X(X为你武将牌上【田】的数目)', rebeige_info:'当有角色受到【杀】造成的伤害后,你可以弃一张牌,并令其进行一次判定,若判定结果为:♥该角色回复X点体力(X为伤害点数);♦︎该角色摸三张牌;♣伤害来源弃两张牌;♠伤害来源将其武将牌翻面', re_liushan:'手杀刘禅', re_sunben:'界孙笨', @@ -14006,8 +14022,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ol_dengai:'界邓艾', oltuntian:'屯田', olzaoxian:'凿险', - oltuntian_info:'①当你于回合外失去牌后,或于回合内因弃置而失去【杀】后,你可以判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称为“田”。②你计算与其他角色的距离时-X(X为你武将牌上“田”的数目)。', - olzaoxian_info:'觉醒技,准备阶段,若你武将牌上“田”的数量达到3张或更多,则你减1点体力上限,并获得技能〖急袭〗。你于当前回合结束后进行一个额外的回合。', + oltuntian_info:'当你于回合外失去牌后,或于回合内因弃置而失去【杀】后,你可以进行判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称之为【田】。锁定技,你计算与其他角色的距离时-X(X为你武将牌上【田】的数目)', + olzaoxian_info:'觉醒技,准备阶段,若你武将牌上【田】的数量达到3张或更多,则你减1点体力上限,并获得技能〖急袭〗。你于当前回合结束后进行一个额外的回合。', re_sunxiu:'界孙休', re_caoxiu:'界曹休', xin_lingtong:'界凌统', @@ -14072,7 +14088,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ redingpin:'定品', redingpin_info:'出牌阶段,你可以弃置一张本回合未使用过/弃置过的类型的牌并选择一名角色。其进行判定,若结果为:黑色,其摸X张牌(X为其体力值且至多为3)且本回合内不能再成为〖定品〗的目标;红桃,你令此次弃置的牌不计入〖定品〗弃置牌合法性的检测;方片,你将武将牌翻面。', refaen:'法恩', - refaen_info:'一名角色翻至正面或横置后,你可令其摸一张牌。', + refaen_info:'一名角色翻面或横置后,你可令其摸一张牌。', + dcfaen:'法恩', + dcfaen_info:'一名角色翻至正面或横置后,你可令其摸一张牌。', reshizhi:'矢志', reshizhi_info:'锁定技,若你的体力值为1,则你的【闪】视为【杀】,且当你使用对应的实体牌为一张【闪】的非转化普通杀造成伤害后,你回复1点体力。', re_guotufengji:'界郭图逢纪', @@ -14113,7 +14131,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ rebingyi_info:'结束阶段,你可展示所有手牌。若这些牌:颜色均相同,则你可以令至多X名角色各摸一张牌(X为你的手牌数);点数均相同,则你摸一张牌。', re_jiaxu:'界贾诩', rewansha:'完杀', - rewansha_info:'锁定技。①你的回合内,不处于濒死状态的角色不能使用【桃】。②当有角色于你的回合内进入濒死状态时,你令其以外的所有其他角色的非锁定技失效直到此濒死状态结算结束。', + rewansha_info:'锁定技。①你的回合内,不处于濒死状态的其他角色不能使用【桃】。②当有角色于你的回合内进入濒死状态时,你令其以外的所有其他角色的非锁定技失效直到此濒死状态结算结束。', reluanwu:'乱武', reluanwu_info:'限定技,出牌阶段,你可令所有其他角色依次选择一项:①对距离最近(或之一)的角色使用一张【杀】;②失去1点体力。结算完成后,你可视为使用一张【杀】(无距离限制)。', reweimu:'帷幕', diff --git a/character/shenhua.js b/character/shenhua.js index a25b7085d..f2234324e 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -1139,7 +1139,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "drlt_yongsi":{ audio:2, group:["drlt_yongsi_1","drlt_yongsi_2"], - locked:true, subSkill:{ '1':{ audio:"drlt_yongsi", @@ -3195,7 +3194,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audioname:['re_huangzhong','ol_huangzhong'], trigger:{player:'useCardToTargeted'}, logTarget:'target', - locked:false, check:function(event,player){ return get.attitude(player,event.target)<=0; }, @@ -3657,7 +3655,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return; } event.card=result.card; - player.chooseBool('是否将'+get.translation(event.card)+'作为“田”置于武将牌上?').ai=function(){ + player.chooseBool('是否将'+get.translation(event.card)+'作为【田】置于武将牌上?').ai=function(){ return true; }; 'step 2' @@ -7530,6 +7528,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ silent:true, popup:false, firstDo:true, + charlotte:true, filter:function(event,player){ return event.skill&&(event.skill.indexOf('guhuo_')==0||event.skill.indexOf('xinfu_guhuo_')==0); }, @@ -7741,6 +7740,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhugezhan:['zhugezhan','old_zhugezhan'], ol_lusu:['ol_lusu','re_lusu'], zhanghe:['re_zhanghe','zhanghe'], + yl_luzhi:['yl_luzhi','tw_yl_luzhi'], }, translate:{ re_yuanshao:'袁绍', @@ -7906,7 +7906,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ retianxiang_info:'当你受到伤害时,你可以弃置一张红桃手牌,防止此次伤害并选择一名其他角色,然后你选择一项:1.令其受到伤害来源对其造成的1点伤害,然后摸X张牌(X为其已损失体力值且至多为5);2.令其失去1点体力,然后获得你弃置的牌。', xinjiewei_info:'你可以将装备区里的牌当【无懈可击】使用;当你的武将牌从背面翻至正面时,你可以弃置一张牌,然后移动场上的一张牌', xinjushou_info:'结束阶段,你可以翻面并摸四张牌,然后弃置一张手牌,若以此法弃置的是装备牌,则你改为使用之', - jixi_info:'出牌阶段,你可以将任意一张“田”当作【顺手牵羊】使用', + jixi_info:'出牌阶段,你可以将任意一张【田】当作【顺手牵羊】使用', xinqiangxi_info:'出牌阶段各限一次,你可以选择一项:1. 失去一点体力并对你攻击范围内的一名其他角色造成一点伤害;2. 弃置一张装备牌并对你攻击范围内的一名其他角色造成一点伤害 ', qimou_info:'限定技,出牌阶段,你可以失去任意点体力,然后直到回合结束,你计算与其他角色的距离时-X,且你可以多使用X张【杀】(X为你失去的体力值)', tiaoxin_info:'出牌阶段限一次,你可以指定一名攻击范围内包含你的角色,该角色需对你使用一张【杀】,否则你弃置其一张牌。', @@ -7915,11 +7915,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ fangquan_info:'你可跳过你的出牌阶段,若如此做,回合结束时,你可以弃置一张手牌并令一名其他角色进行一个额外的回合。', ruoyu_info:'主公技,觉醒技,准备阶段,若你的体力是全场最少的(或之一),你须增加1点体力上限并回复1点体力,然后获得技能〖激将〗。', qiaobian_info:'你可以弃置一张手牌并跳过自己的一个阶段(准备阶段和结束阶段除外);若你以此法跳过了摸牌阶段,则你可以获得至多两名其他角色的各一张手牌;若你以此法跳过了出牌阶段,则你可以移动场上的一张牌。', - tuntian_info:'①当你于回合外失去牌后,你可以判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称为“田”。②你计算与其他角色的距离时-X(X为你武将牌上“田”的数目)', - zaoxian_info:'觉醒技,准备阶段,若你武将牌上“田”的数量达到3张或更多,则你减1点体力上限,并获得技能〖急袭〗', + tuntian_info:'当你于回合外失去牌时,你可以进行一次判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称之为【田】。锁定技,你计算与其他角色的距离时-X(X为你武将牌上【田】的数目)', + zaoxian_info:'觉醒技,准备阶段,若你武将牌上【田】的数量达到3张或更多,则你减1点体力上限,并获得技能〖急袭〗', jiang_info:'每当你使用(指定目标后)或被使用(成为目标后)一张【决斗】或红色的【杀】时,你可以摸一张牌。', hunzi_info:'觉醒技,准备阶段,若你的体力值为1,你减1点体力上限,并获得技能〖英姿〗和〖英魂〗。', - zhiba_info:'主公技,其他吴势力角色的出牌阶段限一次,其可与你进行一次拼点。若该角色没赢,你可以获得双方拼点的牌。若你已发动过〖魂姿〗,你可以拒绝此拼点。', + zhiba_info:'主公技,其他吴势力角色的出牌阶段限一次,其可与你进行一次拼点。若该角色没赢,你可以获得双方拼点的牌;你的觉醒技发动后,你可以拒绝此拼点。', zhijian_info:'出牌阶段,你可以将手牌中的一张装备牌置于一名其他角色装备区里(不得替换原装备),然后摸一张牌。', guzheng_info:'其他角色的弃牌阶段结束时,你可以令其获得本阶段内进入弃牌堆的牌中的一张,然后你获得其余的牌。', beige_info:'当有角色受到【杀】造成的伤害后,你可以弃一张牌,并令其进行一次判定,若判定结果为:♥该角色回复1点体力;♦︎该角色摸两张牌;♣伤害来源弃两张牌;♠伤害来源将其武将牌翻面', @@ -7987,7 +7987,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ yinghun_old_info:'准备阶段,若你已受伤,则你可以令一名其他角色执行下列两项中的一项: 1.摸X张牌,然后弃一张牌。 2.摸一张牌,然后弃X张牌。 (X为你已损失的体力值)', jiuchi_info:'你可以将一张♠手牌当作【酒】使用。', roulin_info:'锁定技。你对女性角色、女性角色对你使用【杀】时,都需连续使用两张【闪】才能抵消。', - benghuai_info:'锁定技。结束阶段,若你的体力不为全场最少,你失去1点体力或减1点体力上限。', + benghuai_info:'结束阶段,若你的体力不是全场最少的(或之一),你须减1点体力或体力上限。', baonue_info:'主公技,其他群雄角色造成伤害后,可进行一次判定,若为♠,你回复1点体力。', luanwu_info:'限定技,出牌阶段,你可令除你外的所有角色依次对与其距离最近的另一名角色使用一张【杀】,否则失去1点体力。', wansha_info:'锁定技,你的回合内,除你以外,不处于濒死状态的角色不能使用【桃】。', diff --git a/character/sp.js b/character/sp.js index ead795717..10285fa6d 100755 --- a/character/sp.js +++ b/character/sp.js @@ -11,7 +11,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao","jin_guohuai"], sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','ol_puyuan','zhangzhi'], sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie'], - sp_liesi:['mizhu','weizi','ol_liuba','zhangshiping'], + sp_liesi:['mizhu','weizi','ol_liuba'], sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'], sp_waitforsort:['sunhong','luoxian','ol_huban','wangguan'], sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'], @@ -29,7 +29,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, character:{ - zhangshiping:['male','shu',3,['olhongji','olxinggu']], sunhong:['male','wu',3,['olxianbi','olzenrun']], luoxian:['male','shu',4,['oldaili']], ol_huban:['male','wei',4,['olhuiyun']], @@ -678,169 +677,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, skill:{ - //张世平 - olhongji:{ - audio:2, - trigger:{global:'phaseZhunbeiBegin'}, - filter:function(event,player){ - if(event.player.isMinHandcard(true)&&!player.hasSkill('olhongji_min')) return true; - if(event.player.isMaxHandcard(true)&&!player.hasSkill('olhongji_max')) return true; - return false; - }, - logTarget:'player', - check:function(event,player){ - return get.attitude(player,event.player)>0; - }, - prompt2:function(event,player){ - if(event.player.isMinHandcard(true)){ - return '其手牌数为全场唯一最少。你可以令其于本回合摸牌阶段结束后执行一个额外的摸牌阶段,然后本轮你不能再发动该分支。'; - } - return '其手牌数为全场唯一最多。你可以令其于本回合出牌阶段结束后执行一个额外的出牌阶段,然后本轮你不能再发动该分支。'; - }, - content:function(){ - var target=trigger.player; - if(target.isMinHandcard(true)){ - player.addTempSkill('olhongji_min','roundStart'); - target.addTempSkill('olhongji_draw'); - } - if(target.isMaxHandcard(true)){ - player.addTempSkill('olhongji_max','roundStart'); - target.addTempSkill('olhongji_use'); - } - }, - ai:{expose:0.25}, - subSkill:{ - min:{charlotte:true}, - max:{charlotte:true}, - draw:{ - trigger:{player:'phaseDrawAfter'}, - charlotte:true, - forced:true, - popup:false, - content:function(){ - var next=trigger.player.phaseDraw(); - event.next.remove(next); - trigger.getParent('phase').next.push(next); - player.removeSkill('olhongji_draw'); - } - }, - use:{ - trigger:{player:'phaseUseAfter'}, - charlotte:true, - forced:true, - popup:false, - content:function(){ - var next=trigger.player.phaseUse(); - event.next.remove(next); - trigger.getParent('phase').next.push(next); - player.removeSkill('olhongji_use'); - } - } - } - }, - olxinggu:{ - audio:2, - trigger:{global:'phaseBefore',player:'enterGame'}, - forced:true, - locked:false, - filter:function(event,player){ - return (event.name!='phase'||game.phaseNumber==0); - }, - onremove:function(player,skill){ - var cards=player.getExpansions(skill); - if(cards.length) player.loseToDiscardpile(cards); - }, - group:'olxinggu_trade', - content:function(){ - 'step 0' - var cards=[]; - for(var i=0;i<3;i++){ - var card=get.cardPile2(function(card){ - if(cards.contains(card)) return false; - var type=get.subtype(card); - return type=='equip3'||type=='equip4'||type=='equip6'; - }); - if(card) cards.add(card); - else break; - } - if(cards.length) player.addToExpansion(cards,'draw').gaintag.add('olxinggu'); - }, - marktext:'贾', - intro:{ - markcount:'expansion', - mark:function(dialog,content,player){ - var content=player.getExpansions('olxinggu'); - if(content&&content.length){ - if(player==game.me||player.isUnderControl()){ - dialog.addAuto(content); - } - else{ - return '剩余'+get.cnNumber(content.length)+'匹马'; - } - } - } - }, - subSkill:{ - trade:{ - audio:'olxinggu', - trigger:{player:'phaseJieshuBegin'}, - filter:function(event,player){ - return player.getExpansions('olxinggu').length; - }, - direct:true, - content:function(){ - 'step 0' - var cards=player.getExpansions('olxinggu'); - if(_status.connectMode) game.broadcastAll(function(){_status.noclearcountdown=true}); - player.chooseButton([get.prompt('olxinggu'),cards]).set('ai',button=>{ - if(_status.event.toChoose==button.link) return 1; - return 0; - }).set('toChoose',!event.aiCancel&&cards.find(card=>{ - return game.hasPlayer(current=>{ - if(!lib.skill.zhijian.filterTarget(card,player,current)) return false; - return get.effect(current,card,player,player)>0; - }); - })); - 'step 1' - if(result.bool){ - var card=result.links[0]; - event.card=card; - player.chooseTarget('将'+get.translation(card)+'置入一名其他角色的装备区',lib.skill.zhijian.filterTarget).set('ai',target=>{ - var player=_status.event.player; - return get.effect(target,_status.event.card,player,player); - }).set('card',card); - } - else{ - if(_status.connectMode){game.broadcastAll(function(){delete _status.noclearcountdown;game.stopCountChoose()});} - event.finish(); - } - 'step 2' - if(result.bool){ - var target=result.targets[0]; - event.target=target; - if(_status.connectMode){game.broadcastAll(function(){delete _status.noclearcountdown;game.stopCountChoose()});} - player.logSkill('olxinggu',target); - player.$give(card,target,false); - } - else{ - if(!event.isMine()&&!event.isOnline()) event.aiCancel=true; - event.goto(0); - } - 'step 3' - target.equip(card); - 'step 4' - var card=get.cardPile2(cardx=>{ - return get.suit(cardx)=='diamond'; - }); - if(card) player.gain(card,'gain2'); - else{ - game.log('但是牌堆中并没有♦牌了!'); - player.chat('做了个亏本买卖…'); - } - } - } - } - }, //孙弘 olxianbi:{ audio:2, @@ -968,7 +804,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ })%2==0; }, group:'oldaili_record', - locked:false, check:function(event,player){ if(get.distance(event.player,player,'absolute')==1&&!player.isTurnedOver()) return false; return true; @@ -1373,7 +1208,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 0' player.chooseControl('cancel2').set('choiceList',[ '令'+get.translation(trigger.player)+'回复1点体力', - '令'+get.translation(trigger.player)+'于本回合下次造成的伤害+1,且造成伤害时本回合手牌上限为0', + '令'+get.translation(trigger.player)+'于本回合下次造成的伤害+1,且造成伤害后本回合手牌上限为0', ]).set('prompt',get.prompt('olkangrui',trigger.player)).set('ai',()=>{ return _status.event.choice; }).set('choice',function(){ @@ -1427,7 +1262,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, nil:{ - trigger:{source:'damageBegin1'}, + trigger:{source:'damageSource'}, charlotte:true, forced:true, onremove:true, @@ -3933,7 +3768,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ huamu:{ audio:2, trigger:{player:'useCardAfter'}, - locked:false, filter:function(event,player){ var color=get.color(event.card); if(color=='none') return false; @@ -9218,7 +9052,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ source:'damageSource', }, forced:true, - locked:false, content:function(){ player.addMark('reluanzhan',1,false); }, @@ -9274,7 +9107,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:'luanzhan', trigger:{player:'useCardToPlayered'}, forced:true, - locked:false, filter:function(event,player){ if(!event.isFirstTarget||(event.card.name!='sha'&&(get.color(event.card)!='black'||get.type(event.card)!='trick'))||!player.countMark('reluanzhan')) return false; var info=get.info(event.card); @@ -11228,7 +11060,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.removeAdditionalSkill('new_luoyan'); }, derivation:['oltianxiang','liuli'], - locked:true, }, //新孙鲁育 "new_meibu":{ @@ -13870,7 +13701,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, xinyongsi:{ group:['xinyongsi1','xinyongsi2'], - locked:true, }, xinyongsi1:{ audio:'yongsi1', @@ -15703,7 +15533,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xunzhi:{ audio:2, trigger:{player:'phaseZhunbeiBegin'}, - locked:false, init:function(player){ player.storage.xunzhi=0; }, @@ -16736,6 +16565,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ yuhua:{ trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']}, forced:true, + locked:false, audio:2, content:function(){ "step 0" @@ -17463,7 +17293,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ guiming:{ unique:true, zhuSkill:true, - locked:true, }, canshi:{ audio:2, @@ -20018,7 +19847,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, yongsi:{ group:['yongsi1','yongsi2'], - locked:true, ai:{ threaten:2.2 } @@ -21941,11 +21769,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ lisu:['ol_lisu','lisu'], fuwan:['dc_fuwan','fuwan','sp_fuwan','tw_fuwan'], huaxin:['ol_huaxin','huaxin','sp_huaxin'], - xujing:['xujing','tw_sp_xujing','sp_xujing'], + xujing:['xujing','tw_xujing','sp_xujing'], zhaoxiang:['zhaoxiang','tw_zhaoxiang'], dengzhi:['ol_dengzhi','re_dengzhi','tw_dengzhi','dengzhi'], wangrong:['wangrong','ol_wangrong'], - zongyu:['tw_sp_zongyu','sp_zongyu','zongyu'], + zongyu:['tw_zongyu','sp_zongyu','zongyu'], ol_dongzhao:['ol_dongzhao','tw_dongzhao'], mayunlu:['tw_mayunlu','mayunlu'], zhuling:['ol_zhuling','dc_zhuling','zhuling'], @@ -22662,7 +22490,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ chongzhen_info:'当你因发动〖龙胆〗而使用或打出【杀】或【闪】时,你可以获得对方的一张手牌。', bifa_info:'结束阶段开始时,你可以将一张手牌移出游戏并指定一名其他角色。该角色的准备阶段开始时,其观看你移出游戏的牌并选择一项:交给你一张与此牌类型相同的手牌并获得此牌;或将此牌置入弃牌堆,然后失去1点体力。', songci_info:'①出牌阶段,你可以选择一名未以此法选择过的角色。若其手牌数:大于其体力值,其弃置两张牌;不大于其体力值,其摸两张牌。②弃牌阶段结束时,若你已对场上所有存活角色发动过〖颂词①〗,则你摸一张牌。', - yongsi_info:'锁定技。①摸牌阶段,你多摸X张牌。②弃牌阶段开始时,你弃置X张牌。(X为场上势力数)', + yongsi_info:'锁定技,摸牌阶段,你多摸X张牌。弃牌阶段开始时,你弃置X张牌。(X为场上势力数)', yicong_info:'锁定技,当你的体力值大于2时,你计算与其他角色的距离时-1;当你的体力值不大于2时,其他角色计算与你的距离时+1。', baobian_info:'锁定技,若你的体力值为3或更少,你视为拥有技能〖挑衅〗;若你的体力值为2或更少;你视为拥有技能〖咆哮〗;若你的体力值为1,你视为拥有技能〖神速〗。', rebaobian:'豹变', @@ -22811,7 +22639,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ lisi_info:'当你于回合外使用的牌结算结束后,你可将其交给一名手牌数不大于你的其他角色。', ol_yangyi:'杨仪', oljuanxia:'狷狭', - oljuanxia_info:'结束阶段,你可以选择一名其他角色。你依次视为对其使用至多三种单目标普通锦囊牌。然后其下回合结束时,可视为对你使用等量的【杀】。', + oljuanxia_info:'锁定技。结束阶段,你选择一名其他角色。你依次视为对其使用至多三种单目标普通锦囊牌。然后其下回合结束时,可视为对你使用等量的【杀】。', oldingcuo:'定措', oldingcuo_info:'每回合限一次。当你受到或造成伤害后,你可摸两张牌。若这两张牌颜色不同,则你弃置一张手牌。', fengfangnv:'OL冯妤', @@ -23024,7 +22852,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ oldianjun:'殿军', oldianjun_info:'锁定技。回合结束时,你受到1点无来源伤害,然后执行一个额外的出牌阶段。', olkangrui:'亢锐', - olkangrui_info:'当一名角色于其回合内首次受到伤害后,你可以摸一张牌并选择一项:1.令其回复1点体力;2.令其于本回合下次造成的伤害+1,然后当其于本回合造成伤害时,其本回合手牌上限基数为0。', + olkangrui_info:'当一名角色于其回合内首次受到伤害后,你可以摸一张牌并选择一项:1.令其回复1点体力;2.令其于本回合下次造成的伤害+1,然后当其于本回合造成伤害后,其本回合手牌上限基数为0。', wangguan:'王瓘', olmiuyan:'谬焰', olmiuyan_tag:'invisible', @@ -23044,11 +22872,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ oldaili:'带砺', oldaili_tag:'带砺', oldaili_info:'一名角色的回合结束时,若你被展示过的手牌数为偶数,则你可以翻面,摸三张牌并展示之。', - zhangshiping:'张世平', - olhongji:'鸿济', - olhongji_info:'每轮每项各限一次。一名角色的准备阶段,若其手牌数为唯一最少/最多,你可以令其于本回合第一个摸牌阶段/出牌阶段后执行一个额外的摸牌阶段/出牌阶段。', - olxinggu:'行贾', - olxinggu_info:'①游戏开始时,你将牌堆中的三张坐骑牌扣置于武将牌上。②结束阶段,你可以将一张〖行贾①〗牌置于一名其他角色的装备区,然后你从牌堆获得一张♦牌。', sp_tianji:'天极·皇室宗亲', sp_sibi:'四弼·辅国文曲', diff --git a/character/sp2.js b/character/sp2.js index a750d564d..cce6f3071 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -4800,7 +4800,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return player.getHandcardLimit()!=player.countCards('h'); }, direct:true, - locked:false, content:function(){ 'step 0' var del=player.getHandcardLimit()-player.countCards('h'); @@ -5972,7 +5971,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ global:'phaseBefore', }, forced:true, - locked:false, direct:true, onremove:['dcsilve','dcsilve_self'], filter:function(event,player){ @@ -6267,7 +6265,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'dying'}, usable:1, forced:true, - locked:false, derivation:'dcshouze', group:['dclianzhi_connect','dclianzhi_reproach'], filter:function(event,player){ @@ -6358,7 +6355,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, enable:'chooseToUse', group:'dcfengying_record', - locked:false, filter:function(event,player){ return player.storage.dcfengying&&player.storage.dcfengying.length&&player.storage.dcfengying.filter(name=>{ return event.filterCard({name:name},player,event); @@ -8919,7 +8915,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player:'enterGame', }, forced:true, - locked:false, + locked:true, filter:function(event,player){ return (event.name!='phase'||game.phaseNumber==0)&&game.hasPlayer((current)=>current!=player); }, @@ -9967,7 +9963,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return ui.cardPile.childNodes.length>0; }, frequent:true, - locked:false, content:function(){ 'step 0' var card=false; @@ -12641,7 +12636,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ dcjinggong:{ audio:2, enable:'chooseToUse', - locked:false, mod:{ targetInRange:function(card){ if(card.storage&&card.storage.dcjinggong) return true; @@ -15163,7 +15157,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ derivation:'refenyin', trigger:{global:'roundStart'}, forced:true, - locked:false, content:function(){ 'step 0' var next=player.chooseTarget('请选择【预言】的目标',true).set('animate',false).set('ai',function(){ @@ -18597,7 +18590,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return game.hasPlayer((current)=>lib.skill.reqingcheng.filterTarget(null,player,current)); }, filterTarget:function(card,player,target){ - return target!=player&&target.hasSex('male')&&target.countCards('h')<=player.countCards('h'); + return target!=player&&target.hasSex('male')&&target.countCards('h')