v1.9.115.3
|
@ -681,7 +681,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
zhanxiang:'战象',
|
zhanxiang:'战象',
|
||||||
zhanxiang_info:'锁定技。当你成为〖赠予〗的目标后,你将此次赠予的效果改为“将赠予牌移动至弃牌堆”。',
|
zhanxiang_info:'锁定技。当你成为〖赠予〗的目标后,你将此次赠予的效果改为“将赠予牌移动至弃牌堆”。',
|
||||||
xinge:'信鸽',
|
xinge:'信鸽',
|
||||||
xinge_info:'出牌阶段限一次。你可以将一张牌交给一名其他角色。',
|
xinge_info:'出牌阶段限一次。你可以将一张手牌交给一名其他角色。',
|
||||||
xinge_append:'<span class="text" style="font-family: yuanli">咕咕咕。</span>',
|
xinge_append:'<span class="text" style="font-family: yuanli">咕咕咕。</span>',
|
||||||
|
|
||||||
_yongjian_zengyu:'赠予',
|
_yongjian_zengyu:'赠予',
|
||||||
|
|
160
character/diy.js
|
@ -98,6 +98,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ns_zanghong:['male','qun',4,['nsshimeng']],
|
ns_zanghong:['male','qun',4,['nsshimeng']],
|
||||||
ns_ruanji:['male','wei',3,['nsshizui','nsxiaoye']],
|
ns_ruanji:['male','wei',3,['nsshizui','nsxiaoye']],
|
||||||
ns_limi:['male','jin',3,['nstuilun']],
|
ns_limi:['male','jin',3,['nstuilun']],
|
||||||
|
ns_zhonglimu:['male','wu',4,['nskuanhuai','nsdingbian']],
|
||||||
|
|
||||||
ns_zhangwei:['female','shu',3,['nsqiyue','nsxuezhu']],
|
ns_zhangwei:['female','shu',3,['nsqiyue','nsxuezhu']],
|
||||||
diy_wenyang:['male','wei','4/6',['lvli','choujue']],
|
diy_wenyang:['male','wei','4/6',['lvli','choujue']],
|
||||||
|
@ -199,7 +200,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
"ns_huangchengyan","ns_sunchensunjun","ns_yuanxi","ns_caoshuang"],
|
"ns_huangchengyan","ns_sunchensunjun","ns_yuanxi","ns_caoshuang"],
|
||||||
diy_yijiang2:["key_yuuki","key_tenzen","key_kyouko","key_kotarou","key_kyou",
|
diy_yijiang2:["key_yuuki","key_tenzen","key_kyouko","key_kotarou","key_kyou",
|
||||||
"ns_chentai","ns_huangwudie","ns_sunyi","ns_zhangning","ns_yanghu"],
|
"ns_chentai","ns_huangwudie","ns_sunyi","ns_zhangning","ns_yanghu"],
|
||||||
diy_yijiang3:['ns_ruanji','ns_zanghong','ns_limi'],
|
diy_yijiang3:['ns_ruanji','ns_zanghong','ns_limi','ns_zhonglimu'],
|
||||||
diy_tieba:["ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_luyusheng"],
|
diy_tieba:["ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_luyusheng"],
|
||||||
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao","ns_chengpu"],
|
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao","ns_chengpu"],
|
||||||
diy_xushi:["diy_feishi","diy_hanlong","diy_liufu","diy_liuyan","diy_liuzan","diy_tianyu","diy_xizhenxihong","diy_yangyi","diy_zaozhirenjun"],
|
diy_xushi:["diy_feishi","diy_hanlong","diy_liufu","diy_liuyan","diy_liuzan","diy_tianyu","diy_xizhenxihong","diy_yangyi","diy_zaozhirenjun"],
|
||||||
|
@ -314,6 +315,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ns_ruanji:'#g伯约的崛起',
|
ns_ruanji:'#g伯约的崛起',
|
||||||
ns_zanghong:'#g阿七',
|
ns_zanghong:'#g阿七',
|
||||||
ns_limi:'#g-心若困兽-',
|
ns_limi:'#g-心若困兽-',
|
||||||
|
ns_zhonglimu:'#gJG赛文♠7',
|
||||||
|
|
||||||
ns_luyusheng:'#g猫咪大院 - 魚と水',
|
ns_luyusheng:'#g猫咪大院 - 魚と水',
|
||||||
ns_caimao:'#gP尔号玩家◆',
|
ns_caimao:'#gP尔号玩家◆',
|
||||||
|
@ -521,6 +523,157 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
key_lucia:['key_shizuru'],
|
key_lucia:['key_shizuru'],
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//钟离牧
|
||||||
|
nskuanhuai:{
|
||||||
|
trigger:{player:'phaseUseBegin'},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var card=get.discardPile(function(card){
|
||||||
|
return get.type(card)!='basic';
|
||||||
|
});
|
||||||
|
if(card) player.gain(card,'gain2');
|
||||||
|
'step 1'
|
||||||
|
player.addTempSkill('nskuanhuai_blocker','phaseUseAfter');
|
||||||
|
player.addTempSkill('nskuanhuai_effect');
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
blocker:{
|
||||||
|
charlotte:true,
|
||||||
|
mod:{
|
||||||
|
cardEnabled:function(card){
|
||||||
|
if(get.type(card)=='basic') return false;
|
||||||
|
},
|
||||||
|
cardSavable:function(card){
|
||||||
|
if(get.type(card)=='basic') return false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
effect:{
|
||||||
|
trigger:{player:'phaseDiscardEnd'},
|
||||||
|
charlotte:true,
|
||||||
|
direct:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.hasHistory('lose',function(evt){
|
||||||
|
if(evt.type!='discard'||evt.getParent('phaseDiscard')!=event) return false;
|
||||||
|
for(var i of evt.cards2){
|
||||||
|
if(get.type(i,false)=='basic'&&get.position(i,true)=='d'&&player.hasUseTarget(i)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var cards=[];
|
||||||
|
player.getHistory('lose',function(evt){
|
||||||
|
if(evt.type!='discard'||evt.getParent('phaseDiscard')!=trigger) return false;
|
||||||
|
for(var i of evt.cards2){
|
||||||
|
if(get.type(i,false)=='basic'&&get.position(i,true)=='d') cards.push(i);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
event.cards=cards;
|
||||||
|
'step 1'
|
||||||
|
var cards2=event.cards.filter(function(i){
|
||||||
|
return get.position(i,true)=='d'&&player.hasUseTarget(i);
|
||||||
|
});
|
||||||
|
if(cards2.length){
|
||||||
|
player.chooseButton(['宽怀:是否使用其中一张牌?',cards2]);
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
var card=result.links[0];
|
||||||
|
cards.remove(card);
|
||||||
|
player.chooseUseTarget(card,true);
|
||||||
|
if(cards.length>0) event.goto(1);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
nsdingbian:{
|
||||||
|
trigger:{player:'useCard'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(player!=_status.currentPhase) return false;
|
||||||
|
return get.type(event.card)!='basic';
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.addTempSkill('nsdingbian_mark');
|
||||||
|
player.addMark('nsdingbian_mark',1,false);
|
||||||
|
var storage=player.getStorage('nsdingbian_ignore');
|
||||||
|
var goon=false;
|
||||||
|
for(var i of lib.inpile){
|
||||||
|
if(get.type(i)=='basic'&&!storage.contains(i)){
|
||||||
|
goon=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(goon) player.chooseControl().set('choiceList',[
|
||||||
|
'从牌堆中获得一张基本牌',
|
||||||
|
'令一种基本牌于本回合内不计入手牌上限',
|
||||||
|
]).set('prompt','定边:请选择一项').set('ai',function(){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var list=['tao','shan'],list2=player.getStorage('nsdingbian_ignore');
|
||||||
|
list.removeArray(list2);
|
||||||
|
if(!list.length) return 0;
|
||||||
|
var num1=player.countCards('hs',function(card){
|
||||||
|
return get.type(card)!='basic'&&player.hasValueTarget(card,null,true);
|
||||||
|
}),num2=player.getHandcardLimit();
|
||||||
|
if(player.countCards('h',list)<=num2-num1) return 0;
|
||||||
|
return 1;
|
||||||
|
});
|
||||||
|
else event._result={index:0};
|
||||||
|
'step 1'
|
||||||
|
if(result.index==0){
|
||||||
|
var card=get.cardPile2(function(card){
|
||||||
|
return get.type(card,false)=='basic';
|
||||||
|
});
|
||||||
|
if(card) player.gain(card,'gain2');
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
var list=[],storage=player.getStorage('nsdingbian_ignore');
|
||||||
|
for(var i of lib.inpile){
|
||||||
|
if(get.type(i)=='basic'&&!storage.contains(i)){
|
||||||
|
list.push(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.chooseButton(['令一种基本牌于本回合内不计入手牌上限',[list,'vcard']],true).set('ai',function(button){
|
||||||
|
var name=button.link[2],player=_status.event.player;
|
||||||
|
if(name=='sha') return 0;
|
||||||
|
var cards=player.getCards('h',name);
|
||||||
|
if(!cards.length) return 0;
|
||||||
|
return get.value(cards,player);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
'step 2'
|
||||||
|
player.markAuto('nsdingbian_ignore',[result.links[0][2]]);
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
mark:{
|
||||||
|
onremove:function(player){
|
||||||
|
delete player.storage.nsdingbian_mark;
|
||||||
|
delete player.storage.nsdingbian_ignore;
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
maxHandcard:(player,num)=>num-player.countMark('nsdingbian_mark'),
|
||||||
|
ignoredHandcard:function(card,player){
|
||||||
|
if(player.getStorage('nsdingbian_ignore').contains(get.name(card,player))){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cardDiscardable:function(card,player,name){
|
||||||
|
if(name=='phaseDiscard'&&player.getStorage('nsdingbian_ignore').contains(get.name(card,player))){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
intro:{content:'手牌上限-#'},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
//李密
|
//李密
|
||||||
nstuilun:{
|
nstuilun:{
|
||||||
trigger:{player:'phaseJieshuBegin'},
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
|
@ -16452,6 +16605,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ns_limi:'李密',
|
ns_limi:'李密',
|
||||||
nstuilun:'退论',
|
nstuilun:'退论',
|
||||||
nstuilun_info:'结束阶段,你可以失去任意点体力(至多失去至1点)并弃置任意张手牌(至多弃置至一张)。若如此做,你获得如下效果直到你下回合开始:其他角色的回合开始时,若你的体力值小于该角色,则你可以令一名角色回复或失去1点体力;若你的手牌数小于该角色,则你可以令一名角色摸一张牌或弃置一张牌。',
|
nstuilun_info:'结束阶段,你可以失去任意点体力(至多失去至1点)并弃置任意张手牌(至多弃置至一张)。若如此做,你获得如下效果直到你下回合开始:其他角色的回合开始时,若你的体力值小于该角色,则你可以令一名角色回复或失去1点体力;若你的手牌数小于该角色,则你可以令一名角色摸一张牌或弃置一张牌。',
|
||||||
|
ns_zhonglimu:'钟离牧',
|
||||||
|
nskuanhuai:'宽怀',
|
||||||
|
nskuanhuai_info:'出牌阶段开始时,你可以从弃牌堆中获得一张非基本牌。若如此做:你本阶段内不能使用基本牌,且本回合的弃牌阶段结束时,你可以依次使用本阶段内弃置的基本牌。',
|
||||||
|
nsdingbian:'定边',
|
||||||
|
nsdingbian_info:'锁定技。当你于回合内使用锦囊牌或装备牌后,你令自己本回合的手牌上限-1且选择一项:⒈从牌堆获得一张基本牌。⒉令一种基本牌于本回合内不计入手牌上限。',
|
||||||
|
|
||||||
junk_zhangrang:'四花张让',
|
junk_zhangrang:'四花张让',
|
||||||
junktaoluan:'滔乱',
|
junktaoluan:'滔乱',
|
||||||
|
|
|
@ -17,10 +17,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
extra_ol:['ol_zhangliao','shen_caopi','shen_zhenji','shen_sunquan'],
|
extra_ol:['ol_zhangliao','shen_caopi','shen_zhenji','shen_sunquan'],
|
||||||
extra_mobilezhi:['shen_guojia','shen_xunyu'],
|
extra_mobilezhi:['shen_guojia','shen_xunyu'],
|
||||||
extra_mobilexin:['shen_taishici','shen_sunce'],
|
extra_mobilexin:['shen_taishici','shen_sunce'],
|
||||||
|
extra_tw:['tw_shen_guanyu'],
|
||||||
extra_offline:['shen_diaochan','boss_zhaoyun'],
|
extra_offline:['shen_diaochan','boss_zhaoyun'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
tw_shen_guanyu:['male','shen',4,['twwushen','twwuhun'],['shu']],
|
||||||
shen_machao:['male','shen',4,['shouli','hengwu'],['shu']],
|
shen_machao:['male','shen',4,['shouli','hengwu'],['shu']],
|
||||||
shen_sunquan:['male','shen',4,['dili','yuheng'],['wei']],
|
shen_sunquan:['male','shen',4,['dili','yuheng'],['wei']],
|
||||||
shen_jiangwei:['male','shen',4,['jiufa','tianren','pingxiang'],['shen']],
|
shen_jiangwei:['male','shen',4,['jiufa','tianren','pingxiang'],['shen']],
|
||||||
|
@ -60,6 +62,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
characterReplace:{
|
characterReplace:{
|
||||||
shen_zhangliao:['shen_zhangliao','ol_zhangliao'],
|
shen_zhangliao:['shen_zhangliao','ol_zhangliao'],
|
||||||
shen_zhaoyun:['shen_zhaoyun','boss_zhaoyun'],
|
shen_zhaoyun:['shen_zhaoyun','boss_zhaoyun'],
|
||||||
|
shen_guanyu:['shen_guanyu','tw_shen_guanyu'],
|
||||||
},
|
},
|
||||||
characterFilter:{
|
characterFilter:{
|
||||||
shen_diaochan:function(mode){
|
shen_diaochan:function(mode){
|
||||||
|
@ -67,6 +70,142 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
twwushen:{
|
||||||
|
mod:{
|
||||||
|
cardname:function(card,player,name){
|
||||||
|
if(get.suit(card)=='heart') return 'sha';
|
||||||
|
},
|
||||||
|
cardnature:function(card,player){
|
||||||
|
if(get.suit(card)=='heart') return false;
|
||||||
|
},
|
||||||
|
targetInRange:function(card){
|
||||||
|
if(get.suit(card)=='heart') return true;
|
||||||
|
},
|
||||||
|
cardUsable:function(card){
|
||||||
|
if(card.name=='sha'&&get.suit(card)=='heart') return Infinity;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
audio:'wushen',
|
||||||
|
trigger:{player:'useCard2'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.card.name=='sha'&&(get.suit(event.card)=='heart'||!player.hasSkill('twwushen_phase',null,null,false));
|
||||||
|
},
|
||||||
|
logTarget:function(event,player){
|
||||||
|
if(get.suit(event.card)=='heart'){
|
||||||
|
var targets=game.filterPlayer(function(current){
|
||||||
|
return !event.targets.contains(current)&¤t.hasMark('twwuhun')&&lib.filter.targetEnabled(event.card,player,current);
|
||||||
|
});
|
||||||
|
if(targets.length){
|
||||||
|
return targets.sortBySeat();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
if(!player.hasSkill('twwushen_phase',null,null,false)){
|
||||||
|
trigger.directHit.addArray(game.players);
|
||||||
|
player.addTempSkill('twwushen_phase',['phaseZhunbeiAfter','phaseJudgeAfter','phaseDrawAfter','phaseUseAfter','phaseDiscardAfter','phaseJieshuAfter'])
|
||||||
|
}
|
||||||
|
if(get.suit(trigger.card)=='heart'){
|
||||||
|
if(trigger.addCount!==false){
|
||||||
|
trigger.addCount=false;
|
||||||
|
if(player.stat[player.stat.length-1].card.sha>0){
|
||||||
|
player.stat[player.stat.length-1].card.sha--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var targets=game.filterPlayer(function(current){
|
||||||
|
return !trigger.targets.contains(current)&¤t.hasMark('twwuhun')&&lib.filter.targetEnabled(trigger.card,player,current);
|
||||||
|
});
|
||||||
|
if(targets.length){
|
||||||
|
trigger.targets.addArray(targets.sortBySeat());
|
||||||
|
game.log(targets,'也成为了',trigger.card,'的目标');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
directHit_ai:true,
|
||||||
|
skillTagFilter:function(player,tag,arg){
|
||||||
|
return arg.card.name=='sha'&&!player.hasSkill('twwushen_phase',null,null,false);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
subSkill:{phase:{charlotte:true}},
|
||||||
|
shaRelated:true,
|
||||||
|
},
|
||||||
|
twwuhun:{
|
||||||
|
trigger:{player:'die'},
|
||||||
|
forceDie:true,
|
||||||
|
skillAnimation:true,
|
||||||
|
animationColor:'soil',
|
||||||
|
locked:true,
|
||||||
|
check:function(event,player){
|
||||||
|
return game.hasPlayer(function(current){
|
||||||
|
return current!=player&¤t.hasMark('twwuhun')&&get.attitude(player,current)<0;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.judge(function(card){
|
||||||
|
var name=get.name(card,false);
|
||||||
|
if(name=='tao'||name=='taoyuan') return -25;
|
||||||
|
return 15;
|
||||||
|
}).set('forceDie',true).judge2=function(result){
|
||||||
|
return result.bool;
|
||||||
|
};
|
||||||
|
'step 1'
|
||||||
|
var num=game.countPlayer(function(current){
|
||||||
|
return current!=player&¤t.hasMark('twwuhun');
|
||||||
|
});
|
||||||
|
if(result.bool&&num>0){
|
||||||
|
player.chooseTarget('请选择【武魂】的目标','选择至少一名拥有“梦魇”标记的角色。令这些角色各自失去X点体力(X为其“梦魇”标记数)',true,[1,num],function(card,player,target){
|
||||||
|
return target!=player&&target.hasMark('twwuhun');
|
||||||
|
}).set('forceDie',true).set('ai',function(target){
|
||||||
|
return -get.attitude(_status.event.player,target);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 2'
|
||||||
|
var targets=result.targets.sortBySeat();
|
||||||
|
player.line(targets,'fire');
|
||||||
|
event.targets=targets;
|
||||||
|
'step 3'
|
||||||
|
var target=targets.shift();
|
||||||
|
var num=target.countMark('twwuhun');
|
||||||
|
if(num>0) target.loseHp(num);
|
||||||
|
if(targets.length>0) event.redo();
|
||||||
|
},
|
||||||
|
marktext:'魇',
|
||||||
|
intro:{
|
||||||
|
name:'梦魇',
|
||||||
|
content:'mark',
|
||||||
|
onunmark:true,
|
||||||
|
},
|
||||||
|
group:'twwuhun_gain',
|
||||||
|
subSkill:{
|
||||||
|
gain:{
|
||||||
|
trigger:{
|
||||||
|
player:'damageEnd',
|
||||||
|
source:'damageSource',
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player,name){
|
||||||
|
if(event.player==event.source) return false;
|
||||||
|
var target=lib.skill.twwuhun_gain.logTarget(event,player);
|
||||||
|
if(!target||!target.isAlive()) return false;
|
||||||
|
return name=='damageEnd'||target.hasMark('twwuhun');
|
||||||
|
},
|
||||||
|
logTarget:function(event,player){
|
||||||
|
if(player==event.player) return event.source;
|
||||||
|
return event.player;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var target=lib.skill.twwuhun_gain.logTarget(trigger,player);
|
||||||
|
target.addMark('twwuhun',player==trigger.source?1:trigger.num);
|
||||||
|
game.delayx();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
shouli:{
|
shouli:{
|
||||||
audio:2,
|
audio:2,
|
||||||
mod:{
|
mod:{
|
||||||
|
@ -799,7 +938,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
jiufa:{
|
jiufa:{
|
||||||
audio:2,
|
audio:2,
|
||||||
trigger:{player:'useCardAfter'},
|
trigger:{player:['useCardAfter','respondAfter']},
|
||||||
frequent:true,
|
frequent:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.jiufa_counted&&player.getStorage('jiufa').length>=9;
|
return event.jiufa_counted&&player.getStorage('jiufa').length>=9;
|
||||||
|
@ -5965,7 +6104,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
tianxing_info:'觉醒技,准备阶段,若你武将牌上的「储」数不小于3,则你减1点体力上限并获得所有「储」,然后失去技能〖储元〗,选择获得以下技能中的一个:〖仁德〗/〖制衡〗/〖乱击〗/〖行动〗',
|
tianxing_info:'觉醒技,准备阶段,若你武将牌上的「储」数不小于3,则你减1点体力上限并获得所有「储」,然后失去技能〖储元〗,选择获得以下技能中的一个:〖仁德〗/〖制衡〗/〖乱击〗/〖行动〗',
|
||||||
shen_zhenji:'神甄宓',
|
shen_zhenji:'神甄宓',
|
||||||
shenfu:'神赋',
|
shenfu:'神赋',
|
||||||
shenfu_info:'回合结束时,若你的手牌数为:奇数,你可对一名其他角色造成1点伤害。若其死亡,你可重复此流程。偶数,你可选择一名角色,你令其摸一张牌或弃置一张手牌。若其手牌数等于体力值,你可重复此流程。',
|
shenfu_info:'回合结束时,若你的手牌数为:奇数,你可对一名其他角色造成1点雷属性伤害。若其死亡,你可重复此流程。偶数,你可选择一名角色,你令其摸一张牌或弃置一张手牌。若其手牌数等于体力值,你可重复此流程。',
|
||||||
qixian:'七弦',
|
qixian:'七弦',
|
||||||
qixian_info:'锁定技,你的手牌上限视为7。',
|
qixian_info:'锁定技,你的手牌上限视为7。',
|
||||||
caopi_xingdong:'行动',
|
caopi_xingdong:'行动',
|
||||||
|
@ -6024,7 +6163,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
pinghe_info:'锁定技。①你的手牌上限基数等于你已损失的体力值。②当你受到其他角色造成的伤害时,若你有牌且你的体力上限大于1,则你防止此伤害,减一点体力上限并将一张手牌交给一名其他角色。然后若你拥有〖英霸〗,则伤害来源获得一个“平定”标记。',
|
pinghe_info:'锁定技。①你的手牌上限基数等于你已损失的体力值。②当你受到其他角色造成的伤害时,若你有牌且你的体力上限大于1,则你防止此伤害,减一点体力上限并将一张手牌交给一名其他角色。然后若你拥有〖英霸〗,则伤害来源获得一个“平定”标记。',
|
||||||
shen_jiangwei:'神姜维',
|
shen_jiangwei:'神姜维',
|
||||||
jiufa:'九伐',
|
jiufa:'九伐',
|
||||||
jiufa_info:'①当你声明使用牌时,你记录此牌的牌名。②当你使用牌结算结束后,若你的〖九伐〗记录中包含至少⑨种不同的牌名,则你可以展示牌堆顶的⑨张牌,选择并获得其中任意张点数各不相同且{这九张牌中存在未被选择且和已选择的牌点数相同}的牌,清除所有的记录,将其余牌置入弃牌堆。',
|
jiufa_info:'①当你声明使用牌时,你记录此牌的牌名。②当你使用或打出的牌结算结束后,若你的〖九伐〗记录中包含至少⑨种不同的牌名,则你可以展示牌堆顶的⑨张牌,选择并获得其中任意张点数各不相同且{这九张牌中存在未被选择且和已选择的牌点数相同}的牌,清除所有的记录,将其余牌置入弃牌堆。',
|
||||||
tianren:'天任',
|
tianren:'天任',
|
||||||
tianren_info:'锁定技。①当有一张基本牌或普通锦囊牌不因使用而进入弃牌堆后,你获得一枚“天任”标记。②当你获得“天任”标记或体力上限变化后,若你的“天任”数不小于X,则你移去X枚“天任”,加1点体力上限并摸两张牌(X为你的体力上限)。',
|
tianren_info:'锁定技。①当有一张基本牌或普通锦囊牌不因使用而进入弃牌堆后,你获得一枚“天任”标记。②当你获得“天任”标记或体力上限变化后,若你的“天任”数不小于X,则你移去X枚“天任”,加1点体力上限并摸两张牌(X为你的体力上限)。',
|
||||||
pingxiang:'平襄',
|
pingxiang:'平襄',
|
||||||
|
@ -6082,6 +6221,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
hina_shenshi_info:'神势力技。出牌阶段开始时/结束时,你可摸两张牌,然后将其中一张牌置于牌堆顶。你以此法获得的牌视为拥有全部应变效果,且可以无条件发动。',
|
hina_shenshi_info:'神势力技。出牌阶段开始时/结束时,你可摸两张牌,然后将其中一张牌置于牌堆顶。你以此法获得的牌视为拥有全部应变效果,且可以无条件发动。',
|
||||||
hina_xingzhi:'幸凪',
|
hina_xingzhi:'幸凪',
|
||||||
hina_xingzhi_info:'键势力技。每回合限一次,你可以通过“助战”触发一张牌的全部应变效果,且响应助战的角色摸两张牌。',
|
hina_xingzhi_info:'键势力技。每回合限一次,你可以通过“助战”触发一张牌的全部应变效果,且响应助战的角色摸两张牌。',
|
||||||
|
tw_shen_guanyu:'TW神关羽',
|
||||||
|
twwushen:'武神',
|
||||||
|
twwushen_info:'锁定技。①你的♥手牌均视为普【杀】。②你于每阶段使用的第一张【杀】不可被响应。③你使用♥【杀】无距离和次数限制。④当你使用♥【杀】选择目标后,你令所有拥有“梦魇”标记的角色均成为此【杀】的目标。',
|
||||||
|
twwuhun:'武魂',
|
||||||
|
twwuhun_info:'锁定技。①当你受到其他角色造成的1点伤害后,你令伤害来源获得1枚“梦魇”标记。②当你对有“梦魇”标记的其他角色造成伤害后,你令其获得一枚“梦魇”标记。③当你死亡时,你可进行判定。若结果不为【桃】或【桃园结义】,则你选择至少一名拥有“梦魇”标记的角色。令这些角色各自失去X点体力(X为其“梦魇”标记数)。',
|
||||||
|
|
||||||
extra_feng:'神话再临·风',
|
extra_feng:'神话再临·风',
|
||||||
extra_huo:'神话再临·火',
|
extra_huo:'神话再临·火',
|
||||||
|
@ -6095,6 +6239,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
extra_mobilexin:'始计篇·信',
|
extra_mobilexin:'始计篇·信',
|
||||||
extra_offline:'神话再临·线下',
|
extra_offline:'神话再临·线下',
|
||||||
extra_decade:'十周年服神将',
|
extra_decade:'十周年服神将',
|
||||||
|
extra_tw:'海外服神将',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -16368,6 +16368,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
gaolan:['dc_gaolan','gaolan','sp_gaolan'],
|
gaolan:['dc_gaolan','gaolan','sp_gaolan'],
|
||||||
cuiyan:['sp_cuiyan','cuiyan'],
|
cuiyan:['sp_cuiyan','cuiyan'],
|
||||||
wujing:['tw_wujing','wujing'],
|
wujing:['tw_wujing','wujing'],
|
||||||
|
sunru:['dc_sunru','sunru'],
|
||||||
|
zhouchu:['jin_zhouchu','zhouchu'],
|
||||||
},
|
},
|
||||||
translate:{
|
translate:{
|
||||||
liuzan:'手杀留赞',
|
liuzan:'手杀留赞',
|
||||||
|
@ -16860,7 +16862,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
xunyi2:'殉义',
|
xunyi2:'殉义',
|
||||||
xunyi3:'殉义',
|
xunyi3:'殉义',
|
||||||
xunyi_info:'游戏开始时,或当上一个拥有“殉义”效果的角色死亡后,你可以选择一名角色获得如下效果:当其/你对二者之外的角色造成伤害后,你/其摸一张牌;当其/你受到二者之外的角色造成的伤害后,你/其弃置一张牌。',
|
xunyi_info:'游戏开始时,或当上一个拥有“殉义”效果的角色死亡后,你可以选择一名角色获得如下效果:当其/你对二者之外的角色造成伤害后,你/其摸一张牌;当其/你受到二者之外的角色造成的伤害后,你/其弃置一张牌。',
|
||||||
zhouchu:'周处',
|
zhouchu:'手杀周处',
|
||||||
xianghai:'乡害',
|
xianghai:'乡害',
|
||||||
xianghai_info:'锁定技,其他角色的手牌上限-1。你手牌区的装备牌均视为【酒】。',
|
xianghai_info:'锁定技,其他角色的手牌上限-1。你手牌区的装备牌均视为【酒】。',
|
||||||
chuhai:'除害',
|
chuhai:'除害',
|
||||||
|
|
|
@ -271,6 +271,7 @@ window.noname_character_rank={
|
||||||
'guanning',
|
'guanning',
|
||||||
'ol_puyuan',
|
'ol_puyuan',
|
||||||
'ns_limi',
|
'ns_limi',
|
||||||
|
'jin_zhouchu',
|
||||||
'key_misuzu',
|
'key_misuzu',
|
||||||
'key_sunohara',
|
'key_sunohara',
|
||||||
'key_umi',
|
'key_umi',
|
||||||
|
@ -521,6 +522,10 @@ window.noname_character_rank={
|
||||||
'dc_gongsunzan',
|
'dc_gongsunzan',
|
||||||
'ol_xunyu',
|
'ol_xunyu',
|
||||||
'zhangxuan',
|
'zhangxuan',
|
||||||
|
'tw_shenguanyu',
|
||||||
|
'dc_sunru',
|
||||||
|
'dc_wangchang',
|
||||||
|
'fengfang',
|
||||||
],
|
],
|
||||||
bp:[
|
bp:[
|
||||||
'chess_diaochan',
|
'chess_diaochan',
|
||||||
|
@ -795,6 +800,8 @@ window.noname_character_rank={
|
||||||
'dc_yanghu',
|
'dc_yanghu',
|
||||||
'dc_gongsunzan',
|
'dc_gongsunzan',
|
||||||
'caohua',
|
'caohua',
|
||||||
|
'zhaoang',
|
||||||
|
'ns_zhonglimu',
|
||||||
],
|
],
|
||||||
b:[
|
b:[
|
||||||
'diy_feishi',
|
'diy_feishi',
|
||||||
|
@ -1030,6 +1037,8 @@ window.noname_character_rank={
|
||||||
'dc_huangzu',
|
'dc_huangzu',
|
||||||
'dc_liuyu',
|
'dc_liuyu',
|
||||||
'qinyilu',
|
'qinyilu',
|
||||||
|
'zhaoyǎn',
|
||||||
|
'zhangxun',
|
||||||
],
|
],
|
||||||
bm:[
|
bm:[
|
||||||
'diy_xizhenxihong',
|
'diy_xizhenxihong',
|
||||||
|
@ -1385,6 +1394,7 @@ window.noname_character_rank={
|
||||||
'sb_huangzhong',
|
'sb_huangzhong',
|
||||||
'shen_sunquan',
|
'shen_sunquan',
|
||||||
'shen_machao',
|
'shen_machao',
|
||||||
|
'tw_shen_guanyu',
|
||||||
'key_tomoya',
|
'key_tomoya',
|
||||||
'key_masato',
|
'key_masato',
|
||||||
'key_shiorimiyuki',
|
'key_shiorimiyuki',
|
||||||
|
@ -1585,6 +1595,8 @@ window.noname_character_rank={
|
||||||
'caohua',
|
'caohua',
|
||||||
'ns_limi',
|
'ns_limi',
|
||||||
'ol_xunyu',
|
'ol_xunyu',
|
||||||
|
'ns_zhonglimu',
|
||||||
|
'dc_sunru',
|
||||||
'key_kano',
|
'key_kano',
|
||||||
'key_haruko',
|
'key_haruko',
|
||||||
'key_akiko',
|
'key_akiko',
|
||||||
|
@ -1991,6 +2003,9 @@ window.noname_character_rank={
|
||||||
're_liuchen',
|
're_liuchen',
|
||||||
'dc_liuyu',
|
'dc_liuyu',
|
||||||
'qinyilu',
|
'qinyilu',
|
||||||
|
'dc_jiling',
|
||||||
|
'dc_wangchang',
|
||||||
|
'jin_zhouchu',
|
||||||
],
|
],
|
||||||
junk:[
|
junk:[
|
||||||
'sunshao',
|
'sunshao',
|
||||||
|
|
|
@ -263,7 +263,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var mod2=game.checkMod(hs[i],player,'unchanged','cardEnabled2',player);
|
var mod2=game.checkMod(hs[i],player,'unchanged','cardEnabled2',player);
|
||||||
if(mod2===false) return false;
|
if(mod2===false) return false;
|
||||||
}
|
}
|
||||||
return true;
|
return event.filterCard(get.autoViewAs({name:'juedou'},hs))
|
||||||
},
|
},
|
||||||
viewAs:{name:'juedou'},
|
viewAs:{name:'juedou'},
|
||||||
onuse:function(links,player){
|
onuse:function(links,player){
|
||||||
|
@ -3330,9 +3330,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
direct:true,
|
direct:true,
|
||||||
content:function (){
|
content:function (){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.chooseTarget(get.prompt2('decadezhenjun')).ai=function(target){
|
player.chooseTarget(get.prompt2('decadezhenjun'),function(card,player,target){
|
||||||
|
return target.countCards('he')>0;
|
||||||
|
}).set('ai',function(target){
|
||||||
return -get.attitude(_status.event.player,target)*(target.countCards('e')+1);
|
return -get.attitude(_status.event.player,target)*(target.countCards('e')+1);
|
||||||
};
|
});
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var target=result.targets[0];
|
var target=result.targets[0];
|
||||||
|
|
|
@ -1290,7 +1290,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"nzry_juzhanx":{
|
nzry_juzhanx:{
|
||||||
mod:{
|
mod:{
|
||||||
targetEnabled:function(card,player,target){
|
targetEnabled:function(card,player,target){
|
||||||
if(player.hasSkill('nzry_juzhany')) return false;
|
if(player.hasSkill('nzry_juzhany')) return false;
|
||||||
|
@ -1298,14 +1298,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
nzry_juzhany:{},
|
nzry_juzhany:{},
|
||||||
"nzry_feijun":{
|
nzry_feijun:{
|
||||||
init:function(player){
|
|
||||||
player.storage.nzry_feijun=[];
|
|
||||||
},
|
|
||||||
marktext:"飞",
|
|
||||||
intro:{
|
intro:{
|
||||||
content:function(storage){
|
content:function(storage){
|
||||||
if(!storage.length) return '尚未发动';
|
if(!storage||!storage.length) return '尚未发动';
|
||||||
var str=get.translation(storage);
|
var str=get.translation(storage);
|
||||||
return '已对'+str+'发动过〖飞军〗';
|
return '已对'+str+'发动过〖飞军〗';
|
||||||
},
|
},
|
||||||
|
@ -1316,7 +1312,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
position:"he",
|
position:"he",
|
||||||
audio:2,
|
audio:2,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return game.countPlayer(function(current){return current.countCards('h')>=player.countCards('h')})>0||game.countPlayer(function(current){return current.countCards('e')>player.countCards('e')})>0;
|
return game.hasPlayer(function(current){
|
||||||
|
return current.countCards('h')>=player.countCards('h');
|
||||||
|
})||game.hasPlayer(function(current){
|
||||||
|
return current.countCards('e')>=player.countCards('e');
|
||||||
|
})>0;
|
||||||
},
|
},
|
||||||
filterCard:true,
|
filterCard:true,
|
||||||
check:function(card){
|
check:function(card){
|
||||||
|
@ -1325,60 +1325,65 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var list=[];
|
var list=[];
|
||||||
if(game.countPlayer(function(current){return current.countCards('h')>player.countCards('h')})>0) list.push('令一名手牌数大于你的角色交给你一张牌');
|
if(game.hasPlayer(function(current){
|
||||||
if(game.countPlayer(function(current){return current.countCards('e')>player.countCards('e')})>0) list.push('令一名装备区里牌数大于你的角色弃置一张装备牌');
|
return current.countCards('h')>player.countCards('h');
|
||||||
|
})) list.push('令一名手牌数大于你的角色交给你一张牌');
|
||||||
|
if(game.hasPlayer(function(current){
|
||||||
|
return current.countCards('e')>player.countCards('e');
|
||||||
|
})>0) list.push('令一名装备区内牌数大于你的角色弃置一张装备牌');
|
||||||
if(list.length==0) event.finish();
|
if(list.length==0) event.finish();
|
||||||
else if(list.length<2){
|
else if(list.length<2){
|
||||||
if(game.countPlayer(function(current){return current.countCards('h')>player.countCards('h')})>0) event._result={index:0};
|
if(game.hasPlayer(function(current){
|
||||||
|
return current.countCards('h')>player.countCards('h');
|
||||||
|
})) event._result={index:0};
|
||||||
else event._result={index:1};
|
else event._result={index:1};
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
player.chooseControl().set('ai',function(){
|
player.chooseControl().set('ai',function(){
|
||||||
if(game.hasPlayer(function(current){
|
if(game.hasPlayer(function(current){
|
||||||
return current.countCards('h')>player.countCards('h')&&get.attitude(player,current)<0
|
return current.countCards('h')>player.countCards('h')&&get.attitude(player,current)<0
|
||||||
})) return 0;
|
})) return 0;
|
||||||
return 1;
|
return 1;
|
||||||
}).set('choiceList',list);
|
}).set('choiceList',list);
|
||||||
}
|
}
|
||||||
'step 1'
|
'step 1'
|
||||||
|
event.index=result.index;
|
||||||
if(result.index==0){
|
if(result.index==0){
|
||||||
event.control='令一名手牌数大于你的角色交给你一张牌';
|
|
||||||
player.chooseTarget(function(card,player,target){
|
player.chooseTarget(function(card,player,target){
|
||||||
return target.countCards('h')>player.countCards('h')&&target!=player;
|
return target!=player&&target.countCards('h')>player.countCards('h');
|
||||||
},'请选择【飞军】的目标').ai=function(target){
|
},'选择一名手牌数大于你的角色').set('ai',function(target){
|
||||||
return -get.attitude(player,target)
|
return -get.attitude(player,target)
|
||||||
};
|
});
|
||||||
}else{
|
}
|
||||||
event.control='令一名装备区里牌数大于你的角色弃置一张装备牌';
|
else{
|
||||||
player.chooseTarget(function(card,player,target){
|
player.chooseTarget(function(card,player,target){
|
||||||
return target.countCards('e')>player.countCards('e')&&target!=player;
|
return target.countCards('e')>player.countCards('e')&&target!=player;
|
||||||
},'请选择【飞军】的目标').ai=function(target){
|
},'选择一名装备区里牌数大于你的角色').ai=function(target){
|
||||||
return -get.attitude(player,target)
|
return -get.attitude(player,target)
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
'step 2'
|
'step 2'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
event.target=result.targets[0];
|
event.target=result.targets[0];
|
||||||
if(!player.storage.nzry_feijun.contains(event.target)){
|
var list=player.getStorage('nzry_feijun');
|
||||||
if(player.hasSkill('nzry_binglve')){
|
if(!list.contains(event.target)){
|
||||||
player.draw(2);
|
event._nzry_binglve=true;
|
||||||
player.logSkill('nzry_binglve');
|
player.markAuto('nzry_feijun',[event.target]);
|
||||||
}
|
}
|
||||||
player.storage.nzry_feijun.push(event.target);
|
player.line(event.target,'green');
|
||||||
player.syncStorage('nzry_feijun');
|
if(event.index==0){
|
||||||
};
|
event.target.chooseCard('he',true,'选择一张牌交给'+get.translation(player)).set('ai',function(card){
|
||||||
player.line(event.target);
|
|
||||||
if(event.control=='令一名手牌数大于你的角色交给你一张牌'){
|
|
||||||
event.target.chooseCard(1,'he',true).set('ai',function(card){
|
|
||||||
return 6-get.value(card);
|
return 6-get.value(card);
|
||||||
});
|
});
|
||||||
}else{
|
}
|
||||||
event.target.chooseToDiscard(1,'he',true,{type:'equip'});
|
else{
|
||||||
|
event.target.chooseToDiscard('he',true,{type:'equip'},'请弃置一张装备牌');
|
||||||
event.finish();
|
event.finish();
|
||||||
};
|
}
|
||||||
}else{
|
}
|
||||||
|
else{
|
||||||
event.finish();
|
event.finish();
|
||||||
};
|
}
|
||||||
'step 3'
|
'step 3'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
player.gain(result.cards,event.target,'giveAuto');
|
player.gain(result.cards,event.target,'giveAuto');
|
||||||
|
@ -1393,7 +1398,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"nzry_binglve":{audio:2},
|
nzry_binglve:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'nzry_feijunAfter'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event._nzry_binglve==true;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.draw(2)
|
||||||
|
},
|
||||||
|
ai:{combo:'nzry_feijun'},
|
||||||
|
},
|
||||||
nzry_huaiju_ai:{
|
nzry_huaiju_ai:{
|
||||||
charlotte:true,
|
charlotte:true,
|
||||||
ai:{
|
ai:{
|
||||||
|
|
518
character/sp.js
|
@ -6,18 +6,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
characterSort:{
|
characterSort:{
|
||||||
sp:{
|
sp:{
|
||||||
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","ol_bianfuren","qinghegongzhu","tengfanglan","ruiji"],
|
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","ol_bianfuren","qinghegongzhu","tengfanglan","ruiji"],
|
||||||
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng','jin_yanghu'],
|
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng','jin_yanghu','zhaoyǎn'],
|
||||||
sp_tianzhu:["wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun"],
|
sp_tianzhu:["wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun"],
|
||||||
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao"],
|
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao"],
|
||||||
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','ol_puyuan'],
|
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','ol_puyuan'],
|
||||||
sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","fanjiangzhangda"],
|
sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","fanjiangzhangda"],
|
||||||
sp_liesi:['mizhu','weizi'],
|
sp_liesi:['mizhu','weizi'],
|
||||||
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'],
|
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'],
|
||||||
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv'],
|
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'],
|
||||||
sp_wanglang:['wanglang'],
|
sp_wanglang:['wanglang'],
|
||||||
sp_tongque:["sp_fuwan","sp_fuhuanghou","sp_jiben"],
|
sp_tongque:["sp_fuwan","sp_fuhuanghou","sp_jiben"],
|
||||||
sp_zhongdan:["cuiyan","huangfusong"],
|
sp_zhongdan:["cuiyan","huangfusong"],
|
||||||
sp_guozhan2:["mateng","tianfeng","sp_dongzhuo","liqueguosi","jiling","zhangren","zongyu"],
|
sp_guozhan2:["mateng","tianfeng","sp_dongzhuo","liqueguosi","zhangren"],
|
||||||
//sp_single:["niujin"],
|
//sp_single:["niujin"],
|
||||||
sp_others:["hanba","caiyang"],
|
sp_others:["hanba","caiyang"],
|
||||||
},
|
},
|
||||||
|
@ -28,6 +28,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
jin_zhouchu:['male','jin',4,['shanduan','yilie']],
|
||||||
|
zhaoyǎn:['male','wei',4,['tongxie']],
|
||||||
ol_puyuan:['male','shu',4,['olshengong','olqisi']],
|
ol_puyuan:['male','shu',4,['olshengong','olqisi']],
|
||||||
ruiji:['female','wu',3,['qiaoli','qingliang']],
|
ruiji:['female','wu',3,['qiaoli','qingliang']],
|
||||||
weizi:['male','qun',3,['yuanzi','liejie']],
|
weizi:['male','qun',3,['yuanzi','liejie']],
|
||||||
|
@ -56,7 +58,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_jiben:['male','qun',3,['spduanzhi','spduyi']],
|
sp_jiben:['male','qun',3,['spduanzhi','spduyi']],
|
||||||
sp_fuhuanghou:['female','qun',3,['spcangni','spmixin']],
|
sp_fuhuanghou:['female','qun',3,['spcangni','spmixin']],
|
||||||
sp_fuwan:['male','qun',3,['spfengyin','spchizhong']],
|
sp_fuwan:['male','qun',3,['spfengyin','spchizhong']],
|
||||||
zongyu:['male','shu',3,['zyqiao','chengshang']],
|
|
||||||
ol_xinxianying:['female','wei',3,['xincaishi','xinzhongjian']],
|
ol_xinxianying:['female','wei',3,['xincaishi','xinzhongjian']],
|
||||||
wolongfengchu:['male','shu',4,['youlong','luanfeng']],
|
wolongfengchu:['male','shu',4,['youlong','luanfeng']],
|
||||||
sp_zhangliao:['male','qun',4,['mubing','ziqu','diaoling']],
|
sp_zhangliao:['male','qun',4,['mubing','ziqu','diaoling']],
|
||||||
|
@ -157,7 +158,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
//liqueguosi:['male','qun',4,['xiongsuan']],
|
//liqueguosi:['male','qun',4,['xiongsuan']],
|
||||||
//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,['rehengjiang']],
|
zangba:['male','wei',4,['rehengjiang']],
|
||||||
zhangren:['male','qun',4,['chuanxin','zfengshi']],
|
zhangren:['male','qun',4,['chuanxin','zfengshi']],
|
||||||
|
|
||||||
|
@ -171,6 +172,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
//kaisa:["male","western",4,["zhengfu"]],
|
//kaisa:["male","western",4,["zhengfu"]],
|
||||||
},
|
},
|
||||||
characterIntro:{
|
characterIntro:{
|
||||||
|
zhaoyǎn:'赵俨(171~245年),字伯然,颍川阳翟(今河南禹州市)。东汉末年颍川“四大名士”之一,三国时期魏国名臣。熟读经史,精明强干。建安二年,投靠大将军曹操之后,起家朗陵县令,历任司空府掾、司空主薄、都督护军、扶风太守等职。魏文帝曹丕继位后,历任魏国侍中、驸马都尉、河东太守、典农中郎将、度支尚书,封宜土亭侯。魏明帝曹睿时期,历任大司农、骠骑将军、大司空等职。正始六年,去世,时年七十五,谥号为穆。',
|
||||||
ruiji:'芮姬,芮玄之女,太子孙登妃,黄武五年卒。',
|
ruiji:'芮姬,芮玄之女,太子孙登妃,黄武五年卒。',
|
||||||
weizi:'卫兹(?-190年),字子许,(《三国演义》中其名为卫弘,当为误记),陈留襄邑(今河南睢县)人。曾举孝廉,先后被车骑将军何苗、司徒杨赐等召辟。中平六年(189年)十二月,曹操在陈留己吾募兵,而卫兹以家财资助曹操,使曹操顺利募得五千士兵。此后,卫兹与曹操共同讨伐董卓。初平元年(190年),卫兹在跟随曹操讨伐董卓途中,于荥阳汴水遭遇董卓军徐荣,力战终日,失利身亡。',
|
weizi:'卫兹(?-190年),字子许,(《三国演义》中其名为卫弘,当为误记),陈留襄邑(今河南睢县)人。曾举孝廉,先后被车骑将军何苗、司徒杨赐等召辟。中平六年(189年)十二月,曹操在陈留己吾募兵,而卫兹以家财资助曹操,使曹操顺利募得五千士兵。此后,卫兹与曹操共同讨伐董卓。初平元年(190年),卫兹在跟随曹操讨伐董卓途中,于荥阳汴水遭遇董卓军徐荣,力战终日,失利身亡。',
|
||||||
tengfanglan:'滕芳兰,生卒年不详,北海剧县(今山东省寿光市)人,太常滕胤的族女,滕牧的女儿,吴末帝孙皓的皇后。永安元年(258年),孙皓为乌程侯时被聘为妃。元兴元年(264年),孙皓登基后被立为皇后。孙吴灭亡后,随孙皓迁居洛阳。',
|
tengfanglan:'滕芳兰,生卒年不详,北海剧县(今山东省寿光市)人,太常滕胤的族女,滕牧的女儿,吴末帝孙皓的皇后。永安元年(258年),孙皓为乌程侯时被聘为妃。元兴元年(264年),孙皓登基后被立为皇后。孙吴灭亡后,随孙皓迁居洛阳。',
|
||||||
|
@ -645,6 +647,482 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//周处
|
||||||
|
shanduan:{
|
||||||
|
audio:2,
|
||||||
|
init:function(player,name){
|
||||||
|
player.storage[name]=[1,2,3,4];
|
||||||
|
},
|
||||||
|
trigger:{player:'phaseBegin'},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
popup:false,
|
||||||
|
content:function(){
|
||||||
|
trigger._shanduan=(player.storage.shanduan||[1,2,3,4]).slice(0);
|
||||||
|
player.storage.shanduan=[1,2,3,4]
|
||||||
|
},
|
||||||
|
group:['shanduan_draw','shanduan_use','shanduan_discard','shanduan_damage'],
|
||||||
|
ai:{
|
||||||
|
notemp:true,
|
||||||
|
threaten:3.6,
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
damage:{
|
||||||
|
audio:'shanduan',
|
||||||
|
trigger:{player:'damageEnd'},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
filter:(event,player)=>player!=_status.currentPhase,
|
||||||
|
content:function(){
|
||||||
|
if(!player.storage.shanduan) player.storage.shanduan=[1,2,3,4];
|
||||||
|
var list=player.storage.shanduan;
|
||||||
|
for(var i=0;i<list.length;i++){
|
||||||
|
var num=list[i],add=true;
|
||||||
|
for(var j=0;j<list.length;j++){
|
||||||
|
if(list[j]<num){
|
||||||
|
add=false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(add){
|
||||||
|
list[i]++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
game.delayx();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
draw:{
|
||||||
|
audio:'shanduan',
|
||||||
|
trigger:{player:'phaseDrawBegin'},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
filter:function(event,player){
|
||||||
|
var list=event.getParent()._shanduan;
|
||||||
|
return list&&list.length>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var list=trigger.getParent()._shanduan;
|
||||||
|
if(list.length==1) event._result={index:0};
|
||||||
|
else player.chooseControl(list).set('prompt','善断:为摸牌阶段的摸牌数分配一个数值').set('choice',list.indexOf(Math.max.apply(Math,list))).set('ai',()=>_status.event.choice);
|
||||||
|
'step 1'
|
||||||
|
var list=trigger.getParent()._shanduan;
|
||||||
|
var num=list[result.index];
|
||||||
|
trigger.num=num;
|
||||||
|
list.remove(num);
|
||||||
|
game.log(player,'给','#g摸牌阶段的摸牌数','分配的数值是','#y'+num);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
use:{
|
||||||
|
audio:'shanduan',
|
||||||
|
trigger:{player:'phaseUseBegin'},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
filter:function(event,player){
|
||||||
|
var list=event.getParent()._shanduan;
|
||||||
|
return list&&list.length>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var list=trigger.getParent()._shanduan;
|
||||||
|
if(list.length==1) event._result={index:0};
|
||||||
|
else player.chooseControl(list).set('prompt','善断:为攻击范围基数分配一个数值').set('list',list).set('ai',function(){
|
||||||
|
var player=_status.event.player,list=_status.event.list,card={name:'sha'};
|
||||||
|
if(player.hasSha()&&(player.hasValueTarget(card,false,true)&&!player.hasValueTarget(card,null,true))){
|
||||||
|
var range=1;
|
||||||
|
var equips=player.getCards('e');
|
||||||
|
for(var i=0;i<equips.length;i++){
|
||||||
|
var info=get.info(equips[i],false).distance;
|
||||||
|
if(!info) continue;
|
||||||
|
if(info.attackFrom){
|
||||||
|
range-=info.attackFrom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var listx=list.slice(0).sort();
|
||||||
|
for(var i of listx){
|
||||||
|
if(i<=range) continue;
|
||||||
|
if(game.hasPlayer(function(current){
|
||||||
|
var distance=get.distance(player,current,'attack');
|
||||||
|
if(distance>1&&distance<=(i-range)) return true;
|
||||||
|
return false;
|
||||||
|
})) return list.indexOf(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list.indexOf(Math.min.apply(Math,list));
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
var list=trigger.getParent()._shanduan;
|
||||||
|
var num=list[result.index];
|
||||||
|
if(!player.storage.shanduan_effect) player.storage.shanduan_effect={};
|
||||||
|
player.storage.shanduan_effect.range=num;
|
||||||
|
player.addTempSkill('shanduan_effect');
|
||||||
|
list.remove(num);
|
||||||
|
game.log(player,'给','#g攻击范围的基数','分配的数值是','#y'+num);
|
||||||
|
if(list.length==0) event.finish();
|
||||||
|
else if(list.length==1) event._result={index:0};
|
||||||
|
else player.chooseControl(list).set('prompt','为使用【杀】的次数上限分配一个数值').set('list',list).set('ai',function(){
|
||||||
|
var player=_status.event.player,list=_status.event.list;
|
||||||
|
var sha=player.countCards('hs',function(card){
|
||||||
|
return get.name(card)=='sha'&&player.hasValueTarget(card,null,true);
|
||||||
|
});
|
||||||
|
var max=player.getCardUsable('sha');
|
||||||
|
if(sha<=max){
|
||||||
|
var listx=list.slice(0).sort();
|
||||||
|
for(var i of listx){
|
||||||
|
if(max+i>=sha) return list.indexOf(i);
|
||||||
|
}
|
||||||
|
return list.indexOf(Math.max.apply(Math,list))
|
||||||
|
}
|
||||||
|
return list.indexOf(Math.min.apply(Math,list));
|
||||||
|
});
|
||||||
|
'step 2'
|
||||||
|
var list=trigger.getParent()._shanduan;
|
||||||
|
var num=list[result.index];
|
||||||
|
if(!player.storage.shanduan_effect) player.storage.shanduan_effect={};
|
||||||
|
player.storage.shanduan_effect.sha=num;
|
||||||
|
game.log(player,'给','#g使用【杀】的次数上限','分配的数值是','#y'+num);
|
||||||
|
list.remove(num);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
discard:{
|
||||||
|
audio:'shanduan',
|
||||||
|
trigger:{player:'phaseDiscardBegin'},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
filter:function(event,player){
|
||||||
|
var list=event.getParent()._shanduan;
|
||||||
|
return list&&list.length>0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var list=trigger.getParent()._shanduan;
|
||||||
|
if(list.length==1) event._result={index:0};
|
||||||
|
else player.chooseControl(list).set('prompt','善断:为手牌上限基数分配一个数值').set('choice',list.indexOf(Math.max.apply(Math,list))).set('ai',()=>_status.event.choice);
|
||||||
|
'step 1'
|
||||||
|
var list=trigger.getParent()._shanduan;
|
||||||
|
var num=list[result.index];
|
||||||
|
if(!player.storage.shanduan_effect) player.storage.shanduan_effect={};
|
||||||
|
player.storage.shanduan_effect.limit=num;
|
||||||
|
player.addTempSkill('shanduan_effect');
|
||||||
|
list.remove(num);
|
||||||
|
game.log(player,'给','#g手牌上限的基数','分配的数值是','#y'+num);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
effect:{
|
||||||
|
charlotte:true,
|
||||||
|
onremove:true,
|
||||||
|
mod:{
|
||||||
|
attackRangeBase:function(player){
|
||||||
|
var map=player.storage.shanduan_effect;
|
||||||
|
if(typeof map.range!='number') return;
|
||||||
|
var range=1;
|
||||||
|
var equips=player.getCards('e',function(card){
|
||||||
|
return !ui.selected.cards||!ui.selected.cards.contains(card);
|
||||||
|
});
|
||||||
|
for(var i=0;i<equips.length;i++){
|
||||||
|
var info=get.info(equips[i],false).distance;
|
||||||
|
if(!info) continue;
|
||||||
|
if(info.attackFrom){
|
||||||
|
range-=info.attackFrom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Math.max(range,map.range);
|
||||||
|
},
|
||||||
|
cardUsable:function(card,player,num){
|
||||||
|
if(card.name=='sha'){
|
||||||
|
var map=player.storage.shanduan_effect;
|
||||||
|
if(typeof map.sha!='number') return;
|
||||||
|
return num-1+map.sha;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
maxHandcardBase:function(player,num){
|
||||||
|
var map=player.storage.shanduan_effect;
|
||||||
|
if(typeof map.limit!='number') return;
|
||||||
|
return map.limit;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
yilie:{
|
||||||
|
audio:2,
|
||||||
|
enable:'chooseToUse',
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
if(get.type(name)=='basic'&&lib.inpile.contains(name)&&!player.getStorage('yilie_count').contains(name)){
|
||||||
|
var hs=player.getCards('hs');
|
||||||
|
if(hs.length<2) return false;
|
||||||
|
var bool=false,map={};
|
||||||
|
for(var card of hs){
|
||||||
|
var color=get.color(card);
|
||||||
|
if(!map[color]) map[color]=true;
|
||||||
|
else{
|
||||||
|
bool=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return bool;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.type=='wuxie') return false;
|
||||||
|
var list=player.getStorage('yilie_count');
|
||||||
|
var hs=player.getCards('hs');
|
||||||
|
if(hs.length<2) return false;
|
||||||
|
var bool=false,map={};
|
||||||
|
for(var card of hs){
|
||||||
|
var color=get.color(card);
|
||||||
|
if(!map[color]) map[color]=true;
|
||||||
|
else{
|
||||||
|
bool=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!bool) return false;
|
||||||
|
for(var name of lib.inpile){
|
||||||
|
if(get.type(name)!='basic'||list.contains(name)) continue;
|
||||||
|
var card={name:name};
|
||||||
|
if(event.filterCard(card,player,event)) return true;
|
||||||
|
if(name=='sha'){
|
||||||
|
for(var nature of lib.inpile_nature){
|
||||||
|
card.nature=nature;
|
||||||
|
if(event.filterCard(card,player,event)) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
chooseButton:{
|
||||||
|
dialog:function(event,player){
|
||||||
|
var list=[];
|
||||||
|
var storage=player.storage.yilie_count;
|
||||||
|
for(var i of lib.inpile){
|
||||||
|
if(get.type(i)!='basic') continue;
|
||||||
|
if(storage&&storage.contains(i)) continue;
|
||||||
|
var card={name:i,isCard:true};
|
||||||
|
if(event.filterCard(card,player,event)) list.push(['基本','',i]);
|
||||||
|
if(i=='sha'){
|
||||||
|
for(var j of lib.inpile_nature){
|
||||||
|
card.nature=j;
|
||||||
|
if(event.filterCard(card,player,event)) list.push(['基本','',i,j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ui.create.dialog('义烈',[list,'vcard'],'hidden')
|
||||||
|
},
|
||||||
|
check:function(button){
|
||||||
|
if(button.link[2]=='shan') return 3;
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(button.link[2]=='jiu'){
|
||||||
|
if(player.getUseValue({name:'jiu'})<=0) return 0;
|
||||||
|
if(player.countCards('h','sha')) return player.getUseValue({name:'jiu'});
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return player.getUseValue({name:button.link[2],nature:button.link[3]})/4;
|
||||||
|
},
|
||||||
|
backup:function(links,player){
|
||||||
|
return {
|
||||||
|
audio:'yilie',
|
||||||
|
selectCard:2,
|
||||||
|
filterCard:function(card,player){
|
||||||
|
var color=get.color(card);
|
||||||
|
if(ui.selected.cards.length) return color==get.color(ui.selected.cards[0]);
|
||||||
|
return player.hasCard(function(cardx){
|
||||||
|
return card!=cardx&&get.color(cardx)==color;
|
||||||
|
},'hs')
|
||||||
|
},
|
||||||
|
position:'hs',
|
||||||
|
complexCard:true,
|
||||||
|
check:(card)=>8-get.value(card),
|
||||||
|
popname:true,
|
||||||
|
viewAs:{
|
||||||
|
name:links[0][2],
|
||||||
|
nature:links[0][3],
|
||||||
|
},
|
||||||
|
precontent:function(){
|
||||||
|
var name=event.result.card.name;
|
||||||
|
player.addTempSkill('yilie_count','roundStart');
|
||||||
|
player.markAuto('yilie_count',[name]);
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
prompt:function(links,player){
|
||||||
|
var name=links[0][2];
|
||||||
|
var nature=links[0][3];
|
||||||
|
return '将两张颜色相同的手牌当做'+(get.translation(nature)||'')+get.translation(name)+'使用';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:function(item,player){
|
||||||
|
return 2.6;
|
||||||
|
},
|
||||||
|
respondShan:true,
|
||||||
|
respondSha:true,
|
||||||
|
fireAttack:true,
|
||||||
|
skillTagFilter:function(player,tag){
|
||||||
|
var hs=player.getCards('hs');
|
||||||
|
if(hs.length<2) return false;
|
||||||
|
var bool=false,map={};
|
||||||
|
for(var card of hs){
|
||||||
|
var color=get.color(card);
|
||||||
|
if(!map[color]) map[color]=true;
|
||||||
|
else{
|
||||||
|
bool=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!bool) return false;
|
||||||
|
var storage=player.storage.yilie_count;
|
||||||
|
var name;
|
||||||
|
switch(tag){
|
||||||
|
case 'respondShan':name='shan';break;
|
||||||
|
default:name='sha';break;
|
||||||
|
}
|
||||||
|
if(storage&&storage.contains(name)) return false;
|
||||||
|
},
|
||||||
|
result:{
|
||||||
|
player:function(player){
|
||||||
|
if(_status.event.dying) return get.attitude(player,_status.event.dying);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
count:{charlotte:true,onremove:true},
|
||||||
|
backup:{audio:'yilie'},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//赵俨
|
||||||
|
tongxie:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseUseBegin'},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseTarget(get.prompt('tongxie'),'选择至多两名其他角色作为“同协角色”',lib.filter.notMe,[1,2]).set('ai',function(target){
|
||||||
|
return get.attitude(_status.event.player,target);
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var targets=result.targets;
|
||||||
|
targets.add(player);
|
||||||
|
player.logSkill('tongxie',targets);
|
||||||
|
player.addTempSkill('tongxie_effect',{player:'phaseBegin'});
|
||||||
|
player.markAuto('tongxie_effect',targets);
|
||||||
|
var min=player.countCards('h'),min_player=player;
|
||||||
|
for(var i of targets){
|
||||||
|
if(i==player) continue;
|
||||||
|
var num=i.countCards('h');
|
||||||
|
if(num<min){
|
||||||
|
min=num;
|
||||||
|
min_player=i;
|
||||||
|
}
|
||||||
|
else if(num==min) min_player=false;
|
||||||
|
}
|
||||||
|
if(min_player) min_player.draw();
|
||||||
|
else game.delayx();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
effect:{
|
||||||
|
audio:'tongxie',
|
||||||
|
charlotte:true,
|
||||||
|
trigger:{global:'useCardAfter'},
|
||||||
|
onremove:true,
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.card.name!='sha'||event.targets.length!=1||!event.targets[0].isIn()) return false;
|
||||||
|
if(event.getParent(2).name=='tongxie_effect') return false;
|
||||||
|
var list=player.getStorage('tongxie_effect'),target=event.targets[0];
|
||||||
|
if(!list.contains(event.player)) return false;
|
||||||
|
for(var i of list){
|
||||||
|
if(i==event.player||!i.isIn()) continue;
|
||||||
|
if(!i.canUse('sha',target,false)) continue;
|
||||||
|
if(_status.connectMode&&i.countCards('hs')>0) return true;
|
||||||
|
if(i.hasSha()) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
event.targets=player.getStorage('tongxie_effect').filter(function(i){
|
||||||
|
return i!==trigger.player;
|
||||||
|
}).sortBySeat();
|
||||||
|
event.target=trigger.targets[0];
|
||||||
|
'step 1'
|
||||||
|
var current=targets.shift();
|
||||||
|
if(current.isIn()&&target.isIn()&¤t.canUse('sha',target,false)&&(_status.connectMode||current.hasSha())){
|
||||||
|
current.chooseToUse(function(card,player,event){
|
||||||
|
if(get.name(card)!='sha') return false;
|
||||||
|
return lib.filter.filterCard.apply(this,arguments);
|
||||||
|
},'同协:是否对'+get.translation(target)+'使用一张杀?').set('targetRequired',true).set('complexSelect',true).set('filterTarget',function(card,player,target){
|
||||||
|
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
|
||||||
|
return lib.filter.targetEnabled.apply(this,arguments);
|
||||||
|
}).set('sourcex',target).set('logSkill','tongxie_effect').set('addCount',false);
|
||||||
|
if(targets.length>0) event.redo();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
group:['tongxie_damage','tongxie_count'],
|
||||||
|
},
|
||||||
|
damage:{
|
||||||
|
audio:'tongxie',
|
||||||
|
charlotte:true,
|
||||||
|
trigger:{global:'damageBegin4'},
|
||||||
|
filter:function(event,player){
|
||||||
|
var list=player.getStorage('tongxie_effect');
|
||||||
|
if(!list.contains(event.player)) return false;
|
||||||
|
for(var i of list){
|
||||||
|
if(i!=event.player&&i.isAlive()&&!i.hasSkill('tongxie_count2',null,null,false)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
event.targets=player.getStorage('tongxie_effect').filter(function(i){
|
||||||
|
return i!=trigger.player&&i.isAlive()&&!i.hasSkill('tongxie_count2',null,null,false);
|
||||||
|
}).sortBySeat();
|
||||||
|
event.num=0;
|
||||||
|
'step 1'
|
||||||
|
var target=targets[num];
|
||||||
|
event.num++;
|
||||||
|
event.target=target;
|
||||||
|
target.chooseBool('同协:是否为'+get.translation(trigger.player)+'阻挡伤害?','失去1点体力,防止'+get.translation(trigger.player)+'即将受到的'+get.cnNumber(trigger.num)+'点伤害').set('ai',function(){
|
||||||
|
var player=_status.event.player,target=_status.event.getTrigger().player;
|
||||||
|
var trigger=_status.event.getTrigger();
|
||||||
|
var eff1=get.damageEffect(target,trigger.source,player,trigger.nature);
|
||||||
|
if(trigger.num>1) eff1=Math.min(-1,eff1)*trigger.num;
|
||||||
|
var eff2=get.effect(player,{name:'losehp'},player,player);
|
||||||
|
return eff2>eff1;
|
||||||
|
});
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
target.logSkill('tongxie_damage',trigger.player);
|
||||||
|
trigger.cancel();
|
||||||
|
target.loseHp();
|
||||||
|
}
|
||||||
|
else if(num<targets.length) event.goto(1);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
count:{
|
||||||
|
trigger:{global:'loseHpEnd'},
|
||||||
|
charlotte:true,
|
||||||
|
forced:true,
|
||||||
|
firstDo:true,
|
||||||
|
popup:false,
|
||||||
|
silent:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.getStorage('tongxie_effect').contains(event.player);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.player.addTempSkill('tongxie_count2');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
count2:{charlotte:true},
|
||||||
|
},
|
||||||
|
},
|
||||||
//群马超
|
//群马超
|
||||||
olzhuiji:{
|
olzhuiji:{
|
||||||
mod:{
|
mod:{
|
||||||
|
@ -3323,7 +3801,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
trigger:{player:'dying'},
|
trigger:{player:'dying'},
|
||||||
prompt:'是否弃置“诔”标记?',
|
prompt:'是否弃置“诔”标记?',
|
||||||
prompt2:'减1点体力上限,然后回复体力至1点并摸一张牌。',
|
prompt2:'回复体力至1点并摸一张牌。',
|
||||||
charlotte:true,
|
charlotte:true,
|
||||||
onremove:true,
|
onremove:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
|
@ -8515,7 +8993,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
game.asyncDraw(list,function(target){
|
game.asyncDraw(list,function(target){
|
||||||
return players.numOf(target);
|
return get.numOf(players,target);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -8523,6 +9001,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
trigger:{player:'phaseUseBegin'},
|
trigger:{player:'phaseUseBegin'},
|
||||||
direct:true,
|
direct:true,
|
||||||
preHidden:true,
|
preHidden:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.countCards('h')>0&&game.hasPlayer(function(current){
|
||||||
|
return current!=player&&player.canCompare(current);
|
||||||
|
})
|
||||||
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var goon;
|
var goon;
|
||||||
|
@ -8561,15 +9044,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(game.hasPlayer(function(current){
|
if(game.hasPlayer(function(current){
|
||||||
if(target==current) return false;
|
if(target==current) return false;
|
||||||
if(!player.canUse('sha',current,false)) return false;
|
if(!player.canUse('sha',current,false)) return false;
|
||||||
if(get.mode()=='guozhan'){
|
return target.isFriendOf(current);
|
||||||
return target.isFriendOf(current);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
})){
|
})){
|
||||||
var str='对一名';
|
var str='对一名与'+get.translation(target)+'势力相同的';
|
||||||
if(get.mode()=='guozhan'){
|
|
||||||
str+=('与'+get.translation(target)+'势力相同的');
|
|
||||||
}
|
|
||||||
player.chooseTarget(str+'角色使用一张杀',true,function(card,player,target){
|
player.chooseTarget(str+'角色使用一张杀',true,function(card,player,target){
|
||||||
if(!player.canUse('sha',target,false)) return false;
|
if(!player.canUse('sha',target,false)) return false;
|
||||||
if(get.mode()=='guozhan'){
|
if(get.mode()=='guozhan'){
|
||||||
|
@ -17963,8 +18440,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
rehengjiang2:'横江',
|
rehengjiang2:'横江',
|
||||||
rehengjiang_info:'当你受到1点伤害后,你可以令当前回合角色本回合的手牌上限-1。然后若其弃牌阶段内没有弃牌,则你摸X张牌(X为你本回合内对其发动过〖横江〗的次数)。',
|
rehengjiang_info:'当你受到1点伤害后,你可以令当前回合角色本回合的手牌上限-1。然后若其弃牌阶段内没有弃牌,则你摸X张牌(X为你本回合内对其发动过〖横江〗的次数)。',
|
||||||
shuangren:'双刃',
|
shuangren:'双刃',
|
||||||
shuangren_info:'出牌阶段开始时,你可以与一名角色拼点。若你赢,你视为对任意一名角色使用一张【杀】(不计入出牌阶段的次数限制);若你没赢,你本回合内不能对其他角色使用牌。',
|
shuangren_info:'出牌阶段开始时,你可以与一名角色拼点。若你赢,你视为对其或与其势力相同的另一名角色使用一张【杀】(不计入出牌阶段的次数限制);若你没赢,你本回合内不能对其他角色使用牌。',
|
||||||
shuangren_info_guozhan:'出牌阶段开始时,你可以与一名角色拼点。若你赢,你视为对其或与其势力相同的另一名角色使用一张【杀】(不计入出牌阶段的次数限制);若你没赢,你本回合内不能对其他角色使用牌。',
|
|
||||||
xiashu:'下书',
|
xiashu:'下书',
|
||||||
xiashu_info:'出牌阶段开始时,你可以将所有手牌交给一名其他角色,然后该角色亮出任意数量的手牌(至少一张)。你选择一项:1.获得其亮出的手牌;2.获得其未亮出的手牌。',
|
xiashu_info:'出牌阶段开始时,你可以将所有手牌交给一名其他角色,然后该角色亮出任意数量的手牌(至少一张)。你选择一项:1.获得其亮出的手牌;2.获得其未亮出的手牌。',
|
||||||
kuanshi:'宽释',
|
kuanshi:'宽释',
|
||||||
|
@ -18593,6 +19069,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
olqisi_info:'①游戏开始时,你获得两张副类别不同的牌,并将这些牌置入你的装备区。②摸牌阶段开始时,你可以少摸一张牌并声明一种装备牌的副类别,然后从牌堆或弃牌堆中获得一张该副类别的牌。',
|
olqisi_info:'①游戏开始时,你获得两张副类别不同的牌,并将这些牌置入你的装备区。②摸牌阶段开始时,你可以少摸一张牌并声明一种装备牌的副类别,然后从牌堆或弃牌堆中获得一张该副类别的牌。',
|
||||||
olzhuiji:'追击',
|
olzhuiji:'追击',
|
||||||
olzhuiji_info:'锁定技。①你至体力值不大于你的角色的距离为1。②当你使用【杀】指定距离为1的角色为目标后,你令其选择一项:⒈弃置一张牌。⒉重铸装备区内的所有牌。',
|
olzhuiji_info:'锁定技。①你至体力值不大于你的角色的距离为1。②当你使用【杀】指定距离为1的角色为目标后,你令其选择一项:⒈弃置一张牌。⒉重铸装备区内的所有牌。',
|
||||||
|
zhaoyǎn:'赵俨',
|
||||||
|
tongxie:'同协',
|
||||||
|
tongxie_info:'出牌阶段开始时,你可以选择至多两名其他角色(你与这些角色均称为“同协角色”)。这些角色中手牌数唯一最少的角色摸一张牌,且你获得如下效果直到你下回合开始:①当有“同协角色”对唯一目标角色使用的【杀】结算结束后,其他“同协角色”可以依次对目标角色使用一张【杀】(无距离和次数限制,且不能再触发此效果)。②当有“同协角色”受到伤害时,其他“同协角色”(本回合内失去过体力的角色除外)可以防止此伤害,失去1点体力。',
|
||||||
|
jin_zhouchu:'周处',
|
||||||
|
shanduan:'善断',
|
||||||
|
shanduan_info:'①回合开始时,你生成数组R=[1,2,3,4]。②摸牌阶段开始时,你从数组R中选择并移除一个数字A。你本阶段的额定摸牌数改为A。③出牌阶段开始时,你从数组R中选择并移除两个数字B和C。你将你本阶段内的攻击范围基数最小值和使用【杀】的次数上限基础值改为B和C。④弃牌阶段开始时,你从数组R中选择并移除一个数字D。你令你本回合的手牌上限基数改为D。⑤当你于回合外受到伤害后,你令下回合生成的R中最小的一个数字+1。',
|
||||||
|
yilie:'义烈',
|
||||||
|
yilie_info:'每轮每种牌名限一次。你可以将两张颜色相同的手牌当做任意一种基本牌使用。',
|
||||||
|
|
||||||
sp_tianji:'天极·皇室宗亲',
|
sp_tianji:'天极·皇室宗亲',
|
||||||
sp_sibi:'四弼·辅国文曲',
|
sp_sibi:'四弼·辅国文曲',
|
||||||
|
|
684
character/sp2.js
|
@ -4,6 +4,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
name:'sp2',
|
name:'sp2',
|
||||||
connect:true,
|
connect:true,
|
||||||
character:{
|
character:{
|
||||||
|
zhangxun:['male','qun',4,['suizheng']],
|
||||||
|
zongyu:['male','shu',3,['zyqiao','chengshang']],
|
||||||
|
fengfang:['male','qun',3,['dcditing','dcbihuo']],
|
||||||
|
dc_wangchang:['male','wei',3,['dckaiji','dcpingxi']],
|
||||||
|
zhaoang:['male','wei','3/4',['dczhongjie','dcsushou']],
|
||||||
|
dc_sunru:['female','wu',3,['xiecui','youxu']],
|
||||||
|
dc_jiling:['male','qun',4,['dcshuangren']],
|
||||||
caohua:['female','wei',3,['caiyi','guili']],
|
caohua:['female','wei',3,['caiyi','guili']],
|
||||||
dc_liuyu:['male','qun',3,['dcsuifu','dcpijing']],
|
dc_liuyu:['male','qun',3,['dcsuifu','dcpijing']],
|
||||||
qinyilu:['male','qun',3,['piaoping','tuoxian','chuaili']],
|
qinyilu:['male','qun',3,['piaoping','tuoxian','chuaili']],
|
||||||
|
@ -151,7 +158,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_caizijiaren:['re_dongbai','re_sunluyu','heyan','zhaoyan','wangtao','wangyue','zhangxuan','tengyin','zhangyao'],
|
sp_caizijiaren:['re_dongbai','re_sunluyu','heyan','zhaoyan','wangtao','wangyue','zhangxuan','tengyin','zhangyao'],
|
||||||
sp_zhilan:['liuyong','wanniangongzhu','zhanghu','lvlingqi','tenggongzhu','dc_gaolan'],
|
sp_zhilan:['liuyong','wanniangongzhu','zhanghu','lvlingqi','tenggongzhu','dc_gaolan'],
|
||||||
sp_guixin:['re_kanze','re_chendeng','caimaozhangyun'],
|
sp_guixin:['re_kanze','re_chendeng','caimaozhangyun'],
|
||||||
sp_zongheng:['huaxin','luyusheng','re_xunchen','re_miheng','fengxi','re_dengzhi','dc_yanghu'],
|
sp_zongheng:['huaxin','luyusheng','re_xunchen','re_miheng','fengxi','re_dengzhi','dc_yanghu','zongyu'],
|
||||||
sp_huangjin:['liuhong','zhujun','re_hansui',"xushao"],
|
sp_huangjin:['liuhong','zhujun','re_hansui',"xushao"],
|
||||||
sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'],
|
sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'],
|
||||||
sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'],
|
sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'],
|
||||||
|
@ -162,10 +169,625 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp2_huangjia:['caomao','liubian','dc_liuyu'],
|
sp2_huangjia:['caomao','liubian','dc_liuyu'],
|
||||||
sp2_zhangtai:['guozhao','fanyufeng','ruanyu','yangwan','re_panshu'],
|
sp2_zhangtai:['guozhao','fanyufeng','ruanyu','yangwan','re_panshu'],
|
||||||
sp2_jinse:['caojinyu','re_sunyi','re_fengfangnv','caohua','laiyinger'],
|
sp2_jinse:['caojinyu','re_sunyi','re_fengfangnv','caohua','laiyinger'],
|
||||||
sp_decade:['huaman','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','re_dongzhao','zhouyi','mamidi','dc_jiben','dc_luotong','guanning','dc_huangchengyan'],
|
sp_decade:['huaman','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','re_dongzhao','zhouyi','mamidi','dc_jiben','dc_luotong','guanning','dc_huangchengyan','dc_jiling','dc_sunru','zhaoang','dc_wangchang','fengfang','zhangxun'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//张勋
|
||||||
|
suizheng:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseTarget(get.prompt('suizheng'),'令一名角色下回合内获得〖随征〗效果').set('',function(target){
|
||||||
|
var player=_status.event.player,att=get.attitude(player,target);
|
||||||
|
if(target.hasJudge('lebu')) return att/2;
|
||||||
|
return att*get.threaten(target)*Math.sqrt(2+player==target?(player.countCards('h','sha')*2):target.countCards('h'))
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
player.logSkill('suizheng',target);
|
||||||
|
target.addMark('suizheng_effect',1,false);
|
||||||
|
target.markAuto('suizheng_source',[player]);
|
||||||
|
target.addTempSkill('suizheng_effect',{player:player==target?'phaseJieshuBefore':'phaseAfter'});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
effect:{
|
||||||
|
audio:'suizheng',
|
||||||
|
charlotte:true,
|
||||||
|
mod:{
|
||||||
|
targetInRange:function(card){
|
||||||
|
if(card.name=='sha') return true;
|
||||||
|
},
|
||||||
|
cardUsable:function(card,player,num){
|
||||||
|
if(card.name=='sha') return num+player.countMark('suizheng_effect');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
trigger:{player:'phaseUseEnd'},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
filter:function(event,player){
|
||||||
|
var list=player.getStorage('suizheng_source');
|
||||||
|
if(!list.filter((i)=>i.isIn().length)) return false;
|
||||||
|
return player.hasHistory('sourceDamage',function(evt){
|
||||||
|
return evt.player.isIn()&&evt.getParent('phaseUse')==event;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var targets=player.getStorage('suizheng_source').slice(0).sortBySeat();
|
||||||
|
event.targets=targets;
|
||||||
|
'step 1'
|
||||||
|
var target=targets.shift();
|
||||||
|
event.target=target;
|
||||||
|
var list=[];
|
||||||
|
player.getHistory('sourceDamage',function(evt){
|
||||||
|
if(evt.player.isIn()&&evt.getParent('phaseUse')==trigger) list.add(evt.player);
|
||||||
|
});
|
||||||
|
if(!list.length) event.finish();
|
||||||
|
else if(target.isIn()){
|
||||||
|
list=list.filter(function(i){
|
||||||
|
return target.canUse('sha',i,false);
|
||||||
|
});
|
||||||
|
if(list.length>0) target.chooseTarget('随征:是否对一名角色使用【杀】?',function(card,player,target){
|
||||||
|
return _status.event.targets.contains(target);
|
||||||
|
}).set('targets',list).set('ai',function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
return get.effect(target,{name:'sha'},player,player);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else event._result={bool:false};
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
target.useCard({
|
||||||
|
name:'sha',
|
||||||
|
isCard:true,
|
||||||
|
},result.targets,false,'suizheng_effect');
|
||||||
|
}
|
||||||
|
if(targets.length>0) event.goto(1);
|
||||||
|
},
|
||||||
|
onremove:function(player){
|
||||||
|
delete player.storage.suizheng_effect;
|
||||||
|
delete player.storage.suizheng_source;
|
||||||
|
},
|
||||||
|
intro:{content:'使用【杀】无距离限制且次数上限+#'},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//冯方
|
||||||
|
dcditing:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'phaseUseBegin'},
|
||||||
|
logTarget:'player',
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.hp>0&&event.player.countCards('h')>0&&event.player.inRange(player);
|
||||||
|
},
|
||||||
|
prompt2:(event,player)=>('观看其'+get.cnNumber(Math.min(player.hp,event.player.countCards('h')))+'张手牌并选择其中一张'),
|
||||||
|
check:function(event,player){
|
||||||
|
var target=event.player;
|
||||||
|
if(get.attitude(player,target)>0) return true;
|
||||||
|
if(Math.min(player.hp,target.countCards('h'))>2) return true;
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var target=trigger.player;
|
||||||
|
var cards=target.getCards('h');
|
||||||
|
var num=Math.min(cards.length,player.hp),cards2=cards.randomGets(num);
|
||||||
|
player.chooseButton([get.translation(target)+'的手牌('+num+'/'+cards.length+')',cards2],true).set('ai',function(button){
|
||||||
|
var player=_status.event.player,target=_status.event.getTrigger().player,card=button.link;
|
||||||
|
var att=get.attitude(player,target);
|
||||||
|
var val=target.getUseValue(card,null,true);
|
||||||
|
if(val<=0) return -get.value(card,target)/2*get.sgn(att-0.05);
|
||||||
|
if(target.canUse(card,player)&&get.effect(player,card,target,target)>0){
|
||||||
|
var eff=get.effect(player,card,target,player);
|
||||||
|
if(eff<0) val-=eff;
|
||||||
|
}
|
||||||
|
return val;
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
player.addTempSkill('dcditing_effect','phaseUseAfter');
|
||||||
|
player.storage.dcditing_effect=[trigger.player,result.links[0]];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
effect:{
|
||||||
|
audio:'dcditing',
|
||||||
|
charlotte:true,
|
||||||
|
trigger:{target:'useCardToTargeted'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
var list=player.storage.dcditing_effect;
|
||||||
|
return list&&event.player==list[0]&&event.cards.contains(list[1]);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.excluded.add(player);
|
||||||
|
game.delayx();
|
||||||
|
},
|
||||||
|
group:['dcditing_draw','dcditing_gain'],
|
||||||
|
},
|
||||||
|
draw:{
|
||||||
|
audio:'dcditing',
|
||||||
|
charlotte:true,
|
||||||
|
trigger:{global:'useCardAfter'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
var list=player.storage.dcditing_effect;
|
||||||
|
return list&&event.player==list[0]&&event.cards.contains(list[1])&&!event.targets.contains(player);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.draw(2);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
gain:{
|
||||||
|
audio:'dcditing',
|
||||||
|
charlotte:true,
|
||||||
|
trigger:{global:'phaseUseEnd'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
var list=player.storage.dcditing_effect;
|
||||||
|
return list&&event.player==list[0]&&event.player.getCards('h').contains(list[1]);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var list=player.storage.dcditing_effect;
|
||||||
|
player.gain(list[0],list[1],'giveAuto');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
dcbihuo:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{
|
||||||
|
player:'damageEnd',
|
||||||
|
source:'damageSource',
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.source&&event.player!=event.source;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
event.num=(event.triggername=='damageEnd'?1:-1);
|
||||||
|
player.chooseTarget(get.prompt('dcbihuo'),'令一名角色下回合的额定摸牌数'+(event.num>0?'+1':'-1')).set('ai',function(target){
|
||||||
|
var player=_status.event.player,num=_status.event.getParent().num;
|
||||||
|
var att=get.attitude(player,target);
|
||||||
|
if(num>0){
|
||||||
|
if(att<=0) return 0;
|
||||||
|
if(target.hasJudge('lebu')) return att/10;
|
||||||
|
return att/Math.sqrt(Math.min(5,1+target.countCards('h')))*Math.sqrt(1+target.hp);
|
||||||
|
}
|
||||||
|
if(num<0){
|
||||||
|
if(att>=0) return 0;
|
||||||
|
if((target.storage.dcbihuo_effect||0)<=-2) return -att/10;
|
||||||
|
return -att/Math.sqrt(Math.min(5,1+target.countCards('h')))*Math.sqrt(1+target.hp);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
player.logSkill('dcbihuo',target);
|
||||||
|
if(typeof target.storage.dcbihuo_effect!='number') target.storage.dcbihuo_effect=0;
|
||||||
|
target.storage.dcbihuo_effect+=event.num;
|
||||||
|
target.addTempSkill('dcbihuo_effect',{player:'phaseAfter'});
|
||||||
|
game.delayx();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
effect:{
|
||||||
|
charlotte:true,
|
||||||
|
trigger:{player:'phaseDrawBegin'},
|
||||||
|
forced:true,
|
||||||
|
onremove:true,
|
||||||
|
content:function(){
|
||||||
|
var num=player.storage.dcbihuo_effect;
|
||||||
|
trigger.num+=num;
|
||||||
|
game.log(player,'的额定摸牌数','#g'+(num>=0?'+':'')+num);
|
||||||
|
},
|
||||||
|
mark:true,
|
||||||
|
intro:{
|
||||||
|
content:(num)=>('额定摸牌数'+(num>=0?'+':'')+num),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//王昶
|
||||||
|
dckaiji:{
|
||||||
|
audio:2,
|
||||||
|
enable:'phaseUse',
|
||||||
|
usable:1,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(player.maxHp<=0) return false;
|
||||||
|
if(!player.storage.dckaiji) return true;
|
||||||
|
return player.hasCard((card)=>lib.filter.cardDiscardable(card,player,'phaseUse'),'he');
|
||||||
|
},
|
||||||
|
filterCard:function(card,player){
|
||||||
|
if(!player.storage.dckaiji) return false;
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
position:'he',
|
||||||
|
selectCard:function(){
|
||||||
|
var player=_status.event.player;
|
||||||
|
return player.storage.dckaiji?[1,player.maxHp]:-1;
|
||||||
|
},
|
||||||
|
check:function(card){
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(!player.hasSkill('dcpingxi')) return 0;
|
||||||
|
var num=lib.skill.dcpingxi.getNum()+ui.selected.cards.length;
|
||||||
|
if(num<game.countPlayer(function(current){
|
||||||
|
if(current==player||current.countCards('he')==0) return false;
|
||||||
|
return get.effect(target,{name:'guohe_copy2'},player,player)+get.effect(target,{name:'shanduan'},player,player)>0;
|
||||||
|
})){
|
||||||
|
if(get.position(card)=='h'&&player.needsToDiscard()>ui.selected.cards.length) return 7+1/Math.max(1,get.value(card));
|
||||||
|
return 7-get.value(card);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.changeZhuanhuanji('dckaiji');
|
||||||
|
if(!cards.length) player.draw(Math.min(player.maxHp,5));
|
||||||
|
},
|
||||||
|
zhuanhuanji:true,
|
||||||
|
mark:true,
|
||||||
|
marktext:'☯',
|
||||||
|
intro:{
|
||||||
|
content:(storage)=>('转换技。出牌阶段限一次,你可以'+(storage?'摸X张牌':'弃置至多X张牌')+'(X为你的体力上限且至多为5)。'),
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
threaten:1.6,
|
||||||
|
order:function(item,player){
|
||||||
|
if(player.storage.dckaiji) return 0.1;
|
||||||
|
return 8;
|
||||||
|
},
|
||||||
|
result:{player:1},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
dcpingxi:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
|
direct:true,
|
||||||
|
getNum:function(){
|
||||||
|
var num=0;
|
||||||
|
game.getGlobalHistory('cardMove',function(evt){
|
||||||
|
if(evt.name=='lose'&&evt.type=='discard') num+=evt.cards2.length;
|
||||||
|
});
|
||||||
|
return num;
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
return lib.skill.dcpingxi.getNum()>0&&game.hasPlayer(function(current){
|
||||||
|
return current!=player&¤t.countCards('he')>0;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var num=lib.skill.dcpingxi.getNum();
|
||||||
|
player.chooseTarget([1,num],function(card,player,target){
|
||||||
|
return target!=player&&target.countCards('he')>0;
|
||||||
|
},get.prompt('dcpingxi'),'选择至多'+get.cnNumber(num)+'名有牌的其他角色。弃置这些角色的各一张牌,然后视为对这些角色使用一张【杀】').set('ai',function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
return get.effect(target,{name:'guohe_copy2'},player,player)+get.effect(target,{name:'sha'},player,player);
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var targets=result.targets.sortBySeat();
|
||||||
|
event.targets=targets;
|
||||||
|
player.logSkill('dcpingxi',targets);
|
||||||
|
event.num=0;
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 2'
|
||||||
|
var target=targets[num];
|
||||||
|
if(target.hasCard(function(card){
|
||||||
|
return lib.filter.canBeDiscarded(card,player,target);
|
||||||
|
},'he')) player.discardPlayerCard(target,'he',true);
|
||||||
|
event.num++;
|
||||||
|
if(event.num<targets.length) event.redo();
|
||||||
|
'step 3'
|
||||||
|
var targetsx=targets.filter(function(target){
|
||||||
|
return player.canUse('sha',target,false);
|
||||||
|
});
|
||||||
|
if(targetsx.length>0) player.useCard({
|
||||||
|
name:'sha',
|
||||||
|
isCard:true,
|
||||||
|
},targetsx);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//赵昂
|
||||||
|
dczhongjie:{
|
||||||
|
audio:2,
|
||||||
|
round:1,
|
||||||
|
trigger:{global:'dying'},
|
||||||
|
logTarget:'player',
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.player.hp<1&&event.reason&&event.reason.name=='loseHp';
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
return get.attitude(player,event.player)>2;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.player.recover();
|
||||||
|
trigger.player.draw();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
dcsushou:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'phaseUseBegin'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.hp>0&&event.player.isMaxHandcard(true);
|
||||||
|
},
|
||||||
|
logTarget:'player',
|
||||||
|
check:function(event,player){
|
||||||
|
var num=player.hp;
|
||||||
|
if(player.hasSkill('dczhongjie')&&(player.storage.dczhongjie_roundcount||0)<game.roundNumber) num++;
|
||||||
|
return num>1;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.loseHp();
|
||||||
|
event.target=trigger.player;
|
||||||
|
'step 1'
|
||||||
|
var num=player.getDamagedHp();
|
||||||
|
if(num>0) player.draw(num);
|
||||||
|
if(player==target) event.finish();
|
||||||
|
'step 2'
|
||||||
|
var ts=target.getCards('h');
|
||||||
|
if(ts.length<2) event.finish();
|
||||||
|
else{
|
||||||
|
var hs=player.getCards('h');
|
||||||
|
ts=ts.randomGets(Math.floor(ts.length/2));
|
||||||
|
if(!hs.length){
|
||||||
|
player.viewCards(get.translation(target)+'的部分手牌');
|
||||||
|
event.finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var next=player.chooseToMove('夙守:交换至多'+get.cnNumber(Math.min(hs.length,ts.length,player.getDamagedHp()))+'张牌');
|
||||||
|
next.set('list',[
|
||||||
|
[get.translation(target)+'的部分手牌',ts,'dcsushou_tag'],
|
||||||
|
['你的手牌',hs],
|
||||||
|
]);
|
||||||
|
next.set('filterMove',function(from,to,moved){
|
||||||
|
if(typeof to=='number') return false;
|
||||||
|
var player=_status.event.player;
|
||||||
|
var hs=player.getCards('h');
|
||||||
|
var changed=hs.filter(function(card){
|
||||||
|
return !moved[1].contains(card);
|
||||||
|
});
|
||||||
|
var changed2=moved[1].filter(function(card){
|
||||||
|
return !hs.contains(card);
|
||||||
|
});
|
||||||
|
if(changed.length<player.getDamagedHp()) return true;
|
||||||
|
var pos1=(moved[0].contains(from.link)?0:1),pos2=(moved[0].contains(to.link)?0:1);
|
||||||
|
if(pos1==pos2) return true;
|
||||||
|
if(pos1==0){
|
||||||
|
if(changed.contains(from.link)) return true;
|
||||||
|
return changed2.contains(to.link);
|
||||||
|
}
|
||||||
|
if(changed2.contains(from.link)) return true;
|
||||||
|
return changed.contains(to.link);
|
||||||
|
});
|
||||||
|
next.set('processAI',function(list){
|
||||||
|
return [list[0][1],list[1][1]];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
'step 3'
|
||||||
|
var moved=result.moved;
|
||||||
|
var hs=player.getCards('h'),ts=target.getCards('h');
|
||||||
|
var cards1=[],cards2=[];
|
||||||
|
for(var i of result.moved[0]){
|
||||||
|
if(!ts.contains(i)) cards1.push(i);
|
||||||
|
}
|
||||||
|
for(var i of result.moved[1]){
|
||||||
|
if(!hs.contains(i)) cards2.push(i);
|
||||||
|
}
|
||||||
|
if(cards1.length){
|
||||||
|
player.swapHandcards(target,cards1,cards2);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//孙茹
|
||||||
|
xiecui:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'damageBegin1'},
|
||||||
|
filter:function(event,player){
|
||||||
|
var source=event.source;
|
||||||
|
if(!source||event.getParent().type!='card') return false;
|
||||||
|
return !source.hasHistory('sourceDamage',function(evt){
|
||||||
|
return evt.getParent().type=='card';
|
||||||
|
});
|
||||||
|
},
|
||||||
|
logTarget:'source',
|
||||||
|
prompt2:function(event,player){
|
||||||
|
var str=('令'+get.translation(event.player)+'即将受到的');
|
||||||
|
str+=(''+event.num+'点');
|
||||||
|
if(lib.linked.contains(event.nature)){
|
||||||
|
str+=(get.translation(event.nature)+'属性');
|
||||||
|
}
|
||||||
|
str+='伤害+1';
|
||||||
|
if(event.source.group=='wu'){
|
||||||
|
var cards=event.cards.filterInD();
|
||||||
|
if(cards.length){
|
||||||
|
str+=(';然后'+get.translation(event.source)+'获得'+get.translation(cards)+',且本回合的手牌上限+1')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
var att=get.attitude(player,event.player);
|
||||||
|
if(att<0){
|
||||||
|
if(event.source.group!='wu'||!event.cards.filterInD().length) return true;
|
||||||
|
return get.attitude(player,event.source)>0;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.num++;
|
||||||
|
var source=trigger.source;
|
||||||
|
if(source.group=='wu'){
|
||||||
|
var cards=trigger.cards.filterInD();
|
||||||
|
if(cards.length>0){
|
||||||
|
source.gain(cards,'gain2');
|
||||||
|
source.addMark('xiecui_effect',1,false);
|
||||||
|
source.addTempSkill('xiecui_effect');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
effect:{
|
||||||
|
charlotte:true,
|
||||||
|
mod:{
|
||||||
|
maxHandcard:(player,num)=>num+player.countMark('xiecui_effect'),
|
||||||
|
},
|
||||||
|
marktext:'翠',
|
||||||
|
onremove:true,
|
||||||
|
intro:{content:'手牌上限+#'},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ai:{threaten:1.75},
|
||||||
|
},
|
||||||
|
youxu:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'phaseEnd'},
|
||||||
|
logTarget:'player',
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.player.countCards('h')>event.player.hp;
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
if(get.attitude(player,event.player)<=0) return true;
|
||||||
|
else return game.hasPlayer(function(current){
|
||||||
|
return current!=event.player&¤t.isDamaged()&¤t.isMinHp()&&
|
||||||
|
get.attitude(player,current)>0&&get.recoverEffect(current,player,player)>0;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
if(player==trigger.player){
|
||||||
|
player.chooseCard('h',true,'请展示一张手牌');
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.choosePlayerCard(trigger.player,true,'h');
|
||||||
|
}
|
||||||
|
'step 1'
|
||||||
|
var card=result.cards[0];
|
||||||
|
event.card=card;
|
||||||
|
var str=get.translation(player);
|
||||||
|
if(player!=trigger.player) str+=('对'+get.translation(trigger.player));
|
||||||
|
str+='发动了【忧恤】';
|
||||||
|
player.showCards(card,str);
|
||||||
|
player.chooseTarget('令一名角色获得'+get.translation(card),'若其体力值为全场最少,则其回复1点体力',function(card,player,target){
|
||||||
|
return target!=_status.event.getTrigger().player;
|
||||||
|
}).set('ai',function(target){
|
||||||
|
var player=_status.event.player,att=get.attitude(player,target);
|
||||||
|
if(att<0) return 0;
|
||||||
|
if(target.isDamaged()&&target.isMinHp&&get.recoverEffect(target,player,player)>0) return 4*att;
|
||||||
|
return att;
|
||||||
|
});
|
||||||
|
'step 2'
|
||||||
|
var target=result.targets[0];
|
||||||
|
event.target=target;
|
||||||
|
player.line(target,'green');
|
||||||
|
target.gain(card,trigger.player,'give');
|
||||||
|
'step 3'
|
||||||
|
if(target.isMinHp()) target.recover();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//纪灵
|
||||||
|
dcshuangren:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseUseBegin'},
|
||||||
|
direct:true,
|
||||||
|
preHidden:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.countCards('h')>0&&game.hasPlayer(function(current){
|
||||||
|
return current!=player&&player.canCompare(current);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var goon;
|
||||||
|
if(player.needsToDiscard()>1){
|
||||||
|
goon=player.hasCard(function(card){
|
||||||
|
return card.number>10&&get.value(card)<=5;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if(player.hasSha()){
|
||||||
|
goon=player.hasCard(function(card){
|
||||||
|
return (card.number>=9&&get.value(card)<=5)||get.value(card)<=3;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
goon=player.hasCard(function(card){
|
||||||
|
return get.value(card)<=5;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
player.chooseTarget(get.prompt2('dcshuangren'),function(card,player,target){
|
||||||
|
return player.canCompare(target);
|
||||||
|
}).set('ai',function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(_status.event.goon&&get.attitude(player,target)<0){
|
||||||
|
return get.effect(target,{name:'sha'},player,player);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}).set('goon',goon).setHiddenSkill(event.name);
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
event.target=target;
|
||||||
|
player.logSkill('dcshuangren',target);
|
||||||
|
player.chooseToCompare(target);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
var target=event.target;
|
||||||
|
if(game.hasPlayer(function(current){
|
||||||
|
if(target==current||target.group!=current.group) return false;
|
||||||
|
return player.canUse('sha',current,false);
|
||||||
|
})){
|
||||||
|
var str='请选择视为使用【杀】的目标';
|
||||||
|
var str2='操作提示:选择一名角色B,或选择包含A('+get.translation(target)+')在内的两名角色A和B(B的势力需为'+get.translation(target.group)+'势力)';
|
||||||
|
player.chooseTarget([1,2],str,str2,true,function(card,player,target){
|
||||||
|
if(!player.canUse('sha',target,false)) return false;
|
||||||
|
var current=_status.event.target;
|
||||||
|
if(target==current) return true;
|
||||||
|
if(target.group!=current.group) return false;
|
||||||
|
if(!ui.selected.targets.length) return true;
|
||||||
|
return ui.selected.targets[0]==current;
|
||||||
|
return current==target;
|
||||||
|
}).set('ai',function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
return get.effect(target,{name:'sha'},player,player);
|
||||||
|
}).set('target',target).set('complexTarget',true);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.useCard({name:'sha',isCard:true},target,false);
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.addTempSkill('dcshuangren_debuff','phaseUseAfter');
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
'step 3'
|
||||||
|
if(result.bool&&result.targets&&result.targets.length){
|
||||||
|
player.useCard({name:'sha',isCard:true},result.targets,false);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
debuff:{
|
||||||
|
charlotte:true,
|
||||||
|
mod:{
|
||||||
|
cardEnabled:function(card){
|
||||||
|
if(card.name=='sha') return false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
//蓝曹华
|
//蓝曹华
|
||||||
caiyi:{
|
caiyi:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -931,11 +1553,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(num>0) player.discardPlayerCard(target,'h',num,true);
|
if(num>0) player.discardPlayerCard(target,'h',num,true);
|
||||||
else event.finish();
|
else event.finish();
|
||||||
'step 1'
|
'step 1'
|
||||||
var color=get.color(trigger.card);
|
var suit=get.suit(trigger.card);
|
||||||
if(result.bool&&color!='none'&&player.countCards('h')>1){
|
if(result.bool&&lib.suit.contains(suit)&&player.countCards('h')>1){
|
||||||
var bool=false;
|
var bool=false;
|
||||||
for(var i of result.cards){
|
for(var i of result.cards){
|
||||||
if(get.color(i,target)==color){
|
if(get.suit(i,target)==suit){
|
||||||
bool=true;
|
bool=true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -13876,10 +14498,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
logTarget:'target',
|
logTarget:'target',
|
||||||
content:function(){
|
content:function(){
|
||||||
player.addTempSkill('pyzhuren_spade2');
|
var num=player.getHistory('useSkill',function(evt){
|
||||||
player.addMark('pyzhuren_spade2',1,false);
|
return evt.skill=='pyzhuren_spade';
|
||||||
//trigger.target.gain(trigger.cards.filterInD(),'gain2','log');
|
}).length;
|
||||||
trigger.target.loseHp(Math.min(player.countMark('pyzhuren_spade2'),5));//.set('source',player);
|
trigger.target.loseHp(Math.min(num,5));//.set('source',player);
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
jueqing:true,
|
jueqing:true,
|
||||||
|
@ -13892,7 +14514,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
pyzhuren_spade2:{onremove:true},
|
|
||||||
pyzhuren_shandian:{
|
pyzhuren_shandian:{
|
||||||
audio:true,
|
audio:true,
|
||||||
trigger:{player:'useCardToPlayered'},
|
trigger:{player:'useCardToPlayered'},
|
||||||
|
@ -15999,6 +16620,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zhangxuan:'张嫙,三国时期孙吴将领张布之女,孙皓后妃张媱的姐姐。初为卫尉冯朝之子冯纯的妻子,后为孙皓后妃,册封左夫人。因孙皓诛灭张布,张媱口吐怨言,被暴怒的孙皓下令棒杀。后来孙皓怀念她的容颜,于是询问侍从:“张布还有女儿吗?”侍从回答:“张布的大女儿嫁给了已故卫尉冯朝的儿子冯纯。”于是孙皓夺走了冯纯的妻子张嫙,纳入宫中。孙皓颇为宠爱张嫙,册封其为左夫人。昼夜嬉戏,纸醉金迷,不理朝政。后来张嫙也去世了,孙皓非常悲伤,下令以最高的规格埋葬张嫙。因为悲伤过度,孙皓一度半年都不出宫门,甚至由于葬礼太过奢华被宫外之人认为孙皓已经死了。',
|
zhangxuan:'张嫙,三国时期孙吴将领张布之女,孙皓后妃张媱的姐姐。初为卫尉冯朝之子冯纯的妻子,后为孙皓后妃,册封左夫人。因孙皓诛灭张布,张媱口吐怨言,被暴怒的孙皓下令棒杀。后来孙皓怀念她的容颜,于是询问侍从:“张布还有女儿吗?”侍从回答:“张布的大女儿嫁给了已故卫尉冯朝的儿子冯纯。”于是孙皓夺走了冯纯的妻子张嫙,纳入宫中。孙皓颇为宠爱张嫙,册封其为左夫人。昼夜嬉戏,纸醉金迷,不理朝政。后来张嫙也去世了,孙皓非常悲伤,下令以最高的规格埋葬张嫙。因为悲伤过度,孙皓一度半年都不出宫门,甚至由于葬礼太过奢华被宫外之人认为孙皓已经死了。',
|
||||||
qinyilu:'秦宜禄(?—200年),并州云中郡云中县人(今内蒙古自治区呼和浩特市托克托县古城镇)。东汉军阀吕布的部将。吕布战败后归降曹操,后为张飞所杀。',
|
qinyilu:'秦宜禄(?—200年),并州云中郡云中县人(今内蒙古自治区呼和浩特市托克托县古城镇)。东汉军阀吕布的部将。吕布战败后归降曹操,后为张飞所杀。',
|
||||||
caohua:'曹华,东汉末年人物,曹操之女,为汉献帝妃嫔。建安十八年(213年),曹操进为魏公,把曹宪、曹节、曹华三个女儿,一齐都送给汉献帝刘协做了妃子,皆封为夫人,聘以束帛五万匹,年龄尚小者在魏公国待年长而聘。',
|
caohua:'曹华,东汉末年人物,曹操之女,为汉献帝妃嫔。建安十八年(213年),曹操进为魏公,把曹宪、曹节、曹华三个女儿,一齐都送给汉献帝刘协做了妃子,皆封为夫人,聘以束帛五万匹,年龄尚小者在魏公国待年长而聘。',
|
||||||
|
zhaoang:'赵昂,字伟章(一作伟璋),天水冀人。汉末时曹操部下。初为羌道令,建安中转参军事徒居州治冀城。建安十八年,马超围冀城多天,城中饥困,凉州刺史韦康不愿百姓再受苦而打算投降,赵昂进劝但不为所纳。后马超背信弃义杀韦康并劫其子赵月为人质,把他送至南郑。欲以此要迫使赵昂为己所用。后与梁宽、赵衢、庞恭、杨阜等结谋为康报仇,并举兵讨伐马超。马超兵败遂弃城,投奔张鲁。得张鲁之援后马超于建安十九年复寇,赵昂与妻子王异坚守祁山三十天至夏侯渊的救兵解围,其子赵月终为马超斩杀。自冀城之难,至于祁山,赵昂出九奇策。',
|
||||||
|
fengfang:'冯方,其字不详,司隶人。初掌校事,监察京师及周边地区,刺探文武百官秘事。十常侍之乱后,董卓进京,掌控朝政。冯方认为他胸怀不臣之心,于是弃官携女儿冯妤至江南避祸。其后董卓果然乱政,京师之地生灵涂炭,更将洛阳付之一炬。冯方因其先见之明得以保全家人。<br>冯妤长大成人后,有倾国之貌。一日袁术登城观景,得见冯妤,心中非常喜欢,于是将其纳为夫人。冯方心忧自家女儿不谙世事,于是将可以让人更显妩媚的家传宝梳交给她,希望能借此使其获得袁术的宠爱。其后果然传来袁术偏爱冯夫人的消息,冯方因此宽心,接受了袁术的征辟,为其效力。然而好景不长,没过多久,冯妤自缢身亡的消息传出,冯方悲愤不已,弃官而走,自此销声匿迹。',
|
||||||
|
zhangxun:'张勋,东汉末年军阀袁术帐下大将,袁术称帝后受封大将军。初平四年(公元193年),袁术引兵入陈留,被曹操、袁绍合力击败,逃至雍丘。后入九江,杀死扬州刺史陈温而自领之,并任命张勋、桥蕤为大将。时孙策依附于袁术,被表为怀义校尉,张勋对其倾心敬服。袁术称帝后,任命张勋为大将军,攻打吕布,大败而还。其后曹操又以袁术称帝为名南下进攻,袁术闻之大惊,即走度淮,留张勋、桥蕤守蕲阳以拒曹。曹操破其军,斩桥蕤,张勋退走。建安四年(公元199年),袁术病死,张勋率残军欲南投孙策,途中被袁术旧部刘勋俘虏,其后下落不明。',
|
||||||
},
|
},
|
||||||
characterTitle:{
|
characterTitle:{
|
||||||
wulan:'#b对决限定武将',
|
wulan:'#b对决限定武将',
|
||||||
|
@ -16076,9 +16700,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return '转换技,锁定技。当你使用一张牌时,<span class="bluetext">阴:你摸X张牌。</span>阳:你弃置X张牌。(X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值)';
|
return '转换技,锁定技。当你使用一张牌时,<span class="bluetext">阴:你摸X张牌。</span>阳:你弃置X张牌。(X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值)';
|
||||||
},
|
},
|
||||||
chuaili:function(player){
|
chuaili:function(player){
|
||||||
if(!player.hasSkill('piaoping',null,null,false)) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你获得一枚“栗”,且令〖揣栗〗于本回合内失效。';
|
if(!player.hasSkill('piaoping',null,null,false)) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你获得一枚“栗”,且令〖惴栗〗于本回合内失效。';
|
||||||
if(player.storage.piaoping) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:<span class="bluetext">处于阳状态,则你将〖漂萍〗转换至阴状态;</span>处于阴状态,则你获得一枚“栗”,且令〖揣栗〗于本回合内失效。';
|
if(player.storage.piaoping) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:<span class="bluetext">处于阳状态,则你将〖漂萍〗转换至阴状态;</span>处于阴状态,则你获得一枚“栗”,且令〖惴栗〗于本回合内失效。';
|
||||||
return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;<span class="bluetext">处于阴状态,则你获得一枚“栗”,且令〖揣栗〗于本回合内失效。</span>';
|
return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;<span class="bluetext">处于阴状态,则你获得一枚“栗”,且令〖惴栗〗于本回合内失效。</span>';
|
||||||
},
|
},
|
||||||
caiyi:function(player){
|
caiyi:function(player){
|
||||||
var current=player.storage.caiyi,list=player.storage.caiyi_info||[[],[]];
|
var current=player.storage.caiyi,list=player.storage.caiyi_info||[[],[]];
|
||||||
|
@ -16130,6 +16754,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
fengfangnv:['re_fengfangnv','fengfangnv'],
|
fengfangnv:['re_fengfangnv','fengfangnv'],
|
||||||
luotong:['luotong','dc_luotong'],
|
luotong:['luotong','dc_luotong'],
|
||||||
mamidi:['mamidi','xin_mamidi'],
|
mamidi:['mamidi','xin_mamidi'],
|
||||||
|
dc_wangchang:['dc_wangchang','tw_wangchang'],
|
||||||
},
|
},
|
||||||
translate:{
|
translate:{
|
||||||
lijue:"李傕",
|
lijue:"李傕",
|
||||||
|
@ -16752,7 +17377,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
wangyue:'王悦',
|
wangyue:'王悦',
|
||||||
huguan:'护关',
|
huguan:'护关',
|
||||||
huguan_info:'一名角色于出牌阶段内使用第一张牌时,若此牌为红色,则你可以声明一种花色。该花色的牌不计入其本回合的手牌上限。',
|
huguan_info:'一名角色于出牌阶段内使用第一张牌时,若此牌为红色,则你可以声明一种花色。该花色的牌不计入其本回合的手牌上限。',
|
||||||
yaopei:'揺佩',
|
yaopei:'摇佩',
|
||||||
yaopei_info:'其他角色的弃牌阶段结束时,若其于本阶段内弃置过的牌的集合A不为空集,则你可以弃置一张与A中的牌花色均不相同的牌。然后你选择一项:①其摸两张牌,你回复1点体力。②其回复1点体力,你摸两张牌。',
|
yaopei_info:'其他角色的弃牌阶段结束时,若其于本阶段内弃置过的牌的集合A不为空集,则你可以弃置一张与A中的牌花色均不相同的牌。然后你选择一项:①其摸两张牌,你回复1点体力。②其回复1点体力,你摸两张牌。',
|
||||||
mingluan:'鸣鸾',
|
mingluan:'鸣鸾',
|
||||||
mingluan_info:'其他角色的结束阶段开始时,若有角色于本回合内回复过体力,则你可以弃置一张牌,然后摸X张牌(X为当前角色的手牌数,且至多摸至5张)。',
|
mingluan_info:'其他角色的结束阶段开始时,若有角色于本回合内回复过体力,则你可以弃置一张牌,然后摸X张牌(X为当前角色的手牌数,且至多摸至5张)。',
|
||||||
|
@ -16909,8 +17534,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
piaoping_info:'转换技,锁定技。当你使用一张牌时,阴:你摸X张牌。阳:你弃置X张牌。(X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值)',
|
piaoping_info:'转换技,锁定技。当你使用一张牌时,阴:你摸X张牌。阳:你弃置X张牌。(X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值)',
|
||||||
tuoxian:'托献',
|
tuoxian:'托献',
|
||||||
tuoxian_info:'当你因执行〖漂萍〗的效果而弃置牌后,你可以弃置一枚“栗”并令一名其他角色获得这些牌,然后令该角色选择一项:⒈弃置区域内等量的牌。⒉令你的〖漂萍〗失效直到回合结束。',
|
tuoxian_info:'当你因执行〖漂萍〗的效果而弃置牌后,你可以弃置一枚“栗”并令一名其他角色获得这些牌,然后令该角色选择一项:⒈弃置区域内等量的牌。⒉令你的〖漂萍〗失效直到回合结束。',
|
||||||
chuaili:'揣栗',
|
chuaili:'惴栗',
|
||||||
chuaili_info:'锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你获得一枚“栗”,且令〖揣栗〗于本回合内失效。',
|
chuaili_info:'锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你获得一枚“栗”,且令〖惴栗〗于本回合内失效。',
|
||||||
dc_liuyu:'刘虞',
|
dc_liuyu:'刘虞',
|
||||||
dcsuifu:'绥抚',
|
dcsuifu:'绥抚',
|
||||||
dcsuifu_info:'其他角色的结束阶段开始时,若你和一号位本回合内累计受到过的伤害值大于1,则你可以将该角色的所有手牌置于牌堆顶,然后视为使用一张【五谷丰登】。',
|
dcsuifu_info:'其他角色的结束阶段开始时,若你和一号位本回合内累计受到过的伤害值大于1,则你可以将该角色的所有手牌置于牌堆顶,然后视为使用一张【五谷丰登】。',
|
||||||
|
@ -16923,6 +17548,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
caiyi_info:'转换技。结束阶段,你可令一名角色选择并执行一项,然后移除此选项。阴:⒈回复X点体力。⒉摸X张牌,⒊复原武将牌。⒋随机执行一个已经移除过的阴选项;阳:⒈受到X点伤害。⒉弃置X张牌。⒊翻面并横置。⒋随机执行一个已经移除过的阳选项。(X为该阴阳态剩余选项的数量)。',
|
caiyi_info:'转换技。结束阶段,你可令一名角色选择并执行一项,然后移除此选项。阴:⒈回复X点体力。⒉摸X张牌,⒊复原武将牌。⒋随机执行一个已经移除过的阴选项;阳:⒈受到X点伤害。⒉弃置X张牌。⒊翻面并横置。⒋随机执行一个已经移除过的阳选项。(X为该阴阳态剩余选项的数量)。',
|
||||||
guili:'归离',
|
guili:'归离',
|
||||||
guili_info:'你的第一个回合开始时,你须选择一名其他角色。该角色每轮的第一个回合结束后,若其本回合内未造成过伤害,则你执行一个额外的回合。',
|
guili_info:'你的第一个回合开始时,你须选择一名其他角色。该角色每轮的第一个回合结束后,若其本回合内未造成过伤害,则你执行一个额外的回合。',
|
||||||
|
dc_jiling:'纪灵',
|
||||||
|
dcshuangren:'双刃',
|
||||||
|
dcshuangren_info:'出牌阶段开始时,你可以和一名其他角色A进行拼点。若你赢,你选择一名角色B,或选择包含A在内的两名角色A和B(B的势力需与A相同),然后视为对被选择的角色使用一张【杀】(不计入次数限制);若你没赢,则你本阶段内不能使用【杀】。',
|
||||||
|
dc_sunru:'孙茹',
|
||||||
|
xiecui:'撷翠',
|
||||||
|
xiecui_info:'当有角色于回合内第一次因执行牌的效果而造成伤害时,你可以令此伤害+1。若其势力为吴,则该角色获得此伤害牌对应的实体牌,且其本回合的手牌上限+1。',
|
||||||
|
youxu:'忧恤',
|
||||||
|
youxu_info:'一名角色A的回合结束时,若其手牌数大于体力值,则你可以展示A的一张牌,然后将此牌交给另一名角色B。若B的体力值为全场最少,则B回复1点体力。',
|
||||||
|
zhaoang:'赵昂',
|
||||||
|
dczhongjie:'忠节',
|
||||||
|
dczhongjie_info:'每轮限一次。当有角色因失去体力而进入濒死状态时,你可令其回复1点体力并摸一张牌。',
|
||||||
|
dcsushou:'夙守',
|
||||||
|
dcsushou_tag:'对方手牌',
|
||||||
|
dcsushou_info:'一名角色的出牌阶段开始时,若其手牌数为全场唯一最多,则你可以失去1点体力并摸X张牌。然后若该角色不是你,则你可以观看其一半的手牌(向下取整),且用至多X张手牌替换其中等量的牌。(X为你已损失的体力值)',
|
||||||
|
dc_wangchang:'王昶',
|
||||||
|
dckaiji:'开济',
|
||||||
|
dckaiji_info:'转换技。出牌阶段限一次,你可以:阴:摸X张牌;阳:弃置至多X张牌(X为你的体力上限且至多为5)。',
|
||||||
|
dcpingxi:'平袭',
|
||||||
|
dcpingxi_info:'结束阶段,若X大于0,则你可以选择至多X名其他角色(X为本回合内因弃置而进入弃牌堆的牌数)。你依次弃置这些角色的各一张牌,然后视为对这些角色使用一张【杀】。',
|
||||||
|
fengfang:'冯方',
|
||||||
|
dcditing:'谛听',
|
||||||
|
dcditing_info:'其他角色的出牌阶段开始时,若你在该角色的攻击范围内,则你可以观看其的X张手牌(X为你的体力值)并选择其中一张,且获得如下效果:①当其使用对应实体牌包含此牌的牌指定你为目标后,你令此牌对你无效。②当其使用对应实体牌包含此牌的牌结算结束后,若你不是此牌的目标,则你摸两张牌。③其出牌阶段结束时,若此牌位于其的手牌区,则你获得此牌。',
|
||||||
|
dcbihuo:'避祸',
|
||||||
|
dcbihuo_info:'①当你受到其他角色造成的伤害后,你可令一名角色下回合摸牌阶段的额定摸牌数+1。②当你对其他角色造成伤害后,你可令一名角色下回合摸牌阶段的额定摸牌数-1。',
|
||||||
|
zhangxun:'张勋',
|
||||||
|
suizheng:'随征',
|
||||||
|
suizheng_info:'结束阶段,你可以选择一名角色A,获得如下效果直到其下回合结束:①A于下回合出牌阶段内使用【杀】的次数上限+1且无距离限制;②A下回合的出牌阶段结束时,你可以选择一名此阶段内受到过A造成的伤害的角色B,视为对B使用一张【杀】。',
|
||||||
|
|
||||||
sp_whlw:"文和乱武",
|
sp_whlw:"文和乱武",
|
||||||
sp_zlzy:"逐鹿中原",
|
sp_zlzy:"逐鹿中原",
|
||||||
|
|
|
@ -3202,7 +3202,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
event.num=player.storage.fanghun;
|
var num=Math.max(2,player.storage.fanghun);
|
||||||
|
num=Math.min(num,8);
|
||||||
|
event.num=num;
|
||||||
player.removeMark('fanghun',player.storage.fanghun);
|
player.removeMark('fanghun',player.storage.fanghun);
|
||||||
player.awakenSkill('twfuhan');
|
player.awakenSkill('twfuhan');
|
||||||
if(_status.characterlist){
|
if(_status.characterlist){
|
||||||
|
@ -4712,7 +4714,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
twchongqi_info:'锁定技。游戏开始时,你令所有角色获得〖非服〗。然后你可减1点体力上限,令一名其他角色获得〖复纂〗。',
|
twchongqi_info:'锁定技。游戏开始时,你令所有角色获得〖非服〗。然后你可减1点体力上限,令一名其他角色获得〖复纂〗。',
|
||||||
twfeifu:'非服',
|
twfeifu:'非服',
|
||||||
twfeifu_info:'转换技。阴:当你成为【杀】的唯一目标后;阳:当你使用【杀】指定唯一目标后;目标角色须交给使用者一张牌。若此牌为装备牌,则使用者可使用此牌。',
|
twfeifu_info:'转换技。阴:当你成为【杀】的唯一目标后;阳:当你使用【杀】指定唯一目标后;目标角色须交给使用者一张牌。若此牌为装备牌,则使用者可使用此牌。',
|
||||||
tw_wangchang:'王昶',
|
tw_wangchang:'TW王昶',
|
||||||
twkaiji:'开济',
|
twkaiji:'开济',
|
||||||
twkaiji_info:'准备阶段,你可令至多X名角色各摸一张牌(X为本局游戏内进入过濒死状态的角色数+1)。若有角色以此法获得了非基本牌,则你摸一张牌。',
|
twkaiji_info:'准备阶段,你可令至多X名角色各摸一张牌(X为本局游戏内进入过濒死状态的角色数+1)。若有角色以此法获得了非基本牌,则你摸一张牌。',
|
||||||
twshepan:'慑叛',
|
twshepan:'慑叛',
|
||||||
|
|
|
@ -1789,9 +1789,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.chooseTarget(get.prompt2('zhenjun'),function(card,player,target){
|
player.chooseTarget(get.prompt2('zhenjun'),function(card,player,target){
|
||||||
return target.countCards('h')>target.hp;
|
return target.countCards('h')>target.hp;
|
||||||
}).ai=function(target){
|
}).set('ai',function(target){
|
||||||
return -get.attitude(_status.event.player,target)*(target.countCards('e')+1);
|
return -get.attitude(_status.event.player,target)*(target.countCards('e')+1);
|
||||||
};
|
});
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var target=result.targets[0];
|
var target=result.targets[0];
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
window.noname_asset_list=[
|
window.noname_asset_list=[
|
||||||
'v1.9.115.2',
|
'v1.9.115.3',
|
||||||
'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',
|
||||||
|
@ -176,7 +176,6 @@ window.noname_asset_list=[
|
||||||
'audio/card/male/yuanjiao.mp3',
|
'audio/card/male/yuanjiao.mp3',
|
||||||
'audio/card/male/zhibi.mp3',
|
'audio/card/male/zhibi.mp3',
|
||||||
|
|
||||||
|
|
||||||
'audio/die/baosanniang.mp3',
|
'audio/die/baosanniang.mp3',
|
||||||
'audio/die/beimihu.mp3',
|
'audio/die/beimihu.mp3',
|
||||||
'audio/die/bianfuren.mp3',
|
'audio/die/bianfuren.mp3',
|
||||||
|
@ -236,8 +235,11 @@ window.noname_asset_list=[
|
||||||
'audio/die/dc_huangchengyan.mp3',
|
'audio/die/dc_huangchengyan.mp3',
|
||||||
'audio/die/dc_huangzu.mp3',
|
'audio/die/dc_huangzu.mp3',
|
||||||
'audio/die/dc_jiben.mp3',
|
'audio/die/dc_jiben.mp3',
|
||||||
|
'audio/die/dc_jiling.mp3',
|
||||||
'audio/die/dc_liuyu.mp3',
|
'audio/die/dc_liuyu.mp3',
|
||||||
'audio/die/dc_luotong.mp3',
|
'audio/die/dc_luotong.mp3',
|
||||||
|
'audio/die/dc_sunru.mp3',
|
||||||
|
'audio/die/dc_wangchang.mp3',
|
||||||
'audio/die/dc_xushu.mp3',
|
'audio/die/dc_xushu.mp3',
|
||||||
'audio/die/dc_yanghu.mp3',
|
'audio/die/dc_yanghu.mp3',
|
||||||
'audio/die/dc_zhuling.mp3',
|
'audio/die/dc_zhuling.mp3',
|
||||||
|
@ -266,6 +268,7 @@ window.noname_asset_list=[
|
||||||
'audio/die/fanyufeng.mp3',
|
'audio/die/fanyufeng.mp3',
|
||||||
'audio/die/fazheng.mp3',
|
'audio/die/fazheng.mp3',
|
||||||
'audio/die/feiyi.mp3',
|
'audio/die/feiyi.mp3',
|
||||||
|
'audio/die/fengfang.mp3',
|
||||||
'audio/die/fengfangnv.mp3',
|
'audio/die/fengfangnv.mp3',
|
||||||
'audio/die/fengxi.mp3',
|
'audio/die/fengxi.mp3',
|
||||||
'audio/die/fuhuanghou.mp3',
|
'audio/die/fuhuanghou.mp3',
|
||||||
|
@ -366,6 +369,7 @@ window.noname_asset_list=[
|
||||||
'audio/die/jikang.mp3',
|
'audio/die/jikang.mp3',
|
||||||
'audio/die/jiling.mp3',
|
'audio/die/jiling.mp3',
|
||||||
'audio/die/jin_guohuai.mp3',
|
'audio/die/jin_guohuai.mp3',
|
||||||
|
'audio/die/jin_jiachong.mp3',
|
||||||
'audio/die/jin_simashi.mp3',
|
'audio/die/jin_simashi.mp3',
|
||||||
'audio/die/jin_simayi.mp3',
|
'audio/die/jin_simayi.mp3',
|
||||||
'audio/die/jin_simazhao.mp3',
|
'audio/die/jin_simazhao.mp3',
|
||||||
|
@ -374,6 +378,7 @@ window.noname_asset_list=[
|
||||||
'audio/die/jin_yanghu.mp3',
|
'audio/die/jin_yanghu.mp3',
|
||||||
'audio/die/jin_yanghuiyu.mp3',
|
'audio/die/jin_yanghuiyu.mp3',
|
||||||
'audio/die/jin_zhangchunhua.mp3',
|
'audio/die/jin_zhangchunhua.mp3',
|
||||||
|
'audio/die/jin_zhouchu.mp3',
|
||||||
'audio/die/jinxuandi.mp3',
|
'audio/die/jinxuandi.mp3',
|
||||||
'audio/die/jsp_guanyu.mp3',
|
'audio/die/jsp_guanyu.mp3',
|
||||||
'audio/die/jsp_huangyueying.mp3',
|
'audio/die/jsp_huangyueying.mp3',
|
||||||
|
@ -525,6 +530,7 @@ window.noname_asset_list=[
|
||||||
'audio/die/re_dongbai.mp3',
|
'audio/die/re_dongbai.mp3',
|
||||||
'audio/die/re_dongcheng.mp3',
|
'audio/die/re_dongcheng.mp3',
|
||||||
'audio/die/re_dongzhuo.mp3',
|
'audio/die/re_dongzhuo.mp3',
|
||||||
|
'audio/die/re_duji.mp3',
|
||||||
'audio/die/re_fazheng.mp3',
|
'audio/die/re_fazheng.mp3',
|
||||||
'audio/die/re_fengfangnv.mp3',
|
'audio/die/re_fengfangnv.mp3',
|
||||||
'audio/die/re_fuhuanghou.mp3',
|
'audio/die/re_fuhuanghou.mp3',
|
||||||
|
@ -623,6 +629,7 @@ window.noname_asset_list=[
|
||||||
'audio/die/re_zhugeliang.mp3',
|
'audio/die/re_zhugeliang.mp3',
|
||||||
'audio/die/re_zhuran.mp3',
|
'audio/die/re_zhuran.mp3',
|
||||||
'audio/die/re_zhurong.mp3',
|
'audio/die/re_zhurong.mp3',
|
||||||
|
'audio/die/re_zuoci.mp3',
|
||||||
'audio/die/ruanhui.mp3',
|
'audio/die/ruanhui.mp3',
|
||||||
'audio/die/ruanyu.mp3',
|
'audio/die/ruanyu.mp3',
|
||||||
'audio/die/ruiji.mp3',
|
'audio/die/ruiji.mp3',
|
||||||
|
@ -663,6 +670,7 @@ window.noname_asset_list=[
|
||||||
'audio/die/simazhao.mp3',
|
'audio/die/simazhao.mp3',
|
||||||
'audio/die/simazhou.mp3',
|
'audio/die/simazhou.mp3',
|
||||||
'audio/die/sp_bianfuren.mp3',
|
'audio/die/sp_bianfuren.mp3',
|
||||||
|
'audio/die/sp_caiwenji.mp3',
|
||||||
'audio/die/sp_caohong.mp3',
|
'audio/die/sp_caohong.mp3',
|
||||||
'audio/die/sp_caoren.mp3',
|
'audio/die/sp_caoren.mp3',
|
||||||
'audio/die/sp_chendong.mp3',
|
'audio/die/sp_chendong.mp3',
|
||||||
|
@ -679,6 +687,7 @@ window.noname_asset_list=[
|
||||||
'audio/die/sp_jiangqing.mp3',
|
'audio/die/sp_jiangqing.mp3',
|
||||||
'audio/die/sp_jiangwan.mp3',
|
'audio/die/sp_jiangwan.mp3',
|
||||||
'audio/die/sp_jiangwei.mp3',
|
'audio/die/sp_jiangwei.mp3',
|
||||||
|
'audio/die/sp_jiaxu.mp3',
|
||||||
'audio/die/sp_kongrong.mp3',
|
'audio/die/sp_kongrong.mp3',
|
||||||
'audio/die/sp_lvfan.mp3',
|
'audio/die/sp_lvfan.mp3',
|
||||||
'audio/die/sp_maojie.mp3',
|
'audio/die/sp_maojie.mp3',
|
||||||
|
@ -686,6 +695,7 @@ window.noname_asset_list=[
|
||||||
'audio/die/sp_mifangfushiren.mp3',
|
'audio/die/sp_mifangfushiren.mp3',
|
||||||
'audio/die/sp_mifuren.mp3',
|
'audio/die/sp_mifuren.mp3',
|
||||||
'audio/die/sp_ol_zhanghe.mp3',
|
'audio/die/sp_ol_zhanghe.mp3',
|
||||||
|
'audio/die/sp_pangde.mp3',
|
||||||
'audio/die/sp_shenpei.mp3',
|
'audio/die/sp_shenpei.mp3',
|
||||||
'audio/die/sp_sufei.mp3',
|
'audio/die/sp_sufei.mp3',
|
||||||
'audio/die/sp_sunshangxiang.mp3',
|
'audio/die/sp_sunshangxiang.mp3',
|
||||||
|
@ -746,6 +756,7 @@ window.noname_asset_list=[
|
||||||
'audio/die/tw_gexuan.mp3',
|
'audio/die/tw_gexuan.mp3',
|
||||||
'audio/die/tw_liuhong.mp3',
|
'audio/die/tw_liuhong.mp3',
|
||||||
'audio/die/tw_puyangxing.mp3',
|
'audio/die/tw_puyangxing.mp3',
|
||||||
|
'audio/die/tw_shen_guanyu.mp3',
|
||||||
'audio/die/tw_tianyu.mp3',
|
'audio/die/tw_tianyu.mp3',
|
||||||
'audio/die/tw_wangcan.mp3',
|
'audio/die/tw_wangcan.mp3',
|
||||||
'audio/die/tw_wangchang.mp3',
|
'audio/die/tw_wangchang.mp3',
|
||||||
|
@ -905,14 +916,17 @@ window.noname_asset_list=[
|
||||||
'audio/die/zhangxingcai.mp3',
|
'audio/die/zhangxingcai.mp3',
|
||||||
'audio/die/zhangxiu.mp3',
|
'audio/die/zhangxiu.mp3',
|
||||||
'audio/die/zhangxuan.mp3',
|
'audio/die/zhangxuan.mp3',
|
||||||
|
'audio/die/zhangxun.mp3',
|
||||||
'audio/die/zhangyao.mp3',
|
'audio/die/zhangyao.mp3',
|
||||||
'audio/die/zhangyi.mp3',
|
'audio/die/zhangyi.mp3',
|
||||||
'audio/die/zhangyì.mp3',
|
'audio/die/zhangyì.mp3',
|
||||||
'audio/die/zhangzhang.mp3',
|
'audio/die/zhangzhang.mp3',
|
||||||
'audio/die/zhangzhongjing.mp3',
|
'audio/die/zhangzhongjing.mp3',
|
||||||
|
'audio/die/zhaoang.mp3',
|
||||||
'audio/die/zhaotongzhaoguang.mp3',
|
'audio/die/zhaotongzhaoguang.mp3',
|
||||||
'audio/die/zhaoxiang.mp3',
|
'audio/die/zhaoxiang.mp3',
|
||||||
'audio/die/zhaoyan.mp3',
|
'audio/die/zhaoyan.mp3',
|
||||||
|
'audio/die/zhaoyǎn.mp3',
|
||||||
'audio/die/zhaoyun.mp3',
|
'audio/die/zhaoyun.mp3',
|
||||||
'audio/die/zhaozhong.mp3',
|
'audio/die/zhaozhong.mp3',
|
||||||
'audio/die/zhengxuan.mp3',
|
'audio/die/zhengxuan.mp3',
|
||||||
|
@ -982,7 +996,6 @@ window.noname_asset_list=[
|
||||||
'audio/effect/tori_no_uta.mp3',
|
'audio/effect/tori_no_uta.mp3',
|
||||||
'audio/effect/win.mp3',
|
'audio/effect/win.mp3',
|
||||||
|
|
||||||
|
|
||||||
'audio/skill/aichen1.mp3',
|
'audio/skill/aichen1.mp3',
|
||||||
'audio/skill/aichen2.mp3',
|
'audio/skill/aichen2.mp3',
|
||||||
'audio/skill/anguo1.mp3',
|
'audio/skill/anguo1.mp3',
|
||||||
|
@ -1332,24 +1345,36 @@ window.noname_asset_list=[
|
||||||
'audio/skill/dbzhuifeng2.mp3',
|
'audio/skill/dbzhuifeng2.mp3',
|
||||||
'audio/skill/dcanxu1.mp3',
|
'audio/skill/dcanxu1.mp3',
|
||||||
'audio/skill/dcanxu2.mp3',
|
'audio/skill/dcanxu2.mp3',
|
||||||
|
'audio/skill/dcbihuo1.mp3',
|
||||||
|
'audio/skill/dcbihuo2.mp3',
|
||||||
'audio/skill/dcdeshao1.mp3',
|
'audio/skill/dcdeshao1.mp3',
|
||||||
'audio/skill/dcdeshao2.mp3',
|
'audio/skill/dcdeshao2.mp3',
|
||||||
|
'audio/skill/dcditing1.mp3',
|
||||||
|
'audio/skill/dcditing2.mp3',
|
||||||
'audio/skill/dcjianying1.mp3',
|
'audio/skill/dcjianying1.mp3',
|
||||||
'audio/skill/dcjianying2.mp3',
|
'audio/skill/dcjianying2.mp3',
|
||||||
'audio/skill/dcjiezhen1.mp3',
|
'audio/skill/dcjiezhen1.mp3',
|
||||||
'audio/skill/dcjiezhen2.mp3',
|
'audio/skill/dcjiezhen2.mp3',
|
||||||
'audio/skill/dcjinggong1.mp3',
|
'audio/skill/dcjinggong1.mp3',
|
||||||
'audio/skill/dcjinggong2.mp3',
|
'audio/skill/dcjinggong2.mp3',
|
||||||
|
'audio/skill/dckaiji1.mp3',
|
||||||
|
'audio/skill/dckaiji2.mp3',
|
||||||
'audio/skill/dcmingfa1.mp3',
|
'audio/skill/dcmingfa1.mp3',
|
||||||
'audio/skill/dcmingfa2.mp3',
|
'audio/skill/dcmingfa2.mp3',
|
||||||
'audio/skill/dcpijing1.mp3',
|
'audio/skill/dcpijing1.mp3',
|
||||||
'audio/skill/dcpijing2.mp3',
|
'audio/skill/dcpijing2.mp3',
|
||||||
|
'audio/skill/dcpingxi1.mp3',
|
||||||
|
'audio/skill/dcpingxi2.mp3',
|
||||||
'audio/skill/dcqiaomeng1.mp3',
|
'audio/skill/dcqiaomeng1.mp3',
|
||||||
'audio/skill/dcqiaomeng2.mp3',
|
'audio/skill/dcqiaomeng2.mp3',
|
||||||
'audio/skill/dcshibei1.mp3',
|
'audio/skill/dcshibei1.mp3',
|
||||||
'audio/skill/dcshibei2.mp3',
|
'audio/skill/dcshibei2.mp3',
|
||||||
|
'audio/skill/dcshuangren1.mp3',
|
||||||
|
'audio/skill/dcshuangren2.mp3',
|
||||||
'audio/skill/dcsuifu1.mp3',
|
'audio/skill/dcsuifu1.mp3',
|
||||||
'audio/skill/dcsuifu2.mp3',
|
'audio/skill/dcsuifu2.mp3',
|
||||||
|
'audio/skill/dcsushou1.mp3',
|
||||||
|
'audio/skill/dcsushou2.mp3',
|
||||||
'audio/skill/dcxiaojuan1.mp3',
|
'audio/skill/dcxiaojuan1.mp3',
|
||||||
'audio/skill/dcxiaojuan2.mp3',
|
'audio/skill/dcxiaojuan2.mp3',
|
||||||
'audio/skill/dcyinshi1.mp3',
|
'audio/skill/dcyinshi1.mp3',
|
||||||
|
@ -1358,6 +1383,8 @@ window.noname_asset_list=[
|
||||||
'audio/skill/dczecai2.mp3',
|
'audio/skill/dczecai2.mp3',
|
||||||
'audio/skill/dczhanyi1.mp3',
|
'audio/skill/dczhanyi1.mp3',
|
||||||
'audio/skill/dczhanyi2.mp3',
|
'audio/skill/dczhanyi2.mp3',
|
||||||
|
'audio/skill/dczhongjie1.mp3',
|
||||||
|
'audio/skill/dczhongjie2.mp3',
|
||||||
'audio/skill/dczhuiyi1.mp3',
|
'audio/skill/dczhuiyi1.mp3',
|
||||||
'audio/skill/dczhuiyi2.mp3',
|
'audio/skill/dczhuiyi2.mp3',
|
||||||
'audio/skill/dczimu1.mp3',
|
'audio/skill/dczimu1.mp3',
|
||||||
|
@ -1893,6 +1920,8 @@ window.noname_asset_list=[
|
||||||
'audio/skill/jiangchi2.mp3',
|
'audio/skill/jiangchi2.mp3',
|
||||||
'audio/skill/jianglue1.mp3',
|
'audio/skill/jianglue1.mp3',
|
||||||
'audio/skill/jianglue2.mp3',
|
'audio/skill/jianglue2.mp3',
|
||||||
|
'audio/skill/jianhui1.mp3',
|
||||||
|
'audio/skill/jianhui2.mp3',
|
||||||
'audio/skill/jianshu1.mp3',
|
'audio/skill/jianshu1.mp3',
|
||||||
'audio/skill/jianshu2.mp3',
|
'audio/skill/jianshu2.mp3',
|
||||||
'audio/skill/jianxiong1.mp3',
|
'audio/skill/jianxiong1.mp3',
|
||||||
|
@ -2757,6 +2786,8 @@ window.noname_asset_list=[
|
||||||
'audio/skill/ranshang2.mp3',
|
'audio/skill/ranshang2.mp3',
|
||||||
'audio/skill/ranshang21.mp3',
|
'audio/skill/ranshang21.mp3',
|
||||||
'audio/skill/ranshang22.mp3',
|
'audio/skill/ranshang22.mp3',
|
||||||
|
'audio/skill/reandong1.mp3',
|
||||||
|
'audio/skill/reandong2.mp3',
|
||||||
'audio/skill/reanjian1.mp3',
|
'audio/skill/reanjian1.mp3',
|
||||||
'audio/skill/reanjian2.mp3',
|
'audio/skill/reanjian2.mp3',
|
||||||
'audio/skill/reanxu1.mp3',
|
'audio/skill/reanxu1.mp3',
|
||||||
|
@ -3006,6 +3037,8 @@ window.noname_asset_list=[
|
||||||
'audio/skill/reyicong2.mp3',
|
'audio/skill/reyicong2.mp3',
|
||||||
'audio/skill/reyiji1.mp3',
|
'audio/skill/reyiji1.mp3',
|
||||||
'audio/skill/reyiji2.mp3',
|
'audio/skill/reyiji2.mp3',
|
||||||
|
'audio/skill/reyingshi1.mp3',
|
||||||
|
'audio/skill/reyingshi2.mp3',
|
||||||
'audio/skill/reyingshui1.mp3',
|
'audio/skill/reyingshui1.mp3',
|
||||||
'audio/skill/reyingshui2.mp3',
|
'audio/skill/reyingshui2.mp3',
|
||||||
'audio/skill/reyingzi_gexuan1.mp3',
|
'audio/skill/reyingzi_gexuan1.mp3',
|
||||||
|
@ -3097,6 +3130,8 @@ window.noname_asset_list=[
|
||||||
'audio/skill/sgrenwang2.mp3',
|
'audio/skill/sgrenwang2.mp3',
|
||||||
'audio/skill/shameng1.mp3',
|
'audio/skill/shameng1.mp3',
|
||||||
'audio/skill/shameng2.mp3',
|
'audio/skill/shameng2.mp3',
|
||||||
|
'audio/skill/shanduan1.mp3',
|
||||||
|
'audio/skill/shanduan2.mp3',
|
||||||
'audio/skill/shangshi1.mp3',
|
'audio/skill/shangshi1.mp3',
|
||||||
'audio/skill/shangshi2.mp3',
|
'audio/skill/shangshi2.mp3',
|
||||||
'audio/skill/shangshix1.mp3',
|
'audio/skill/shangshix1.mp3',
|
||||||
|
@ -3364,6 +3399,8 @@ window.noname_asset_list=[
|
||||||
'audio/skill/stianyi2.mp3',
|
'audio/skill/stianyi2.mp3',
|
||||||
'audio/skill/suishi1.mp3',
|
'audio/skill/suishi1.mp3',
|
||||||
'audio/skill/suishi2.mp3',
|
'audio/skill/suishi2.mp3',
|
||||||
|
'audio/skill/suizheng1.mp3',
|
||||||
|
'audio/skill/suizheng2.mp3',
|
||||||
'audio/skill/sushou1.mp3',
|
'audio/skill/sushou1.mp3',
|
||||||
'audio/skill/sushou2.mp3',
|
'audio/skill/sushou2.mp3',
|
||||||
'audio/skill/suzi1.mp3',
|
'audio/skill/suzi1.mp3',
|
||||||
|
@ -3456,6 +3493,8 @@ window.noname_asset_list=[
|
||||||
'audio/skill/tongli2.mp3',
|
'audio/skill/tongli2.mp3',
|
||||||
'audio/skill/tongqu1.mp3',
|
'audio/skill/tongqu1.mp3',
|
||||||
'audio/skill/tongqu2.mp3',
|
'audio/skill/tongqu2.mp3',
|
||||||
|
'audio/skill/tongxie1.mp3',
|
||||||
|
'audio/skill/tongxie2.mp3',
|
||||||
'audio/skill/tongyuan1.mp3',
|
'audio/skill/tongyuan1.mp3',
|
||||||
'audio/skill/tongyuan2.mp3',
|
'audio/skill/tongyuan2.mp3',
|
||||||
'audio/skill/tspowei1.mp3',
|
'audio/skill/tspowei1.mp3',
|
||||||
|
@ -3523,6 +3562,8 @@ window.noname_asset_list=[
|
||||||
'audio/skill/twsidai2.mp3',
|
'audio/skill/twsidai2.mp3',
|
||||||
'audio/skill/twsidao1.mp3',
|
'audio/skill/twsidao1.mp3',
|
||||||
'audio/skill/twsidao2.mp3',
|
'audio/skill/twsidao2.mp3',
|
||||||
|
'audio/skill/twwuhun1.mp3',
|
||||||
|
'audio/skill/twwuhun2.mp3',
|
||||||
'audio/skill/twyangshi1.mp3',
|
'audio/skill/twyangshi1.mp3',
|
||||||
'audio/skill/twyangshi2.mp3',
|
'audio/skill/twyangshi2.mp3',
|
||||||
'audio/skill/twyiju1.mp3',
|
'audio/skill/twyiju1.mp3',
|
||||||
|
@ -3708,6 +3749,8 @@ window.noname_asset_list=[
|
||||||
'audio/skill/xibing2.mp3',
|
'audio/skill/xibing2.mp3',
|
||||||
'audio/skill/xiechan1.mp3',
|
'audio/skill/xiechan1.mp3',
|
||||||
'audio/skill/xiechan2.mp3',
|
'audio/skill/xiechan2.mp3',
|
||||||
|
'audio/skill/xiecui1.mp3',
|
||||||
|
'audio/skill/xiecui2.mp3',
|
||||||
'audio/skill/xiemu1.mp3',
|
'audio/skill/xiemu1.mp3',
|
||||||
'audio/skill/xiemu2.mp3',
|
'audio/skill/xiemu2.mp3',
|
||||||
'audio/skill/xijue_tuxi1.mp3',
|
'audio/skill/xijue_tuxi1.mp3',
|
||||||
|
@ -3969,6 +4012,8 @@ window.noname_asset_list=[
|
||||||
'audio/skill/xinzongxuan2.mp3',
|
'audio/skill/xinzongxuan2.mp3',
|
||||||
'audio/skill/xiongmang1.mp3',
|
'audio/skill/xiongmang1.mp3',
|
||||||
'audio/skill/xiongmang2.mp3',
|
'audio/skill/xiongmang2.mp3',
|
||||||
|
'audio/skill/xiongshu1.mp3',
|
||||||
|
'audio/skill/xiongshu2.mp3',
|
||||||
'audio/skill/xiongsuan1.mp3',
|
'audio/skill/xiongsuan1.mp3',
|
||||||
'audio/skill/xiongsuan2.mp3',
|
'audio/skill/xiongsuan2.mp3',
|
||||||
'audio/skill/xiongyi1.mp3',
|
'audio/skill/xiongyi1.mp3',
|
||||||
|
@ -4095,6 +4140,8 @@ window.noname_asset_list=[
|
||||||
'audio/skill/yijiao2.mp3',
|
'audio/skill/yijiao2.mp3',
|
||||||
'audio/skill/yijue1.mp3',
|
'audio/skill/yijue1.mp3',
|
||||||
'audio/skill/yijue2.mp3',
|
'audio/skill/yijue2.mp3',
|
||||||
|
'audio/skill/yilie1.mp3',
|
||||||
|
'audio/skill/yilie2.mp3',
|
||||||
'audio/skill/yimie1.mp3',
|
'audio/skill/yimie1.mp3',
|
||||||
'audio/skill/yimie2.mp3',
|
'audio/skill/yimie2.mp3',
|
||||||
'audio/skill/yinbing1.mp3',
|
'audio/skill/yinbing1.mp3',
|
||||||
|
@ -4183,6 +4230,8 @@ window.noname_asset_list=[
|
||||||
'audio/skill/youdi.mp3',
|
'audio/skill/youdi.mp3',
|
||||||
'audio/skill/youlong1.mp3',
|
'audio/skill/youlong1.mp3',
|
||||||
'audio/skill/youlong2.mp3',
|
'audio/skill/youlong2.mp3',
|
||||||
|
'audio/skill/youxu1.mp3',
|
||||||
|
'audio/skill/youxu2.mp3',
|
||||||
'audio/skill/youyan1.mp3',
|
'audio/skill/youyan1.mp3',
|
||||||
'audio/skill/youyan2.mp3',
|
'audio/skill/youyan2.mp3',
|
||||||
'audio/skill/yuanchou1.mp3',
|
'audio/skill/yuanchou1.mp3',
|
||||||
|
@ -5585,6 +5634,16 @@ window.noname_asset_list=[
|
||||||
'image/character/xin_mamidi.jpg',
|
'image/character/xin_mamidi.jpg',
|
||||||
'image/character/xin_quancong.jpg',
|
'image/character/xin_quancong.jpg',
|
||||||
'image/character/zhangxuan.jpg',
|
'image/character/zhangxuan.jpg',
|
||||||
|
'image/character/dc_jiling.jpg',
|
||||||
|
'image/character/dc_sunru.jpg',
|
||||||
|
'image/character/dc_wangchang.jpg',
|
||||||
|
'image/character/fengfang.jpg',
|
||||||
|
'image/character/jin_zhouchu.jpg',
|
||||||
|
'image/character/ns_zhonglimu.jpg',
|
||||||
|
'image/character/tw_shen_guanyu.jpg',
|
||||||
|
'image/character/zhangxun.jpg',
|
||||||
|
'image/character/zhaoang.jpg',
|
||||||
|
'image/character/zhaoyǎn.jpg',
|
||||||
|
|
||||||
'image/character/baiwuchang.jpg',
|
'image/character/baiwuchang.jpg',
|
||||||
'image/character/baosanniang.jpg',
|
'image/character/baosanniang.jpg',
|
||||||
|
|
41
game/game.js
|
@ -10671,9 +10671,12 @@
|
||||||
buttons.classList.add('guanxing');
|
buttons.classList.add('guanxing');
|
||||||
buttons._link=i;
|
buttons._link=i;
|
||||||
if(list[i][1]){
|
if(list[i][1]){
|
||||||
ui.create.buttons(list[i][1],'card',buttons);
|
var cardsb=ui.create.buttons(list[i][1],'card',buttons);
|
||||||
|
if(list[i][2]&&typeof list[i][2]=='string'){
|
||||||
|
for(var ij of cardsb) ij.node.gaintag.innerHTML=get.translation(list[i][2]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(list[i][2]) buttons.textPrompt=list[i][2];
|
if(list[i][2]&&typeof list[i][2]=='function') buttons.textPrompt=list[i][2];
|
||||||
}
|
}
|
||||||
event.dialog.open();
|
event.dialog.open();
|
||||||
updateButtons();
|
updateButtons();
|
||||||
|
@ -12302,8 +12305,9 @@
|
||||||
if(lib.card[name].cancel){
|
if(lib.card[name].cancel){
|
||||||
var next=game.createEvent(name+'Cancel');
|
var next=game.createEvent(name+'Cancel');
|
||||||
next.setContent(lib.card[name].cancel);
|
next.setContent(lib.card[name].cancel);
|
||||||
next.card=event.card;
|
|
||||||
next.cards=[event.card];
|
next.cards=[event.card];
|
||||||
|
if(!event.card.viewAs) next.card=get.autoViewAs(event.card);
|
||||||
|
else next.card=get.autoViewAs({name:name},next.cards);
|
||||||
next.player=player;
|
next.player=player;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12311,8 +12315,9 @@
|
||||||
var next=game.createEvent(name);
|
var next=game.createEvent(name);
|
||||||
next.setContent(lib.card[name].effect);
|
next.setContent(lib.card[name].effect);
|
||||||
next._result=result;
|
next._result=result;
|
||||||
next.card=event.card;
|
|
||||||
next.cards=[event.card];
|
next.cards=[event.card];
|
||||||
|
if(!event.card.viewAs) next.card=get.autoViewAs(event.card);
|
||||||
|
else next.card=get.autoViewAs({name:name},next.cards);
|
||||||
next.player=player;
|
next.player=player;
|
||||||
}
|
}
|
||||||
ui.clear();
|
ui.clear();
|
||||||
|
@ -15719,6 +15724,8 @@
|
||||||
'step 1'
|
'step 1'
|
||||||
player.gain(event.cards2);
|
player.gain(event.cards2);
|
||||||
target.gain(event.cards1);
|
target.gain(event.cards1);
|
||||||
|
'step 2'
|
||||||
|
game.delayx();
|
||||||
},
|
},
|
||||||
swapHandcardsx:function(){
|
swapHandcardsx:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
|
@ -21375,7 +21382,10 @@
|
||||||
game.cardsDiscard(card);
|
game.cardsDiscard(card);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(card.name!=name){
|
if(card.cards&&card.cards.length){
|
||||||
|
target.addJudge(name,card.cards[0]);
|
||||||
|
}
|
||||||
|
else if(card.name!=name){
|
||||||
target.addJudge(name,card);
|
target.addJudge(name,card);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -21579,7 +21589,7 @@
|
||||||
var checkShow=this.checkShow(name);
|
var checkShow=this.checkShow(name);
|
||||||
if(lib.translate[name]){
|
if(lib.translate[name]){
|
||||||
this.trySkillAnimate(name,popname,checkShow);
|
this.trySkillAnimate(name,popname,checkShow);
|
||||||
if(typeof targets=='object'&&targets.length){
|
if(Array.isArray(targets)&&targets.length){
|
||||||
var str;
|
var str;
|
||||||
if(targets[0]==this){
|
if(targets[0]==this){
|
||||||
str='#b自己';
|
str='#b自己';
|
||||||
|
@ -34016,7 +34026,7 @@
|
||||||
info=get.info(skills2[i]);
|
info=get.info(skills2[i]);
|
||||||
enable=false;
|
enable=false;
|
||||||
if(typeof info.enable=='function') enable=info.enable(event);
|
if(typeof info.enable=='function') enable=info.enable(event);
|
||||||
else if(typeof info.enable=='object') enable=info.enable.contains(event.name);
|
else if(Array.isArray(info.enable)) enable=info.enable.contains(event.name);
|
||||||
else if(info.enable=='phaseUse') enable=(event.type=='phase');
|
else if(info.enable=='phaseUse') enable=(event.type=='phase');
|
||||||
else if(typeof info.enable=='string') enable=(info.enable==event.name);
|
else if(typeof info.enable=='string') enable=(info.enable==event.name);
|
||||||
if(enable){
|
if(enable){
|
||||||
|
@ -46692,6 +46702,7 @@
|
||||||
else{
|
else{
|
||||||
ui.create.div('.name','<span style="opacity:0.6">'+(button.info[i][0]||'无名玩家'),node);
|
ui.create.div('.name','<span style="opacity:0.6">'+(button.info[i][0]||'无名玩家'),node);
|
||||||
}
|
}
|
||||||
|
//show ID
|
||||||
//ui.create.div('.videostatus',node,button.info[i][5]);
|
//ui.create.div('.videostatus',node,button.info[i][5]);
|
||||||
//node.classList.add('videonodestatus');
|
//node.classList.add('videonodestatus');
|
||||||
if(button.info[i][3]){
|
if(button.info[i][3]){
|
||||||
|
@ -52754,7 +52765,7 @@
|
||||||
if(filter.hasOwnProperty(j)){
|
if(filter.hasOwnProperty(j)){
|
||||||
if(get.itemtype(arguments[i])=='card'){
|
if(get.itemtype(arguments[i])=='card'){
|
||||||
if(j=='name'){
|
if(j=='name'){
|
||||||
if(typeof filter[j]=='object'){
|
if(Array.isArray(filter[j])){
|
||||||
if(filter[j].contains(get.name(arguments[i]))==false) return false;
|
if(filter[j].contains(get.name(arguments[i]))==false) return false;
|
||||||
}
|
}
|
||||||
else if(typeof filter[j]=='string'){
|
else if(typeof filter[j]=='string'){
|
||||||
|
@ -52762,7 +52773,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(j=='type'){
|
else if(j=='type'){
|
||||||
if(typeof filter[j]=='object'){
|
if(Array.isArray(filter[j])){
|
||||||
if(filter[j].contains(get.type(arguments[i]))==false) return false;
|
if(filter[j].contains(get.type(arguments[i]))==false) return false;
|
||||||
}
|
}
|
||||||
else if(typeof filter[j]=='string'){
|
else if(typeof filter[j]=='string'){
|
||||||
|
@ -52770,7 +52781,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(j=='subtype'){
|
else if(j=='subtype'){
|
||||||
if(typeof filter[j]=='object'){
|
if(Array.isArray(filter[j])){
|
||||||
if(filter[j].contains(get.subtype(arguments[i]))==false) return false;
|
if(filter[j].contains(get.subtype(arguments[i]))==false) return false;
|
||||||
}
|
}
|
||||||
else if(typeof filter[j]=='string'){
|
else if(typeof filter[j]=='string'){
|
||||||
|
@ -52778,7 +52789,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(j=='color'){
|
else if(j=='color'){
|
||||||
if(typeof filter[j]=='object'){
|
if(Array.isArray(filter[j])){
|
||||||
if(filter[j].contains(get.color(arguments[i]))==false) return false;
|
if(filter[j].contains(get.color(arguments[i]))==false) return false;
|
||||||
}
|
}
|
||||||
else if(typeof filter[j]=='string'){
|
else if(typeof filter[j]=='string'){
|
||||||
|
@ -52786,7 +52797,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(j=='suit'){
|
else if(j=='suit'){
|
||||||
if(typeof filter[j]=='object'){
|
if(Array.isArray(filter[j])){
|
||||||
if(filter[j].contains(get.suit(arguments[i]))==false) return false;
|
if(filter[j].contains(get.suit(arguments[i]))==false) return false;
|
||||||
}
|
}
|
||||||
else if(typeof filter[j]=='string'){
|
else if(typeof filter[j]=='string'){
|
||||||
|
@ -52794,14 +52805,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(j=='number'){
|
else if(j=='number'){
|
||||||
if(typeof filter[j]=='object'){
|
if(Array.isArray(filter[j])){
|
||||||
if(filter[j].contains(get.number(arguments[i]))==false) return false;
|
if(filter[j].contains(get.number(arguments[i]))==false) return false;
|
||||||
}
|
}
|
||||||
else if(typeof filter[j]=='string'){
|
else if(typeof filter[j]=='string'){
|
||||||
if(get.number(arguments[i])!=filter[j]) return false;
|
if(get.number(arguments[i])!=filter[j]) return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(typeof filter[j]=='object'){
|
else if(Array.isArray(filter[j])){
|
||||||
if(filter[j].contains(arguments[i][j])==false) return false;
|
if(filter[j].contains(arguments[i][j])==false) return false;
|
||||||
}
|
}
|
||||||
else if(typeof filter[j]=='string'){
|
else if(typeof filter[j]=='string'){
|
||||||
|
@ -53073,7 +53084,7 @@
|
||||||
return lib.translate[skill+'_info'];
|
return lib.translate[skill+'_info'];
|
||||||
}
|
}
|
||||||
case 'cardCount':{
|
case 'cardCount':{
|
||||||
if(typeof content=='object'&&typeof content.length=='number'){
|
if(Array.isArray(content)){
|
||||||
return '共有'+get.cnNumber(content.length)+'张牌';
|
return '共有'+get.cnNumber(content.length)+'张牌';
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
window.noname_update={
|
window.noname_update={
|
||||||
version:'1.9.115.2.1',
|
version:'1.9.115.3',
|
||||||
update:'1.9.115.2',
|
update:'1.9.115.2.1',
|
||||||
changeLog:[
|
changeLog:[
|
||||||
'李密入选稿公布',
|
'钟离牧入选稿公布',
|
||||||
'OL界荀彧',
|
'OL周处、赵俨',
|
||||||
'十周年曹华,刘虞、秦宜禄、张嫙',
|
'十周年纪灵、孙茹、王昶、冯芳、张勋、赵昂',
|
||||||
'移动版阮慧、马日磾、全琮i',
|
'海外服神关羽',
|
||||||
'技能调整与bug修复',
|
'技能调整与bug修复',
|
||||||
],
|
],
|
||||||
files:[
|
files:[
|
||||||
|
@ -20,33 +20,33 @@ window.noname_update={
|
||||||
//'card/swd.js',
|
//'card/swd.js',
|
||||||
//'card/yunchou.js',
|
//'card/yunchou.js',
|
||||||
//'card/yingbian.js',
|
//'card/yingbian.js',
|
||||||
//'card/yongjian.js',
|
'card/yongjian.js',
|
||||||
//'card/zhenfa.js',
|
//'card/zhenfa.js',
|
||||||
//'card/zhulu.js',
|
//'card/zhulu.js',
|
||||||
'character/diy.js',
|
'character/diy.js',
|
||||||
//'character/extra.js',
|
'character/extra.js',
|
||||||
//'character/hearth.js',
|
//'character/hearth.js',
|
||||||
//'character/gujian.js',
|
//'character/gujian.js',
|
||||||
//'character/gwent.js',
|
//'character/gwent.js',
|
||||||
//'character/hearth.js',
|
//'character/hearth.js',
|
||||||
//'character/mobile.js',
|
'character/mobile.js',
|
||||||
//'character/mtg.js',
|
//'character/mtg.js',
|
||||||
//'character/offline.js',
|
//'character/offline.js',
|
||||||
//'character/old.js',
|
//'character/old.js',
|
||||||
//'character/ow.js',
|
//'character/ow.js',
|
||||||
//'character/rank.js',
|
'character/rank.js',
|
||||||
//'character/refresh.js',
|
'character/refresh.js',
|
||||||
//'character/sb.js',
|
//'character/sb.js',
|
||||||
//'character/shenhua.js',
|
'character/shenhua.js',
|
||||||
'character/sp.js',
|
'character/sp.js',
|
||||||
'character/sp2.js',
|
'character/sp2.js',
|
||||||
//'character/standard.js',
|
//'character/standard.js',
|
||||||
//'character/tw.js',
|
'character/tw.js',
|
||||||
//'character/swd.js',
|
//'character/swd.js',
|
||||||
//'character/xianjian.js',
|
//'character/xianjian.js',
|
||||||
//'character/xinghuoliaoyuan.js',
|
//'character/xinghuoliaoyuan.js',
|
||||||
//'character/yingbian.js',
|
'character/yingbian.js',
|
||||||
//'character/yijiang.js',
|
'character/yijiang.js',
|
||||||
//'character/yxs.js',
|
//'character/yxs.js',
|
||||||
//'extension/boss/extension.js',
|
//'extension/boss/extension.js',
|
||||||
//'layout/default/layout.css',
|
//'layout/default/layout.css',
|
||||||
|
|
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 86 KiB |
After Width: | Height: | Size: 158 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 77 KiB |