diff --git a/card/extra.js b/card/extra.js index 5c4d0cb0f..198450928 100644 --- a/card/extra.js +++ b/card/extra.js @@ -965,8 +965,15 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, content:function(){ trigger.card.nature='fire'; - player.addSkill('zhuque_skill2'); - player.storage.zhuque_skill=trigger.card; + if(get.itemtype(trigger.card)=='card'){ + var next=game.createEvent('zhuque_clear'); + next.card=trigger.card; + event.next.remove(next); + trigger.after.push(next); + next.setContent(function(){ + delete card.nature; + }); + } } }, zhuque_skill2:{ diff --git a/card/guozhan.js b/card/guozhan.js index 1a6100ef6..4f9ed3fc4 100644 --- a/card/guozhan.js +++ b/card/guozhan.js @@ -42,7 +42,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){ fullskin:true, type:'equip', subtype:'equip2', - cardimage:'suolianjia', skills:['minguangkai_cancel','minguangkai_link'], ai:{ basic:{ @@ -708,7 +707,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ target:function(player,target){ var hs=target.getCards('h'); if(hs.length<=1){ - if(target==player&&hs[0].name=='yiyi'){ + if(target==player&&(hs.length==0||hs[0].name=='yiyi')){ return 0; } return 0.3; diff --git a/card/mtg.js b/card/mtg.js index 313e4d4e4..1fa704995 100644 --- a/card/mtg.js +++ b/card/mtg.js @@ -96,6 +96,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ type:'land', fullborder:'wood', enable:function(card,player){ + if(!lib.cardPack.mode_derivation||!lib.cardPack.mode_derivation.length) return false; return !player.hasSkill('land_used'); }, notarget:true, @@ -574,7 +575,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, mtg_linzhongjianta_skill:{ enable:'chooseToUse', - filterCard:true, + filterCard:function(card){ + return get.type(card)=='basic'; + }, usable:1, viewAs:{name:'sha'}, viewAsFilter:function(player){ diff --git a/card/standard.js b/card/standard.js index e46ad6310..846f3691c 100644 --- a/card/standard.js +++ b/card/standard.js @@ -1891,7 +1891,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, content:function(){ "step 0" - event.bagua_skill=true; + trigger.bagua_skill=true; player.judge('bagua',function(card){return (get.color(card)=='red')?1.5:-0.5}); "step 1" if(result.judge>0){ @@ -2196,7 +2196,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){ if(event.wuxieresult){ var next=event.wuxieresult.useResult(event.wuxieresult2); if(event.triggername!='phaseJudge'){ - next.respondTo=[trigger.player,trigger.card]; + if(event.stateplayer&&event.statecard) next.respondTo=[event.stateplayer,event.statecard]; + else next.respondTo=[trigger.player,trigger.card]; } } 'step 9' @@ -2204,7 +2205,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ if(result.wuxied){ event.nowuxie=result.nowuxie; event.directHit=result.directHit; - if(!event.stateplayer&&event.wuxieresult)event.stateplayer=event.wuxieresult; + event.stateplayer=event.wuxieresult; if(event.wuxieresult2&&event.wuxieresult2.used){ event.statecard=event.wuxieresult2.used; } @@ -2212,8 +2213,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){ event.statecard=true; } event.state=!event.state; + event.goto(1); } - event.goto(1); + else event.settle(); } else if(event.list.length){ event.goto(2); diff --git a/character/extra.js b/character/extra.js index 23317e8d1..094c6c2f5 100755 --- a/character/extra.js +++ b/character/extra.js @@ -628,7 +628,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, jilue:{ unique:true, - group:['jilue_guicai','jilue_fangzhu','jilue_wansha','jilue_zhiheng','jilue_jizhi','rezhiheng_draw','jilue_jizhi_clear'] + group:['jilue_guicai','jilue_fangzhu','jilue_wansha','jilue_zhiheng','jilue_jizhi','jilue_jizhi_clear'] }, jilue_guicai:{ audio:true, @@ -740,7 +740,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return player.hasMark('renjie'); }, position:'he', - filterCard:true, + filterCard:lib.filter.cardDiscardable, + discard:false, + lose:false, + delay:0, selectCard:[1,Infinity], prompt:'弃置一枚“忍”,然后弃置任意张牌并摸等量的牌。若弃置了所有的手牌,则可以多摸一张牌。', check:function(card){ @@ -755,7 +758,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ 'step 0' player.removeMark('renjie',1); - event.num=player.hasSkill('rezhiheng_delay')?1:0; + player.discard(cards); + event.num=1; + var hs=player.getCards('h'); + if(!hs.length) event.num=0; + for(var i=0;i'; for(var i=1;i<7;i++){ str+=get.translation('qiaosi_c'+i); - if(i%3!=0) str+=' '; + if(i%3!=0) str+='  '; if(i==3) str+='
'; } ui.create.dialog(str,'forcebutton').videoId=id; @@ -624,7 +629,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - var fang=player.hp>=2&&player.countCards('h')<=player.hp+1; + var fang=player.countMark('fangquan2')==0&&player.hp>=2&&player.countCards('h')<=player.hp+1; player.chooseBool(get.prompt2('refangquan')).set('ai',function(){ if(!_status.event.fang) return false; return game.hasPlayer(function(target){ @@ -639,7 +644,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(result.bool){ player.logSkill('refangquan'); trigger.cancel(); - player.addSkill('fangquan2'); + player.addTempSkill('fangquan2','phaseAfter'); + player.addMark('fangquan2',1,false); player.addTempSkill('refangquan2'); //player.storage.fangquan=result.targets[0]; } @@ -807,7 +813,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(result.bool){ var target=result.targets[0]; event.target=target; - player.logSkill('xinfu_wuniang',target); + player.logSkill('meiyong',target); player.gainPlayerCard(target,'he',true); } else event.finish(); @@ -1679,6 +1685,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, translate:{ + old_liushan:'手杀刘禅', + old_yuanshao:'手杀袁绍', re_jikang:"手杀嵇康", old_bulianshi:'手杀步练师', old_caochun:'旧曹纯', @@ -1756,7 +1764,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ hujinding:'胡金定', re_liushan:'界刘禅', - re_sunben:'界孙策', + re_sunben:'界孙笨', re_zhangzhang:'界张昭张纮', rehunzi:'魂姿', rehunzi_info:'觉醒技,准备阶段,若你的体力值不大于2,你减1点体力上限,并获得技能〖英姿〗和〖英魂〗。', @@ -1799,6 +1807,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ //伊吹 风子 qiaosi_c6:' ', //仲村 ゆり + mobile_sunben:'那个男人', + //孙笨 } }; }); diff --git a/character/old.js b/character/old.js index cab42658e..ca27347f2 100755 --- a/character/old.js +++ b/character/old.js @@ -4,7 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ name:'old', characterSort:{ old:{ - old_shenhua:["yuji","zhangjiao","old_zhugezhan"], + old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_guanqiujian"], old_refresh:["old_zhangfei","old_huatuo"], old_yijiang1:["masu","xushu","fazheng","yujin","xin_yujin","old_xusheng","old_lingtong","ol_yujin"], old_yijiang2:["old_madai","old_zhonghui","old_wangyi","old_guanzhang","ol_liaohua"], @@ -12,11 +12,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan","ol_wuyi"], old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"], old_yijiang67:["ol_xinxianying","ol_zhangrang","ol_liuyu"], - old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai"], + old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong"], old_mobile:["old_caochun","old_majun"], }, }, character:{ + old_huangfusong:['male','qun',4,['fenyue']], old_majun:["male","wei",3,["xinfu_jingxie1","xinfu_qiaosi"],[]], old_zhangxingcai:['female','shu',3,['oldshenxian','qiangwu']], old_fuhuanghou:['female','qun',3,['oldzhuikong','oldqiuyuan']], @@ -64,6 +65,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ol_guohuai:['male','wei',4,['jingce']], ol_wuyi:['male','shu',4,['benxi']], ol_liuyu:['male','qun',2,['zongzuo','zhige']], + old_guanqiujian:["male","wei",4,["drlt_zhenrong","drlt_hongju"],[]], }, characterFilter:{ old_lingju:function(mode){ @@ -882,6 +884,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ol_liuyu:'OL刘虞', old_fuhuanghou:'旧伏皇后', old_caochong:'旧曹冲', + old_guanqiujian:'旧毌丘俭', + old_huangfusong:'旧皇甫嵩', old_fuhun:'父魂', old_fuhun_info:'摸牌阶段开始时,你可以放弃摸牌,改为从牌堆顶亮出两张牌并获得之,若亮出的牌颜色不同,你获得技能“武圣”、“咆哮”,直到回合结束。', diff --git a/character/refresh.js b/character/refresh.js index e6c3498cd..e3659fdef 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -8,7 +8,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ refresh_feng:['caoren','re_xiahouyuan','re_huangzhong','re_weiyan','re_xiaoqiao','zhoutai','re_zhangjiao','xin_yuji'], refresh_huo:["re_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","re_pangtong","xin_yuanshao","re_pangde"], refresh_lin:['re_zhurong','re_menghuo','re_dongzhuo','re_sunjian','re_caopi','re_xuhuang'], - refresh_shan:['re_dengai','re_jiangwei','re_caiwenji','re_sunben','re_liushan','re_zhangzhang','re_zuoci'], + refresh_shan:['re_dengai','re_jiangwei','re_caiwenji','re_liushan','re_zhangzhang','re_zuoci','re_sunce'], }, }, connect:true, @@ -60,7 +60,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ re_dianwei:["male","wei",4,["reqiangxi"],[]], re_yanwen:["male","qun",4,["reshuangxiong"],[]], re_pangtong:['male','shu',3,['xinlianhuan','niepan'],[]], - xin_yuanshao:['male','qun',4,['reluanji','xueyi'],['zhu']], + xin_yuanshao:['male','qun',4,['olluanji','olxueyi'],['zhu']], re_zhurong:['female','shu',4,['juxiang','relieren']], re_menghuo:['male','shu',4,['huoshou','rezaiqi']], re_dongzhuo:['male','qun',8,['rejiuchi','roulin','benghuai','baonue'],['zhu']], @@ -69,9 +69,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ re_dengai:['male','wei',4,['retuntian','zaoxian']], re_jiangwei:['male','shu',4,['retiaoxin','zhiji']], re_caiwenji:['female','qun',3,['rebeige','duanchang']], - re_liushan:['male','shu',3,['xiangle','refangquan','ruoyu'],['zhu']], - re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']], + re_liushan:['male','shu',3,['xiangle','olfangquan','olruoyu'],['zhu']], re_zhangzhang:['male','wu',3,['rezhijian','guzheng']], + + re_sunce:['male','wu',4,['jiang','olhunzi','olzhiba'],['zhu']], }, characterIntro:{ re_gongsunzan:'群雄之一。出身贵族,因母地位卑贱,只当了郡中小吏。他貌美,声音洪亮,机智善辩。后随卢植于缑氏山中读书,粗通经传。', @@ -87,6 +88,370 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sunben:['zhouyu','taishici','daqiao'], }, skill:{ + sishu:{ + trigger:{player:'phaseUseBegin'}, + direct:true, + content:function(){ + 'step 0' + player.chooseTarget(get.prompt2('sishu')).ai=function(target){ + var att=get.attitude(_status.event.player,target); + if(target.countMark('sishu2')%2==1) return -att; + return att; + } + 'step 1' + if(result.bool){ + var target=result.targets[0]; + player.logSkill('sishu',target) + target.addSkill('sishu2'); + target.addMark('sishu2',1,false); + } + }, + }, + sishu2:{ + charlotte:true, + marktext:'思', + intro:{ + name:'思蜀', + content:'本局游戏内计算【乐不思蜀】的效果时反转#次', + }, + mod:{ + judge:function(player,result){ + if(_status.event.card&&_status.event.card.name=='lebu'&&player.countMark('sishu2')%2==1){ + if(result.bool==false){ + result.bool=true; + } + else{ + result.bool=false; + } + } + } + }, + }, + olruoyu:{ + skillAnimation:true, + animationColor:'fire', + audio:2, + unique:true, + juexingji:true, + zhuSkill:true, + keepSkill:true, + derivation:['jijiang','sishu'], + trigger:{player:'phaseZhunbeiBegin'}, + forced:true, + filter:function(event,player){ + if(!player.hasZhuSkill('olruoyu')) return false; + if(player.storage.olruoyu) return false; + return player.isMinHp(); + }, + content:function(){ + 'step 0' + player.storage.olruoyu=true; + player.gainMaxHp(); + 'step 1' + player.recover(); + game.log(player,'获得了技能','#g【思蜀】','和','#g【激将】'); + player.addSkill('sishu'); + if(player.hasSkill('olruoyu')){ + player.addSkill('jijiang'); + } + else{ + player.addAdditionalSkill('olruoyu','jijiang'); + } + if(!player.isZhu){ + player.storage.zhuSkill_olruoyu=['jijiang']; + } + else{ + event.trigger('zhuUpdate'); + } + player.awakenSkill('olruoyu'); + } + }, + olfangquan:{ + audio:'refangquan', + trigger:{player:'phaseUseBefore'}, + filter:function(event,player){ + return player.countCards('h')>0&&!player.hasSkill('olfangquan3'); + }, + direct:true, + content:function(){ + "step 0" + var fang=player.countMark('olfangquan2')==0&&player.hp>=2&&player.countCards('h')<=player.hp+1; + player.chooseBool(get.prompt2('olfangquan')).set('ai',function(){ + if(!_status.event.fang) return false; + return game.hasPlayer(function(target){ + if(target.hasJudge('lebu')||target==player) return false; + if(get.attitude(player,target)>4){ + return (get.threaten(target)/Math.sqrt(target.hp+1)/Math.sqrt(target.countCards('h')+1)>0); + } + return false; + }); + }).set('fang',fang); + "step 1" + if(result.bool){ + player.logSkill('olfangquan'); + trigger.cancel(); + player.addSkill('olfangquan2'); + player.addMark('olfangquan2',1,false); + } + } + }, + olfangquan2:{ + trigger:{player:'phaseDiscardBegin'}, + forced:true, + popup:false, + audio:false, + onremove:true, + content:function(){ + "step 0" + event.count=player.countMark(event.name); + "step 1" + event.count--; + player.chooseToDiscard('是否弃置一张牌并令一名其他角色进行一个额外回合?').set('logSkill','olfangquan').ai=function(card){ + return 20-get.value(card); + }; + "step 2" + if(result.bool){ + player.chooseTarget(true,'请选择进行额外回合的目标角色',lib.filter.notMe).ai=function(target){ + if(target.hasJudge('lebu')) return -1; + if(get.attitude(player,target)>4){ + return get.threaten(target)/Math.sqrt(target.hp+1)/Math.sqrt(target.countCards('h')+1); + } + return -1; + }; + } + else event.finish(); + "step 3" + var target=result.targets[0]; + player.line(target,'fire'); + target.markSkillCharacter('olfangquan',player,'放权','进行一个额外回合'); + target.insertPhase(); + target.addSkill('olfangquan3'); + if(event.count>0) event.goto(1); + } + }, + olfangquan3:{ + trigger:{player:['phaseAfter','phaseCancelled']}, + forced:true, + popup:false, + audio:false, + content:function(){ + player.unmarkSkill('olfangquan'); + player.removeSkill('olfangquan3'); + } + }, + olluanji:{ + inherit:'luanji', + audio:'luanji', + line:false, + group:'olluanji_remove', + check:function(card){ + return 7-get.value(card); + }, + }, + olluanji_remove:{ + trigger:{player:'useCard2'}, + direct:true, + filter:function(event,player){ + return event.card.name=='wanjian'&&event.targets.length>0; + }, + line:false, + content:function(){ + 'step 0' + player.chooseTarget(get.prompt('olluanji'),'为'+get.translation(trigger.card)+'减少一个目标',function(card,player,target){ + return _status.event.targets.contains(target) + }).set('targets',trigger.targets).set('ai',function(target){ + var player=_status.event.player; + return -get.effect(target,_status.event.getTrigger().card,player,player) + }); + 'step 1' + if(result.bool){ + player.logSkill('olluanji',result.targets); + trigger.targets.remove(result.targets[0]); + } + }, + }, + olxueyi:{ + audio:'xueyi', + trigger:{global:'phaseBefore'}, + forced:true, + zhuSkill:true, + unique:true, + filter:function(event,player){ + return !player.storage.olxueyi_inited&&player.hasZhuSkill('olxueyi'); + }, + content:function(){ + player.storage.olxueyi_inited=true; + var num=game.countPlayer(function(current){ + return current.group=='qun'; + }) + if(num) player.addMark('olxueyi',num) + }, + marktext:'裔', + intro:{ + name2:'裔', + content:'mark', + }, + mod:{ + maxHandcard:function(player,num){ + if(player.hasZhuSkill('olxueyi')) return num+2*player.countMark('olxueyi'); + }, + }, + group:'olxueyi_draw', + }, + olxueyi_draw:{ + audio:'xueyi', + trigger:{player:'phaseBegin'}, + prompt2:'弃置一枚「裔」标记,然后摸一张牌', + check:function(event,player){ + return !player.hasJudge('lebu')&&player.getUseValue('wanjian')>0; + }, + filter:function(event,player){ + return player.hasZhuSkill('olxueyi')&&player.hasMark('olxueyi'); + }, + content:function(){ + player.removeMark('olxueyi',1); + player.draw(); + }, + }, + olhunzi:{ + audio:'hunzi', + inherit:'hunzi', + content:function(){ + player.loseMaxHp(); + player.recover(); + player.addSkill('reyingzi'); + player.addSkill('gzyinghun'); + game.log(player,'获得了技能','#g【英姿】','和','#g【英魂】'); + player.awakenSkill(event.name); + player.storage[event.name]=true; + } + }, + olzhiba:{ + audio:'zhiba', + unique:true, + zhuSkill:true, + global:'olzhiba2', + }, + olzhiba2:{ + ai:{ + order:1, + result:{ + target:function(player,target){ + if(player.hasZhuSkill('olzhiba')&&!player.hasSkill('olzhiba3')&&target.group=='wu'){ + if(player.countCards('h',function(card){ + var val=get.value(card); + if(val<0) return true; + if(val<=5){ + return card.number>=12; + } + if(val<=6){ + return card.number>=13; + } + return false; + })>0) return -1; + return 0; + } + else{ + if(player.countCards('h','du')&&get.attitude(player,target)<0) return -1; + if(player.countCards('h')<=player.hp) return 0; + var maxnum=0; + var cards2=target.getCards('h'); + for(var i=0;imaxnum){ + maxnum=cards2[i].number; + } + } + if(maxnum>10) maxnum=10; + if(maxnum<5&&cards2.length>1) maxnum=5; + var cards=player.getCards('h'); + for(var i=0;i0||target.countCards('h',function(card){ + var val=get.value(card); + if(val<0) return true; + if(val<=5){ + return card.number>=12; + } + if(val<=6){ + return card.number>=13; + } + return false; + })>0)).set('ai',function(){return _status.event.choice}); + } + else event._result={bool:true}; + 'step 3' + if(result.bool) event.getParent().zhiba_target=target; + else{ + game.log(target,'拒绝了',player,'的拼点请求'); + target.chat('拒绝'); + } + }, + content:function(){ + 'step 0' + event.source=event.getParent().zhiba_target; + if(!event.source){ + event.finish(); + } + 'step 1' + player.chooseToCompare(target).set('small',target==source&&get.attitude(player,target)>0); + 'step 2' + if(player==source&&result.bool||target==source&&!result.bool){ + event.cards=[result.player,result.target].filterInD('d'); + if(!event.cards.length) event.finish(); + else source.chooseControl('ok','cancel2').set('dialog',['是否获得拼点牌?',event.cards]).set('ai',function(){ + if(get.value(event.cards,source,'raw')<=0) return false; + return true; + }); + } + else event.finish(); + 'step 3' + if(result.control!='cancel2') source.gain(event.cards,'gain2','log'); + }, + }, + olzhiba3:{}, rehuashen:{ //mode:['identity','single','doudizhu'], audio:2, @@ -235,7 +600,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player:['phaseBegin','phaseEnd','rehuashen'], }, filter:function(event,player,name){ - if(name=='phaseBegin'&&game.phaseNumber==1) return false; + //if(name=='phaseBegin'&&game.phaseNumber==1) return false; return player.storage.rehuashen&&player.storage.rehuashen.character.length>0; }, addHuashen:function(player){ @@ -250,7 +615,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ list.remove(current.name); list.remove(current.name1); list.remove(current.name2); - if(current.storage.rehuashen&¤t.storage.rehuashen.character) list.removeArray(current.rehuashen.character) + if(current.storage.rehuashen&¤t.storage.rehuashen.character) list.removeArray(current.storage.rehuashen.character) }); _status.characterlist=list; } @@ -2312,7 +2677,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ enable:'phaseUse', usable:1, position:'he', - filterCard:true, + filterCard:lib.filter.cardDiscardable, + discard:false, + lose:false, + delay:0, selectCard:[1,Infinity], check:function(card){ var player=_status.event.player; @@ -2325,11 +2693,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - event.num=player.hasSkill('rezhiheng_delay')?1:0; + player.discard(cards); + event.num=1; + var hs=player.getCards('h'); + if(!hs.length) event.num=0; + for(var i=0;i②当你不因〖暴虐〗或〖助祭〗而进行的判定的判定牌生效后,若结果为:黑桃,你可对一名其他角色造成2点雷电伤害;梅花:你回复1点体力并可对一名其他其他角色造成1点雷电伤害。', diff --git a/character/shenhua.js b/character/shenhua.js index 8daddaf4c..963d78279 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -62,7 +62,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "yl_luzhi":["male","qun",3,["nzry_mingren","nzry_zhenliang"],["die_audio"]], "kuailiangkuaiyue":["male","wei",3,["nzry_jianxiang","nzry_shenshi"],[]], - "guanqiujian":["male","wei",4,["drlt_zhenrong","drlt_hongju"],[]], + guanqiujian:['male','wei',4,['zhengrong','hongju']], "haozhao":["male","wei",4,["drlt_zhenggu"],[]], "zhugezhan":["male","shu",3,["xinfu_zuilun","xinfu_fuyin"],[]], "lukang":["male","wu",4,["drlt_qianjie","drlt_jueyan","drlt_poshi"],[]], @@ -140,6 +140,183 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "chendao":"陈到,字叔至,生卒年不详,豫州汝南(今河南驻马店平舆县)人。三国时期蜀汉将领,刘备帐下白毦兵统领,名位常亚于赵云,以忠勇著称。蜀汉建兴年间,任征西将军、永安都督,封亭侯。在任期间去世。", }, skill:{ + //新毌丘俭 + zhengrong:{ + trigger:{player:'useCardToPlayered'}, + direct:true, + audio:'drlt_zhenrong', + filter:function(event,player){ + if(!event.isFirstTarget) return false; + if(!['basic','trick'].contains(get.type(event.card))) return false; + if(get.tag(event.card,'damage')) return game.hasPlayer(function(current){ + return event.targets.contains(current)&¤t.countCards('h')>=player.countCards('h')&¤t.countCards('he')>0; + }); + return false; + }, + content:function(){ + 'step 0' + player.chooseTarget(get.prompt('zhengrong'),'将一名手牌数不小于你的目标角色的一张牌置于你的武将牌上,成为「荣」',function(card,player,target){ + return _status.event.targets.contains(target)&&target.countCards('h')>=player.countCards('h')&&target.countCards('he')>0; + }).set('ai',function(target){ + return (1-get.attitude(_status.event.player,target))/target.countCards('he'); + }).set('targets',trigger.targets); + 'step 1' + if(result.bool){ + var target=result.targets[0]; + event.target=result.targets[0]; + player.logSkill('zhengrong',target); + player.choosePlayerCard(target,'he').ai=get.buttonValue; + } + else event.finish(); + 'step 2' + if(result.bool){ + var card=result.links[0]; + game.log(player,'选择了',card); + target.$give(card,player,false); + target.lose(card,ui.special,'toStorage'); + if(!player.storage.zhengrong) player.storage.zhengrong=[]; + player.storage.zhengrong.push(card); + player.markSkill('zhengrong'); + } + }, + marktext:'荣', + intro:{ + content:'cards', + onunmark:'throw', + }, + }, + hongju:{ + trigger:{player:'phaseZhunbeiBegin'}, + audio:'drlt_hongju', + forced:true, + unique:true, + juexingji:true, + skillAnimation:true, + animationColor:'thunder', + derivation:'qingce', + filter:function(event,player){ + return player.storage.zhengrong&&player.storage.zhengrong.length>=3; + }, + content:function(){ + 'step 0' + player.awakenSkill('hongju'); + if(player.countCards('h')==0) event.goto(2); + else{ + var dialog=['请选择要交换的手牌和「荣」,或点「取消」','
「征荣」牌
',player.storage.zhengrong,'
手牌区
',player.getCards('h')]; + var next=player.chooseButton(dialog); + next.set('filterButton',function(button){ + var ss=_status.event.player.storage.zhengrong; + var hs=_status.event.player.getCards('h'); + var sn=0; + var hn=0; + var ub=ui.selected.buttons; + for(var i=0;i=hs.length&&ss.contains(button.link)||hn>=ss.length&&hs.contains(button.link)); + }); + next.set('selectButton',function(){ + if(ui.selected.buttons.length==0) return 2; + var ss=_status.event.player.storage.zhengrong; + var hs=_status.event.player.getCards('h'); + var sn=0; + var hn=0; + var ub=ui.selected.buttons; + for(var i=0;i0; + }, + chooseButton:{ + dialog:function(event,player){ + return ui.create.dialog('请选择要获得的「荣」',player.storage.zhengrong,'hidden'); + }, + backup:function(links,player){ + return { + card:links[0], + delay:0, + audio:'drlt_zhengrong', + content:lib.skill.qingce.contentx, + } + } + }, + contentx:function(){ + 'step 0' + var card=lib.skill.qingce_backup.card; + player.gain(card,'gain2','log','fromStorage'); + player.storage.zhengrong.remove(card); + player[player.storage.zhengrong.length>0?'markSkill':'unmarkSkill']('zhengrong'); + 'step 1' + if(player.countCards('h')>0) player.chooseToDiscard('h',true); + else event.finish(); + 'step 2' + var targets=game.filterPlayer(function(current){ + return result&&result.bool&¤t.countCards('ej')>0; + }) + if(!targets.length){event.finish();return} + player.chooseTarget(true,'请选择一名目标角色,弃置其装备区或判定区内的一张牌',function(card,player,target){ + return _status.event.targets.contains(target); + }).set('targets',targets).set('ai',function(target){ + var att=get.attitude(_status.event.player,target); + if(target.countCards('j')>0&&att>0) return 2*att; + return target.countCards('e')>0?-att:0; + }); + 'step 3' + if(result.bool){ + player.line(result.targets[0],'thunder'); + player.discardPlayerCard('ej',true,result.targets[0]); + } + }, + ai:{ + order:8, + result:{ + player:function(player){ + if(game.hasPlayer(function(current){ + var att=get.attitude(player,current); + if((att>0&¤t.countCards('j')>0)||(att<0&¤t.countCards('e')>0)) return true; + return false; + })) return 1; + return 0; + }, + }, + }, + }, //阴雷 "drlt_zhenrong":{ init:function (player,skill){ @@ -246,7 +423,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return player.storage.drlt_zhenrong&&player.storage.drlt_zhenrong.length>0; }, filterTarget:function(card,player,target){ - return target.countCards('hej')>0; + return target.countDiscardableCards(player,'ej')>0; }, content:function(){ 'step 0' @@ -261,7 +438,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }; player.syncStorage('drlt_zhenrong'); player.$throw(cards); - player.discardPlayerCard(target,'hej',1); + player.discardPlayerCard(target,'ej',1,true); }; }, ai:{ @@ -842,7 +1019,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "drlt_wanglie":{ mod:{ targetInRange:function (card,player,target,now){ - if(!player.countUsed()) return true; + if(game.online){ + if(!player.countUsed()) return true; + } + else{ + var evt=_status.event.getParent('phaseUse'); + if(evt&&evt.name=='phaseUse'&&player.getHistory('useCard',function(evt2){ + return evt2.getParent('phaseUse')==evt + }).length==0) return true; + } }, }, audio:2, @@ -850,7 +1035,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player:"useCard", }, filter:function (event,player){ - return _status.currentPhase==player; + return player.isPhaseUsing()&&(event.card.name=='sha'||get.type(event.card)=='trick'); }, check:function(trigger,player){ if(player.countCards('h')<=player.hp+1&&((get.type(trigger.card)=='trick'&&game.countPlayer(function(current){return get.attitude(current,player)<=0&¤t.countCards('h',{name:'wuxie'})})>0)||trigger.card.name=='sha')) return true; @@ -1374,9 +1559,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, forced:true, filter:function (event,player){ - return player.getHistory('useCard',function(evt){ + return (player.getHistory('useCard',function(evt){ return evt.getParent('phaseUse')==event; - })1})&&game.hasPlayer(function(target){ + }).length1}))&&game.hasPlayer(function(target){ return get.distance(target,player,'attack')>1&&target.countDiscardableCards(player,'he'); }); }, @@ -1524,11 +1709,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ai:{ reverseOrder:true, skillTagFilter:function(player){ - if(player.getHistory('useCard').length) return false; + if(player.getHistory('useCard',function(evt){ + return get.type(evt.card)=='equip'; + }).length>0) return false; }, effect:{ target:function(card,player,target){ - if(get.type(card)=='equip'&&(!player.getHistory('useCard').length)&&get.equipResult(player,target,card.name)<=0) return [1,3]; + if(get.type(card)=='equip'&&!player.getHistory('useCard',function(evt){ + return get.type(evt.card)=='equip' + }).length==0) return [1,3]; }, }, threaten:2.4, @@ -1554,28 +1743,40 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return false; }, - check:function (event,player){ + check:function (event,player){ if(get.type(event.card)=='equip'){ - return get.equipResult(player,player,event.card.name)<=0; + if(get.subtype(event.card)=='equip6') return true; + if(get.equipResult(player,event.target,event.card.name)<=0) return true; + var eff1=player.getUseValue(event.card); + var subtype=get.subtype(event.card); + return player.countCards('h',function(card){ + return get.subtype(card)==subtype&&player.getUseValue(card)>=eff1; + })>0; } return true; }, content:function(){ "step 0" - //player.storage.nzry_shicai.push(get.type(trigger.card,'trick')); - for(var i=0;i1){ + player.chooseButton(true,event.cards.length,['按顺序将卡牌置于牌堆顶(先选择的在上)',event.cards]).set('ai',function(button){ + var value=get.value(button.link); + if(_status.event.reverse) return value; + return -value; + }).set('reverse',((_status.currentPhase&&_status.currentPhase.next)?get.attitude(player,_status.currentPhase.next)>0:false)) + } + "step 1" + if(result.bool&&result.links&&result.links.length) cards=result.links.slice(0); + while(cards.length){ + var card=cards.pop(); + if(get.position(card,true)=='o'){ + card.fix(); + ui.cardPile.insertBefore(card,ui.cardPile.firstChild); + game.log(player,'将',card,'置于牌堆顶'); } - }; + } game.updateRoundNumber(); player.draw(); - "step 1" - if(event.triggername=='useCardToTargeted'){ - trigger.getParent().excluded.push(player); - } }, }, "nzry_cunmu":{ @@ -1697,13 +1898,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - player.chooseCard('请选择发动【贞良】的牌',Math.max(Math.abs(target.hp-player.hp),1),'he',{color:get.color(player.storage.nzry_mingren[0])},true).set('ai',function(card){ + player.chooseToDiscard('请选择发动【贞良】的牌',Math.max(Math.abs(target.hp-player.hp),1),'he',{color:get.color(player.storage.nzry_mingren[0])},true).set('ai',function(card){ return 6-get.value(card); }); 'step 1' if(result.bool){ player.storage.nzry_zhenliang=true; - player.discard(result.cards); target.damage('nocard'); }; }, @@ -1889,7 +2089,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, xinjushou:{ - audio:'jushou', + audio:2, trigger:{player:'phaseJieshuBegin'}, content:function(){ 'step 0' @@ -1921,7 +2121,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, xinjiewei:{ - audio:'yanzheng', + audio:2, enable:'chooseToUse', filterCard:true, position:'e', @@ -2477,7 +2677,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, tiaoxin:{ audio:2, - audioname:['sp_jiangwei','xiahouba','re_jiangwei'], + audioname:['sp_jiangwei','xiahouba','re_jiangwei','gz_jiangwei'], enable:'phaseUse', usable:1, filterTarget:function(card,player,target){ @@ -2595,7 +2795,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - var fang=player.hp>=2&&player.countCards('h')<=player.hp+1; + var fang=player.countMark('fangquan2')==0&&player.hp>=2&&player.countCards('h')<=player.hp+1; player.chooseBool(get.prompt2('fangquan')).set('ai',function(){ if(!_status.event.fang) return false; return game.hasPlayer(function(target){ @@ -2611,6 +2811,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.logSkill('fangquan'); trigger.cancel(); player.addSkill('fangquan2'); + player.addMark('fangquan2',1,false); //player.storage.fangquan=result.targets[0]; } } @@ -2621,12 +2822,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){ popup:false, audio:false, //priority:-50, + onremove:true, content:function(){ "step 0" + event.count=player.countMark(event.name); + "step 1" + event.count--; player.chooseToDiscard('是否弃置一张牌并令一名其他角色进行一个额外回合?').set('logSkill',player.name=='re_liushan'?'refangquan':'fangquan').ai=function(card){ return 20-get.value(card); }; - "step 1" + "step 2" if(result.bool){ player.chooseTarget(true,'请选择进行额外回合的目标角色',lib.filter.notMe).ai=function(target){ if(target.hasJudge('lebu')) return -1; @@ -2637,14 +2842,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }; } else event.finish(); - "step 2" + "step 3" var target=result.targets[0]; player.line(target,'fire'); target.markSkillCharacter('fangquan',player,'放权','进行一个额外回合'); target.insertPhase(); target.addSkill('fangquan3'); - player.removeSkill('fangquan2'); - //delete player.storage.fangquan; + if(event.count>0) event.goto(1); } }, fangquan3:{ @@ -3008,7 +3212,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, jixi:{ audio:2, - audioname:['re_dengai'], + audioname:['re_dengai','gz_dengai'], enable:'phaseUse', filter:function(event,player){ return player.storage.tuntian.length>0; @@ -3536,7 +3740,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, trigger:{player:['phaseBegin','phaseEnd','huashenStart']}, filter:function(event,player,name){ - if(name=='phaseBegin'&&game.phaseNumber==1) return false; + //if(name=='phaseBegin'&&game.phaseNumber==1) return false; return true; }, //priority:50, @@ -4328,7 +4532,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, gzyinghun:{ audio:'yinghun', - audioname:['sunce','re_sunben'], + audioname:['re_sunjian','sunce','re_sunben'], trigger:{player:'phaseZhunbeiBegin'}, filter:function(event,player){ return player.getDamagedHp()>0; @@ -6020,7 +6224,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, gzbuqu:{ - audio:'buqu', + audio:2, trigger:{player:'changeHp'}, filter:function(event,player){ return player.hp<=0&&event.num<0; @@ -6573,7 +6777,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "drlt_hongju":"鸿举", "drlt_hongju_info":"觉醒技,准备阶段,若“荣”的数量大于或等于3且场上有角色死亡,则你可以用任意张手牌替换等量的“荣”,然后扣减一点体力上限并获得技能“清侧”", "drlt_qingce":"清侧", - "drlt_qingce_info":"出牌阶段,你可以移去一张“荣”,然后弃置一名角色区域内的一张牌", + "drlt_qingce_info":"出牌阶段,你可以移去一张“荣”,然后弃置一名角色装备区或判定区内的一张牌。", + + zhengrong:'征荣', + hongju:'鸿举', + qingce:'清侧', + qingce_backup:'清侧', + zhengrong_info:'当你使用带有「伤害」标签的基本牌或锦囊牌指定目标后,你可以将一名手牌数不小于你的目标角色的一张牌置于你的武将牌上,称为「荣」。', + hongju_info:'觉醒技,准备阶段,若你武将牌上「荣」的数量不小于3,则你触发此技能。你可以用任意数量的手牌交换等量的「荣」。你减1点体力上限并获得技能〖清侧〗。', + qingce_info:'出牌阶段,你可以获得一张「荣」并弃置一张手牌,然后弃置场上的一张牌。', jianchu:'鞬出', jianchu_info:'当你使用【杀】指定一名角色为目标后,你可以弃置其一张牌,若以此法弃置的牌为装备牌,此【杀】不可被【闪】响应,若不为装备牌,该角色获得此【杀】', diff --git a/character/sp.js b/character/sp.js index 2662da9e5..04ea5c996 100755 --- a/character/sp.js +++ b/character/sp.js @@ -22,6 +22,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, character:{ + huangfusong:['male','qun',4,['xinfenyue']], yuantanyuanshang:['male','qun',4,['neifa']], huaman:['female','shu',3,['hmmanyi','mansi','souying','zhanyuan']], xujing:['male','shu',3,['yuxu','xjshijian']], @@ -141,7 +142,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ chendong:['male','wu',4,['duanxie','fenming']], sp_dongzhuo:['male','qun',5,['hengzheng']], jiangfei:['male','shu',3,['shengxi','shoucheng']], - jiangqing:['male','wu',4,['shangyi']], + jiangqing:['male','wu',4,['shangyi','zniaoxiang']], hetaihou:['female','qun',3,['zhendu','qiluan']], kongrong:['male','qun',3,['lirang','mingshi']], dingfeng:['male','wu',4,['fenxun','duanbing']], @@ -157,9 +158,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhangren:['male','qun',4,['chuanxin','zfengshi']], zoushi:['female','qun',3,['zhuoshui','zqingcheng']], - huangfusong:['male','qun',4,['fenyue']], - - wangyun:['male','qun',4,['wylianji','moucheng']], sunqian:['male','shu',3,['qianya','shuimeng']], xizhicai:['male','wei',3,['tiandu','xianfu','chouce']], @@ -741,7 +739,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, intro:{ name:'内伐 - 非基本牌', - content:'本回合内不能使用基本牌,且使用普通锦囊牌选择目标时可以多选择#个目标,且使用装备牌时摸X张牌(X为手牌中不能使用的牌且最多为5)。' + content:'本回合内不能使用基本牌,且使用普通锦囊牌选择目标时可以多选择#个目标,且本回合的出牌阶段内前两次使用装备牌时摸X张牌(X为手牌中不能使用的牌且最多为5)。' }, filter:function(event,player){ if(get.type(event.card)!='trick') return false; @@ -789,7 +787,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'useCard'}, forced:true, filter:function(event,player){ - return get.type(event.card)=='equip'&&player.countMark('neifa_nobasic')*Math.min(5,player.countCards('h',function(cardx){ + return get.type(event.card)=='equip'&&player.getHistory('useCard',function(evt){ + return get.type(evt.card)=='equip'&&evt.isPhaseUsing(); + }).indexOf(event)<2&&player.countMark('neifa_nobasic')*Math.min(5,player.countCards('h',function(cardx){ return !lib.filter.cardEnabled(cardx,player); }))>0; }, @@ -1365,10 +1365,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return event.card.name=='sha'&&event.targets.length==1&&get.color(event.card)=='black'; }, check:function(event,player){ - return get.attitude(player,event.player)<=0; + return get.attitude(player,event.target)<=0; }, content:function(){ - trigger.target.gain(trigger.cards.filterInD(),'gain2'); + trigger.target.gain(trigger.cards.filterInD(),'gain2','log'); trigger.target.loseHp(); }, ai:{jueqing:true}, @@ -4182,54 +4182,39 @@ game.import('character',function(lib,game,ui,get,ai,_status){ locked:true, subSkill:{ discard:{ - trigger:{player:'gainAfter'}, - audio:"zishu", - forced:true, - filter:function(event,player){ - return _status.currentPhase!=player; - }, - content:function(){ - if(!player.storage.zishu){ - player.storage.zishu=[]; - } - player.storage.zishu.addArray(trigger.cards); - } - }, - discard2:{ trigger:{global:'phaseEnd'}, audio:"zishu", forced:true, filter:function(event,player){ - if(_status.currentPhase!=player&&player.storage.zishu){ + if(_status.currentPhase!=player){ var he=player.getCards('he'); - for(var i=0;i0) return false; + return event.cards.filterInD().length>0 }, content:function(){ 'step 0' @@ -4286,28 +4263,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }).set('sha',trigger.cards[0].name=='sha').set('wuxie',trigger.cards[0].name=='wuxie'); 'step 1' if(result.bool){ - var list=[]; - for(var i=0;i=num) return false; + return player.countCards('h')>0; + }, + filterTarget:function(event,player,target){ + return player.canCompare(target); + }, + content:function(){ + 'step 0' + player.chooseToCompare(target); + 'step 1' + if(!result.bool) event.finish(); + event.num=result.num1; + 'step 2' + if(num<=5&&target.countGainableCards(player,'he')>0) player.gainPlayerCard(target,'he',true); + 'step 3' + if(num<=9){ + var card=get.cardPile2(function(x){ + return x.name=='sha'; + }); + if(card) player.gain(card,'gain2'); + } + 'step 4' + if(num<=13){ + var card={name:'sha',nature:'thunder'}; + if(player.canUse(card,target)) player.useCard(card,target,false); + } + }, + ai:{ + order:4, + result:{ + target:function(player,target){ + var sort=function(a,b){ + return b.number-a.number; + }; + var ps=player.getCards('h').sort(sort); + var ts=target.getCards('h').sort(sort); + if(ps[0].number>ts[0].number){ + var effect=get.effect(target,{name:'sha',nature:'thunder'},player,player) + if(ps[0].number<6&&target.countCards('he')>1) effect-=2; + if(ps[0].number<10) effect-=1; + return effect; + } + return ps.length>=ts.length?-0.5:0; + }, + }, + }, + }, fenyue:{ enable:'phaseUse', filter:function(event,player){ @@ -6332,18 +6342,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(event,player){ if(event.card.name!='sha') return false; return game.hasPlayer(function(current){ - return !event.targets.contains(current)&&get.distance(player,current)<=1&&player.canUse('sha',current); + return !event.targets.contains(current)&&get.distance(player,current)<=1&&player.canUse(event.card,current); }); }, direct:true, content:function(){ 'step 0' player.chooseTarget(get.prompt('duanbing'),'为'+get.translation(trigger.card)+'增加一个目标',function(card,player,target){ - return !_status.event.sourcex.contains(target)&&get.distance(player,target)<=1&&player.canUse('sha',target); + return !_status.event.sourcex.contains(target)&&get.distance(player,target)<=1&&player.canUse(_status.event.card,target); }).set('sourcex',trigger.targets).set('ai',function(target){ var player=_status.event.player; - return get.effect(target,{name:'sha'},player,player); - }); + return get.effect(target,_status.event.card,player,player); + }).set('card',trigger.card); 'step 1' if(result.bool){ if(!event.isMine()&&!_status.connectMode) game.delayx(); @@ -6362,13 +6372,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(card.name=='sha'){ if(player._duanbingtmp) return; player._duanbingtmp=true; - if(get.effect(target,{name:'sha'},player,player)<=0){ + if(get.effect(target,card,player,player)<=0){ delete player._duanbingtmp; return; } if(game.hasPlayer(function(current){ return current!=target&&get.distance(player,current)<=1&& - player.canUse('sha',current)&&get.effect(current,{name:'sha'},player,player)>0; + player.canUse(card,current)&&get.effect(current,card,player,player)>0; })){ delete player._duanbingtmp; return [1,1]; @@ -6801,11 +6811,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, shanjia:{ - audio:2, - init:function(player){ - player.storage.shanjia=0; + sync:function(player){ + if(game.online) return; + var history=player.actionHistory; + var num=0; + for(var i=0;i0) player.markSkill('shanjia'); }, - mark:true, + audio:2, intro:{ content:function(storage){ if(storage==0) return '未使用过装备牌'; @@ -6816,13 +6834,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'phaseUseBegin'}, frequent:true, filter:function(event,player){ + lib.skill.shanjia.sync(player); return player.storage.shanjia>0; }, content:function(){ 'step 0' - player.draw(player.storage.shanjia); + lib.skill.shanjia.sync(player); + player.draw(Math.min(7,player.storage.shanjia)); 'step 1' - player.chooseToDiscard('he',player.storage.shanjia,true); + player.chooseToDiscard('he',Math.min(7,player.storage.shanjia),true); 'step 2' var useCard=false; if(result.bool&&result.cards){ @@ -6848,11 +6868,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'useCard'}, silent:true, filter:function(event,player){ - return get.type(event.card)=='equip'&&player.storage.shanjia<7; + return get.type(event.card)=='equip'; }, content:function(){ - player.storage.shanjia++; - player.updateMarks(); + lib.skill.shanjia.sync(player); } }, zhanyi:{ @@ -7499,7 +7518,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, mod:{ targetEnabled:function(card,player,target){ - if(get.type(card)=='delay'&&player!=target){ + if(get.type(card)=='delay'){ return false; } }, @@ -8237,7 +8256,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, filter:function(event,player){ if(!event.targets) return false; - if(event.getParent().triggeredTargets3.length>1) return false; + if(!event.isFirstTarget) return false; if(_status.currentPhase!=player) return false; var type=get.type(event.card,'trick'); if(type!='basic'&&type!='trick') return false; @@ -8249,7 +8268,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ 'step 0' player.chooseTarget(get.prompt('qizhi'),'弃置一名角色的一张牌,然后其摸一张牌',function(card,player,target){ - return !_status.event.getTrigger().targets.contains(target)&&target.countCards('he')>0; + return !_status.event.targets.contains(target)&&target.countCards('he')>0; }).set('ai',function(target){ var player=_status.event.player; if(target==player) return 2; @@ -8257,10 +8276,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return 1 } return 0.5; - }); + }).set('targets',trigger.targets); 'step 1' if(result.bool){ - player.storage.qizhi++; + player.getHistory('custom').push({qizhi:true}); if(!event.isMine()&&!_status.connectMode) game.delay(); player.logSkill('qizhi',result.targets); player.discardPlayerCard(result.targets[0],true,'he'); @@ -8272,35 +8291,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 2' event.target.draw(); }, - group:'qizhi2' - }, - qizhi2:{ - trigger:{player:'phaseZhunbeiBegin'}, - silent:true, - content:function(){ - player.storage.qizhi=0; - } }, jinqu:{ audio:2, trigger:{player:'phaseJieshuBegin'}, check:function(event,player){ - return player.storage.qizhi>=player.countCards('h'); + return player.getHistory('custom',function(evt){ + return evt.qizhi==true; + }).length>=player.countCards('h'); }, prompt:function(event,player){ - if(typeof player.storage.qizhi!='number'){ - '进趋:是否摸两张牌并将手牌弃置至'+get.cnNumber(0)+'张?'; - } - return '进趋:是否摸两张牌并将手牌弃置至'+get.cnNumber(player.storage.qizhi)+'张?'; + var num=player.getHistory('custom',function(evt){ + return evt.qizhi==true; + }).length; + return '进趋:是否摸两张牌并将手牌弃置至'+get.cnNumber(num)+'张?'; }, content:function(){ 'step 0' player.draw(2); 'step 1' - if(typeof player.storage.qizhi!='number'){ - player.storage.qizhi=0; - } - var dh=player.countCards('h')-player.storage.qizhi; + var dh=player.countCards('h')-player.getHistory('custom',function(evt){ + return evt.qizhi==true; + }).length; if(dh>0){ player.chooseToDiscard(dh,true); } @@ -9638,7 +9650,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, }, - init:function(player){ + init:function(player,skill){ if(!player.storage[skill]) player.storage.fentian=[]; }, content:function(){ @@ -10553,14 +10565,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.forceDie=true; player.respond(result.links,'midao','highlight','noOrdering'); result.cards=result.links; + var card=result.cards[0]; + event.card=card; + player.storage.yishe.remove(card); + if(player.storage.yishe.length==0){ + player.unmarkSkill('yishe'); + if(player.hasSkill('yishe')){ + player.logSkill('yishe'); + player.recover(); + } + } + else player.markSkill('yishe'); } else{ event.finish(); } "step 2" if(result.bool){ - var card=result.cards[0]; - player.storage.yishe.remove(card); if(trigger.player.judging[0].clone){ trigger.player.judging[0].clone.classList.remove('thrownhighlight'); game.broadcast(function(card){ @@ -10752,14 +10773,32 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, fulu:{ - enable:'chooseToUse', - filterCard:function(card){ - return card.name=='sha'&&!card.nature; + trigger:{player:'useCard1'}, + filter:function(event,player){ + if(event.card.name=='sha'&&!event.card.nature) return true; }, - viewAs:{name:'sha',nature:'thunder'}, - ai:{ - order:function(){ - return get.order({name:'sha'})+0.1; + audio:true, + check:function(event,player){ + var eff=0; + for(var i=0;i=0; + }, + content:function(){ + trigger.card.nature='thunder'; + if(get.itemtype(trigger.card)=='card'){ + var next=game.createEvent('fulu_clear'); + next.card=trigger.card; + event.next.remove(next); + trigger.after.push(next); + next.setContent(function(){ + delete card.nature; + }); } } }, @@ -12149,6 +12188,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){ qiluan2:{ audio:2, }, + zniaoxiang:{ + audio:2, + trigger:{player:'useCardToPlayered'}, + forced:true, + filter:function(event,player){ + return event.card.name=='sha'&&!event.getParent().directHit.contains(event.target); + }, + //priority:-1, + logTarget:'target', + content:function(){ + var id=trigger.target.playerid; + var map=trigger.getParent().customArgs; + if(!map[id]) map[id]={}; + if(typeof map[id].shanRequired=='number'){ + map[id].shanRequired++; + } + else{ + map[id].shanRequired=2; + } + } + }, shangyi:{ audio:2, enable:'phaseUse', @@ -14193,8 +14253,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ huaman:'花鬘', yuantanyuanshang:'袁谭袁尚', + xinfenyue:'奋钺', + xinfenyue_info:'出牌阶段限X次(X为与你不同阵营的存活角色数),你可以与一名其他角色拼点,若你赢,根据你拼点牌的点数依次执行以下效果:不大于5,你获得其一张牌;不大于9,你获得牌堆里的一张【杀】; 不大于K,视为你对其使用一张雷【杀】。', neifa:'内伐', - neifa_info:'出牌阶段开始时,你可以摸一张牌,然后弃置一张牌。若弃置的牌是基本牌,本回合你不能使用锦囊和装备牌,且【杀】的使用次数+X且目标+1;若弃置的不是基本牌,本回合你不能使用基本牌,且普通锦囊牌的目标+1,使用装备牌时摸X张牌(X为手牌中不能使用的牌且最多为5)。', + neifa_info:'出牌阶段开始时,你可以摸一张牌,然后弃置一张牌。若弃置的牌是基本牌,本回合你不能使用锦囊和装备牌,且【杀】的使用次数+X且目标+1;若弃置的不是基本牌,本回合你不能使用基本牌,且普通锦囊牌的目标+1,前两次使用装备牌时摸X张牌(X为手牌中不能使用的牌且最多为5)。', neifa_use:'内伐', hmmanyi:'蛮裔', hmmanyi_info:'锁定技,【南蛮入侵】对你无效。', @@ -14525,7 +14587,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ juesi:'决死', juesi_info:'出牌阶段,你可以弃置一张【杀】并选择攻击范围内的一名有牌的其他角色,该角色弃置一张牌,然后若弃置的牌不是【杀】且你的体力值不大于该角色,你视为对其使用【决斗】。', zhenlue:'缜略', - zhenlue_info:'锁定技,你使用的普通锦囊牌不能被【无懈可击】响应;你不能成为其他角色的延时锦囊牌的目标。', + zhenlue_info:'锁定技,你使用的普通锦囊牌不能被【无懈可击】响应;你不能成为延时锦囊牌的目标。', jianshu:'间书', jianshu_info:'限定技,出牌阶段,你可以将一张黑色手牌交给一名其他角色,并选择另一名其他角色,然后令这两名角色拼点。赢的角色弃置两张牌,没赢的角色失去一点体力。', yongdi:'拥嫡', @@ -14722,6 +14784,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ shengxi:'生息', shoucheng:'守成', shangyi:'尚义', + zniaoxiang:'鸟翔', zhendu:'鸩毒', qiluan:'戚乱', qiluan2:'戚乱', @@ -14770,7 +14833,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ yawang_info:'锁定技,摸牌阶段开始时,你改为摸X张牌,然后你于本回合的出牌阶段内至多使用X张牌(X为与你体力值相等的角色数)', fenyin_info:'你的回合内,当你使用牌时,若此牌与你于此回合内使用的上一张牌的颜色不同,则你可以摸一张牌。', fuji_info:'当一名角色造成雷属性伤害时,你可以令其进行判定,若结果为黑色,此伤害+1;若结果为红色,该角色获得判定牌。', - fulu_info:'你可以将【杀】当做雷【杀】使用。', + fulu_info:'当你声明使用普通【杀】时,你可以将此【杀】改为雷【杀】。', jilei_info:'当你受到有来源的伤害后,你可以声明一种牌的类别。若如此做,你令伤害来源不能使用、打出或弃置此类别的手牌,直到其下个回合开始。', danlao:'啖酪', danlao_info:'当你成为一张指定了多个目标的【杀】或普通锦囊牌的目标时,你可以摸一张牌,令此牌对你无效。', @@ -14832,6 +14895,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ qiluan_info_guozhan:'一名角色的回合结束时,若你于回合内杀死过角色,则你可以摸三张牌。', zhendu_info:'其他角色的出牌阶段开始时,你可以弃置一张手牌,视为该角色使用了一张【酒】。若如此做,你对其造成一点伤害。', shangyi_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,然后弃置其中的一张黑色牌。', + zniaoxiang_info:'锁定技,当你使用【杀】指定目标后,你令目标角色响应此【杀】所需要使用的【闪】的数目+1。', shoucheng_info:'当一名其他角色于其回合外失去手牌时,若其没有手牌,则你可令该角色摸一张牌。', shengxi_info:'弃牌阶段开始时,若你本回合内未造成过伤害,则你可以摸两张牌。', hengzheng_info:'摸牌阶段开始时,若你的体力值为1或你没有手牌,则你可以放弃摸牌,改为获得每名其他角色区域内的一张牌。', diff --git a/character/standard.js b/character/standard.js index 82cb7cbd4..1ec24425a 100755 --- a/character/standard.js +++ b/character/standard.js @@ -1750,7 +1750,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, qixi:{ audio:2, - audioname:['ganning','re_ganning'], + audioname:['re_ganning'], enable:'chooseToUse', filterCard:function(card){ return get.color(card)=='black'; @@ -1783,7 +1783,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, kurou:{ - audio:4, + audio:2, enable:'phaseUse', prompt:'失去一点体力并摸两张牌', content:function(){ @@ -1973,6 +1973,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(card.name=='shunshou'||card.name=='lebu') return false; } }, + audio:2, }, lianying:{ audio:2, diff --git a/character/tw.js b/character/tw.js index 63dabc730..ad6e743b0 100644 --- a/character/tw.js +++ b/character/tw.js @@ -248,7 +248,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, twxiaolian:{ - inherit:'twtijin', + audio:2, + trigger:{global:'useCard'}, + logTarget:'player', filter:function(event,player){ return event.card&&event.card.name=='sha'&&event.player!=player&& event.targets.length==1&&event.targets[0]!=player; @@ -303,7 +305,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, }, - twtijin:{ + twtijin:{ audio:2, trigger:{global:'useCard'}, filter:function(event,player){ diff --git a/character/xinghuoliaoyuan.js b/character/xinghuoliaoyuan.js index d8ef492aa..7b6f72ad4 100755 --- a/character/xinghuoliaoyuan.js +++ b/character/xinghuoliaoyuan.js @@ -3133,9 +3133,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function (event,player,name){ if(!event.source) return false; var range=event.source.getAttackRange(); - if(range==3) return false; - if(range<3) return name='damageBegin4'&&event.num>1; - return name='damageBegin3'; + if(name=='damageBegin3') return range>3; + return event.num>1&&range<3; }, //priority:-9.5, content:function (){ @@ -3669,8 +3668,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ viewAs:{name:'lebu'}, //prepare:"throw", position:"he", - filterCard:{ - suit:"diamond", + filterCard:function(card,player,event){ + return get.suit(card)=='diamond'&&player.canAddJudge({name:'lebu',cards:[card]}); }, selectTarget:-1, filterTarget:function (card,player,target){ diff --git a/character/yijiang.js b/character/yijiang.js index 13982eaf3..2e507b4b4 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -1547,40 +1547,44 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:'anguo', enable:'phaseUse', usable:1, - filterTarget:function(card,player,target){ - if(player==target) return false; - if(player.isMinHandcard()||target.isMinHandcard()) return true; - if(player.isMinEquip()||target.isMinEquip()) return true; - if((player.isMinHp()&&player.isDamaged())||(target.isMinHp()&&target.isDamaged())) return true; - return false; - }, + filterTarget:lib.filter.notMe, content:function(){ 'step 0' if(target.isMinHandcard()){ target.draw(); event.h=true; } + 'step 1' if(target.isMinHp()&&target.isDamaged()){ target.recover(); event.hp=true; } - event.equip=get.cardPile(function(card){ - return get.type(card)=='equip'&&!target.isDisabled(get.subtype(card)); + 'step 2' + var equip=get.cardPile(function(card){ + return get.type(card)=='equip'&&target.hasUseTarget(card); }); - if(target.isMinEquip()&&event.equip){ - target.chooseUseTarget(event.equip,'noanimate','nopopup',true); + if(target.isMinEquip()&&equip){ + target.chooseUseTarget(equip,'noanimate','nopopup',true); event.e=true; } - 'step 1' + 'step 3' + game.updateRoundNumber(); if(!event.h&&player.isMinHandcard()){ player.draw(); } + 'step 4' if(!event.hp&&player.isMinHp()&&player.isDamaged()){ player.recover(); } - if(!event.e&&player.isMinEquip()&&event.equip){ - player.chooseUseTarget(event.equip,'noanimate','nopopup',true); + 'step 5' + if(!event.e&&player.isMinEquip()){ + var equip=get.cardPile(function(card){ + return get.type(card)=='equip'&&target.hasUseTarget(card); + }); + if(equip) player.chooseUseTarget(equip,'noanimate','nopopup',true); } + 'step 6' + game.updateRoundNumber(); }, ai:{ threaten:1.6, @@ -2304,7 +2308,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, bizhuan:{ audio:2, - trigger:{player:'useCardAfter',target:'useCardToTargeted'}, + trigger:{player:'useCard',target:'useCardToTargeted'}, filter:function(event,player){ if(event.name!='useCard'&&event.player==event.target) return false; if(player.storage.bizhuan.length>=4) return false; @@ -2326,13 +2330,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, frequent:true, content:function(){ - var card=get.cards()[0]; - ui.special.appendChild(card); + var card=game.cardsGotoSpecial(get.cards()).cards[0]; player.$draw(card); game.delay(); player.storage.bizhuan.push(card); player.markSkill('bizhuan'); - event.trigger("addCardToStorage"); }, mod:{ maxHandcard:function(player,num){ @@ -2344,7 +2346,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'phaseDrawAfter'}, direct:true, filter:function(event,player){ - return player.storage.bizhuan&&player.storage.bizhuan.length&&event.num>0; + return player.storage.bizhuan&&player.storage.bizhuan.length; }, locked:false, content:function(){ @@ -4960,34 +4962,61 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, lihuo:{ - enable:'phaseUse', - usable:1, - filterCard:function(card){ - return card.name=='sha'&&!card.nature; - }, + trigger:{player:'useCard1'}, filter:function(event,player){ - return player.countCards('h','sha')>0 + if(event.card.name=='sha'&&!event.card.nature) return true; + return false; }, - viewAs:{name:'sha',nature:'fire'}, - mod:{ - selectTarget:function(card,player,range){ - if(card.name=='sha'&&card.nature=='fire'&&range[1]!=-1){ - range[1]++; - } - }, + audio:2, + check:function(event,player){ + return false; + }, + content:function(){ + trigger.card.nature='fire'; + var next=game.createEvent('lihuo_clear'); + next.player=player; + next.card=trigger.card; + event.next.remove(next); + next.forceDie=true; + trigger.after.push(next); + next.setContent(function(){ + if(player.isAlive()&&player.getHistory('sourceDamage',function(evt){ + return evt.getParent(2)==event.parent; + }).length>0) player.loseHp(); + delete card.nature; + }); }, group:'lihuo2' }, lihuo2:{ - trigger:{source:'damageSource'}, - forced:true, - popup:false, + trigger:{player:'useCard2'}, filter:function(event,player){ - return event.parent.skill=='lihuo'; + if(event.card.name!='sha'||get.nature(event.card)!='fire') return false; + return game.hasPlayer(function(current){ + return !event.targets.contains(current)&&player.canUse(event.card,current); + }); }, + direct:true, content:function(){ - player.addSkill('lihuo3'); - } + 'step 0' + player.chooseTarget(get.prompt('lihuo'),'为'+get.translation(trigger.card)+'增加一个目标',function(card,player,target){ + return !_status.event.sourcex.contains(target)&&player.canUse(_status.event.card,target); + }).set('sourcex',trigger.targets).set('card',trigger.card).set('ai',function(target){ + var player=_status.event.player; + return get.effect(target,_status.event.card,player,player); + }); + 'step 1' + if(result.bool){ + if(!event.isMine()&&!_status.connectMode) game.delayx(); + event.target=result.targets[0]; + } + else{ + event.finish(); + } + 'step 2' + player.logSkill('lihuo',event.target); + trigger.targets.push(event.target); + }, }, lihuo3:{ trigger:{player:'useCardAfter'}, @@ -5301,21 +5330,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, sidi:{ audio:2, - trigger:{global:'respondEnd'}, + trigger:{global:'useCard'}, filter:function(event,player){ - if(event.parent.parent.name!='sha') return false; + if(event.card.name!='shan') return false; if(event.player==player) return true; return _status.currentPhase==player; }, frequent:true, init:function(player){ - player.storage.sidi=[]; + if(!player.storage.sidi) player.storage.sidi=[]; }, intro:{ - content:'cards' + content:'cards', + onunmark:'throw', }, content:function(){ - var card=get.cards()[0]; + var card=game.cardsGotoSpecial(get.cards()).cards[0]; game.log(player,'将',card,'置于武将牌上'); player.$gain2(card); player.storage.sidi.add(card); @@ -5327,8 +5357,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sidi2:{ trigger:{global:'phaseUseBegin'}, filter:function(event,player){ - if(event.player==player) return false; - if(!player.storage.sidi.length) return false; + if(event.player==player||event.player.isDead()) return false; + if(!player.storage.sidi||!player.storage.sidi.length) return false; return true; }, check:function(event,player){ @@ -5358,13 +5388,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ default:return true; } }, + logTarget:'player', content:function(){ 'step 0' if(player.storage.sidi.length==1){ event.directbutton=player.storage.sidi[0]; } else{ - player.chooseCardButton('弃置武将牌上的一张牌',player.storage.sidi,true); + player.chooseCardButton('弃置一张“司敌”牌',player.storage.sidi,true); } 'step 1' var button; @@ -5376,10 +5407,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } if(button){ player.$throw([button]); - player.line(trigger.player,'green'); game.log(player,'将',button,'置于弃牌堆'); - button.discard(); + game.cardsDiscard(button); trigger.player.addTempSkill('sidi3'); + trigger.player.addMark('sidi3',1,false); player.storage.sidi.remove(button); player.syncStorage('sidi'); if(player.storage.sidi.length==0){ @@ -5395,9 +5426,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sidi3:{ mod:{ cardUsable:function(card,player,num){ - if(card.name=='sha') return num-1; + if(card.name=='sha') return num-player.countMark('sidi3'); } - } + }, + onremove:true, }, zhongyong:{ trigger:{player:'shaMiss'}, @@ -11037,9 +11069,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ chunlao2:'醇醪', chunlao_info:'结束阶段开始时,若你没有“醇”,你可以将至少一张【杀】置于你的武将牌上,称为“醇”。当一名角色处于濒死状态时,你可以移去一张“醇”,视为该角色使用一张【酒】', lihuo:'疠火', - lihuo_info:'你可以将一张普通【杀】当作火属性的【杀】使用。若以此法使用的【杀】造成了伤害,则此【杀】结算后你失去1点体力;你使用火【杀】指定目标后,可以额外指定一个目标', + lihuo_info:'当你声明使用普通【杀】时,你可以将此【杀】改为火【杀】。若以此法使用的【杀】造成了伤害,则此【杀】结算后你失去1点体力;你使用火【杀】选择目标后,可以额外指定一个目标。', shenduan:'慎断', - shenduan_info:'当你的黑色基本牌因弃置而进入弃牌堆时,你可以将之视为【兵粮寸断】置于一名其他角色的判定区里。', + shenduan_info:'当你的黑色基本牌因弃置而进入弃牌堆后,你可以将其当做【兵粮寸断】使用(无距离限制)。', yonglve:'勇略', yonglve_info:'一名其他角色的判定阶段开始时,若其在你攻击范围内,则你可以弃置其判定区里的一张牌,视为对该角色使用一张【杀】。若此【杀】未造成伤害,你摸一张牌。', benxi:'奔袭', diff --git a/game/asset.js b/game/asset.js index bd6df9a0b..216f9b680 100644 --- a/game/asset.js +++ b/game/asset.js @@ -1,5 +1,5 @@ window.noname_asset_list=[ - '1.9.97.9', + '1.9.98', 'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_online.mp3', 'audio/background/aozhan_rewrite.mp3', @@ -535,66 +535,7 @@ window.noname_asset_list=[ 'audio/die/zhoufei.mp3', 'audio/die/zhugezhan.mp3', 'audio/die/zhuling.mp3', - - 'audio/skill/gzjili1.mp3', - 'audio/skill/gzjili2.mp3', - 'audio/skill/spjiedao1.mp3', - 'audio/skill/spjiedao2.mp3', - 'audio/skill/biaozhao1.mp3', - 'audio/skill/biaozhao2.mp3', - 'audio/skill/yechou1.mp3', - 'audio/skill/yechou2.mp3', - 'audio/skill/yanjiao1.mp3', - 'audio/skill/yanjiao2.mp3', - 'audio/skill/xingshen1.mp3', - 'audio/skill/xingshen2.mp3', - 'audio/skill/weicheng1.mp3', - 'audio/skill/weicheng2.mp3', - 'audio/skill/daoshu1.mp3', - 'audio/skill/daoshu2.mp3', - 'audio/skill/lvli1.mp3', - 'audio/skill/lvli2.mp3', - 'audio/skill/choujue1.mp3', - 'audio/skill/choujue2.mp3', - 'audio/skill/beishui1.mp3', - 'audio/skill/beishui2.mp3', - 'audio/skill/qingjiao1.mp3', - 'audio/skill/qingjiao2.mp3', - 'audio/skill/botu1.mp3', - 'audio/skill/botu2.mp3', - 'audio/skill/cuorui1.mp3', - 'audio/skill/cuorui2.mp3', - 'audio/skill/huwei1.mp3', - 'audio/skill/huwei2.mp3', - 'audio/skill/liewei1.mp3', - 'audio/skill/liewei2.mp3', - 'audio/skill/mouzhu1.mp3', - 'audio/skill/mouzhu2.mp3', - 'audio/skill/niluan1.mp3', - 'audio/skill/niluan2.mp3', - 'audio/skill/pianyi1.mp3', - 'audio/skill/pianyi2.mp3', - 'audio/skill/sgrenwang1.mp3', - 'audio/skill/sgrenwang2.mp3', - 'audio/skill/shenju1.mp3', - 'audio/skill/shenju2.mp3', - 'audio/skill/suzi1.mp3', - 'audio/skill/suzi2.mp3', - 'audio/skill/wanrong1.mp3', - 'audio/skill/wanrong2.mp3', - 'audio/skill/xiaoxi_hansui1.mp3', - 'audio/skill/xiaoxi_hansui2.mp3', - 'audio/skill/xiaoxi_machao1.mp3', - 'audio/skill/xiaoxi_machao2.mp3', - 'audio/skill/xiaoxi_pangde1.mp3', - 'audio/skill/xiaoxi_pangde2.mp3', - 'audio/skill/xiechan1.mp3', - 'audio/skill/xiechan2.mp3', - 'audio/skill/pytianjiang1.mp3', - 'audio/skill/pytianjiang2.mp3', - 'audio/skill/pyzhuren1.mp3', - 'audio/skill/pyzhuren2.mp3', - + 'audio/skill/anguo1.mp3', 'audio/skill/anguo2.mp3', 'audio/skill/anjian1.mp3', @@ -613,14 +554,24 @@ window.noname_asset_list=[ 'audio/skill/baoling2.mp3', 'audio/skill/baonu1.mp3', 'audio/skill/baonu2.mp3', + 'audio/skill/baonue2_re_dongzhuo1.mp3', + 'audio/skill/baonue2_re_dongzhuo2.mp3', 'audio/skill/baonue21.mp3', 'audio/skill/baonue22.mp3', + 'audio/skill/bazhen_re_sp_zhugeliang1.mp3', + 'audio/skill/bazhen_re_sp_zhugeliang2.mp3', 'audio/skill/bazhen1.mp3', 'audio/skill/bazhen2.mp3', + 'audio/skill/beige_re_caiwenji1.mp3', + 'audio/skill/beige_re_caiwenji2.mp3', 'audio/skill/beige1.mp3', 'audio/skill/beige2.mp3', 'audio/skill/beige3.mp3', 'audio/skill/beige4.mp3', + 'audio/skill/beishui1.mp3', + 'audio/skill/beishui2.mp3', + 'audio/skill/benghuai_re_dongzhuo1.mp3', + 'audio/skill/benghuai_re_dongzhuo2.mp3', 'audio/skill/benghuai_zhugedan1.mp3', 'audio/skill/benghuai_zhugedan2.mp3', 'audio/skill/benghuai1.mp3', @@ -631,6 +582,8 @@ window.noname_asset_list=[ 'audio/skill/benxi2.mp3', 'audio/skill/benyu1.mp3', 'audio/skill/benyu2.mp3', + 'audio/skill/biaozhao1.mp3', + 'audio/skill/biaozhao2.mp3', 'audio/skill/bifa1.mp3', 'audio/skill/bifa2.mp3', 'audio/skill/biluan1.mp3', @@ -694,6 +647,8 @@ window.noname_asset_list=[ 'audio/skill/boss_yuhuojg.mp3', 'audio/skill/boss_zhinang1.mp3', 'audio/skill/boss_zhinang2.mp3', + 'audio/skill/botu1.mp3', + 'audio/skill/botu2.mp3', 'audio/skill/buqu1.mp3', 'audio/skill/buqu2.mp3', 'audio/skill/bushi1.mp3', @@ -722,6 +677,8 @@ window.noname_asset_list=[ 'audio/skill/chouce2.mp3', 'audio/skill/chouhai1.mp3', 'audio/skill/chouhai2.mp3', + 'audio/skill/choujue1.mp3', + 'audio/skill/choujue2.mp3', 'audio/skill/chouliang.mp3', 'audio/skill/choulve1.mp3', 'audio/skill/choulve2.mp3', @@ -735,6 +692,8 @@ window.noname_asset_list=[ 'audio/skill/cixiong_skill.mp3', 'audio/skill/cunsi1.mp3', 'audio/skill/cunsi2.mp3', + 'audio/skill/cuorui1.mp3', + 'audio/skill/cuorui2.mp3', 'audio/skill/dahe.mp3', 'audio/skill/daiyan1.mp3', 'audio/skill/daiyan2.mp3', @@ -750,8 +709,14 @@ window.noname_asset_list=[ 'audio/skill/danshou2.mp3', 'audio/skill/danxin1.mp3', 'audio/skill/danxin2.mp3', + 'audio/skill/daoshu1.mp3', + 'audio/skill/daoshu2.mp3', 'audio/skill/dawu1.mp3', 'audio/skill/dawu2.mp3', + 'audio/skill/diancai1.mp3', + 'audio/skill/diancai2.mp3', + 'audio/skill/diaodu1.mp3', + 'audio/skill/diaodu2.mp3', 'audio/skill/dimeng1.mp3', 'audio/skill/dimeng2.mp3', 'audio/skill/dingpan1.mp3', @@ -793,10 +758,14 @@ window.noname_asset_list=[ 'audio/skill/duanbing1.mp3', 'audio/skill/duanbing2.mp3', 'audio/skill/duanbing3.mp3', + 'audio/skill/duanchang_re_caiwenji1.mp3', + 'audio/skill/duanchang_re_caiwenji2.mp3', 'audio/skill/duanchang1.mp3', 'audio/skill/duanchang2.mp3', 'audio/skill/duanchang3.mp3', 'audio/skill/duanchang4.mp3', + 'audio/skill/duanliang1_re_xuhuang1.mp3', + 'audio/skill/duanliang1_re_xuhuang2.mp3', 'audio/skill/duanliang11.mp3', 'audio/skill/duanliang12.mp3', 'audio/skill/duanxie1.mp3', @@ -894,6 +863,10 @@ window.noname_asset_list=[ 'audio/skill/guanshi_skill.mp3', 'audio/skill/guanxing_jiangwei1.mp3', 'audio/skill/guanxing_jiangwei2.mp3', + 'audio/skill/guanxing_re_jiangwei1.mp3', + 'audio/skill/guanxing_re_jiangwei2.mp3', + 'audio/skill/guanxing_re_zhugeliang1.mp3', + 'audio/skill/guanxing_re_zhugeliang2.mp3', 'audio/skill/guanxing1.mp3', 'audio/skill/guanxing2.mp3', 'audio/skill/guding_skill.mp3', @@ -903,6 +876,8 @@ window.noname_asset_list=[ 'audio/skill/guhuo2.mp3', 'audio/skill/guicai1.mp3', 'audio/skill/guicai2.mp3', + 'audio/skill/guidao_sp_zhangjiao1.mp3', + 'audio/skill/guidao_sp_zhangjiao2.mp3', 'audio/skill/guidao1.mp3', 'audio/skill/guidao2.mp3', 'audio/skill/guiming1.mp3', @@ -921,10 +896,20 @@ window.noname_asset_list=[ 'audio/skill/guose2.mp3', 'audio/skill/gushe1.mp3', 'audio/skill/gushe2.mp3', + 'audio/skill/guzheng_re_zhangzhang1.mp3', + 'audio/skill/guzheng_re_zhangzhang2.mp3', 'audio/skill/guzheng1.mp3', 'audio/skill/guzheng2.mp3', + 'audio/skill/gz_jun_liubei.mp3', + 'audio/skill/gz_jun_sunquan.mp3', + 'audio/skill/gzbuqu1.mp3', + 'audio/skill/gzbuqu2.mp3', + 'audio/skill/gzjili1.mp3', + 'audio/skill/gzjili2.mp3', 'audio/skill/gzjixi.mp3', 'audio/skill/gzjixi1.mp3', + 'audio/skill/gzzongyu1.mp3', + 'audio/skill/gzzongyu2.mp3', 'audio/skill/hanbing_skill.mp3', 'audio/skill/hanyong1.mp3', 'audio/skill/hanyong2.mp3', @@ -934,13 +919,20 @@ window.noname_asset_list=[ 'audio/skill/hengjiang2.mp3', 'audio/skill/hengzheng1.mp3', 'audio/skill/hengzheng2.mp3', + 'audio/skill/hmxili1.mp3', + 'audio/skill/hmxili2.mp3', 'audio/skill/hongde1.mp3', 'audio/skill/hongde2.mp3', + 'audio/skill/hongfa_hp.mp3', + 'audio/skill/hongfa1.mp3', + 'audio/skill/hongfa2.mp3', 'audio/skill/hongyan.mp3', 'audio/skill/hongyuan1.mp3', 'audio/skill/hongyuan2.mp3', 'audio/skill/huaiyi1.mp3', 'audio/skill/huaiyi2.mp3', + 'audio/skill/huangjintianbingfu1.mp3', + 'audio/skill/huangjintianbingfu2.mp3', 'audio/skill/huangtian2_re_zhangjiao1.mp3', 'audio/skill/huangtian2_re_zhangjiao2.mp3', 'audio/skill/huangtian2_zhangjiao1.mp3', @@ -953,6 +945,8 @@ window.noname_asset_list=[ 'audio/skill/huanshi2.mp3', 'audio/skill/huashen21.mp3', 'audio/skill/huashen22.mp3', + 'audio/skill/huibian1.mp3', + 'audio/skill/huibian2.mp3', 'audio/skill/huilei1.mp3', 'audio/skill/huilei2.mp3', 'audio/skill/huimin1.mp3', @@ -971,14 +965,30 @@ window.noname_asset_list=[ 'audio/skill/huoji2.mp3', 'audio/skill/huomo1.mp3', 'audio/skill/huomo2.mp3', + 'audio/skill/huoshou1_re_menghuo1.mp3', + 'audio/skill/huoshou1_re_menghuo2.mp3', 'audio/skill/huoshou11.mp3', 'audio/skill/huoshou12.mp3', 'audio/skill/huoshui1.mp3', 'audio/skill/huoshui2.mp3', + 'audio/skill/huwei1.mp3', + 'audio/skill/huwei2.mp3', 'audio/skill/huxiao1.mp3', 'audio/skill/huxiao2.mp3', + 'audio/skill/huyuan1.mp3', + 'audio/skill/huyuan2.mp3', + 'audio/skill/jiahe_put1.mp3', + 'audio/skill/jiahe_put2.mp3', + 'audio/skill/jiahe1.mp3', + 'audio/skill/jiahe2.mp3', + 'audio/skill/jianan1.mp3', + 'audio/skill/jianan2.mp3', + 'audio/skill/jianchu_re_pangde1.mp3', + 'audio/skill/jianchu_re_pangde2.mp3', 'audio/skill/jianchu1.mp3', 'audio/skill/jianchu2.mp3', + 'audio/skill/jiang_re_sunben1.mp3', + 'audio/skill/jiang_re_sunben2.mp3', 'audio/skill/jiang_sp_lvmeng1.mp3', 'audio/skill/jiang_sp_lvmeng2.mp3', 'audio/skill/jiang1.mp3', @@ -1021,12 +1031,16 @@ window.noname_asset_list=[ 'audio/skill/jieyue12.mp3', 'audio/skill/jieyue2.mp3', 'audio/skill/jieyue3.mp3', + 'audio/skill/jiezi1.mp3', + 'audio/skill/jiezi2.mp3', 'audio/skill/jigong1.mp3', 'audio/skill/jigong2.mp3', 'audio/skill/jijiang1_liushan1.mp3', 'audio/skill/jijiang1_liushan2.mp3', 'audio/skill/jijiang1_re_liubei1.mp3', 'audio/skill/jijiang1_re_liubei2.mp3', + 'audio/skill/jijiang1_re_liushan1.mp3', + 'audio/skill/jijiang1_re_liushan2.mp3', 'audio/skill/jijiang11.mp3', 'audio/skill/jijiang12.mp3', 'audio/skill/jijiang2_liushan1.mp3', @@ -1058,6 +1072,8 @@ window.noname_asset_list=[ 'audio/skill/jiqiao2.mp3', 'audio/skill/jishe1.mp3', 'audio/skill/jishe2.mp3', + 'audio/skill/jiuchi_re_dongzhuo1.mp3', + 'audio/skill/jiuchi_re_dongzhuo2.mp3', 'audio/skill/jiuchi1.mp3', 'audio/skill/jiuchi2.mp3', 'audio/skill/jiushi11.mp3', @@ -1070,16 +1086,24 @@ window.noname_asset_list=[ 'audio/skill/jiuyuan2.mp3', 'audio/skill/jiwu1.mp3', 'audio/skill/jiwu2.mp3', + 'audio/skill/jixi_gz_dengai1.mp3', + 'audio/skill/jixi_gz_dengai2.mp3', + 'audio/skill/jixi_re_dengai1.mp3', + 'audio/skill/jixi_re_dengai2.mp3', 'audio/skill/jixi1.mp3', 'audio/skill/jixi2.mp3', 'audio/skill/jiyu1.mp3', 'audio/skill/jiyu2.mp3', + 'audio/skill/jizhao1.mp3', + 'audio/skill/jizhao2.mp3', 'audio/skill/jizhi_jianyong1.mp3', 'audio/skill/jizhi_jianyong2.mp3', 'audio/skill/jizhi1.mp3', 'audio/skill/jizhi2.mp3', 'audio/skill/jspdanqi1.mp3', 'audio/skill/jspdanqi2.mp3', + 'audio/skill/jubao1.mp3', + 'audio/skill/jubao2.mp3', 'audio/skill/juece1.mp3', 'audio/skill/juece2.mp3', 'audio/skill/juedi1.mp3', @@ -1100,6 +1124,8 @@ window.noname_asset_list=[ 'audio/skill/junxing1.mp3', 'audio/skill/junxing2.mp3', 'audio/skill/jushou.mp3', + 'audio/skill/juxiang1_re_zhurong1.mp3', + 'audio/skill/juxiang1_re_zhurong2.mp3', 'audio/skill/juxiang11.mp3', 'audio/skill/juxiang12.mp3', 'audio/skill/juyi.mp3', @@ -1115,6 +1141,8 @@ window.noname_asset_list=[ 'audio/skill/keji2.mp3', 'audio/skill/keji3.mp3', 'audio/skill/keji4.mp3', + 'audio/skill/kongcheng_re_zhugeliang1.mp3', + 'audio/skill/kongcheng_re_zhugeliang2.mp3', 'audio/skill/kongcheng11.mp3', 'audio/skill/kongcheng12.mp3', 'audio/skill/kongsheng1.mp3', @@ -1127,6 +1155,8 @@ window.noname_asset_list=[ 'audio/skill/kuangfeng2.mp3', 'audio/skill/kuangfu1.mp3', 'audio/skill/kuangfu2.mp3', + 'audio/skill/kuanggu_re_weiyan1.mp3', + 'audio/skill/kuanggu_re_weiyan2.mp3', 'audio/skill/kuanggu1.mp3', 'audio/skill/kuanggu2.mp3', 'audio/skill/kuanshi1.mp3', @@ -1157,14 +1187,22 @@ window.noname_asset_list=[ 'audio/skill/lianying2.mp3', 'audio/skill/lianzhu1.mp3', 'audio/skill/lianzhu2.mp3', + 'audio/skill/lianzi1.mp3', + 'audio/skill/lianzi2.mp3', + 'audio/skill/liegong_re_huangzhong1.mp3', + 'audio/skill/liegong_re_huangzhong2.mp3', 'audio/skill/liegong1.mp3', 'audio/skill/liegong2.mp3', 'audio/skill/lieren1.mp3', 'audio/skill/lieren2.mp3', + 'audio/skill/liewei1.mp3', + 'audio/skill/liewei2.mp3', 'audio/skill/lihun1.mp3', 'audio/skill/lihun2.mp3', 'audio/skill/lihuo1.mp3', 'audio/skill/lihuo2.mp3', + 'audio/skill/lijian_re_diaochan1.mp3', + 'audio/skill/lijian_re_diaochan2.mp3', 'audio/skill/lijian1.mp3', 'audio/skill/lijian2.mp3', 'audio/skill/lingbo1.mp3', @@ -1200,6 +1238,10 @@ window.noname_asset_list=[ 'audio/skill/longyin3.mp3', 'audio/skill/longyuan1.mp3', 'audio/skill/longyuan2.mp3', + 'audio/skill/lskuizhu1.mp3', + 'audio/skill/lskuizhu2.mp3', + 'audio/skill/lslixun1.mp3', + 'audio/skill/lslixun2.mp3', 'audio/skill/luanji1.mp3', 'audio/skill/luanji2.mp3', 'audio/skill/luanwu1.mp3', @@ -1218,7 +1260,13 @@ window.noname_asset_list=[ 'audio/skill/luoying_discard2.mp3', 'audio/skill/luoying_judge1.mp3', 'audio/skill/luoying_judge2.mp3', + 'audio/skill/lvli1.mp3', + 'audio/skill/lvli2.mp3', 'audio/skill/manjuan.mp3', + 'audio/skill/mansi1.mp3', + 'audio/skill/mansi2.mp3', + 'audio/skill/manyi1.mp3', + 'audio/skill/manyi2.mp3', 'audio/skill/mazui.mp3', 'audio/skill/meibu1.mp3', 'audio/skill/meibu2.mp3', @@ -1244,14 +1292,22 @@ window.noname_asset_list=[ 'audio/skill/moucheng2.mp3', 'audio/skill/moukui1.mp3', 'audio/skill/moukui2.mp3', + 'audio/skill/mouzhu1.mp3', + 'audio/skill/mouzhu2.mp3', 'audio/skill/mozhi1.mp3', 'audio/skill/mozhi2.mp3', 'audio/skill/mumu1.mp3', 'audio/skill/mumu2.mp3', 'audio/skill/naman1.mp3', 'audio/skill/naman2.mp3', + 'audio/skill/new_reyaowu1.mp3', + 'audio/skill/new_reyaowu2.mp3', + 'audio/skill/niepan_re_pangtong1.mp3', + 'audio/skill/niepan_re_pangtong2.mp3', 'audio/skill/niepan1.mp3', 'audio/skill/niepan2.mp3', + 'audio/skill/niluan1.mp3', + 'audio/skill/niluan2.mp3', 'audio/skill/nzry_binglve1.mp3', 'audio/skill/nzry_binglve2.mp3', 'audio/skill/nzry_chenglve1.mp3', @@ -1328,6 +1384,8 @@ window.noname_asset_list=[ 'audio/skill/pcaudio_shuijing_card.mp3', 'audio/skill/pcaudio_wolong_card.mp3', 'audio/skill/pcaudio_xuanjian_card.mp3', + 'audio/skill/pianyi1.mp3', + 'audio/skill/pianyi2.mp3', 'audio/skill/pindi1.mp3', 'audio/skill/pindi2.mp3', 'audio/skill/pingkou1.mp3', @@ -1336,6 +1394,10 @@ window.noname_asset_list=[ 'audio/skill/pojun2.mp3', 'audio/skill/polu1.mp3', 'audio/skill/polu2.mp3', + 'audio/skill/pytianjiang1.mp3', + 'audio/skill/pytianjiang2.mp3', + 'audio/skill/pyzhuren1.mp3', + 'audio/skill/pyzhuren2.mp3', 'audio/skill/qiangwu1.mp3', 'audio/skill/qiangwu2.mp3', 'audio/skill/qiangxi_boss_lvbu31.mp3', @@ -1350,6 +1412,8 @@ window.noname_asset_list=[ 'audio/skill/qianxi2.mp3', 'audio/skill/qianxin1.mp3', 'audio/skill/qianxin2.mp3', + 'audio/skill/qianxun1.mp3', + 'audio/skill/qianxun2.mp3', 'audio/skill/qianya1.mp3', 'audio/skill/qianya2.mp3', 'audio/skill/qiaobian1.mp3', @@ -1370,6 +1434,8 @@ window.noname_asset_list=[ 'audio/skill/qiaoshui2.mp3', 'audio/skill/qice_backup1.mp3', 'audio/skill/qice_backup2.mp3', + 'audio/skill/qice1.mp3', + 'audio/skill/qice2.mp3', 'audio/skill/qieting1.mp3', 'audio/skill/qieting2.mp3', 'audio/skill/qilin_skill.mp3', @@ -1384,6 +1450,8 @@ window.noname_asset_list=[ 'audio/skill/qingguo2.mp3', 'audio/skill/qingjian1.mp3', 'audio/skill/qingjian2.mp3', + 'audio/skill/qingjiao1.mp3', + 'audio/skill/qingjiao2.mp3', 'audio/skill/qinglong_skill.mp3', 'audio/skill/qingnang1.mp3', 'audio/skill/qingnang2.mp3', @@ -1427,6 +1495,8 @@ window.noname_asset_list=[ 'audio/skill/qizhi2.mp3', 'audio/skill/quanji1.mp3', 'audio/skill/quanji2.mp3', + 'audio/skill/quhu_re_xunyu1.mp3', + 'audio/skill/quhu_re_xunyu2.mp3', 'audio/skill/quhu1.mp3', 'audio/skill/quhu2.mp3', 'audio/skill/quji1.mp3', @@ -1435,48 +1505,91 @@ window.noname_asset_list=[ 'audio/skill/ranshang2.mp3', 'audio/skill/ranshang21.mp3', 'audio/skill/ranshang22.mp3', + 'audio/skill/rebiyue1.mp3', + 'audio/skill/rebiyue2.mp3', + 'audio/skill/refangquan1.mp3', + 'audio/skill/refangquan2.mp3', + 'audio/skill/refangzhu1.mp3', + 'audio/skill/refangzhu2.mp3', 'audio/skill/refanjian1.mp3', 'audio/skill/refanjian2.mp3', 'audio/skill/refankui1.mp3', 'audio/skill/refankui2.mp3', 'audio/skill/reganglie1.mp3', 'audio/skill/reganglie2.mp3', + 'audio/skill/reguhuo1.mp3', + 'audio/skill/reguhuo2.mp3', 'audio/skill/reguicai1.mp3', 'audio/skill/reguicai2.mp3', 'audio/skill/reguose1.mp3', 'audio/skill/reguose2.mp3', + 'audio/skill/rehuashen1.mp3', + 'audio/skill/rehuashen2.mp3', + 'audio/skill/rehunzi1.mp3', + 'audio/skill/rehunzi2.mp3', + 'audio/skill/rehuoji1.mp3', + 'audio/skill/rehuoji2.mp3', 'audio/skill/rejianxiong1.mp3', 'audio/skill/rejianxiong2.mp3', + 'audio/skill/rejieming1.mp3', + 'audio/skill/rejieming2.mp3', + 'audio/skill/rejieyin1.mp3', + 'audio/skill/rejieyin2.mp3', + 'audio/skill/rejiuyuan1.mp3', + 'audio/skill/rejiuyuan2.mp3', 'audio/skill/rejizhi1.mp3', 'audio/skill/rejizhi2.mp3', + 'audio/skill/rekanpo1.mp3', + 'audio/skill/rekanpo2.mp3', 'audio/skill/rekurou1.mp3', 'audio/skill/rekurou2.mp3', 'audio/skill/releiji1.mp3', 'audio/skill/releiji2.mp3', 'audio/skill/relianying1.mp3', 'audio/skill/relianying2.mp3', + 'audio/skill/relieren1.mp3', + 'audio/skill/relieren2.mp3', + 'audio/skill/reluanji1.mp3', + 'audio/skill/reluanji2.mp3', + 'audio/skill/reluoshen1.mp3', + 'audio/skill/reluoshen2.mp3', 'audio/skill/reluoyi1.mp3', 'audio/skill/reluoyi2.mp3', 'audio/skill/rende1.mp3', 'audio/skill/rende2.mp3', 'audio/skill/renjie.mp3', 'audio/skill/renjie2.mp3', + 'audio/skill/renshi1.mp3', + 'audio/skill/renshi2.mp3', 'audio/skill/renwang_skill.mp3', 'audio/skill/renxin1.mp3', 'audio/skill/renxin2.mp3', 'audio/skill/renxin3.mp3', 'audio/skill/repaoxiao1.mp3', 'audio/skill/repaoxiao2.mp3', + 'audio/skill/repolu1.mp3', + 'audio/skill/reqiangxi1.mp3', + 'audio/skill/reqiangxi2.mp3', 'audio/skill/reqianxun1.mp3', 'audio/skill/reqianxun2.mp3', + 'audio/skill/reqingguo1.mp3', + 'audio/skill/reqingguo2.mp3', + 'audio/skill/rerende_gz_jun_liubei1.mp3', + 'audio/skill/rerende_gz_jun_liubei2.mp3', 'audio/skill/rerende1.mp3', 'audio/skill/rerende2.mp3', 'audio/skill/retieji1.mp3', 'audio/skill/retieji2.mp3', 'audio/skill/retishen1.mp3', 'audio/skill/retishen2.mp3', + 'audio/skill/retuntian1.mp3', + 'audio/skill/retuntian2.mp3', 'audio/skill/retuxi1.mp3', 'audio/skill/retuxi2.mp3', + 'audio/skill/rexingshang1.mp3', + 'audio/skill/rexingshang2.mp3', + 'audio/skill/rexingsheng1.mp3', + 'audio/skill/rexingsheng2.mp3', 'audio/skill/reyajiao1.mp3', 'audio/skill/reyajiao2.mp3', 'audio/skill/reyicong1.mp3', @@ -1485,18 +1598,32 @@ window.noname_asset_list=[ 'audio/skill/reyiji2.mp3', 'audio/skill/reyingzi_heqi1.mp3', 'audio/skill/reyingzi_heqi2.mp3', + 'audio/skill/reyingzi_re_sunben1.mp3', + 'audio/skill/reyingzi_re_sunben2.mp3', 'audio/skill/reyingzi_sunce1.mp3', 'audio/skill/reyingzi_sunce2.mp3', 'audio/skill/reyingzi1.mp3', 'audio/skill/reyingzi2.mp3', + 'audio/skill/rezaiqi1.mp3', + 'audio/skill/rezaiqi2.mp3', + 'audio/skill/rezhiheng1.mp3', + 'audio/skill/rezhiheng2.mp3', + 'audio/skill/rezhijian1.mp3', + 'audio/skill/rezhijian2.mp3', + 'audio/skill/roulin_re_dongzhuo1.mp3', + 'audio/skill/roulin_re_dongzhuo2.mp3', 'audio/skill/roulin1.mp3', 'audio/skill/roulin2.mp3', + 'audio/skill/ruoyu_re_liushan1.mp3', + 'audio/skill/ruoyu_re_liushan2.mp3', 'audio/skill/ruoyu1.mp3', 'audio/skill/ruoyu2.mp3', 'audio/skill/sanjian_skill.mp3', 'audio/skill/sanyao1.mp3', 'audio/skill/sanyao2.mp3', 'audio/skill/sbaiyin.mp3', + 'audio/skill/sgrenwang1.mp3', + 'audio/skill/sgrenwang2.mp3', 'audio/skill/shangshi1.mp3', 'audio/skill/shangshi2.mp3', 'audio/skill/shangshix1.mp3', @@ -1521,8 +1648,12 @@ window.noname_asset_list=[ 'audio/skill/shengxi2.mp3', 'audio/skill/shenji1.mp3', 'audio/skill/shenji2.mp3', + 'audio/skill/shenju1.mp3', + 'audio/skill/shenju2.mp3', 'audio/skill/shenqu1.mp3', 'audio/skill/shenqu2.mp3', + 'audio/skill/shensu1_re_xiahouyuan1.mp3', + 'audio/skill/shensu1_re_xiahouyuan2.mp3', 'audio/skill/shensu1_xiahouba1.mp3', 'audio/skill/shensu1_xiahouba2.mp3', 'audio/skill/shensu11.mp3', @@ -1558,12 +1689,16 @@ window.noname_asset_list=[ 'audio/skill/shuangren2.mp3', 'audio/skill/shuangxiong.mp3', 'audio/skill/shuangxiong1.mp3', + 'audio/skill/shuangxiong1_re_yanwen.mp3', 'audio/skill/shuangxiong2.mp3', + 'audio/skill/shuangxiong2_re_yanwen.mp3', 'audio/skill/shuimeng.mp3', 'audio/skill/shuliang1.mp3', 'audio/skill/shuliang2.mp3', 'audio/skill/shushen1.mp3', 'audio/skill/shushen2.mp3', + 'audio/skill/sibian1.mp3', + 'audio/skill/sibian2.mp3', 'audio/skill/sidi.mp3', 'audio/skill/sidi1.mp3', 'audio/skill/sidi2.mp3', @@ -1571,8 +1706,18 @@ window.noname_asset_list=[ 'audio/skill/sijian2.mp3', 'audio/skill/songci1.mp3', 'audio/skill/songci2.mp3', + 'audio/skill/songshu1.mp3', + 'audio/skill/songshu2.mp3', + 'audio/skill/songwei2_re_caopi1.mp3', + 'audio/skill/songwei2_re_caopi2.mp3', 'audio/skill/songwei21.mp3', 'audio/skill/songwei22.mp3', + 'audio/skill/souying1.mp3', + 'audio/skill/souying2.mp3', + 'audio/skill/spell2131_1.mp3', + 'audio/skill/spell2131_2.mp3', + 'audio/skill/spjiedao1.mp3', + 'audio/skill/spjiedao2.mp3', 'audio/skill/sptunjiang1.mp3', 'audio/skill/sptunjiang2.mp3', 'audio/skill/spwenji1.mp3', @@ -1581,6 +1726,8 @@ window.noname_asset_list=[ 'audio/skill/spzhenwei2.mp3', 'audio/skill/suishi1.mp3', 'audio/skill/suishi2.mp3', + 'audio/skill/suzi1.mp3', + 'audio/skill/suzi2.mp3', 'audio/skill/taoluan1.mp3', 'audio/skill/taoluan2.mp3', 'audio/skill/taoxi1.mp3', @@ -1598,14 +1745,24 @@ window.noname_asset_list=[ 'audio/skill/tiandu_xizhicai2.mp3', 'audio/skill/tiandu1.mp3', 'audio/skill/tiandu2.mp3', + 'audio/skill/tianfu1.mp3', + 'audio/skill/tianfu2.mp3', 'audio/skill/tianming1.mp3', 'audio/skill/tianming2.mp3', 'audio/skill/tianxiang_daxiaoqiao1.mp3', 'audio/skill/tianxiang_daxiaoqiao2.mp3', + 'audio/skill/tianxiang_re_xiaoqiao1.mp3', + 'audio/skill/tianxiang_re_xiaoqiao2.mp3', 'audio/skill/tianxiang1.mp3', 'audio/skill/tianxiang2.mp3', 'audio/skill/tianyi1.mp3', 'audio/skill/tianyi2.mp3', + 'audio/skill/tiaoxin_gz_jiangwei1.mp3', + 'audio/skill/tiaoxin_gz_jiangwei2.mp3', + 'audio/skill/tiaoxin_re_jiangwei1.mp3', + 'audio/skill/tiaoxin_re_jiangwei2.mp3', + 'audio/skill/tiaoxin_sp_jiangwei1.mp3', + 'audio/skill/tiaoxin_sp_jiangwei2.mp3', 'audio/skill/tiaoxin_xiahouba1.mp3', 'audio/skill/tiaoxin_xiahouba2.mp3', 'audio/skill/tiaoxin1.mp3', @@ -1632,12 +1789,16 @@ window.noname_asset_list=[ 'audio/skill/wangxi2.mp3', 'audio/skill/wangzun1.mp3', 'audio/skill/wangzun2.mp3', + 'audio/skill/wanrong1.mp3', + 'audio/skill/wanrong2.mp3', 'audio/skill/wansha_boss_lvbu31.mp3', 'audio/skill/wansha_boss_lvbu32.mp3', 'audio/skill/wansha_shen_simayi1.mp3', 'audio/skill/wansha_shen_simayi2.mp3', 'audio/skill/wansha1.mp3', 'audio/skill/wansha2.mp3', + 'audio/skill/weicheng1.mp3', + 'audio/skill/weicheng2.mp3', 'audio/skill/weidi1.mp3', 'audio/skill/weidi2.mp3', 'audio/skill/weijing1.mp3', @@ -1645,6 +1806,8 @@ window.noname_asset_list=[ 'audio/skill/weimu1.mp3', 'audio/skill/weimu2.mp3', 'audio/skill/weizhong.mp3', + 'audio/skill/wendao1.mp3', + 'audio/skill/wendao2.mp3', 'audio/skill/wengua1.mp3', 'audio/skill/wengua2.mp3', 'audio/skill/wuhun21.mp3', @@ -1679,8 +1842,12 @@ window.noname_asset_list=[ 'audio/skill/wushuang_re_lvbu2.mp3', 'audio/skill/wushuang1.mp3', 'audio/skill/wushuang2.mp3', + 'audio/skill/wuxin1.mp3', + 'audio/skill/wuxin2.mp3', 'audio/skill/wuyan1.mp3', 'audio/skill/wuyan2.mp3', + 'audio/skill/wuyuan1.mp3', + 'audio/skill/wuyuan2.mp3', 'audio/skill/wylianji1.mp3', 'audio/skill/wylianji2.mp3', 'audio/skill/xianfu1.mp3', @@ -1689,6 +1856,8 @@ window.noname_asset_list=[ 'audio/skill/xianfu4.mp3', 'audio/skill/xianfu5.mp3', 'audio/skill/xianfu6.mp3', + 'audio/skill/xiangle_re_liushan1.mp3', + 'audio/skill/xiangle_re_liushan2.mp3', 'audio/skill/xiangle1.mp3', 'audio/skill/xiangle2.mp3', 'audio/skill/xiansi1.mp3', @@ -1703,12 +1872,22 @@ window.noname_asset_list=[ 'audio/skill/xianzhou2.mp3', 'audio/skill/xiaoguo1.mp3', 'audio/skill/xiaoguo2.mp3', + 'audio/skill/xiaoji_re_sunshangxiang1.mp3', + 'audio/skill/xiaoji_re_sunshangxiang2.mp3', 'audio/skill/xiaoji1.mp3', 'audio/skill/xiaoji2.mp3', 'audio/skill/xiaoji3.mp3', 'audio/skill/xiaoji4.mp3', + 'audio/skill/xiaoxi_hansui1.mp3', + 'audio/skill/xiaoxi_hansui2.mp3', + 'audio/skill/xiaoxi_machao1.mp3', + 'audio/skill/xiaoxi_machao2.mp3', + 'audio/skill/xiaoxi_pangde1.mp3', + 'audio/skill/xiaoxi_pangde2.mp3', 'audio/skill/xiashu1.mp3', 'audio/skill/xiashu2.mp3', + 'audio/skill/xiechan1.mp3', + 'audio/skill/xiechan2.mp3', 'audio/skill/xiemu1.mp3', 'audio/skill/xiemu2.mp3', 'audio/skill/xinenyuan.mp3', @@ -1739,6 +1918,8 @@ window.noname_asset_list=[ 'audio/skill/xinfu_fuhai2.mp3', 'audio/skill/xinfu_fujian1.mp3', 'audio/skill/xinfu_fujian2.mp3', + 'audio/skill/xinfu_fuyin1.mp3', + 'audio/skill/xinfu_fuyin2.mp3', 'audio/skill/xinfu_gongqing.mp3', 'audio/skill/xinfu_guanchao1.mp3', 'audio/skill/xinfu_guanchao2.mp3', @@ -1843,16 +2024,28 @@ window.noname_asset_list=[ 'audio/skill/xinfu_zuilun2.mp3', 'audio/skill/xingshang1.mp3', 'audio/skill/xingshang2.mp3', + 'audio/skill/xingshen1.mp3', + 'audio/skill/xingshen2.mp3', 'audio/skill/xingshuai1.mp3', 'audio/skill/xingshuai2.mp3', + 'audio/skill/xinguidao1.mp3', + 'audio/skill/xinguidao2.mp3', 'audio/skill/xingwu1.mp3', 'audio/skill/xingwu2.mp3', 'audio/skill/xingxue1.mp3', 'audio/skill/xingxue2.mp3', + 'audio/skill/xinjiewei1.mp3', + 'audio/skill/xinjiewei2.mp3', 'audio/skill/xinjuece1.mp3', 'audio/skill/xinjuece2.mp3', 'audio/skill/xinjujian1.mp3', 'audio/skill/xinjujian2.mp3', + 'audio/skill/xinjushou1.mp3', + 'audio/skill/xinjushou2.mp3', + 'audio/skill/xinleiji1.mp3', + 'audio/skill/xinleiji2.mp3', + 'audio/skill/xinlianhuan1.mp3', + 'audio/skill/xinlianhuan2.mp3', 'audio/skill/xinmieji1.mp3', 'audio/skill/xinmieji2.mp3', 'audio/skill/xinpojun1.mp3', @@ -1877,6 +2070,10 @@ window.noname_asset_list=[ 'audio/skill/xiongyi2.mp3', 'audio/skill/xiuluo1.mp3', 'audio/skill/xiuluo2.mp3', + 'audio/skill/xjshijian1.mp3', + 'audio/skill/xjshijian2.mp3', + 'audio/skill/xpchijie1.mp3', + 'audio/skill/xpchijie2.mp3', 'audio/skill/xuanfeng_boss_lvbu31.mp3', 'audio/skill/xuanfeng_boss_lvbu32.mp3', 'audio/skill/xuanfeng1.mp3', @@ -1897,6 +2094,8 @@ window.noname_asset_list=[ 'audio/skill/xushen2.mp3', 'audio/skill/xz_xunxun1.mp3', 'audio/skill/xz_xunxun2.mp3', + 'audio/skill/yanjiao1.mp3', + 'audio/skill/yanjiao2.mp3', 'audio/skill/yanxiao1.mp3', 'audio/skill/yanxiao2.mp3', 'audio/skill/yanyu1.mp3', @@ -1911,6 +2110,8 @@ window.noname_asset_list=[ 'audio/skill/yaowu2.mp3', 'audio/skill/yawang1.mp3', 'audio/skill/yawang2.mp3', + 'audio/skill/yechou1.mp3', + 'audio/skill/yechou2.mp3', 'audio/skill/yeyan1.mp3', 'audio/skill/yeyan2.mp3', 'audio/skill/yeyan3.mp3', @@ -1928,14 +2129,22 @@ window.noname_asset_list=[ 'audio/skill/yinbing2.mp3', 'audio/skill/yingbin1.mp3', 'audio/skill/yingbin2.mp3', + 'audio/skill/yinghun_re_sunben1.mp3', + 'audio/skill/yinghun_re_sunben2.mp3', + 'audio/skill/yinghun_re_sunjian1.mp3', + 'audio/skill/yinghun_re_sunjian2.mp3', 'audio/skill/yinghun_sunce1.mp3', 'audio/skill/yinghun_sunce2.mp3', + 'audio/skill/yinghun_sunjian1.mp3', + 'audio/skill/yinghun_sunjian2.mp3', 'audio/skill/yinghun1.mp3', 'audio/skill/yinghun2.mp3', 'audio/skill/yingyuan1.mp3', 'audio/skill/yingyuan2.mp3', 'audio/skill/yingzi1.mp3', 'audio/skill/yingzi2.mp3', + 'audio/skill/yinju1.mp3', + 'audio/skill/yinju2.mp3', 'audio/skill/yirang1.mp3', 'audio/skill/yirang2.mp3', 'audio/skill/yishe1.mp3', @@ -1949,6 +2158,8 @@ window.noname_asset_list=[ 'audio/skill/yizan_respond_shan2.mp3', 'audio/skill/yizan1.mp3', 'audio/skill/yizan2.mp3', + 'audio/skill/yizhi1.mp3', + 'audio/skill/yizhi2.mp3', 'audio/skill/yizhong1.mp3', 'audio/skill/yizhong2.mp3', 'audio/skill/yongjin1.mp3', @@ -1971,17 +2182,27 @@ window.noname_asset_list=[ 'audio/skill/yuehun2.mp3', 'audio/skill/yuhua1.mp3', 'audio/skill/yuhua2.mp3', + 'audio/skill/yuxu1.mp3', + 'audio/skill/yuxu2.mp3', 'audio/skill/zaiqi1.mp3', 'audio/skill/zaiqi2.mp3', + 'audio/skill/zaoxian_re_dengai1.mp3', + 'audio/skill/zaoxian_re_dengai2.mp3', 'audio/skill/zaoxian1.mp3', 'audio/skill/zaoxian2.mp3', + 'audio/skill/zfengshi1.mp3', + 'audio/skill/zfengshi2.mp3', 'audio/skill/zhangba_skill.mp3', + 'audio/skill/zhangwu1.mp3', + 'audio/skill/zhangwu2.mp3', 'audio/skill/zhanjue1.mp3', 'audio/skill/zhanjue2.mp3', 'audio/skill/zhanshen1.mp3', 'audio/skill/zhanshen2.mp3', 'audio/skill/zhanyi1.mp3', 'audio/skill/zhanyi2.mp3', + 'audio/skill/zhanyuan1.mp3', + 'audio/skill/zhanyuan2.mp3', 'audio/skill/zhaohuo1.mp3', 'audio/skill/zhaohuo2.mp3', 'audio/skill/zhaxiang1.mp3', @@ -1994,6 +2215,8 @@ window.noname_asset_list=[ 'audio/skill/zhenlie2.mp3', 'audio/skill/zhenwei1.mp3', 'audio/skill/zhenwei2.mp3', + 'audio/skill/zhiba2_re_sunben1.mp3', + 'audio/skill/zhiba2_re_sunben2.mp3', 'audio/skill/zhiba21.mp3', 'audio/skill/zhiba22.mp3', 'audio/skill/zhichi1.mp3', @@ -2002,8 +2225,12 @@ window.noname_asset_list=[ 'audio/skill/zhidao2.mp3', 'audio/skill/zhige1.mp3', 'audio/skill/zhige2.mp3', + 'audio/skill/zhiheng_gz_jun_sunquan1.mp3', + 'audio/skill/zhiheng_gz_jun_sunquan2.mp3', 'audio/skill/zhiheng1.mp3', 'audio/skill/zhiheng2.mp3', + 'audio/skill/zhiji_re_jiangwei1.mp3', + 'audio/skill/zhiji_re_jiangwei2.mp3', 'audio/skill/zhiji1.mp3', 'audio/skill/zhiji2.mp3', 'audio/skill/zhijian1.mp3', @@ -2045,6 +2272,8 @@ window.noname_asset_list=[ 'audio/skill/zishu2.mp3', 'audio/skill/ziyuan1.mp3', 'audio/skill/ziyuan2.mp3', + 'audio/skill/zniaoxiang1.mp3', + 'audio/skill/zniaoxiang2.mp3', 'audio/skill/zonghuo.mp3', 'audio/skill/zongkui1.mp3', 'audio/skill/zongkui2.mp3', @@ -2058,207 +2287,6 @@ window.noname_asset_list=[ 'audio/skill/zuoding1.mp3', 'audio/skill/zuoding2.mp3', - 'audio/skill/baonue2_re_dongzhuo1.mp3', - 'audio/skill/baonue2_re_dongzhuo2.mp3', - 'audio/skill/bazhen_re_sp_zhugeliang1.mp3', - 'audio/skill/bazhen_re_sp_zhugeliang2.mp3', - 'audio/skill/beige_re_caiwenji1.mp3', - 'audio/skill/beige_re_caiwenji2.mp3', - 'audio/skill/benghuai_re_dongzhuo1.mp3', - 'audio/skill/benghuai_re_dongzhuo2.mp3', - 'audio/skill/duanchang_re_caiwenji1.mp3', - 'audio/skill/duanchang_re_caiwenji2.mp3', - 'audio/skill/duanliang1_re_xuhuang1.mp3', - 'audio/skill/duanliang1_re_xuhuang2.mp3', - 'audio/skill/guanxing_re_jiangwei1.mp3', - 'audio/skill/guanxing_re_jiangwei2.mp3', - 'audio/skill/huoshou1_re_menghuo1.mp3', - 'audio/skill/huoshou1_re_menghuo2.mp3', - 'audio/skill/jianchu_re_pangde1.mp3', - 'audio/skill/jianchu_re_pangde2.mp3', - 'audio/skill/jiezi1.mp3', - 'audio/skill/jiezi2.mp3', - 'audio/skill/jiuchi_re_dongzhuo1.mp3', - 'audio/skill/jiuchi_re_dongzhuo2.mp3', - 'audio/skill/jixi_re_dengai1.mp3', - 'audio/skill/jixi_re_dengai2.mp3', - 'audio/skill/juxiang1_re_zhurong1.mp3', - 'audio/skill/juxiang1_re_zhurong2.mp3', - 'audio/skill/kuanggu_re_weiyan1.mp3', - 'audio/skill/kuanggu_re_weiyan2.mp3', - 'audio/skill/liegong_re_huangzhong1.mp3', - 'audio/skill/liegong_re_huangzhong2.mp3', - 'audio/skill/lskuizhu1.mp3', - 'audio/skill/lskuizhu2.mp3', - 'audio/skill/lslixun1.mp3', - 'audio/skill/lslixun2.mp3', - 'audio/skill/new_reyaowu1.mp3', - 'audio/skill/new_reyaowu2.mp3', - 'audio/skill/niepan_re_pangtong1.mp3', - 'audio/skill/niepan_re_pangtong2.mp3', - 'audio/skill/qimou1.mp3', - 'audio/skill/qimou2.mp3', - 'audio/skill/quhu_re_xunyu1.mp3', - 'audio/skill/quhu_re_xunyu2.mp3', - 'audio/skill/refangzhu1.mp3', - 'audio/skill/refangzhu2.mp3', - 'audio/skill/rehuashen1.mp3', - 'audio/skill/rehuashen2.mp3', - 'audio/skill/rehuoji1.mp3', - 'audio/skill/rehuoji2.mp3', - 'audio/skill/rejieming1.mp3', - 'audio/skill/rejieming2.mp3', - 'audio/skill/rekanpo1.mp3', - 'audio/skill/rekanpo2.mp3', - 'audio/skill/relieren1.mp3', - 'audio/skill/relieren2.mp3', - 'audio/skill/repolu1.mp3', - 'audio/skill/reqiangxi1.mp3', - 'audio/skill/reqiangxi2.mp3', - 'audio/skill/retuntian1.mp3', - 'audio/skill/retuntian2.mp3', - 'audio/skill/rexingshang1.mp3', - 'audio/skill/rexingshang2.mp3', - 'audio/skill/rexingsheng1.mp3', - 'audio/skill/rexingsheng2.mp3', - 'audio/skill/rezaiqi1.mp3', - 'audio/skill/rezaiqi2.mp3', - 'audio/skill/roulin_re_dongzhuo1.mp3', - 'audio/skill/roulin_re_dongzhuo2.mp3', - 'audio/skill/shensu1_re_xiahouyuan1.mp3', - 'audio/skill/shensu1_re_xiahouyuan2.mp3', - 'audio/skill/shuangxiong2_re_yanwen.mp3', - 'audio/skill/shuangxiong1_re_yanwen.mp3', - 'audio/skill/sibian1.mp3', - 'audio/skill/sibian2.mp3', - 'audio/skill/songshu1.mp3', - 'audio/skill/songshu2.mp3', - 'audio/skill/songwei2_re_caopi1.mp3', - 'audio/skill/songwei2_re_caopi2.mp3', - 'audio/skill/tianxiang_re_xiaoqiao1.mp3', - 'audio/skill/tianxiang_re_xiaoqiao2.mp3', - 'audio/skill/tiaoxin_re_jiangwei1.mp3', - 'audio/skill/tiaoxin_re_jiangwei2.mp3', - 'audio/skill/xinguidao1.mp3', - 'audio/skill/xinguidao2.mp3', - 'audio/skill/xinleiji1.mp3', - 'audio/skill/xinleiji2.mp3', - 'audio/skill/xinlianhuan1.mp3', - 'audio/skill/xinlianhuan2.mp3', - 'audio/skill/xpchijie1.mp3', - 'audio/skill/xpchijie2.mp3', - 'audio/skill/yinghun_sunjian1.mp3', - 'audio/skill/yinghun_sunjian2.mp3', - 'audio/skill/yinju1.mp3', - 'audio/skill/yinju2.mp3', - 'audio/skill/zaoxian_re_dengai1.mp3', - 'audio/skill/zaoxian_re_dengai2.mp3', - 'audio/skill/zhiji_re_jiangwei1.mp3', - 'audio/skill/zhiji_re_jiangwei2.mp3', - 'audio/skill/guanxing_re_zhugeliang1.mp3', - 'audio/skill/guanxing_re_zhugeliang2.mp3', - 'audio/skill/kongcheng_re_zhugeliang1.mp3', - 'audio/skill/kongcheng_re_zhugeliang2.mp3', - 'audio/skill/lijian_re_diaochan1.mp3', - 'audio/skill/lijian_re_diaochan2.mp3', - 'audio/skill/rebiyue1.mp3', - 'audio/skill/rebiyue2.mp3', - 'audio/skill/reguhuo1.mp3', - 'audio/skill/reguhuo2.mp3', - 'audio/skill/rejieyin1.mp3', - 'audio/skill/rejieyin2.mp3', - 'audio/skill/rejiuyuan1.mp3', - 'audio/skill/rejiuyuan2.mp3', - 'audio/skill/rejizhi1.mp3', - 'audio/skill/rejizhi2.mp3', - 'audio/skill/reluoshen1.mp3', - 'audio/skill/reluoshen2.mp3', - 'audio/skill/reqingguo1.mp3', - 'audio/skill/reqingguo2.mp3', - 'audio/skill/rezhiheng1.mp3', - 'audio/skill/rezhiheng2.mp3', - 'audio/skill/xiaoji_re_sunshangxiang1.mp3', - 'audio/skill/xiaoji_re_sunshangxiang2.mp3', - 'audio/skill/xjshijian1.mp3', - 'audio/skill/xjshijian2.mp3', - 'audio/skill/yuxu1.mp3', - 'audio/skill/yuxu2.mp3', - 'audio/skill/guzheng_re_zhangzhang1.mp3', - 'audio/skill/guzheng_re_zhangzhang2.mp3', - 'audio/skill/hmxili1.mp3', - 'audio/skill/hmxili2.mp3', - 'audio/skill/jiang_re_sunben1.mp3', - 'audio/skill/jiang_re_sunben2.mp3', - 'audio/skill/jijiang1_re_liushan1.mp3', - 'audio/skill/jijiang1_re_liushan2.mp3', - 'audio/skill/mansi1.mp3', - 'audio/skill/mansi2.mp3', - 'audio/skill/manyi1.mp3', - 'audio/skill/manyi2.mp3', - 'audio/skill/refangquan1.mp3', - 'audio/skill/refangquan2.mp3', - 'audio/skill/rehunzi1.mp3', - 'audio/skill/rehunzi2.mp3', - 'audio/skill/renshi1.mp3', - 'audio/skill/renshi2.mp3', - 'audio/skill/reyingzi_re_sunben1.mp3', - 'audio/skill/reyingzi_re_sunben2.mp3', - 'audio/skill/rezhijian1.mp3', - 'audio/skill/rezhijian2.mp3', - 'audio/skill/ruoyu_re_liushan1.mp3', - 'audio/skill/ruoyu_re_liushan2.mp3', - 'audio/skill/souying1.mp3', - 'audio/skill/souying2.mp3', - 'audio/skill/wuyuan1.mp3', - 'audio/skill/wuyuan2.mp3', - 'audio/skill/xiangle_re_liushan1.mp3', - 'audio/skill/xiangle_re_liushan2.mp3', - 'audio/skill/yinghun_re_sunben1.mp3', - 'audio/skill/yinghun_re_sunben2.mp3', - 'audio/skill/zhanyuan1.mp3', - 'audio/skill/zhanyuan2.mp3', - 'audio/skill/zhiba2_re_sunben1.mp3', - 'audio/skill/zhiba2_re_sunben2.mp3', - 'audio/skill/diancai1.mp3', - 'audio/skill/diancai2.mp3', - 'audio/skill/diaodu1.mp3', - 'audio/skill/diaodu2.mp3', - 'audio/skill/gz_jun_liubei.mp3', - 'audio/skill/gz_jun_sunquan.mp3', - 'audio/skill/gzzongyu1.mp3', - 'audio/skill/gzzongyu2.mp3', - 'audio/skill/hongfa_hp.mp3', - 'audio/skill/hongfa1.mp3', - 'audio/skill/hongfa2.mp3', - 'audio/skill/huangjintianbingfu1.mp3', - 'audio/skill/huangjintianbingfu2.mp3', - 'audio/skill/huibian1.mp3', - 'audio/skill/huibian2.mp3', - 'audio/skill/jiahe_put1.mp3', - 'audio/skill/jiahe_put2.mp3', - 'audio/skill/jiahe1.mp3', - 'audio/skill/jiahe2.mp3', - 'audio/skill/jianan1.mp3', - 'audio/skill/jianan2.mp3', - 'audio/skill/jizhao1.mp3', - 'audio/skill/jizhao2.mp3', - 'audio/skill/jubao1.mp3', - 'audio/skill/jubao2.mp3', - 'audio/skill/lianzi1.mp3', - 'audio/skill/lianzi2.mp3', - 'audio/skill/rerende_gz_jun_liubei1.mp3', - 'audio/skill/rerende_gz_jun_liubei2.mp3', - 'audio/skill/wendao1.mp3', - 'audio/skill/wendao2.mp3', - 'audio/skill/wuxin1.mp3', - 'audio/skill/wuxin2.mp3', - 'audio/skill/zhangwu1.mp3', - 'audio/skill/zhangwu2.mp3', - 'audio/skill/zhiheng_gz_jun_sunquan1.mp3', - 'audio/skill/zhiheng_gz_jun_sunquan2.mp3', - 'audio/skill/reluanji1.mp3', - 'audio/skill/reluanji2.mp3', - 'font/huangcao.ttf', 'font/shousha.ttf', 'font/xiaozhuan.ttf', @@ -2288,6 +2316,7 @@ window.noname_asset_list=[ 'image/background/zhanyun_bg.jpg', 'image/background/xinsha_bg.jpg', + 'image/card/mingguangkai.png', 'image/card/db_atk1.jpg', 'image/card/db_atk2.jpg', 'image/card/db_def1.jpg', @@ -2713,6 +2742,11 @@ window.noname_asset_list=[ 'image/character/yuantanyuanshang.jpg', 'image/character/old_majun.jpg', 'image/character/key_yukine.jpg', + 'image/character/old_guanqiujian.jpg', + 'image/character/old_huangfusong.jpg', + 'image/character/old_liushan.jpg', + 'image/character/old_yuanshao.jpg', + 'image/character/re_sunce.jpg', 'image/character/baiwuchang.jpg', 'image/character/baosanniang.jpg', @@ -4171,186 +4205,327 @@ window.noname_asset_list=[ ]; window.noname_skin_list={ baosanniang:2, - bulianshi:4, - caifuren:2, - caiwenji:2, - caoang:2, - caocao:3, - caochong:1, - caohong:3, - caojie:2, - caopi:4, - caoren:1, - caoxiu:1, + beimihu:3, + bulianshi:8, + buzhi:4, + caifuren:5, + caiwenji:11, + caiyong:3, + caoang:5, + caocao:14, + caochong:6, + caochun:3, + caohong:6, + caojie:5, + caopi:8, + caoren:5, + caorui:6, + caoxiu:3, caoying:1, - caozhang:2, - caozhen:1, - caozhi:3, - chengong:1, - chengpu:1, + caozhang:4, + caozhen:3, + caozhi:7, + cenhun:5, + chendao:1, + chendong:2, + chengong:6, + chengpu:7, + chengyu:4, chenlin:3, - chenqun:2, - daqiao:1, - dengai:4, - dianwei:2, - diaochan:4, - dingfeng:3, - dongzhuo:3, + chenqun:4, + daqiao:19, + daxiaoqiao:6, + dengai:8, + dianwei:7, + diaochan:14, + dingfeng:5, + dongbai:4, + dongyun:3, + dongzhuo:10, duji:2, fanchou:1, - fazheng:1, - fuhuanghou:3, - fuwan:1, - ganfuren:1, - ganning:2, - guanping:2, - guanyinping:2, - guanyu:2, - guanzhang:2, - guohuai:2, - guojia:4, + fazheng:7, + fuhuanghou:5, + fuwan:3, + ganfuren:6, + ganning:8, + gaoshun:5, + gongsunyuan:5, + gongsunzan:7, + guanping:6, + guansuo:2, + guanyinping:7, + guanyu:11, + guanzhang:6, + guohuai:4, + guohuanghou:5, + guojia:14, guosi:1, - guyong:2, - handang:2, - hetaihou:2, + guyong:5, + handang:6, + hanhaoshihuan:4, + hansui:3, + haozhao:1, + hejin:4, + heqi:3, + hetaihou:6, hs_kazhakusi:1, - huanggai:1, - huangyueying:2, - huangzhong:1, - huatuo:4, - jiangqing:1, - jiangwei:5, - jianyong:2, - jiaxu:3, + huanggai:10, + huanghao:3, + huangyueying:11, + huangzhong:9, + huatuo:11, + huaxiong:8, + jiangfei:1, + jiangqing:2, + jiangwei:7, + jianyong:6, + jiaxu:14, + jikang:2, + jiling:5, + jsp_guanyu:3, + jsp_huangyueying:6, jsp_zhaoyun:1, - kongrong:1, - liaohua:2, + kanze:4, + kongrong:5, + kuailiangkuaiyue:2, + liaohua:6, lijue:1, - lingju:1, - lingtong:2, - liru:2, - liubei:1, - liubiao:2, - liufeng:3, - liushan:2, - liuxie:3, - liuyan:1, + lingju:4, + lingtong:6, + liru:5, + litong:3, + liubei:14, + liubiao:5, + liuchen:5, + liufeng:5, + liushan:6, + liuxie:8, + liuyan:2, liuyao:1, - lusu:1, - luxun:2, - lvbu:1, + liuyu:2, + liyan:4, + luji:2, + lukang:2, + luxun:14, + luzhi:2, + lvbu:14, lvdai:1, - lvmeng:1, + lvkai:2, + lvmeng:11, lvqian:1, - machao:1, - madai:3, - maliang:1, - manchong:3, - mifuren:1, - pangde:1, - pangtong:2, + machao:10, + madai:6, + maliang:5, + manchong:5, + mateng:3, + mayunlu:8, + mazhong:4, + menghuo:5, + mifuren:4, + mizhu:4, + niujin:3, + panfeng:5, + pangde:6, + pangtong:6, panjun:1, - panzhangmazhong:2, - re_caocao:2, - re_daqiao:2, - re_ganning:2, - re_gongsunzan:1, - re_guanyu:1, - re_guojia:3, - re_huanggai:1, - re_lidian:2, - re_liubei:1, - re_luxun:3, - re_lvbu:1, - re_lvmeng:2, - re_machao:1, - re_simayi:3, - re_xiahoudun:1, - re_xushu:3, - re_xuzhu:2, - re_yuanshao:1, - re_yuji:3, - re_zhangfei:1, + panzhangmazhong:5, + qinmi:2, + quancong:4, + re_baosanniang:1, + re_caiwenji:11, + re_caocao:14, + re_caopi:7, + re_daqiao:19, + re_dengai:7, + re_dianwei:7, + re_diaochan:13, + re_dongzhuo:10, + re_ganning:8, + re_gongsunzan:6, + re_guanyu:11, + re_guojia:14, + re_huanggai:10, + re_huangyueying:9, + re_huangzhong:9, + re_huatuo:11, + re_huaxiong:8, + re_jiangwei:7, + re_jikang:1, + re_lidian:5, + re_liubei:14, + re_liushan:6, + re_lusu:9, + re_luxun:13, + re_lvbu:13, + re_lvmeng:11, + re_machao:10, + re_menghuo:5, + re_pangde:6, + re_pangtong:6, + re_simayi:14, + re_sp_zhugeliang:8, + re_sunben:10, + re_sunjian:5, + re_sunquan:8, + re_sunshangxiang:11, + re_wangyun:1, + re_weiwenzhugezhi:1, + re_weiyan:5, + re_xiahoudun:11, + re_xiaoqiao:10, + re_xuhuang:5, + re_xunyu:9, + re_xushu:5, + re_xuzhu:8, + re_yanwen:4, + re_yuanshao:7, + re_yuanshu:4, + re_yuji:4, + re_yujin:5, + re_zhangfei:12, + re_zhangjiao:7, re_zhangliang:1, - re_zhangliao:1, - re_zhaoyun:3, - re_zhouyu:3, - shen_caocao:1, - shen_lvbu:1, - shen_lvmeng:1, - shen_zhaoyun:1, - simahui:1, - simayi:2, - sp_caiwenji:3, - sp_caoren:1, - sp_diaochan:2, - sp_jiangwei:1, - sp_machao:2, - sp_sunshangxiang:3, - sp_zhangjiao:1, - sp_zhaoyun:3, - sp_zhugeliang:1, - sunce:4, - sunjian:3, - sunluban:1, - sunquan:4, - sunshangxiang:4, - swd_yuxiaoxue:1, - taishici:1, - tianfeng:1, - wangcan:1, - wangyi:4, - weiyan:2, - wenpin:1, - wuguotai:3, - wuxian:1, - wuyi:2, - xiahouba:1, - xiahoudun:1, - xiahoushi:2, - xiahouyuan:1, - xiaoqiao:3, - xin_fazheng:2, - xin_masu:1, - xuhuang:1, - xunyou:4, - xunyu:2, - xurong:1, - xusheng:1, - xushi:1, - xushu:1, - xuzhu:1, - yangxiu:2, - yanjun:1, - yj_jushou:2, - yuanshao:1, - yuanshu:4, - yuejin:3, - yufan:1, - yuji:1, - yujin:1, - zhangbao:1, - zhangchunhua:4, - zhanghe:1, - zhangji:1, - zhangliao:2, - zhangrang:1, - zhangsong:1, - zhangxingcai:2, - zhangzhang:2, - zhenji:3, - zhonghui:1, - zhoufang:1, - zhoutai:1, - zhouyu:3, - zhugedan:1, - zhugejin:3, - zhugeke:1, - zhugeliang:5, - zhuran:1, - zhurong:3, - zuoci:4, - + re_zhangliao:12, + re_zhangzhang:9, + re_zhaoyun:12, + re_zhenji:15, + re_zhouyu:15, + re_zhugeliang:7, + re_zhurong:6, + re_zuoci:8, + shamoke:1, + shen_caocao:4, + shen_guanyu:2, + shen_liubei:1, + shen_luxun:1, + shen_lvbu:3, + shen_lvmeng:3, + shen_simayi:1, + shen_zhaoyun:3, + shen_zhouyu:3, + shen_zhugeliang:3, shibing1:6, shibing2:6, + shixie:2, + simahui:1, + simalang:6, + simayi:14, + sp_caiwenji:8, + sp_caoren:4, + sp_diaochan:4, + sp_dongzhuo:10, + sp_jiangwei:4, + sp_machao:4, + sp_pangde:4, + sp_sunshangxiang:9, + sp_zhangjiao:8, + sp_zhaoyun:5, + sp_zhugeliang:8, + sunce:11, + sundeng:5, + sunhao:3, + sunjian:5, + sunliang:1, + sunluban:6, + sunluyu:6, + sunqian:4, + sunquan:8, + sunshangxiang:10, + sunxiu:4, + sunziliufang:2, + swd_yuxiaoxue:1, + tadun:1, + taishici:10, + tianfeng:5, + wangcan:1, + wangji:5, + wanglang:1, + wangping:1, + wangyi:8, + wangyun:2, + weiwenzhugezhi:2, + weiyan:5, + wenpin:5, + wuguotai:7, + wutugu:1, + wuxian:7, + wuyi:4, + xiahouba:5, + xiahoudun:11, + xiahoushi:7, + xiahouyuan:8, + xiaoqiao:10, + xin_fazheng:6, + xin_liru:5, + xin_masu:5, + xin_xushu:5, + xin_yuanshao:7, + xin_yuji:4, + xinxianying:6, + xizhicai:5, + xuezong:4, + xuhuang:5, + xunyou:7, + xunyu:9, + xurong:1, + xusheng:5, + xushi:6, + xuyou:2, + xushu:1, + xuzhu:8, + yanbaihu:2, + yangxiu:5, + yanwen:4, + yanjun:1, + yanyan:1, + yj_jushou:4, + yl_luzhi:1, + yl_yuanshu:7, + yuanshao:1, + yuanshu:7, + yuejin:4, + yufan:5, + yuji:1, + yujin:6, + zangba:3, + zhangbao:5, + zhangchunhua:11, + zhangfei:12, + zhanggong:1, + zhanghe:6, + zhangji:1, + zhangjiao:7, + zhangliao:12, + zhanglu:5, + zhangqiying:1, + zhangrang:4, + zhangsong:4, + zhangxingcai:10, + zhangxiu:3, + zhangyi:3, + zhangzhang:9, + zhaoxiang:6, + zhaoyun:13, + zhenji:15, + zhonghui:6, + zhongyao:4, + zhoucang:4, + zhoufang:1, + zhoufei:4, + zhoutai:6, + zhouyu:15, + zhugedan:4, + zhugeguo:5, + zhugejin:8, + zhugeke:6, + zhugeliang:8, + zhugezhan:2, + zhuhuan:4, + zhuran:4, + zhurong:6, + zhuzhi:3, + zoushi:5, + zumao:3, + zuoci:8, }; \ No newline at end of file diff --git a/game/game.js b/game/game.js index ebca2f39f..2de13bdf8 100644 --- a/game/game.js +++ b/game/game.js @@ -20,6 +20,7 @@ dying:[], globalHistory:[{ cardMove:[], + custom:[], }], }; var lib={ @@ -1336,7 +1337,7 @@ // music:'音乐', official:'原版', // new:'新版', - // feicheng:'废城', + feicheng:'废城', liusha:'流沙', ol:'手杀', custom:'自定', @@ -4147,6 +4148,12 @@ frequent:true, restart:true, }, + connect_change_card:{ + name:'启用手气卡', + init:false, + frequent:true, + restart:true, + }, connect_special_identity:{ name:'特殊身份', init:false, @@ -4633,6 +4640,12 @@ restart:true, intro:'若开启此选项,玩家的第一个回合开始时,若其主武将牌有对应的君主武将牌,则其可以将此武将牌替换为对应的君主武将牌,然后重新调整体力上限。若玩家的体力上限因此增大,则玩家回复等量的体力。' }, + connect_change_card:{ + name:'启用手气卡', + init:false, + frequent:true, + restart:true, + }, // connect_ban_weak:{ // name:'屏蔽弱将', // init:false, @@ -4940,10 +4953,10 @@ frequent:true }, connect_replace_handcard:{ - name:'末位可换牌', + name:'四号位保护', init:true, frequent:true, - intro:'最后行动的角色可在开局时重铸一次手牌' + intro:'最后行动的角色起始手牌数+1' }, connect_choice_num:{ name:'侯选武将数', @@ -5210,10 +5223,10 @@ frequent:true, }, replace_handcard_two:{ - name:'末位可换牌', + name:'四号位保护', init:true, frequent:true, - intro:'最后行动的角色可在开局时重铸一次手牌' + intro:'最后行动的角色起始手牌+1' }, replace_character_two:{ name:'替补模式', @@ -5406,6 +5419,12 @@ frequent:true, restart:true, }, + connect_change_card:{ + name:'启用手气卡', + init:false, + frequent:true, + restart:true, + }, }, config:{ update:function(config,map){ @@ -10129,9 +10148,10 @@ player.ai.tempIgnore=[]; _status.globalHistory.push({ cardMove:[], + custom:[], }); game.countPlayer2(function(current){ - current.actionHistory.push({useCard:[],respond:[],skipped:[],lose:[],gain:[],sourceDamage:[],damage:[]}); + current.actionHistory.push({useCard:[],respond:[],skipped:[],lose:[],gain:[],sourceDamage:[],damage:[],custom:[]}); current.stat.push({card:{},skill:{}}); }); if(ui.land&&ui.land.player==player){ @@ -10322,10 +10342,10 @@ } }, addJudgeCard:function(){ - target.addJudge(card,cards); + if(lib.filter.judge(card,player,target)&&cards.length&&get.position(cards[0],true)=='o') target.addJudge(card,cards); }, equipCard:function(){ - target.equip(cards[0]); + if(cards.length&&get.position(cards[0],true)=='o') target.equip(cards[0]); }, gameDraw:function(){ "step 0" @@ -10538,11 +10558,11 @@ } event.filter2=function(info2){ var info=lib.skill[info2[0]]; - if(!lib.translate[info2[0]]||info2[0].indexOf('_')==0||info.popup===false||info.silent) return false; + if(!lib.translate[info2[0]]||info.popup===false||info.silent) return false; return true; } event.filter3=function(info,info2){ - return event.filter2(info2)&&event.filter1(info2)&&info2[1]==info[1]&&info[2]==info2[2]&&info[1].hasSkill(info2[0],true); + return event.filter2(info2)&&event.filter1(info2)&&info2[1]==info[1]&&info[2]==info2[2]&&(lib.skill.global.contains(info2[0])||info[1].hasSkill(info2[0],true)); } 'step 1' if(event.list.length){ @@ -11013,6 +11033,7 @@ if(result&&result.bool){ var hs=player.getCards('h') game.broadcastAll(function(player,hs){ + game.addVideo('lose',player,[get.cardsInfo(hs),[],[]]); for(var i=0;i0)){ - if(num==0){ - if(event.delayx!==false){ - if(event.waitingForTransition){ - _status.waitingForTransition=event.waitingForTransition; - game.pause(); - } - else{ - game.delayx(); - } - } - } - else if(event.targetDelay!==false){ + if(!info.nodelay&&num>0){ + if(event.targetDelay!==false){ game.delayx(0.5); } } @@ -14766,6 +14788,10 @@ if(_status.roundStart==player){ _status.roundStart=player.next||player.getNext()||game.players[0]; } + if(ui.land&&ui.land.player==player){ + game.addVideo('destroyLand'); + ui.land.destroy(); + } var unseen=false; if(player.classList.contains('unseen')){ player.classList.remove('unseen'); @@ -22914,58 +22940,61 @@ }, addTrigger:function(skill,player){ if(!player) return; - var evt=this.getParent('arrangeTrigger'); - if(!evt||evt.name!='arrangeTrigger'||!evt.map) return; - if(typeof skill=='string') skill=[skill]; - game.expandSkills(skill); - var filter=function(content){ - if(typeof content=='string') return content==triggername; - return content.contains(triggername); - }; - var trigger=evt._trigger; - var triggername=evt.triggername; - var map=false; - if(evt.doing&&evt.doing.player==player) map=evt.doing; - else{ - for(var i=0;i0; + return _status.currentPhase&&_status.currentPhase.inline(player)&&!player.hasSkill('kanpo')&&player.countCards('h',{color:'black'})>0; }, }, yizhi:{ @@ -5383,6 +5383,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, niaoxiang:{ zhenfa:'siege', + audio:'zniaoxiang', global:'niaoxiang_sha' }, niaoxiang_sha:{ @@ -5395,6 +5396,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }); }, forced:true, + audio:'zniaoxiang', + forceaudio:true, logTarget:'target', content:function(){ var id=trigger.target.playerid; @@ -5415,6 +5418,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, fengshi_sha:{ audio:'zfengshi', + forceaudio:true, trigger:{player:'useCardToPlayered'}, filter:function(event,player){ if(event.card.name!='sha'||game.countPlayer()<4) return false; @@ -5762,7 +5766,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ } }, gzqianxun:{ - audio:'reqianxun', + audio:'qianxun', trigger:{target:'useCardToTarget',player:'addJudgeBefore'}, forced:true, priority:15, @@ -7156,7 +7160,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ hmkyuanyu:"远域", "hmkyuanyu_info":"锁定技,当你受到伤害时,若伤害来源与你的座次不相邻,防止此伤害。", hmkguishu:"鬼术", - "hmkguishu_info":"出牌阶段,你可以将一张黑桃手牌当作【知己知彼】或【远交近攻】使用。若你本回合内已经发动过了“鬼术”,则你必须选择与上次不同的选项。", + "hmkguishu_info":"出牌阶段,你可以将一张黑桃手牌当作【知己知彼】或【远交近攻】使用。若你本局游戏内已经发动过了〖鬼术〗,则你必须选择与上次不同的选项。", "_mingzhisuodingji":"亮将", "_mingzhisuodingji_info":"出牌阶段,你可以明置拥有“锁定技”的武将牌。", @@ -7499,7 +7503,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ prompt+=',令'+get.translation(target)+str+'选择是否执行'; } player.chooseButton([prompt,[list,'vcard']],true).set('ai',function(button){ - return get.junlingEffect(player,button.link[2],target,[],player); + return get.junlingEffect(_status.event.player,button.link[2],_status.event.getParent().target,[],_status.event.player); }); 'step 1' event.result={ @@ -8316,63 +8320,63 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ return 0; }, junlingEffect:function(source,junling,performer,targets,viewer){ - var att1=get.attitude(viewer,source),att2=get.attitude(viewer,performer); - var eff1=0,eff2=0; - switch(junling){ - case 'junling1': - if(!targets.length&&game.countPlayer(function(current){return get.damageEffect(viewer,current,viewer)>0})) eff1=2; - else{ - if(get.damageEffect(targets[0],performer,source)>=0) eff1=2; - else eff1=-2; - if(get.damageEffect(targets[0],source,performer)>=0) eff2=2; - else eff2=-2; - } - break; - case 'junling2': - if(performer.countCards('he')){eff1=1;eff2=0;} - else{eff1=2;eff2=-1;} - break; - case 'junling3': - if(performer.hp==1&&!performer.countCards(function(card){return get.tag(card,save)})&&!player.hasSkillTag('save',true)) eff2=-5; - else{ - if(performer==viewer){ - if(performer.hasSkillTag('maihp',true)) eff2=3; - else eff2=-2; - } - else{ - if(performer.hasSkillTag('maihp',false)) eff2=3; - else eff2=-2; - } - } - break; - case 'junling4':eff1=0;eff2=-2;break; - case 'junling5': - var td=performer.isTurnedOver(); - if(td){ - if(performer==viewer){ - if(_status.currentPhase==performer&&performer.hasSkill('jushou')) eff2=-3; - else eff2=3; - } - else eff2=3; - } - else{ - if(performer==viewer){ - if(performer.hasSkillTag('noturn',true)) eff2=0; - else eff2=-3; - } - else{ - if(performer.hasSkillTag('noturn',false)) eff2=0; - else eff2=-3; - } - } - break; - case 'junling6': - if(performer.countCards('h')>1) eff2+=1-performer.countCards('h'); - if(performer.countCards('e')>1) eff2+=1-performer.countCards('e'); - break; + var att1=get.attitude(viewer,source),att2=get.attitude(viewer,performer); + var eff1=0,eff2=0; + switch(junling){ + case 'junling1': + if(!targets.length&&game.countPlayer(function(current){return get.damageEffect(viewer,current,viewer)>0})) eff1=2; + else{ + if(get.damageEffect(targets[0],performer,source)>=0) eff1=2; + else eff1=-2; + if(get.damageEffect(targets[0],source,performer)>=0) eff2=2; + else eff2=-2; + } + break; + case 'junling2': + if(performer.countCards('he')){eff1=1;eff2=0;} + else{eff1=2;eff2=-1;} + break; + case 'junling3': + if(performer.hp==1&&!performer.hasSkillTag('save',true)) eff2=-5; + else{ + if(performer==viewer){ + if(performer.hasSkillTag('maihp',true)) eff2=3; + else eff2=-2; } - return Math.sign(att1)*eff1+Math.sign(att2)*eff2; - }, + else{ + if(performer.hasSkillTag('maihp',false)) eff2=3; + else eff2=-2; + } + } + break; + case 'junling4':eff1=0;eff2=-2;break; + case 'junling5': + var td=performer.isTurnedOver(); + if(td){ + if(performer==viewer){ + if(_status.currentPhase==performer&&performer.hasSkill('jushou')) eff2=-3; + else eff2=3; + } + else eff2=3; + } + else{ + if(performer==viewer){ + if(performer.hasSkillTag('noturn',true)) eff2=0; + else eff2=-3; + } + else{ + if(performer.hasSkillTag('noturn',false)) eff2=0; + else eff2=-3; + } + } + break; + case 'junling6': + if(performer.countCards('h')>1) eff2+=1-performer.countCards('h'); + if(performer.countCards('e')>1) eff2+=1-performer.countCards('e'); + break; + } + return Math.sign(att1)*eff1+Math.sign(att2)*eff2; + }, realAttitude:function(from,toidentity,difficulty){ if(from.identity==toidentity&&toidentity!='ye'){ return 4+difficulty; diff --git a/mode/identity.js b/mode/identity.js index 19ad0a4e6..9db89b538 100644 --- a/mode/identity.js +++ b/mode/identity.js @@ -295,8 +295,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ _status.videoInited=true; game.addVideo('init',null,info); "step 6" - game.gameDraw(_status.firstAct2||game.zhong||game.zhu||_status.firstAct||game.me); + if(_status.connectMode&&lib.configOL.change_card) game.replaceHandcards(game.players.slice(0)); + "step 7" game.phaseLoop(_status.firstAct2||game.zhong||game.zhu||_status.firstAct||game.me); }, game:{ @@ -625,13 +626,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ list.remove('shen'); if(list.length) player.group=function(){ if(_status.mode!='zhong'&&game.zhu&&game.zhu.group){ - if(['re_zhangjiao','liubei','re_liubei','caocao','re_caocao','sunquan','re_sunquan','zhangjiao','sp_zhangjiao','caopi','re_caopi','liuchen','caorui','sunliang','sunxiu','sunce','re_sunben'].contains(game.zhu.name)) return game.zhu.group; + if(['re_zhangjiao','liubei','re_liubei','caocao','re_caocao','sunquan','re_sunquan','zhangjiao','sp_zhangjiao','caopi','re_caopi','liuchen','caorui','sunliang','sunxiu','sunce','re_sunben','old_liushan','old_yuanshao'].contains(game.zhu.name)) return game.zhu.group; if(game.zhu.name=='sunhao'&&player.identity=='zhong') return 'wu'; if(game.zhu.name=='yl_yuanshu'){ if(player.identity=='zhong') list.remove('qun'); else return 'qun'; } - if(['sunhao','xin_yuanshao','re_yuanshao'].contains(game.zhu.name)){ + if(['sunhao','xin_yuanshao','re_yuanshao','re_sunce'].contains(game.zhu.name)){ if(player.identity!='zhong') list.remove(game.zhu.group); else return game.zhu.group; } diff --git a/mode/tafang.js b/mode/tafang.js index 3ae808ff2..6a94264e9 100644 --- a/mode/tafang.js +++ b/mode/tafang.js @@ -5,6 +5,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ canvasUpdates2:[], start:function(){ "step 0" + _status.gameDrawed=true; lib.init.css(lib.assetURL+'layout/mode','chess'); lib.init.css(lib.assetURL+'layout/mode','tafang'); game.loadMode('chess'); diff --git a/mode/versus.js b/mode/versus.js index 884716ac9..5a31eede4 100644 --- a/mode/versus.js +++ b/mode/versus.js @@ -307,10 +307,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ if(firstChoose.next.side==firstChoose.side){ firstChoose=firstChoose.next; } - game.gameDraw(firstChoose); - if(lib.configOL.replace_handcard){ - game.replaceHandcards(firstChoose.previous); - } + game.gameDraw(firstChoose,function(player){ + if(lib.configOL.replace_handcard&&player==firstChoose.previousSeat){ + return 5; + } + return 4; + }); game.phaseLoop(firstChoose); } else if(_status.mode=='4v4'){ @@ -330,10 +332,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ _status.first_less=true; _status.first_less_forced=true; var firstChoose=_status.firstAct; - game.gameDraw(firstChoose); - if(get.config('replace_handcard_two')){ - game.replaceHandcards(firstChoose.previous); - } + game.gameDraw(firstChoose,function(player){ + if(player==_status.firstAct.previousSeat&&get.config('replace_handcard_two')){ + return 5; + } + return 4; + }); game.phaseLoop(firstChoose); } else if(_status.mode=='endless'){ @@ -5792,6 +5796,179 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ } return this; }, + dieAfter2:function(source){ + if(_status.connectMode){ + if(_status.mode=='1v1'||_status.mode=='3v3') return; + else if(_status.mode=='2v2'){ + var friend; + for(var i=0;i2)){ + return; + } + else if(game.friend.length==1&&this==game.friend[0]&&_status.friend.length==0){ + return; + } + else if(game.enemy.length==1&&this==game.enemy[0]&&_status.enemy.length==0){ + return; + } + else{ + if(source){ + if(source.side!=this.side){ + if(lib.storage.versus_reward){ + source.draw(lib.storage.versus_reward); + } + } + else{ + if(lib.storage.versus_punish=='弃牌'){ + source.discard(source.getCards('he')); + } + else if(lib.storage.versus_punish=='摸牌'&&lib.storage.versus_reward){ + source.draw(lib.storage.versus_reward); + } + } + } + else{ + game.delay(); + } + } + } + }, dieAfter:function(source){ if(_status.connectMode){ if(_status.mode=='1v1'||_status.mode=='3v3'){ @@ -5829,19 +6006,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ friend=game.players[i];break; } } - if(friend){ - var next=game.createEvent('versusDraw'); - next.setContent(function(){ - 'step 0' - player.chooseBool('是否摸一张牌?'); - 'step 1' - if(result.bool){ - player.draw(); - } - }); - next.player=friend; - } - else{ + if(!friend){ game.over(this.side!=game.me.side); } } @@ -5850,25 +6015,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ game.over(this.side!=game.me.side); } else{ - if(source){ - if(source.side==this.side){ - if(source.identity=='zhu'){ - source.discard(source.getCards('he')); - } - } - else{ - var num1=0,num2=1; - for(var i=0;i