diff --git a/card/extra.js b/card/extra.js index e1a2831b7..1bf9a5a30 100644 --- a/card/extra.js +++ b/card/extra.js @@ -621,10 +621,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){ trigger.untrigger(); trigger.responded=true; trigger.result={bool:true,card:result.links[0],cards:result.links.slice(0)}; - var muniu=player.getEquip(5); - muniu.cards.remove(result.links[0]); - lib.skill.muniu_skill.sync(muniu); - player.updateMarks(); } }, ai:{ @@ -668,18 +664,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){ selectCard:-1, viewAs:links[0], precontent:function(){ - var muniu=player.getEquip(5); - var card=event.result.card; - if(muniu&&muniu.cards){ - muniu.cards.remove(event.result.card); - lib.skill.muniu_skill.sync(muniu); - } - event.result.card=get.autoViewAs(card); - event.result.cards=[card]; - delete event.result.skill; - player.updateMarks(); - } - } +- delete event.result.skill; +- }, + }; }, prompt:function(links){ return '选择'+get.translation(links)+'的目标'; @@ -742,7 +729,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){ } }, muniu_skill7:{ - filter:function(){return false}, hiddenCard:function(player,name){ var muniu=player.getEquip(5); if(!muniu.cards) return false; @@ -752,6 +738,24 @@ game.import('card',function(lib,game,ui,get,ai,_status){ } return false; }, + trigger:{global:'cardsGotoOrderingEnd'}, + silent:true, + firstDo:true, + filter:function(event,player){ + var muniu=player.getEquip('muniu'); + if(!muniu||!muniu.cards) return false; + return event.cards&&event.cards.filter(function(card){ + return muniu.cards.contains(card); + }).length>0; + }, + content:function(){ + var muniu=player.getEquip(5); + if(muniu&&muniu.cards){ + muniu.cards.remove(trigger.cards); + lib.skill.muniu_skill.sync(muniu); + } + player.updateMarks(); + }, }, huogong2:{}, jiu:{ diff --git a/card/standard.js b/card/standard.js index 60e814597..25da9b6df 100644 --- a/card/standard.js +++ b/card/standard.js @@ -1958,6 +1958,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' + delete event.wuxieresult; + delete event.wuxieresult2; if(trigger.multitarget){ event.targets=trigger.targets; } @@ -1970,7 +1972,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ event.sourcex2=trigger.player; } event.source=trigger.player; - event.state=true; + if(event.state==undefined) event.state=true; event.card=trigger.card; event._global_waiting=true; event.tempnowuxie=(trigger.targets&&trigger.targets.length>1&&!trigger.multitarget); diff --git a/character/diy.js b/character/diy.js index 129997d86..de2849bc5 100755 --- a/character/diy.js +++ b/character/diy.js @@ -10952,7 +10952,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ inari_huhun:'狐魂', inari_huhun_info:'锁定技,你的♣牌的花色均视为♦。你的手牌上限+1。', shiina_qingshen:'轻身', - shiina_qingshen_info:'当你受到或造成伤害后,你可以获得此次伤害的渠道对应的实体牌,然后将等量的武将牌置于你的武将牌上,称为「轻」。锁定技,你的手牌上限和攻击范围+X(X为「轻」数)。', + shiina_qingshen_info:'当你受到或造成伤害后,你可以获得此次伤害的渠道对应的实体牌,然后将等量的牌置于你的武将牌上,称为「轻」。锁定技,你的手牌上限和攻击范围+X(X为「轻」数)。', shiina_feiyan:'飞燕', shiina_feiyan_info:'一名其他角色的回合开始时,若其在你的攻击范围内,则你可以将一张「轻」置于弃牌堆,然后视为对其使用一张【杀】。若此【杀】未造成伤害,你摸一张牌。你于此【杀】的结算流程中视为拥有技能【铁骑】。', shiina_retieji:'铁骑', diff --git a/character/extra.js b/character/extra.js index efd15b5d6..348b9eeb3 100755 --- a/character/extra.js +++ b/character/extra.js @@ -3602,7 +3602,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ key_kagari:'篝', kagari_zongsi:'纵丝', kagari_zongsi_info:'出牌阶段限一次,你可以选择一张不在游戏外的牌,然后将其置于牌堆/弃牌堆的顶部/底部或一名角色的对应区域内。', - key_shiki:'神山识', + key_shiki:'神山识', + key_shiki_ab:'神山识', shiki_omusubi:'御结', shiki_omusubi_info:'一轮游戏开始时,你可以减1点体力上限,然后将一名其他角色武将牌上的技能加入到你的武将牌上。', shiki_omusubi_append:'来吧,羽依里。用你的手,让我变成那只真正的鬼吧!', diff --git a/character/mobile.js b/character/mobile.js index f6eea090f..080154d17 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -11,11 +11,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ mobile_sunben:["re_sunben"], mobile_standard:["xin_xiahoudun"], mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian"], - mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng","xin_chengpu","xin_jianyong","xin_gongsunzan"], + mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng","xin_chengpu","xin_jianyong","xin_gongsunzan","xin_zhuran"], mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","liuzan"], }, }, character:{ + xin_zhuran:['male','wu',4,['mobiledanshou'],['unseen']], xin_gongsunzan:['male','qun',4,['xinyicong','qiaomeng']], dingyuan:['male','qun',4,['beizhu']], xin_jianyong:['male','shu',3,['xinqiaoshui','xinjyzongshi']], @@ -42,7 +43,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ yangbiao:['male','qun',3,['zhaohan','rangjie','yizheng']], re_sp_zhugeliang:["male","shu",3,["bazhen","rehuoji","rekanpo"],[]], xin_xiahoudun:['male','wei',4,['reganglie','xinqingjian']], - zhangyì:['male','shu',4,['zhiyi']], + zhangyì:['male','shu',4,['rezhiyi']], jiakui:['male','wei',3,['zhongzuo','wanlan']], re_jikang:["male","wei",3,["new_qingxian","new_juexiang"]], old_bulianshi:['female','wu',3,['anxu','zhuiyi']], @@ -299,6 +300,51 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, characterFilter:{}, skill:{ + //手杀朱然 + //设计师你改技能有瘾🐴 + mobiledanshou:{ + trigger:{global:'phaseJieshuBegin'}, + audio:2, + direct:true, + filter:function(event,player){ + if(player.countCards('he')>=event.player.countCards('h')) return true; + return game.hasPlayer2(function(current){ + return current.getHistory('useCard',function(evt){ + return get.type(evt.card)!='equip'&&evt.targets.contains(player); + }).length; + }); + }, + content:function(){ + 'step 0' + var list=[]; + event.addIndex=0; + var num=game.countPlayer2(function(current){ + return current.getHistory('useCard',function(evt){ + return get.type(evt.card)!='equip'&&evt.targets.contains(player); + }).length; + }); + event.num=num; + if(num) list.push('摸'+get.cnNumber(num)+'张牌'); + else event.addIndex++; + var num2=trigger.player.countCards('h'); + event.num2=num2; + if(num2&&player.countCards('he')>=num2) list.push('弃置'+get.cnNumber(num2)+'张牌并对'+get.translation(trigger.player)+'造成1点伤害'); + else if(!num2) list.push('对'+get.translation(trigger.player)+'造成1点伤害'); + player.chooseControl('cancel2').set('prompt',get.prompt('mobiledanshou')).set('choiceList',list); + 'step 1' + if(result.control!='cancel2'){ + player.logSkill('mobiledanshou',trigger.player); + if(result.index+event.addIndex==0){ + player.draw(num); + event.finish(); + } + else if(event.num2) player.chooseToDiscard('he',true,event.num2); + } + else event.finish(); + 'step 2' + trigger.player.damage(); + }, + }, //丁原 //程序员和设计师至少有一个脑子有坑 beizhu:{ @@ -2389,6 +2435,58 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, }, + rezhiyi:{ + audio:'zhiyi', + trigger:{global:'phaseJieshuBegin'}, + forced:true, + filter:function(event,player){ + return player.getHistory('useCard',function(card){ + return get.type(card.card)=='basic'; + }).length>0||player.getHistory('respond',function(card){ + return get.type(card.card)=='basic'; + }).length>0; + }, + content:function(){ + 'step 0' + var list=[]; + player.getHistory('useCard',function(evt){ + if(get.type(evt.card)!='basic') return; + var name=evt.card.name; + if(name=='sha'){ + var nature=evt.card.nature; + switch(nature){ + case 'fire':name='huosha';break; + case 'thunder':name='leisha';break; + case 'kami':name='kamisha';break; + } + } + list.add(name); + }); + player.getHistory('respond',function(evt){ + if(get.type(evt.card)!='basic') return; + var name=evt.card.name; + if(name=='sha'){ + var nature=evt.card.nature; + switch(nature){ + case 'fire':name='huosha';break; + case 'thunder':name='leisha';break; + case 'kami':name='kamisha';break; + } + } + list.add(name); + }); + player.chooseButton(['执义:选择要使用的牌,或点取消摸一张牌',[list.map(function(name){ + return ['基本','',name]; + }),'vcard']],function(button){ + return _status.event.player.getUseValue({name:button.link[2],nature:button.link[3]}); + },function(button){ + return _status.event.player.hasUseTarget({name:button.link[2],nature:button.link[3]}); + }); + 'step 1' + if(!result.bool) player.draw(); + else player.chooseUseTarget({name:result.links[0][2],isCard:true,nature:result.links[0][3]}); + }, + }, zhiyi:{ audio:2, trigger:{player:['useCard','respond']}, @@ -5889,6 +5987,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ jiakui:'贾逵', zhiyi:'执义', zhiyi_info:'锁定技,当你于一回合内使用或打出第一张基本牌时,你选择一项:1.摸一张牌。2.于此牌A(若此牌是因响应牌B而使用或打出的,则改为牌B)的使用或打出流程结算完成后,视为使用一张与此牌名称和属性相同的卡牌。', + rezhiyi:'执义', + rezhiyi_info:'锁定技,一名角色的结束阶段开始时,若你本回合内使用或打出过基本牌,则你选择一项:1.摸一张牌。2.视为使用一张本回合内使用或打出过的基本牌。', zhongzuo:'忠佐', zhongzuo_info:'一名角色的结束阶段开始时,若你于此回合内造成或受到过伤害,则你可以令一名角色摸两张牌。若该角色已受伤,则你摸一张牌。', wanlan:'挽澜', @@ -6103,6 +6203,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ beizhu:'备诛', beizhu_draw:'备诛', beizhu_info:'出牌阶段限一次,你可以观看一名其他角色的手牌。若其中:没有【杀】,你弃置其一张牌,然后你可令其获得牌堆中的一张【杀】;有【杀】,其依次对你使用这些【杀】,当你因此受到1点伤害后,你摸一张牌。', + xin_zhuran:'手杀朱然', + mobiledanshou:'胆守', + mobiledanshou_info:'一名角色的结束阶段开始时,你可选择一项:①摸X张牌(X为本回合内目标包含你的非装备牌的数量)。②弃置Y张牌并对当前回合角色造成1点伤害(Y为其手牌数)。', mobile_standard:'手杀异构·标准包', mobile_shenhua:'手杀异构·神话再临', mobile_yijiang1:'手杀异构·一将成名', diff --git a/character/refresh.js b/character/refresh.js index 6017cc69d..5a674a10d 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -2446,7 +2446,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "step 0" player.chooseToCompare(target); "step 1" - if(result.player&&get.name(result.player.name,player)=='sha') player.addTempSkill('rexianzhen4'); + if(result.player&&get.name(result.player,player)=='sha') player.addTempSkill('rexianzhen4'); if(result.bool){ player.storage[event.name]=target; player.addTempSkill(event.name+2); @@ -3382,54 +3382,78 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.updateMarks('rehuashen'); }, }, - "reguhuo":{ + reguhuo:{ audio:2, - group:["reguhuo_guess","reguhuo_respond","reguhuo_wuxie"], derivation:'rechanyuan', - enable:"chooseToUse", - filter:function (event,player){ - if(!player.countCards('h')||player.hasSkill('reguhuo_phase')) return false; - var list=['sha','tao','shan','jiu','taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman']; - if(get.mode()=='guozhan'){ - list=list.concat(['xietianzi','shuiyanqijunx','lulitongxin','lianjunshengyan','chiling','diaohulishan','yuanjiao','huoshaolianying']); - } - for(var i=0;i0&&!player.hasSkill('reguhuo_phase')&& + event.type!='respondShan'&&event.type!='wuxie'; }, chooseButton:{ - dialog:function (){ + dialog:function(){ var list=[]; - for(var i=0;i0) return '不质疑'; - return Math.random()<0.5?'不质疑':'质疑'; - }); - } - 'step 2' - if(!result.control) result.control='不质疑'; - //event.guessers[0].chat(result.control); - //game.delay(); - if(result.control=='不质疑'){ - //game.log(event.guessers[0],'#g不质疑'); - event.ally.push(event.guessers[0]); - }else{ - //game.log(event.guessers[0],'#y质疑'); - event.betray.push(event.guessers[0]); - } - event.guessers.remove(event.guessers[0]); - if(event.guessers.length) event.goto(1); - 'step 3' - for(var i=0;i0) return '不质疑'; - return Math.random()<0.5?'不质疑':'质疑'; - }); - } - 'step 3' - if(!result.control) result.control='不质疑'; - //event.guessers[0].chat(result.control); - //game.delay(); - if(result.control=='不质疑'){ - //game.log(event.guessers[0],'#g不质疑'); - event.ally.push(event.guessers[0]); - }else{ - //game.log(event.guessers[0],'#y质疑'); - event.betray.push(event.guessers[0]); - } - event.guessers.remove(event.guessers[0]); - if(event.guessers.length) event.goto(2); - 'step 4' - for(var i=0;i0; - }, + reguhuo_sha:{ + enable:'chooseToRespond', viewAs:{ - name:"wuxie", + name:'sha', + suit:'none', + number:null, + }, + viewAsFilter:function(player){ + return player.countCards('h')&&!player.hasSkill('reguhuo_phase'); }, check:function(card){ - if(card.name=='wuxie') return 1000; - return 0; + var player=_status.event.player; + var hasEnemy=game.hasPlayer(function(current){ + return current!=player&&!current.hasSkill('rechanyuan')&&(get.realAttitude||get.attitude)(current,player)<0; + }); + var cardx='sha'; + if(hasEnemy){ + if(card.name==cardx) return 10; + return 0; + } + return 6-get.value(card); + }, + prompt:'将一张牌当做【杀】打出', + filterCard:true, + position:'h', + ai:{ + order:4, }, - prompt:"将一张手牌当无懈可击使用", - threaten:1.2, }, + reguhuo_shan:{ + enable:['chooseToUse','chooseToRespond'], + viewAs:{ + name:'shan', + suit:'none', + number:null, + }, + viewAsFilter:function(player){ + return player.countCards('h')&&!player.hasSkill('reguhuo_phase'); + }, + check:function(card){ + var player=_status.event.player; + var hasEnemy=game.hasPlayer(function(current){ + return current!=player&&!current.hasSkill('rechanyuan')&&(get.realAttitude||get.attitude)(current,player)<0; + }); + var cardx='shan'; + if(hasEnemy){ + if(card.name==cardx) return 10; + return 0; + } + return 6-get.value(card); + }, + prompt:'将一张牌当做【闪】使用或打出', + filterCard:true, + position:'h', + ai:{ + order:4, + }, + }, + reguhuo_wuxie:{ + enable:'chooseToUse', + viewAs:{ + name:'wuxie', + suit:'none', + number:null, + }, + check:function(card){ + var player=_status.event.player; + var hasEnemy=game.hasPlayer(function(current){ + return current!=player&&!current.hasSkill('rechanyuan')&&(get.realAttitude||get.attitude)(current,player)<0; + }); + var cardx='wuxie'; + if(hasEnemy){ + if(card.name==cardx) return 10; + return 0; + } + return 6-get.value(card); + }, + viewAsFilter:function(player){ + return player.countCards('h')&&!player.hasSkill('reguhuo_phase'); + }, + filterCard:true, + prompt:'将一张牌当做【无懈可击】使用', + position:'h', + ai:{ + order:4, + }, + }, + reguhuo_guess:{ + trigger:{ + player:['useCardBefore','respondBefore'], + }, + forced:true, + silent:true, + popup:false, + firstDo:true, + filter:function(event,player){ + return event.skill&&event.skill.indexOf('reguhuo_')==0; + }, + content:function(){ + 'step 0' + player.addTempSkill('reguhuo_phase'); + event.fake=false; + var card=trigger.cards[0]; + if(card.name!=trigger.card.name||(trigger.name!='respond'&&card.name=='sha'&&(trigger.card.nature||card.nature)&&trigger.card.nature!=card.nature)) event.fake=true; + player.logSkill('reguhuo'); + player.line(trigger.targets,get.nature(trigger.card)); + event.cardTranslate=get.translation(trigger.card.name); + trigger.card.number=get.number(card); + trigger.card.suit=get.suit(card); + //trigger.line=false; + trigger.skill='reguhuo_backup'; + if(trigger.card.name=='sha'&&trigger.card.nature) event.cardTranslate=get.translation(trigger.card.nature)+event.cardTranslate; + player.popup(event.cardTranslate,trigger.name=='useCard'?'metal':'wood'); + event.prompt='是否质疑'+get.translation(player)+'声明的'+event.cardTranslate+'?'; + game.log(player,'声明了','#y'+event.cardTranslate); + event.targets=game.filterPlayer(function(current){ + return current!=player&&!current.hasSkill('rechanyuan'); + }).sortBySeat(); + event.targets2=event.targets.slice(0); + player.lose(card,ui.ordering).relatedEvent=trigger; + if(!event.targets.length) event.goto(5); + else if(_status.connectMode) event.goto(3); + event.betrays=[]; + 'step 1' + event.target=targets.shift(); + event.target.chooseButton([event.prompt,[['reguhuo_ally','reguhuo_betray'],'vcard']],true,function(button){ + var player=_status.event.player; + var evt=_status.event.getParent('reguhuo_guess'); + if(!evt) return Math.random(); + var ally=button.link[2]=='reguhuo_ally'; + if(ally&&(player.hp<=1||get.attitude(player,evt.player)>=0)) return 1.1; + return Math.random(); + }); + 'step 2' + if(result.links[0][2]=='reguhuo_betray'){ + event.betrays.push(target); + target.addExpose(0.2); + } + event.goto(targets.length?1:5); + 'step 3' + var list=event.targets.map(function(target){ + return [target,[event.prompt,[['reguhuo_ally','reguhuo_betray'],'vcard']],true]; + }); + player.chooseButtonOL(list).set('switchToAuto',function(){ + _status.event.result='ai'; + }).set('processAI',function(){ + var choice=Math.random()>0.5?'reguhuo_ally':'reguhuo_betray'; + var player=_status.event.player; + var evt=_status.event.getParent('reguhuo_guess'); + if(player.hp<=1||evt&&(get.realAttitude||get.attitude)(player,evt.player)>=0) choice='reguhuo_ally'; + return { + bool:true, + links:[['','',choice]], + } + }); + 'step 4' + for(var i in result){ + if(result[i].links[0][2]=='reguhuo_betray'){ + event.betrays.push(lib.playerOL[i]); + lib.playerOL[i].addExpose(0.2); + } + } + 'step 5' + for(var i of event.targets2){ + var b=event.betrays.contains(i); + i.popup(b?'质疑':'不质疑',b?'fire':'wood'); + game.log(i,b?'#y质疑':'#g不质疑'); + } + game.delay(); + 'step 6' + player.showCards(trigger.cards); + if(event.betrays.length){ + event.betrays.sortBySeat(); + if(event.fake){ + game.asyncDraw(event.betrays); + trigger.cancel(); + trigger.getParent().goto(0); + game.log(player,'声明的','#y'+event.cardTranslate,'作废了') + } + else{ + var next=game.createEvent('reguhuo_final',false); + event.next.remove(next); + trigger.after.push(next); + next.targets=event.betrays; + next.setContent(lib.skill.reguhuo_guess.contentx); + event.finish(); + } + } + else event.finish(); + 'step 7' + game.delayx(); + }, + contentx:function(){ + 'step 0' + event.target=targets.shift(); + event.target.chooseToDiscard('弃置一张牌或失去1点体力').set('ai',function(card){ + return 9-get.value(card); + }); + 'step 1' + if(!result.bool) target.loseHp(); + 'step 2' + target.addSkill('rechanyuan'); + if(targets.length) event.goto(0); + }, + }, + reguhuo_backup:{}, reguhuo_phase:{}, rechanyuan:{ //charlotte:true, @@ -3650,6 +3684,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player:["phaseBefore","changeHp"], }, priority:99, + firstDo:true, forced:true, popup:false, unique:true, @@ -7758,18 +7793,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xin_yuji:'界于吉', re_zuoci:'界左慈', - "reguhuo":"蛊惑", - "reguhuo_info":"每名角色的回合限一次,你可以扣置一张手牌当一张基本牌或普通锦囊牌使用或打出。其他角色依次选择是否质疑。然后,你展示此牌。若有质疑的角色:若此牌为假,则此牌作废,且所有质疑者各摸一张牌;为真,则所有质疑角色须弃置一张牌或失去1点体力,并获得技能〖缠怨〗。", - "reguhuo_guess":"蛊惑", - "reguhuo_guess_info":"", + reguhuo:"蛊惑", + reguhuo_info:"每名角色的回合限一次,你可以扣置一张手牌当作一张基本牌或普通锦囊牌使用或打出。其他角色同时选择是否质疑。然后,你展示此牌。若有质疑的角色:若此牌为假,则此牌作废,且所有质疑者各摸一张牌;为真,则所有质疑角色于此牌结算完成后依次弃置一张牌或失去1点体力,并获得技能〖缠怨〗。", + reguhuo_guess:"蛊惑", + reguhuo_guess_info:"", rechanyuan:"缠怨", - "rechanyuan_info":"锁定技,你不能质疑于吉,只要你的体力值不大于1,你失去你的武将技能。", - "reguhuo_respond":"蛊惑", - "reguhuo_respond_info":"", - "reguhuo_wuxie":"蛊惑", - "reguhuo_wuxie_info":"", - "reguhuo_phase":"蛊惑", - "reguhuo_phase_info":"", + rechanyuan_info:"锁定技,你不能质疑于吉,只要你的体力值不大于1,你失去你的武将技能。", + reguhuo_sha:"蛊惑", + reguhuo_shan:"蛊惑", + reguhuo_wuxie:"蛊惑", + reguhuo_ally:'信任', + reguhuo_betray:'质疑', + reguhuo_ally_bg:'真', + reguhuo_betray_bg:'假', rehuashen:'化身', rehuashen_info:'游戏开始后,你随机获得三张未加入游戏的武将牌,选一张置于你面前并声明该武将牌的一项技能,你拥有该技能且同时将性别和势力属性变成与该武将相同直到该化身被替换。你的每个准备阶段和结束后,你可以选择一项:①弃置至多两张未展示的化身牌并重新获得等量化身牌;②更换所展示的化身牌或技能。(你不可声明限定技、觉醒技或主公技)。', rexinsheng:'新生', diff --git a/character/shenhua.js b/character/shenhua.js index 01148ef06..3ce70dcc8 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -2010,7 +2010,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ marktext:'审', intro:{ content:function(storage,player,skill){ - if(player.storage.nzry_shenshi==true) return '其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张'; + if(player.storage.nzry_shenshi==true) return '其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张'; return '出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张'; }, }, @@ -7156,8 +7156,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return '转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。'; }, nzry_shenshi:function(player){ - if(player.storage.nzry_shenshi==true) return '转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张。'; - return '转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张。'; + if(player.storage.nzry_shenshi==true) return '转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。'; + return '转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。'; }, }, translate:{ @@ -7205,7 +7205,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "nzry_jianxiang_info":"当你成为其他角色使用牌的目标时,你可令手牌数最少的一名角色摸一张牌。", "nzry_shenshi1":"审时", "nzry_shenshi":"审时", - "nzry_shenshi_info":"转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张。", + "nzry_shenshi_info":"转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。", "nzry_mingren":"明任", "nzry_mingren_info":"游戏开始时,你摸一张牌,然后将你的一张手牌置于你的武将牌上,称为“任”。结束阶段,你可以用手牌替换“任”。", "nzry_zhenliang":"贞良", diff --git a/character/sp.js b/character/sp.js index d30c560c4..3dea9308a 100755 --- a/character/sp.js +++ b/character/sp.js @@ -957,6 +957,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return { audio:'xinjingong', filterCard:true, + popname:true, position:'he', viewAs:{name:links[0][2]}, check:function(card){ diff --git a/character/sp2.js b/character/sp2.js index 069972def..0d3a66e9b 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -4,7 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ name:'sp2', connect:true, character:{ - xin_baosanniang:['male','shu',3,['xinfu_wuniang','decadexushen']], + xin_baosanniang:['female','shu',3,['xinfu_wuniang','decadexushen']], re_hejin:['male','qun',4,['spmouzhu']], hansui:['male','qun',4,['spniluan','spweiwu']], liuhong:['male','qun',4,['yujue','tuxing'],['unseen']], @@ -1426,7 +1426,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.popup(trigger.card.name,trigger.name=='useCard'?'metal':'wood'); 'step 1' var random=0.5+player.countCards('e')*0.1; - if(get.isLuckyStar(player)||trigger.card.name=='wuxie') random=1; + if(get.isLuckyStar(player)) random=1; if(random>=Math.random()){ player.popup('洗具'); } @@ -1460,7 +1460,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ lvli4:{ log:false, enable:'chooseToUse', - filter:function(event,player){ + viewAsFilter:function(player){ if(player.storage.lvli>1) return false; if(player.storage.lvli>0&&(player!=_status.currentPhase||!player.storage.choujue)) return false; return true; @@ -1481,7 +1481,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ lvli5:{ log:false, enable:'chooseToUse', - filter:function(event,player){ + viewAsFilter:function(player){ if(player.storage.lvli>1) return false; if(player.storage.lvli>0&&(player!=_status.currentPhase||!player.storage.choujue)) return false; return true; @@ -5718,6 +5718,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ str+='伤害后,你可选择:1,若你的体力值大于你的手牌数,你摸X张牌;2,若你的手牌数大于你的体力值且你已受伤,你回复X点体力(X为你的手牌数与体力值之差)。'; return str; }, + lvli:function(player){ + var str='每名角色的回合限一次'; + if(player.storage.choujue) str+='(自己的回合内则改为限两次)'; + str+=',你可以声明一个基本牌或普通锦囊牌的牌名,有随机概率视为使用之(装备区里的牌数越多,成功概率越大)'; + if(player.storage.beishui) str+='。当你受到伤害后,你也可以以此法使用一张牌。'; + return str; + }, mubing:function(player){ if(player.storage.mubing2) return '出牌阶段开始时,你可以展示牌堆顶的四张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。然后你可将以此法获得的牌以任意方式交给其他角色。'; return '出牌阶段开始时,你可以展示牌堆顶的三张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。'; @@ -5830,7 +5837,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ pingjian_info:'结束阶段开始时/当你受到伤害后/出牌阶段限一次,你可以令系统随机从剩余武将牌堆中检索出三张拥有发动时机为结束阶段开始时/当你受到伤害后/出牌阶段的技能的武将牌。然后你可以选择尝试发动其中一个技能或摸一张牌。每个技能每局只能选择一次。', pingjian_use:'评荐', pytianjiang:'天匠', - pytianjiang_info:'游戏开始时,你随机获得两张不同副类别的装备牌,并置入你的装备区。出牌阶段,你装备区里的牌可以移动至其他角色的装备区并替换其原有装备。', + pytianjiang_info:'游戏开始时,你随机获得两张不同副类别的装备牌,并置入你的装备区。出牌阶段,你可以将装备区的牌移动至其他角色的装备区(可替换原装备)。若你以此法移动了〖铸刃〗的衍生装备,你摸两张牌。', pytianjiang_move:'天匠', pyzhuren:'铸刃', pyzhuren_info:'出牌阶段限一次,你可以弃置一张手牌。根据此牌的花色点数,你有一定概率打造成功并获得一张武器牌(若打造失败或武器已有则改为摸一张【杀】,花色决定武器名称,点数决定成功率)。此武器牌进入弃牌堆时,将其移出游戏。', diff --git a/character/yijiang.js b/character/yijiang.js index 8b7b3635f..0a0ab59c4 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -5284,7 +5284,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, trigger:{player:'useCard2'}, filter:function(event,player){ - return (event.card.name=='sha'||get.type(event.card)=='trick')&& + return player.storage.xinxianzhen&&player.storage.xinxianzhen.isAlive()&& + (event.card.name=='sha'||get.type(event.card)=='trick')&& event.targets&&event.targets.length==1&&!event.targets.contains(player.storage.xinxianzhen); }, check:function(event,player){ @@ -7248,7 +7249,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filterCard:function(card){ return get.type(card)!='basic'&&get.color(card)=='black'; }, - viewAs:{name:links[0][2],nature:links[0][3],suit:null,number:null,isCard:true}, + viewAs:{ + name:links[0][2], + nature:links[0][3], + suit:'none', + number:null, + isCard:true, + }, position:'he', popname:true, ignoreMod:true, diff --git a/game/config.js b/game/config.js index 7b26faa1f..d0672905d 100644 --- a/game/config.js +++ b/game/config.js @@ -1,5 +1,5 @@ window.config={ - forbidai:['ns_liuzhang','xin_yuji','re_yuji'], + forbidai:['ns_liuzhang','yuji','re_yuji'], forbidai_user:[], forbidall:[], forbidstone:['zhugedan','pal_xuanxiao','hs_malfurion','lusu','chenlin','hs_siwangzhiyi', diff --git a/game/game.js b/game/game.js index d61693b0f..711215efe 100644 --- a/game/game.js +++ b/game/game.js @@ -49007,7 +49007,7 @@ //} //return suit; } - else if(get.itemtype(card.cards)=='cards'&&!lib.suit.contains(card.suit)){ + else if(get.itemtype(card.cards)=='cards'&&card.suit!='none'&&!lib.suit.contains(card.suit)){ return get.suit(card.cards,player); } else{ @@ -49026,7 +49026,7 @@ } return color; } - else if(get.itemtype(card.cards)=='cards'&&!lib.suit.contains(card.suit)){ + else if(get.itemtype(card.cards)=='cards'&&card.suit!='none'&&!lib.suit.contains(card.suit)){ return get.color(card.cards,player); } else{ diff --git a/game/update.js b/game/update.js index 78e805743..f3670f6be 100644 --- a/game/update.js +++ b/game/update.js @@ -1,16 +1,16 @@ window.noname_update={ - version:'1.9.105.8', - update:'1.9.105.7', + version:'1.9.105.8.1', + update:'1.9.105.8', changeLog:[ - '界曹休、界孙休、新鲍三娘', + '界于吉解禁', + '张翼技能调整', 'bug修复', - ], files:[ - //'card/extra.js', + 'card/extra.js', //'card/huanlekapai.js', //'card/sp.js', - //'card/standard.js', + 'card/standard.js', //'card/swd.js', //'card/mtg.js', //'card/gujian.js', @@ -20,8 +20,8 @@ window.noname_update={ //'card/zhenfa.js', //'card/zhulu.js', 'character/diy.js', - //'character/extra.js', - 'character/hearth.js', + 'character/extra.js', + //'character/hearth.js', //'character/gujian.js', //'character/gwent.js', //'character/hearth.js', @@ -29,7 +29,7 @@ window.noname_update={ //'character/mtg.js', //'character/old.js', 'character/refresh.js', - //'character/shenhua.js', + 'character/shenhua.js', 'character/sp.js', 'character/sp2.js', //'character/tw.js', @@ -42,12 +42,12 @@ window.noname_update={ //'extension/boss/extension.js', //'layout/default/layout.css', //'layout/nova/layout.css', - 'mode/identity.js', + //'mode/identity.js', //'mode/doudizhu.js', - 'mode/guozhan.js', - 'mode/chess.js', - 'mode/tafang.js', - 'mode/single.js', + //'mode/guozhan.js', + //'mode/chess.js', + //'mode/tafang.js', + //'mode/single.js', //'mode/stone.js', //'mode/brawl.js', //'mode/versus.js', @@ -56,7 +56,7 @@ window.noname_update={ //'game/keyWords.js', //'game/server.js', //'game/NoSleep.js', - //'game/config.js', + 'game/config.js', //'game/package.js', //'game/asset.js', //'game/source.js', diff --git a/image/character/shen_diaochan.jpg b/image/character/shen_diaochan.jpg index 78272a62a..a084686d7 100644 Binary files a/image/character/shen_diaochan.jpg and b/image/character/shen_diaochan.jpg differ