My Soul, Your Beats!
This commit is contained in:
parent
07f4cd9a47
commit
70290798f9
|
@ -1077,7 +1077,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
["diamond",13,"hualiu"],
|
||||
["club",1,"baiyin"],
|
||||
["spade",2,"tengjia"],
|
||||
["club",2,"tengjia",'fire'],
|
||||
["club",2,"tengjia"],
|
||||
["spade",1,"guding"],
|
||||
["diamond",1,"zhuque"],
|
||||
|
||||
|
|
|
@ -223,13 +223,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
//range:{global:1},
|
||||
content:function(){
|
||||
target.$gain2(cards);
|
||||
if(target==targets[0]&&cards.length) target.$gain2(cards);
|
||||
target.storage.mapodoufu=card;
|
||||
target.storage.mapodoufu_markcount=2;
|
||||
target.addSkill('mapodoufu');
|
||||
},
|
||||
ai:{
|
||||
order:2,
|
||||
order:1,
|
||||
value:5,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
|
@ -1491,7 +1491,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
mapodoufu:{
|
||||
mark:'card',
|
||||
trigger:{player:'phaseEnd'},
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
nopop:true,
|
||||
|
|
|
@ -598,7 +598,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
for(var i=0;i<dialog.buttons.length;i++){
|
||||
if(dialog.buttons[i].link==card){
|
||||
button=dialog.buttons[i];
|
||||
button.querySelector('.info').innerHTML=get.translation(target);
|
||||
button.querySelector('.info').innerHTML=function(target){
|
||||
if(target._tempTranslate) return target._tempTranslate;
|
||||
var name=target.name;
|
||||
if(lib.translate[name+'_ab']) return lib.translate[name+'_ab'];
|
||||
return get.translation(name);
|
||||
}(target);
|
||||
dialog.buttons.remove(button);
|
||||
break;
|
||||
}
|
||||
|
@ -619,7 +624,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
}
|
||||
},card,dialog.videoId,get.translation(target),capt);
|
||||
},card,dialog.videoId,function(target){
|
||||
if(target._tempTranslate) return target._tempTranslate;
|
||||
var name=target.name;
|
||||
if(lib.translate[name+'_ab']) return lib.translate[name+'_ab'];
|
||||
return get.translation(name);
|
||||
}(target),capt);
|
||||
}
|
||||
dialog.content.firstChild.innerHTML=capt;
|
||||
game.addVideo('dialogCapt',null,[dialog.videoId,dialog.content.firstChild.innerHTML]);
|
||||
|
@ -2062,7 +2072,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
if(typeof aiii=='number') return aiii;
|
||||
}
|
||||
if(Math.abs(get.attitude(_status.event.player,source))<3) return 0;
|
||||
return -get.attitude(_status.event.player,source)
|
||||
return -get.attitude(_status.event.player,source)*state;
|
||||
}
|
||||
},
|
||||
source:target,
|
||||
|
|
|
@ -114,7 +114,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
for(var i=0;i<dialog.buttons.length;i++){
|
||||
if(dialog.buttons[i].link==card){
|
||||
button=dialog.buttons[i];
|
||||
button.querySelector('.info').innerHTML=get.translation(target);
|
||||
button.querySelector('.info').innerHTML=function(target){
|
||||
if(target._tempTranslate) return target._tempTranslate;
|
||||
var name=target.name;
|
||||
if(lib.translate[name+'_ab']) return lib.translate[name+'_ab'];
|
||||
return get.translation(name);
|
||||
}(target);
|
||||
dialog.buttons.remove(button);
|
||||
break;
|
||||
}
|
||||
|
@ -135,7 +140,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
}
|
||||
},card,dialog.videoId,get.translation(target),capt);
|
||||
},card,dialog.videoId,function(target){
|
||||
if(target._tempTranslate) return target._tempTranslate;
|
||||
var name=target.name;
|
||||
if(lib.translate[name+'_ab']) return lib.translate[name+'_ab'];
|
||||
return get.translation(name);
|
||||
}(target),capt);
|
||||
}
|
||||
dialog.content.firstChild.innerHTML=capt;
|
||||
game.addVideo('dialogCapt',null,[dialog.videoId,dialog.content.firstChild.innerHTML]);
|
||||
|
|
442
character/diy.js
442
character/diy.js
|
@ -44,6 +44,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_tomoya:['male','key',4,['tomoya_shangxian','tomoya_wangjin']],
|
||||
key_nagisa:['female','key',3,['nagisa_tiandu','nagisa_fuxin']],
|
||||
key_ayato:['male','key',3,['ayato_jianshen','ayato_zonghuan']],
|
||||
key_ao:['female','key',3,['ao_xishi','ao_kuihun','ao_shixin']],
|
||||
key_yuzuru:['male','key',5,['yuzuru_wuxin','yuzuru_deyi']],
|
||||
sp_key_kanade:['female','key',3,['kanade_mapo','kanade_benzhan']],
|
||||
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
|
||||
// diy_hanlong:['male','wei',4,['siji','ciqiu']],
|
||||
diy_feishi:['male','shu',3,['shuaiyan','moshou']],
|
||||
|
@ -126,7 +129,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy:{
|
||||
diy_tieba:["diy_wenyang","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_zhangwei"],
|
||||
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
|
||||
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_kagari","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato"],
|
||||
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_kagari","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade"],
|
||||
diy_yongjian:["ns_chendao","yj_caoang"],
|
||||
},
|
||||
},
|
||||
|
@ -142,6 +145,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
|
||||
},
|
||||
characterTitle:{
|
||||
sp_key_kanade:'#rAngel Beats!',
|
||||
key_yuzuru:'#rAngel Beats!',
|
||||
key_tsumugi:'#bSummer Pockets',
|
||||
key_ayato:'#rAngel Beats!',
|
||||
key_nagisa:'#gClannad',
|
||||
key_tomoya:'#gClannad',
|
||||
|
@ -207,9 +213,411 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ns_liuzhang:'#r矮子剑薄荷糖',
|
||||
},
|
||||
perfectPair:{
|
||||
yuji:['zuoci']
|
||||
yuji:['zuoci'],
|
||||
key_riki:['key_rin','key_saya','key_kyousuke'],
|
||||
key_komari:['key_rin','key_sasami'],
|
||||
key_masato:['key_kengo'],
|
||||
key_yuiko:['key_harukakanata'],
|
||||
key_doruji:['key_rin'],
|
||||
key_tomoya:['key_nagisa','key_sunohara'],
|
||||
key_ao:['key_inari'],
|
||||
key_yuzuru:['key_hinata','key_kanade','key_ayato'],
|
||||
key_yuri:['key_kanade'],
|
||||
key_hinata:['key_yui'],
|
||||
key_iwasawa:['key_hisako'],
|
||||
},
|
||||
skill:{
|
||||
kanade_mapo:{
|
||||
derivation:'mapodoufu',
|
||||
enable:'chooseToUse',
|
||||
viewAs:{name:'mapodoufu'},
|
||||
filterCard:{suit:'heart'},
|
||||
viewAsFilter:function(player){
|
||||
return player.countCards('he',{suit:'heart'})>0;
|
||||
},
|
||||
position:'he',
|
||||
mod:{
|
||||
selectTarget:function(card,player,range){
|
||||
if(card.name=='mapodoufu'&&range[1]!=-1) range[1]++;
|
||||
},
|
||||
},
|
||||
check:function(card){
|
||||
var player=_status.event.player;
|
||||
if(game.countPlayer(function(current){
|
||||
return player.canUse('mapodoufu',current)&&get.effect(current,{name:'mapodoufu'},player,player)>0;
|
||||
})>1) return 6-get.value(card);
|
||||
return 4-get.value(card);
|
||||
},
|
||||
},
|
||||
kanade_benzhan:{
|
||||
trigger:{global:['useCard','respond']},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return Array.isArray(event.respondTo)&&event.respondTo[0]!=event.player&&[event.respondTo[0],event.player].contains(player);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.type=get.type(trigger.card)=='basic';
|
||||
var prompt=event.type?'令一名角色摸两张牌或弃置两张牌':'令一名角色回复1点体力或对其造成1点伤害';
|
||||
player.chooseTarget(get.prompt('kanade_benzhan'),prompt).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
if(_status.event.getParent().type){
|
||||
var att=get.attitude(player,target);
|
||||
if(target.hasSkillTag('nogain')) return -att;
|
||||
if(target.countCards('he')==1&&att<0) att/=2;
|
||||
return Math.abs(att)*(1+0.1*(Math.min(0,5-target.countCards('h'))))
|
||||
}
|
||||
return Math.max(get.recoverEffect(target,player,player),get.damageEffect(target,player,player))
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.logSkill('kanade_benzhan',target,'thunder');
|
||||
var trans=get.translation(target);
|
||||
var list;
|
||||
if(event.type){
|
||||
if(!target.countCards('h')) event._result={index:0};
|
||||
else list=['令'+trans+'摸两张牌','令'+trans+'弃置两张牌'];
|
||||
}
|
||||
else{
|
||||
if(target.isHealthy()) event._result={index:1};
|
||||
else list=['令'+trans+'回复1点体力','对'+trans+'造成1点伤害'];
|
||||
}
|
||||
player.chooseControl().set('choiceList',list).set('choice',function(){
|
||||
if(event.type) return (get.attitude(player,target)>0)?0:1;
|
||||
return (get.recoverEffect(target,player,player)>get.damageEffect(target,player,player))?0:1;
|
||||
}()).set('ai',function(){
|
||||
return _status.event.choice;
|
||||
});
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
player.addExpose(0.2);
|
||||
if(event.type){
|
||||
if(result.index==0) target.draw(2);
|
||||
else target.chooseToDiscard(2,'he',true);
|
||||
}
|
||||
else{
|
||||
if(result.index==0) target.recover();
|
||||
else target.damage();
|
||||
}
|
||||
},
|
||||
},
|
||||
yuzuru_wuxin:{
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseCardTarget({
|
||||
filterTarget:function(){
|
||||
if(ui.selected.cards.length) return false;
|
||||
return true;
|
||||
},
|
||||
filterCard:function(){
|
||||
if(ui.selected.targets.length) return false;
|
||||
return lib.filter.cardDiscardable.apply(this,arguments);
|
||||
},
|
||||
selectTarget:function(){
|
||||
if(!ui.selected.cards.length) return [1,1];
|
||||
return [0,1];
|
||||
},
|
||||
selectCard:function(){
|
||||
if(!ui.selected.cards.length) return [0,2];
|
||||
return [2,2];
|
||||
},
|
||||
prompt:get.prompt2('yuzuru_wuxin'),
|
||||
ai1:function(card){
|
||||
var player=_status.event.player;
|
||||
if(player.hp>3) return 0;
|
||||
return player.getDamagedHp()*2-get.value(card);
|
||||
},
|
||||
ai2:function(target){
|
||||
if(player.hp<4||target.hasSkillTag('nogain')) return 0;
|
||||
return get.attitude(_status.event.player,target);
|
||||
},
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
if(result.cards.length){
|
||||
player.logSkill('yuzuru_wuxin');
|
||||
player.discard(result.cards);
|
||||
player.recover();
|
||||
}
|
||||
else{
|
||||
var target=result.targets[0];
|
||||
player.logSkill('yuzuru_wuxin',target,{color:[194,117,92]});
|
||||
player.loseHp();
|
||||
target.draw(2);
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
yuzuru_deyi:{
|
||||
derivation:['yuzuru_kunfen','yuzuru_quji','yuzuru_wangsheng','yuzuru_kunfen_rewrite','yuzuru_quji_rewrite'],
|
||||
trigger:{global:'dieAfter'},
|
||||
forced:true,
|
||||
unique:true,
|
||||
juexingji:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'orange',
|
||||
content:function(){
|
||||
player.awakenSkill('yuzuru_deyi');
|
||||
player.removeSkill('yuzuru_wuxin');
|
||||
player.addSkillLog('yuzuru_kunfen');
|
||||
player.addSkillLog('yuzuru_quji');
|
||||
player.addSkillLog('yuzuru_wangsheng');
|
||||
player.loseMaxHp();
|
||||
player.recover();
|
||||
},
|
||||
},
|
||||
yuzuru_kunfen:{
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(!player._yuzuru_sss) player.loseHp();
|
||||
player.draw(2);
|
||||
'step 1'
|
||||
if(player.countCards('he')<2) event.finish();
|
||||
else{
|
||||
player.chooseCardTarget({
|
||||
selectCard:2,
|
||||
filterTarget:lib.filter.notMe,
|
||||
prompt:'是否交给一名其他角色两张牌?',
|
||||
position:'he',
|
||||
ai1:function(card){
|
||||
var player=_status.event.player;
|
||||
if(player.maxHp-player.hp==1&&card.name=='du') return 30;
|
||||
var check=player.countCards('h')-2;
|
||||
if(check<1) return 0;
|
||||
if(player.hp>1&&check<2) return 0;
|
||||
return get.unuseful(card)+9;
|
||||
},
|
||||
ai2:function(target){
|
||||
var att=get.attitude(_status.event.player,target);
|
||||
if(ui.selected.cards.length==1&&ui.selected.cards[0].name=='du') return 1-att;
|
||||
return att-2;
|
||||
},
|
||||
});
|
||||
}
|
||||
'step 2'
|
||||
if(result.bool) result.targets[0].gain(result.cards,player,'giveAuto');
|
||||
},
|
||||
},
|
||||
yuzuru_quji:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
position:'he',
|
||||
filterCard:true,
|
||||
selectCard:function(){
|
||||
var player=_status.event.player;
|
||||
return player.getDamagedHp();
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.hp<target.maxHp;
|
||||
},
|
||||
filter:function(event,player){
|
||||
return player.hp<player.maxHp;
|
||||
},
|
||||
selectTarget:function(){
|
||||
return [1,ui.selected.cards.length];
|
||||
},
|
||||
complexSelect:true,
|
||||
check:function(card){
|
||||
if(!player._yuzuru_sss&&get.color(card)=='black') return -1;
|
||||
return 9-get.value(card);
|
||||
},
|
||||
line:{color:[194,117,92]},
|
||||
content:function(){
|
||||
"step 0"
|
||||
target.recover();
|
||||
"step 1"
|
||||
if(target==targets[targets.length-1]&&!player._yuzuru_sss){
|
||||
for(var i=0;i<cards.length;i++){
|
||||
if(get.color(cards[i],player)=='black'){
|
||||
player.loseHp();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
result:{
|
||||
target:1
|
||||
},
|
||||
order:6
|
||||
}
|
||||
},
|
||||
yuzuru_wangsheng:{
|
||||
trigger:{player:'dieBegin'},
|
||||
forced:true,
|
||||
juexingji:true,
|
||||
unique:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'soil',
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.cancel();
|
||||
player.awakenSkill('yuzuru_wangsheng');
|
||||
player._yuzuru_sss=true;
|
||||
if(player.countCards('he')>0){
|
||||
player.chooseCardTarget({
|
||||
selectCard:[1,Infinity],
|
||||
filterTarget:lib.filter.notMe,
|
||||
prompt:'将任意张牌交给一名其他角色,或点【取消】。',
|
||||
position:'he',
|
||||
ai1:function(card){
|
||||
var player=_status.event.player;
|
||||
if(get.suit(card,false)=='heart'&&game.hasPlayer(function(current){
|
||||
return current.hasSkill('kanade_mapo')&&get.attitude(player,current)>0;
|
||||
})) return 1;
|
||||
return 0;
|
||||
},
|
||||
ai2:function(kanade){
|
||||
if(kanade.hasSkill('kanade_mapo')&&get.attitude(_status.event.player,kanade)>0) return 2;
|
||||
return 0;
|
||||
},
|
||||
});
|
||||
}
|
||||
else event.goto(2);
|
||||
'step 1'
|
||||
if(result.bool) result.targets[0].gain(result.cards,player,'giveAuto');
|
||||
'step 2'
|
||||
player.loseMaxHp();
|
||||
'step 3'
|
||||
if(player.hp<2) player.recover(2-player.hp);
|
||||
},
|
||||
},
|
||||
ao_xishi:{
|
||||
trigger:{
|
||||
player:['useCard','respond'],
|
||||
target:'useCardToTargeted',
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player,name){
|
||||
return (name=='useCard'||name=='respond'||event.player!=player)&&get.suit(event.card)=='diamond';
|
||||
},
|
||||
content:function(){player.draw()},
|
||||
},
|
||||
ao_kuihun:{
|
||||
trigger:{global:'dying'},
|
||||
logTarget:'player',
|
||||
line:'thunder',
|
||||
filter:function(event,player){
|
||||
return player!=event.player;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.draw();
|
||||
'step 1'
|
||||
if(!trigger.player.countCards('h')) event.finish();
|
||||
else player.chooseButton(['选择一张牌作为「蝶」',trigger.player.getCards('h')]).set('ai',function(button){
|
||||
var val=get.buttonValue(button);
|
||||
if(get.attitude(_status.event.player,get.owner(button.link))>0) return -val;
|
||||
return val;
|
||||
});
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
trigger.player.lose(result.links,ui.special,'visible','toStorage');
|
||||
trigger.player.$give(result.links,player,false);
|
||||
player.markAuto('ao_diegui',result.links);
|
||||
game.log(result.links,'飞向了',player);
|
||||
}
|
||||
},
|
||||
locked:false,
|
||||
mod:{
|
||||
targetInRange:function(card,player){
|
||||
var list=player.getStorage('ao_diegui');
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(get.suit(list[i],false)==get.suit(card,false)) return true;
|
||||
}
|
||||
},
|
||||
cardUsable:function(card,player){
|
||||
var list=player.getStorage('ao_diegui');
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(get.suit(list[i],false)==get.suit(card,false)) return Infinity;
|
||||
}
|
||||
},
|
||||
maxHandcard:function(player,num){
|
||||
return num+player.getStorage('ao_diegui').length;
|
||||
},
|
||||
},
|
||||
},
|
||||
ao_shixin:{
|
||||
derivation:'ao_diegui',
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
juexingji:true,
|
||||
forced:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'key',
|
||||
unique:true,
|
||||
filter:function(event,player){
|
||||
var list=player.getStorage('ao_diegui');
|
||||
var list2=[];
|
||||
for(var i=0;i<list.length;i++){
|
||||
list2.add(get.suit(list[i],false));
|
||||
}
|
||||
return list2.length>2;
|
||||
},
|
||||
content:function(){
|
||||
player.awakenSkill('ao_shixin');
|
||||
player.removeSkill('ao_kuihun');
|
||||
player.addSkill('ao_diegui');
|
||||
player.gainMaxHp();
|
||||
player.recover();
|
||||
},
|
||||
},
|
||||
ao_diegui:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return player.getStorage('ao_diegui').length>0;
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
return ui.create.dialog('蝶归',player.storage.ao_diegui,'hidden');
|
||||
},
|
||||
backup:function(links,player){
|
||||
return {
|
||||
card:links,
|
||||
filterCard:function(){return false},
|
||||
selectCard:-1,
|
||||
filterTarget:true,
|
||||
delay:false,
|
||||
content:lib.skill.ao_diegui.contentx,
|
||||
line:'thunder',
|
||||
ai:{
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target!=player&&target.hasSkillTag('nogain')) return 0;
|
||||
var num=1;
|
||||
if(target.isTurnedOver()) num+=2;
|
||||
if(target.isLinked()) num+=0.5;
|
||||
return num;
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
prompt:function(links,player){
|
||||
return '选择一名角色,令其获得'+get.translation(links[0])+',摸两张牌并将武将牌复原。'
|
||||
},
|
||||
},
|
||||
contentx:function(){
|
||||
'step 0'
|
||||
target.gain(lib.skill.ao_diegui_backup.card,player,'give','fromStorage');
|
||||
player.unmarkAuto('ao_diegui',lib.skill.ao_diegui_backup.card);
|
||||
target.draw(2);
|
||||
'step 1'
|
||||
target.link(false);
|
||||
'step 2'
|
||||
target.turnOver(false);
|
||||
},
|
||||
intro:{name:'七影蝶',content:'cards',onunmark:'throw'},
|
||||
ai:{order:1,result:{player:1}},
|
||||
},
|
||||
ayato_jianshen:{
|
||||
mod:{
|
||||
cardnature:function(card,player){
|
||||
|
@ -7846,6 +8254,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_tomoya:'冈崎朋也',
|
||||
key_nagisa:'古河渚',
|
||||
key_ayato:'直井文人',
|
||||
key_ao:'空门苍',
|
||||
key_yuzuru:'音无结弦',
|
||||
sp_key_kanade:'SP立华奏',
|
||||
lucia_duqu:'毒躯',
|
||||
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
|
||||
lucia_zhenren:'振刃',
|
||||
|
@ -8009,6 +8420,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ayato_jianshen_info:'锁定技,你手牌中的【杀】均视为神属性。',
|
||||
ayato_zonghuan:'纵幻',
|
||||
ayato_zonghuan_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,然后选择一项:将其中的一张牌置入弃牌堆,或以该角色的视角使用其中的一张,然后摸一张牌。',
|
||||
ao_xishi:'习事',
|
||||
ao_xishi_info:'锁定技,当你使用或打出♦牌时,或其他角色使用♦牌指定你为目标后,你摸一张牌。',
|
||||
ao_kuihun:'窥魂',
|
||||
ao_kuihun_info:'其他角色进入濒死状态时,你可以摸一张牌,然后观看其手牌并将其中一张牌置于你的武将牌上,称为「蝶」。你使用与一张「蝶」花色相同的牌时无距离和次数限制。你的手牌上限+X(X为蝶数)。',
|
||||
ao_shixin:'释心',
|
||||
ao_shixin_info:'觉醒技,准备阶段,若你的「蝶」中包含至少三种花色,则你加1点体力上限并回复1点体力,失去〖窥魂〗并获得〖蝶归〗。',
|
||||
ao_diegui:'蝶归',
|
||||
ao_diegui_backup:'蝶归',
|
||||
ao_diegui_info:'出牌阶段限一次,你可以将一张「蝶」交给一名角色,该角色摸两张牌并复原武将牌。',
|
||||
yuzuru_wuxin:'无心',
|
||||
yuzuru_wuxin_info:'结束阶段,你可以选择一项:失去1点体力并令一名角色摸两张牌,或弃置两张牌并回复1点体力。',
|
||||
yuzuru_deyi:'得义',
|
||||
yuzuru_deyi_info:'觉醒技,当有其他角色死亡后,你减1点体力上限并回复1点体力,失去技能〖无心〗,获得技能〖往生〗〖困奋〗和〖去疾〗。',
|
||||
yuzuru_wangsheng:'往生',
|
||||
yuzuru_wangsheng_info:'觉醒技,当你即将死亡时,你防止此次死亡。你可以将任意张牌交给一名其他角色,然后减1点体力上限并将体力回复至2点,修改技能〖困奋〗和〖去疾〗。',
|
||||
yuzuru_kunfen:'困奋',
|
||||
yuzuru_kunfen_info:'锁定技,结束阶段,你失去1点体力并摸两张牌。然后你可以将两张牌交给一名其他角色。',
|
||||
yuzuru_quji:'去疾',
|
||||
yuzuru_quji_info:'出牌阶段限一次,你可以弃置X张牌并选择至多等量已受伤的其他角色,这些角色各回复1点体力。若你以此法弃置了黑色牌,则你失去1点体力。(X为你已损失的体力值)',
|
||||
yuzuru_kunfen_rewrite:'困奋·改',
|
||||
yuzuru_kunfen_rewrite_info:'锁定技,结束阶段,你摸两张牌。然后你可以将两张牌交给一名其他角色。',
|
||||
yuzuru_quji_rewrite:'去疾·改',
|
||||
yuzuru_quji_rewrite_info:'出牌阶段限一次,你可以弃置X张牌并选择至多等量已受伤的其他角色,这些角色各回复1点体力。(X为你已损失的体力值)',
|
||||
kanade_mapo:'麻婆',
|
||||
kanade_mapo_info:'你可以将一张♥牌当做【麻婆豆腐】使用。你使用的【麻婆豆腐】可以多指定一个目标。',
|
||||
kanade_benzhan:'奔战',
|
||||
kanade_benzhan_info:'当你使用或打出牌响应其他角色,或其他角色使用或打出牌响应你后,若此牌为:基本牌,你可令一名角色弃置两张牌或令一名角色摸两张牌;非基本牌,你可对一名角色造成1点伤害或令一名其他角色回复1点体力。',
|
||||
|
||||
|
||||
yj_caoang:'SP曹昂',
|
||||
|
|
|
@ -5,18 +5,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
characterSort:{
|
||||
old:{
|
||||
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_guanqiujian","xiahouyuan","weiyan","xiaoqiao"],
|
||||
old_refresh:["old_zhangfei","old_huatuo"],
|
||||
old_refresh:["old_zhangfei","old_huatuo","old_zhaoyun"],
|
||||
old_yijiang1:["masu","xushu","fazheng","yujin","xin_yujin","old_xusheng","old_lingtong","ol_yujin"],
|
||||
old_yijiang2:["old_madai","old_zhonghui","old_wangyi","old_guanzhang"],
|
||||
old_yijiang3:["liru","old_zhuran","ol_manchong","old_fuhuanghou","old_caochong"],
|
||||
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan"],
|
||||
old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"],
|
||||
old_yijiang67:["ol_xinxianying","ol_zhangrang","ol_liuyu"],
|
||||
old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","ol_maliang","panfeng"],
|
||||
old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","ol_maliang","panfeng","old_wangyun"],
|
||||
old_mobile:["old_caochun","old_majun"],
|
||||
},
|
||||
},
|
||||
character:{
|
||||
old_wangyun:['male','qun',4,['wylianji','moucheng']],
|
||||
panfeng:['male','qun',4,['kuangfu']],
|
||||
xiaoqiao:['female','wu',3,['tianxiang','hongyan']],
|
||||
weiyan:['male','shu',4,['kuanggu']],
|
||||
|
@ -29,7 +30,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_caochong:['male','wei',3,['oldrenxin','oldchengxiang']],
|
||||
yuji:['male','qun',3,['old_guhuo'],['forbidai']],
|
||||
zhangjiao:['male','qun',3,['leiji','guidao','huangtian'],['zhu']],
|
||||
old_zhangfei:['male','shu',4,['paoxiao','retishen']],
|
||||
old_zhangfei:['male','shu',4,['paoxiao','new_tishen']],
|
||||
old_zhaoyun:['male','shu',4,['longdan','new_yajiao']],
|
||||
old_huatuo:['male','qun',3,['jijiu','chulao']],
|
||||
jsp_caoren:['male','wei',4,['kuiwei','yanzheng']],
|
||||
old_caochun:['male','wei',4,['shanjia']],
|
||||
|
@ -878,6 +880,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_huangfusong:'旧皇甫嵩',
|
||||
ol_maliang:'旧马良',
|
||||
ol_liuyu:'OL刘虞',
|
||||
old_wangyun:'旧王允',
|
||||
old_zhaoyun:'旧赵云',
|
||||
|
||||
old_fuhun:'父魂',
|
||||
old_fuhun_info:'摸牌阶段开始时,你可以放弃摸牌,改为从牌堆顶亮出两张牌并获得之,若亮出的牌颜色不同,你获得技能“武圣”、“咆哮”,直到回合结束。',
|
||||
|
|
|
@ -36,8 +36,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_zhangliao:['male','wei',4,['new_retuxi']],
|
||||
re_xuzhu:['male','wei',4,['new_reluoyi']],
|
||||
re_xiahoudun:['male','wei',4,['reganglie','new_qingjian']],
|
||||
re_zhangfei:['male','shu',4,['new_repaoxiao','new_tishen']],
|
||||
re_zhaoyun:['male','shu',4,['longdan','new_yajiao']],
|
||||
re_zhangfei:['male','shu',4,['olpaoxiao','oltishen']],
|
||||
re_zhaoyun:['male','shu',4,['ollongdan','olyajiao']],
|
||||
re_guanyu:['male','shu',4,['new_rewusheng','new_yijue']],
|
||||
re_machao:['male','shu',4,['mashu','retieji']],
|
||||
re_xushu:['male','shu',4,['zhuhai','qianxin']],
|
||||
|
@ -103,6 +103,278 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sunben:['zhouyu','taishici','daqiao'],
|
||||
},
|
||||
skill:{
|
||||
ollongdan:{
|
||||
audio:'longdan_sha',
|
||||
audioname:['re_zhaoyun','sp_zhaoyun'],
|
||||
enable:['chooseToUse','chooseToRespond'],
|
||||
prompt:'将杀当做闪,或将闪当做杀,或将桃当做酒,或将酒当做桃使用或打出',
|
||||
viewAs:function(cards,player){
|
||||
var name=false;
|
||||
switch(get.name(cards[0],player)){
|
||||
case 'sha':name='shan';break;
|
||||
case 'shan':name='sha';break;
|
||||
case 'tao':name='jiu';break;
|
||||
case 'jiu':name='tao';break;
|
||||
}
|
||||
if(name) return {name:name};
|
||||
return null;
|
||||
},
|
||||
check:function(card){
|
||||
var player=_status.event.player;
|
||||
if(_status.event.type=='phase'){
|
||||
var max=0;
|
||||
var name2;
|
||||
var list=['sha','tao','jiu'];
|
||||
var map={sha:'shan',tao:'jiu',jiu:'tao'}
|
||||
for(var i=0;i<list.length;i++){
|
||||
var name=list[i];
|
||||
if(player.countCards('h',map[name])>(name=='jiu'?1:0)&&player.getUseValue({name:name})>0){
|
||||
var temp=get.order({name:name});
|
||||
if(temp>max){
|
||||
max=temp;
|
||||
name2=map[name];
|
||||
}
|
||||
}
|
||||
}
|
||||
if(name2==get.name(card,player)) return 1;
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
},
|
||||
filterCard:function(card,player,event){
|
||||
event=event||_status.event;
|
||||
var filter=event._backup.filterCard;
|
||||
var name=get.name(card,player);
|
||||
if(name=='sha'&&filter({name:'shan',cards:[card]},player,event)) return true;
|
||||
if(name=='shan'&&filter({name:'sha',cards:[card]},player,event)) return true;
|
||||
if(name=='tao'&&filter({name:'jiu',cards:[card]},player,event)) return true;
|
||||
if(name=='jiu'&&filter({name:'tao',cards:[card]},player,event)) return true;
|
||||
return false;
|
||||
},
|
||||
filter:function(event,player){
|
||||
var filter=event.filterCard;
|
||||
if(filter({name:'sha'},player,event)&&player.countCards('h','shan')) return true;
|
||||
if(filter({name:'shan'},player,event)&&player.countCards('h','sha')) return true;
|
||||
if(filter({name:'tao'},player,event)&&player.countCards('h','jiu')) return true;
|
||||
if(filter({name:'jiu'},player,event)&&player.countCards('h','tao')) return true;
|
||||
return false;
|
||||
},
|
||||
ai:{
|
||||
respondSha:true,
|
||||
respondShan:true,
|
||||
save:true,
|
||||
skillTagFilter:function(player,tag){
|
||||
var name;
|
||||
switch(tag){
|
||||
case 'respondSha':name='shan';break;
|
||||
case 'respondShan':name='sha';break;
|
||||
case 'save':name='jiu';break;
|
||||
}
|
||||
if(!player.countCards('h',name)) return false;
|
||||
},
|
||||
order:function(item,player){
|
||||
if(player&&_status.event.type=='phase'){
|
||||
var max=0;
|
||||
var list=['sha','tao','jiu'];
|
||||
var map={sha:'shan',tao:'jiu',jiu:'tao'}
|
||||
for(var i=0;i<list.length;i++){
|
||||
var name=list[i];
|
||||
if(player.countCards('h',map[name])>(name=='jiu'?1:0)&&player.getUseValue({name:name})>0){
|
||||
var temp=get.order({name:name});
|
||||
if(temp>max) max=temp;
|
||||
}
|
||||
}
|
||||
if(max>0) max+=0.3;
|
||||
return max;
|
||||
}
|
||||
return 4;
|
||||
},
|
||||
},
|
||||
},
|
||||
olyajiao:{
|
||||
audio:'yajiao',
|
||||
trigger:{player:'loseAfter'},
|
||||
frequent:true,
|
||||
filter:function(event,player){
|
||||
return player!=_status.currentPhase&&event.hs&&event.hs.length>0&&['useCard','respond'].contains(event.getParent().name);
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
event.card=get.cards()[0];
|
||||
game.cardsGotoOrdering(event.card);
|
||||
event.videoId=lib.status.videoId++;
|
||||
var judgestr=get.translation(player)+'发动了【涯角】';
|
||||
game.addVideo('judge1',player,[get.cardInfo(event.card),judgestr,event.videoId]);
|
||||
game.broadcastAll(function(player,card,str,id,cardid){
|
||||
var event;
|
||||
if(game.online){
|
||||
event={};
|
||||
}
|
||||
else{
|
||||
event=_status.event;
|
||||
}
|
||||
if(game.chess){
|
||||
event.node=card.copy('thrown','center',ui.arena).animate('start');
|
||||
}
|
||||
else{
|
||||
event.node=player.$throwordered(card.copy(),true);
|
||||
}
|
||||
if(lib.cardOL) lib.cardOL[cardid]=event.node;
|
||||
event.node.cardid=cardid;
|
||||
event.node.classList.add('thrownhighlight');
|
||||
ui.arena.classList.add('thrownhighlight');
|
||||
event.dialog=ui.create.dialog(str);
|
||||
event.dialog.classList.add('center');
|
||||
event.dialog.videoId=id;
|
||||
},player,event.card,judgestr,event.videoId,get.id());
|
||||
|
||||
game.log(player,'展示了',event.card);
|
||||
game.delay(2);
|
||||
if(get.type(event.card,'trick')==get.type(trigger.getParent().card,'trick')){
|
||||
player.chooseTarget('选择获得此牌的角色').set('ai',function(target){
|
||||
var att=get.attitude(_status.event.player,target);
|
||||
if(_status.event.du){
|
||||
if(target.hasSkillTag('nodu')) return 0;
|
||||
return -att;
|
||||
}
|
||||
if(att>0){
|
||||
return att+Math.max(0,5-target.countCards('h'));
|
||||
}
|
||||
return att;
|
||||
}).set('du',event.card.name=='du');
|
||||
}
|
||||
else{
|
||||
event.disbool=true;
|
||||
player.chooseTarget('是否弃置攻击范围内包含你的一名角色区域内的一张牌?',function(card,player,target){
|
||||
return target.inRange(player)&&target.countDiscardableCards(player,'hej')>0;
|
||||
}).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
return get.effect(target,{name:'guohe'},player,player);
|
||||
});
|
||||
}
|
||||
"step 1"
|
||||
if(event.disbool){
|
||||
if(result.bool){
|
||||
player.line(result.targets[0],'green');
|
||||
player.discardPlayerCard(result.targets[0],'hej',true);
|
||||
}
|
||||
event.dialog.close();
|
||||
game.addVideo('judge2',null,event.videoId);
|
||||
game.addVideo('deletenode',player,[get.cardInfo(event.node)]);
|
||||
event.node.delete();
|
||||
game.broadcast(function(id,card){
|
||||
var dialog=get.idDialog(id);
|
||||
if(dialog){
|
||||
dialog.close();
|
||||
}
|
||||
if(card.clone){
|
||||
card.clone.delete();
|
||||
}
|
||||
ui.arena.classList.remove('thrownhighlight');
|
||||
},event.videoId,event.card);
|
||||
ui.arena.classList.remove('thrownhighlight');
|
||||
}
|
||||
else if(result.targets){
|
||||
event.dialog.close();
|
||||
game.addVideo('judge2',null,event.videoId);
|
||||
player.line(result.targets,'green');
|
||||
result.targets[0].gain(event.card,'log');
|
||||
event.node.moveDelete(result.targets[0]);
|
||||
game.addVideo('gain2',result.targets[0],[get.cardInfo(event.node)]);
|
||||
ui.arena.classList.remove('thrownhighlight');
|
||||
game.broadcast(function(card,target,id){
|
||||
var dialog=get.idDialog(id);
|
||||
if(dialog){
|
||||
dialog.close();
|
||||
}
|
||||
ui.arena.classList.remove('thrownhighlight');
|
||||
if(card.clone){
|
||||
card.clone.moveDelete(target);
|
||||
}
|
||||
},event.card,result.targets[0],event.videoId);
|
||||
}
|
||||
else{
|
||||
game.addVideo('deletenode',player,[get.cardInfo(event.node)]);
|
||||
event.node.delete();
|
||||
game.broadcast(function(id){
|
||||
var dialog=get.idDialog(id);
|
||||
if(dialog){
|
||||
dialog.close();
|
||||
}
|
||||
if(card.clone){
|
||||
card.clone.delete();
|
||||
}
|
||||
ui.arena.classList.remove('thrownhighlight');
|
||||
},event.videoId,event.card);
|
||||
event.dialog.close();
|
||||
game.addVideo('judge2',null,event.videoId);
|
||||
ui.arena.classList.remove('thrownhighlight');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card,player){
|
||||
if(get.tag(card,'respond')&&player.countCards('h')>1) return [1,0.2];
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
olpaoxiao:{
|
||||
audio:"paoxiao",
|
||||
audioname:['re_zhangfei','guanzhang','xiahouba'],
|
||||
trigger:{player:'shaMiss'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
player.addTempSkill('olpaoxiao2');
|
||||
player.addMark('olpaoxiao2',1,false);
|
||||
},
|
||||
mod:{
|
||||
cardUsable:function (card,player,num){
|
||||
if(card.name=='sha') return Infinity;
|
||||
},
|
||||
},
|
||||
},
|
||||
olpaoxiao2:{
|
||||
trigger:{source:'damageBegin1'},
|
||||
forced:true,
|
||||
audio:'paoxiao',
|
||||
audioname:['re_zhangfei','guanzhang','xiahouba'],
|
||||
filter:function(event,player){
|
||||
return player.countMark('olpaoxiao2')>0;
|
||||
},
|
||||
onremove:true,
|
||||
content:function(){
|
||||
trigger.num+=player.countMark('olpaoxiao2');
|
||||
player.removeSkill('olpaoxiao2');
|
||||
},
|
||||
intro:{content:'本回合内下一次使用【杀】造成伤害时令伤害值+#'},
|
||||
},
|
||||
oltishen:{
|
||||
audio:'retishen',
|
||||
unique:true,
|
||||
mark:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'soil',
|
||||
limited:true,
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
filter:function(event,player){
|
||||
if(player.storage.oltishen) return false;
|
||||
return player.isDamaged();
|
||||
},
|
||||
check:function(event,player){
|
||||
if(player.hp<=2||player.getDamagedHp()>2) return true;
|
||||
if(player.getDamagedHp()<=1) return false;
|
||||
return player.getDamagedHp()<game.roundNumber;
|
||||
},
|
||||
content:function(){
|
||||
player.awakenSkill('oltishen');
|
||||
player.recover(player.maxHp-player.hp);
|
||||
player.draw(player.maxHp-player.hp);
|
||||
},
|
||||
intro:{
|
||||
content:'limited'
|
||||
},
|
||||
},
|
||||
rexuanfeng:{
|
||||
audio:'xuanfeng',
|
||||
audioname:['boss_lvbu3','re_heqi','re_lingtong'],
|
||||
|
@ -6408,6 +6680,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_lingtong:'界凌统',
|
||||
rexuanfeng:'旋风',
|
||||
rexuanfeng_info:'当你失去装备区内的牌时,或于弃牌阶段弃置了两张或更多的手牌后,你可以依次弃置一至两名其他角色的共计两张牌,或将一名其他角色装备区内的一张牌移动到另一名其他角色的装备区内。',
|
||||
olpaoxiao:'咆哮',
|
||||
olpaoxiao2:'咆哮',
|
||||
olpaoxiao_info:'锁定技,你使用【杀】无次数限制。若你使用的【杀】被【闪】抵消,你本回合下一次使用【杀】造成伤害时,此伤害+1。',
|
||||
oltishen:'替身',
|
||||
oltishen_info:'限定技,准备阶段,你可以将体力回复至上限,然后摸X张牌(X为你回复的体力值)。',
|
||||
ollongdan:'龙胆',
|
||||
ollongdan_info:'你可以将一张【杀】当做【闪】、【闪】当做【杀】、【酒】当做【桃】、【桃】当做【酒】使用或打出。',
|
||||
ollongdan_jiu:'龙胆(酒)',
|
||||
olyajiao:'涯角',
|
||||
olyajiao_info:'当你于回合外因使用或打出而失去手牌后,你可以展示牌堆顶的一张牌。若这两张牌的类别相同,你可以将展示的牌交给一名角色;若类别不同,你可弃置攻击范围内包含你的角色区域里的一张牌。',
|
||||
|
||||
refresh_standard:'界限突破·标',
|
||||
refresh_feng:'界限突破·风',
|
||||
|
|
184
character/sp.js
184
character/sp.js
|
@ -173,7 +173,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhangren:['male','qun',4,['chuanxin','zfengshi']],
|
||||
zoushi:['female','qun',3,['zhuoshui','zqingcheng']],
|
||||
|
||||
wangyun:['male','qun',4,['wylianji','moucheng']],
|
||||
wangyun:['male','qun',4,['xinlianji','xinmoucheng']],
|
||||
sunqian:['male','shu',3,['qianya','shuimeng']],
|
||||
xizhicai:['male','wei',3,['tiandu','xianfu','chouce']],
|
||||
quyi:['male','qun',4,['fuqi','jiaozi']],
|
||||
|
@ -513,6 +513,168 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
//新王允
|
||||
xinlianji:{
|
||||
enable:'phaseUse',
|
||||
audio:'wylianji',
|
||||
usable:1,
|
||||
check:function(card){
|
||||
return 5-get.value(card);
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
if(ui.selected.targets.length) return true;
|
||||
return target!=player;
|
||||
},
|
||||
filterCard:true,
|
||||
selectTarget:2,
|
||||
multitarget:true,
|
||||
targetprompt:['打人','被打'],
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.addMark('xinlianji',1,false);
|
||||
var card=get.cardPile2(function(card){
|
||||
return get.subtype(card)=='equip1'&&targets[0].hasUseTarget(card);
|
||||
});
|
||||
if(card){
|
||||
if(card.name=='qinggang'&&!lib.inpile.contains('qibaodao')){
|
||||
card.remove();
|
||||
card=game.createCard('qibaodao',card.suit,card.number);
|
||||
}
|
||||
targets[0].chooseUseTarget(card,true,'nopopup','noanimate');
|
||||
}
|
||||
else{
|
||||
player.chat('没有装备牌了吗');
|
||||
game.log('但是牌堆里已经没有装备牌了!');
|
||||
}
|
||||
'step 1'
|
||||
game.updateRoundNumber();
|
||||
targets[0].chooseToUse('对'+get.translation(targets[1])+'使用一张杀,或将装备区里的武器牌交给一名其他角色',
|
||||
{name:'sha'}).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.filterTarget.apply(this,arguments);
|
||||
}).set('sourcex',targets[1]).set('addCount',false);
|
||||
'step 2'
|
||||
var card=targets[0].getEquip(1);
|
||||
if(!result.bool&&card){
|
||||
event.card=card;
|
||||
targets[0].chooseTarget(true,'将'+get.translation(card)+'交给一名其他角色',lib.filter.notMe).set('ai',function(target){
|
||||
var card=_status.event.getParent().card;
|
||||
return (target.hasSkillTag('nogain')?0:get.attitude(_status.event.player,target))*Math.max(0.1,target.getUseValue(card));
|
||||
});
|
||||
}
|
||||
else event.finish();
|
||||
'step 3'
|
||||
result.targets[0].gain(card,targets[0],'give');
|
||||
},
|
||||
ai:{
|
||||
order:4,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(ui.selected.targets.length){
|
||||
var pretarget=ui.selected.targets[0];
|
||||
if(pretarget.hasSha()&&pretarget.canUse({name:'sha'},target)) return get.effect(target,{name:'sha'},pretarget,target);
|
||||
return Math.random();
|
||||
}
|
||||
if(!target.getEquip(1)){
|
||||
if(game.hasPlayer(function(current){
|
||||
return current!=target&&!current.hasSkillTag('nogain')&&get.attitude(current,target)>0;
|
||||
})) return 3;
|
||||
return -3;
|
||||
}
|
||||
if(!game.hasPlayer(function(current){
|
||||
return current!=target&&!current.hasSkillTag('nogain')&&get.attitude(current,target)>0;
|
||||
})) return -6;
|
||||
return 4-get.value(target.getEquip(1));
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
xinmoucheng:{
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
audio:'moucheng',
|
||||
forced:true,
|
||||
juexingji:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'gray',
|
||||
derivation:'xinjingong',
|
||||
unique:true,
|
||||
filter:function(event,player){
|
||||
return player.countMark('xinlianji')>2;
|
||||
},
|
||||
content:function(){
|
||||
player.awakenSkill('xinmoucheng');
|
||||
player.addSkill('xinjingong');
|
||||
player.removeSkill('xinlianji');
|
||||
},
|
||||
},
|
||||
xinjingong:{
|
||||
audio:'jingong',
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return player.countCards('he',function(card){
|
||||
return card.name=='sha'||get.type(card)=='equip';
|
||||
});
|
||||
},
|
||||
delay:false,
|
||||
usable:1,
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=get.inpile('trick').randomGets(2);
|
||||
if(Math.random()<0.5){
|
||||
list.push('wy_meirenji');
|
||||
}
|
||||
else{
|
||||
list.push('wy_xiaolicangdao');
|
||||
}
|
||||
for(var i=0;i<list.length;i++){
|
||||
list[i]=['锦囊','',list[i]];
|
||||
}
|
||||
player.chooseButton(['矜功',[list,'vcard']]).set('filterButton',function(button,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return player.canUse(button.link[2],current,true,false);
|
||||
});
|
||||
}).set('ai',function(button){
|
||||
var player=_status.event.player;
|
||||
return player.getUseValue(button.link[2]);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var name=result.links[0][2];
|
||||
event.fakecard={name:name};
|
||||
player.chooseCardTarget({
|
||||
filterCard:function(card){
|
||||
return card.name=='sha'||get.type(card)=='equip';
|
||||
},
|
||||
position:'he',
|
||||
filterTarget:lib.filter.filterTarget,
|
||||
selectTarget:lib.filter.selectTarget,
|
||||
ai1:function(card){
|
||||
return 7-get.value(card);
|
||||
},
|
||||
ai2:function(target){
|
||||
var card=_status.event.fakecard;
|
||||
var player=_status.event.player;
|
||||
return get.effect(target,card,player,player);
|
||||
},
|
||||
_get_card:event.fakecard,
|
||||
prompt:'将一张装备牌或【杀】当作'+get.translation(name)+'使用'
|
||||
}).set('fakecard',event.fakecard);
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
player.useCard(event.fakecard,result.cards,result.targets);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:2,
|
||||
result:{
|
||||
player:1
|
||||
}
|
||||
}
|
||||
},
|
||||
//新岩泽(划掉)留赞
|
||||
refenyin:{
|
||||
audio:'fenyin',
|
||||
|
@ -5662,6 +5824,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
wylianji:{
|
||||
enable:'phaseUse',
|
||||
audio:2,
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return player.hasCard(lib.skill.wylianji.filterCard);
|
||||
|
@ -5703,7 +5866,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
if(equip1.name=='qinggang'&&!lib.inpile.contains('qibaodao')){
|
||||
equip1.remove();
|
||||
equip1=game.createCard('qibaodao',equip1.suit,equip1.number);
|
||||
equip1=game.createCard2('qibaodao',equip1.suit,equip1.number);
|
||||
}
|
||||
target.$draw(equip1);
|
||||
target.chooseUseTarget(true,equip1,'noanimate','nopopup');
|
||||
|
@ -5896,6 +6059,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
jingong:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return player.countCards('he',function(card){
|
||||
|
@ -13291,9 +13455,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 0"
|
||||
target.recover();
|
||||
"step 1"
|
||||
if(target==player){
|
||||
if(target==targets[targets.length-1]){
|
||||
for(var i=0;i<cards.length;i++){
|
||||
if(get.color(cards[i],cards[i].original=='h'?player:false)=='black'){
|
||||
if(get.color(cards[i],player)=='black'){
|
||||
player.loseHp();
|
||||
break;
|
||||
}
|
||||
|
@ -14226,7 +14390,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
list.push('retiaoxin');
|
||||
}
|
||||
if(player.hp<=2){
|
||||
list.push('new_repaoxiao');
|
||||
list.push('olpaoxiao');
|
||||
}
|
||||
if(player.hp<=1){
|
||||
list.push('xinshensu');
|
||||
|
@ -14235,7 +14399,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.addAdditionalSkill('baobian',list);
|
||||
}
|
||||
},
|
||||
derivation:['retiaoxin','new_repaoxiao','xinshensu'],
|
||||
derivation:['retiaoxin','olpaoxiao','xinshensu'],
|
||||
content:function(){
|
||||
player.removeAdditionalSkill('baobian');
|
||||
var list=[];
|
||||
|
@ -14244,7 +14408,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
list.push('retiaoxin');
|
||||
}
|
||||
if(player.hp<=2){
|
||||
list.push('new_repaoxiao');
|
||||
list.push('olpaoxiao');
|
||||
}
|
||||
if(player.hp<=1){
|
||||
list.push('xinshensu');
|
||||
|
@ -17988,6 +18152,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
refenyin_info:'锁定技,你的回合内,当一张牌进入弃牌堆后,若本回合内没有过与此牌花色相同的卡牌进入过弃牌堆,则你摸一张牌。',
|
||||
liji:'力激',
|
||||
liji_info:'出牌阶段限X次,你可以弃置一张牌并对一名其他角色造成1点伤害。(X为本回合内进入过弃牌堆的卡牌数除以8,若场上人数小于5则改为除以4,向下取整)',
|
||||
xinlianji:'连计',
|
||||
xinlianji_info:'出牌阶段限一次,你可以弃置一张手牌,令其使用牌堆中的一张随机武器牌,然后选择一项:对你指定的一名角色使用【杀】,或将其装备区里的武器牌交给任意角色。',
|
||||
xinmoucheng:'谋逞',
|
||||
xinmoucheng_info:'觉醒技,准备阶段,若你已经发动了3次以上的〖连计〗,则你失去〖连计〗并获得〖矜功〗。',
|
||||
xinjingong:'矜功',
|
||||
xinjingong_info:'出牌阶段限一次,你可以将一张【杀】或装备牌当做三张随机锦囊牌中的一张使用。',
|
||||
|
||||
sp_default:"常规",
|
||||
sp_whlw:"文和乱武",
|
||||
|
|
|
@ -1779,12 +1779,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
else return event.cards.filterInD('od').length>0;
|
||||
},
|
||||
logTarget:'player',
|
||||
check:function(event,player){
|
||||
if(get.attitude(player,event.player)>=0) return true;
|
||||
if(player.hasSkill('funan_jiexun')) return true;
|
||||
if(event.cards.length>1) return true;
|
||||
return get.value(event.cards[0])>get.value(event.respondTo[1]);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(!player.hasSkill('funan_jiexun')){
|
||||
|
@ -7282,7 +7276,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
selectCard:2,
|
||||
position:'h',
|
||||
audio:2,
|
||||
derivation:['new_rewusheng','new_repaoxiao'],
|
||||
derivation:['new_rewusheng','olpaoxiao'],
|
||||
viewAs:{name:'sha'},
|
||||
prompt:'将两张手牌当杀使用或打出',
|
||||
check:function(card){
|
||||
|
@ -7297,7 +7291,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ai:{
|
||||
respondSha:true,
|
||||
order:function(item,player){
|
||||
if(player.hasSkill('new_rewusheng')&&player.hasSkill('new_repaoxiao')){
|
||||
if(player.hasSkill('new_rewusheng')&&player.hasSkill('olpaoxiao')){
|
||||
return 1;
|
||||
}
|
||||
if(player.countCards('h')<4){
|
||||
|
@ -7317,7 +7311,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
player.addTempSkill('new_rewusheng');
|
||||
player.addTempSkill('new_repaoxiao');
|
||||
player.addTempSkill('olpaoxiao');
|
||||
player.addTempSkill('fuhun3');
|
||||
}
|
||||
},
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.99.3',
|
||||
'v1.9.100',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -3045,6 +3045,11 @@ window.noname_asset_list=[
|
|||
'image/character/key_ayato.jpg',
|
||||
'image/character/key_nagisa.jpg',
|
||||
'image/character/key_tomoya.jpg',
|
||||
'image/character/key_ao.jpg',
|
||||
'image/character/key_yuzuru.jpg',
|
||||
'image/character/old_wangyun.jpg',
|
||||
'image/character/old_zhaoyun.jpg',
|
||||
'image/character/sp_key_kanade.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
52
game/game.js
52
game/game.js
|
@ -15468,7 +15468,7 @@
|
|||
game.expandSkills(skills);
|
||||
for(var i=0;i<skills.length;i++){
|
||||
var ifo=get.info(skills[i]);
|
||||
if(ifo.viewAs&&ifo.viewAs.name==name){
|
||||
if(ifo.viewAs&&typeof ifo.viewAs!='function'&&ifo.viewAs.name==name){
|
||||
if(!ifo.viewAsFilter||ifo.viewAsFilter(player)){
|
||||
return true;
|
||||
}
|
||||
|
@ -21021,7 +21021,7 @@
|
|||
game.expandSkills(skills);
|
||||
for(var i=0;i<skills.length;i++){
|
||||
var ifo=get.info(skills[i]);
|
||||
if(ifo.viewAs&&ifo.viewAs.name=='wuxie'){
|
||||
if(ifo.viewAs&&typeof ifo.viewAs!='function'&&ifo.viewAs.name=='wuxie'){
|
||||
if(!ifo.viewAsFilter||ifo.viewAsFilter(this)){
|
||||
return true;
|
||||
}
|
||||
|
@ -23283,7 +23283,40 @@
|
|||
var info=get.info(skill);
|
||||
this.skill=skill;
|
||||
this._aiexclude=[];
|
||||
if(info.viewAs){
|
||||
if(typeof info.viewAs=='function'){
|
||||
if(info.filterButton!=undefined) this.filterButton=get.filter(info.filterButton);
|
||||
if(info.selectButton!=undefined) this.selectButton=info.selectButton;
|
||||
if(info.filterTarget!=undefined) this.filterTarget=get.filter(info.filterTarget);
|
||||
if(info.selectTarget!=undefined) this.selectTarget=info.selectTarget;
|
||||
if(info.filterCard!=undefined){
|
||||
if(info.ignoreMod) this.ignoreMod=true;
|
||||
this.filterCard2=get.filter(info.filterCard);
|
||||
this.filterCard=function(card,player,event){
|
||||
var evt=event||_status.event;
|
||||
if(!evt.ignoreMod&&player){
|
||||
var mod=game.checkMod(card,player,'unchanged','cardEnabled2',player);
|
||||
if(mod!='unchanged') return mod;
|
||||
if(evt._backup&&evt._backup.filterCard){
|
||||
var cardx2=lib.skill[evt.skill].viewAs(ui.selected.cards.concat([card]),player);
|
||||
if(get.is.object(cardx2)){
|
||||
var cardx=get.autoViewAs(cardx2,ui.selected.cards.concat([card]));
|
||||
if(!get.filter(evt._backup.filterCard)(cardx,player,evt)) return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return get.filter(evt.filterCard2).apply(this,arguments);
|
||||
};
|
||||
}
|
||||
if(info.selectCard!=undefined) this.selectCard=info.selectCard;
|
||||
if(info.position!=undefined) this.position=info.position;
|
||||
if(info.forced!=undefined) this.forced=info.forced;
|
||||
if(info.complexSelect!=undefined) this.complexSelect=info.complexSelect;
|
||||
if(info.complexCard!=undefined) this.complexCard=info.complexCard;
|
||||
if(info.complexTarget!=undefined) this.complexTarget=info.complexTarget;
|
||||
if(info.ai1!=undefined) this.ai1=info.ai1;
|
||||
if(info.ai2!=undefined) this.ai2=info.ai2;
|
||||
}
|
||||
else if(info.viewAs){
|
||||
if(info.filterButton!=undefined) this.filterButton=get.filter(info.filterButton);
|
||||
if(info.selectButton!=undefined) this.selectButton=info.selectButton;
|
||||
if(info.filterTarget!=undefined) this.filterTarget=get.filter(info.filterTarget);
|
||||
|
@ -30883,8 +30916,8 @@
|
|||
if(enable){
|
||||
if(info.noHidden&&!game.expandSkills(player.getSkills()).contains(skills2[i])) enable=false;
|
||||
if(info.filter&&!info.filter(event,player)) enable=false;
|
||||
if(info.viewAs&&event.filterCard&&!event.filterCard(info.viewAs,player,event)) enable=false;
|
||||
if(info.viewAs&&info.viewAsFilter&&info.viewAsFilter(player)==false) enable=false;
|
||||
if(info.viewAs&&typeof info.viewAs!='function'&&event.filterCard&&!event.filterCard(info.viewAs,player,event)) enable=false;
|
||||
if(info.viewAs&&typeof info.viewAs!='function'&&info.viewAsFilter&&info.viewAsFilter(player)==false) enable=false;
|
||||
if(info.usable&&get.skillCount(skills2[i])>=info.usable) enable=false;
|
||||
if(info.chooseButton&&_status.event.noButton) enable=false;
|
||||
if(info.round&&(info.round-(game.roundNumber-player.storage[skills2[i]+'_roundcount'])>0)) enable=false;
|
||||
|
@ -30950,7 +30983,7 @@
|
|||
if(skillinfo&&skillinfo.multitarget&&!skillinfo.multiline){
|
||||
_status.multitarget=true;
|
||||
}
|
||||
if((skillinfo&&skillinfo.viewAs)||!_status.event.skill){
|
||||
if((skillinfo&&skillinfo.viewAs&&typeof skillinfo.viewAs!='function')||!_status.event.skill){
|
||||
var cardinfo=get.info(get.card());
|
||||
if(cardinfo&&cardinfo.multitarget&&!cardinfo.multiline){
|
||||
_status.multitarget=true;
|
||||
|
@ -32100,7 +32133,7 @@
|
|||
}
|
||||
return;
|
||||
}
|
||||
if(info.viewAs){
|
||||
if(info.viewAs&&typeof info.viewAs!='function'){
|
||||
if(typeof info.viewAs=='string'){
|
||||
info.viewAs={name:info.viewAs};
|
||||
}
|
||||
|
@ -45636,7 +45669,8 @@
|
|||
}
|
||||
if(event.skill){
|
||||
event.result.skill=event.skill;
|
||||
event.result.card=get.copy(get.info(event.skill).viewAs);
|
||||
if(typeof get.info(event.skill).viewAs=='function') event.result.card=get.info(event.skill).viewAs(event.result.cards,event.player);
|
||||
else event.result.card=get.copy(get.info(event.skill).viewAs);
|
||||
if(event.result.cards.length==1&&event.result.card){
|
||||
event.result.card.suit=get.suit(event.result.cards[0]);
|
||||
event.result.card.number=get.number(event.result.cards[0]);
|
||||
|
@ -47819,6 +47853,7 @@
|
|||
if(skill&&!zhu.hasSkill(skill)) return null;
|
||||
return zhu;
|
||||
}
|
||||
if(!game.zhu) return null;
|
||||
if(skill&&!game.zhu.hasSkill(skill)) return null;
|
||||
if(game.zhu.isZhu) return game.zhu;
|
||||
}
|
||||
|
@ -48626,6 +48661,7 @@
|
|||
card:function(original){
|
||||
if(_status.event.skill){
|
||||
var card=get.info(_status.event.skill).viewAs;
|
||||
if(typeof card=='function') card=card(ui.selected.cards,_status.event.player);
|
||||
if(card){
|
||||
return get.autoViewAs(card,ui.selected.cards,_status.event.player);
|
||||
}
|
||||
|
|
|
@ -1,32 +1,35 @@
|
|||
window.noname_update={
|
||||
version:'1.9.99.3',
|
||||
update:'1.9.99.2',
|
||||
version:'1.9.100',
|
||||
update:'1.9.99.3',
|
||||
changeLog:[
|
||||
'新界赵云,界张飞,王允',
|
||||
'立华奏,音无结弦',
|
||||
'bug修复',
|
||||
],
|
||||
files:[
|
||||
//'card/extra.js',
|
||||
'card/extra.js',
|
||||
//'card/huanlekapai.js',
|
||||
'card/sp.js',
|
||||
//'card/sp.js',
|
||||
'card/standard.js',
|
||||
//'card/swd.js',
|
||||
//'card/mtg.js',
|
||||
'card/gujian.js',
|
||||
//'card/guozhan.js',
|
||||
//'card/gwent.js',
|
||||
//'card/yunchou.js',
|
||||
//'card/zhenfa.js',
|
||||
//'card/zhulu.js',
|
||||
'card/zhulu.js',
|
||||
'character/diy.js',
|
||||
'character/extra.js',
|
||||
//'character/extra.js',
|
||||
//'character/hearth.js',
|
||||
//'character/gujian.js',
|
||||
//'character/gwent.js',
|
||||
//'character/hearth.js',
|
||||
'character/mobile.js',
|
||||
//'character/mobile.js',
|
||||
//'character/mtg.js',
|
||||
'character/old.js',
|
||||
'character/refresh.js',
|
||||
'character/shenhua.js',
|
||||
//'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
//'character/tw.js',
|
||||
//'character/standard.js',
|
||||
|
@ -43,10 +46,10 @@ window.noname_update={
|
|||
//'mode/guozhan.js',
|
||||
//'mode/chess.js',
|
||||
//'mode/tafang.js',
|
||||
//'mode/single.js',
|
||||
'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
'mode/brawl.js',
|
||||
'mode/versus.js',
|
||||
//'mode/brawl.js',
|
||||
//'mode/versus.js',
|
||||
//'mode/boss.js',
|
||||
'game/game.js',
|
||||
//'game/NoSleep.js',
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 198 KiB |
Binary file not shown.
After Width: | Height: | Size: 113 KiB |
Binary file not shown.
After Width: | Height: | Size: 242 KiB |
Binary file not shown.
After Width: | Height: | Size: 244 KiB |
Binary file not shown.
After Width: | Height: | Size: 191 KiB |
|
@ -3,24 +3,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
return {
|
||||
name:'single',
|
||||
changbanCharacter:[
|
||||
"key_kyousuke",
|
||||
"xf_yiji","caozhang","sunquan",
|
||||
"re_caocao","re_guojia","re_xuzhu","re_zhangliao","re_xiahoudun","re_simayi","re_lidian",
|
||||
"re_zhangfei","re_zhaoyun","re_zhouyu","re_ganning","re_lvbu","re_gongsunzan","re_diaochan",
|
||||
"re_xiahouyuan","re_huangzhong","re_weiyan","re_dianwei","re_pangde","re_yanwen","pangtong",
|
||||
"re_zhurong","sunjian","jiaxu","dengai","jiangwei","sunce",
|
||||
"wangji","kuailiangkuaiyue","wangping","yl_luzhi","chendao","lukang",
|
||||
"xin_masu","lingtong","xusheng","wangyi","xunyou","madai","handang",
|
||||
"guohuai","caochong","guanping","liufeng","zhuran","xin_liru",
|
||||
"hanhaoshihuan","wuyi","guyong","caoxiu","liuchen","sunxiu","gongsunyuan",
|
||||
"guohuanghou","xinxianying","qinmi","xushi","xuezong","ol_yujin",
|
||||
"lvdai","wangcan","zhoufang","guosi","zhangji","fanchou",
|
||||
"zhanggong","shamoke","mangyachang","huangfusong","xf_huangquan","xf_tangzi","xf_sufei","liuqi",
|
||||
"lifeng","lingcao","sunru","re_jikang","zhuling",
|
||||
"sp_caiwenji","caoang","sp_caoren","fuwan","guanyinping","jsp_guanyu","huangjinleishi",
|
||||
"sp_jiangwei","litong","mayunlu","sp_pangde","wanglang","xiahouba",
|
||||
"yuanshu","yuejin","sp_zhangfei","zhugejin","panfeng","chenlin",
|
||||
"jiling","mateng","tw_dingfeng","kaisa",
|
||||
"key_rei","key_yoshino","key_noda","key_nagisa",
|
||||
"re_caocao","re_caozhang","re_diaochan","re_ganning","re_gongsunzan","re_guojia","re_huangyueying","re_lidian","re_lvbu",
|
||||
"re_simayi","sunquan","re_xiahoudun","re_xushu","yuanshu","xf_yiji","re_zhangfei","re_zhangliao","re_xuzhu",
|
||||
"re_zhaoyun","re_zhouyu","re_zhugeliang","ol_xiahouyuan","re_huangzhong","re_weiyan","dianwei","te_yanwen","re_pangde",
|
||||
"re_zhurong","re_sunjian","jiaxu","dengai","re_jiangwei","re_sunben","wangji","wangping","guanqiujian","chendao","ol_yujin",
|
||||
"re_caozhi","xin_masu","re_lingtong","xusheng","re_gaoshun","xunyou","guanzhang","madai","handang","caochong",
|
||||
"re_guohuai","guanping","liufeng","re_zhuran","xin_liru","hanhaoshihuan","guyong","zhuhuan","caoxiu","liuchen","re_zhangyi",
|
||||
"re_quancong","sunxiu","sundeng","guohuanghou","re_jikang","xuezong","qinmi","lvdai","re_zhangliang","lingcao",
|
||||
"sunru","zhuling","sp_caoren","fanchou","fuwan","sp_ganning","guanyinping","guosi","heqi","sp_jiangwei","litong",
|
||||
"re_panfeng","sp_pangde","xf_sufei","xf_tangzi","xiahouba","xujing","yuejin","sp_zhangfei","zhangji","zhangyì","dongcheng",
|
||||
],
|
||||
singlePile:[
|
||||
['spade',5,'sha'],
|
||||
|
|
Loading…
Reference in New Issue