diff --git a/audio/die/guozhao.mp3 b/audio/die/guozhao.mp3 new file mode 100644 index 000000000..5996a6429 Binary files /dev/null and b/audio/die/guozhao.mp3 differ diff --git a/audio/skill/pianchong1.mp3 b/audio/skill/pianchong1.mp3 new file mode 100644 index 000000000..96918c9c8 Binary files /dev/null and b/audio/skill/pianchong1.mp3 differ diff --git a/audio/skill/pianchong2.mp3 b/audio/skill/pianchong2.mp3 new file mode 100644 index 000000000..d63977732 Binary files /dev/null and b/audio/skill/pianchong2.mp3 differ diff --git a/audio/skill/zunwei1.mp3 b/audio/skill/zunwei1.mp3 new file mode 100644 index 000000000..357f47ac5 Binary files /dev/null and b/audio/skill/zunwei1.mp3 differ diff --git a/audio/skill/zunwei2.mp3 b/audio/skill/zunwei2.mp3 new file mode 100644 index 000000000..357f47ac5 Binary files /dev/null and b/audio/skill/zunwei2.mp3 differ diff --git a/character/diy.js b/character/diy.js index 6a0f6dd26..42d7e9586 100755 --- a/character/diy.js +++ b/character/diy.js @@ -356,7 +356,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(player.countDisabled()>=1) return true; }, cardUsable:function(card,player){ - if(player.countDisabled()>=2) return true; + if(player.countDisabled()>=2) return Infinity; }, }, trigger:{player:'useCard2'}, diff --git a/character/rank.js b/character/rank.js index 12073c6a7..cbac17f0d 100644 --- a/character/rank.js +++ b/character/rank.js @@ -25,6 +25,7 @@ window.noname_character_rank={ 'chunyuqiong', 'yangbiao', 'zhaoxiang', + 'guozhao', 'sp_xiahoushi', 'ns_zhangwei', 'key_mio', @@ -1081,6 +1082,7 @@ window.noname_character_rank={ 're_zuoci', 'ns_zhangwei', 'ol_yuanshao', + 'guozhao', 'key_yuri', 'key_yuzuru', 'sp_key_kanade', diff --git a/character/refresh.js b/character/refresh.js index d77e8656c..f608f8c73 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -8640,7 +8640,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ reenyuan2:'恩怨', reenyuan_info:'当你获得一名其他角色的至少两张牌后,你可以令其摸一张牌。当你受到1点伤害后,你可令伤害来源选择一项:①失去1点体力。②交给你一张手牌。若此牌不为♥,则你摸一张牌。', rexuanhuo:'眩惑', - rexuanhuo_info:'摸牌阶段结束时,你可以交给一名其他角色两张手牌,然后该角色选择一项:1. 视为对你选择的另一名角色使用任意一种【杀】,2. 交给你所有手牌。', + rexuanhuo_info:'摸牌阶段结束时,你可以交给一名其他角色两张手牌,然后该角色选择一项:1. 视为对你选择的另一名角色使用任意一种【杀】或【决斗】,2. 交给你所有手牌。', re_fuhuanghou:'界伏皇后', reqiuyuan:'求援', reqiuyuan_info:'当你成为【杀】的目标时,你可选择另一名其他角色。除非该角色交给你一张除【杀】以外的基本牌,否则其也成为此【杀】的目标且该角色不能响应此【杀】。', diff --git a/character/sp2.js b/character/sp2.js index d93447143..dab219309 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -12,6 +12,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ jin_simashi:['male','jin','3/4',['taoyin','yimie','ruilve','tairan'],['hiddenSkill','zhu']], zhanghuyuechen:['male','jin',4,['xijue']], duyu:['male','jin',4,['sanchen','zhaotao']], + guozhao:['female','wei',3,['pianchong','zunwei']], hanfu:['male','qun',4,['hfjieying','weipo']], re_quyi:['male','qun',4,['refuqi','jiaozi']], dongxie:['female','qun','3/4',['juntun','jiaojie']], @@ -93,7 +94,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"], sp_huangjin:['liuhong','zhujun','re_hejin','re_hansui','liubian'], sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'], - sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_yujin','re_maliang','xin_baosanniang','re_xinxianying','dongxie'], + sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_yujin','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao'], sp_mini:["mini_sunquan","mini_zuoci","mini_jiangwei","mini_diaochan","mini_zhangchunhua"], sp_luanwu:["ns_lijue","ns_zhangji","ns_fanchou"], sp_yongjian:["ns_chendao","yj_caoang"], @@ -101,6 +102,245 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, skill:{ + pianchong:{ + audio:2, + trigger:{player:'phaseDrawBegin1'}, + filter:function(event,player){ + return !event.numFixed; + }, + content:function(){ + 'step 0' + trigger.changeToZero(); + var cards=[]; + var card1=get.cardPile2(function(card){ + return get.color(card,false)=='red'; + }); + if(card1) cards.push(card1); + var card2=get.cardPile2(function(card){ + return get.color(card,false)=='black'; + }); + if(card2) cards.push(card2); + if(cards.length) player.gain(cards,'gain2'); + 'step 1' + game.updateRoundNumber(); + player.chooseControl('red','black').set('prompt','偏宠:请选择一种颜色。直至你的下回合开始时,失去该颜色的一张牌后,从牌堆获得另一种颜色的一张牌。').set('ai',function(){ + var red=0,black=0; + var player=_status.event.player; + var cards=player.getCards('he'); + for(var i of cards){ + var add=1; + var color=get.color(i,player); + if(get.position(i)=='e') add=0.5; + else if(get.name(i,player)!='sha'&&player.hasValueTarget(i)) add=1.5; + if(color=='red') red+=add; + else black+=add; + } + if(black>red) return 'black'; + return 'red'; + }); + 'step 2' + player.storage.pianchong2=result.control; + player.addTempSkill('pianchong2',{player:'phaseBeginStart'}); + player.popup(result.control,result.control=='red'?'fire':'thunder'); + game.log(player,'声明了','#y'+get.translation(result.control)); + }, + ai:{ + threaten:4.8, + }, + }, + pianchong2:{ + audio:'pianchong', + trigger:{ + player:'loseAfter', + global:['equipAfter','addJudgeAfter','gainAfter'], + }, + forced:true, + charlotte:true, + onremove:true, + filter:function(event,player){ + var evt=event.getl(player); + if(!evt||!evt.cards2||!evt.cards2.length) return false; + for(var i of evt.cards2){ + if(get.color(i,player)==player.storage.pianchong2) return true; + } + return false; + }, + content:function(){ + 'step 0' + var num=trigger.getl(player).cards2.filter(function(card){ + return get.color(card,player)==player.storage.pianchong2; + }).length; + var cards=[]; + while(num--){ + var card=get.cardPile2(function(card){ + return !cards.contains(card)&&get.color(card,false)!=player.storage.pianchong2; + }); + if(card) cards.push(card); + else break; + } + if(cards.length) player.gain(cards,'gain2'); + else event.finish(); + 'step 1' + game.updateRoundNumber(); + }, + mark:true, + intro:{ + content:'失去一张$牌后,从牌堆中获得一张与此牌颜色不同的牌', + }, + }, + zunwei:{ + audio:2, + enable:'phaseUse', + usable:1, + filter:function(event,player){ + return !player.storage.zunwei||player.storage.zunwei.length<3; + }, + chooseButton:{ + dialog:function(event,player){ + var list=[ + '选择体力值大于你的一名角色', + '选择手牌数大于你的一名角色', + '选择装备数大于你的一名角色', + ]; + var choiceList=ui.create.dialog('尊位:清选择一项','forcebutton','hidden'); + for(var i=0;iplayer.hp; + }, + content:function(){ + player.recover(target.hp-player.hp); + if(!player.storage.zunwei) player.storage.zunwei=[]; + player.storage.zunwei.add(0); + }, + ai:{ + order:10, + result:{ + player:function(player,target){ + return (Math.min(target.hp,player.maxHp)-player.hp); + }, + }, + }, + }, + { + filterTarget:function(card,player,target){ + return target.countCards('h')>player.countCards('h'); + }, + content:function(){ + player.draw(Math.min(5,target.countCards('h')-player.countCards('h'))); + if(!player.storage.zunwei) player.storage.zunwei=[]; + player.storage.zunwei.add(1); + }, + ai:{ + order:10, + result:{ + player:function(player,target){ + return Math.min(5,target.countCards('h')-player.countCards('h')); + }, + }, + }, + }, + { + filterTarget:function(card,player,target){ + return target.countCards('e')>player.countCards('e'); + }, + content:function(){ + 'step 0' + if(!player.storage.zunwei) player.storage.zunwei=[]; + player.storage.zunwei.add(2); + event.num=1; + 'step 1' + var type='equip'+num; + if(!player.isEmpty(type)) return; + var card=get.cardPile2(function(card){ + return get.subtype(card,false)==type&&player.canUse(card,player); + }); + if(card) player.chooseUseTarget(card,true).nopopup=true; + 'step 2' + game.updateRoundNumber(); + event.num++; + if(event.num<=5&&target.isAlive()&&player.countCards('e')