v1.9.9.2.2(Part 2)

This commit is contained in:
Spmario233 2019-08-30 23:02:50 +08:00 committed by GitHub
parent aebff71b78
commit a6c10eb1ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 756 additions and 248 deletions

View File

@ -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;i<cards.length;i++){
if(get.suit(cards[i])=='heart'&&get.position(cards[i])=='d') return true;
}
return false;
},
content:function(){
if(event.triggername=='phaseAfter') player.storage.rezaiqi=0;
else{
var cards=trigger.cards;
for(var i=0;i<cards.length;i++){
if(get.suit(cards[i])=='heart'&&get.position(cards[i])=='d') player.storage.rezaiqi++;
}
}
},
},
shouye:{
group:'shouye_after',
trigger:{global:"useCard"},
filter:function(event,player){
return event.player!=player&&event.targets&&
event.targets[0]==player&&event.targets.length==1;
},
check:function(event,player){
return get.effect(player,event.card,event.player,player)<0;
},
usable:1,
logTarget:'player',
content:function(){
'step 0'
player.line(trigger.player,'green');
player.chooseToPSS(trigger.player);
'step 1'
if(result.tie){
event.goto(0);
}
else if(result.bool){
trigger.excluded.add(player);
trigger.shouyeer=player;
}
},
subSkill:{
after:{
sub:true,
trigger:{global:'useCardAfter'},
forced:true,
silent:true,
popup:false,
filter:function(event,player){
if(event.shouyeer!=player) return false;
if(event.cards){
for(var i=0;i<event.cards.length;i++){
if(event.cards[i].isInPile()) return true;
}
}
return false;
},
content:function(){
var list=[];
for(var i=0;i<trigger.cards.length;i++){
if(trigger.cards[i].isInPile()){
list.push(trigger.cards[i]);
}
}
player.gain(list,'gain2');
},
},
},
},
liezhi:{
group:'liezhi_damage',
trigger:{player:'phaseBegin'},
direct:true,
filter:function(event,player){
return !player.hasSkill('liezhi_disable');
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('liezhi'),'弃置至多两名角色区域内的各一张牌',[1,2],function(card,player,target){
return target!=player&&target.countDiscardableCards(player,'hej')>0;
}).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:'战意',
}
};
});

View File

