diff --git a/audio/die/bianfuren.mp3 b/audio/die/bianfuren.mp3 index 997fb0e30..5eee2acc1 100644 Binary files a/audio/die/bianfuren.mp3 and b/audio/die/bianfuren.mp3 differ diff --git a/audio/die/caojie.mp3 b/audio/die/caojie.mp3 index 99627c2e9..7a4286c92 100644 Binary files a/audio/die/caojie.mp3 and b/audio/die/caojie.mp3 differ diff --git a/audio/die/shen_guanyu.mp3 b/audio/die/shen_guanyu.mp3 index 76bbde019..425c3389a 100644 Binary files a/audio/die/shen_guanyu.mp3 and b/audio/die/shen_guanyu.mp3 differ diff --git a/audio/die/wuxian.mp3 b/audio/die/wuxian.mp3 index eea4d68d8..05e80d223 100644 Binary files a/audio/die/wuxian.mp3 and b/audio/die/wuxian.mp3 differ diff --git a/audio/die/xinxianying.mp3 b/audio/die/xinxianying.mp3 index 8d0ec0e6c..ee71b1445 100644 Binary files a/audio/die/xinxianying.mp3 and b/audio/die/xinxianying.mp3 differ diff --git a/audio/die/xushi.mp3 b/audio/die/xushi.mp3 index b12bac49a..0ef56b3ba 100644 Binary files a/audio/die/xushi.mp3 and b/audio/die/xushi.mp3 differ diff --git a/audio/skill/caishi1.mp3 b/audio/skill/caishi1.mp3 index 6de9cada9..7c6f86882 100644 Binary files a/audio/skill/caishi1.mp3 and b/audio/skill/caishi1.mp3 differ diff --git a/audio/skill/caishi2.mp3 b/audio/skill/caishi2.mp3 index 88ede5b2e..e554860b1 100644 Binary files a/audio/skill/caishi2.mp3 and b/audio/skill/caishi2.mp3 differ diff --git a/audio/skill/chanyuan1.mp3 b/audio/skill/chanyuan1.mp3 new file mode 100644 index 000000000..25d8f04a4 Binary files /dev/null and b/audio/skill/chanyuan1.mp3 differ diff --git a/audio/skill/chanyuan2.mp3 b/audio/skill/chanyuan2.mp3 new file mode 100644 index 000000000..8d7eca8e8 Binary files /dev/null and b/audio/skill/chanyuan2.mp3 differ diff --git a/audio/skill/daiyan1.mp3 b/audio/skill/daiyan1.mp3 index aed39345a..75467e969 100644 Binary files a/audio/skill/daiyan1.mp3 and b/audio/skill/daiyan1.mp3 differ diff --git a/audio/skill/daiyan2.mp3 b/audio/skill/daiyan2.mp3 index 28c37d7c7..ae7787495 100644 Binary files a/audio/skill/daiyan2.mp3 and b/audio/skill/daiyan2.mp3 differ diff --git a/audio/skill/fumian1.mp3 b/audio/skill/fumian1.mp3 index 721457e26..d7d67799a 100644 Binary files a/audio/skill/fumian1.mp3 and b/audio/skill/fumian1.mp3 differ diff --git a/audio/skill/fumian2.mp3 b/audio/skill/fumian2.mp3 index 0da38c5e6..35a8066ff 100644 Binary files a/audio/skill/fumian2.mp3 and b/audio/skill/fumian2.mp3 differ diff --git a/audio/skill/fuzhu1.mp3 b/audio/skill/fuzhu1.mp3 index fb7f38f39..367850692 100644 Binary files a/audio/skill/fuzhu1.mp3 and b/audio/skill/fuzhu1.mp3 differ diff --git a/audio/skill/fuzhu2.mp3 b/audio/skill/fuzhu2.mp3 index 819ff0b4d..4d644a724 100644 Binary files a/audio/skill/fuzhu2.mp3 and b/audio/skill/fuzhu2.mp3 differ diff --git a/audio/skill/huimin1.mp3 b/audio/skill/huimin1.mp3 index 23084252b..070377381 100644 Binary files a/audio/skill/huimin1.mp3 and b/audio/skill/huimin1.mp3 differ diff --git a/audio/skill/huimin2.mp3 b/audio/skill/huimin2.mp3 index 62aa30fd0..1a2fb9cfa 100644 Binary files a/audio/skill/huimin2.mp3 and b/audio/skill/huimin2.mp3 differ diff --git a/audio/skill/rechanyuan1.mp3 b/audio/skill/rechanyuan1.mp3 new file mode 100644 index 000000000..e2dffc256 Binary files /dev/null and b/audio/skill/rechanyuan1.mp3 differ diff --git a/audio/skill/rechanyuan2.mp3 b/audio/skill/rechanyuan2.mp3 new file mode 100644 index 000000000..583d8dab2 Binary files /dev/null and b/audio/skill/rechanyuan2.mp3 differ diff --git a/audio/skill/shouxi1.mp3 b/audio/skill/shouxi1.mp3 index 4cd2de960..d45aa9c7d 100644 Binary files a/audio/skill/shouxi1.mp3 and b/audio/skill/shouxi1.mp3 differ diff --git a/audio/skill/shouxi2.mp3 b/audio/skill/shouxi2.mp3 index a50ece551..250e654dc 100644 Binary files a/audio/skill/shouxi2.mp3 and b/audio/skill/shouxi2.mp3 differ diff --git a/audio/skill/wanwei1.mp3 b/audio/skill/wanwei1.mp3 index 7ea052a3b..f7df76dc7 100644 Binary files a/audio/skill/wanwei1.mp3 and b/audio/skill/wanwei1.mp3 differ diff --git a/audio/skill/wanwei2.mp3 b/audio/skill/wanwei2.mp3 index f46acc58b..c9b880837 100644 Binary files a/audio/skill/wanwei2.mp3 and b/audio/skill/wanwei2.mp3 differ diff --git a/audio/skill/wengua1.mp3 b/audio/skill/wengua1.mp3 index 608f8903e..cb5e6b19e 100644 Binary files a/audio/skill/wengua1.mp3 and b/audio/skill/wengua1.mp3 differ diff --git a/audio/skill/wengua2.mp3 b/audio/skill/wengua2.mp3 index b5ed96b73..4cba2ceea 100644 Binary files a/audio/skill/wengua2.mp3 and b/audio/skill/wengua2.mp3 differ diff --git a/audio/skill/wuhun21.mp3 b/audio/skill/wuhun21.mp3 index 0f08a5966..59f308757 100644 Binary files a/audio/skill/wuhun21.mp3 and b/audio/skill/wuhun21.mp3 differ diff --git a/audio/skill/wuhun22.mp3 b/audio/skill/wuhun22.mp3 index fb410dea7..abb84f50a 100644 Binary files a/audio/skill/wuhun22.mp3 and b/audio/skill/wuhun22.mp3 differ diff --git a/audio/skill/yuejian1.mp3 b/audio/skill/yuejian1.mp3 index 715a569a3..a61f37afb 100644 Binary files a/audio/skill/yuejian1.mp3 and b/audio/skill/yuejian1.mp3 differ diff --git a/audio/skill/yuejian2.mp3 b/audio/skill/yuejian2.mp3 index 91a255801..6e437b469 100644 Binary files a/audio/skill/yuejian2.mp3 and b/audio/skill/yuejian2.mp3 differ diff --git a/audio/skill/zhongjian1.mp3 b/audio/skill/zhongjian1.mp3 index 548180225..f2644666d 100644 Binary files a/audio/skill/zhongjian1.mp3 and b/audio/skill/zhongjian1.mp3 differ diff --git a/audio/skill/zhongjian2.mp3 b/audio/skill/zhongjian2.mp3 index c20c93e82..ba1abd585 100644 Binary files a/audio/skill/zhongjian2.mp3 and b/audio/skill/zhongjian2.mp3 differ diff --git a/character/collab.js b/character/collab.js index a72f19027..d302fd496 100644 --- a/character/collab.js +++ b/character/collab.js @@ -20,7 +20,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sp_fuhuanghou:['female','qun',3,['spcangni','spmixin']], sp_fuwan:['male','qun',3,['spfengyin','spchizhong']], old_lingju:['female','qun',3,['jieyuan','fenxin_old']], - sp_mushun:['male','qun',4,['dcmoukui']], + sp_mushun:['male','qun',4,['moukui']], }, characterFilter:{ old_lingju:function(mode){ @@ -598,32 +598,38 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, }, - content_old:function(){ - 'step 0' - if(lib.skill.dcshixian.filterx(trigger)){ - player.chooseControl('cancel2').set('choiceList',[ - '摸一张牌', - '令'+get.translation(trigger.card)+'额外结算一次', - ]).set('prompt',get.prompt('dcsitian')); - } - else{ - player.chooseBool('是否发动【诗仙】摸一张牌?').set('frequentSkill','dcshixian'); - } - 'step 1' - if(result.control){ - if(result.index==0){ - player.logSkill('dcshixian'); - player.draw(); - } - else if(result.index==1){ - trigger.effectCount++; - } - } - else if(result.bool){ - player.logSkill('dcshixian'); - player.draw(); + init:function(player){ + player.addSkill('dcshixian_yayun'); + var history=player.getAllHistory('useCard'); + if(history.length){ + player.addGaintag(player.getCards('h',card=>{ + return get.is.yayun(get.translation(card.name),get.translation(history[history.length-1].card.name)); + }),'dcshixian_yayun'); } }, + onremove:function(player){ + player.removeSkill('dcshixian_yayun'); + player.removeGaintag('dcshixian_yayun'); + }, + subSkill:{ + yayun:{ + charlotte:true, + trigger:{player:'useCard1'}, + filter:function(event,player){ + return player.countCards('h'); + }, + direct:true, + priority:11+45+14+19+19+810, + content:function(){ + 'step 0' + player.removeGaintag('dcshixian_yayun'); + 'step 1' + player.addGaintag(player.getCards('h',card=>{ + return get.is.yayun(get.translation(card.name),get.translation(trigger.card.name)); + }),'dcshixian_yayun'); + }, + }, + }, }, //龙王 dclonggong:{ @@ -1281,9 +1287,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ 'step 0' - player.chooseDrawRecover('###'+get.prompt('spcangni')+'###摸两张牌或回复1点体力,然后将武将牌翻面',2).set('ai',function(){ - return 'cancel2'; - }).logSkill='spcangni'; + player.chooseDrawRecover('###'+get.prompt('spcangni')+'###摸两张牌或回复1点体力,然后将武将牌翻面',2).logSkill='spcangni'; 'step 1' if(result.control!='cancel2') player.turnOver(); }, @@ -1566,6 +1570,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ dclbjiuxian:'酒仙', dclbjiuxian_info:'①你可以将额定目标数大于1的锦囊牌当做【酒】使用。②你使用【酒】无次数限制。', dcshixian:'诗仙', + dcshixian_yayun:'押韵', dcshixian_info:'当你使用一张牌时,若此牌的牌名与你于本局游戏使用的上一张牌的牌名押韵,则你可以摸一张牌,并令此牌额外结算一次。', taoshen:'涛神', dcnutao:'怒涛', diff --git a/character/extra.js b/character/extra.js index 4258e2fb9..1fe17494d 100755 --- a/character/extra.js +++ b/character/extra.js @@ -4989,7 +4989,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ maixie:true, maixie_hp:true, combo:'sbaiyin', - /*effect:{ + effect:{ target:function(card,player,target){ if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(get.tag(card,'damage')){ @@ -5013,7 +5013,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return 'zeroplayertarget'; } } - }*/ + } } }, renjie2:{ @@ -5030,7 +5030,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ player.addMark('renjie',trigger.getl(player).cards2.length); - } + }, }, sbaiyin:{ skillAnimation:'epic', @@ -5048,11 +5048,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.addSkill('jilue'); player.awakenSkill('sbaiyin'); }, - derivation:'jilue', + derivation:['jilue','reguicai','fangzhu','rejizhi','rezhiheng','rewansha'], }, jilue:{ unique:true, - group:['jilue_guicai','jilue_fangzhu','jilue_wansha','jilue_zhiheng','jilue_jizhi','jilue_jizhi_clear'] + group:['jilue_guicai','jilue_fangzhu','jilue_wansha','jilue_zhiheng','jilue_jizhi'], }, jilue_guicai:{ audio:1, @@ -5253,7 +5253,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ skillTagFilter:function(player,tag,arg){ if(tag==='nokeep') return player.isPhaseUsing()&&!player.getStat().skill.jilue_zhiheng&&player.hasCard((card)=>get.name(card)!=='tao','h'); }, - threaten:1.5 }, }, jilue_jizhi:{ @@ -5262,9 +5261,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(event,player){ return (get.type(event.card,'trick')=='trick'&&event.card.isCard&&player.hasMark('renjie')); }, - init:function(player){ - player.storage.jilue_jizhi=0; - }, content:function(){ 'step 0' player.removeMark('renjie',1); @@ -5279,33 +5275,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 2' if(result.bool){ player.discard(event.card); - player.storage.jilue_jizhi++; - if(_status.currentPhase==player){ - player.markSkill('jilue_jizhi'); - } + player.addTempSkill('jilue_jizhi_clear'); + player.addMark('jilue_jizhi_clear',1,false); } }, - ai:{ - threaten:1.4 - }, - mod:{ - maxHandcard:function(player,num){ - return num+player.storage.jilue_jizhi; - } - }, - intro:{ - content:'本回合手牌上限+#', - }, subSkill:{ clear:{ - trigger:{global:'phaseAfter'}, - silent:true, - content:function(){ - player.storage.jilue_jizhi=0; - player.unmarkSkill('jilue_jizhi'); - } - } - } + charlotte:true, + onremove:true, + mod:{ + maxHandcard:function(player,num){ + return num+player.countMark('jilue_jizhi_clear'); + }, + }, + intro:{content:'手牌上限+#'}, + }, + }, }, wushen:{ mod:{ diff --git a/character/mobile.js b/character/mobile.js index 9e5f4f2dc..eca5db6c5 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -4739,7 +4739,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xingtu:{ trigger:{player:'useCard'}, filter:function(event,player){ - var num1=get.number(event.card),num2=player.storage.xingtu; + var evt=lib.skill.dcjianying.getLastUsed(player,event); + if(!evt||!evt.card) return false; + var num1=get.number(event.card),num2=get.number(evt.card); return typeof num1=='number'&&typeof num2=='number'&&num2%num1==0; }, forced:true, @@ -4748,29 +4750,73 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, mod:{ cardUsable:function(card,player){ - var num1=get.number(card),num2=player.storage.xingtu; - if(typeof num1=='number'&&typeof num2=='number'&&num1%num2==0) return Infinity; + if(typeof card=='object'){ + var evt=lib.skill.dcjianying.getLastUsed(player); + if(!evt||!evt.card) return; + var num1=get.number(card),num2=get.number(evt.card); + if(typeof num1=='number'&&typeof num2=='number'&&num1%num2==0) return Infinity; + } }, aiOrder:function(player,card,num){ - var num1=get.number(card),num2=player.storage.xingtu; - if(typeof num1=='number'&&typeof num2=='number'&&num2%num1==0) return num+5; + if(typeof card=='object'){ + var evt=lib.skill.dcjianying.getLastUsed(player); + if(!evt||!evt.card) return; + var num1=get.number(card),num2=num2=get.number(evt.card); + if(typeof num1=='number'&&typeof num2=='number'&&num2%num1==0) return num+5; + } }, }, - group:'xingtu_record', - intro:{ - content:'当前记录:X=#', + init:function(player){ + player.addSkill('xingtu_mark'); + var history=player.getAllHistory('useCard'); + if(history.length){ + var trigger=history[history.length-1],num=get.number(trigger.card); + player.storage.xingtu_mark=num; + player[typeof num!='number'?'unmarkSkill':'markSkill']('xingtu_mark'); + } + }, + onremove:function(player){ + player.removeSkill('xingtu_mark'); + player.removeGaintag('xingtu1'); + player.removeGaintag('xingtu2'); + delete player.storage.xingtu_mark; }, subSkill:{ - record:{ - trigger:{player:'useCardAfter'}, - forced:true, - filter:function(event,player){ - return typeof get.number(event.card)=='number'; + mark:{ + charlotte:true, + trigger:{ + player:['useCard1','gainAfter'], + global:'loseAsyncAfter', }, + filter:function(event,player,name){ + if(!player.countCards('h')) return false; + return name=='useCard1'||event.getg(player).length; + }, + direct:true, + firstDo:true, content:function(){ - player.storage.xingtu=get.number(trigger.card); - player.markSkill('xingtu'); + 'step 0' + player.removeGaintag('xingtu1'); + player.removeGaintag('xingtu2'); + if(event.triggername=='useCard1'){ + var num=get.number(trigger.card,player); + player.storage.xingtu_mark=num; + player[typeof num!='number'?'unmarkSkill':'markSkill']('xingtu_mark'); + if(typeof num!='number') event.finish(); + } + 'step 1' + var cards1=[],cards2=[],num=player.storage.xingtu_mark; + player.getCards('h').forEach(card=>{ + var numx=get.number(card,player); + if(typeof numx=='number'){ + if(numx%num==0) cards1.push(card); + if(num%numx==0) cards2.push(card); + } + }); + player.addGaintag(cards1,'xingtu1'); + player.addGaintag(cards2,'xingtu2'); }, + intro:{content:'上一张牌的点数:#'}, }, }, }, @@ -4784,7 +4830,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){ selectCard:[2,Infinity], check:function(card){ if(ui.selected.cards.length>1) return 0; - return 4-get.value(card); + var player=_status.event.player; + if(player.hasSkill('xingtu')&&player.storage.xingtu){ + var cards=player.getCards('he'); + var num=player.storage.xingtu,stop=false; + for(var i=0;i<=cards.length;i++){ + if(i!=cards.length){ + var num1=get.number(cards[i],player); + if(typeof num1!='number') continue; + for(var j=0;j0&&get.attitude(current,player)>0; + })&&game.hasPlayer(function(target){ + return player.canUse({name:'sha'},target)&&get.effect(target,{name:'sha'},player,player)>0; + })) return 1; + } + //护驾 + else if(!player.hasShan()&&game.hasPlayer(function(current){ + return current!=player&¤t.group=='wei'&¤t.mayHaveShan()&&get.attitude(player,current)>0&&get.attitude(current,player)>0; + })) return 1; + return -1; + }); 'step 1' if(result.bool){ player.logSkill('sphantong'); @@ -4848,31 +4867,41 @@ game.import('character',function(lib,game,ui,get,ai,_status){ game.cardsDiscard(card); var list=['hujia','jijiang','jiuyuan','xueyi']; for(var i=0;i0&&get.attitude(current,player)>0; + })&&game.hasPlayer(function(target){ + return player.canUse({name:'sha'},target)&&get.effect(target,{name:'sha'},player,player)>0; + })) return 'jijiang'; + } + //护驾 + else if(!player.hasShan()&&game.hasPlayer(function(current){ + return current!=player&¤t.group=='wei'&¤t.mayHaveShan()&&get.attitude(player,current)>0&&get.attitude(current,player)>0; + })) return 'hujia'; + }); } - if(list.length>0) player.chooseControl(list).set('prompt','选择获得以下技能中的一个'); else event.finish(); } else event.finish(); 'step 2' var skill=result.control; player.addTempSkill(skill); - if(!player.storage.zhuSkill_sphantong) player.storage.zhuSkill_sphantong=[]; - player.storage.zhuSkill_sphantong.add(skill); player.popup(skill,'wood'); game.log(player,'获得了技能','#g【'+get.translation(skill)+'】'); - var next=game.createEvent('sphantong_clear',false); - event.next.remove(next); - trigger.after.push(next); - next.player=player; - next.skill=skill; - next.setContent(function(){ - if(player.storage.zhuSkill_sphantong) player.storage.zhuSkill_sphantong.remove(event.skill); - }) }, }, sphuangen:{ - trigger:{global:'useCardToPlayered'}, + trigger:{global:'useCardToPlayered'}, filter:function(event,player){ if(!event.isFirstTarget) return false; if(get.type(event.card)!='trick') return false; @@ -5436,7 +5465,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, enable:'phaseUse', filterCard:{suit:'diamond'}, - filterTarget:true, + filterTarget:function(card,player,target){ + return target.canAddJudge({name:'yanxiao_card'}); + }, check:function(card){ return 7-get.value(card); }, diff --git a/character/old.js b/character/old.js index c03f2c07a..0e86e2529 100755 --- a/character/old.js +++ b/character/old.js @@ -520,7 +520,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, old_guhuo:{ audio:2, - group:['old_guhuo_guess'], enable:['chooseToUse','chooseToRespond'], hiddenCard:function(player,name){ return (lib.inpile.contains(name)&&player.countCards('hs')>0); @@ -636,6 +635,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, precontent:function(){ player.logSkill('old_guhuo'); + player.addTempSkill('old_guhuo_guess'); var card=event.result.cards[0]; event.result.card.suit=get.suit(card); event.result.card.number=get.number(card); diff --git a/character/refresh.js b/character/refresh.js index 86f73e59e..3db54d664 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -3850,6 +3850,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.loseMaxHp(); player.addSkill('rejianyan'); }, + derivation:'rejianyan', }, rejianyan:{ audio:2, @@ -10741,6 +10742,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, precontent:function(){ player.logSkill('reguhuo'); + player.addTempSkill('reguhuo_guess'); var card=event.result.cards[0]; event.result.card.suit=get.suit(card); event.result.card.number=get.number(card); @@ -10764,7 +10766,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, threaten:1.3, }, - group:['reguhuo_shan','reguhuo_wuxie','reguhuo_guess'], + group:['reguhuo_shan','reguhuo_wuxie'], }, reguhuo_shan:{ enable:['chooseToUse','chooseToRespond'], @@ -10801,6 +10803,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, precontent:function(){ player.logSkill('reguhuo'); + player.addTempSkill('reguhuo_guess'); var card=event.result.cards[0]; event.result.card.suit=get.suit(card); event.result.card.number=get.number(card); @@ -10841,6 +10844,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, precontent:function(){ player.logSkill('reguhuo'); + player.addTempSkill('reguhuo_guess'); var card=event.result.cards[0]; event.result.card.suit=get.suit(card); event.result.card.number=get.number(card); @@ -10968,7 +10972,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 1' if(!result.bool) target.loseHp(); 'step 2' - target.addSkill('rechanyuan'); + target.addSkillLog('rechanyuan'); if(targets.length) event.goto(0); }, }, @@ -10976,13 +10980,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){ reguhuo_phase:{}, rechanyuan:{ init:function(player,skill){ + if(player.hp<=1){ + player.logSkill(skill); + player.addSkill('rechanyuan_log'); + } player.addSkillBlocker(skill); }, onremove:function(player,skill){ + player.removeSkill('rechanyuan_log'); player.removeSkillBlocker(skill); }, - charlotte:true, - locked:true, skillBlocker:function(skill,player){ return skill!='chanyuan'&&skill!='rechanyuan'&&!lib.skill[skill].charlotte&&player.hp<=1; }, @@ -10995,8 +11002,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }); if(list.length) str+=('
  • 失效技能:'+get.translation(list)) return str; + }, + }, + audio:2, + trigger:{player:'changeHp'}, + filter:function(event,player){ + return (player.hp<=1)!=(player.hasSkill('rechanyuan_log')); + }, + direct:true, + locked:true, + content:function(){ + if(player.hp<=1){ + player.logSkill('rechanyuan'); + player.addSkill('rechanyuan_log'); } - } + else player.removeSkill('rechanyuan_log'); + }, + subSkill:{ + log:{charlotte:true}, + }, }, botu:{ audio:2, diff --git a/character/shenhua.js b/character/shenhua.js index 41bacdd13..58cecb125 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -1117,17 +1117,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 1' switch(result.control){ case 'equip1': - player.addTempSkill('drlt_jueyan1',{player:'phaseAfter'}); + player.addTempSkill('drlt_jueyan1'); break; case 'equip2': player.draw(3); - player.addTempSkill('drlt_jueyan3',{player:'phaseAfter'}); + player.addTempSkill('drlt_jueyan3'); break; case 'equip3_4': - player.addTempSkill('drlt_jueyan2',{player:'phaseAfter'}); + player.addTempSkill('drlt_jueyan2'); break; case 'equip5': - player.addTempSkill('rejizhi',{player:'phaseAfter'}); + player.addTempSkill('rejizhi'); break; } }, @@ -1146,6 +1146,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, }, + derivation:'rejizhi', }, 'drlt_jueyan1':{ mod:{ @@ -7457,7 +7458,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xinfu_guhuo:{ audio:'guhuo_guess', derivation:['chanyuan'], - group:['guhuo_guess'], enable:['chooseToUse','chooseToRespond'], hiddenCard:function(player,name){ return (lib.inpile.contains(name)&&player.countCards('hs')>0&&!player.hasSkill('guhuo_phase')); @@ -7553,6 +7553,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, precontent:function(){ player.logSkill('xinfu_guhuo'); + player.addTempSkill('guhuo_guess'); var card=event.result.cards[0]; event.result.card.suit=get.suit(card); event.result.card.number=get.number(card); @@ -7708,22 +7709,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, chanyuan:{ init:function(player,skill){ + if(player.hp==1) player.logSkill(skill); player.addSkillBlocker(skill); }, onremove:function(player,skill){ player.removeSkillBlocker(skill); }, - charlotte:true, - locked:true, skillBlocker:function(skill,player){ return skill!='chanyuan'&&skill!='rechanyuan'&&!lib.skill[skill].charlotte&&player.hp==1; }, - audio:2, - trigger:{player:'changeHp'}, - filter:function(event,player){ - return event.num<0&&player.hp==1; - }, - content:function(){}, mark:true, intro:{ content:function(storage,player,skill){ @@ -7733,8 +7727,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }); if(list.length) str+=('
  • 失效技能:'+get.translation(list)) return str; - } - } + }, + }, + audio:2, + trigger:{player:'changeHp'}, + filter:function(event,player){ + return player.hp==1; + }, + forced:true, + content:function(){}, }, guhuo_phase:{}, }, @@ -7873,6 +7874,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ drlt_wanglie:"往烈", drlt_wanglie_info:"①出牌阶段,你使用的第一张牌无距离限制。②当你于出牌阶段内使用牌时,你可以令此牌不能被响应,然后你于本阶段内不能再使用牌。", "drlt_xiongluan":"雄乱", + drlt_xiongluan1:'雄乱', "drlt_xiongluan_info":"限定技,出牌阶段,你可以废除你的判定区和装备区,然后指定一名其他角色。直到回合结束,你对其使用牌无距离和次数限制,其不能使用和打出手牌。", "drlt_congjian":"从谏", "drlt_congjian_info":"当你成为锦囊牌的目标时,若此牌的目标数大于1,则你可以交给其中一名其他目标角色一张牌,然后摸一张牌,若你给出的是装备牌,改为摸两张牌。", diff --git a/character/sp.js b/character/sp.js index 0291a1152..04e6f9cc9 100755 --- a/character/sp.js +++ b/character/sp.js @@ -21849,12 +21849,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, moukui:{ + audio:2, + audioname:['sp_mushun'], trigger:{player:'useCardToPlayered'}, direct:true, filter:function(event,player){ return event.card.name=='sha'; }, - audio:2, content:function(){ "step 0" var controls=['draw_card']; @@ -24247,7 +24248,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, xionghuo:{ marktext:"戾", - mark:true, intro:{ name:'暴戾', content:"mark", diff --git a/character/sp2.js b/character/sp2.js index a5ad7518e..621c5a0ff 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -3805,7 +3805,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ target:1, }, }, - derivation:['releiji','rebiyue','new_retuxi','mingce','xinzhiyan','nhyinbing','nhhuoqi','nhguizhu','nhxianshou','nhlundao','nhguanyue','nhyanzheng'], + derivation:['releiji','rebiyue','new_retuxi','remingce','xinzhiyan','nhyinbing','nhhuoqi','nhguizhu','nhxianshou','nhlundao','nhguanyue','nhyanzheng'], subSkill:{ clear:{ onremove:function(player){ diff --git a/character/yijiang.js b/character/yijiang.js index 5ade1e333..c9d9c76e5 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -2043,6 +2043,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.addTempSkill('paoxiao'); } }, + derivation:['wusheng','paoxiao'], }, shiyong:{ audio:2, @@ -13779,7 +13780,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'phaseZhunbeiBegin'}, forced:true, unique:true, - derivation:['zyexin','zzili'], + derivation:['zyexin','zzili','zpaiyi'], filter:function(event,player){ return player.countCards('e')>=2; },