From a6c10eb1ff69f6d314a1eab8ac4a45cc6c6970c0 Mon Sep 17 00:00:00 2001 From: Spmario233 Date: Fri, 30 Aug 2019 23:02:50 +0800 Subject: [PATCH] v1.9.9.2.2(Part 2) --- character/mobile.js | 457 ++++++++++++++++++++++++++++++++++- character/old.js | 2 +- character/refresh.js | 11 +- character/shenhua.js | 59 +++-- character/sp.js | 239 +++++++++++++----- character/standard.js | 10 +- character/xinghuoliaoyuan.js | 106 ++------ character/yijiang.js | 120 +++++---- 8 files changed, 756 insertions(+), 248 deletions(-) diff --git a/character/mobile.js b/character/mobile.js index ffdc1b15e..cc906299f 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -6,8 +6,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ connect:true, characterSort:{ mobile:{ - mobile_default:["miheng","taoqian","liuzan","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong"], + mobile_default:["miheng","taoqian","liuzan","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei"], mobile_fire:["re_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","re_pangtong","xin_yuanshao"], + mobile_forest:['re_zhurong','re_menghuo'], mobile_others:["re_jikang","old_bulianshi","old_caochun","old_yuanshu"], }, }, @@ -19,7 +20,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ liuzan:['male','wu',4,['fenyin']],lingcao:['male','wu',4,['dujin']], sunru:['female','wu',3,['yingjian','shixin']], lifeng:['male','shu',3,['tunchu','shuliang']], - zhuling:['male','wei',4,['zhanyi']], + zhuling:['male','wei',4,['xinzhanyi']], liuye:['male','wei',3,['polu','choulve']], zhaotongzhaoguang:["male","shu",4,["yizan_use","xinfu_longyuan"],[]], majun:["male","wei",3,["xinfu_jingxie1","xinfu_qiaosi"],[]], @@ -34,16 +35,466 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xin_yuanshao:['male','qun',4,['reluanji','xueyi'],['zhu']], old_caochun:['male','wei',4,['shanjia']], old_yuanshu:['male','qun',4,['xinyongsi','yjixi']], + + shenpei:["male","qun","2/3",["shouye","liezhi"],[]], + re_zhurong:['female','shu',4,['juxiang','relieren']], + re_menghuo:['male','shu',4,['huoshou','rezaiqi']], + }, + characterIntro:{ + shenpei:'审配(?-204年),字正南,魏郡阴安(今河北清丰北)人。为人正直, 袁绍领冀州,审配被委以腹心之任,并总幕府。河北平定,袁绍以审配、逢纪统军事,审配恃其强盛,力主与曹操决战。曾率领弓弩手大破曹军于官渡。官渡战败,审配二子被俘,反因此受谮见疑,幸得逢纪力保。袁绍病死,审配等矫诏立袁尚为嗣,导致兄弟相争,被曹操各个击破。曹操围邺,审配死守数月,终城破被擒,拒不投降,慷慨受死。', + }, + card:{ + pss_paper:{ + type:'pss', + derivation:'shenpei', + }, + pss_scissor:{ + type:'pss', + derivation:'shenpei', + }, + pss_stone:{ + type:'pss', + derivation:'shenpei', + }, }, characterFilter:{}, - skill:{}, + skill:{ + relieren:{ + audio:'lieren', + audioname:['boss_lvbu3'], + trigger:{player:'shaBegin'}, + filter:function(event,player){ + return player.canCompare(event.target); + }, + check:function(event,player){ + return get.attitude(player,event.target)<0; + }, + priority:5, + content:function(){ + "step 0" + player.chooseToCompare(trigger.target); + "step 1" + if(result.bool&&trigger.target.countGainableCards(player,'he')){ + player.gainPlayerCard(trigger.target,true,'he'); + } + else{ + var card1=result.player; + var card2=result.target; + if(get.position(card1)=='d') trigger.target.gain(card1,'gain2'); + if(get.position(card2)=='d') player.gain(card2,'gain2'); + } + } + }, + rezaiqi:{ + init:function(player,skill){ + player.storage[skill]=0; + }, + audio:'zaiqi', + direct:true, + filter:function(event,player){ + return player.storage.rezaiqi>0; + }, + trigger:{ + player:'phaseDiscardBegin' + }, + content:function(){ + 'step 0' + player.chooseTarget([1,player.storage.rezaiqi],get.prompt2('rezaiqi')).ai=function(target){ + return get.attitude(_status.event.player,target); + }; + 'step 1' + if(result.bool){ + var targets=result.targets; + targets.sortBySeat(); + player.line(targets,'fire'); + player.logSkill('rezaiqi',targets); + event.targets=targets; + } + else event.finish(); + 'step 2' + event.current=targets.shift(); + if(player.isHealthy()) event._result={index:0}; + else event.current.chooseControl().set('choiceList',[ + '摸一张牌', + '令'+get.translation(player)+'回复一点体力', + ]).set('ai',function(){ + if(get.attitude(event.current,player)>0) return 1; + return 0; + }); + 'step 3' + if(result.index==1){ + event.current.line(player); + player.recover(); + } + else event.current.draw(); + game.delay(); + if(targets.length) event.goto(2); + }, + group:'rezaiqi_count', + }, + rezaiqi_count:{ + trigger:{ + global:["loseEnd","cardsDiscardEnd"], + player:'phaseAfter', + }, + silent:true, + forced:true, + popup:false, + filter:function (event,player,name){ + if(name=='phaseAfter') return true; + if(_status.currentPhase!=player) return false; + var evt=event.getParent(); + if(evt&&evt.name=='useCard'&&evt.card&&['equip','delay'].contains(get.type(evt.card))) return false; + var cards=event.cards; + for(var i=0;i0; + }).ai=function(target){ + var player=_status.event.player; + return get.effect(player,{name:'guohe'},target,player); + }; + 'step 1' + if(result.bool){ + result.targets.sortBySeat(); + event.targets=result.targets; + player.line(result.targets,'green'); + player.logSkill('liezhi',result.targets); + } + else event.finish(); + 'step 2' + event.current=targets.shift(); + player.discardPlayerCard(event.current,'hej',true) + if(targets.length) event.redo(); + 'step 3' + if(player.storage.liezhi){ + trigger.liezhi=true; + player.addSkill('liezhi_disable'); + } + }, + subSkill:{ + disable:{ + sub:true, + trigger:{player:'phaseAfter'}, + forced:true, + silent:true, + popup:false, + charlotte:true, + filter:function(event){return !event.liezhi}, + content:function(){player.removeSkill('liezhi_disable')}, + }, + damage:{ + trigger:{player:'damage'}, + forced:true, + silent:true, + popup:false, + content:function(){player.storage.liezhi=true} + }, + }, + }, + xinzhanyi:{ + audio:'zhanyi', + enable:'phaseUse', + usable:1, + filterCard:true, + position:'he', + check:function(card){ + var player=_status.event.player; + if(player.hp<3) return 0; + var type=get.type(card,'trick'); + if(type=='trick'){ + return 6-get.value(card); + } + else if(type=='equip'){ + if(player.hasSha()&&game.hasPlayer(function(current){ + return (player.canUse('sha',current)&& + get.attitude(player,current)<0&& + get.effect(current,{name:'sha'},player,player)>0) + })){ + return 6-get.value(card); + } + } + return 0; + }, + content:function(){ + player.loseHp(); + switch(get.type(cards[0],'trick')){ + case 'basic':player.addTempSkill('xinzhanyi_basic');break; + case 'equip':player.addTempSkill('xinzhanyi_equip');break; + case 'trick':player.addTempSkill('xinzhanyi_trick');player.draw(3);break; + } + }, + ai:{ + order:9.1, + result:{ + player:1 + } + } + }, + xinzhanyi_basic1:{ + trigger:{player:"useCard"}, + filter:function(event,player){ + return event.skill=='xinzhanyi_basic_backup'&&!player.storage.xinzhanyi_basic1; + }, + forced:true, + silent:true, + popup:false, + onremove:true, + content:function(){ + trigger.xinzhanyi=true; + player.storage.xinzhanyi_basic1=true; + }, + }, + xinzhanyi_basic2:{ + trigger:{source:['damageBegin','recoverBegin']}, + forced:true, + silent:true, + popup:false, + filter:function(event){ + return event.getParent(2).xinzhanyi==true; + }, + content:function(){ + trigger.num++ + }, + }, + xinzhanyi_basic:{ + group:['xinzhanyi_basic1','xinzhanyi_basic2'], + enable:"chooseToUse", + filter:function (event,player){ + if(event.filterCard({name:'sha'},player,event)|| + event.filterCard({name:'jiu'},player,event)|| + event.filterCard({name:'tao'},player,event)){ + return player.hasCard(function(card){ + return get.type(card)=='basic'; + },'h'); + } + return false; + }, + chooseButton:{ + dialog:function (event,player){ + var list=[]; + if(event.filterCard({name:'sha'},player,event)){ + list.push(['基本','','sha']); + list.push(['基本','','sha','fire']); + list.push(['基本','','sha','thunder']); + } + if(event.filterCard({name:'tao'},player,event)){ + list.push(['基本','','tao']); + } + if(event.filterCard({name:'jiu'},player,event)){ + list.push(['基本','','jiu']); + } + return ui.create.dialog('战意',[list,'vcard'],'hidden'); + }, + check:function (button){ + var player=_status.event.player; + var card={name:button.link[2],nature:button.link[3]}; + if(game.hasPlayer(function(current){ + return player.canUse(card,current)&&get.effect(current,card,player,player)>0; + })){ + switch(button.link[2]){ + case 'tao':return 5; + case 'jiu':{ + if(player.countCards('h',{type:'basic'})>=2) return 3; + }; + case 'sha': + if(button.link[3]=='fire') return 2.95; + else if(button.link[3]=='thunder') return 2.92; + else return 2.9; + } + } + return 0; + }, + backup:function (links,player){ + return { + audio:'zhanyi', + filterCard:function(card,player,target){ + return get.type(card)=='basic'; + }, + check:function(card,player,target){ + return 9-get.value(card); + }, + viewAs:{name:links[0][2],nature:links[0][3]}, + position:'he', + popname:true, + } + }, + prompt:function (links,player){ + return '将一张基本牌当做'+get.translation(links[0][3]||'')+get.translation(links[0][2])+'使用'; + }, + }, + ai:{ + order:function (){ + var player=_status.event.player; + var event=_status.event; + if(event.filterCard({name:'jiu'},player,event)&&get.effect(player,{name:'jiu'})>0&&player.countCards('h',{type:'basic'})>=2){ + return 3.3; + } + return 3.1; + }, + save:true, + respondSha:true, + skillTagFilter:function (player,tag,arg){ + if(player.hasCard(function(card){ + return get.type(card)=='basic'; + },'he')){ + if(tag=='respondSha'){ + if(arg!='use') return false; + } + } + else{ + return false; + } + }, + result:{ + player:1, + }, + }, + }, + xinzhanyi_equip:{ + audio:'zhanyi', + trigger:{player:'shaBegin'}, + forced:true, + filter:function(event,player){ + return event.target.countCards('he')>0; + }, + check:function(event,player){ + return get.attitude(player,event.target)<0; + }, + content:function(){ + 'step 0' + trigger.target.chooseToDiscard('he',true,2); + 'step 1' + if(result.bool&&result.cards&&result.cards.length){ + if(result.cards.length==1){ + event._result={bool:true,links:result.cards.slice(0)}; + } + else player.chooseButton(['选择获得其中的一张牌',result.cards.slice(0)],true).ai=function(button){ + return get.value(button.link); + }; + } + else event.finish(); + 'step 2' + if(result.links) player.gain(result.links,'gain2'); + } + }, + xinzhanyi_trick:{ + mod:{ + wuxieRespondable:function(){ + return false; + } + } + }, + }, translate:{ re_jikang:"新嵇康", old_bulianshi:'新步练师', old_caochun:'旧曹纯', + shenpei:'审配', + re_zhurong:'界祝融', + re_menghuo:'界孟获', mobile_default:'常规', mobile_fire:'界限突破•火', + mobile_forest:'界限突破•林', mobile_others:'其他', + + pss:'手势', + pss_paper:'布', + pss_scissor:'剪刀', + pss_stone:'石头', + pss_paper_info:'石头剪刀布时的一种手势。克制石头,但被剪刀克制。', + pss_scissor_info:'石头剪刀布时的一种手势。克制布,但被石头克制。', + pss_stone_info:'石头剪刀布时的一种手势。克制剪刀,但被布克制。', + + shouye:'守邺', + shouye_info:'每回合限一次。当其他角色使用牌指定你为唯一目标时,你可以与其进行石头剪刀布(若出现平局则重来)。若你赢,则此牌对你无效,且你于此牌结算完成后获得其对应的所有实体牌。', + liezhi:'烈直', + liezhi_info:'准备阶段,你可以依次弃置至多两名角色区域内的各一张牌。若你受到过伤害,则〖烈直〗于你的下个回合无效。', + relieren:'烈刃', + relieren_info:'当你使用【杀】指定目标时,你可以和目标角色进行拼点。若你赢,你获得其一张牌。若你没赢,你获得对方的拼点牌,其获得你的拼点牌。', + rezaiqi:'再起', + rezaiqi_info:'弃牌阶段开始时,你可以令至多X名角色选择一项:1.摸一张牌,2.令你回复1点体力(X为本回合进入弃牌堆的红桃牌数)', + + xinzhanyi:'战意', + xinzhanyi_info:'出牌阶段限一次,你可以弃置一张牌并失去1点体力,然后根据你弃置的牌获得以下效果直到回合结束:基本牌,你可以将一张基本牌当作杀、酒或桃使用,且你本回合第一次以此法使用的牌的回复值/伤害值+1;锦囊牌,摸三张牌且你使用的牌不能被【无懈可击】响应;装备牌,你使用【杀】指定目标角色后,其弃置两张牌,然后你获得其中的一张。', + xinzhanyi_basic_backup:'战意', + xinzhanyi_basic:'战意', + xinzhanyi_equip:'战意', } }; }); diff --git a/character/old.js b/character/old.js index 3d5580a31..2d4e1100b 100755 --- a/character/old.js +++ b/character/old.js @@ -37,7 +37,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ old_machao:['male','qun',4,['zhuiji','cihuai']], old_zhugezhan:["male","shu",3,["old_zuilun","old_fuyin"]], - zhangliang:["male","qun",3,["old_jijun","old_fangtong"]], + zhangliang:["male","qun",4,["old_jijun","old_fangtong"]], }, characterFilter:{ old_lingju:function(mode){ diff --git a/character/refresh.js b/character/refresh.js index ada8505da..b01896d11 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -195,7 +195,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "step 0" event.count=trigger.num; "step 1" - player.chooseTarget(get.prompt('rejieming')).set('ai',function(target){ + player.chooseTarget(get.prompt('rejieming'),'令一名角色摸两张牌。然后若其手牌数少于体力上限,你摸一张牌').set('ai',function(target){ var att=get.attitude(_status.event.player,target); if(att>2){ if((target.maxHp-target.countCards('h'))>2) return 2*att; @@ -390,7 +390,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function (){ 'step 0' - player.gainPlayerCard(get.prompt('new_liyu',trigger.player),trigger.player,'he','visibleMove').set('ai',function(card){ + player.gainPlayerCard(get.prompt2('new_liyu',trigger.player),trigger.player,'he','visibleMove').set('ai',function(card){ var player=_status.event.player; var evt=_status.event.target; if(get.type(card)=='equip'){ @@ -418,7 +418,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger.player.chooseTarget(true,function(card,player,target){ var evt=_status.event.getParent(); return evt.player.canUse({name:'juedou'},target)&&target!=_status.event.player; - },get.prompt('liyu')).set('ai',function(target){ + },'请选择一名角色,视为'+get.translation(player)+'对其使用【决斗】').set('ai',function(target){ var evt=_status.event.getParent(); return get.effect(target,{name:'juedou'},evt.player,_status.event.player)-2; }); @@ -446,7 +446,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function (){ "step 0" - player.chooseTarget(get.prompt('new_retuxi'),[1,trigger.num],function(card,player,target){ + player.chooseTarget(get.prompt('new_retuxi'),'获得至多'+get.translation(trigger.num)+'名角色的各一张手牌,然后少摸等量的牌',[1,trigger.num],function(card,player,target){ return target.countCards('h')>0&&player!=target; },function(target){ var att=get.attitude(_status.event.player,target); @@ -1339,13 +1339,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(event.list.length){ var current=event.list.shift(); event.current=current; - player.chooseBool(get.prompt('rejiuyuan',current)).set('choice',get.attitude(player,current)>0); + player.chooseBool(get.prompt2('rejiuyuan',current)).set('choice',get.attitude(player,current)>0); } else{ event.finish(); } 'step 2' if(result.bool){ + trigger.cancel(); player.logSkill('rejiuyuan',event.current); event.current.recover(); player.draw(); diff --git a/character/shenhua.js b/character/shenhua.js index b082c555e..bcd8a5a47 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -134,7 +134,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "guanqiujian":"毌丘俭,字仲恭,河东闻喜(今山西闻喜县)人。三国时期曹魏后期的重要将领。继承父毌丘兴爵位高阳乡侯,任平原侯文学。魏明帝即位后,上疏劝魏明帝停止加建皇宫的工程,升为荆州刺史。景初二年(238年)从司马懿攻灭公孙渊;正始五年(244年)至正始六年(245年)两次率兵征讨高句丽,攻破丸都,几亡其国,刻石纪功而还;253年击退吴国诸葛恪的大举进犯,战功累累。司马师废帝,毌丘俭感昔日魏明帝之恩,为曹魏政权做拼死一搏,于正元二年(255年)发动兵变,即后人所谓“淮南三叛”(王淩、毌丘俭、诸葛诞)之一,惜准备不足,兵败身亡。", "haozhao":"郝昭(生卒年不详),字伯道,太原人,中国东汉末年至曹魏初年著名将领。郝昭少年从军,屡立战功,逐渐晋升为杂号将军,后受曹真的推荐镇守陈仓(在小说三国演义中是司马懿推荐),防御蜀汉。太和二年(228年),诸葛亮率军北伐,为郝昭所阻,劝降不成,昼夜相攻二十余日后被迫退军。魏明帝因此封其为关内侯。不久因染疾而病死。", "zhugezhan":"诸葛瞻,字思远,琅邪阳都(今山东沂南县)人。三国时期蜀汉大臣,蜀汉丞相诸葛亮之子。邓艾伐蜀时,他与长子诸葛尚及蜀将张遵、李球、黄崇等人防御绵竹(今四川德阳),因不听黄崇速占险要的建议而坐失良机,后来出城与邓艾决战,在交战时阵亡,绵竹也随后失守。", - "zhoufei":"周妃(210年?—?),一说本名周彻 [1-2] 。周瑜独女,生母无载,疑为汉末美女小乔,因嫁孙登为太子妃,故称周妃。周瑜英年早逝,其遗孤都得到孙权厚遇,除却她本人在黄武四年(225年)嫁予太子外,兄长周循亦娶孙权长女孙鲁班为妻。", + "zhoufei":"周妃(210年?—?),一说本名周彻。周瑜独女,生母无载,疑为汉末美女小乔,因嫁孙登为太子妃,故称周妃。周瑜英年早逝,其遗孤都得到孙权厚遇,除却她本人在黄武四年(225年)嫁予太子外,兄长周循亦娶孙权长女孙鲁班为妻。", "lukang":"陆抗,字幼节,吴郡吴县(今江苏苏州)人。三国时期吴国名将,丞相陆逊次子。陆抗袭父爵为江陵侯,为建武校尉,领其父众五千人。后迁立节中郎将、镇军将军等。孙皓为帝,任镇军大将军、都督西陵、信陵、夷道、乐乡、公安诸军事,驻乐乡(今湖北江陵西南)。凤凰元年(272年),击退晋将羊祜进攻,并攻杀叛将西陵督步阐。后拜大司马、荆州牧,卒于官,终年49岁。与陆逊皆是吴国的中流砥柱,并称“逊抗 ”,被誉为吴国最后的名将。", "zhangxiu":"张绣,武威祖厉(今甘肃靖远)人。骠骑将军张济的从子。东汉末年割据宛城的军阀,汉末群雄之一。初随张济征伐,张济死后与刘表联合。后降曹操,因曹操调戏其嫂而突袭曹操,复与刘表连和。官渡之战前夕,听从贾诩的建议再次投降曹操,参加官渡之战,官至破羌将军,封宣威侯。在北征乌桓(207年)途中去世(一说为曹丕逼死),谥定侯。", "chendao":"陈到,字叔至,生卒年不详,豫州汝南(今河南驻马店平舆县)人。三国时期蜀汉将领,刘备帐下白毦兵统领,名位常亚于赵云,以忠勇著称。蜀汉建兴年间,任征西将军、永安都督,封亭侯。在任期间去世。", @@ -274,7 +274,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseTarget(get.prompt('drlt_zhenggu'),function(card,player,target){ + player.chooseTarget(get.prompt2('drlt_zhenggu'),function(card,player,target){ return target!=player; }).ai=function(target){ var player=_status.event.player; @@ -626,6 +626,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, "drlt_weidi":{ audio:2, + forceaudio:true, unique:true, zhuSkill:true, trigger:{ @@ -795,7 +796,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return att-3; }, - prompt:get.prompt('drlt_congjian'), + prompt:get.prompt2('drlt_congjian'), }); 'step 1' if(result.bool){ @@ -952,7 +953,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function (){ 'step 0' - player.chooseCard(get.prompt('kongsheng'),'he',[1,player.countCards('he')]).set('ai',function(card){ + player.chooseCard(get.prompt2('kongsheng'),'he',[1,player.countCards('he')]).set('ai',function(card){ if(card.name=='shan'||card.name=='du') return 1; return 5-get.value(card); }); @@ -1230,7 +1231,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function (){ 'step 0' - player.chooseTarget(get.prompt('nzry_yili'),function(card,player,target){ + player.chooseTarget(get.prompt('nzry_yili'),"移去一个【橘】或失去1点体力,然后令一名其他角色获得一个【橘】",function(card,player,target){ return target!=player }).ai=function(target){ var player=_status.event.player; @@ -1301,11 +1302,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 0' event.str1='令至多'+trigger.num+'名角色摸一张牌'; event.str2='对任意名体力值之和为'+trigger.num+'的角色造成一点伤害'; - player.chooseControl().set('ai',function(){ + player.chooseControl('cancel2').set('ai',function(){ if(game.countPlayer(function(current){return get.attitude(player,current)<0&¤t.hp==trigger.num})>0&&trigger.num<=3) return 1; return 0; }).set('choiceList',[event.str1,event.str2]).set('prompt','是否发动【溃诛】?'); 'step 1' + if(result.control=='cancel2') event.finish(); event.control=[event.str1,event.str2][result.index]; 'step 2' var str='请选择【溃诛】的目标'; @@ -1402,7 +1404,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - player.chooseTarget(get.prompt2('nzry_zhizheng'),function(card,player,target){ + player.chooseTarget(get.prompt('nzry_zhizheng'),"弃置一名攻击范围内不包含你的角色的一张牌",function(card,player,target){ return get.distance(target,player,'attack')>1&&target.countDiscardableCards(player,'he'); }).ai=function(target){ return -get.attitude(player,target); @@ -1426,6 +1428,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ nzry_lijun2:{}, "nzry_lijun1":{ audio:2, + forceaudio:true, trigger:{ player:'useCardAfter' }, @@ -1447,7 +1450,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ 'step 0' - player.chooseTarget(get.prompt('nzry_lijun'),function(card,player,target){ + var list=game.filterPlayer(function(target){ + return player!=target&&target.hasZhuSkill('nzry_lijun',player); + }); + player.chooseTarget(get.prompt('nzry_lijun'),'将'+get.translation(trigger.cards)+'交给'+get.translation(list)+(list.length>1?'中的一人':''),function(card,player,target){ return player!=target&&target.hasZhuSkill('nzry_lijun',player); }).ai=function(target){ return get.attitude(_status.event.player,target); @@ -1742,7 +1748,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseTarget(get.prompt('nzry_zhenliang')).ai=function(target){ + player.chooseTarget(get.prompt('nzry_zhenliang'),'令一名角色摸一张牌').ai=function(target){ return get.attitude(player,target) }; "step 1" @@ -1769,7 +1775,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseTarget(get.prompt('nzry_jianxiang'),function(card,player,target){ + player.chooseTarget(get.prompt('nzry_jianxiang'),'令场上手牌数最少的一名角色摸一张牌',function(card,player,target){ return target.isMinHandcard(); }).ai=function(target){ return get.attitude(player,target) @@ -2439,7 +2445,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 0' event.num=trigger.num; 'step 1' - player.chooseDrawRecover(get.prompt('xinkuanggu')).set('logSkill','xinkuanggu'); + player.chooseDrawRecover(get.prompt('xinkuanggu'),'摸一张牌或回复1点体力').set('logSkill','xinkuanggu'); 'step 2' if(result.control!='cancel2'){ event.num--; @@ -2596,7 +2602,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ "step 0" var fang=player.hp>=2&&player.countCards('h')<=player.hp+1; - player.chooseTarget(get.prompt('fangquan'),function(card,player,target){ + player.chooseTarget(get.prompt2('fangquan'),function(card,player,target){ return target!=player; }).set('ai',function(target){ if(!_status.event.fang) return -1; @@ -3293,7 +3299,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ "step 0" - var next=player.chooseToDiscard('he',get.prompt('beige')); + var next=player.chooseToDiscard('he',get.prompt2('beige',trigger.player)); var check=lib.skill.beige.checkx(trigger,player); next.set('ai',function(card){ if(_status.event.goon) return 8-get.value(card); @@ -3899,7 +3905,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseTarget(get.prompt('fangzhu'),function(card,player,target){ + player.chooseTarget(get.prompt('fangzhu'),'令一名其他角色将武将牌翻面并摸'+get.cnNumber(player.maxHp-player.hp)+'张牌',function(card,player,target){ return player!=target }).ai=function(target){ if(target.hasSkillTag('noturn')) return 0; @@ -3981,7 +3987,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(event.list.length){ var current=event.list.shift(); event.current=current; - player.chooseBool(get.prompt('songwei',current)).set('choice',get.attitude(player,current)>0); + player.chooseBool('是否发动【颂威】,令'+get.translation(current)+'摸一张牌?').set('choice',get.attitude(player,current)>0); } else{ event.finish(); @@ -4215,7 +4221,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseTarget(get.prompt('yinghun'),function(card,player,target){ + player.chooseTarget(get.prompt2('yinghun'),function(card,player,target){ return player!=target; }).set('ai',function(target){ var player=_status.event.player; @@ -4292,7 +4298,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseTarget(get.prompt('yinghun'),function(card,player,target){ + player.chooseTarget(get.prompt2('gzyinghun'),function(card,player,target){ return player!=target; }).set('ai',function(target){ var player=_status.event.player; @@ -4904,7 +4910,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseTarget(get.prompt('jieming'),[1,trigger.num],function(card,player,target){ + player.chooseTarget(get.prompt2('jieming'),[1,trigger.num],function(card,player,target){ return target.countCards('h')2; - player.chooseTarget(get.prompt('shensu'),function(card,player,target){ + player.chooseTarget(get.prompt("shensu"),"跳过判定阶段和摸牌阶段,视为对一名其他角色使用一张【杀】",function(card,player,target){ if(player==target) return false; return player.canUse({name:'sha'},target,false); }).set('check',check).set('ai',function(target){ @@ -5410,7 +5416,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(result.bool){ player.logSkill('shensu1',result.targets); player.useCard({name:'sha'},result.targets[0],false); - player.skip('phaseJudge'); + trigger.cancel(); player.skip('phaseDraw'); } } @@ -5428,6 +5434,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var check=player.needsToDiscard(); player.chooseCardTarget({ prompt:get.prompt('shensu'), + prompt2:"弃置一张装备牌并跳过出牌阶段,视为对一名其他角色使用一张【杀】", filterCard:function(card,player){ return get.type(card)=='equip'&&lib.filter.cardDiscardable(card,player) }, @@ -5463,7 +5470,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ "step 0" var check=player.needsToDiscard()||player.isTurnedOver(); - player.chooseTarget(get.prompt('shensu'),function(card,player,target){ + player.chooseTarget(get.prompt('shensu'),"跳过弃牌阶段并将武将牌翻面,视为对一名其他角色使用一张【杀】",function(card,player,target){ if(player==target) return false; return player.canUse({name:'sha'},target,false); }).set('check',check).set('ai',function(target){ @@ -5579,7 +5586,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return att/2+da; }, - prompt:get.prompt('tianxiang') + prompt:get.prompt2('tianxiang') }); "step 1" if(result.bool){ @@ -5803,7 +5810,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return att/2+da; }, - prompt:get.prompt('tianxiang') + prompt:get.prompt2('xintianxiang') }); "step 1" if(result.bool){ @@ -6121,7 +6128,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0"; - player.chooseTarget(get.prompt('leiji')).ai=function(target){ + player.chooseTarget(get.prompt2('leiji')).ai=function(target){ if(target.hasSkill('hongyan')) return 0; return get.damageEffect(target,_status.event.player,_status.event.player,'thunder'); }; diff --git a/character/sp.js b/character/sp.js index d4cc56548..53174ddfc 100755 --- a/character/sp.js +++ b/character/sp.js @@ -5,10 +5,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ connect:true, characterSort:{ sp:{ - sp_default:["caoying","simahui","baosanniang","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","guansuo","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","mangyachang","xugong","zhangchangpu"], + sp_default:["caoying","simahui","baosanniang","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","guansuo","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi"], sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"], sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"], sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"], + sp_zizouqi:["mangyachang","xugong","zhangchangpu"], sp_zhongdan:["cuiyan","huangfusong"], sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"], sp_guozhan:["shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng"], @@ -18,7 +19,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, character:{ mangyachang:["male","qun",4,["spjiedao"],[]], - xugong:["male","wu",4,["biaozhao","yechou"],[]], + xugong:["male","wu",3,["biaozhao","yechou"],[]], zhangchangpu:["female","wei",3,["yanjiao","xingshen"],[]], lijue:["male","qun","4/6",["xinfu_langxi","xinfu_yisuan"],[]], zhangji:["male","qun",4,["xinfu_lveming","xinfu_tunjun"],[]], @@ -453,7 +454,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ order:9.5, equipValue:function (card,player){ if(player.hp==player.maxHp) return 5; - if(player.countCards('h','baiyin')) return 6; + if(player.countCards('h','rewrite_baiyin')) return 6; return 0; }, basic:{ @@ -753,7 +754,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.addTempSkill('yanjiao2'); event.finish(); } - else{ + "step 2" + target.chooseControl("自动分配","手动分配").set("prompt","【严教】:是否让系统自动分配方案?").ai=function(){ + return "自动分配"; + }; + "step 3" + if(result.control=="手动分配"){ + event.map=[cards,[],[]]; + event.goto(8); + } + else if(!_status.connectMode){ var choiceList=ui.create.dialog('请选择一种方案','hidden','forcebutton'); for(var i=0;i1) player.addTempSkill('yanjiao2'); } + event.finish(); + + "step 8" + event.videoId=lib.status.videoId++; + var dialogx=['严教:选择要移动的牌']; + var name=["未分配","第一组","第二组"]; + for(var i=0;i0){ + dialogx.push('
'+name[i]+'
'); + dialogx.push(event.map[i]) + } + } + if(target.isOnline2()){ + target.send(function(dialogx,id){ + ui.create.dialog.apply(null,dialogx).videoId=id; + },dialogx,event.videoId); + } + event.dialog=ui.create.dialog.apply(null,dialogx); + event.dialog.videoId=event.videoId; + if(target!=game.me||_status.auto){ + event.dialog.style.display='none'; + } + var next=target.chooseButton(); + next.set('selectButton',function(){ + if(!_status.event.map[1].length||!_status.event.map[2].length) return 1; + var num1=0; + for(var i=0;i<_status.event.map[1].length;i++){ + num1+=_status.event.map[1][i].number; + } + var num2=0; + for(var j=0;j<_status.event.map[2].length;j++){ + num2+=_status.event.map[2][j].number; + } + return (num1==num2?[0,1]:1); + }); + next.set('map',event.map); + next.set('dialog',event.videoId); + next.set('ai',function(){return -1}); + next.set('forceAuto',true); + "step 9" + if(result.bool){ + if(!result.links.length){ + if(target.isOnline2()){ + target.send('closeDialog',event.videoId); + } + event.dialog.close(); + + event.togain=[event.map[1],event.map[2],event.map[0]]; + target.showCards(event.togain[0],get.translation(target)+'分出的第一份牌'); + event.goto(5); + } + else{ + event.card=result.links[0]; + var controls=["取消分组","移动到第一组","移动到第二组"]; + for(var i=0;i0; }).set('ai',function(target){ @@ -2273,7 +2393,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - player.chooseTarget(get.prompt('yingyuan'),function(card,player,target){ + player.chooseTarget(get.prompt('yingyuan'),'将'+get.translation(trigger.cards)+'交给一名其他角色',function(card,player,target){ return target!=player; }).set('ai',function(target){ if(target.hasJudge('lebu')) return 0; @@ -2435,7 +2555,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - player.chooseTarget(get.prompt('shuimeng'),function(card,player,target){ + player.chooseTarget(get.prompt2('shuimeng'),function(card,player,target){ return player.canCompare(target); }).set('ai',function(target){ if(!_status.event.goon) return 0; @@ -2551,7 +2671,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ shuimeng:trigger.getParent(2).name=='shuimeng', nh:nh, cardname:trigger.card.name, - prompt:get.prompt('qianya') + prompt:get.prompt2('qianya') }); 'step 1' if(result.bool){ @@ -3114,7 +3234,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - player.chooseTarget(get.prompt('lizhan'),[1,Infinity],function(card,player,target){ + player.chooseTarget(get.prompt('lizhan'),'令任意名已受伤的角色各摸一张牌',[1,Infinity],function(card,player,target){ return target.isDamaged(); }).set('ai',function(target){ return get.attitude(player,target); @@ -3199,7 +3319,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - player.chooseTarget(get.prompt('yirang'),function(card,player,target){ + player.chooseTarget(get.prompt2('yirang'),function(card,player,target){ return target.maxHp>player.maxHp; }).set('ai',function(target){ return (get.attitude(_status.event.player,target)-2)*target.maxHp; @@ -3309,7 +3429,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - player.chooseTarget(get.prompt('shejian'),function(card,player,target){ + player.chooseTarget(get.prompt('shejian'),'弃置一名其他角色的一张牌',function(card,player,target){ if(player==target) return false; return target.countCards('he')>0; }).ai=function(target){ @@ -3622,7 +3742,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return (card.number>=9&&get.value(card)<=5)||get.value(card)<=3; }); } - player.chooseTarget(get.prompt('shuangren'),function(card,player,target){ + player.chooseTarget(get.prompt2('shuangren'),function(card,player,target){ return player.canCompare(target); }).set('ai',function(target){ var player=_status.event.player; @@ -3688,7 +3808,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ 'step 0' - player.chooseTarget(get.prompt('kuanshi')).set('ai',function(target){ + player.chooseTarget(get.prompt2('kuanshi')).set('ai',function(target){ if(get.attitude(_status.event.player,target)>0){ return 1/Math.sqrt(target.hp+1); } @@ -3749,7 +3869,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ for(var i=0;i0; }).set('ai',function(target){ var player=_status.event.player; @@ -6290,7 +6410,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - player.chooseToDiscard(get.prompt('jiqiao'),[1,player.countCards('he',{type:'equip'})],'he',function(card){ + player.chooseToDiscard(get.prompt2('jiqiao'),[1,player.countCards('he',{type:'equip'})],'he',function(card){ return get.type(card)=='equip'; }).set('ai',function(card){ if(card.name=='bagua') return 10; @@ -6480,7 +6600,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ save=true; } } - var next=player.chooseToDiscard('he',get.prompt('zhenwei')); + var next=player.chooseToDiscard('he',get.prompt2('zhenwei')); next.logSkill=['zhenwei',trigger.target]; next.set('ai',function(card){ if(_status.event.aisave){ @@ -6992,7 +7112,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ "step 0" - var next=player.chooseToDiscard(get.prompt('anxian')); + var next=player.chooseToDiscard(get.prompt2('anxian')); next.set('ai',function(card){ var player=_status.event.player; var trigger=_status.event.getTrigger(); @@ -7230,7 +7350,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, content:function(){ 'step 0' - player.chooseTarget(get.prompt('juedi'),true,function(card,player,target){ + player.chooseTarget(get.prompt2('juedi'),true,function(card,player,target){ return player.hp>=target.hp; }).set('ai',function(target){ var player=_status.event.player; @@ -7861,7 +7981,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "step 0" player.addSkill('qingyi3'); var check= player.countCards('h')>2; - player.chooseTarget(get.prompt('qingyi'),function(card,player,target){ + player.chooseTarget(get.prompt2('qingyi'),function(card,player,target){ if(player==target) return false; return player.canUse({name:'sha'},target); }).ai=function(target){ @@ -7890,7 +8010,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.addSkill('qingyi3'); var check=player.countCards('h')<=player.hp; player.chooseCardTarget({ - prompt:get.prompt('qingyi'), + prompt:get.prompt2('qingyi'), filterCard:function(card,player){ return get.type(card)=='equip'&&lib.filter.cardDiscardable(card,player); }, @@ -8040,7 +8160,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ 'step 0' - player.chooseTarget(get.prompt('chenqing'),function(card,player,target){ + player.chooseTarget(get.prompt2('chenqing'),function(card,player,target){ return target!=player&&target!=_status.event.getTrigger().player; }).set('ai',function(target){ var player=_status.event.player; @@ -8377,7 +8497,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ 'step 0' player.addTempSkill('fengpo3'); - player.chooseControl('draw_card','加伤害','cancel2').set('prompt',get.prompt('fengpo')); + player.chooseControl('draw_card','加伤害','cancel2').set('prompt',get.prompt2('fengpo')); 'step 1' if(result.control&&result.control!='cancel2'){ player.logSkill('fengpo'); @@ -8619,7 +8739,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(!player.storage.kunfen){ event.skillHidden=true; } - player.chooseBool(get.prompt('kunfen')).set('ai',function(){ + player.chooseBool(get.prompt2('kunfen')).set('ai',function(){ var player=_status.event.player; if(player.hp>3) return true; if(player.hp==3&&player.countCards('h')<3) return true; @@ -8685,7 +8805,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ "step 0" - player.chooseTarget(get.prompt('cihuai'),function(card,player,target){ + player.chooseTarget(get.prompt2('cihuai'),function(card,player,target){ return player.canUse({name:'sha'},target); }).set('ai',function(target){ var player=_status.event.player; @@ -8718,7 +8838,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(_status.currentPhase!=source) return 'trick'; if(lib.filter.cardUsable({name:'sha'},source)&&source.countCards('h')>=2) return 'basic'; return 'trick'; - }).set('prompt',get.prompt('jilei',trigger.source)).set('source',trigger.source); + }).set('prompt',get.prompt2('jilei',trigger.source)).set('source',trigger.source); 'step 1' if(result.control!='cancel2'){ player.logSkill('jilei',trigger.source); @@ -9138,7 +9258,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var player=_status.event.player; return get.effect(target,trigger.card,player,player); }, - prompt:get.prompt('fenxun') + prompt:get.prompt2('fenxun') }); "step 1" if(result.bool){ @@ -9450,11 +9570,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(player==trigger.player){ player.chooseControl('摸一张','摸两张','cancel2',function(){ return '摸两张'; - }).set('prompt',get.prompt('liangzhu')); + }).set('prompt',get.prompt2('liangzhu')); event.single=true; } else{ - player.chooseTarget(get.prompt('liangzhu'),function(card,player,target){ + player.chooseTarget(get.prompt2('liangzhu'),function(card,player,target){ return target==_status.event.player||target==_status.event.target; }).set('target',trigger.player).set('ai',function(target){ var player=_status.event.player; @@ -9530,7 +9650,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ "step 0" - var next=player.chooseToDiscard(get.prompt('mingshi'),{color:'black'}); + var next=player.chooseToDiscard(get.prompt2('mingshi'),{color:'black'}); next.set('ai',function(card){ return 9-get.value(card); }); @@ -9655,7 +9775,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ else{ return 'draw_card'; } - }).set('prompt',get.prompt('moukui')); + }).set('prompt',get.prompt2('moukui')); "step 1" if(result.control=='draw_card'){ player.draw(); @@ -9779,7 +9899,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ else if(trigger.player.canUse('sha',player)&&!player.countCards('h','shan')&&trigger.player.countCards('h')>=3){ nono=true; } - var next=player.chooseToDiscard(get.prompt('zhendu',trigger.player)); + var next=player.chooseToDiscard(get.prompt2('zhendu',trigger.player)); next.set('ai',function(card){ if(_status.event.nono) return -1; return 7-get.useful(card); @@ -10258,7 +10378,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ "step 0" - player.chooseTarget(get.prompt('sijian'),function(card,player,target){ + player.chooseTarget(get.prompt('sijian'),'弃置一名其他角色的一张牌',function(card,player,target){ return player!=target&&target.countCards('he')>0; }).set('ai',function(target){ return -get.attitude(_status.event.player,target); @@ -10478,7 +10598,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseTarget(get.prompt('shushen'),function(card,player,target){ + player.chooseTarget(get.prompt('shushen'),'令一名其他角色选择摸两张牌或回复1点体力',function(card,player,target){ return target!=player; }).set('ai',function(target){ return get.attitude(_status.event.player,target); @@ -10829,14 +10949,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } if(get.is.versus()){ event.versus=true; - player.chooseBool(get.prompt('hongyuan')).ai=function(){ + player.chooseBool(get.prompt2('hongyuan')).ai=function(){ return game.countPlayer(function(current){ return player.side==current.side; })>2; }; } else{ - player.chooseTarget(get.prompt('hongyuan'),[1,2],function(card,player,target){ + player.chooseTarget(get.prompt2('hongyuan'),[1,2],function(card,player,target){ return player!=target; },function(target){ if(!_status.event.check) return 0; @@ -11106,7 +11226,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var num=target.hasSkillTag('maixie')?2:0; return -get.attitude(_status.event.player,target)-num; }, - prompt:get.prompt('bifa') + prompt:get.prompt2('bifa') }); "step 1" if(result.bool){ @@ -11373,7 +11493,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ai2:function(target){ return get.attitude(_status.event.player,target)-3; }, - prompt:get.prompt('yuanhu') + prompt:get.prompt2('yuanhu') }); "step 1" if(result.bool){ @@ -11446,7 +11566,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return b.hp-a.hp; }); if(players[0].hp>players[1].hp&&players[0]!=player){ - players[0].chooseBool(get.prompt('tianming')); + players[0].chooseBool(get.prompt2('tianming')); event.player=players[0]; } else{ @@ -11679,7 +11799,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ "step 0" var check=(player.hp==1||(player.hp==2&&player.countCards('h')<=1)); - player.chooseTarget(get.prompt('suiren')).set('ai',function(target){ + player.chooseTarget(get.prompt2('suiren')).set('ai',function(target){ if(!_status.event.check) return 0; return get.attitude(_status.event.player,target); }).set('check',check); @@ -11866,7 +11986,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ mangyachang:"忙牙长", xugong:"许贡", - zhangchangpu:"张菖蒲", + zhangchangpu:"张昌蒲", spjiedao:"截刀", "spjiedao_info":"当你每回合第一次造成伤害时,你可令此伤害至多+X(X为你损失的体力值)。然后若受到此伤害的角色没有死亡,你弃置等同于此伤害加值的牌。", @@ -12432,6 +12552,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sp_whlw:"文和乱武", sp_zlzy:"逐鹿中原", sp_longzhou:"同舟共济", + sp_zizouqi:"自走棋", sp_zhongdan:"忠胆英杰", sp_star:"☆SP系列", sp_guozhan:"国战", diff --git a/character/standard.js b/character/standard.js index 8c51c8260..4728165d0 100755 --- a/character/standard.js +++ b/character/standard.js @@ -155,8 +155,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return get.itemtype(event.cards)=='cards'&&get.position(event.cards[0])=='d'; }, content:function(){ - player.gain(trigger.cards); - player.$gain2(trigger.cards); + player.gain(trigger.cards,'gain2'); }, ai:{ maixie:true, @@ -301,7 +300,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return current!=player&¤t.countCards('h')&&get.attitude(player,current)<=0; }); check=(num>=2); - player.chooseTarget(get.prompt('tuxi'),[1,2],function(card,player,target){ + player.chooseTarget(get.prompt('tuxi'),'获得其他一至两名角色的各一张手牌',[1,2],function(card,player,target){ return target.countCards('h')>0&&player!=target; },function(target){ if(!_status.event.aicheck) return 0; @@ -1027,7 +1026,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ 'step 0' event.num=Math.min(5,game.countPlayer()); - if(player.hasSkill('yizhi')) event.num=5; + if(event.name!='yizhi'&&player.hasSkill('yizhi')) event.num=5; event.cards=get.cards(event.num); event.chosen=[]; event.num1=0; @@ -1873,7 +1872,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return -1; }, - prompt:get.prompt2('liuli') + prompt:get.prompt('liuli'), + prompt2:'弃置一张牌,将此【杀】转移给攻击范围内的一名其他角色', }); "step 1" if(result.bool){ diff --git a/character/xinghuoliaoyuan.js b/character/xinghuoliaoyuan.js index 76743bc6b..52ebc6bae 100755 --- a/character/xinghuoliaoyuan.js +++ b/character/xinghuoliaoyuan.js @@ -51,7 +51,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function (){ "step 0" - player.chooseTarget(get.prompt('xinfu_langxi'),function(card,player,target){ + player.chooseTarget(get.prompt('xinfu_langxi'),'对一名其他角色造成0-2点随机伤害',function(card,player,target){ return target.hp<=player.hp&&target!=player; }).set('ai',function(target){ var player=_status.event.player; @@ -223,7 +223,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ intro:{ content:"limited", }, - init:function (player){ + init:function (player){ player.storage.xinfu_tunjun=false; }, }, @@ -323,7 +323,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function (event,player){ return (event.targets&&event.targets.length); }, - content:function (){ + content:function (){ for(var i=0;i0; }).set('ai',function(target){ @@ -2129,6 +2129,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(!event.nature) return false; return player.storage.xinfu_falu_map.diamond; }, + prompt2:'弃置“勾陈”标记,从牌堆中获得每种类型的牌各一张。', content:function (){ 'step 0' player.storage.xinfu_falu_map.diamond=false; @@ -2187,7 +2188,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function (){ "step 0" var str=get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+ - get.translation(trigger.player.judging[0])+',是否发动【真仪】修改判定结果?'; + get.translation(trigger.player.judging[0])+',是否发动【真仪】,弃置“紫薇”标记并修改判定结果?'; player.chooseControl('黑桃5','红桃5','取消').set('prompt',str).set('ai',function(){ //return '取消'; var judging=_status.event.judging; @@ -2251,7 +2252,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ viewAs:{ name:"tao", }, - prompt:"将一张手牌当桃使用", + prompt:"弃置“后土”标记将一张手牌当桃使用", check:function (card){return 15-get.value(card)}, precontent:function (){ player.logSkill('xinfu_zhenyi'); @@ -2270,71 +2271,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, save:true, respondTao:true, - basic:{ - order:function (card,player){ - if(player.hasSkillTag('pretao')) return 5; - return 2; - }, - useful:[8,6.5,5,4], - value:[8,6.5,5,4], - }, - result:{ - target:function (player,target){ - // if(player==target&&player.hp<=0) return 2; - var nd=player.needsToDiscard(); - var keep=false; - if(nd<=0){ - keep=true; - } - else if(nd==1&&target.hp>=2&&target.countCards('h','tao')<=1){ - keep=true; - } - var mode=get.mode(); - if(target.hp>=2&&keep&&target.hasFriend()){ - if(target.hp>2||nd==0) return 0; - if(target.hp==2){ - if(game.hasPlayer(function(current){ - if(target!=current&&get.attitude(target,current)>=3){ - if(current.hp<=1) return true; - if((mode=='identity'||mode=='versus'||mode=='chess')&¤t.identity=='zhu'&¤t.hp<=2) return true; - } - })){ - return 0; - } - } - } - if(target.hp<0&&target!=player&&target.identity!='zhu') return 0; - var att=get.attitude(player,target); - if(att<3&&att>=0&&player!=target) return 0; - var tri=_status.event.getTrigger(); - if(mode=='identity'&&player.identity=='fan'&&target.identity=='fan'){ - if(tri&&tri.name=='dying'&&tri.source&&tri.source.identity=='fan'&&tri.source!=target){ - var num=game.countPlayer(function(current){ - if(current.identity=='fan'){ - return current.countCards('h','tao'); - } - }); - if(num>1&&player==target) return 2; - return 0; - } - } - if(mode=='identity'&&player.identity=='zhu'&&target.identity=='nei'){ - if(tri&&tri.name=='dying'&&tri.source&&tri.source.identity=='zhong'){ - return 0; - } - } - if(mode=='stone'&&target.isMin()&& - player!=target&&tri&&tri.name=='dying'&&player.side==target.side&& - tri.source!=target.getEnemy()){ - return 0; - } - return 2; - }, - }, - tag:{ - recover:1, - save:1, - }, }, }, "zhenyi_heart":{ @@ -2347,10 +2283,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ check:function (event,player){ return false; }, - prompt:function (event){ - return '即将对'+get.translation(event.player)+'造成伤害,'+get.prompt('xinfu_zhenyi'); + prompt2:function(event){ + return '弃置“玉清”标记,然后进行判定。若结果为黑色,则对'+get.translation(event.player)+'即将造成的伤害+1。'; }, - logTarget:"source", + logTarget:"player", content:function (){ "step 0" player.storage.xinfu_falu_map.heart=false; @@ -2382,7 +2318,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function (){ "step 0" - player.chooseTarget(get.prompt('xinfu_zhennan'),function(card,player,target){ + player.chooseTarget(get.prompt('xinfu_zhennan'),'对一名其他角色造成1-3点随机伤害',function(card,player,target){ return target!=player; }).set('ai',function(target){ var player=_status.event.player; @@ -2730,7 +2666,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var num=game.countPlayer(function(current){ return current!=player&¤t.hp==target.hp&&(raweffect(player,current)*get.attitude(player,current))>0 }); - return raweffect(player,target)*(num-1); + return raweffect(player,target)*Math.max(0,num-1); }, }, expose:0.4, @@ -2981,7 +2917,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function (){ "step 0" - player.chooseTarget(get.prompt('xinfu_qinguo'),function(card,player,target){ + player.chooseTarget(get.prompt('xinfu_qinguo'),'视为对一名其他角色使用一张【杀】',function(card,player,target){ if(player==target) return false; return player.canUse({name:'sha'},target); }).set('ai',function(target){ @@ -3529,7 +3465,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function (){ 'step 0' - player.chooseTarget(get.prompt('xinfu_yingshi'),function(card,player,target){ + player.chooseTarget(get.prompt2('xinfu_yingshi'),function(card,player,target){ return target!=player; }).set('ai',function(){ return -1; @@ -3658,7 +3594,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function (){ "step 0" - player.chooseTarget(get.prompt('xinfu_youdi'),function(card,player,target){ + player.chooseTarget(get.prompt2('xinfu_youdi'),function(card,player,target){ return player!=target; }).set('ai',function(target){ var player=_status.event.player; @@ -3770,7 +3706,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function (){ 'step 0' var list=['递增','递减','取消']; - player.chooseControl(list).set('prompt',get.prompt('xinfu_guanchao')).set('ai',function(){ + player.chooseControl(list).set('prompt',get.prompt2('xinfu_guanchao')).set('ai',function(){ return [0,1].randomGet(); }); 'step 1' @@ -3809,7 +3745,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function (){ 'step 0' - player.chooseTarget(get.prompt('xinfu_xunxian'),function(card,player,target){ + player.chooseTarget(get.prompt2('xinfu_xunxian'),function(card,player,target){ return target!=player&&target.countCards('h')>player.countCards('h'); }).set('ai',function(target){ var att=get.attitude(_status.event.player,target); @@ -4061,7 +3997,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, prompt:function (links,player){ - return '将一张手牌当'+get.translation(links[0][2])+'使用'; + return '将一张手牌做当'+get.translation(links[0][2])+'使用'; }, }, ai:{save:true}, diff --git a/character/yijiang.js b/character/yijiang.js index 371a2d985..3f866371c 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -3,7 +3,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return { name:'yijiang', connect:true, - connectBanned:['qinmi'], + //connectBanned:['qinmi'], characterSort:{ yijiang:{ yijiang_2011:['caozhi','re_yujin','zhangchunhua','xin_fazheng','xin_masu','xin_xushu','xusheng','lingtong','wuguotai','chengong','gaoshun'], @@ -871,22 +871,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, tianbian:{ audio:2, - trigger:{player:'chooseCardBegin'}, + enable:"chooseCard", check:function(event,player){ - return !player.hasCard(function(card){ + var player=_status.event.player; + return (!player.hasCard(function(card){ var val=get.value(card); return val<0||(val<=4&&card.number>=11); - },'h'); + },'h'))?20:0; }, filter:function(event){ return event.type=='compare'&&!event.directresult; }, - content:function(){ - var cards=get.cards(); - cards[0].discard(); - cards[0].vanishtag.add('tianbian'); - trigger.directresult=cards; - trigger.untrigger(); + onCompare:function(player){ + return get.cards(); }, group:'tianbian_number', subSkill:{ @@ -1129,7 +1126,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ animationColor:'thunder', content:function(){ 'step 0' - player.chooseTarget(get.prompt('juexiang'),function(card,player,target){ + player.chooseTarget(get.prompt2('juexiang'),function(card,player,target){ return target!=player; }).set('ai',function(target){ return get.attitude(_status.event.player,target)/Math.sqrt(target.hp+1); @@ -1507,7 +1504,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{target:'shaBefore'}, direct:true, init:function(player){ - player.storage.shouxi=[]; + if(!player.storage.shouxi) player.storage.shouxi=[]; }, content:function(){ 'step 0' @@ -1861,7 +1858,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - player.chooseTarget(get.prompt('daiyan'),function(card,player,target){ + player.chooseTarget(get.prompt2('daiyan'),function(card,player,target){ return target!=player; }).set('ai',function(target){ var player=_status.event.player; @@ -2350,7 +2347,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } if(color.length==2) color='all'; else color=color[0]; - player.chooseToDiscard(get.prompt('xinsidi',trigger.player),'he',function(card){ + player.chooseToDiscard(get.prompt2('xinsidi',trigger.player),'he',function(card){ if(get.type(card)=='basic') return false; if(_status.event.color=='all') return true; return get.color(card)==_status.event.color; @@ -2681,7 +2678,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var num=game.countPlayer(function(current){ return !current.isLinked(); }); - player.chooseTarget(get.prompt('jishe'),[1,Math.min(num,player.hp)],function(card,player,target){ + player.chooseTarget(get.prompt('jishe'),'横置至多'+get.cnNumber(Math.min(num,player.hp))+'名未横置的角色',[1,Math.min(num,player.hp)],function(card,player,target){ return !target.isLinked(); }).set('ai',function(target){ return -get.attitude(_status.event.player,target); @@ -2823,7 +2820,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - player.chooseTarget(get.prompt('qinqing'),[1,Infinity],function(card,player,target){ + player.chooseTarget(get.prompt2('qinqing'),[1,Infinity],function(card,player,target){ var zhu=get.zhu(player); if(target==zhu) return false; return get.distance(target,zhu,'attack')<=1; @@ -2896,7 +2893,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return false; }, content:function(){ - player.chooseDrawRecover(get.prompt('guizao')).logSkill='guizao'; + player.chooseDrawRecover(get.prompt('guizao'),'摸一张牌或回复一点体力').logSkill='guizao'; }, }, jiyu:{ @@ -2904,9 +2901,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ enable:'phaseUse', locked:false, filter:function(event,player){ + if(!player.getStat().skill.jiyu) return true; var hs=player.getCards('h'); for(var i=0;i1?'中的一张牌':'')+'当做【兵粮寸断】对一名其他角色使用',function(card,player,target){ return player.canUse({name:'bingliang'},target,false); }).set('ai',function(target){ var player=_status.event.player; @@ -4345,7 +4343,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.jiu=true; } player.chooseToUse('是否对'+get.translation(trigger.target)+'再使用一张杀?', - {name:'sha'},trigger.target,-1).logSkill='qinglong_skill'; + {name:'sha'},trigger.target,-1); "step 3" if(result.bool); else if(event.jiu){ @@ -4366,7 +4364,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(trigger.responded&&trigger.responded.cards&&trigger.responded.cards.length){ event.cards2=trigger.responded.cards.slice(0); } - player.chooseTarget(get.prompt('zhongyong'),function(card,player,target){ + player.chooseTarget(get.prompt2('zhongyong'),function(card,player,target){ return target!=_status.event.getTrigger().target&&target!=player; }).set('ai',function(target){ return get.attitude(_status.event.player,target); @@ -4484,7 +4482,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } } - var next=player.chooseToDiscard(get.prompt('longyin'),'he'); + var next=player.chooseToDiscard(get.prompt('longyin'),'弃置一张牌'+(get.color(trigger.card)=='red'?'并摸一张牌':'')+',令'+get.translation(trigger.player)+'本次使用的【杀】不计入使用次数','he'); next.logSkill=['longyin',trigger.player]; next.set('ai',function(card){ if(_status.event.go){ @@ -4535,6 +4533,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, trigger:{player:'chooseToRespondBegin'}, filter:function(event,player){ + if(!_status.currentPhase) return false; if(event.responded) return false; if(!event.filterCard({name:'shan'})) return false; return true; @@ -4555,21 +4554,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.line(_status.currentPhase,'green'); _status.currentPhase.draw(); 'step 1' - var nh=_status.currentPhase.countCards('h'); - var nmax=nh+1; - var targets=[]; - var players=game.filterPlayer(); - for(var i=0;inmax){ - nmax=nh2; - targets.length=0; - targets.push(players[i]); - } - else if(nh2==nmax){ - targets.push(players[i]); - } + if(_status.currentPhase.isMaxHandcard()){ + event.finish(); + return; } + var targets=game.filterPlayer(function(current){ + return current.isMaxHandcard(); + }) if(targets.length==1){ event.onlytarget=targets[0]; } @@ -4693,7 +4684,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ 'step 0' var nh=player.countCards('h'); - player.chooseTarget(get.prompt('yaoming'),function(card,player,target){ + player.chooseTarget(get.prompt2('yaoming'),function(card,player,target){ return _status.event.nh!=target.countCards('h'); }).set('ai',function(target){ var att=get.attitude(_status.event.player,target); @@ -4794,7 +4785,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(!player.hasSkill('yanzhu')){ num=player.maxHp; } - player.chooseTarget([1,num],get.prompt('xingxue')).set('ai',function(target){ + player.chooseTarget([1,num],get.prompt2('xingxue')).set('ai',function(target){ var att=get.attitude(_status.event.player,target); if(target.countCards('he')) return att; return att/10; @@ -5188,7 +5179,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } } - var next=player.chooseToDiscard(get.prompt('qinwang'),'he'); + var next=player.chooseToDiscard(get.prompt('qinwang'),'弃置一张牌并发动【激将】','he'); next.set('ai',function(card){ if(_status.event.yep) return 5-get.value(card); return 0; @@ -5340,7 +5331,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ 'step 0' - player.chooseTarget(get.prompt('zuoding'),function(card,player,target){ + player.chooseTarget(get.prompt('zuoding'),'令一名目标角色摸一张牌',function(card,player,target){ return _status.event.getTrigger().targets.contains(target); }).set('ai',function(target){ return get.attitude(_status.event.player,target); @@ -5385,7 +5376,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseCard(get.prompt('huomo'),'he',function(card){ + player.chooseCard(get.prompt2('huomo'),'he',function(card){ return get.type(card)!='basic'&&get.color(card)=='black'; }).set('ai',function(card){ if(!_status.event.player.countCards('h','shan')){ @@ -5769,7 +5760,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ 'step 0' var go=Math.random()<0.5; - player.chooseTarget(get.prompt('mingjian'),function(card,player,target){ + player.chooseTarget(get.prompt('mingjian_old'),function(card,player,target){ return player!=target }).ai=function(target){ var att=get.attitude(player,target); @@ -5781,10 +5772,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } 'step 1' if(result.bool){ - player.logSkill('mingjian',result.targets); + player.logSkill('mingjian_old',result.targets); trigger.cancel(); var target=result.targets[0]; - target.addSkill('mingjian2'); + target.addSkill('mingjian2_old'); var hs=player.getCards('h'); target.gain(hs,player); player.$give(hs.length,target); @@ -5808,7 +5799,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.ai.tempIgnore=[]; player.stat.push({card:{},skill:{}}); player.phaseUse(); - player.removeSkill('mingjian2'); + player.removeSkill('mingjian2_old'); } }, huituo:{ @@ -5817,7 +5808,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ 'step 0' - player.chooseTarget(get.prompt('huituo')).set('ai',function(target){ + player.chooseTarget(get.prompt2('huituo')).set('ai',function(target){ var player=_status.event.player; if(get.attitude(player,target)>0){ return get.recoverEffect(target,player,player)+1; @@ -5866,7 +5857,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, content:function(){ 'step 0' - var next=player.chooseToDiscard('he',get.prompt('duodao')); + var next=player.chooseToDiscard('he',get.prompt('duodao'),'弃置一张牌,然后获得'+get.translation(trigger.source)+'装备区中的'+trigger.source.getEquip(1)); next.logSkill=['duodao',trigger.source]; next.set('ai',function(card){ if(get.attitude(_status.event.player,_status.event.getTrigger().source)<=0){ @@ -6014,7 +6005,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - player.chooseTarget(get.prompt('yanyu'),function(card,player,target){ + player.chooseTarget(get.prompt('yanyu'),'令一名男性角色摸两张牌',function(card,player,target){ return target.sex=='male'&&target!=player; }).set('ai',function(target){ return get.attitude(_status.event.player,target); @@ -6189,7 +6180,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ position:'he', content:function(){ "step 0" - player.chooseTarget(get.prompt('mieji'),function(card,player,target){ + player.chooseTarget(get.prompt('mieji'),'为'+get.translation(trigger.card)+'增加一个额外目标',function(card,player,target){ var trigger=_status.event.getTrigger(); return lib.filter.filterTarget(trigger.card,player,target)&&target!=trigger.targets[0]; }).set('autodelay',true).set('ai',function(target){ @@ -6501,7 +6492,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ "step 0" - player.chooseTarget(get.prompt('qiaoshui'),function(card,player,target){ + player.chooseTarget(get.prompt2('qiaoshui'),function(card,player,target){ return player.canCompare(target); }).set('ai',function(target){ return -get.attitude(_status.event.player,target)/target.countCards('h'); @@ -6659,7 +6650,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseTarget(get.prompt('bingyi'),[1,player.countCards('h')],function(card,player,target){ + player.chooseTarget(get.prompt('bingyi'),'令至多'+get.cnNumber(player.countCards('h'))+'名角色各摸一张牌',[1,player.countCards('h')],function(card,player,target){ return true; }).set('ai',function(target){ return get.attitude(_status.event.player,target); @@ -6757,7 +6748,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - player.chooseTarget(get.prompt('qiangzhi'),function(card,player,target){ + player.chooseTarget(get.prompt2('qiangzhi'),function(card,player,target){ return target!=player&&target.countCards('h')>0; }).set('ai',function(){ return Math.random(); @@ -6911,7 +6902,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseTarget(get.prompt('chanhui'),function(card,player,target){ + player.chooseTarget(get.prompt2('chanhui'),function(card,player,target){ if(player==target) return false; var trigger=_status.event.getTrigger(); return player.canUse(trigger.card,target)&&trigger.targets.contains(target)==false; @@ -7265,7 +7256,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ priority:11, content:function(){ "step 0" - player.chooseTarget(get.prompt('qiuyuan'),function(card,player,target){ + player.chooseTarget(get.prompt2('qiuyuan'),function(card,player,target){ return target!=player&&_status.event.getTrigger().player.canUse('sha',target,false); }).set('ai',function(target){ var trigger=_status.event.getTrigger(); @@ -7619,7 +7610,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseTarget(get.prompt('xinxuanhuo'),function(card,player,target){ + player.chooseTarget(get.prompt2('xinxuanhuo'),function(card,player,target){ return player!=target; }).set('ai',function(target){ var att=get.attitude(_status.event.player,target); @@ -7738,7 +7729,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - player.chooseTarget(get.prompt('zhiyan')).set('ai',function(target){ + player.chooseTarget(get.prompt('zhiyan'),'令一名角色摸一张牌并展示之。若为装备牌,则其回复1点体力').set('ai',function(target){ return get.attitude(_status.event.player,target); }); "step 1" @@ -7954,7 +7945,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return att; }, position:'he', - prompt:get.prompt('xinjujian') + prompt:get.prompt2('xinjujian') }); "step 1" if(result.bool){ @@ -8541,7 +8532,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "step 0" event.count=2; "step 1" - player.chooseTarget(get.prompt('xuanfeng'),function(card,player,target){ + player.chooseTarget(get.prompt('xuanfeng'),'弃置一名其他角色的一张牌',function(card,player,target){ if(player==target) return false; return target.countDiscardableCards(player,'he'); }).set('ai',function(target){ @@ -9077,7 +9068,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, content:function(){ "step 0" - var next=player.chooseToDiscard(get.prompt('renxin',trigger.player),{type:'equip'},'he'); + var next=player.chooseToDiscard(get.prompt('renxin',trigger.player),'弃置一张装备牌并将武将牌翻面,然后防止'+get.translation(trigger.player)+'受到的伤害',{type:'equip'},'he'); next.logSkill=['renxin',trigger.player]; next.set('ai',function(card){ var player=_status.event.player; @@ -9109,13 +9100,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ "step 0" - var next=player.chooseCard(get.prompt('yuce')); + var next=player.chooseCard(get.prompt2('yuce')); next.set('ai',function(card){ if(get.type(card)=='basic') return 1; return get.value(card); }); "step 1" if(result.bool){ + player.logSkill('yuce'); player.showCards(result.cards); var type=get.type(result.cards[0],'trick'); if(trigger.source){ @@ -9165,7 +9157,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ "step 0" - player.chooseTarget(get.prompt('xiansi'),[1,2],function(card,player,target){ + player.chooseTarget(get.prompt2('xiansi'),[1,2],function(card,player,target){ return target.countCards('he')>0; },function(target){ return -get.attitude(_status.event.player,target); @@ -9820,7 +9812,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ guizao:'瑰藻', guizao_info:'弃牌阶段结束时,若你于此阶段弃置牌的数量不小于2且它们的花色各不相同,你可以回复1点体力或摸一张牌', jiyu:'讥谀', - jiyu_info:'出牌阶段每名角色限一次,若你有可以使用的手牌,你可以令一名角色弃置一张手牌。若如此做,你不能使用与之相同花色的牌,直到回合结束。若其以此法弃置的牌为黑桃,你翻面并令其失去1点体力', + jiyu_info:'出牌阶段限一次,你可以令一名角色弃置一张手牌。若如此做,你不能使用与之相同花色的牌,直到回合结束。若其以此法弃置的牌为黑桃,你翻面并令其失去1点体力。若你有未被【讥谀】限制的手牌,则你可以继续发动此技能,但不能选择本回合已经选择过的目标。', qinqing:'寝情', qinqing_info:'结束阶段,你可以选择任意名攻击范围内含有主公的角色,然后弃置这些角色各一张牌并令其摸一张牌(无牌则不弃),若如此做,你摸X张牌(X为其中手牌比主公多的角色数)', huisheng:'贿生',