@ -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){

View File

@ -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();

View File

@ -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&&current.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')<Math.min(target.maxHp,5);
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
@ -5321,7 +5327,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
content:function(){
"step 0";
player.chooseTarget(get.prompt('releiji')).ai=function(target){
player.chooseTarget(get.prompt2('releiji')).ai=function(target){
if(target.hasSkill('hongyan')) return 0;
return get.damageEffect(target,_status.event.player,_status.event.player,'thunder');
};
@ -5394,12 +5400,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shensu1:{
audio:2,
audioname:['xiahouba'],
trigger:{player:'phaseBegin'},
trigger:{player:'phaseJudgeBefore'},
direct:true,
content:function(){
"step 0"
var check= player.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');
};

View File

@ -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;i<event.preResult.length;i++){
var str='<div class="popup text" style="width:calc(100% - 10px);display:inline-block">方案'+get.cnNumber(i+1,true);
@ -780,24 +790,134 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return true;
});
}
"step 2"
"step 4"
event.index=result.links[0]||0;
event.togain=event.preResult[event.index];
target.showCards(event.togain[0],get.translation(target)+'分出的第一份牌');
"step 3"
"step 5"
target.showCards(event.togain[1],get.translation(target)+'分出的第二份牌');
"step 4"
player.chooseControl().set('choiceList',[
"step 6"
target.chooseControl().set('choiceList',[
'获得'+get.translation(event.togain[0]),
'获得'+get.translation(event.togain[1])
]).ai=function(){return Math.random()<0.5?1:0};
"step 5"
player.gain(event.togain[result.index],'gain2');
target.gain(event.togain[1-result.index],'gain2');
"step 7"
target.gain(event.togain[result.index],'gain2');
player.gain(event.togain[1-result.index],'gain2');
if(event.togain[2].length){
game.cardsDiscard(event.togain[2]);
if(event.togain[2].length>1) player.addTempSkill('yanjiao2');
}
event.finish();
"step 8"
event.videoId=lib.status.videoId++;
var dialogx=['严教:选择要移动的牌'];
var name=["未分配","第一组","第二组"];
for(var i=0;i<event.map.length;i++){
if(event.map[i].length>0){
dialogx.push('<div class="text center">'+name[i]+'</div>');
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;i<event.map.length;i++){
if(event.map[i].contains(event.card)){
controls.splice(i,1);
break;
}
}
var func=function(card,id){
var dialog=get.idDialog(id);
if(dialog){
for(var i=0;i<dialog.buttons.length;i++){
if(dialog.buttons[i].link==card){
dialog.buttons[i].classList.add('glow');
}
else{
dialog.buttons[i].classList.add('unselectable');
}
}
}
}
if(target.isOnline2()){
target.send(func,event.card,event.videoId);
}
else if(target==game.me&&!_status.auto){
func(event.card,event.videoId);
}
target.chooseControl(controls);
}
}
else{
if(target.isOnline2()){
target.send('closeDialog',event.videoId);
}
event.dialog.close();
game.cardsDiscard(cards);
player.addTempSkill('yanjiao2');
event.finish();
}
"step 10"
if(target.isOnline2()){
target.send('closeDialog',event.videoId);
}
event.dialog.close();
var position={
"取消分组":0,
"移动到第一组":1,
"移动到第二组":2,
}[result.control||"取消分组"];
for(var i=0;i<event.map.length;i++){
if(event.map[i].contains(card)){
event.map[i].remove(card);
event.map[position].push(card);
break;
}
}
event.goto(8);
},
getResult:function (cards){
var cl=cards.length;
@ -1519,7 +1639,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function (){
'step 0'
player.chooseCard(get.prompt('new_xingwu')).set('ai',function(card){
player.chooseCard(get.prompt2('new_xingwu')).set('ai',function(card){
var player=_status.event.player;
for(var i=0;i<player.storage.new_xingwu.length;i++){
if(get.suit(player.storage.new_xingwu[i])==get.suit(card)) return 0;
@ -1636,7 +1756,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:"phaseUseBegin",
},
filter:function (event,player){
return event.player!=player&&get.distance(event.player,player,'attack')<=1;
return event.player!=player&&event.player.isAlive()&&get.distance(event.player,player,'attack')<=1;
},
direct:true,
derivation:["new_zhixi"],
@ -1652,7 +1772,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function (){
"step 0"
var check=lib.skill.new_meibu.checkx(trigger,player);
player.chooseToDiscard(get.prompt('new_meibu',trigger.player),'he').set('ai',function(card){
player.chooseToDiscard(get.prompt2('new_meibu',trigger.player),'he').set('ai',function(card){
if(_status.event.check) return 6-get.value(card);
return 0;
}).set('check',check).set('logSkill','new_meibu');
@ -1733,7 +1853,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
content:function (){
'step 0'
player.chooseTarget(get.prompt('new_mumu'),function(card,player,target){
player.chooseTarget(get.prompt('new_mumu'),'弃置一名角色装备区内的一张牌,或者获得一名角色装备区内的防具牌',function(card,player,target){
if(target==player) return false;
return target.countCards('e')>0;
}).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;i<hs.length;i++){
maxval=Math.max(maxval,get.value(hs[i]));
}
player.chooseTarget(get.prompt('xiashu'),lib.filter.notMe).set('ai',function(target){
player.chooseTarget(get.prompt2('xiashu'),lib.filter.notMe).set('ai',function(target){
var player=_status.event.player;
var maxval=_status.event.maxval;
var dh=target.countCards('h')-player.countCards('h');
@ -3942,7 +4062,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('bingzheng'),function(card,player,target){
player.chooseTarget(get.prompt2('bingzheng'),function(card,player,target){
return target.countCards('h')!=target.hp;
}).set('ai',function(target){
var player=_status.event.player;
@ -4237,7 +4357,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('duanbing'),function(card,player,target){
player.chooseTarget(get.prompt('duanbing'),'为'+get.translation(trigger.card)+'增加一个目标',function(card,player,target){
return !_status.event.source.contains(target)&&get.distance(player,target)<=1&&player.canUse('sha',target);
}).set('source',trigger.targets).set('ai',function(target){
var player=_status.event.player;
@ -4983,7 +5103,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('zhaolie'),function(card,player,target){
player.chooseTarget(get.prompt2('zhaolie'),function(card,player,target){
return target!=player&&get.distance(player,target,'attack')<=1;
}).set('ai',function(target){
var player=_status.event.player;
@ -5091,7 +5211,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
content:function(){
"step 0"
player.chooseTarget(get.prompt('yingjian'),function(card,player,target){
player.chooseTarget(get.prompt('yingjian'),'视为使用一张没有距离限制的【杀】',function(card,player,target){
return lib.filter.targetEnabled({name:'sha'},player,target);
}).set('ai',function(target){
return get.effect(target,{name:'sha'},_status.event.player);
@ -5194,7 +5314,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('hongde'),function(card,player,target){
player.chooseTarget(get.prompt('hongde'),'令一名其他角色摸一张牌',function(card,player,target){
return target!=player;
}).set('ai',function(target){
return get.attitude(player,target);
@ -5306,7 +5426,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
player.chooseCard(get.prompt('tuifeng'),'he',[1,trigger.num]).set('ai',function(card){
player.chooseCard(get.prompt2('tuifeng'),'he',[1,trigger.num]).set('ai',function(card){
if(card.name=='du') return 20;
return 7-get.useful(card);
});
@ -5479,7 +5599,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('yongdi'),function(card,player,target){
player.chooseTarget(get.prompt2('yongdi'),function(card,player,target){
return target.sex=='male'&&target!=player;
}).set('ai',function(target){
if(!_status.event.goon) return 0;
@ -5892,7 +6012,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{
event.draw=true;
event.num=Math.min(num2,5)-num1;
player.chooseBool(get.prompt('benyu'));
player.chooseBool(get.prompt2('benyu'));
}
"step 1"
if(result.bool){
@ -6096,7 +6216,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('qizhi'),function(card,player,target){
player.chooseTarget(get.prompt('qizhi'),'弃置一名角色的一张牌,然后其摸一张牌',function(card,player,target){
return !_status.event.getTrigger().targets.contains(target)&&target.countCards('he')>0;
}).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":"当你每回合第一次造成伤害时,你可令此伤害至多+XX为你损失的体力值。然后若受到此伤害的角色没有死亡你弃置等同于此伤害加值的牌。",
@ -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:"国战",

View File

@ -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&&current.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){

View File

@ -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;
@ -594,7 +594,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function (){
'step 0'
player.chooseCard(get.prompt('xinfu_bijing'),'h').set('ai',function(card){
player.chooseCard(get.prompt2('xinfu_bijing'),'h').set('ai',function(card){
if(card.name=='shan') return 6;
return 6-get.value(card);
});
@ -1058,7 +1058,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
if(!event.ablers.length) event.goto(4);
else{
player.chooseBool(get.prompt('xinfu_lianpian')).set('ai',function(){
player.chooseBool(get.prompt2('xinfu_lianpian')).set('ai',function(){
return true;
}).set('prompt2',get.translation('xinfu_lianpian_info'));
}
@ -1102,7 +1102,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function (){
'step 0'
player.chooseTarget(get.prompt('xinfu_lingren'),function(card,player,target){
player.chooseTarget(get.prompt2('xinfu_lingren'),function(card,player,target){
return trigger.targets.contains(target);
}).set('ai',function(target){
return -get.attitude(_status.event.player,target);
@ -1959,7 +1959,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function (){
'step 0'
player.chooseTarget(get.prompt('xinfu_wuniang'),function(card,player,target){
player.chooseTarget(get.prompt('xinfu_wuniang'),'获得一名其他角色的一张牌,然后其和场上所有的“关索”摸一张牌。',function(card,player,target){
if(player==target) return false;
return target.countGainableCards(player,'he')>0;
}).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')&&current.identity=='zhu'&&current.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&&current.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},

View File

@ -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;i<hs.length;i++){
if(event.filterCard(hs[i],player)){
if(!player.storage.jiyu2.contains(get.suit(hs[i]))){
return true;
}
}
@ -3549,7 +3547,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('xinjuece'),function(card,player,target){
player.chooseTarget(get.prompt('xinjuece'),'对一名没有手牌的其他角色造成1点伤害',function(card,player,target){
return target.countCards('h')==0;
}).set('ai',function(target){
var player=_status.event.player;
@ -3681,7 +3679,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai2:function(target){
return 1-get.attitude(_status.event.player,target);
},
prompt:get.prompt('jieyue')
prompt:get.prompt2('jieyue')
});
'step 1'
if(result.bool){
@ -4073,7 +4071,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
'step 1'
if(event.cards.length){
player.chooseTarget(get.prompt('shenduan'),function(card,player,target){
player.chooseTarget(get.prompt('shenduan'),'将'+get.translation(event.cards)+(event.cards.length>1?'中的一张牌':'')+'当做【兵粮寸断】对一名其他角色使用',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;i<players.length;i++){
var nh2=players[i].countCards('h');
if(nh2>nmax){
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:'贿生',