官!渡!之!战!
|
@ -245,21 +245,27 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
audio:true,
|
audio:true,
|
||||||
type:'trick',
|
type:'trick',
|
||||||
enable:function(card,player){
|
enable:function(card,player){
|
||||||
|
if(get.mode()=='versus') return true;
|
||||||
return game.hasPlayer(function(current){
|
return game.hasPlayer(function(current){
|
||||||
return current.isMajor();
|
return current.isMajor();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
mode:['guozhan'],
|
mode:['guozhan','versus'],
|
||||||
filterTarget:true,
|
filterTarget:true,
|
||||||
chongzhu:true,
|
chongzhu:true,
|
||||||
changeTarget:function(player,targets){
|
changeTarget:function(player,targets){
|
||||||
var target=targets[0];
|
var target=targets[0];
|
||||||
game.filterPlayer(function(current){
|
game.filterPlayer(function(current){
|
||||||
|
if(get.mode()=='versus') return current.isFriendOf(target);
|
||||||
return current.isMajor()==target.isMajor()&¤t!=target&&!current.hasSkill('diaohulishan');
|
return current.isMajor()==target.isMajor()&¤t!=target&&!current.hasSkill('diaohulishan');
|
||||||
},targets);
|
},targets);
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
if(target.isLinked()){
|
if(get.mode()=='versus'){
|
||||||
|
if(target.isEnemyOf(player)) target.link(true);
|
||||||
|
else if(target.isLinked()) target.draw();
|
||||||
|
}
|
||||||
|
else if(target.isLinked()){
|
||||||
target.draw();
|
target.draw();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -275,6 +281,16 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
result:{
|
result:{
|
||||||
player:function(player,target){
|
player:function(player,target){
|
||||||
|
if(get.mode()=='versus') return game.countPlayer(function(current){
|
||||||
|
if(target.isFriendOf(current)){
|
||||||
|
if(current.isFriendOf(player)&¤t.isLinked()){
|
||||||
|
return get.attitude(player,target);
|
||||||
|
}
|
||||||
|
else if(current.isEnemyOf(player)&&!current.isLinked()){
|
||||||
|
return -get.attitude(player,target)*0.6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
return game.countPlayer(function(current){
|
return game.countPlayer(function(current){
|
||||||
if(target.isMajor()==current.isMajor()){
|
if(target.isMajor()==current.isMajor()){
|
||||||
if(current.isLinked()){
|
if(current.isLinked()){
|
||||||
|
@ -1377,6 +1393,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
shuiyanqijunx_info:'出牌阶段,对一名装备区里有牌的其他角色使用。目标角色选择一项:1、弃置装备区里的所有牌;2、受到你造成的1点雷电伤害',
|
shuiyanqijunx_info:'出牌阶段,对一名装备区里有牌的其他角色使用。目标角色选择一项:1、弃置装备区里的所有牌;2、受到你造成的1点雷电伤害',
|
||||||
lulitongxin:'勠力同心',
|
lulitongxin:'勠力同心',
|
||||||
lulitongxin_info:'出牌阶段,对所有大势力角色或所有小势力角色使用。若目标角色:不处于“连环状态”,其横置;处于“连环状态”,其摸一张牌',
|
lulitongxin_info:'出牌阶段,对所有大势力角色或所有小势力角色使用。若目标角色:不处于“连环状态”,其横置;处于“连环状态”,其摸一张牌',
|
||||||
|
lulitongxin_info_versus:'出牌阶段,对所有敌方角色或所有己方角色使用。若目标角色:为敌方角色且不处于“连环状态”,其横置;为己方角色且处于“连环状态”,其摸一张牌。',
|
||||||
lianjunshengyan:'联军盛宴',
|
lianjunshengyan:'联军盛宴',
|
||||||
lianjunshengyan_info:'出牌阶段,对你和你选择的除你的势力外的一个势力的所有角色。若目标角色:为你,你选择摸Y张牌并回复X-Y点体力(X为该势力的角色数,Y∈[0,X]);不为你,其摸一张牌,然后重置。',
|
lianjunshengyan_info:'出牌阶段,对你和你选择的除你的势力外的一个势力的所有角色。若目标角色:为你,你选择摸Y张牌并回复X-Y点体力(X为该势力的角色数,Y∈[0,X]);不为你,其摸一张牌,然后重置。',
|
||||||
lianjunshengyan_info_boss:'出牌阶段,对场上所有角色使用。你摸X张牌(X为目存活角色数),其他角色依次选择回复1点体力或摸一张牌。',
|
lianjunshengyan_info_boss:'出牌阶段,对场上所有角色使用。你摸X张牌(X为目存活角色数),其他角色依次选择回复1点体力或摸一张牌。',
|
||||||
|
|
|
@ -1682,22 +1682,14 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
direct:true,
|
direct:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(get.mode()=='guozhan') return false;
|
if(get.mode()=='guozhan') return false;
|
||||||
return player.canUse('sha',event.target,false)&&player.hasSha();
|
return player.canUse('sha',event.target,false)&&(player.hasSha()||_status.connectMode&&player.countCards('h'));
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
"step 0"
|
"step 0"
|
||||||
if(player.hasSkill('jiu')){
|
player.chooseToUse(get.prompt('qinglong'),function(card,player,event){
|
||||||
game.broadcastAll(function(player){
|
if(get.name(card)!='sha') return false;
|
||||||
player.removeSkill('jiu');
|
return lib.filter.filterCard.apply(this,arguments);
|
||||||
},player);
|
},trigger.target,-1).set('addCount',false).logSkill='qinglong_skill';
|
||||||
event.jiu=true;
|
|
||||||
}
|
|
||||||
player.chooseToUse(get.prompt('qinglong'),{name:'sha'},trigger.target,-1).set('addCount',false).logSkill='qinglong_skill';
|
|
||||||
"step 1"
|
|
||||||
if(result.bool);
|
|
||||||
else if(event.jiu){
|
|
||||||
player.addSkill('jiu');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
zhangba_skill:{
|
zhangba_skill:{
|
||||||
|
|
|
@ -1527,7 +1527,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
});
|
});
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
player.chooseTarget(lib.filter.notMe,true,'选择一名其他角色,对其造成1点雷属性伤害');
|
player.chooseTarget(lib.filter.notMe,true,'选择一名其他角色,对其造成1点雷属性伤害').set('',function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
return get.damageEffect(target,player,player,'thunder');
|
||||||
|
});
|
||||||
}
|
}
|
||||||
else event.finish();
|
else event.finish();
|
||||||
'step 2'
|
'step 2'
|
||||||
|
@ -2532,7 +2535,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
target.chooseToUse({
|
target.chooseToUse({
|
||||||
cards:cards,
|
cards:cards,
|
||||||
filterCard:function(card){
|
filterCard:function(card){
|
||||||
if(!_status.event.cards.contains(card)) return false;
|
if(get.itemtype(card)!='card'||!_status.event.cards||!_status.event.cards.contains(card)) return false;
|
||||||
return lib.filter.filterCard.apply(this,arguments);
|
return lib.filter.filterCard.apply(this,arguments);
|
||||||
},
|
},
|
||||||
prompt:'是否使用得到的牌中的一张?',
|
prompt:'是否使用得到的牌中的一张?',
|
||||||
|
@ -8887,7 +8890,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
haruka_shuangche:'双掣',
|
haruka_shuangche:'双掣',
|
||||||
kanata_shuangche:'双掣',
|
kanata_shuangche:'双掣',
|
||||||
haruka_shuangche_backup:'双掣',
|
haruka_shuangche_backup:'双掣',
|
||||||
haruka_shuangche_info:'出牌阶段,你可以视为使用任意基本牌或普通锦囊牌。此牌结算完成后,你选择一项:1.弃置X张牌。2.失去1点体力且本回合内不能再发动〖双掣〗。',
|
haruka_shuangche_info:'出牌阶段,你可以视为使用任意基本牌或普通锦囊牌。此牌结算完成后,你选择一项:1.弃置X张牌。2.失去1点体力且本回合内不能再发动〖双掣〗。(X为你于此回合内发动过〖双掣〗的次数)',
|
||||||
//你不能以此法使用【回魂】
|
//你不能以此法使用【回魂】
|
||||||
saya_shouji:'授计',
|
saya_shouji:'授计',
|
||||||
saya_shouji_info:'每回合限一次,当你使用的牌结算完成后,你可以将此牌对应的所有实体牌交给一名其他角色。其可以使用这些牌中的一张,若如此做,你摸一张牌。',
|
saya_shouji_info:'每回合限一次,当你使用的牌结算完成后,你可以将此牌对应的所有实体牌交给一名其他角色。其可以使用这些牌中的一张,若如此做,你摸一张牌。',
|
||||||
|
|
|
@ -612,6 +612,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.cardsGotoSpecial(cards);
|
game.cardsGotoSpecial(cards);
|
||||||
game.log(player,'将',cards,'置于了',target,'的武将牌上');
|
game.log(player,'将',cards,'置于了',target,'的武将牌上');
|
||||||
}
|
}
|
||||||
|
"step 4"
|
||||||
|
game.updateRoundNumber();
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:10,
|
order:10,
|
||||||
|
|
|
@ -12,11 +12,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan"],
|
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan"],
|
||||||
old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"],
|
old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"],
|
||||||
old_yijiang67:["ol_xinxianying","ol_zhangrang","ol_liuyu"],
|
old_yijiang67:["ol_xinxianying","ol_zhangrang","ol_liuyu"],
|
||||||
old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","ol_maliang","panfeng","old_wangyun"],
|
old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","ol_maliang","panfeng","old_wangyun","sunluyu"],
|
||||||
old_mobile:["old_caochun","old_majun"],
|
old_mobile:["old_caochun","old_majun"],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
sunluyu:['female','wu',3,['new_meibu','new_mumu']],
|
||||||
pangde:['male','qun',4,['mashu','mengjin']],
|
pangde:['male','qun',4,['mashu','mengjin']],
|
||||||
ol_huaxiong:["male","qun",6,["new_reyaowu"]],
|
ol_huaxiong:["male","qun",6,["new_reyaowu"]],
|
||||||
old_wangyun:['male','qun',4,['wylianji','moucheng']],
|
old_wangyun:['male','qun',4,['wylianji','moucheng']],
|
||||||
|
|
|
@ -790,10 +790,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"drlt_yongsi":{
|
"drlt_yongsi":{
|
||||||
|
audio:2,
|
||||||
group:["drlt_yongsi_1","drlt_yongsi_2"],
|
group:["drlt_yongsi_1","drlt_yongsi_2"],
|
||||||
subSkill:{
|
subSkill:{
|
||||||
'1':{
|
'1':{
|
||||||
audio:["yongsi1",2],
|
audio:"drlt_yongsi",
|
||||||
trigger:{
|
trigger:{
|
||||||
player:'phaseDrawBegin2'
|
player:'phaseDrawBegin2'
|
||||||
},
|
},
|
||||||
|
@ -806,7 +807,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'2':{
|
'2':{
|
||||||
audio:["yongsi2",2],
|
audio:"drlt_yongsi",
|
||||||
trigger:{
|
trigger:{
|
||||||
player:'phaseUseEnd'
|
player:'phaseUseEnd'
|
||||||
},
|
},
|
||||||
|
|
734
character/sp.js
|
@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
connect:true,
|
connect:true,
|
||||||
characterSort:{
|
characterSort:{
|
||||||
sp:{
|
sp:{
|
||||||
sp_default:["caoying","simahui","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","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","wenyang","xujing","yuantanyuanshang","wangshuang","sunshao","liuzan","xingdaorong"],
|
sp_default:["caoying","simahui","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","re_sunluyu","zumao","wenpin","daxiaoqiao","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","wenyang","xujing","yuantanyuanshang","wangshuang","sunshao","liuzan","xingdaorong"],
|
||||||
sp_guansuo:['guansuo','baosanniang','huaman'],
|
sp_guansuo:['guansuo','baosanniang','huaman'],
|
||||||
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"],
|
||||||
|
@ -16,14 +16,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
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_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
|
sp_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
|
||||||
sp_guozhan:["shamoke","ganfuren","yuejin","hetaihou","dingfeng","re_panfeng","jianggan"],
|
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","re_panfeng","jianggan"],
|
||||||
sp_guozhan2:["mifuren","mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","bianfuren","liqueguosi","lvfan","cuimao","jiling","zangba","zhangren","zoushi"],
|
sp_guozhan2:["mifuren","mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","bianfuren","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi"],
|
||||||
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan"],
|
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
|
||||||
sp_single:["hejin","hansui","niujin"],
|
sp_single:["hejin","hansui","niujin"],
|
||||||
sp_others:["hanba"],
|
sp_others:["hanba"],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
characterFilter:{
|
||||||
|
chunyuqiong:function(mode){
|
||||||
|
return mode!='identity'&&mode!='guozhan';
|
||||||
|
},
|
||||||
|
sp_xuyou:function(mode){
|
||||||
|
return mode=='versus'&&['guandu','4v4','four'].contains(_status.mode);
|
||||||
|
},
|
||||||
|
},
|
||||||
character:{
|
character:{
|
||||||
|
sp_xuyou:['male','qun',3,['spshicai','spfushi']],
|
||||||
|
chunyuqiong:['male','qun',5,['cangchu','sushou','liangying']],
|
||||||
|
lvkuanglvxiang:['male','qun',4,['liehou','qigong']],
|
||||||
xingdaorong:['male','qun','4/6',['xuxie']],
|
xingdaorong:['male','qun','4/6',['xuxie']],
|
||||||
liuzan:['male','wu',4,['refenyin','liji']],
|
liuzan:['male','wu',4,['refenyin','liji']],
|
||||||
re_panfeng:['male','qun',4,['xinkuangfu']],
|
re_panfeng:['male','qun',4,['xinkuangfu']],
|
||||||
|
@ -117,7 +128,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_zhangfei:['male','shu',4,['jie','dahe']],
|
sp_zhangfei:['male','shu',4,['jie','dahe']],
|
||||||
jsp_guanyu:['male','wei',4,['new_rewusheng','danji']],
|
jsp_guanyu:['male','wei',4,['new_rewusheng','danji']],
|
||||||
jsp_huangyueying:['female','qun',3,['jiqiao','linglong']],
|
jsp_huangyueying:['female','qun',3,['jiqiao','linglong']],
|
||||||
sunluyu:['female','wu',3,['new_meibu','new_mumu']],
|
re_sunluyu:['female','wu',3,['remeibu','remumu']],
|
||||||
hanba:['female','qun',4,['fentian','zhiri']],
|
hanba:['female','qun',4,['fentian','zhiri']],
|
||||||
zumao:['male','wu',4,['yinbing','juedi']],
|
zumao:['male','wu',4,['yinbing','juedi']],
|
||||||
wenpin:['male','wei',4,['zhenwei']],
|
wenpin:['male','wei',4,['zhenwei']],
|
||||||
|
@ -170,7 +181,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
cuimao:['male','wei',3,['zhengbi','fengying']],
|
cuimao:['male','wei',3,['zhengbi','fengying']],
|
||||||
|
|
||||||
jiling:['male','qun',4,['shuangren']],
|
jiling:['male','qun',4,['shuangren']],
|
||||||
zangba:['male','wei',4,['hengjiang']],
|
zangba:['male','wei',4,['rehengjiang']],
|
||||||
zhangren:['male','qun',4,['chuanxin','zfengshi']],
|
zhangren:['male','qun',4,['chuanxin','zfengshi']],
|
||||||
zoushi:['female','qun',3,['zhuoshui','zqingcheng']],
|
zoushi:['female','qun',3,['zhuoshui','zqingcheng']],
|
||||||
|
|
||||||
|
@ -188,6 +199,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
//kaisa:["male","western",4,["zhengfu"]],
|
//kaisa:["male","western",4,["zhengfu"]],
|
||||||
},
|
},
|
||||||
characterIntro:{
|
characterIntro:{
|
||||||
|
chunyuqiong:'淳于琼(?-200年),字仲简,颍川(治今河南禹州)人。东汉时期官吏,于汉灵帝中平五年(188)被任命为西园八校尉之一的右校尉,与蹇硕、袁绍、鲍鸿、曹操、赵融、冯芳、夏牟同列。为袁绍大将,与张郃、高览等人齐名。在官渡之战时镇守乌巢,遭到曹操的偷袭而惨败,自己也被曹操处斩。',
|
||||||
|
lvkuanglvxiang:'吕旷(生卒年不详),与吕翔同是袁绍属下,袁绍去世后,为袁尚守东平,后来投降曹操,并被封为列侯。在《三国演义》中,在曹操准备往南准备攻击前,两人跟著大将曹仁和将军李典准备要攻击刘备。但吕旷被赵云刺下马身亡,而吕翔也死于张飞矛下,可以算是出师未捷身先死',
|
||||||
caobuxing:'曹不兴,亦名弗兴,三国时著名画家。孙吴吴兴(今浙江湖州)人,生卒年不详。他在黄武年间(222—229年)享有很大的声誉。被称为“佛画之祖”。与东晋顾恺之、南朝宋陆探微、南朝梁张僧繇并称“六朝四大家”。又与赵达的算术、严武的弈棋、皇象的草书等号称“吴中八绝”。曹不兴善画龙、虎、马及人物,有“落墨为蝇”等传奇故事,其佛画成就对后世影响很大,相传其所画龙头令谢赫叹服不已。画迹今已不存,据《贞观公私画史》载,作品有《青溪龙》、《赤盘龙》、《南海监牧进十种马图》、《夷事夷兽样》、《桃源图》等,惜早已散佚。 但之后的著名画家卫协直接师承其法。',
|
caobuxing:'曹不兴,亦名弗兴,三国时著名画家。孙吴吴兴(今浙江湖州)人,生卒年不详。他在黄武年间(222—229年)享有很大的声誉。被称为“佛画之祖”。与东晋顾恺之、南朝宋陆探微、南朝梁张僧繇并称“六朝四大家”。又与赵达的算术、严武的弈棋、皇象的草书等号称“吴中八绝”。曹不兴善画龙、虎、马及人物,有“落墨为蝇”等传奇故事,其佛画成就对后世影响很大,相传其所画龙头令谢赫叹服不已。画迹今已不存,据《贞观公私画史》载,作品有《青溪龙》、《赤盘龙》、《南海监牧进十种马图》、《夷事夷兽样》、《桃源图》等,惜早已散佚。 但之后的著名画家卫协直接师承其法。',
|
||||||
xingdaorong:'邢道荣是《三国演义》中虚构的人物,为零陵太守刘度手下武将,被评价有万夫不当之勇,于《三国演义》第五十二回登场,被赵云刺死。',
|
xingdaorong:'邢道荣是《三国演义》中虚构的人物,为零陵太守刘度手下武将,被评价有万夫不当之勇,于《三国演义》第五十二回登场,被赵云刺死。',
|
||||||
gaolan:'高览,生卒年不详,一名高奂,本属袁绍部将,后官渡之战淳于琼被曹操击破,与张郃一同投降曹操,被封为偏将军,东莱侯。《三国演义》里,曾与许褚、徐晃大战不分胜负。201年刘备败走荆州时,高览奉命追杀,三合斩刘辟,而后被冲阵而来的赵云刺死。',
|
gaolan:'高览,生卒年不详,一名高奂,本属袁绍部将,后官渡之战淳于琼被曹操击破,与张郃一同投降曹操,被封为偏将军,东莱侯。《三国演义》里,曾与许褚、徐晃大战不分胜负。201年刘备败走荆州时,高览奉命追杀,三合斩刘辟,而后被冲阵而来的赵云刺死。',
|
||||||
|
@ -516,6 +529,353 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//吕旷吕翔和淳于琼和官渡哔哔机
|
||||||
|
spshicai:{
|
||||||
|
audio:2,
|
||||||
|
enable:'phaseUse',
|
||||||
|
filter:function(event,player){
|
||||||
|
return !player.storage.spshicai2||!player.getCards('h').contains(player.storage.spshicai2);
|
||||||
|
},
|
||||||
|
filterCard:true,
|
||||||
|
prompt:function(){
|
||||||
|
var str='弃置一张牌,然后获得';
|
||||||
|
if(get.itemtype(_status.pileTop)=='card') str+=get.translation(_status.pileTop);
|
||||||
|
else str+='牌堆顶的一张牌';
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
check:function(card){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var cardx=_status.pileTop;
|
||||||
|
if(get.itemtype(cardx)!='card') return 0;
|
||||||
|
var val=player.getUseValue(cardx,null,true);
|
||||||
|
if(!val) return 0;
|
||||||
|
var val2=player.getUseValue(card,null,true);
|
||||||
|
return (val-val2)/Math.max(0.1,get.value(card));
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var card=get.cards()[0];
|
||||||
|
player.storage.spshicai2=card;
|
||||||
|
player.gain(card,'draw');
|
||||||
|
game.log(player,'获得了牌堆顶的一张牌');
|
||||||
|
},
|
||||||
|
group:'spshicai_mark',
|
||||||
|
ai:{
|
||||||
|
order:1,
|
||||||
|
result:{player:1},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
spshicai_mark:{
|
||||||
|
trigger:{player:'phaseUseBegin'},
|
||||||
|
silent:true,
|
||||||
|
firstDo:true,
|
||||||
|
content:function(){
|
||||||
|
player.addTempSkill('spshicai2','phaseUseEnd');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
spshicai2:{
|
||||||
|
onremove:true,
|
||||||
|
mark:true,
|
||||||
|
intro:{
|
||||||
|
mark:function(dialog,content,player){
|
||||||
|
if(player!=game.me) return get.translation(player)+'观看牌堆中...';
|
||||||
|
if(get.itemtype(_status.pileTop)!='card') return '牌堆顶无牌';
|
||||||
|
dialog.add([_status.pileTop]);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
spfushi:{
|
||||||
|
group:['zezhu','chenggong'],
|
||||||
|
derivation:['zezhu','chenggong'],
|
||||||
|
locked:true,
|
||||||
|
},
|
||||||
|
zezhu:{
|
||||||
|
audio:2,
|
||||||
|
enable:'phaseUse',
|
||||||
|
usable:1,
|
||||||
|
filter:function(event,player){
|
||||||
|
var enemy=0;
|
||||||
|
var friend=0;
|
||||||
|
var zhu=0;
|
||||||
|
for(var i of game.players){
|
||||||
|
if(i.isEnemyOf(player)) enemy++;
|
||||||
|
else friend++;
|
||||||
|
if(i!=player&&i.isZhu) zhu++;
|
||||||
|
}
|
||||||
|
return zhu>0&&enemy<friend;
|
||||||
|
},
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
return target!=player&&target.isZhu;
|
||||||
|
},
|
||||||
|
selectTarget:-1,
|
||||||
|
multiline:true,
|
||||||
|
multitarget:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
event.targets.sortBySeat();
|
||||||
|
event.targets2=event.targets.slice(0);
|
||||||
|
'step 1'
|
||||||
|
var target=event.targets2.shift();
|
||||||
|
if(target.countGainableCards(player,'he')>0) player.gainPlayerCard(target,'he',true);
|
||||||
|
else player.draw();
|
||||||
|
if(event.targets2.length) event.redo();
|
||||||
|
'step 2'
|
||||||
|
if(player.countCards('he')>=targets.length){
|
||||||
|
player.chooseCard('he',true,'依次选择'+get.cnNumber(targets.length)+'张牌,分别交给'+get.translation(targets),targets.length).set('ai',function(card){
|
||||||
|
var target=_status.event.getParent().targets[ui.selected.cards.length];
|
||||||
|
var player=_status.event.player;
|
||||||
|
return get.attitude(player,target)*get.value(card,target);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 3'
|
||||||
|
for(var i=0;i<targets.length;i++){
|
||||||
|
targets[i].gain(result.cards[i],player,'giveAuto');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:6,
|
||||||
|
result:{player:1},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
chenggong:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'useCardToPlayered'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(!(event.isFirstTarget&&event.targets&&event.targets.length>1&&event.player.isAlive())) return false;
|
||||||
|
var enemy=0;
|
||||||
|
var friend=0;
|
||||||
|
for(var i of game.players){
|
||||||
|
if(i.isEnemyOf(player)) enemy++;
|
||||||
|
else friend++;
|
||||||
|
}
|
||||||
|
return enemy>friend;
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
return get.attitude(player,event.player)>0;
|
||||||
|
},
|
||||||
|
logTarget:'player',
|
||||||
|
content:function(){
|
||||||
|
trigger.player.draw();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
cangchu:{
|
||||||
|
trigger:{
|
||||||
|
global:'gameDrawAfter',
|
||||||
|
player:['damageEnd','enterGame'],
|
||||||
|
},
|
||||||
|
audio:2,
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.name!='damage') return true;
|
||||||
|
return event.nature=='fire'&&player.countMark('cangchu')>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
if(trigger.name!='damage') player.addMark('cangchu',3);
|
||||||
|
else{
|
||||||
|
player.removeMark('cangchu',Math.min(trigger.num,player.countMark('cangchu')));
|
||||||
|
if(!player.hasMark('cangchu')) event.trigger('cangchuAwaken');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
marktext:'粮',
|
||||||
|
intro:{
|
||||||
|
name2:'粮',
|
||||||
|
content:'mark',
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
threaten:function(player,target){
|
||||||
|
return 1+target.countMark('cangchu')/2;
|
||||||
|
},
|
||||||
|
effect:{
|
||||||
|
target:function(card,player,target,current){
|
||||||
|
if(target.hasMark('cangchu')){
|
||||||
|
if(card.name=='sha'){
|
||||||
|
if(lib.skill.global.contains('huoshaowuchao')||card.nature=='fire'||player.hasSkill('zhuque_skill')) return 2;
|
||||||
|
}
|
||||||
|
if(get.tag(card,'fireDamage')&¤t<0) return 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
sushou:{
|
||||||
|
trigger:{player:'phaseDiscardBegin'},
|
||||||
|
frequent:true,
|
||||||
|
audio:2,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.draw(1+player.countMark('cangchu'));
|
||||||
|
'step 1'
|
||||||
|
var num=Math.min(player.countCards('h'),game.countPlayer(function(target){
|
||||||
|
return target!=player&&target.isFriendOf(player);
|
||||||
|
}));
|
||||||
|
if(num){
|
||||||
|
player.chooseCardTarget({
|
||||||
|
prompt:'是否将任意张手牌交给其他己方角色?',
|
||||||
|
prompt2:'操作提示:先按顺序选中所有要给出的手牌,然后再按顺序选择等量的目标角色',
|
||||||
|
selectCard:[1,num],
|
||||||
|
selectTarget:function(){
|
||||||
|
return ui.selected.cards.length;
|
||||||
|
},
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
return target!=player&&target.isFriendOf(player);
|
||||||
|
},
|
||||||
|
complexSelect:true,
|
||||||
|
ai1:function(card){
|
||||||
|
if(card.name=='shan') return 1;
|
||||||
|
return Math.random();
|
||||||
|
},
|
||||||
|
ai2:function(target){
|
||||||
|
return 5-Math.max(4,target.countCards('h'));
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
while(result.cards.length){
|
||||||
|
var target=result.targets.shift();
|
||||||
|
var card=result.cards.shift();
|
||||||
|
target.gain(card,player);
|
||||||
|
player.$giveAuto(card,target);
|
||||||
|
}
|
||||||
|
event.next.sort(function(a,b){
|
||||||
|
return lib.sort.seat(a.player,b.player);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 3'
|
||||||
|
game.delay();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
liangying:{
|
||||||
|
trigger:{
|
||||||
|
global:'phaseDrawBegin2',
|
||||||
|
player:'cangchuAwaken',
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
audio:1,
|
||||||
|
logTarget:function(event){
|
||||||
|
if(event.name=='phaseDraw') return event.player;
|
||||||
|
return game.filterPlayer(function(current){
|
||||||
|
return current.isEnemyOf(player);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.name=='cangchu') return true;
|
||||||
|
return player.hasMark('cangchu')&&!event.numFixed&&event.player.isFriendOf(player);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
if(trigger.name=='cangchu'){
|
||||||
|
player.loseMaxHp();
|
||||||
|
var list=game.filterPlayer(function(current){
|
||||||
|
return current.isEnemyOf(player);
|
||||||
|
});
|
||||||
|
if(list.length){
|
||||||
|
game.asyncDraw(list,2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
trigger.num++;
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
'step 1'
|
||||||
|
game.delay();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
liehou:{
|
||||||
|
enable:'phaseUse',
|
||||||
|
usable:1,
|
||||||
|
audio:2,
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
return player.inRange(target)&&target.countCards('h');
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
target.chooseCard('h',true,'交给'+get.translation(player)+'一张牌');
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
player.gain(result.cards,target,'giveAuto');
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 2'
|
||||||
|
if(player.countCards('h')&&game.hasPlayer(function(current){
|
||||||
|
return current!=target&&player.inRange(target);
|
||||||
|
})){
|
||||||
|
player.chooseCardTarget({
|
||||||
|
position:'h',
|
||||||
|
filterCard:true,
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
return target!=_status.event.getParent().target&&player.inRange(target);
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
prompt:'将一张手牌交给一名攻击范围内的其他角色',
|
||||||
|
ai1:function(card){
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(get.name(card)=='du') return 20;
|
||||||
|
if(game.hasPlayer(function(current){
|
||||||
|
return current!=_status.event.getParent().target&&player.inRange(current)&&get.attitude(player,current)>0&¤t.getUseValue(card)>player.getUseValue(card)&¤t.getUseValue(card)>player.getUseValue(card);
|
||||||
|
})) return 12;
|
||||||
|
if(game.hasPlayer(function(current){
|
||||||
|
return current!=player&&get.attitude(player,current)>0;
|
||||||
|
})){
|
||||||
|
if(card.name=='wuxie') return 11;
|
||||||
|
if(card.name=='shan'&&player.countCards('h','shan')>1) return 9
|
||||||
|
}
|
||||||
|
return 6/Math.max(1,get.value(card));
|
||||||
|
},
|
||||||
|
ai2:function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var card=ui.selected.cards[0];
|
||||||
|
var att=get.attitude(player,target);
|
||||||
|
if(card.name=='du') return -6*att;
|
||||||
|
if(att>0){
|
||||||
|
if(get.position(card)=='h'&&target.getUseValue(card)>player.getUseValue(card)) return 4*att;
|
||||||
|
if(get.value(card,target)>get.value(card,player)) return 2*att;
|
||||||
|
return 1.2*att;
|
||||||
|
}
|
||||||
|
return -att*Math.min(4,target.countCards('he'))/6;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 3'
|
||||||
|
if(result.bool) result.targets[0].gain(result.cards,player,'giveAuto')
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:6,
|
||||||
|
result:{
|
||||||
|
target:-1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
qigong:{
|
||||||
|
trigger:{player:'shaMiss'},
|
||||||
|
direct:true,
|
||||||
|
audio:2,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.canUse('sha',event.target,false)&&(player.hasSha()||_status.connectMode&&player.countCards('h'));
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
player.chooseToUse(get.prompt('qigong'),function(card,player,event){
|
||||||
|
if(get.name(card)!='sha') return false;
|
||||||
|
return lib.filter.filterCard.apply(this,arguments);
|
||||||
|
},trigger.target,-1).set('addCount',false).logSkill='qigong';
|
||||||
|
},
|
||||||
|
group:'qigong_hit',
|
||||||
|
},
|
||||||
|
qigong_hit:{
|
||||||
|
trigger:{player:'useCard1'},
|
||||||
|
firstDo:true,
|
||||||
|
silent:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.getParent(2).name=='qigong';
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.directHit.addArray(game.players);
|
||||||
|
},
|
||||||
|
},
|
||||||
//说出吾名吓汝一跳
|
//说出吾名吓汝一跳
|
||||||
xuxie:{
|
xuxie:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -525,7 +885,32 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return get.distance(player,current)<=1;
|
return get.distance(player,current)<=1;
|
||||||
}).sortBySeat();
|
}).sortBySeat();
|
||||||
},
|
},
|
||||||
check:function(){return false},
|
check:function(event,player){
|
||||||
|
if(player.isHealthy()) return false;
|
||||||
|
var list=game.filterPlayer(function(current){
|
||||||
|
return get.distance(player,current)<=1;
|
||||||
|
});
|
||||||
|
var draw=0;
|
||||||
|
var discard=0;
|
||||||
|
var num=2/player.getDamagedHp();
|
||||||
|
while(list.length){
|
||||||
|
var target=list.shift();
|
||||||
|
var att=get.attitude(player,target);
|
||||||
|
if(att>0){
|
||||||
|
draw++;
|
||||||
|
if(target.countDiscardableCards(player,'he')>0) discard--;
|
||||||
|
}
|
||||||
|
if(att==0){
|
||||||
|
draw--;
|
||||||
|
if(target.countDiscardableCards(player,'he')>0) discard--;
|
||||||
|
}
|
||||||
|
if(att<0){
|
||||||
|
draw--;
|
||||||
|
if(target.countDiscardableCards(player,'he')>0) discard++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return draw>=num||discard>=num;
|
||||||
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.loseMaxHp();
|
player.loseMaxHp();
|
||||||
|
@ -539,7 +924,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.chooseControl().set('choiceList',[
|
player.chooseControl().set('choiceList',[
|
||||||
'弃置'+get.translation(targets)+'的各一张牌',
|
'弃置'+get.translation(targets)+'的各一张牌',
|
||||||
'令'+get.translation(targets)+'各摸一张牌',
|
'令'+get.translation(targets)+'各摸一张牌',
|
||||||
]);
|
]).set('ai',function(){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var list=_status.event.getParent().targets.slice(0);
|
||||||
|
var draw=0;
|
||||||
|
var discard=0;
|
||||||
|
while(list.length){
|
||||||
|
var target=list.shift();
|
||||||
|
var att=get.attitude(player,target);
|
||||||
|
if(att>0){
|
||||||
|
draw++;
|
||||||
|
if(target.countDiscardableCards(player,'he')>0) discard--;
|
||||||
|
}
|
||||||
|
if(att<0){
|
||||||
|
draw--;
|
||||||
|
if(target.countDiscardableCards(player,'he')>0) discard++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(draw>discard) return 1;
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
'step 2'
|
'step 2'
|
||||||
event.index=result.index;
|
event.index=result.index;
|
||||||
|
@ -931,9 +1335,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
mark:true,
|
mark:true,
|
||||||
intro:{content:'本回合内不能使用或打出牌'},
|
intro:{content:'本回合内不能使用或打出牌'},
|
||||||
mod:{
|
mod:{
|
||||||
cardEnabled:function(){return false},
|
cardEnabled2:function (card){
|
||||||
cardRespondable:function(){return false},
|
if(get.position(card)=='h') return false;
|
||||||
cardSavable:function(){return false},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
gangzhi:{
|
gangzhi:{
|
||||||
|
@ -1329,7 +1733,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var map=trigger.customArgs;
|
var map=trigger.customArgs;
|
||||||
var id=trigger.target.playerid;
|
var id=trigger.target.playerid;
|
||||||
if(!map[id]) map[id]={};
|
if(!map[id]) map[id]={};
|
||||||
map[id].baseDamage=trigger.target.hp;
|
if(typeof map[id].extraDamage!='number') map[id].extraDamage=0;
|
||||||
|
map[id].extraDamage+=trigger.target.hp-1;
|
||||||
}
|
}
|
||||||
else if(result.bool===false) player.loseHp();
|
else if(result.bool===false) player.loseHp();
|
||||||
},
|
},
|
||||||
|
@ -2250,7 +2655,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.expandSkills(list2);
|
game.expandSkills(list2);
|
||||||
for(var k=0;k<list2.length;k++){
|
for(var k=0;k<list2.length;k++){
|
||||||
var info=lib.skill[list2[k]];
|
var info=lib.skill[list2[k]];
|
||||||
if(!info||!info.trigger||!info.trigger.player||info.silent) continue;
|
if(!info||!info.trigger||!info.trigger.player||info.silent||info.limited||info.juexingji) continue;
|
||||||
if(info.trigger.player==name2||Array.isArray(info.trigger.player)&&info.trigger.player.contains(name2)){
|
if(info.trigger.player==name2||Array.isArray(info.trigger.player)&&info.trigger.player.contains(name2)){
|
||||||
list.add(name);
|
list.add(name);
|
||||||
if(!map[name]) map[name]=[];
|
if(!map[name]) map[name]=[];
|
||||||
|
@ -2316,7 +2721,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.expandSkills(list2);
|
game.expandSkills(list2);
|
||||||
for(var k=0;k<list2.length;k++){
|
for(var k=0;k<list2.length;k++){
|
||||||
var info=lib.skill[list2[k]];
|
var info=lib.skill[list2[k]];
|
||||||
if(!info||!info.enable) continue;
|
if(!info||!info.enable||info.viewAs||info.limited||info.juexingji) continue;
|
||||||
if(info.enable=='phaseUse'||Array.isArray(info.enable)&&info.enable.contains('phaseUse')){
|
if(info.enable=='phaseUse'||Array.isArray(info.enable)&&info.enable.contains('phaseUse')){
|
||||||
list.add(name);
|
list.add(name);
|
||||||
if(!map[name]) map[name]=[];
|
if(!map[name]) map[name]=[];
|
||||||
|
@ -2343,10 +2748,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.draw();
|
player.draw();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
player.addTempSkill(result.control,'chooseToUseEnd');
|
player.storage.pingjian.add(result.control);
|
||||||
|
player.addTempSkill(result.control,'phaseUseEnd');
|
||||||
|
player.addTempSkill('pingjian_temp','phaseUseEnd');
|
||||||
|
player.storage.pingjian_temp=result.control;
|
||||||
event.getParent(2).goto(0);
|
event.getParent(2).goto(0);
|
||||||
},
|
},
|
||||||
ai:{order:1,result:{player:1}},
|
ai:{order:10,result:{player:1}},
|
||||||
|
},
|
||||||
|
pingjian_temp:{
|
||||||
|
onremove:true,
|
||||||
|
trigger:{player:'useSkillAfter'},
|
||||||
|
silent:true,
|
||||||
|
firstDo:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.skill==player.storage.pingjian_temp;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.removeSkill(trigger.skill);
|
||||||
|
player.removeSkill('pingjian_temp');
|
||||||
|
},
|
||||||
},
|
},
|
||||||
//蒲元
|
//蒲元
|
||||||
pytianjiang:{
|
pytianjiang:{
|
||||||
|
@ -3393,7 +3814,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.popup(trigger.card.name,trigger.name=='useCard'?'metal':'wood');
|
player.popup(trigger.card.name,trigger.name=='useCard'?'metal':'wood');
|
||||||
'step 1'
|
'step 1'
|
||||||
var random=0.5+player.countCards('e')*0.1;
|
var random=0.5+player.countCards('e')*0.1;
|
||||||
if(get.isLuckyStar(player)||event.card.name=='wuxie') random=1;
|
if(get.isLuckyStar(player)||trigger.card.name=='wuxie') random=1;
|
||||||
if(random>=Math.random()){
|
if(random>=Math.random()){
|
||||||
player.popup('洗具');
|
player.popup('洗具');
|
||||||
}
|
}
|
||||||
|
@ -5040,6 +5461,123 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
cardEnabled:function (card){if(card.name=='sha') return false},
|
cardEnabled:function (card){if(card.name=='sha') return false},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
remeibu:{
|
||||||
|
audio:"meibu",
|
||||||
|
trigger:{
|
||||||
|
global:"phaseUseBegin",
|
||||||
|
},
|
||||||
|
filter:function (event,player){
|
||||||
|
return event.player!=player&&event.player.isAlive()&&event.player.inRange(player)&&player.countCards('he')>0;
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
derivation:["rezhixi"],
|
||||||
|
checkx:function (event,player){
|
||||||
|
if(get.attitude(player,event.player)>=0) return false;
|
||||||
|
var e2=player.getEquip(2);
|
||||||
|
if(e2){
|
||||||
|
if(e2.name=='tengjia') return true;
|
||||||
|
if(e2.name=='bagua') return true;
|
||||||
|
}
|
||||||
|
return event.player.countCards('h')>event.player.hp;
|
||||||
|
},
|
||||||
|
content:function (){
|
||||||
|
"step 0"
|
||||||
|
var check=lib.skill.new_meibu.checkx(trigger,player);
|
||||||
|
player.chooseToDiscard(get.prompt2('remeibu',trigger.player),'he').set('ai',function(card){
|
||||||
|
if(_status.event.check) return 6-get.value(card);
|
||||||
|
return 0;
|
||||||
|
}).set('check',check).set('logSkill',['remeibu',trigger.player]);
|
||||||
|
"step 1"
|
||||||
|
if(result.bool){
|
||||||
|
var target=trigger.player;
|
||||||
|
var card=result.cards[0];
|
||||||
|
player.line(target,'green');
|
||||||
|
target.addTempSkill('rezhixi','phaseUseEnd');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
remumu:{
|
||||||
|
audio:"mumu",
|
||||||
|
trigger:{
|
||||||
|
player:"phaseUseBegin",
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function (){
|
||||||
|
'step 0'
|
||||||
|
player.chooseTarget(get.prompt('remumu'),'弃置一名角色装备区内的一张牌,或者获得一名角色装备区内的防具牌',function(card,player,target){
|
||||||
|
if(target==player) return target.getEquip(2)!=undefined;
|
||||||
|
return target.countCards('e')>0;
|
||||||
|
}).set('ai',function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var att=get.attitude(player,target)
|
||||||
|
if(target.getEquip(2)&&player.isEmpty(2)){
|
||||||
|
return -2*att;
|
||||||
|
}
|
||||||
|
return -att;
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool&&result.targets&&result.targets.length){
|
||||||
|
event.target=result.targets[0];
|
||||||
|
player.logSkill('remumu',event.target);
|
||||||
|
player.line(event.target,'green');
|
||||||
|
var e=event.target.getEquip(2);
|
||||||
|
event.e=e;
|
||||||
|
if(target==player) event.choice='获得一张防具牌';
|
||||||
|
else if(e){
|
||||||
|
player.chooseControl('弃置一张装备牌','获得一张防具牌').set('ai',function(){
|
||||||
|
if(_status.event.player.getEquip(2)){
|
||||||
|
return '弃置一张装备牌';
|
||||||
|
}
|
||||||
|
return '获得一张防具牌';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
event.choice='弃置一张装备牌';
|
||||||
|
}
|
||||||
|
}else event.finish();
|
||||||
|
'step 2'
|
||||||
|
var choice=event.choice||result.control;
|
||||||
|
if(choice=='弃置一张装备牌'){
|
||||||
|
player.discardPlayerCard(event.target,'e',true);
|
||||||
|
player.addTempSkill('remumu3');
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(event.e){
|
||||||
|
player.gain(event.e,event.target,'give');
|
||||||
|
player.addTempSkill('remumu2')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
remumu2:{
|
||||||
|
mod:{
|
||||||
|
cardUsable:function(card,player,num){
|
||||||
|
if(card.name=='sha') return num-1;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
remumu3:{
|
||||||
|
mod:{
|
||||||
|
cardUsable:function(card,player,num){
|
||||||
|
if(card.name=='sha') return num+1;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
rezhixi:{
|
||||||
|
trigger:{
|
||||||
|
player:"useCard",
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return (event.card.name=='sha'||get.type(event.card,'trick')=='trick')&&player.countCards('h')>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.chooseToDiscard('h',true);
|
||||||
|
},
|
||||||
|
},
|
||||||
qingzhong:{
|
qingzhong:{
|
||||||
audio:2,
|
audio:2,
|
||||||
},
|
},
|
||||||
|
@ -6677,6 +7215,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
hengjiang:{
|
hengjiang:{
|
||||||
|
audio:2,
|
||||||
trigger:{player:'damageEnd'},
|
trigger:{player:'damageEnd'},
|
||||||
check:function(event,player){
|
check:function(event,player){
|
||||||
return get.attitude(player,_status.currentPhase)<0||!_status.currentPhase.needsToDiscard(2);
|
return get.attitude(player,_status.currentPhase)<0||!_status.currentPhase.needsToDiscard(2);
|
||||||
|
@ -6684,7 +7223,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
filter:function(event){
|
filter:function(event){
|
||||||
return _status.currentPhase&&_status.currentPhase.isIn()&&event.num>0;
|
return _status.currentPhase&&_status.currentPhase.isIn()&&event.num>0;
|
||||||
},
|
},
|
||||||
//logTarget:'source',
|
logTarget:function(){
|
||||||
|
return _status.currentPhase;
|
||||||
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
var source=_status.currentPhase;
|
var source=_status.currentPhase;
|
||||||
if(source.hasSkill('hengjiang2')){
|
if(source.hasSkill('hengjiang2')){
|
||||||
|
@ -6704,6 +7245,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
hengjiang2:{
|
hengjiang2:{
|
||||||
mark:true,
|
mark:true,
|
||||||
|
charlotte:true,
|
||||||
intro:{
|
intro:{
|
||||||
content:'手牌上限-#'
|
content:'手牌上限-#'
|
||||||
},
|
},
|
||||||
|
@ -6738,6 +7280,92 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.asyncDraw(player.storage.hengjiang3);
|
game.asyncDraw(player.storage.hengjiang3);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
rehengjiang:{
|
||||||
|
audio:'hengjiang',
|
||||||
|
trigger:{player:'damageEnd'},
|
||||||
|
check:function(event,player){
|
||||||
|
return get.attitude(player,_status.currentPhase)<0||!_status.currentPhase.needsToDiscard(2);
|
||||||
|
},
|
||||||
|
filter:function(event){
|
||||||
|
return _status.currentPhase&&_status.currentPhase.isIn()&&event.num>0;
|
||||||
|
},
|
||||||
|
logTarget:function(){
|
||||||
|
return _status.currentPhase;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
event.count=trigger.num;
|
||||||
|
"step 1"
|
||||||
|
event.count--;
|
||||||
|
var source=_status.currentPhase;
|
||||||
|
if(source.hasSkill('rehengjiang2')){
|
||||||
|
source.storage.rehengjiang2++;
|
||||||
|
source.storage.rehengjiang3.push(player);
|
||||||
|
source.storage.rehengjiang3.sortBySeat(source);
|
||||||
|
source.updateMarks();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
source.storage.rehengjiang3=[player];
|
||||||
|
source.storage.rehengjiang2=1;
|
||||||
|
source.addTempSkill('rehengjiang2');
|
||||||
|
}
|
||||||
|
"step 2"
|
||||||
|
if(event.count){
|
||||||
|
player.chooseBool(get.prompt2('rehengjiang',_status.currentPhase)).set('ai',function(){
|
||||||
|
return lib.skill.rehengjiang.check(_status.event.getTrigger(),_status.event.player);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
"step 3"
|
||||||
|
if(result.bool){
|
||||||
|
player.logSkill('rehengjiang',_status.currentPhase);
|
||||||
|
event.goto(1);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
maixie_defend:true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
rehengjiang2:{
|
||||||
|
mark:true,
|
||||||
|
charlotte:true,
|
||||||
|
intro:{
|
||||||
|
content:'手牌上限-#'
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
maxHandcard:function(player,num){
|
||||||
|
return num-player.storage.rehengjiang2;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onremove:function(player){
|
||||||
|
delete player.storage.rehengjiang2;
|
||||||
|
delete player.storage.rehengjiang3;
|
||||||
|
},
|
||||||
|
trigger:{player:'phaseDiscardEnd'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.cards&&event.cards.length) return false;
|
||||||
|
var players=player.storage.rehengjiang3;
|
||||||
|
for(var i=0;i<players.length;i++){
|
||||||
|
if(players[i].isIn()) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
content:function(){
|
||||||
|
var players=player.storage.rehengjiang3;
|
||||||
|
var list=[];
|
||||||
|
for(var i=0;i<players.length;i++){
|
||||||
|
if(!list.contains(players[i])&&players[i].isIn()){
|
||||||
|
list.push(players[i])
|
||||||
|
players[i].logSkill('rehengjiang',player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
game.asyncDraw(list,function(target){
|
||||||
|
return players.numOf(target);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
shuangren:{
|
shuangren:{
|
||||||
trigger:{player:'phaseUseBegin'},
|
trigger:{player:'phaseUseBegin'},
|
||||||
direct:true,
|
direct:true,
|
||||||
|
@ -10775,10 +11403,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
event.target.lose(result.links,ui.special,'toStorage');
|
event.target.lose(result.links,ui.special,'toStorage');
|
||||||
player.storage.fentian=player.storage.fentian.concat(result.links);
|
player.storage.fentian=player.storage.fentian.concat(result.links);
|
||||||
player.syncStorage('fentian');
|
player.syncStorage('fentian');
|
||||||
setTimeout(function(){
|
|
||||||
player.markSkill('fentian');
|
|
||||||
},700);
|
|
||||||
}
|
}
|
||||||
|
'step 3'
|
||||||
|
game.delayx();
|
||||||
},
|
},
|
||||||
mod:{
|
mod:{
|
||||||
attackFrom:function(from,to,distance){
|
attackFrom:function(from,to,distance){
|
||||||
|
@ -11733,19 +12360,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(typeof player.storage.rebiluan!='number') player.storage.rebiluan=0;
|
if(typeof player.storage.rebiluan!='number') player.storage.rebiluan=0;
|
||||||
},
|
},
|
||||||
checkx:function(player){
|
checkx:function(player){
|
||||||
var ng=[];
|
var ng=Math.min(4,game.players.length);
|
||||||
var players=game.filterPlayer();
|
|
||||||
for(var i=0;i<players.length;i++){
|
|
||||||
if(players[i].group!='unknown'){
|
|
||||||
ng.add(players[i].group);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ng=ng.length;
|
|
||||||
if(ng<2) return false;
|
if(ng<2) return false;
|
||||||
var nai=0;
|
var nai=0;
|
||||||
for(var i=0;i<players.length;i++){
|
for(var i=0;i<game.players.length;i++){
|
||||||
if(players[i]!=player){
|
if(game.players[i]!=player){
|
||||||
var dist=get.distance(players[i],player,'attack');
|
var dist=get.distance(game.players[i],player,'attack');
|
||||||
if(dist<=1&&dist+ng>1){
|
if(dist<=1&&dist+ng>1){
|
||||||
nai++;
|
nai++;
|
||||||
}
|
}
|
||||||
|
@ -11767,15 +12387,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
});
|
});
|
||||||
"step 1"
|
"step 1"
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var ng=[];
|
var ng=Math.min(4,game.players.length);
|
||||||
var players=game.filterPlayer();
|
player.$damagepop(ng,'unknownx');
|
||||||
for(var i=0;i<players.length;i++){
|
player.storage.rebiluan+=ng;
|
||||||
if(players[i].group!='unknown'){
|
|
||||||
ng.add(players[i].group);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
player.$damagepop(ng.length,'unknownx');
|
|
||||||
player.storage.rebiluan+=ng.length;
|
|
||||||
player.markSkill('rebiluan');
|
player.markSkill('rebiluan');
|
||||||
game.addVideo('storage',player,['rebiluan',player.storage.rebiluan]);
|
game.addVideo('storage',player,['rebiluan',player.storage.rebiluan]);
|
||||||
}
|
}
|
||||||
|
@ -17701,7 +18315,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
lifeng:'李丰',
|
lifeng:'李丰',
|
||||||
jsp_guanyu:'SP关羽',
|
jsp_guanyu:'SP关羽',
|
||||||
zhuling:'朱灵',
|
zhuling:'朱灵',
|
||||||
sunluyu:'孙鲁育',
|
sunluyu:'旧孙鲁育',
|
||||||
|
re_sunluyu:'孙鲁育',
|
||||||
hanba:'旱魃',
|
hanba:'旱魃',
|
||||||
panfeng:'旧潘凤',
|
panfeng:'旧潘凤',
|
||||||
gz_panfeng:'潘凤',
|
gz_panfeng:'潘凤',
|
||||||
|
@ -17911,6 +18526,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
"new_zhixi_info":"锁定技,出牌阶段,你至多可使用X张牌,你使用了锦囊牌后不能再使用牌(X为你的体力值)。",
|
"new_zhixi_info":"锁定技,出牌阶段,你至多可使用X张牌,你使用了锦囊牌后不能再使用牌(X为你的体力值)。",
|
||||||
"new_mumu2":"穆穆",
|
"new_mumu2":"穆穆",
|
||||||
"new_mumu2_info":"锁定技,你不能使用【杀】。",
|
"new_mumu2_info":"锁定技,你不能使用【杀】。",
|
||||||
|
remeibu:'魅步',
|
||||||
|
remeibu_info:'其他角色的出牌阶段开始时,若你在其攻击范围内,你可以弃置一张牌,令该角色于本阶段内拥有〖止息〗。',
|
||||||
|
rezhixi:'止息',
|
||||||
|
rezhixi_info:'锁定技,当你使用【杀】或普通锦囊牌时,你弃置一张手牌。',
|
||||||
|
remumu:'穆穆',
|
||||||
|
remumu_info:'出牌阶段开始时,你可以选择一项:1.弃置一名其他角色装备区里的一张牌,然后你本回合可使用【杀】的次数+1;2.获得一名角色装备区里的一张防具牌,然后你本回合可使用【杀】的次数-1。',
|
||||||
"new_xingwu":"星舞",
|
"new_xingwu":"星舞",
|
||||||
"new_xingwu_info":"弃牌阶段开始时,你可以将一张手牌置于武将牌上,称之为「舞」。然后若你的「舞」中包含三种花色,则你须移去三张花色不同的「舞」并选择一名角色,该角色受到2点伤害(若为女性,则改为1点)并弃置其装备区的所有牌。",
|
"new_xingwu_info":"弃牌阶段开始时,你可以将一张手牌置于武将牌上,称之为「舞」。然后若你的「舞」中包含三种花色,则你须移去三张花色不同的「舞」并选择一名角色,该角色受到2点伤害(若为女性,则改为1点)并弃置其装备区的所有牌。",
|
||||||
"new_luoyan":"落雁",
|
"new_luoyan":"落雁",
|
||||||
|
@ -18046,6 +18667,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
hengjiang:'横江',
|
hengjiang:'横江',
|
||||||
hengjiang2:'横江',
|
hengjiang2:'横江',
|
||||||
hengjiang_info:'当你受到1点伤害后,你可以令当前回合角色本回合的手牌上限-1。然后若其弃牌阶段内没有弃牌,则你摸一张牌。',
|
hengjiang_info:'当你受到1点伤害后,你可以令当前回合角色本回合的手牌上限-1。然后若其弃牌阶段内没有弃牌,则你摸一张牌。',
|
||||||
|
rehengjiang:'横江',
|
||||||
|
rehengjiang2:'横江',
|
||||||
|
rehengjiang_info:'当你受到1点伤害后,你可以令当前回合角色本回合的手牌上限-1。然后若其弃牌阶段内没有弃牌,则你摸X张牌(X为你本回合内对其发动过〖横江〗的次数)。',
|
||||||
shuangren:'双刃',
|
shuangren:'双刃',
|
||||||
shuangren_info:'出牌阶段开始时,你可以与一名角色拼点。若你赢,你视为对任意一名角色使用一张【杀】(不计入出牌阶段的次数限制);若你没赢,你结束出牌阶段。',
|
shuangren_info:'出牌阶段开始时,你可以与一名角色拼点。若你赢,你视为对任意一名角色使用一张【杀】(不计入出牌阶段的次数限制);若你没赢,你结束出牌阶段。',
|
||||||
shuangren_info_guozhan:'出牌阶段开始时,你可以与一名角色拼点。若你赢,你视为对其或与其势力相同的另一名角色使用一张【杀】(不计入出牌阶段的次数限制);若你没赢,你结束出牌阶段。',
|
shuangren_info_guozhan:'出牌阶段开始时,你可以与一名角色拼点。若你赢,你视为对其或与其势力相同的另一名角色使用一张【杀】(不计入出牌阶段的次数限制);若你没赢,你结束出牌阶段。',
|
||||||
|
@ -18237,7 +18861,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
lixia:'礼下',
|
lixia:'礼下',
|
||||||
lixia_info:'锁定技,其他角色的结束阶段开始时,若你不在其攻击范围内,你摸一张牌或令其摸一张牌。本局内其他角色计算与你的距离时-1。',
|
lixia_info:'锁定技,其他角色的结束阶段开始时,若你不在其攻击范围内,你摸一张牌或令其摸一张牌。本局内其他角色计算与你的距离时-1。',
|
||||||
rebiluan:'避乱',
|
rebiluan:'避乱',
|
||||||
rebiluan_info:'出牌阶段开始时,若有与你距离不大于1的其他角色,你可以令自己与本阶段内不能使用【杀】。若如此做,本局内其他角色计算与你的距离时+X。(X为势力数)',
|
rebiluan_info:'结束阶段开始时,若有与你距离不大于1的其他角色,你可以弃置一张牌。若如此做,本局内其他角色计算与你的距离时+X。(X为场上人数且至多为4)',
|
||||||
relixia:'礼下',
|
relixia:'礼下',
|
||||||
relixia_info:'锁定技,其他角色的结束阶段开始时,若你不在其攻击范围内,你摸一张牌或令其摸两张牌。本局内其他角色计算与你的距离时-1。',
|
relixia_info:'锁定技,其他角色的结束阶段开始时,若你不在其攻击范围内,你摸一张牌或令其摸两张牌。本局内其他角色计算与你的距离时-1。',
|
||||||
yishe:'义舍',
|
yishe:'义舍',
|
||||||
|
@ -18512,7 +19136,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
gaolan:'高览',
|
gaolan:'高览',
|
||||||
xiying:'袭营',
|
xiying:'袭营',
|
||||||
xiying2:'袭营',
|
xiying2:'袭营',
|
||||||
xiying_info:'出牌阶段开始时,你可以弃置一张牌,然后令所有其他角色依次选择一项:弃置一张牌,或本回合内不能使用或打出牌。',
|
xiying_info:'出牌阶段开始时,你可以弃置一张牌,然后令所有其他角色依次选择一项:弃置一张牌,或本回合内不能使用或打出手牌。',
|
||||||
re_panfeng:'潘凤',
|
re_panfeng:'潘凤',
|
||||||
xinkuangfu:'狂斧',
|
xinkuangfu:'狂斧',
|
||||||
xinkuangfu_info:'出牌阶段限一次,你可选择:1,弃置装备区里的一张牌,你使用无对应实体牌的普【杀】。若此【杀】造成伤害,你摸两张牌。2,弃置一名其他角色装备区里的一张牌,你使用无对应实体牌的普【杀】。若此【杀】未造成伤害,你弃置两张牌。',
|
xinkuangfu_info:'出牌阶段限一次,你可选择:1,弃置装备区里的一张牌,你使用无对应实体牌的普【杀】。若此【杀】造成伤害,你摸两张牌。2,弃置一名其他角色装备区里的一张牌,你使用无对应实体牌的普【杀】。若此【杀】未造成伤害,你弃置两张牌。',
|
||||||
|
@ -18530,6 +19154,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
xingdaorong:'邢道荣',
|
xingdaorong:'邢道荣',
|
||||||
xuxie:'虚猲',
|
xuxie:'虚猲',
|
||||||
xuxie_info:'出牌阶段开始时,你可以减1点体力上限并选择所有与你距离为1的角色,弃置这些角色的各一张牌或令这些角色各摸一张牌。出牌阶段结束时,若你的体力上限为全场最少,则你加1点体力上限。',
|
xuxie_info:'出牌阶段开始时,你可以减1点体力上限并选择所有与你距离为1的角色,弃置这些角色的各一张牌或令这些角色各摸一张牌。出牌阶段结束时,若你的体力上限为全场最少,则你加1点体力上限。',
|
||||||
|
lvkuanglvxiang:'吕旷吕翔',
|
||||||
|
liehou:'列侯',
|
||||||
|
liehou_info:'出牌阶段限一次,你可以令一名攻击范围内的角色交给你一张手牌,然后你将一张手牌交给攻击范围内的另一名角色。',
|
||||||
|
qigong:'齐攻',
|
||||||
|
qigong_info:'当你使用的【杀】被【闪】抵消之后,你可以再对目标角色使用一张【杀】(不可被响应)。',
|
||||||
|
chunyuqiong:'淳于琼',
|
||||||
|
sushou:'宿守',
|
||||||
|
sushou_info:'弃牌阶段开始时,你可以摸X+1张牌(X为“粮”数),然后可以交给任意名友方角色各一张牌。',
|
||||||
|
cangchu:'仓储',
|
||||||
|
cangchu_info:'锁定技,游戏开始时,你获得3枚“粮”标记,当你受到1点火焰伤害后,你失去一枚“粮”标记。',
|
||||||
|
liangying:'粮营',
|
||||||
|
liangying_info:'锁定技,若你有“粮”标记,则友方角色摸牌阶段摸牌数+1;当你失去所有“粮”标记后,你减1点体力上限,然后令敌方角色各摸两张牌。',
|
||||||
|
sp_xuyou:'SP许攸',
|
||||||
|
spshicai:'恃才',
|
||||||
|
spshicai2:'恃才',
|
||||||
|
spshicai_info:'出牌阶段,牌堆顶的一张牌对你可见。你可以弃置一张牌,然后获得牌堆顶的一张牌,且不能再发动〖恃才〗直到此牌离开你的手牌区。',
|
||||||
|
spfushi:'附势',
|
||||||
|
spfushi_info:'锁定技,若己方存活角色数:大于敌方,你视为拥有〖择主〗;小于敌方,你视为拥有〖逞功〗。',
|
||||||
|
zezhu:'择主',
|
||||||
|
zezhu_info:'出牌阶段限一次,你可以获得双方主帅的各一张牌(若无牌则改为你摸一张牌),然后交给双方主帅各一张牌。',
|
||||||
|
chenggong:'逞功',
|
||||||
|
chenggong_info:'当有角色使用牌指定目标后,若此牌对目标数大于1,则你可令使用者摸一张牌。',
|
||||||
|
|
||||||
sp_default:"常规",
|
sp_default:"常规",
|
||||||
sp_whlw:"文和乱武",
|
sp_whlw:"文和乱武",
|
||||||
|
|
|
@ -52,9 +52,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
target.chooseToUse({
|
target.chooseToUse({
|
||||||
prompt:'请使用得到的一张牌,或者受到来自'+get.translation(player)+'的一点伤害',
|
prompt:'请使用得到的一张牌,或者受到来自'+get.translation(player)+'的一点伤害',
|
||||||
filterCard:function(card,player,event){
|
filterCard:function(card,player,event){
|
||||||
if(!cards.contains(card)) return false;
|
var cards=_status.event.cards;
|
||||||
|
if(!cards||get.itemtype(card)!='card'||!cards.contains(card)) return false;
|
||||||
return lib.filter.filterCard(card,player,event);
|
return lib.filter.filterCard(card,player,event);
|
||||||
},
|
},
|
||||||
|
cards:event.cards,
|
||||||
});
|
});
|
||||||
'step 2'
|
'step 2'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
|
|
|
@ -8163,20 +8163,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
usable:1,
|
usable:1,
|
||||||
selectCard:function(){
|
selectCard:function(){
|
||||||
return [Math.max(1,ui.selected.targets.length),game.countPlayer(function(current){
|
var player=_status.event.player;
|
||||||
return current.isMaxHp();
|
return [Math.max(1,ui.selected.targets.length),game.countPlayer(function(target){
|
||||||
|
return target!=player&&!game.hasPlayer(function(current){
|
||||||
|
return current!=player&¤t.hp>target.hp
|
||||||
|
});
|
||||||
})];
|
})];
|
||||||
},
|
},
|
||||||
selectTarget:function(){
|
selectTarget:function(){
|
||||||
return ui.selected.cards.length;
|
return ui.selected.cards.length;
|
||||||
},
|
},
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
return target.isMaxHp();
|
return target!=player&&!game.hasPlayer(function(current){
|
||||||
|
return current!=player&¤t.hp>target.hp
|
||||||
|
});
|
||||||
},
|
},
|
||||||
check:function(card){
|
check:function(card){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
if(game.countPlayer(function(current){
|
if(game.countPlayer(function(target){
|
||||||
return current.isMaxHp()&&get.effect(current,'sanyao',player,player)>0;
|
return target!=player&&!game.hasPlayer(function(current){
|
||||||
|
return current!=player&¤t.hp>target.hp
|
||||||
|
})&&get.effect(target,'sanyao',player,player)>0;
|
||||||
})<=ui.selected.cards.length) return 0;
|
})<=ui.selected.cards.length) return 0;
|
||||||
return 7-get.value(card);
|
return 7-get.value(card);
|
||||||
},
|
},
|
||||||
|
@ -8759,7 +8766,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.chooseTarget(get.prompt2('rechanhui'),function(card,player,target){
|
player.chooseTarget(get.prompt2('rechanhui'),function(card,player,target){
|
||||||
if(player==target) return false;
|
if(player==target) return false;
|
||||||
var trigger=_status.event;
|
var trigger=_status.event;
|
||||||
return player.canUse(trigger.card,target)&&trigger.targets.contains(target)==false;
|
return player.canUse(trigger.card,target,false)&&trigger.targets.contains(target)==false;
|
||||||
}).set('ai',function(target){
|
}).set('ai',function(target){
|
||||||
var trigger=_status.event.getTrigger();
|
var trigger=_status.event.getTrigger();
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
|
@ -12071,7 +12078,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
chanhui:'谮毁',
|
chanhui:'谮毁',
|
||||||
chanhui_info:'出牌阶段限一次,当你使用【杀】或黑色普通锦囊牌指定唯一目标时,你可令可以成为此牌目标的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标。',
|
chanhui_info:'出牌阶段限一次,当你使用【杀】或黑色普通锦囊牌指定唯一目标时,你可令可以成为此牌目标的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标。',
|
||||||
rechanhui:'谮毁',
|
rechanhui:'谮毁',
|
||||||
rechanhui_info:'出牌阶段,当你使用【杀】或黑色普通锦囊牌指定唯一目标时,你可令可以成为此牌目标的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标且你本回合内不能再次发动〖谮毁〗。',
|
rechanhui_info:'出牌阶段,当你使用【杀】或黑色普通锦囊牌指定唯一目标时,你可令可以成为此牌目标(无距离限制)的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标且你本回合内不能再次发动〖谮毁〗。',
|
||||||
jiaojin:'骄矜',
|
jiaojin:'骄矜',
|
||||||
jiaojin_info:'当你受到男性角色造成的伤害时,你可以弃置一张装备牌,令此伤害-1。',
|
jiaojin_info:'当你受到男性角色造成的伤害时,你可以弃置一张装备牌,令此伤害-1。',
|
||||||
rejiaojin:'骄矜',
|
rejiaojin:'骄矜',
|
||||||
|
@ -12192,7 +12199,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zhiman_info:'当你对一名其他角色造成伤害时,你可以防止此伤害,然后获得其装备区或判定区的一张牌。',
|
zhiman_info:'当你对一名其他角色造成伤害时,你可以防止此伤害,然后获得其装备区或判定区的一张牌。',
|
||||||
sanyao_info:'出牌阶段限一次,你可以弃置一张牌并指定一名体力值最多(或之一)的角色,你对其造成1点伤害。',
|
sanyao_info:'出牌阶段限一次,你可以弃置一张牌并指定一名体力值最多(或之一)的角色,你对其造成1点伤害。',
|
||||||
rezhiman_info:'当你对一名其他角色造成伤害时,你可以防止此伤害,然后获得其区域内的一张牌。',
|
rezhiman_info:'当你对一名其他角色造成伤害时,你可以防止此伤害,然后获得其区域内的一张牌。',
|
||||||
resanyao_info:'出牌阶段限一次,你可以弃置任意张牌并指定等量体力值最多(或之一)的角色。你对这些角色依次造成1点伤害。',
|
resanyao_info:'出牌阶段限一次,你可以弃置任意张牌并指定等量除你外体力值最多(或之一)的其他角色。你对这些角色依次造成1点伤害。',
|
||||||
paiyi_info:'出牌阶段限一次,你可以移去一张“权”并选择一名角色,令其摸两张牌,然后若其手牌数大于你,你对其造成1伤害。',
|
paiyi_info:'出牌阶段限一次,你可以移去一张“权”并选择一名角色,令其摸两张牌,然后若其手牌数大于你,你对其造成1伤害。',
|
||||||
zili_info:'觉醒技,准备阶段开始时,若“权”的数量不小于3,你减1点体力上限,然后选择一项:1、回复1点体力;2、摸两张牌。然后你获得技能“排异”。',
|
zili_info:'觉醒技,准备阶段开始时,若“权”的数量不小于3,你减1点体力上限,然后选择一项:1、回复1点体力;2、摸两张牌。然后你获得技能“排异”。',
|
||||||
quanji_info:'当你受到1点伤害后,你可以摸一张牌,然后将一张手牌置于武将牌上,称为“权”;你的手牌上限+X(X为“权”的数量)。',
|
quanji_info:'当你受到1点伤害后,你可以摸一张牌,然后将一张手牌置于武将牌上,称为“权”;你的手牌上限+X(X为“权”的数量)。',
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
window.noname_asset_list=[
|
window.noname_asset_list=[
|
||||||
'v1.9.100.4',
|
'v1.9.100.4.1',
|
||||||
'audio/background/aozhan_chaoming.mp3',
|
'audio/background/aozhan_chaoming.mp3',
|
||||||
'audio/background/aozhan_online.mp3',
|
'audio/background/aozhan_online.mp3',
|
||||||
'audio/background/aozhan_rewrite.mp3',
|
'audio/background/aozhan_rewrite.mp3',
|
||||||
|
@ -575,6 +575,10 @@ window.noname_asset_list=[
|
||||||
'audio/die/zhengxuan.mp3',
|
'audio/die/zhengxuan.mp3',
|
||||||
'audio/die/ol_sunjian.mp3',
|
'audio/die/ol_sunjian.mp3',
|
||||||
'audio/die/re_taishici.mp3',
|
'audio/die/re_taishici.mp3',
|
||||||
|
'audio/die/chunyuqiong.mp3',
|
||||||
|
'audio/die/sp_xuyou.mp3',
|
||||||
|
'audio/die/xingdaorong.mp3',
|
||||||
|
'audio/die/yl_yuanshu.mp3',
|
||||||
|
|
||||||
'audio/skill/anguo1.mp3',
|
'audio/skill/anguo1.mp3',
|
||||||
'audio/skill/anguo2.mp3',
|
'audio/skill/anguo2.mp3',
|
||||||
|
@ -2550,6 +2554,21 @@ window.noname_asset_list=[
|
||||||
'audio/skill/zhanshen2.mp3',
|
'audio/skill/zhanshen2.mp3',
|
||||||
'audio/skill/zhongyi1.mp3',
|
'audio/skill/zhongyi1.mp3',
|
||||||
'audio/skill/zhongyi2.mp3',
|
'audio/skill/zhongyi2.mp3',
|
||||||
|
'audio/skill/cangchu1.mp3',
|
||||||
|
'audio/skill/cangchu2.mp3',
|
||||||
|
'audio/skill/chenggong1.mp3',
|
||||||
|
'audio/skill/chenggong2.mp3',
|
||||||
|
'audio/skill/drlt_weidi1.mp3',
|
||||||
|
'audio/skill/drlt_weidi2.mp3',
|
||||||
|
'audio/skill/drlt_yongsi1.mp3',
|
||||||
|
'audio/skill/drlt_yongsi2.mp3',
|
||||||
|
'audio/skill/liangying1.mp3',
|
||||||
|
'audio/skill/spshicai1.mp3',
|
||||||
|
'audio/skill/spshicai2.mp3',
|
||||||
|
'audio/skill/sushou1.mp3',
|
||||||
|
'audio/skill/sushou2.mp3',
|
||||||
|
'audio/skill/xuxie1.mp3',
|
||||||
|
'audio/skill/xuxie2.mp3',
|
||||||
|
|
||||||
'font/huangcao.ttf',
|
'font/huangcao.ttf',
|
||||||
'font/shousha.ttf',
|
'font/shousha.ttf',
|
||||||
|
@ -3130,6 +3149,10 @@ window.noname_asset_list=[
|
||||||
'image/character/re_sunluban.jpg',
|
'image/character/re_sunluban.jpg',
|
||||||
'image/character/re_taishici.jpg',
|
'image/character/re_taishici.jpg',
|
||||||
'image/character/xushao.jpg',
|
'image/character/xushao.jpg',
|
||||||
|
'image/character/chunyuqiong.jpg',
|
||||||
|
'image/character/lvkuanglvxiang.jpg',
|
||||||
|
'image/character/re_sunluyu.jpg',
|
||||||
|
'image/character/sp_xuyou.jpg',
|
||||||
|
|
||||||
'image/character/baiwuchang.jpg',
|
'image/character/baiwuchang.jpg',
|
||||||
'image/character/baosanniang.jpg',
|
'image/character/baosanniang.jpg',
|
||||||
|
@ -4051,6 +4074,46 @@ window.noname_asset_list=[
|
||||||
'image/emotion/zhenji_emotion/18.gif',
|
'image/emotion/zhenji_emotion/18.gif',
|
||||||
'image/emotion/zhenji_emotion/19.gif',
|
'image/emotion/zhenji_emotion/19.gif',
|
||||||
'image/emotion/zhenji_emotion/20.gif',
|
'image/emotion/zhenji_emotion/20.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/1.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/2.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/3.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/4.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/5.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/6.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/7.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/8.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/9.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/10.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/11.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/12.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/13.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/14.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/15.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/16.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/17.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/18.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/19.gif',
|
||||||
|
'image/emotion/xiaosha_emotion/20.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/1.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/2.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/3.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/4.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/5.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/6.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/7.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/8.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/9.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/10.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/11.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/12.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/13.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/14.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/15.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/16.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/17.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/18.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/19.gif',
|
||||||
|
'image/emotion/xiaotao_emotion/20.gif',
|
||||||
|
|
||||||
'image/mode/boss/card/chixueqingfeng.png',
|
'image/mode/boss/card/chixueqingfeng.png',
|
||||||
'image/mode/boss/card/chiyanzhenhunqin.png',
|
'image/mode/boss/card/chiyanzhenhunqin.png',
|
||||||
|
|
54
game/game.js
|
@ -57,6 +57,8 @@
|
||||||
shibing_emotion:15,
|
shibing_emotion:15,
|
||||||
guojia_emotion:20,
|
guojia_emotion:20,
|
||||||
zhenji_emotion:20,
|
zhenji_emotion:20,
|
||||||
|
xiaosha_emotion:20,
|
||||||
|
xiaotao_emotion:20,
|
||||||
},
|
},
|
||||||
animate:{
|
animate:{
|
||||||
skill:{},
|
skill:{},
|
||||||
|
@ -5062,6 +5064,7 @@
|
||||||
'2v2':'2v2',
|
'2v2':'2v2',
|
||||||
'3v3':'3v3',
|
'3v3':'3v3',
|
||||||
'4v4':'4v4',
|
'4v4':'4v4',
|
||||||
|
'guandu':'官渡',
|
||||||
},
|
},
|
||||||
frequent:true
|
frequent:true
|
||||||
},
|
},
|
||||||
|
@ -5197,6 +5200,7 @@
|
||||||
four:'对抗',
|
four:'对抗',
|
||||||
three:'统率',
|
three:'统率',
|
||||||
two:'欢乐',
|
two:'欢乐',
|
||||||
|
guandu:'官渡',
|
||||||
jiange:'剑阁',
|
jiange:'剑阁',
|
||||||
siguo:'四国',
|
siguo:'四国',
|
||||||
standard:'自由'
|
standard:'自由'
|
||||||
|
@ -9789,6 +9793,8 @@
|
||||||
guojia_emotion:'郭嘉表情',
|
guojia_emotion:'郭嘉表情',
|
||||||
zhenji_emotion:'甄姬表情',
|
zhenji_emotion:'甄姬表情',
|
||||||
shibing_emotion:'士兵表情',
|
shibing_emotion:'士兵表情',
|
||||||
|
xiaosha_emotion:'小杀表情',
|
||||||
|
xiaotao_emotion:'小桃表情',
|
||||||
|
|
||||||
pause:'暂停',
|
pause:'暂停',
|
||||||
config:'选项',
|
config:'选项',
|
||||||
|
@ -10097,7 +10103,7 @@
|
||||||
cardsGotoSpecial:function(){
|
cardsGotoSpecial:function(){
|
||||||
game.getGlobalHistory().cardMove.push(event);
|
game.getGlobalHistory().cardMove.push(event);
|
||||||
for(var i=0;i<cards.length;i++){
|
for(var i=0;i<cards.length;i++){
|
||||||
cards[i].goto(ui.special);
|
ui.special.appendChild(cards[i]);
|
||||||
}
|
}
|
||||||
if(event.notrigger!==true) event.trigger('addCardToStorage');
|
if(event.notrigger!==true) event.trigger('addCardToStorage');
|
||||||
},
|
},
|
||||||
|
@ -10280,7 +10286,16 @@
|
||||||
game.countPlayer2(function(current){
|
game.countPlayer2(function(current){
|
||||||
current.actionHistory.push({useCard:[],respond:[],skipped:[],lose:[],gain:[],sourceDamage:[],damage:[],custom:[]});
|
current.actionHistory.push({useCard:[],respond:[],skipped:[],lose:[],gain:[],sourceDamage:[],damage:[],custom:[]});
|
||||||
current.stat.push({card:{},skill:{}});
|
current.stat.push({card:{},skill:{}});
|
||||||
|
if(event.parent._roundStart){
|
||||||
|
current.getHistory().isRound=true;
|
||||||
|
current.getStat().isRound=true;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
player.getHistory().isMe=true;
|
||||||
|
player.getStat().isMe=true;
|
||||||
|
if(event.parent._roundStart){
|
||||||
|
game.getGlobalHistory().isRound=true;
|
||||||
|
}
|
||||||
if(ui.land&&ui.land.player==player){
|
if(ui.land&&ui.land.player==player){
|
||||||
game.addVideo('destroyLand');
|
game.addVideo('destroyLand');
|
||||||
ui.land.destroy();
|
ui.land.destroy();
|
||||||
|
@ -13703,11 +13718,11 @@
|
||||||
},event.id);
|
},event.id);
|
||||||
};
|
};
|
||||||
"step 3"
|
"step 3"
|
||||||
event.sortTarget=function(animate){
|
event.sortTarget=function(animate,sort){
|
||||||
var info=get.info(card,false);
|
var info=get.info(card,false);
|
||||||
if(num==0&&targets.length>1){
|
if(num==0&&targets.length>1){
|
||||||
if(!info.multitarget){
|
if(!info.multitarget){
|
||||||
if(!event.fixedSeat){
|
if(!event.fixedSeat&&!sort){
|
||||||
targets.sortBySeat(player);
|
targets.sortBySeat(player);
|
||||||
}
|
}
|
||||||
if(animate) for(var i=0;i<targets.length;i++){
|
if(animate) for(var i=0;i<targets.length;i++){
|
||||||
|
@ -13819,6 +13834,9 @@
|
||||||
next.directHit=event.directHit;
|
next.directHit=event.directHit;
|
||||||
next.customArgs=event.customArgs;
|
next.customArgs=event.customArgs;
|
||||||
if(event.forceDie) next.forceDie=true;
|
if(event.forceDie) next.forceDie=true;
|
||||||
|
if(targets.length==event.triggeredTargets4.length){
|
||||||
|
event.sortTarget();
|
||||||
|
}
|
||||||
event.redo();
|
event.redo();
|
||||||
}
|
}
|
||||||
"step 8"
|
"step 8"
|
||||||
|
@ -13845,10 +13863,10 @@
|
||||||
}
|
}
|
||||||
"step 9"
|
"step 9"
|
||||||
if(event.all_excluded) return;
|
if(event.all_excluded) return;
|
||||||
if(num==0&&targets.length>1){
|
|
||||||
event.sortTarget(true);
|
|
||||||
}
|
|
||||||
var info=get.info(card,false);
|
var info=get.info(card,false);
|
||||||
|
if(num==0&&targets.length>1){
|
||||||
|
event.sortTarget(true,true);
|
||||||
|
}
|
||||||
if(targets[num]&&targets[num].isDead()) return;
|
if(targets[num]&&targets[num].isDead()) return;
|
||||||
if(targets[num]&&targets[num].isOut()) return;
|
if(targets[num]&&targets[num].isOut()) return;
|
||||||
if(targets[num]&&targets[num].removed) return;
|
if(targets[num]&&targets[num].removed) return;
|
||||||
|
@ -19736,6 +19754,7 @@
|
||||||
else if(typeof select=='number') range=[select,select];
|
else if(typeof select=='number') range=[select,select];
|
||||||
else if(get.itemtype(select)=='select') range=select;
|
else if(get.itemtype(select)=='select') range=select;
|
||||||
else if(typeof select=='function') range=select(card,player);
|
else if(typeof select=='function') range=select(card,player);
|
||||||
|
if(info.singleCard) range=[1,1];
|
||||||
game.checkMod(card,player,range,'selectTarget',player);
|
game.checkMod(card,player,range,'selectTarget',player);
|
||||||
if(!range) return 0;
|
if(!range) return 0;
|
||||||
|
|
||||||
|
@ -20932,7 +20951,7 @@
|
||||||
hasZhuSkill:function(skill,player){
|
hasZhuSkill:function(skill,player){
|
||||||
if(!this.hasSkill(skill)) return false;
|
if(!this.hasSkill(skill)) return false;
|
||||||
var mode=get.mode();
|
var mode=get.mode();
|
||||||
if(mode=='identity'||(mode=='versus'&&_status.mode=='four')){
|
if(mode=='identity'||(mode=='versus'&&(_status.mode=='four'||_status.mode=='guandu'))){
|
||||||
if(mode!='identity'){
|
if(mode!='identity'){
|
||||||
if(player&&this.side!=player.side) return false;
|
if(player&&this.side!=player.side) return false;
|
||||||
}
|
}
|
||||||
|
@ -24953,6 +24972,7 @@
|
||||||
if((player==_status.roundStart||_status.roundSkipped)&&!trigger.skill){
|
if((player==_status.roundStart||_status.roundSkipped)&&!trigger.skill){
|
||||||
delete _status.roundSkipped;
|
delete _status.roundSkipped;
|
||||||
game.roundNumber++;
|
game.roundNumber++;
|
||||||
|
trigger._roundStart=true;
|
||||||
game.updateRoundNumber();
|
game.updateRoundNumber();
|
||||||
for(var i=0;i<game.players.length;i++){
|
for(var i=0;i<game.players.length;i++){
|
||||||
if(game.players[i].isOut()&&game.players[i].outCount>0){
|
if(game.players[i].isOut()&&game.players[i].outCount>0){
|
||||||
|
@ -25968,6 +25988,7 @@
|
||||||
}
|
}
|
||||||
ui.arena.setNumber(state.number);
|
ui.arena.setNumber(state.number);
|
||||||
_status.mode=state.mode;
|
_status.mode=state.mode;
|
||||||
|
lib.inpile=_state.inpile;
|
||||||
var pos=state.players[observe||game.onlineID].position;
|
var pos=state.players[observe||game.onlineID].position;
|
||||||
for(var i in state.players){
|
for(var i in state.players){
|
||||||
var info=state.players[i];
|
var info=state.players[i];
|
||||||
|
@ -32066,9 +32087,10 @@
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
updateRoundNumber:function(){
|
updateRoundNumber:function(){
|
||||||
game.broadcastAll(function(num1,num2){
|
game.broadcastAll(function(num1,num2,top){
|
||||||
if(ui.cardPileNumber) ui.cardPileNumber.innerHTML=num1+'轮 剩余牌: '+num2;
|
if(ui.cardPileNumber) ui.cardPileNumber.innerHTML=num1+'轮 剩余牌: '+num2;
|
||||||
},game.roundNumber,ui.cardPile.childNodes.length);
|
_status.pileTop=top;
|
||||||
|
},game.roundNumber,ui.cardPile.childNodes.length,ui.cardPile.firstChild);
|
||||||
},
|
},
|
||||||
asyncDraw:function(players,num,drawDeck,bottom){
|
asyncDraw:function(players,num,drawDeck,bottom){
|
||||||
for(var i=0;i<players.length;i++){
|
for(var i=0;i<players.length;i++){
|
||||||
|
@ -42970,10 +42992,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lib.inpile.sort(lib.sort.card);
|
lib.inpile.sort(lib.sort.card);
|
||||||
game.broadcastAll(function(num,pile){
|
game.broadcastAll(function(num,pile,top){
|
||||||
if(ui.cardPileNumber) ui.cardPileNumber.innerHTML='0轮 剩余牌: '+num;
|
if(ui.cardPileNumber) ui.cardPileNumber.innerHTML='0轮 剩余牌: '+num;
|
||||||
lib.inpile=pile;
|
lib.inpile=pile;
|
||||||
},ui.cardPile.childNodes.length,lib.inpile);
|
_status.pileTop=top;
|
||||||
|
},ui.cardPile.childNodes.length,lib.inpile,ui.cardPile.firstChild);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
click:{
|
click:{
|
||||||
|
@ -47325,6 +47348,7 @@
|
||||||
isCard:true,
|
isCard:true,
|
||||||
cardid:card.cardid,
|
cardid:card.cardid,
|
||||||
wunature:card.wunature,
|
wunature:card.wunature,
|
||||||
|
storage:card.storage,
|
||||||
};
|
};
|
||||||
if(get.itemtype(cards)=='cards'&&!card.cards) next.cards=cards.slice(0);
|
if(get.itemtype(cards)=='cards'&&!card.cards) next.cards=cards.slice(0);
|
||||||
else next.cards=[card];
|
else next.cards=[card];
|
||||||
|
@ -47755,6 +47779,7 @@
|
||||||
case '2v2':return '欢乐成双';
|
case '2v2':return '欢乐成双';
|
||||||
case '3v3':return '血战到底';
|
case '3v3':return '血战到底';
|
||||||
case '4v4':return '四人对决';
|
case '4v4':return '四人对决';
|
||||||
|
case 'guandu':return '官渡之战';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(config.mode=='single'){
|
else if(config.mode=='single'){
|
||||||
|
@ -47827,7 +47852,8 @@
|
||||||
dying:_status.dying,
|
dying:_status.dying,
|
||||||
servermode:window.isNonameServer,
|
servermode:window.isNonameServer,
|
||||||
roomId:game.roomId,
|
roomId:game.roomId,
|
||||||
over:_status.over
|
over:_status.over,
|
||||||
|
inpile:lib.inpile,
|
||||||
};
|
};
|
||||||
for(var i in lib.playerOL){
|
for(var i in lib.playerOL){
|
||||||
state.players[i]=lib.playerOL[i].getState();
|
state.players[i]=lib.playerOL[i].getState();
|
||||||
|
@ -47881,7 +47907,7 @@
|
||||||
if(skill&&!game.zhu.hasSkill(skill)) return null;
|
if(skill&&!game.zhu.hasSkill(skill)) return null;
|
||||||
if(game.zhu.isZhu) return game.zhu;
|
if(game.zhu.isZhu) return game.zhu;
|
||||||
}
|
}
|
||||||
else if(mode=='versus'&&_status.mode=='four'){
|
else if(mode=='versus'&&(_status.mode=='four'||_status.mode=='guandu')){
|
||||||
for(var i=0;i<game.players.length;i++){
|
for(var i=0;i<game.players.length;i++){
|
||||||
if(game.players[i].isZhu){
|
if(game.players[i].isZhu){
|
||||||
if(skill&&!(game.players[i].hasSkill(skill))) continue;
|
if(skill&&!(game.players[i].hasSkill(skill))) continue;
|
||||||
|
@ -49461,7 +49487,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(i=0;i<skills.length;i++){
|
for(i=0;i<skills.length;i++){
|
||||||
if(lib.skill[skills[i]]&&lib.skill[skills[i]].nopop) continue;
|
if(lib.skill[skills[i]]&&(lib.skill[skills[i]].nopop||lib.skill[skills[i]].equipSkill)) continue;
|
||||||
if(lib.translate[skills[i]+'_info']){
|
if(lib.translate[skills[i]+'_info']){
|
||||||
translation=lib.translate[skills[i]+'_ab']||get.translation(skills[i]).slice(0,2);
|
translation=lib.translate[skills[i]+'_ab']||get.translation(skills[i]).slice(0,2);
|
||||||
if(node.forbiddenSkills[skills[i]]){
|
if(node.forbiddenSkills[skills[i]]){
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
window.noname_update={
|
window.noname_update={
|
||||||
version:'1.9.100.4',
|
version:'1.9.100.4.1',
|
||||||
update:'1.9.100.3.1',
|
update:'1.9.100.4',
|
||||||
changeLog:[
|
changeLog:[
|
||||||
'きえええええええええ——!',
|
'官渡之战(对决->官渡)',
|
||||||
|
'邢道荣,新孙鲁育',
|
||||||
|
'bug修复',
|
||||||
|
|
||||||
],
|
],
|
||||||
files:[
|
files:[
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
chunyuqiong.jpg
|
||||||
|
lvkuanglvxiang.jpg
|
||||||
|
re_sunluyu.jpg
|
||||||
|
sp_xuyou.jpg
|
After Width: | Height: | Size: 234 KiB |
After Width: | Height: | Size: 205 KiB |
After Width: | Height: | Size: 233 KiB |
After Width: | Height: | Size: 189 KiB |
After Width: | Height: | Size: 413 KiB |
After Width: | Height: | Size: 190 KiB |
After Width: | Height: | Size: 305 KiB |
After Width: | Height: | Size: 317 KiB |
After Width: | Height: | Size: 297 KiB |
After Width: | Height: | Size: 446 KiB |
After Width: | Height: | Size: 400 KiB |
After Width: | Height: | Size: 501 KiB |
After Width: | Height: | Size: 547 KiB |
After Width: | Height: | Size: 558 KiB |
After Width: | Height: | Size: 420 KiB |
After Width: | Height: | Size: 318 KiB |
After Width: | Height: | Size: 264 KiB |
After Width: | Height: | Size: 341 KiB |
After Width: | Height: | Size: 417 KiB |
After Width: | Height: | Size: 118 KiB |
After Width: | Height: | Size: 257 KiB |
After Width: | Height: | Size: 314 KiB |
After Width: | Height: | Size: 206 KiB |
After Width: | Height: | Size: 261 KiB |
After Width: | Height: | Size: 785 KiB |
After Width: | Height: | Size: 334 KiB |
After Width: | Height: | Size: 459 KiB |
After Width: | Height: | Size: 883 KiB |
After Width: | Height: | Size: 294 KiB |
After Width: | Height: | Size: 603 KiB |
After Width: | Height: | Size: 388 KiB |
After Width: | Height: | Size: 197 KiB |
After Width: | Height: | Size: 357 KiB |
After Width: | Height: | Size: 368 KiB |
After Width: | Height: | Size: 406 KiB |
After Width: | Height: | Size: 387 KiB |
After Width: | Height: | Size: 295 KiB |
After Width: | Height: | Size: 696 KiB |
After Width: | Height: | Size: 712 KiB |
After Width: | Height: | Size: 269 KiB |
After Width: | Height: | Size: 316 KiB |
After Width: | Height: | Size: 305 KiB |
After Width: | Height: | Size: 302 KiB |
After Width: | Height: | Size: 844 KiB |
|
@ -7151,7 +7151,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
game.players[i].identity='unknown';
|
game.players[i].identity='unknown';
|
||||||
game.players[i].node.name.show();
|
game.players[i].node.name.show();
|
||||||
game.players[i].node.name2.show();
|
game.players[i].node.name2.show();
|
||||||
game.players[i]._group=lib.character[game.players[i].name1][1];
|
game.players[i]._group=lib.character[game.players[i].name2][1];
|
||||||
for(var j=0;j<game.players[i].hiddenSkills.length;j++){
|
for(var j=0;j<game.players[i].hiddenSkills.length;j++){
|
||||||
game.players[i].addSkillTrigger(game.players[i].hiddenSkills[j],true);
|
game.players[i].addSkillTrigger(game.players[i].hiddenSkills[j],true);
|
||||||
}
|
}
|
||||||
|
@ -7315,7 +7315,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
game.players[i].identity='unknown';
|
game.players[i].identity='unknown';
|
||||||
game.players[i].node.name.show();
|
game.players[i].node.name.show();
|
||||||
game.players[i].node.name2.show();
|
game.players[i].node.name2.show();
|
||||||
game.players[i]._group=lib.character[game.players[i].name1][1];
|
game.players[i]._group=lib.character[game.players[i].name2][1];
|
||||||
}
|
}
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
ui.arena.classList.remove('choose-character');
|
ui.arena.classList.remove('choose-character');
|
||||||
|
|
426
mode/versus.js
|
@ -37,6 +37,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
start:function(){
|
start:function(){
|
||||||
"step 0"
|
"step 0"
|
||||||
_status.mode=get.config('versus_mode');
|
_status.mode=get.config('versus_mode');
|
||||||
|
if(_status.connectMode&&lib.configOL.versus_mode=='guandu') _status.mode='guandu';
|
||||||
if(_status.brawl&&_status.brawl.submode){
|
if(_status.brawl&&_status.brawl.submode){
|
||||||
_status.mode=_status.brawl.submode;
|
_status.mode=_status.brawl.submode;
|
||||||
}
|
}
|
||||||
|
@ -70,11 +71,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
case '1v1':lib.configOL.number=2;break;
|
case '1v1':lib.configOL.number=2;break;
|
||||||
case '2v2':lib.configOL.number=4;break;
|
case '2v2':lib.configOL.number=4;break;
|
||||||
case '3v3':lib.configOL.number=6;break;
|
case '3v3':lib.configOL.number=6;break;
|
||||||
case '4v4':lib.configOL.number=8;break;
|
case '4v4':case 'guandu':lib.configOL.number=8;break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if(_status.mode=='jiange'||_status.mode=='siguo'||_status.mode=='four'){
|
else if(_status.mode=='jiange'||_status.mode=='siguo'||_status.mode=='four'||_status.mode=='guandu'){
|
||||||
if(_status.mode=='four'&&!get.config('enable_all_cards_four')){
|
if(_status.mode=='four'&&!get.config('enable_all_cards_four')){
|
||||||
lib.card.list=lib.cardsFour;
|
lib.card.list=lib.cardsFour;
|
||||||
game.fixedPile=true;
|
game.fixedPile=true;
|
||||||
|
@ -89,6 +90,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(_status.mode=='guandu'){
|
||||||
|
for(var i=0;i<lib.card.list.length;i++){
|
||||||
|
switch(lib.card.list[i][2]){
|
||||||
|
case 'wugu':lib.card.list[i][2]='tunliang';break;
|
||||||
|
case 'nanman':lib.card.list[i][2]='lulitongxin';break;
|
||||||
|
case 'taoyuan':case 'shandian':lib.card.list[i][2]='yuanjun';break;
|
||||||
|
case 'muniu':lib.card.list.splice(i--,1);break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
game.prepareArena(8);
|
game.prepareArena(8);
|
||||||
}
|
}
|
||||||
else if(_status.mode=='two'){
|
else if(_status.mode=='two'){
|
||||||
|
@ -158,6 +169,38 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
game.randomMapOL();
|
game.randomMapOL();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(_status.mode=='guandu'){
|
||||||
|
var list=[
|
||||||
|
['zhu','ezhu','ezhong','zhong','ezhong','zhong','zhong','ezhong'],
|
||||||
|
['zhu','ezhong','zhong','ezhu','ezhong','zhong','ezhong','zhong'],
|
||||||
|
['zhu','ezhong','zhong','ezhong','zhong','ezhong','zhong','ezhu'],
|
||||||
|
['zhu','ezhu','zhong','ezhong','zhong','ezhong','zhong','ezhong'],
|
||||||
|
['zhu','ezhong','zhong','ezhong','zhong','ezhu','zhong','ezhong'],
|
||||||
|
].randomGet();
|
||||||
|
|
||||||
|
var side=true;
|
||||||
|
var num=Math.floor(Math.random()*8);
|
||||||
|
list=list.splice(8-num).concat(list);
|
||||||
|
_status.firstAct=game.players[num];
|
||||||
|
for(var i=0;i<8;i++){
|
||||||
|
if(list[i][0]=='e'){
|
||||||
|
game.players[i].side=side;
|
||||||
|
game.players[i].identity=list[i].slice(1);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
game.players[i].side=!side;
|
||||||
|
game.players[i].identity=list[i];
|
||||||
|
}
|
||||||
|
if(game.players[i].identity=='zhu'){
|
||||||
|
game[game.players[i].side+'Zhu']=game.players[i];
|
||||||
|
game.players[i].isZhu=true;
|
||||||
|
}
|
||||||
|
game.players[i].setIdentity(game.players[i].identity);
|
||||||
|
game.players[i].node.identity.dataset.color=get.translation(game.players[i].side+'Color');
|
||||||
|
game.players[i].getId();
|
||||||
|
}
|
||||||
|
game.chooseCharacterGuandu();
|
||||||
|
}
|
||||||
else if(_status.mode=='four'){
|
else if(_status.mode=='four'){
|
||||||
_status.fouralign=[0,1,2,3,4];
|
_status.fouralign=[0,1,2,3,4];
|
||||||
var list=[
|
var list=[
|
||||||
|
@ -322,6 +365,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
});
|
});
|
||||||
game.phaseLoop(firstChoose);
|
game.phaseLoop(firstChoose);
|
||||||
}
|
}
|
||||||
|
else if(_status.mode=='guandu'){
|
||||||
|
game.gameDraw(_status.firstAct);
|
||||||
|
game.phaseLoop(_status.firstAct);
|
||||||
|
}
|
||||||
else if(_status.mode=='4v4'){
|
else if(_status.mode=='4v4'){
|
||||||
game.gameDraw(_status.firstAct,function(player){
|
game.gameDraw(_status.firstAct,function(player){
|
||||||
if(player==_status.firstAct.previousSeat){
|
if(player==_status.firstAct.previousSeat){
|
||||||
|
@ -335,7 +382,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
event.finish();
|
event.finish();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(_status.mode=='two'){
|
if(_status.mode=='guandu'){
|
||||||
|
game.gameDraw(_status.firstAct,4);
|
||||||
|
game.phaseLoop(_status.firstAct);
|
||||||
|
}
|
||||||
|
else if(_status.mode=='two'){
|
||||||
_status.first_less=true;
|
_status.first_less=true;
|
||||||
_status.first_less_forced=true;
|
_status.first_less_forced=true;
|
||||||
var firstChoose=_status.firstAct;
|
var firstChoose=_status.firstAct;
|
||||||
|
@ -560,6 +611,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
case 'siguo':str2='同舟共济';break;
|
case 'siguo':str2='同舟共济';break;
|
||||||
case 'jiange':str2='守卫剑阁';break;
|
case 'jiange':str2='守卫剑阁';break;
|
||||||
case 'four':str2='对决 - 4v4';break;
|
case 'four':str2='对决 - 4v4';break;
|
||||||
|
case 'guandu':str2='官渡之战';break;
|
||||||
default:str2='对决 - '+lib.storage.number+'v'+lib.storage.number
|
default:str2='对决 - '+lib.storage.number+'v'+lib.storage.number
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2451,8 +2503,201 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
case '2v2':game.chooseCharacterOL2();break;
|
case '2v2':game.chooseCharacterOL2();break;
|
||||||
case '3v3':game.chooseCharacterOL3();break;
|
case '3v3':game.chooseCharacterOL3();break;
|
||||||
case '4v4':game.chooseCharacterOL4();break;
|
case '4v4':game.chooseCharacterOL4();break;
|
||||||
|
case 'guandu':game.chooseCharacterOLGuandu();break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
chooseCharacterOLGuandu:function(){
|
||||||
|
var next=game.createEvent('chooseCharacter',false);
|
||||||
|
next.setContent(function(){
|
||||||
|
"step 0"
|
||||||
|
var list=[
|
||||||
|
['zhu','ezhu','ezhong','zhong','ezhong','zhong','zhong','ezhong'],
|
||||||
|
['zhu','ezhong','zhong','ezhu','ezhong','zhong','ezhong','zhong'],
|
||||||
|
['zhu','ezhong','zhong','ezhong','zhong','ezhong','zhong','ezhu'],
|
||||||
|
['zhu','ezhu','zhong','ezhong','zhong','ezhong','zhong','ezhong'],
|
||||||
|
['zhu','ezhong','zhong','ezhong','zhong','ezhu','zhong','ezhong'],
|
||||||
|
].randomGet();
|
||||||
|
|
||||||
|
var side=true;
|
||||||
|
var num=Math.floor(Math.random()*8);
|
||||||
|
list=list.splice(8-num).concat(list);
|
||||||
|
for(var i=0;i<8;i++){
|
||||||
|
if(list[i][0]=='e'){
|
||||||
|
game.players[i].side=side;
|
||||||
|
game.players[i].identity=list[i].slice(1);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
game.players[i].side=!side;
|
||||||
|
game.players[i].identity=list[i];
|
||||||
|
}
|
||||||
|
if(game.players[i].identity=='zhu'){
|
||||||
|
game[game.players[i].side+'Zhu']=game.players[i];
|
||||||
|
game.players[i].isZhu=true;
|
||||||
|
}
|
||||||
|
game.players[i].setIdentity(game.players[i].identity);
|
||||||
|
game.players[i].node.identity.dataset.color=get.translation(game.players[i].side+'Color');
|
||||||
|
game.players[i].getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
var side=true;
|
||||||
|
var map={};
|
||||||
|
var num=Math.floor(Math.random()*8);
|
||||||
|
list=list.splice(8-num).concat(list);
|
||||||
|
for(var i=0;i<8;i++){
|
||||||
|
if(list[i][0]=='e'){
|
||||||
|
game.players[i].side=side;
|
||||||
|
game.players[i].identity=list[i].slice(1);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
game.players[i].side=!side;
|
||||||
|
game.players[i].identity=list[i];
|
||||||
|
}
|
||||||
|
map[game.players[i].playerid]=[game.players[i].side,game.players[i].identity];
|
||||||
|
}
|
||||||
|
var evt=['huoshaowuchao','liangcaokuifa','zhanyanliangzhuwenchou','shishengshibai'].randomGet();
|
||||||
|
game.addGlobalSkill(evt);
|
||||||
|
|
||||||
|
var func=function(map,evt){
|
||||||
|
for(var i in map){
|
||||||
|
var player=lib.playerOL[i];
|
||||||
|
if(player){
|
||||||
|
player.side=map[i][0];
|
||||||
|
player.identity=map[i][1];
|
||||||
|
player.setIdentity();
|
||||||
|
player.node.identity.dataset.color=get.translation(player.side+'Color');
|
||||||
|
if(player.identity=='zhu'){
|
||||||
|
game[player.side+'Zhu']=player;
|
||||||
|
player.isZhu=true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
game.falseZhu.init('re_caocao');
|
||||||
|
game.trueZhu.init('ol_yuanshao');
|
||||||
|
game.trueZhu.hp++;
|
||||||
|
game.trueZhu.maxHp++;
|
||||||
|
game.falseZhu.hp++;
|
||||||
|
game.falseZhu.maxHp++;
|
||||||
|
game.trueZhu.update();
|
||||||
|
game.falseZhu.update();
|
||||||
|
ui.arena.classList.add('choose-character');
|
||||||
|
if(get.is.phoneLayout()){
|
||||||
|
ui.guanduInfo=ui.create.div('.touchinfo.left',ui.window);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
ui.guanduInfo=ui.create.div(ui.gameinfo);
|
||||||
|
}
|
||||||
|
ui.guanduInfo.innerHTML='当前事件:'+get.translation(evt);
|
||||||
|
var dialog=ui.create.dialog('本局特殊事件:'+get.translation(evt));
|
||||||
|
dialog.addText(get.translation(evt+'_info'),false);
|
||||||
|
setTimeout(function(){
|
||||||
|
dialog.close();
|
||||||
|
},5000)
|
||||||
|
};
|
||||||
|
game.broadcastAll(func,map,evt);
|
||||||
|
_status.firstAct=game.falseZhu;
|
||||||
|
game.delay(0,5000);
|
||||||
|
"step 1"
|
||||||
|
event.falseList=['xunyu','xunyou','re_guojia','re_zhangliao','re_xuhuang','yujin_yujin','caohong','jsp_guanyu','liuye','litong','zangba','manchong','hanhaoshihuan','chengyu','caoren'].filter(function(name){
|
||||||
|
if(!Array.isArray(lib.character[name])) return false;
|
||||||
|
lib.character[name][1]='wei';
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
event.trueList=['xunchen','gaolan','sp_zhanghe','sp_xuyou','chenlin','re_liubei','yj_jushou','sp_shenpei','tianfeng','yuantanyuanshang','lvkuanglvxiang','xinpi','guotufengji','chunyuqiong'].filter(function(name){
|
||||||
|
if(!Array.isArray(lib.character[name])) return false;
|
||||||
|
lib.character[name][1]='qun';
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
game.broadcast(function(list1,list2){
|
||||||
|
while(list1.length){
|
||||||
|
lib.character[list1.shift()][1]='wei';
|
||||||
|
}
|
||||||
|
while(list2.length){
|
||||||
|
lib.character[list2.shift()][1]='qun';
|
||||||
|
}
|
||||||
|
},event.falseList,event.trueList);
|
||||||
|
event.map={};
|
||||||
|
var list=[];
|
||||||
|
game.countPlayer(function(current){
|
||||||
|
if(current.identity=='zhong'){
|
||||||
|
var choice=event[current.side+'List'].randomRemove(3);
|
||||||
|
event.map[current.playerid]=choice;
|
||||||
|
list.push([current,['请选择武将',[choice,'character']],true]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
game.me.chooseButtonOL(list,function(player,result){
|
||||||
|
if(game.online||player==game.me){
|
||||||
|
player.init(result.links[0]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
"step 2"
|
||||||
|
for(var i in result){
|
||||||
|
if(result[i]=='ai'){
|
||||||
|
result[i]=event.map[i].randomGet();
|
||||||
|
}
|
||||||
|
else result[i]=result[i].links[0];
|
||||||
|
}
|
||||||
|
game.broadcastAll(function(result){
|
||||||
|
for(var i in result){
|
||||||
|
lib.playerOL[i].init(result[i]);
|
||||||
|
}
|
||||||
|
setTimeout(function(){
|
||||||
|
ui.arena.classList.remove('choose-character');
|
||||||
|
},500);
|
||||||
|
},result);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
chooseCharacterGuandu:function(){
|
||||||
|
var next=game.createEvent('chooseCharacter',false);
|
||||||
|
next.setContent(function(){
|
||||||
|
'step 0'
|
||||||
|
lib.init.onfree();
|
||||||
|
ui.arena.classList.add('choose-character');
|
||||||
|
game.falseZhu.init('re_caocao');
|
||||||
|
game.trueZhu.init('ol_yuanshao');
|
||||||
|
game.trueZhu.hp++;
|
||||||
|
game.trueZhu.maxHp++;
|
||||||
|
game.falseZhu.hp++;
|
||||||
|
game.falseZhu.maxHp++;
|
||||||
|
game.trueZhu.update();
|
||||||
|
game.falseZhu.update();
|
||||||
|
var evt=['huoshaowuchao','liangcaokuifa','zhanyanliangzhuwenchou','shishengshibai'].randomGet();
|
||||||
|
game.addGlobalSkill(evt);
|
||||||
|
game.broadcastAll(function(evt){
|
||||||
|
if(get.is.phoneLayout()){
|
||||||
|
ui.guanduInfo=ui.create.div('.touchinfo.left',ui.window);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
ui.guanduInfo=ui.create.div(ui.gameinfo);
|
||||||
|
}
|
||||||
|
ui.guanduInfo.innerHTML='当前事件:'+get.translation(evt);
|
||||||
|
},evt);
|
||||||
|
game.me.chooseControl('ok').set('prompt','###本局特殊事件:'+get.translation(evt)+'###'+get.translation(evt+'_info'));
|
||||||
|
'step 1'
|
||||||
|
event.falseList=['xunyu','xunyou','re_guojia','re_zhangliao','re_xuhuang','yujin_yujin','caohong','jsp_guanyu','liuye','litong','zangba','manchong','hanhaoshihuan','chengyu','caoren'].filter(function(name){
|
||||||
|
if(!Array.isArray(lib.character[name])) return false;
|
||||||
|
lib.character[name][1]='wei';
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
event.trueList=['xunchen','gaolan','sp_zhanghe','sp_xuyou','chenlin','re_liubei','yj_jushou','sp_shenpei','tianfeng','yuantanyuanshang','lvkuanglvxiang','xinpi','guotufengji','chunyuqiong'].filter(function(name){
|
||||||
|
if(!Array.isArray(lib.character[name])) return false;
|
||||||
|
lib.character[name][1]='qun';
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
'step 2'
|
||||||
|
if(game.me.identity!='zhu'){
|
||||||
|
event.choose_me=true;
|
||||||
|
game.me.chooseButton(['请选择你的武将牌',[event[game.me.side+'List'].randomRemove(3),'character']],true);
|
||||||
|
}
|
||||||
|
'step 3'
|
||||||
|
if(event.choose_me) game.me.init(result.links[0]);
|
||||||
|
game.countPlayer(function(current){
|
||||||
|
if(current!=game.me&¤t.identity=='zhong') current.init(event[current.side+'List'].randomRemove(2)[0]);
|
||||||
|
});
|
||||||
|
setTimeout(function(){
|
||||||
|
ui.arena.classList.remove('choose-character');
|
||||||
|
},500);
|
||||||
|
});
|
||||||
|
},
|
||||||
chooseCharacterOL4:function(){
|
chooseCharacterOL4:function(){
|
||||||
var next=game.createEvent('chooseCharacter',false);
|
var next=game.createEvent('chooseCharacter',false);
|
||||||
next.setContent(function(){
|
next.setContent(function(){
|
||||||
|
@ -3833,7 +4078,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
'panzhangmazhong','yufan','liufeng',
|
'panzhangmazhong','yufan','liufeng',
|
||||||
'yj_jushou','caifuren','guyong','zhoucang','sunluban',
|
'yj_jushou','caifuren','guyong','zhoucang','sunluban',
|
||||||
'gongsunyuan','liuchen','xiahoushi','sunxiu',//'quancong',
|
'gongsunyuan','liuchen','xiahoushi','sunxiu',//'quancong',
|
||||||
'guotupangji',
|
'guotufengji',
|
||||||
'liyan',//'sundeng','cenhun','guohuanghou',
|
'liyan',//'sundeng','cenhun','guohuanghou',
|
||||||
'caiyong','wuxian',//'xuecong',
|
'caiyong','wuxian',//'xuecong',
|
||||||
'liuxie','yuejin','caoang','hetaihou','simalang','mayunlu','zhugejin','sp_machao','zhugeke','sp_caoren',
|
'liuxie','yuejin','caoang','hetaihou','simalang','mayunlu','zhugejin','sp_machao','zhugeke','sp_caoren',
|
||||||
|
@ -3975,8 +4220,100 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
tongzhougongji_info:'出牌阶段使用,选择一项:1.摸X张牌(X为你所在势力拥有的龙船至宝数);2.你和队友各摸一张牌',
|
tongzhougongji_info:'出牌阶段使用,选择一项:1.摸X张牌(X为你所在势力拥有的龙船至宝数);2.你和队友各摸一张牌',
|
||||||
lizhengshangyou:'力争上游',
|
lizhengshangyou:'力争上游',
|
||||||
lizhengshangyou_info:'出牌阶段对所有角色使用,若目标角色的势力拥有龙船至宝,其回复1点体力,若目标角色的势力没有龙船至宝,其弃置一张牌',
|
lizhengshangyou_info:'出牌阶段对所有角色使用,若目标角色的势力拥有龙船至宝,其回复1点体力,若目标角色的势力没有龙船至宝,其弃置一张牌',
|
||||||
|
tunliang:'屯粮',
|
||||||
|
tunliang_info:'出牌阶段,对至多三名角色使用。目标角色各摸一张牌。',
|
||||||
|
yuanjun:'援军',
|
||||||
|
yuanjun_info:'出牌阶段,对至多两名已受伤的角色使用。目标角色回复1点体力。',
|
||||||
|
huoshaowuchao:'火烧乌巢',
|
||||||
|
huoshaowuchao_info:'锁定技,本局游戏内造成的无属性伤害均视为火属性。',
|
||||||
|
liangcaokuifa:'粮草匮乏',
|
||||||
|
liangcaokuifa_info:'锁定技,所有角色摸牌阶段的额定摸牌数-1。当一名角色使用的牌结算完成后,若其因此牌造成了伤害,则其摸一张牌。',
|
||||||
|
zhanyanliangzhuwenchou:'斩颜良诛文丑',
|
||||||
|
zhanyanliangzhuwenchou_info:'锁定技,一名角色的回合开始时,其选择一项:视为使用一张不可被【无懈可击】响应的【决斗】,或失去1点体力。',
|
||||||
|
shishengshibai:'十胜十败',
|
||||||
|
shishengshibai_info:'锁定技,一名角色使用牌时,若此牌是整局游戏使用的第整十张牌且此牌不为延时锦囊牌或装备牌,则此牌所有目标角色再次成为此牌的目标角色。',
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
huoshaowuchao:{
|
||||||
|
trigger:{global:'damageBefore'},
|
||||||
|
silent:true,
|
||||||
|
firstDo:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return !lib.linked.contains(event.nature);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.nature='fire';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
liangcaokuifa:{
|
||||||
|
trigger:{player:['useCardAfter','phaseDrawBegin']},
|
||||||
|
silent:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.name=='phaseDraw') return true;
|
||||||
|
return player.getHistory('sourceDamage',function(evt){
|
||||||
|
return evt.card==event.card;
|
||||||
|
}).length>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
if(trigger.name=='phaseDraw') trigger.num--;
|
||||||
|
else player.draw();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
zhanyanliangzhuwenchou:{
|
||||||
|
trigger:{player:'phaseBegin'},
|
||||||
|
silent:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseUseTarget({
|
||||||
|
name:'juedou',
|
||||||
|
isCard:true,
|
||||||
|
storage:{nowuxie:true}
|
||||||
|
},
|
||||||
|
'选择一名角色,视为对其使用【决斗】','或点【取消】失去1点体力');
|
||||||
|
'step 1'
|
||||||
|
if(!result.bool) player.loseHp();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
shishengshibai:{
|
||||||
|
mod:{
|
||||||
|
aiOrder:function(player,card,num){
|
||||||
|
if(_status.shishengshibai&&_status.shishengshibai%10==9){
|
||||||
|
if(['sha','tao','guohe','shunshou','tunliang','wuzhong','juedou','yuanjun'].contains(card.name)) return num+15;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
trigger:{
|
||||||
|
player:['useCard1','useCardToTargeted'],
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
filter:function(event,player,name){
|
||||||
|
if(name=='useCard1') return true;
|
||||||
|
if(!event.parent.shishengshibai||event.targets.length!=event.parent.triggeredTargets4.length) return false;
|
||||||
|
if(!event.targets||!event.targets.length||['delay','equip'].contains(get.type(event.card))) return false;
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
if(event.triggername=='useCard1'){
|
||||||
|
if(!_status.shishengshibai) _status.shishengshibai=0;
|
||||||
|
_status.shishengshibai++;
|
||||||
|
game.broadcastAll(function(num){
|
||||||
|
if(ui.guanduInfo) ui.guanduInfo.innerHTML='当前事件:十胜十败('+num+')';
|
||||||
|
},_status.shishengshibai);
|
||||||
|
if(_status.shishengshibai%10==0) trigger.shishengshibai=true;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
trigger.getParent().targets=trigger.getParent().targets.concat(trigger.targets);
|
||||||
|
trigger.getParent().triggeredTargets4=trigger.getParent().triggeredTargets4.concat(trigger.targets);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
result:{
|
||||||
|
player:function(card,player,target){
|
||||||
|
if(_status.shishengshibai&&_status.shishengshibai%10==9&&card.name=='tiesuo') return 'zerotarget';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
wenji:{
|
wenji:{
|
||||||
trigger:{global:'phaseUseBegin'},
|
trigger:{global:'phaseUseBegin'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
|
@ -5216,6 +5553,60 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
card:{
|
card:{
|
||||||
|
tunliang:{
|
||||||
|
audio:true,
|
||||||
|
fullskin:true,
|
||||||
|
type:'trick',
|
||||||
|
enable:true,
|
||||||
|
selectTarget:[1,3],
|
||||||
|
filterTarget:true,
|
||||||
|
content:function(){
|
||||||
|
target.draw();
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
basic:{
|
||||||
|
order:7.2,
|
||||||
|
useful:4.5,
|
||||||
|
value:9.2
|
||||||
|
},
|
||||||
|
result:{
|
||||||
|
target:1,
|
||||||
|
},
|
||||||
|
tag:{
|
||||||
|
draw:1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
yuanjun:{
|
||||||
|
fullskin:true,
|
||||||
|
type:'trick',
|
||||||
|
selectTarget:[1,2],
|
||||||
|
enable:true,
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
return target!=player&&target.hp<target.maxHp;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
target.recover();
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
basic:{
|
||||||
|
order:function(card,player){
|
||||||
|
if(player.hasSkillTag('pretao')) return 5;
|
||||||
|
return 2;
|
||||||
|
},
|
||||||
|
useful:[6,4],
|
||||||
|
value:[6,4],
|
||||||
|
},
|
||||||
|
result:{
|
||||||
|
target:function(player,target){
|
||||||
|
return 2;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
tag:{
|
||||||
|
recover:1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
zong:{
|
zong:{
|
||||||
fullskin:true,
|
fullskin:true,
|
||||||
type:'basic',
|
type:'basic',
|
||||||
|
@ -5809,7 +6200,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
dieAfter2:function(source){
|
dieAfter2:function(source){
|
||||||
if(_status.connectMode){
|
if(_status.connectMode&&_status.mode!='guandu'){
|
||||||
if(_status.mode=='1v1'||_status.mode=='3v3') return;
|
if(_status.mode=='1v1'||_status.mode=='3v3') return;
|
||||||
else if(_status.mode=='2v2'){
|
else if(_status.mode=='2v2'){
|
||||||
var friend;
|
var friend;
|
||||||
|
@ -5858,16 +6249,17 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(_status.mode=='four'){
|
if(_status.mode=='four'||_status.mode=='guandu'){
|
||||||
if(this.identity=='zhu') return;
|
if(this.identity=='zhu') return;
|
||||||
else{
|
else{
|
||||||
if(source){
|
if(source){
|
||||||
if(source.side==this.side){
|
if(source.side==this.side){
|
||||||
if(source.identity=='zhu'){
|
if(_status.mode=='guandu'||source.identity=='zhu'){
|
||||||
source.discard(source.getCards('he'));
|
source.discard(source.getCards('he'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
if(_status.mode=='guandu') return;
|
||||||
var num1=0,num2=1;
|
var num1=0,num2=1;
|
||||||
for(var i=0;i<game.players.length;i++){
|
for(var i=0;i<game.players.length;i++){
|
||||||
if(game.players[i].side==source.side){
|
if(game.players[i].side==source.side){
|
||||||
|
@ -6022,11 +6414,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
game.over(this.side!=game.me.side);
|
game.over(this.side!=game.me.side);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(_status.mode=='4v4'){
|
else if(_status.mode=='4v4'||_status.mode=='guandu'){
|
||||||
if(this.identity=='zhu'){
|
if(this.identity=='zhu'){
|
||||||
game.over(this.side!=game.me.side);
|
game.over(this.side!=game.me.side);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
if(_status.mode=='guandu'&&source&&source.side!=this.side){
|
||||||
|
var hs=this.getCards('h');
|
||||||
|
if(hs.length) source.gain(hs,this,'giveAuto');
|
||||||
|
}
|
||||||
var side1=[],side2=[];
|
var side1=[],side2=[];
|
||||||
for(var i=0;i<game.players.length;i++){
|
for(var i=0;i<game.players.length;i++){
|
||||||
if(game.players[i].side){
|
if(game.players[i].side){
|
||||||
|
@ -6047,11 +6443,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(_status.mode=='four'){
|
if(_status.mode=='four'||_status.mode=='guandu'){
|
||||||
if(this.identity=='zhu'){
|
if(this.identity=='zhu'){
|
||||||
game.over(this.side!=game.me.side);
|
game.over(this.side!=game.me.side);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
if(_status.mode=='guandu'&&source&&source.side!=this.side){
|
||||||
|
var hs=this.getCards('h');
|
||||||
|
if(hs.length) source.gain(hs,this,'giveAuto');
|
||||||
|
}
|
||||||
var side1=[],side2=[];
|
var side1=[],side2=[];
|
||||||
for(var i=0;i<game.players.length;i++){
|
for(var i=0;i<game.players.length;i++){
|
||||||
if(game.players[i].side){
|
if(game.players[i].side){
|
||||||
|
@ -6225,10 +6625,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
if(from.side==to.side){
|
if(from.side==to.side){
|
||||||
if(to.identity=='zhu'){
|
if(to.identity=='zhu'){
|
||||||
if(_status.connectMode){
|
if(_status.connectMode){
|
||||||
if(_status.mode=='4v4') return 7;
|
if(_status.mode=='4v4'||_status.mode=='guandu') return 7;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(lib.storage.main_zhu||_status.mode=='four') return 7;
|
if(lib.storage.main_zhu||_status.mode=='four'||_status.mode=='guandu') return 7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 6;
|
return 6;
|
||||||
|
@ -6308,10 +6708,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
else{
|
else{
|
||||||
if(to.identity=='zhu'){
|
if(to.identity=='zhu'){
|
||||||
if(_status.connectMode){
|
if(_status.connectMode){
|
||||||
if(_status.mode=='4v4') return -10;
|
if(_status.mode=='4v4'||_status.mode=='guandu') return -10;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(lib.storage.main_zhu||_status.mode=='four') return -10;
|
if(lib.storage.main_zhu||_status.mode=='four'||_status.mode=='guandu') return -10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return -6;
|
return -6;
|
||||||
|
|