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, connect:true,
characterSort:{ characterSort:{
mobile:{ 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_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"], 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']], liuzan:['male','wu',4,['fenyin']],lingcao:['male','wu',4,['dujin']],
sunru:['female','wu',3,['yingjian','shixin']], sunru:['female','wu',3,['yingjian','shixin']],
lifeng:['male','shu',3,['tunchu','shuliang']], lifeng:['male','shu',3,['tunchu','shuliang']],
zhuling:['male','wei',4,['zhanyi']], zhuling:['male','wei',4,['xinzhanyi']],
liuye:['male','wei',3,['polu','choulve']], liuye:['male','wei',3,['polu','choulve']],
zhaotongzhaoguang:["male","shu",4,["yizan_use","xinfu_longyuan"],[]], zhaotongzhaoguang:["male","shu",4,["yizan_use","xinfu_longyuan"],[]],
majun:["male","wei",3,["xinfu_jingxie1","xinfu_qiaosi"],[]], 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']], xin_yuanshao:['male','qun',4,['reluanji','xueyi'],['zhu']],
old_caochun:['male','wei',4,['shanjia']], old_caochun:['male','wei',4,['shanjia']],
old_yuanshu:['male','qun',4,['xinyongsi','yjixi']], 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:{}, 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:{ translate:{
re_jikang:"新嵇康", re_jikang:"新嵇康",
old_bulianshi:'新步练师', old_bulianshi:'新步练师',
old_caochun:'旧曹纯', old_caochun:'旧曹纯',
shenpei:'审配',
re_zhurong:'界祝融',
re_menghuo:'界孟获',
mobile_default:'常规', mobile_default:'常规',
mobile_fire:'界限突破•火', mobile_fire:'界限突破•火',
mobile_forest:'界限突破•林',
mobile_others:'其他', 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_machao:['male','qun',4,['zhuiji','cihuai']],
old_zhugezhan:["male","shu",3,["old_zuilun","old_fuyin"]], 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:{ characterFilter:{
old_lingju:function(mode){ old_lingju:function(mode){

View File

@ -195,7 +195,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 0" "step 0"
event.count=trigger.num; event.count=trigger.num;
"step 1" "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); var att=get.attitude(_status.event.player,target);
if(att>2){ if(att>2){
if((target.maxHp-target.countCards('h'))>2) return 2*att; 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, direct:true,
content:function (){ content:function (){
'step 0' '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 player=_status.event.player;
var evt=_status.event.target; var evt=_status.event.target;
if(get.type(card)=='equip'){ 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){ trigger.player.chooseTarget(true,function(card,player,target){
var evt=_status.event.getParent(); var evt=_status.event.getParent();
return evt.player.canUse({name:'juedou'},target)&&target!=_status.event.player; 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(); var evt=_status.event.getParent();
return get.effect(target,{name:'juedou'},evt.player,_status.event.player)-2; 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 (){ content:function (){
"step 0" "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; return target.countCards('h')>0&&player!=target;
},function(target){ },function(target){
var att=get.attitude(_status.event.player,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){ if(event.list.length){
var current=event.list.shift(); var current=event.list.shift();
event.current=current; 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{ else{
event.finish(); event.finish();
} }
'step 2' 'step 2'
if(result.bool){ if(result.bool){
trigger.cancel();
player.logSkill('rejiuyuan',event.current); player.logSkill('rejiuyuan',event.current);
event.current.recover(); event.current.recover();
player.draw(); player.draw();

View File

@ -134,7 +134,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"guanqiujian":"毌丘俭字仲恭河东闻喜今山西闻喜县人。三国时期曹魏后期的重要将领。继承父毌丘兴爵位高阳乡侯任平原侯文学。魏明帝即位后上疏劝魏明帝停止加建皇宫的工程升为荆州刺史。景初二年238年从司马懿攻灭公孙渊正始五年244年至正始六年245年两次率兵征讨高句丽攻破丸都几亡其国刻石纪功而还253年击退吴国诸葛恪的大举进犯战功累累。司马师废帝毌丘俭感昔日魏明帝之恩为曹魏政权做拼死一搏于正元二年255年发动兵变即后人所谓“淮南三叛”王淩、毌丘俭、诸葛诞之一惜准备不足兵败身亡。", "guanqiujian":"毌丘俭字仲恭河东闻喜今山西闻喜县人。三国时期曹魏后期的重要将领。继承父毌丘兴爵位高阳乡侯任平原侯文学。魏明帝即位后上疏劝魏明帝停止加建皇宫的工程升为荆州刺史。景初二年238年从司马懿攻灭公孙渊正始五年244年至正始六年245年两次率兵征讨高句丽攻破丸都几亡其国刻石纪功而还253年击退吴国诸葛恪的大举进犯战功累累。司马师废帝毌丘俭感昔日魏明帝之恩为曹魏政权做拼死一搏于正元二年255年发动兵变即后人所谓“淮南三叛”王淩、毌丘俭、诸葛诞之一惜准备不足兵败身亡。",
"haozhao":"郝昭生卒年不详字伯道太原人中国东汉末年至曹魏初年著名将领。郝昭少年从军屡立战功逐渐晋升为杂号将军后受曹真的推荐镇守陈仓在小说三国演义中是司马懿推荐防御蜀汉。太和二年228年诸葛亮率军北伐为郝昭所阻劝降不成昼夜相攻二十余日后被迫退军。魏明帝因此封其为关内侯。不久因染疾而病死。", "haozhao":"郝昭生卒年不详字伯道太原人中国东汉末年至曹魏初年著名将领。郝昭少年从军屡立战功逐渐晋升为杂号将军后受曹真的推荐镇守陈仓在小说三国演义中是司马懿推荐防御蜀汉。太和二年228年诸葛亮率军北伐为郝昭所阻劝降不成昼夜相攻二十余日后被迫退军。魏明帝因此封其为关内侯。不久因染疾而病死。",
"zhugezhan":"诸葛瞻,字思远,琅邪阳都(今山东沂南县)人。三国时期蜀汉大臣,蜀汉丞相诸葛亮之子。邓艾伐蜀时,他与长子诸葛尚及蜀将张遵、李球、黄崇等人防御绵竹(今四川德阳),因不听黄崇速占险要的建议而坐失良机,后来出城与邓艾决战,在交战时阵亡,绵竹也随后失守。", "zhugezhan":"诸葛瞻,字思远,琅邪阳都(今山东沂南县)人。三国时期蜀汉大臣,蜀汉丞相诸葛亮之子。邓艾伐蜀时,他与长子诸葛尚及蜀将张遵、李球、黄崇等人防御绵竹(今四川德阳),因不听黄崇速占险要的建议而坐失良机,后来出城与邓艾决战,在交战时阵亡,绵竹也随后失守。",
"zhoufei":"周妃210年一说本名周彻 [1-2] 。周瑜独女生母无载疑为汉末美女小乔因嫁孙登为太子妃故称周妃。周瑜英年早逝其遗孤都得到孙权厚遇除却她本人在黄武四年225年嫁予太子外兄长周循亦娶孙权长女孙鲁班为妻。", "zhoufei":"周妃210年一说本名周彻。周瑜独女生母无载疑为汉末美女小乔因嫁孙登为太子妃故称周妃。周瑜英年早逝其遗孤都得到孙权厚遇除却她本人在黄武四年225年嫁予太子外兄长周循亦娶孙权长女孙鲁班为妻。",
"lukang":"陆抗字幼节吴郡吴县今江苏苏州人。三国时期吴国名将丞相陆逊次子。陆抗袭父爵为江陵侯为建武校尉领其父众五千人。后迁立节中郎将、镇军将军等。孙皓为帝任镇军大将军、都督西陵、信陵、夷道、乐乡、公安诸军事驻乐乡今湖北江陵西南。凤凰元年272年击退晋将羊祜进攻并攻杀叛将西陵督步阐。后拜大司马、荆州牧卒于官终年49岁。与陆逊皆是吴国的中流砥柱并称“逊抗 ”,被誉为吴国最后的名将。", "lukang":"陆抗字幼节吴郡吴县今江苏苏州人。三国时期吴国名将丞相陆逊次子。陆抗袭父爵为江陵侯为建武校尉领其父众五千人。后迁立节中郎将、镇军将军等。孙皓为帝任镇军大将军、都督西陵、信陵、夷道、乐乡、公安诸军事驻乐乡今湖北江陵西南。凤凰元年272年击退晋将羊祜进攻并攻杀叛将西陵督步阐。后拜大司马、荆州牧卒于官终年49岁。与陆逊皆是吴国的中流砥柱并称“逊抗 ”,被誉为吴国最后的名将。",
"zhangxiu":"张绣武威祖厉今甘肃靖远人。骠骑将军张济的从子。东汉末年割据宛城的军阀汉末群雄之一。初随张济征伐张济死后与刘表联合。后降曹操因曹操调戏其嫂而突袭曹操复与刘表连和。官渡之战前夕听从贾诩的建议再次投降曹操参加官渡之战官至破羌将军封宣威侯。在北征乌桓207年途中去世一说为曹丕逼死谥定侯。", "zhangxiu":"张绣武威祖厉今甘肃靖远人。骠骑将军张济的从子。东汉末年割据宛城的军阀汉末群雄之一。初随张济征伐张济死后与刘表联合。后降曹操因曹操调戏其嫂而突袭曹操复与刘表连和。官渡之战前夕听从贾诩的建议再次投降曹操参加官渡之战官至破羌将军封宣威侯。在北征乌桓207年途中去世一说为曹丕逼死谥定侯。",
"chendao":"陈到,字叔至,生卒年不详,豫州汝南(今河南驻马店平舆县)人。三国时期蜀汉将领,刘备帐下白毦兵统领,名位常亚于赵云,以忠勇著称。蜀汉建兴年间,任征西将军、永安都督,封亭侯。在任期间去世。", "chendao":"陈到,字叔至,生卒年不详,豫州汝南(今河南驻马店平舆县)人。三国时期蜀汉将领,刘备帐下白毦兵统领,名位常亚于赵云,以忠勇著称。蜀汉建兴年间,任征西将军、永安都督,封亭侯。在任期间去世。",
@ -274,7 +274,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "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; return target!=player;
}).ai=function(target){ }).ai=function(target){
var player=_status.event.player; var player=_status.event.player;
@ -626,6 +626,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
"drlt_weidi":{ "drlt_weidi":{
audio:2, audio:2,
forceaudio:true,
unique:true, unique:true,
zhuSkill:true, zhuSkill:true,
trigger:{ trigger:{
@ -795,7 +796,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return att-3; return att-3;
}, },
prompt:get.prompt('drlt_congjian'), prompt:get.prompt2('drlt_congjian'),
}); });
'step 1' 'step 1'
if(result.bool){ if(result.bool){
@ -952,7 +953,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function (){ content:function (){
'step 0' '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; if(card.name=='shan'||card.name=='du') return 1;
return 5-get.value(card); return 5-get.value(card);
}); });
@ -1230,7 +1231,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function (){ content:function (){
'step 0' '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 return target!=player
}).ai=function(target){ }).ai=function(target){
var player=_status.event.player; var player=_status.event.player;
@ -1301,11 +1302,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0' 'step 0'
event.str1='令至多'+trigger.num+'名角色摸一张牌'; event.str1='令至多'+trigger.num+'名角色摸一张牌';
event.str2='对任意名体力值之和为'+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; if(game.countPlayer(function(current){return get.attitude(player,current)<0&&current.hp==trigger.num})>0&&trigger.num<=3) return 1;
return 0; return 0;
}).set('choiceList',[event.str1,event.str2]).set('prompt','是否发动【溃诛】?'); }).set('choiceList',[event.str1,event.str2]).set('prompt','是否发动【溃诛】?');
'step 1' 'step 1'
if(result.control=='cancel2') event.finish();
event.control=[event.str1,event.str2][result.index]; event.control=[event.str1,event.str2][result.index];
'step 2' 'step 2'
var str='请选择【溃诛】的目标'; var str='请选择【溃诛】的目标';
@ -1402,7 +1404,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' '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'); return get.distance(target,player,'attack')>1&&target.countDiscardableCards(player,'he');
}).ai=function(target){ }).ai=function(target){
return -get.attitude(player,target); return -get.attitude(player,target);
@ -1426,6 +1428,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
nzry_lijun2:{}, nzry_lijun2:{},
"nzry_lijun1":{ "nzry_lijun1":{
audio:2, audio:2,
forceaudio:true,
trigger:{ trigger:{
player:'useCardAfter' player:'useCardAfter'
}, },
@ -1447,7 +1450,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
'step 0' '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); return player!=target&&target.hasZhuSkill('nzry_lijun',player);
}).ai=function(target){ }).ai=function(target){
return get.attitude(_status.event.player,target); return get.attitude(_status.event.player,target);
@ -1742,7 +1748,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "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) return get.attitude(player,target)
}; };
"step 1" "step 1"
@ -1769,7 +1775,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "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(); return target.isMinHandcard();
}).ai=function(target){ }).ai=function(target){
return get.attitude(player,target) return get.attitude(player,target)
@ -2439,7 +2445,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0' 'step 0'
event.num=trigger.num; event.num=trigger.num;
'step 1' 'step 1'
player.chooseDrawRecover(get.prompt('xinkuanggu')).set('logSkill','xinkuanggu'); player.chooseDrawRecover(get.prompt('xinkuanggu'),'摸一张牌或回复1点体力').set('logSkill','xinkuanggu');
'step 2' 'step 2'
if(result.control!='cancel2'){ if(result.control!='cancel2'){
event.num--; event.num--;
@ -2596,7 +2602,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
"step 0" "step 0"
var fang=player.hp>=2&&player.countCards('h')<=player.hp+1; 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; return target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
if(!_status.event.fang) return -1; if(!_status.event.fang) return -1;
@ -3293,7 +3299,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
"step 0" "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); var check=lib.skill.beige.checkx(trigger,player);
next.set('ai',function(card){ next.set('ai',function(card){
if(_status.event.goon) return 8-get.value(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, direct:true,
content:function(){ content:function(){
"step 0" "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 return player!=target
}).ai=function(target){ }).ai=function(target){
if(target.hasSkillTag('noturn')) return 0; if(target.hasSkillTag('noturn')) return 0;
@ -3981,7 +3987,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.list.length){ if(event.list.length){
var current=event.list.shift(); var current=event.list.shift();
event.current=current; 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{ else{
event.finish(); event.finish();
@ -4215,7 +4221,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget(get.prompt('yinghun'),function(card,player,target){ player.chooseTarget(get.prompt2('yinghun'),function(card,player,target){
return player!=target; return player!=target;
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -4292,7 +4298,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget(get.prompt('yinghun'),function(card,player,target){ player.chooseTarget(get.prompt2('gzyinghun'),function(card,player,target){
return player!=target; return player!=target;
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -4904,7 +4910,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "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); return target.countCards('h')<Math.min(target.maxHp,5);
}).set('ai',function(target){ }).set('ai',function(target){
var att=get.attitude(_status.event.player,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, direct:true,
content:function(){ content:function(){
"step 0"; "step 0";
player.chooseTarget(get.prompt('releiji')).ai=function(target){ player.chooseTarget(get.prompt2('releiji')).ai=function(target){
if(target.hasSkill('hongyan')) return 0; if(target.hasSkill('hongyan')) return 0;
return get.damageEffect(target,_status.event.player,_status.event.player,'thunder'); 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:{ shensu1:{
audio:2, audio:2,
audioname:['xiahouba'], audioname:['xiahouba'],
trigger:{player:'phaseBegin'}, trigger:{player:'phaseJudgeBefore'},
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
var check= player.countCards('h')>2; 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; if(player==target) return false;
return player.canUse({name:'sha'},target,false); return player.canUse({name:'sha'},target,false);
}).set('check',check).set('ai',function(target){ }).set('check',check).set('ai',function(target){
@ -5410,7 +5416,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.bool){ if(result.bool){
player.logSkill('shensu1',result.targets); player.logSkill('shensu1',result.targets);
player.useCard({name:'sha'},result.targets[0],false); player.useCard({name:'sha'},result.targets[0],false);
player.skip('phaseJudge'); trigger.cancel();
player.skip('phaseDraw'); player.skip('phaseDraw');
} }
} }
@ -5428,6 +5434,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var check=player.needsToDiscard(); var check=player.needsToDiscard();
player.chooseCardTarget({ player.chooseCardTarget({
prompt:get.prompt('shensu'), prompt:get.prompt('shensu'),
prompt2:"弃置一张装备牌并跳过出牌阶段,视为对一名其他角色使用一张【杀】",
filterCard:function(card,player){ filterCard:function(card,player){
return get.type(card)=='equip'&&lib.filter.cardDiscardable(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(){ content:function(){
"step 0" "step 0"
var check=player.needsToDiscard()||player.isTurnedOver(); 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; if(player==target) return false;
return player.canUse({name:'sha'},target,false); return player.canUse({name:'sha'},target,false);
}).set('check',check).set('ai',function(target){ }).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; return att/2+da;
}, },
prompt:get.prompt('tianxiang') prompt:get.prompt2('tianxiang')
}); });
"step 1" "step 1"
if(result.bool){ if(result.bool){
@ -5803,7 +5810,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return att/2+da; return att/2+da;
}, },
prompt:get.prompt('tianxiang') prompt:get.prompt2('xintianxiang')
}); });
"step 1" "step 1"
if(result.bool){ if(result.bool){
@ -6121,7 +6128,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0"; "step 0";
player.chooseTarget(get.prompt('leiji')).ai=function(target){ player.chooseTarget(get.prompt2('leiji')).ai=function(target){
if(target.hasSkill('hongyan')) return 0; if(target.hasSkill('hongyan')) return 0;
return get.damageEffect(target,_status.event.player,_status.event.player,'thunder'); 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, connect:true,
characterSort:{ characterSort:{
sp:{ 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_whlw:["xurong","lijue","zhangji","fanchou","guosi"],
sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"], sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"],
sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"], sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"],
sp_zizouqi:["mangyachang","xugong","zhangchangpu"],
sp_zhongdan:["cuiyan","huangfusong"], 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_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"], sp_guozhan:["shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng"],
@ -18,7 +19,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
character:{ character:{
mangyachang:["male","qun",4,["spjiedao"],[]], mangyachang:["male","qun",4,["spjiedao"],[]],
xugong:["male","wu",4,["biaozhao","yechou"],[]], xugong:["male","wu",3,["biaozhao","yechou"],[]],
zhangchangpu:["female","wei",3,["yanjiao","xingshen"],[]], zhangchangpu:["female","wei",3,["yanjiao","xingshen"],[]],
lijue:["male","qun","4/6",["xinfu_langxi","xinfu_yisuan"],[]], lijue:["male","qun","4/6",["xinfu_langxi","xinfu_yisuan"],[]],
zhangji:["male","qun",4,["xinfu_lveming","xinfu_tunjun"],[]], 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, order:9.5,
equipValue:function (card,player){ equipValue:function (card,player){
if(player.hp==player.maxHp) return 5; if(player.hp==player.maxHp) return 5;
if(player.countCards('h','baiyin')) return 6; if(player.countCards('h','rewrite_baiyin')) return 6;
return 0; return 0;
}, },
basic:{ basic:{
@ -753,7 +754,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.addTempSkill('yanjiao2'); player.addTempSkill('yanjiao2');
event.finish(); 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'); var choiceList=ui.create.dialog('请选择一种方案','hidden','forcebutton');
for(var i=0;i<event.preResult.length;i++){ 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); 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; return true;
}); });
} }
"step 2" "step 4"
event.index=result.links[0]||0; event.index=result.links[0]||0;
event.togain=event.preResult[event.index]; event.togain=event.preResult[event.index];
target.showCards(event.togain[0],get.translation(target)+'分出的第一份牌'); target.showCards(event.togain[0],get.translation(target)+'分出的第一份牌');
"step 3" "step 5"
target.showCards(event.togain[1],get.translation(target)+'分出的第二份牌'); target.showCards(event.togain[1],get.translation(target)+'分出的第二份牌');
"step 4" "step 6"
player.chooseControl().set('choiceList',[ target.chooseControl().set('choiceList',[
'获得'+get.translation(event.togain[0]), '获得'+get.translation(event.togain[0]),
'获得'+get.translation(event.togain[1]) '获得'+get.translation(event.togain[1])
]).ai=function(){return Math.random()<0.5?1:0}; ]).ai=function(){return Math.random()<0.5?1:0};
"step 5" "step 7"
player.gain(event.togain[result.index],'gain2'); target.gain(event.togain[result.index],'gain2');
target.gain(event.togain[1-result.index],'gain2'); player.gain(event.togain[1-result.index],'gain2');
if(event.togain[2].length){ if(event.togain[2].length){
game.cardsDiscard(event.togain[2]); game.cardsDiscard(event.togain[2]);
if(event.togain[2].length>1) player.addTempSkill('yanjiao2'); 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){ getResult:function (cards){
var cl=cards.length; var cl=cards.length;
@ -1519,7 +1639,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function (){ content:function (){
'step 0' '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; var player=_status.event.player;
for(var i=0;i<player.storage.new_xingwu.length;i++){ for(var i=0;i<player.storage.new_xingwu.length;i++){
if(get.suit(player.storage.new_xingwu[i])==get.suit(card)) return 0; 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", global:"phaseUseBegin",
}, },
filter:function (event,player){ 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, direct:true,
derivation:["new_zhixi"], derivation:["new_zhixi"],
@ -1652,7 +1772,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function (){ content:function (){
"step 0" "step 0"
var check=lib.skill.new_meibu.checkx(trigger,player); 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); if(_status.event.check) return 6-get.value(card);
return 0; return 0;
}).set('check',check).set('logSkill','new_meibu'); }).set('check',check).set('logSkill','new_meibu');
@ -1733,7 +1853,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function (){ content:function (){
'step 0' '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; if(target==player) return false;
return target.countCards('e')>0; return target.countCards('e')>0;
}).set('ai',function(target){ }).set('ai',function(target){
@ -2273,7 +2393,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' '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; return target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
if(target.hasJudge('lebu')) return 0; if(target.hasJudge('lebu')) return 0;
@ -2435,7 +2555,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseTarget(get.prompt('shuimeng'),function(card,player,target){ player.chooseTarget(get.prompt2('shuimeng'),function(card,player,target){
return player.canCompare(target); return player.canCompare(target);
}).set('ai',function(target){ }).set('ai',function(target){
if(!_status.event.goon) return 0; 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', shuimeng:trigger.getParent(2).name=='shuimeng',
nh:nh, nh:nh,
cardname:trigger.card.name, cardname:trigger.card.name,
prompt:get.prompt('qianya') prompt:get.prompt2('qianya')
}); });
'step 1' 'step 1'
if(result.bool){ if(result.bool){
@ -3114,7 +3234,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' '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(); return target.isDamaged();
}).set('ai',function(target){ }).set('ai',function(target){
return get.attitude(player,target); return get.attitude(player,target);
@ -3199,7 +3319,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' '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; return target.maxHp>player.maxHp;
}).set('ai',function(target){ }).set('ai',function(target){
return (get.attitude(_status.event.player,target)-2)*target.maxHp; 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(){ content:function(){
'step 0' '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; if(player==target) return false;
return target.countCards('he')>0; return target.countCards('he')>0;
}).ai=function(target){ }).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; 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); return player.canCompare(target);
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -3688,7 +3808,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
'step 0' '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){ if(get.attitude(_status.event.player,target)>0){
return 1/Math.sqrt(target.hp+1); 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++){ for(var i=0;i<hs.length;i++){
maxval=Math.max(maxval,get.value(hs[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 player=_status.event.player;
var maxval=_status.event.maxval; var maxval=_status.event.maxval;
var dh=target.countCards('h')-player.countCards('h'); var dh=target.countCards('h')-player.countCards('h');
@ -3942,7 +4062,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
'step 0' '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; return target.countCards('h')!=target.hp;
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -4237,7 +4357,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
'step 0' '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); return !_status.event.source.contains(target)&&get.distance(player,target)<=1&&player.canUse('sha',target);
}).set('source',trigger.targets).set('ai',function(target){ }).set('source',trigger.targets).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -4983,7 +5103,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
'step 0' '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; return target!=player&&get.distance(player,target,'attack')<=1;
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -5091,7 +5211,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "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); return lib.filter.targetEnabled({name:'sha'},player,target);
}).set('ai',function(target){ }).set('ai',function(target){
return get.effect(target,{name:'sha'},_status.event.player); 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(){ content:function(){
'step 0' 'step 0'
player.chooseTarget(get.prompt('hongde'),function(card,player,target){ player.chooseTarget(get.prompt('hongde'),'令一名其他角色摸一张牌',function(card,player,target){
return target!=player; return target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
return get.attitude(player,target); return get.attitude(player,target);
@ -5306,7 +5426,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' '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; if(card.name=='du') return 20;
return 7-get.useful(card); return 7-get.useful(card);
}); });
@ -5479,7 +5599,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
'step 0' '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; return target.sex=='male'&&target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
if(!_status.event.goon) return 0; if(!_status.event.goon) return 0;
@ -5892,7 +6012,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{ else{
event.draw=true; event.draw=true;
event.num=Math.min(num2,5)-num1; event.num=Math.min(num2,5)-num1;
player.chooseBool(get.prompt('benyu')); player.chooseBool(get.prompt2('benyu'));
} }
"step 1" "step 1"
if(result.bool){ if(result.bool){
@ -6096,7 +6216,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' '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; return !_status.event.getTrigger().targets.contains(target)&&target.countCards('he')>0;
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -6290,7 +6410,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' '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'; return get.type(card)=='equip';
}).set('ai',function(card){ }).set('ai',function(card){
if(card.name=='bagua') return 10; if(card.name=='bagua') return 10;
@ -6480,7 +6600,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
save=true; save=true;
} }
} }
var next=player.chooseToDiscard('he',get.prompt('zhenwei')); var next=player.chooseToDiscard('he',get.prompt2('zhenwei'));
next.logSkill=['zhenwei',trigger.target]; next.logSkill=['zhenwei',trigger.target];
next.set('ai',function(card){ next.set('ai',function(card){
if(_status.event.aisave){ if(_status.event.aisave){
@ -6992,7 +7112,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
"step 0" "step 0"
var next=player.chooseToDiscard(get.prompt('anxian')); var next=player.chooseToDiscard(get.prompt2('anxian'));
next.set('ai',function(card){ next.set('ai',function(card){
var player=_status.event.player; var player=_status.event.player;
var trigger=_status.event.getTrigger(); var trigger=_status.event.getTrigger();
@ -7230,7 +7350,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
content:function(){ content:function(){
'step 0' '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; return player.hp>=target.hp;
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -7861,7 +7981,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 0" "step 0"
player.addSkill('qingyi3'); player.addSkill('qingyi3');
var check= player.countCards('h')>2; 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; if(player==target) return false;
return player.canUse({name:'sha'},target); return player.canUse({name:'sha'},target);
}).ai=function(target){ }).ai=function(target){
@ -7890,7 +8010,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.addSkill('qingyi3'); player.addSkill('qingyi3');
var check=player.countCards('h')<=player.hp; var check=player.countCards('h')<=player.hp;
player.chooseCardTarget({ player.chooseCardTarget({
prompt:get.prompt('qingyi'), prompt:get.prompt2('qingyi'),
filterCard:function(card,player){ filterCard:function(card,player){
return get.type(card)=='equip'&&lib.filter.cardDiscardable(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, direct:true,
content:function(){ content:function(){
'step 0' '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; return target!=player&&target!=_status.event.getTrigger().player;
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -8377,7 +8497,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
'step 0' 'step 0'
player.addTempSkill('fengpo3'); 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' 'step 1'
if(result.control&&result.control!='cancel2'){ if(result.control&&result.control!='cancel2'){
player.logSkill('fengpo'); player.logSkill('fengpo');
@ -8619,7 +8739,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.storage.kunfen){ if(!player.storage.kunfen){
event.skillHidden=true; event.skillHidden=true;
} }
player.chooseBool(get.prompt('kunfen')).set('ai',function(){ player.chooseBool(get.prompt2('kunfen')).set('ai',function(){
var player=_status.event.player; var player=_status.event.player;
if(player.hp>3) return true; if(player.hp>3) return true;
if(player.hp==3&&player.countCards('h')<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(){ content:function(){
"step 0" "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); return player.canUse({name:'sha'},target);
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; 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(_status.currentPhase!=source) return 'trick';
if(lib.filter.cardUsable({name:'sha'},source)&&source.countCards('h')>=2) return 'basic'; if(lib.filter.cardUsable({name:'sha'},source)&&source.countCards('h')>=2) return 'basic';
return 'trick'; 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' 'step 1'
if(result.control!='cancel2'){ if(result.control!='cancel2'){
player.logSkill('jilei',trigger.source); player.logSkill('jilei',trigger.source);
@ -9138,7 +9258,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var player=_status.event.player; var player=_status.event.player;
return get.effect(target,trigger.card,player,player); return get.effect(target,trigger.card,player,player);
}, },
prompt:get.prompt('fenxun') prompt:get.prompt2('fenxun')
}); });
"step 1" "step 1"
if(result.bool){ if(result.bool){
@ -9450,11 +9570,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player==trigger.player){ if(player==trigger.player){
player.chooseControl('摸一张','摸两张','cancel2',function(){ player.chooseControl('摸一张','摸两张','cancel2',function(){
return '摸两张'; return '摸两张';
}).set('prompt',get.prompt('liangzhu')); }).set('prompt',get.prompt2('liangzhu'));
event.single=true; event.single=true;
} }
else{ 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; return target==_status.event.player||target==_status.event.target;
}).set('target',trigger.player).set('ai',function(target){ }).set('target',trigger.player).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -9530,7 +9650,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
"step 0" "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){ next.set('ai',function(card){
return 9-get.value(card); return 9-get.value(card);
}); });
@ -9655,7 +9775,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{ else{
return 'draw_card'; return 'draw_card';
} }
}).set('prompt',get.prompt('moukui')); }).set('prompt',get.prompt2('moukui'));
"step 1" "step 1"
if(result.control=='draw_card'){ if(result.control=='draw_card'){
player.draw(); 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){ else if(trigger.player.canUse('sha',player)&&!player.countCards('h','shan')&&trigger.player.countCards('h')>=3){
nono=true; 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){ next.set('ai',function(card){
if(_status.event.nono) return -1; if(_status.event.nono) return -1;
return 7-get.useful(card); return 7-get.useful(card);
@ -10258,7 +10378,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
"step 0" "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; return player!=target&&target.countCards('he')>0;
}).set('ai',function(target){ }).set('ai',function(target){
return -get.attitude(_status.event.player,target); return -get.attitude(_status.event.player,target);
@ -10478,7 +10598,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget(get.prompt('shushen'),function(card,player,target){ player.chooseTarget(get.prompt('shushen'),'令一名其他角色选择摸两张牌或回复1点体力',function(card,player,target){
return target!=player; return target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
return get.attitude(_status.event.player,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()){ if(get.is.versus()){
event.versus=true; event.versus=true;
player.chooseBool(get.prompt('hongyuan')).ai=function(){ player.chooseBool(get.prompt2('hongyuan')).ai=function(){
return game.countPlayer(function(current){ return game.countPlayer(function(current){
return player.side==current.side; return player.side==current.side;
})>2; })>2;
}; };
} }
else{ 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; return player!=target;
},function(target){ },function(target){
if(!_status.event.check) return 0; 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; var num=target.hasSkillTag('maixie')?2:0;
return -get.attitude(_status.event.player,target)-num; return -get.attitude(_status.event.player,target)-num;
}, },
prompt:get.prompt('bifa') prompt:get.prompt2('bifa')
}); });
"step 1" "step 1"
if(result.bool){ if(result.bool){
@ -11373,7 +11493,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai2:function(target){ ai2:function(target){
return get.attitude(_status.event.player,target)-3; return get.attitude(_status.event.player,target)-3;
}, },
prompt:get.prompt('yuanhu') prompt:get.prompt2('yuanhu')
}); });
"step 1" "step 1"
if(result.bool){ if(result.bool){
@ -11446,7 +11566,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return b.hp-a.hp; return b.hp-a.hp;
}); });
if(players[0].hp>players[1].hp&&players[0]!=player){ 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]; event.player=players[0];
} }
else{ else{
@ -11679,7 +11799,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
"step 0" "step 0"
var check=(player.hp==1||(player.hp==2&&player.countCards('h')<=1)); 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; if(!_status.event.check) return 0;
return get.attitude(_status.event.player,target); return get.attitude(_status.event.player,target);
}).set('check',check); }).set('check',check);
@ -11866,7 +11986,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mangyachang:"忙牙长", mangyachang:"忙牙长",
xugong:"许贡", xugong:"许贡",
zhangchangpu:"张蒲", zhangchangpu:"张蒲",
spjiedao:"截刀", spjiedao:"截刀",
"spjiedao_info":"当你每回合第一次造成伤害时,你可令此伤害至多+XX为你损失的体力值。然后若受到此伤害的角色没有死亡你弃置等同于此伤害加值的牌。", "spjiedao_info":"当你每回合第一次造成伤害时,你可令此伤害至多+XX为你损失的体力值。然后若受到此伤害的角色没有死亡你弃置等同于此伤害加值的牌。",
@ -12432,6 +12552,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_whlw:"文和乱武", sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原", sp_zlzy:"逐鹿中原",
sp_longzhou:"同舟共济", sp_longzhou:"同舟共济",
sp_zizouqi:"自走棋",
sp_zhongdan:"忠胆英杰", sp_zhongdan:"忠胆英杰",
sp_star:"☆SP系列", sp_star:"☆SP系列",
sp_guozhan:"国战", 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'; return get.itemtype(event.cards)=='cards'&&get.position(event.cards[0])=='d';
}, },
content:function(){ content:function(){
player.gain(trigger.cards); player.gain(trigger.cards,'gain2');
player.$gain2(trigger.cards);
}, },
ai:{ ai:{
maixie:true, 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; return current!=player&&current.countCards('h')&&get.attitude(player,current)<=0;
}); });
check=(num>=2); 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; return target.countCards('h')>0&&player!=target;
},function(target){ },function(target){
if(!_status.event.aicheck) return 0; if(!_status.event.aicheck) return 0;
@ -1027,7 +1026,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
'step 0' 'step 0'
event.num=Math.min(5,game.countPlayer()); 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.cards=get.cards(event.num);
event.chosen=[]; event.chosen=[];
event.num1=0; event.num1=0;
@ -1873,7 +1872,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return -1; return -1;
}, },
prompt:get.prompt2('liuli') prompt:get.prompt('liuli'),
prompt2:'弃置一张牌,将此【杀】转移给攻击范围内的一名其他角色',
}); });
"step 1" "step 1"
if(result.bool){ if(result.bool){

View File

@ -51,7 +51,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function (){ content:function (){
"step 0" "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; return target.hp<=player.hp&&target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -223,7 +223,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
intro:{ intro:{
content:"limited", content:"limited",
}, },
init:function (player){ init:function (player){
player.storage.xinfu_tunjun=false; player.storage.xinfu_tunjun=false;
}, },
}, },
@ -323,7 +323,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function (event,player){ filter:function (event,player){
return (event.targets&&event.targets.length); return (event.targets&&event.targets.length);
}, },
content:function (){ content:function (){
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
if(game.players[i]==player) continue; if(game.players[i]==player) continue;
if(game.players[i].storage.sidao){ if(game.players[i].storage.sidao){
@ -594,7 +594,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function (){ content:function (){
'step 0' '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; if(card.name=='shan') return 6;
return 6-get.value(card); 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); if(!event.ablers.length) event.goto(4);
else{ else{
player.chooseBool(get.prompt('xinfu_lianpian')).set('ai',function(){ player.chooseBool(get.prompt2('xinfu_lianpian')).set('ai',function(){
return true; return true;
}).set('prompt2',get.translation('xinfu_lianpian_info')); }).set('prompt2',get.translation('xinfu_lianpian_info'));
} }
@ -1102,7 +1102,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function (){ content:function (){
'step 0' '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); return trigger.targets.contains(target);
}).set('ai',function(target){ }).set('ai',function(target){
return -get.attitude(_status.event.player,target); return -get.attitude(_status.event.player,target);
@ -1959,7 +1959,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function (){ content:function (){
'step 0' '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; if(player==target) return false;
return target.countGainableCards(player,'he')>0; return target.countGainableCards(player,'he')>0;
}).set('ai',function(target){ }).set('ai',function(target){
@ -2129,6 +2129,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!event.nature) return false; if(!event.nature) return false;
return player.storage.xinfu_falu_map.diamond; return player.storage.xinfu_falu_map.diamond;
}, },
prompt2:'弃置“勾陈”标记,从牌堆中获得每种类型的牌各一张。',
content:function (){ content:function (){
'step 0' 'step 0'
player.storage.xinfu_falu_map.diamond=false; player.storage.xinfu_falu_map.diamond=false;
@ -2187,7 +2188,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function (){ content:function (){
"step 0" "step 0"
var str=get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+ 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(){ player.chooseControl('黑桃5','红桃5','取消').set('prompt',str).set('ai',function(){
//return '取消'; //return '取消';
var judging=_status.event.judging; var judging=_status.event.judging;
@ -2251,7 +2252,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
viewAs:{ viewAs:{
name:"tao", name:"tao",
}, },
prompt:"将一张手牌当桃使用", prompt:"弃置“后土”标记将一张手牌当桃使用",
check:function (card){return 15-get.value(card)}, check:function (card){return 15-get.value(card)},
precontent:function (){ precontent:function (){
player.logSkill('xinfu_zhenyi'); player.logSkill('xinfu_zhenyi');
@ -2270,71 +2271,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
save:true, save:true,
respondTao: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":{ "zhenyi_heart":{
@ -2347,10 +2283,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
check:function (event,player){ check:function (event,player){
return false; return false;
}, },
prompt:function (event){ prompt2:function(event){
return '即将对'+get.translation(event.player)+'造成伤害,'+get.prompt('xinfu_zhenyi'); return '弃置“玉清”标记,然后进行判定。若结果为黑色,则对'+get.translation(event.player)+'即将造成的伤害+1。';
}, },
logTarget:"source", logTarget:"player",
content:function (){ content:function (){
"step 0" "step 0"
player.storage.xinfu_falu_map.heart=false; player.storage.xinfu_falu_map.heart=false;
@ -2382,7 +2318,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function (){ content:function (){
"step 0" "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; return target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; 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){ var num=game.countPlayer(function(current){
return current!=player&&current.hp==target.hp&&(raweffect(player,current)*get.attitude(player,current))>0 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, expose:0.4,
@ -2981,7 +2917,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function (){ content:function (){
"step 0" "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; if(player==target) return false;
return player.canUse({name:'sha'},target); return player.canUse({name:'sha'},target);
}).set('ai',function(target){ }).set('ai',function(target){
@ -3529,7 +3465,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function (){ content:function (){
'step 0' '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; return target!=player;
}).set('ai',function(){ }).set('ai',function(){
return -1; return -1;
@ -3658,7 +3594,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function (){ content:function (){
"step 0" "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; return player!=target;
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -3770,7 +3706,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function (){ content:function (){
'step 0' 'step 0'
var list=['递增','递减','取消']; 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(); return [0,1].randomGet();
}); });
'step 1' 'step 1'
@ -3809,7 +3745,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function (){ content:function (){
'step 0' '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'); return target!=player&&target.countCards('h')>player.countCards('h');
}).set('ai',function(target){ }).set('ai',function(target){
var att=get.attitude(_status.event.player,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){ prompt:function (links,player){
return '将一张手牌当'+get.translation(links[0][2])+'使用'; return '将一张手牌当'+get.translation(links[0][2])+'使用';
}, },
}, },
ai:{save:true}, ai:{save:true},

View File

@ -3,7 +3,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return { return {
name:'yijiang', name:'yijiang',
connect:true, connect:true,
connectBanned:['qinmi'], //connectBanned:['qinmi'],
characterSort:{ characterSort:{
yijiang:{ yijiang:{
yijiang_2011:['caozhi','re_yujin','zhangchunhua','xin_fazheng','xin_masu','xin_xushu','xusheng','lingtong','wuguotai','chengong','gaoshun'], 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:{ tianbian:{
audio:2, audio:2,
trigger:{player:'chooseCardBegin'}, enable:"chooseCard",
check:function(event,player){ check:function(event,player){
return !player.hasCard(function(card){ var player=_status.event.player;
return (!player.hasCard(function(card){
var val=get.value(card); var val=get.value(card);
return val<0||(val<=4&&card.number>=11); return val<0||(val<=4&&card.number>=11);
},'h'); },'h'))?20:0;
}, },
filter:function(event){ filter:function(event){
return event.type=='compare'&&!event.directresult; return event.type=='compare'&&!event.directresult;
}, },
content:function(){ onCompare:function(player){
var cards=get.cards(); return get.cards();
cards[0].discard();
cards[0].vanishtag.add('tianbian');
trigger.directresult=cards;
trigger.untrigger();
}, },
group:'tianbian_number', group:'tianbian_number',
subSkill:{ subSkill:{
@ -1129,7 +1126,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
animationColor:'thunder', animationColor:'thunder',
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseTarget(get.prompt('juexiang'),function(card,player,target){ player.chooseTarget(get.prompt2('juexiang'),function(card,player,target){
return target!=player; return target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
return get.attitude(_status.event.player,target)/Math.sqrt(target.hp+1); 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'}, trigger:{target:'shaBefore'},
direct:true, direct:true,
init:function(player){ init:function(player){
player.storage.shouxi=[]; if(!player.storage.shouxi) player.storage.shouxi=[];
}, },
content:function(){ content:function(){
'step 0' 'step 0'
@ -1861,7 +1858,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseTarget(get.prompt('daiyan'),function(card,player,target){ player.chooseTarget(get.prompt2('daiyan'),function(card,player,target){
return target!=player; return target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; 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'; if(color.length==2) color='all';
else color=color[0]; 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(get.type(card)=='basic') return false;
if(_status.event.color=='all') return true; if(_status.event.color=='all') return true;
return get.color(card)==_status.event.color; 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){ var num=game.countPlayer(function(current){
return !current.isLinked(); 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(); return !target.isLinked();
}).set('ai',function(target){ }).set('ai',function(target){
return -get.attitude(_status.event.player,target); return -get.attitude(_status.event.player,target);
@ -2823,7 +2820,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' '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); var zhu=get.zhu(player);
if(target==zhu) return false; if(target==zhu) return false;
return get.distance(target,zhu,'attack')<=1; return get.distance(target,zhu,'attack')<=1;
@ -2896,7 +2893,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return false; return false;
}, },
content:function(){ content:function(){
player.chooseDrawRecover(get.prompt('guizao')).logSkill='guizao'; player.chooseDrawRecover(get.prompt('guizao'),'摸一张牌或回复一点体力').logSkill='guizao';
}, },
}, },
jiyu:{ jiyu:{
@ -2904,9 +2901,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:'phaseUse', enable:'phaseUse',
locked:false, locked:false,
filter:function(event,player){ filter:function(event,player){
if(!player.getStat().skill.jiyu) return true;
var hs=player.getCards('h'); var hs=player.getCards('h');
for(var i=0;i<hs.length;i++){ 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; return true;
} }
} }
@ -3549,7 +3547,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' '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; return target.countCards('h')==0;
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -3681,7 +3679,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai2:function(target){ ai2:function(target){
return 1-get.attitude(_status.event.player,target); return 1-get.attitude(_status.event.player,target);
}, },
prompt:get.prompt('jieyue') prompt:get.prompt2('jieyue')
}); });
'step 1' 'step 1'
if(result.bool){ if(result.bool){
@ -4073,7 +4071,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
'step 1' 'step 1'
if(event.cards.length){ 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); return player.canUse({name:'bingliang'},target,false);
}).set('ai',function(target){ }).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
@ -4345,7 +4343,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.jiu=true; event.jiu=true;
} }
player.chooseToUse('是否对'+get.translation(trigger.target)+'再使用一张杀?', player.chooseToUse('是否对'+get.translation(trigger.target)+'再使用一张杀?',
{name:'sha'},trigger.target,-1).logSkill='qinglong_skill'; {name:'sha'},trigger.target,-1);
"step 3" "step 3"
if(result.bool); if(result.bool);
else if(event.jiu){ 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){ if(trigger.responded&&trigger.responded.cards&&trigger.responded.cards.length){
event.cards2=trigger.responded.cards.slice(0); 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; return target!=_status.event.getTrigger().target&&target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
return get.attitude(_status.event.player,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.logSkill=['longyin',trigger.player];
next.set('ai',function(card){ next.set('ai',function(card){
if(_status.event.go){ if(_status.event.go){
@ -4535,6 +4533,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
trigger:{player:'chooseToRespondBegin'}, trigger:{player:'chooseToRespondBegin'},
filter:function(event,player){ filter:function(event,player){
if(!_status.currentPhase) return false;
if(event.responded) return false; if(event.responded) return false;
if(!event.filterCard({name:'shan'})) return false; if(!event.filterCard({name:'shan'})) return false;
return true; return true;
@ -4555,21 +4554,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.line(_status.currentPhase,'green'); player.line(_status.currentPhase,'green');
_status.currentPhase.draw(); _status.currentPhase.draw();
'step 1' 'step 1'
var nh=_status.currentPhase.countCards('h'); if(_status.currentPhase.isMaxHandcard()){
var nmax=nh+1; event.finish();
var targets=[]; return;
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]);
}
} }
var targets=game.filterPlayer(function(current){
return current.isMaxHandcard();
})
if(targets.length==1){ if(targets.length==1){
event.onlytarget=targets[0]; event.onlytarget=targets[0];
} }
@ -4693,7 +4684,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
'step 0' 'step 0'
var nh=player.countCards('h'); 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'); return _status.event.nh!=target.countCards('h');
}).set('ai',function(target){ }).set('ai',function(target){
var att=get.attitude(_status.event.player,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')){ if(!player.hasSkill('yanzhu')){
num=player.maxHp; 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); var att=get.attitude(_status.event.player,target);
if(target.countCards('he')) return att; if(target.countCards('he')) return att;
return att/10; 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){ next.set('ai',function(card){
if(_status.event.yep) return 5-get.value(card); if(_status.event.yep) return 5-get.value(card);
return 0; return 0;
@ -5340,7 +5331,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
'step 0' '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); return _status.event.getTrigger().targets.contains(target);
}).set('ai',function(target){ }).set('ai',function(target){
return get.attitude(_status.event.player,target); return get.attitude(_status.event.player,target);
@ -5385,7 +5376,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "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'; return get.type(card)!='basic'&&get.color(card)=='black';
}).set('ai',function(card){ }).set('ai',function(card){
if(!_status.event.player.countCards('h','shan')){ if(!_status.event.player.countCards('h','shan')){
@ -5769,7 +5760,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
'step 0' 'step 0'
var go=Math.random()<0.5; 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 return player!=target
}).ai=function(target){ }).ai=function(target){
var att=get.attitude(player,target); var att=get.attitude(player,target);
@ -5781,10 +5772,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
'step 1' 'step 1'
if(result.bool){ if(result.bool){
player.logSkill('mingjian',result.targets); player.logSkill('mingjian_old',result.targets);
trigger.cancel(); trigger.cancel();
var target=result.targets[0]; var target=result.targets[0];
target.addSkill('mingjian2'); target.addSkill('mingjian2_old');
var hs=player.getCards('h'); var hs=player.getCards('h');
target.gain(hs,player); target.gain(hs,player);
player.$give(hs.length,target); player.$give(hs.length,target);
@ -5808,7 +5799,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.ai.tempIgnore=[]; player.ai.tempIgnore=[];
player.stat.push({card:{},skill:{}}); player.stat.push({card:{},skill:{}});
player.phaseUse(); player.phaseUse();
player.removeSkill('mingjian2'); player.removeSkill('mingjian2_old');
} }
}, },
huituo:{ huituo:{
@ -5817,7 +5808,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
'step 0' '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; var player=_status.event.player;
if(get.attitude(player,target)>0){ if(get.attitude(player,target)>0){
return get.recoverEffect(target,player,player)+1; return get.recoverEffect(target,player,player)+1;
@ -5866,7 +5857,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
content:function(){ content:function(){
'step 0' '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.logSkill=['duodao',trigger.source];
next.set('ai',function(card){ next.set('ai',function(card){
if(get.attitude(_status.event.player,_status.event.getTrigger().source)<=0){ 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(){ content:function(){
'step 0' '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; return target.sex=='male'&&target!=player;
}).set('ai',function(target){ }).set('ai',function(target){
return get.attitude(_status.event.player,target); return get.attitude(_status.event.player,target);
@ -6189,7 +6180,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
position:'he', position:'he',
content:function(){ content:function(){
"step 0" "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(); var trigger=_status.event.getTrigger();
return lib.filter.filterTarget(trigger.card,player,target)&&target!=trigger.targets[0]; return lib.filter.filterTarget(trigger.card,player,target)&&target!=trigger.targets[0];
}).set('autodelay',true).set('ai',function(target){ }).set('autodelay',true).set('ai',function(target){
@ -6501,7 +6492,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget(get.prompt('qiaoshui'),function(card,player,target){ player.chooseTarget(get.prompt2('qiaoshui'),function(card,player,target){
return player.canCompare(target); return player.canCompare(target);
}).set('ai',function(target){ }).set('ai',function(target){
return -get.attitude(_status.event.player,target)/target.countCards('h'); 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, direct:true,
content:function(){ content:function(){
"step 0" "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; return true;
}).set('ai',function(target){ }).set('ai',function(target){
return get.attitude(_status.event.player,target); return get.attitude(_status.event.player,target);
@ -6757,7 +6748,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' '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; return target!=player&&target.countCards('h')>0;
}).set('ai',function(){ }).set('ai',function(){
return Math.random(); return Math.random();
@ -6911,7 +6902,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "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; if(player==target) return false;
var trigger=_status.event.getTrigger(); var trigger=_status.event.getTrigger();
return player.canUse(trigger.card,target)&&trigger.targets.contains(target)==false; 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, priority:11,
content:function(){ content:function(){
"step 0" "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); return target!=player&&_status.event.getTrigger().player.canUse('sha',target,false);
}).set('ai',function(target){ }).set('ai',function(target){
var trigger=_status.event.getTrigger(); var trigger=_status.event.getTrigger();
@ -7619,7 +7610,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget(get.prompt('xinxuanhuo'),function(card,player,target){ player.chooseTarget(get.prompt2('xinxuanhuo'),function(card,player,target){
return player!=target; return player!=target;
}).set('ai',function(target){ }).set('ai',function(target){
var att=get.attitude(_status.event.player,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, direct:true,
content:function(){ content:function(){
"step 0" "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); return get.attitude(_status.event.player,target);
}); });
"step 1" "step 1"
@ -7954,7 +7945,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return att; return att;
}, },
position:'he', position:'he',
prompt:get.prompt('xinjujian') prompt:get.prompt2('xinjujian')
}); });
"step 1" "step 1"
if(result.bool){ if(result.bool){
@ -8541,7 +8532,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 0" "step 0"
event.count=2; event.count=2;
"step 1" "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; if(player==target) return false;
return target.countDiscardableCards(player,'he'); return target.countDiscardableCards(player,'he');
}).set('ai',function(target){ }).set('ai',function(target){
@ -9077,7 +9068,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "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.logSkill=['renxin',trigger.player];
next.set('ai',function(card){ next.set('ai',function(card){
var player=_status.event.player; var player=_status.event.player;
@ -9109,13 +9100,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
"step 0" "step 0"
var next=player.chooseCard(get.prompt('yuce')); var next=player.chooseCard(get.prompt2('yuce'));
next.set('ai',function(card){ next.set('ai',function(card){
if(get.type(card)=='basic') return 1; if(get.type(card)=='basic') return 1;
return get.value(card); return get.value(card);
}); });
"step 1" "step 1"
if(result.bool){ if(result.bool){
player.logSkill('yuce');
player.showCards(result.cards); player.showCards(result.cards);
var type=get.type(result.cards[0],'trick'); var type=get.type(result.cards[0],'trick');
if(trigger.source){ if(trigger.source){
@ -9165,7 +9157,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
"step 0" "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; return target.countCards('he')>0;
},function(target){ },function(target){
return -get.attitude(_status.event.player,target); return -get.attitude(_status.event.player,target);
@ -9820,7 +9812,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guizao:'瑰藻', guizao:'瑰藻',
guizao_info:'弃牌阶段结束时若你于此阶段弃置牌的数量不小于2且它们的花色各不相同你可以回复1点体力或摸一张牌', guizao_info:'弃牌阶段结束时若你于此阶段弃置牌的数量不小于2且它们的花色各不相同你可以回复1点体力或摸一张牌',
jiyu:'讥谀', jiyu:'讥谀',
jiyu_info:'出牌阶段每名角色限一次,若你有可以使用的手牌你可以令一名角色弃置一张手牌。若如此做你不能使用与之相同花色的牌直到回合结束。若其以此法弃置的牌为黑桃你翻面并令其失去1点体力', jiyu_info:'出牌阶段限一次你可以令一名角色弃置一张手牌。若如此做你不能使用与之相同花色的牌直到回合结束。若其以此法弃置的牌为黑桃你翻面并令其失去1点体力。若你有未被【讥谀】限制的手牌,则你可以继续发动此技能,但不能选择本回合已经选择过的目标。',
qinqing:'寝情', qinqing:'寝情',
qinqing_info:'结束阶段你可以选择任意名攻击范围内含有主公的角色然后弃置这些角色各一张牌并令其摸一张牌无牌则不弃若如此做你摸X张牌X为其中手牌比主公多的角色数', qinqing_info:'结束阶段你可以选择任意名攻击范围内含有主公的角色然后弃置这些角色各一张牌并令其摸一张牌无牌则不弃若如此做你摸X张牌X为其中手牌比主公多的角色数',
huisheng:'贿生', huisheng:'贿生',