虐鸟时间到
This commit is contained in:
parent
9b2fb77ddf
commit
13f8c13449
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
394
character/diy.js
394
character/diy.js
|
@ -59,6 +59,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_abyusa:['female','key',3,['abyusa_jueqing','abyusa_dunying']],
|
||||
key_godan:['male','key',6,['godan_yuanyi','godan_feiqu','godan_xiaoyuan']],
|
||||
key_yuu:['male','key',3,['yuu_lveduo']],
|
||||
key_ryoichi:['male','key',4,['ryoichi_baoyi','ryoichi_tuipi']],
|
||||
key_kotori:['female','key',3,['kotori_yumo','kotori_huazhan']],
|
||||
|
||||
key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']],
|
||||
key_misuzu:['female','key',3,['misuzu_hengzhou','misuzu_nongyin','misuzu_zhongxing']],
|
||||
|
@ -132,6 +134,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
// ns_lisu:['male','qun',3,[]],
|
||||
// ns_sunhao:['male','qun',3,[]],
|
||||
ns_xinnanhua:['male','qun',3,['ns_xiandao','ns_xiuzheng','ns_chuanshu'],[]],
|
||||
|
||||
old_jiakui:['male','wei',4,['tongqu','xinwanlan']],
|
||||
ol_guohuai:['male','wei',3,['rejingce']],
|
||||
},
|
||||
characterFilter:{
|
||||
key_yuu:function(mode){
|
||||
|
@ -157,8 +162,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
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"],
|
||||
diy_fakenews:["diy_wenyang","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_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","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu"],
|
||||
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","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","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori"],
|
||||
diy_yongjian:["ns_chendao","yj_caoang"],
|
||||
diy_trashbin:['old_jiakui','ol_guohuai'],
|
||||
},
|
||||
},
|
||||
characterIntro:{
|
||||
|
@ -173,6 +179,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
|
||||
},
|
||||
characterTitle:{
|
||||
key_kotori:'#bRewrite',
|
||||
key_ryoichi:'#bSummer Pockets',
|
||||
key_yuu:'#bCharlotte',
|
||||
key_godan:'#rAngel Beats!',
|
||||
key_abyusa:'#rAngel Beats!',
|
||||
|
@ -327,6 +335,353 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_lucia:['key_shizuru'],
|
||||
},
|
||||
skill:{
|
||||
kotori_yumo:{
|
||||
trigger:{
|
||||
global:'gameDrawAfter',
|
||||
player:'enterGame',
|
||||
},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
content:function(){
|
||||
var list=['wei','shu','wu','qun'];
|
||||
for(var i of list){
|
||||
if(!player.hasMark('kotori_yumo_'+i)){
|
||||
player.addMark('kotori_yumo_'+i,1,false);
|
||||
game.log(player,'获得了一个',lib.translate['kotori_yumo_'+i].replace(/魔物/g,'【魔物】'));
|
||||
}
|
||||
}
|
||||
},
|
||||
group:['kotori_yumo_damage','kotori_yumo_gain'],
|
||||
},
|
||||
kotori_yumo_damage:{
|
||||
trigger:{global:'damageEnd'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
var name='kotori_yumo_'+event.player.group;
|
||||
return lib.skill[name]&&!player.hasMark(name);
|
||||
},
|
||||
popup:false,
|
||||
content:function(){
|
||||
game.log(player,'对',trigger.player,'发动了','#g【驭魔】');
|
||||
var group=trigger.player.group;
|
||||
player.popup('驭魔',get.groupnature(group));
|
||||
player.addMark('kotori_yumo_'+group,1,false);
|
||||
game.log(player,'获得了一个',lib.translate['kotori_yumo_'+group].replace(/魔物/g,'【魔物】'));
|
||||
},
|
||||
},
|
||||
kotori_yumo_gain:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
var list=['wei','shu','wu','qun','key'];
|
||||
for(var i in list){
|
||||
if(player.hasMark('kotori_yumo_'+list[i])) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=['wei','shu','wu','qun','key'];
|
||||
var list2=[];
|
||||
for(var i of list){
|
||||
if(player.hasMark('kotori_yumo_'+i)) list2.push('kotori_skill_'+i);
|
||||
}
|
||||
list2.push('cancel2');
|
||||
player.chooseControl(list2).set('prompt','###是否发动【驭魔】?###弃置对应的标记并获得下列技能中的一个,或点取消,不获得技能').set('choice',function(){
|
||||
if(list2.contains('kotori_skill_shu')&&player.countCards('h',function(card){
|
||||
return get.name(card,player)=='sha'&&player.getUseValue(card)>0;
|
||||
})>1) return 'kotori_skill_shu';
|
||||
if(list2.contains('kotori_skill_key')&&player.hp>1) return 'kotori_skill_key';
|
||||
if(list2.contains('kotori_skill_qun')&&player.isDamaged()&&player.needsToDiscard()>1) return 'kotori_skill_qun';
|
||||
return 'cancel2';
|
||||
}()).set('ai',function(){
|
||||
return _status.event.choice;
|
||||
});
|
||||
'step 1'
|
||||
if(result.control!='cancel2'){
|
||||
player.logSkill('kotori_yumo');
|
||||
var name='kotori_yumo_'+result.control.slice(13);
|
||||
player.removeMark(name,1,false);game.log(player,'移去了一个',lib.translate[name].replace(/魔物/g,'【魔物】'));
|
||||
player.addTempSkill(result.control);
|
||||
game.log(player,'获得了技能',lib.translate[name].replace(/魔物/g,'【'+get.translation(result.control)+'】'));
|
||||
}
|
||||
},
|
||||
},
|
||||
kotori_skill_wei:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.countCards('he')>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseCardTarget({
|
||||
prompt:get.prompt2(event.name),
|
||||
filterCard:lib.filter.cardDiscardable,
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target;
|
||||
},
|
||||
position:'he',
|
||||
ai1:function(card){
|
||||
return 6-get.value(card);
|
||||
},
|
||||
ai2:function(target){
|
||||
return 1/(1+target.countCards('he'))*-get.attitude(_status.event.player,target);
|
||||
},
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill(event.name,result.targets);
|
||||
player.discard(result.cards);
|
||||
result.targets[0].chooseToDiscard('弃置一张牌,或令'+get.translation(player)+'摸一张牌','he').ai=lib.skill.zhiheng.check;
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
if(!result.bool) player.draw();
|
||||
},
|
||||
},
|
||||
kotori_skill_shu:{
|
||||
mod:{
|
||||
cardUsable:function(card,player,num){
|
||||
if(card.name=='sha') return num+1;
|
||||
},
|
||||
},
|
||||
trigger:{player:'phaseUseEnd'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.getHistory('useCard',function(evt){
|
||||
return evt.card&&evt.card.name=='sha'&&evt.getParent('phaseUse')==event;
|
||||
}).length>1;
|
||||
},
|
||||
content:function(){player.draw()},
|
||||
},
|
||||
kotori_skill_wu:{
|
||||
trigger:{player:'phaseEnd'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')!=player.hp;
|
||||
},
|
||||
content:function(){player.draw()},
|
||||
},
|
||||
kotori_skill_qun:{
|
||||
trigger:{player:'phaseDiscardBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return (player.isDamaged()||player.countCards('h')-player.hp>1);
|
||||
},
|
||||
content:function(){
|
||||
var num=0;
|
||||
if(player.isDamaged()) num++;
|
||||
if(player.countCards('h')-player.hp>1) num++;
|
||||
player.addMark('kotori_qunxin_temp',num,false);
|
||||
player.addTempSkill('kotori_qunxin_temp','phaseDiscardEnd');
|
||||
},
|
||||
},
|
||||
kotori_skill_key:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.draw();
|
||||
"step 1"
|
||||
player.changeHujia(1);
|
||||
"step 2"
|
||||
var evt=event.getParent('phase');
|
||||
if(evt&&evt.after){
|
||||
var next=player.loseHp();
|
||||
event.next.remove(next);
|
||||
evt.after.push(next);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
result:{
|
||||
player:function(player){
|
||||
return player.hp-1;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
kotori_qunxin_temp:{
|
||||
onremove:true,
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+player.countMark('kotori_qunxin_temp');
|
||||
},
|
||||
},
|
||||
},
|
||||
kotori_yumo_wei:{
|
||||
marktext:'<span class="thundertext">魔</span>',
|
||||
intro:{name:'<span class="thundertext">魔物</span>',content:'mark'},
|
||||
},
|
||||
kotori_yumo_shu:{
|
||||
marktext:'<span class="firetext">魔</span>',
|
||||
intro:{name:'<span class="firetext">魔物</span>',content:'mark'},
|
||||
},
|
||||
kotori_yumo_wu:{
|
||||
marktext:'<span class="greentext">魔</span>',
|
||||
intro:{name:'<span class="greentext">魔物</span>',content:'mark'},
|
||||
},
|
||||
kotori_yumo_qun:{
|
||||
marktext:'<span class="yellowtext">魔</span>',
|
||||
intro:{name:'<span class="yellowtext">魔物</span>',content:'mark'},
|
||||
},
|
||||
kotori_yumo_key:{
|
||||
marktext:'<span class="legendtext">魔</span>',
|
||||
intro:{name:'<span class="legendtext">魔物</span>',content:'mark'},
|
||||
},
|
||||
kotori_huazhan:{
|
||||
charlotte:true,
|
||||
enable:'chooseToUse',
|
||||
filter:function(event,player){
|
||||
var bool=false;
|
||||
var list=['wei','shu','wu','qun','key'];
|
||||
for(var i of list){
|
||||
if(player.hasMark('kotori_yumo_'+i)&&!player.getStorage('kotori_huazhan2').contains('kotori_yumo_'+i)){
|
||||
bool=true;break;
|
||||
}
|
||||
}
|
||||
return bool&&event.filterCard({name:'kaihua',isCard:true},player,event);
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
return ui.create.dialog('###花绽###'+lib.translate.kotori_huazhan_info);
|
||||
},
|
||||
chooseControl:function(event,player){
|
||||
var list=['wei','shu','wu','qun','key'];
|
||||
var list2=[];
|
||||
for(var i of list){
|
||||
if(player.hasMark('kotori_yumo_'+i)&&!player.getStorage('kotori_huazhan2').contains('kotori_yumo_'+i)) list2.push('kotori_yumo_'+i);
|
||||
}
|
||||
list2.push('cancel2');
|
||||
return list2;
|
||||
},
|
||||
check:function(){
|
||||
var player=_status.event.player;
|
||||
var list=['wei','shu','wu','qun','key'];
|
||||
var list2=[];
|
||||
for(var i of list){
|
||||
if(player.hasMark('kotori_yumo_'+i)&&!player.getStorage('kotori_huazhan2').contains('kotori_yumo_'+i)) list2.push('kotori_yumo_'+i);
|
||||
}
|
||||
if(list2.contains('kotori_yumo_wei')) return 'kotori_yumo_wei';
|
||||
if(list2.contains('kotori_yumo_wu')) return 'kotori_yumo_wu';
|
||||
if(list2.contains('kotori_yumo_qun')) return 'kotori_yumo_qun';
|
||||
if(list2.contains('kotori_yumo_key')) return 'kotori_yumo_key';
|
||||
if(list2.contains('kotori_yumo_shu')&&game.hasPlayer(function(current){
|
||||
return current.group=='shu';
|
||||
})) return 'kotori_yumo_shu';
|
||||
return 'cancel2';
|
||||
},
|
||||
backup:function(result,player){
|
||||
return {
|
||||
markname:result.control,
|
||||
viewAs:{name:'kaihua',isCard:true},
|
||||
filterCard:function(){return false},
|
||||
selectCard:-1,
|
||||
precontent:function(){
|
||||
delete event.result.skill;
|
||||
var name=lib.skill.kotori_huazhan_backup.markname;
|
||||
if(!player.storage.kotori_huazhan2) player.storage.kotori_huazhan2=[];
|
||||
player.storage.kotori_huazhan2.push(name);
|
||||
player.addTempSkill('kotori_huazhan2');
|
||||
player.popup('花绽',get.groupnature(name.slice(12)));
|
||||
game.log(player,'发动了技能',lib.translate[name].replace(/魔物/g,'【花绽】'));
|
||||
player.removeMark(name,1,false);
|
||||
;game.log(player,'移去了一个',lib.translate[name].replace(/魔物/g,'【魔物】'));
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:function(item,player){
|
||||
return get.order({name:'kaihua'})-0.05;
|
||||
},
|
||||
result:{
|
||||
player:function(player){
|
||||
if(player.countCards('he',function(card){
|
||||
if(get.type(card)=='equip') return 8-get.value(card);
|
||||
return 6-get.value(card);
|
||||
})<2) return -0.5;
|
||||
return player.getUseValue({name:'kaihua'});
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
kotori_huazhan2:{onremove:true},
|
||||
ryoichi_baoyi:{
|
||||
trigger:{
|
||||
player:'loseAfter',
|
||||
global:['gainAfter','equipAfter','addJudgeAfter'],
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&(target.sex=='female'||target.sex=='male'&&target.countCards('hej')>0);
|
||||
},
|
||||
filter:function(event,player){
|
||||
var evt=event.getl(player);
|
||||
return evt&&evt.es&&evt.es.length>0&&game.hasPlayer(function(target){
|
||||
return lib.skill.ryoichi_baoyi.filterTarget;
|
||||
});
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.count=trigger.getl(player).es.length;
|
||||
player.draw(event.count);
|
||||
'step 1'
|
||||
event.count--;
|
||||
player.chooseTarget(true,lib.skill.ryoichi_baoyi.filterTarget,'请选择【爆衣】的目标').set('ai',function(target){
|
||||
return -get.attitude(_status.event.player,target);
|
||||
});
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.line(target,'green');
|
||||
if(target.sex=='female') target.loseHp();
|
||||
else player.discardPlayerCard(target,2,'hej',true);
|
||||
}
|
||||
else event.finish();
|
||||
'step 3'
|
||||
if(event.count&&game.hasPlayer(function(target){
|
||||
return lib.skill.ryoichi_baoyi.filterTarget;
|
||||
})) event.goto(1);
|
||||
},
|
||||
},
|
||||
ryoichi_tuipi:{
|
||||
mod:{
|
||||
targetEnabled:function(card){
|
||||
if(card.name=='shunshou'||card.name=='guohe') return false;
|
||||
},
|
||||
},
|
||||
trigger:{player:'phaseDiscardBegin'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
trigger.setContent(lib.skill.ryoichi_tuipi.phaseDiscardContent);
|
||||
},
|
||||
phaseDiscardContent:function(){
|
||||
"step 0"
|
||||
var num=0;
|
||||
var hs=player.getCards('he');
|
||||
num+=hs.length;
|
||||
for(var i=0;i<hs.length;i++){
|
||||
if(game.checkMod(hs[i],player,false,'ignoredHandcard',player)==true){
|
||||
num--;
|
||||
}
|
||||
}
|
||||
num=Math.max(0,num-player.getHandcardLimit());
|
||||
event.num=num;
|
||||
if(event.num<=0) event.finish();
|
||||
else{
|
||||
if(lib.config.show_phase_prompt){
|
||||
player.popup('弃牌阶段');
|
||||
}
|
||||
}
|
||||
event.trigger('phaseDiscard');
|
||||
"step 1"
|
||||
player.chooseToDiscard(num,true,'he');
|
||||
"step 2"
|
||||
event.cards=result.cards;
|
||||
},
|
||||
},
|
||||
yuu_lveduo:{
|
||||
mod:{
|
||||
cardEnabled:function(card,player){
|
||||
|
@ -4305,8 +4660,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(!player.isDisabled(list[i])) list.splice(i--,1);
|
||||
else player.enableEquip(list[i]);
|
||||
}
|
||||
player.storage.kengo_guidui2=list;
|
||||
player.addTempSkill('kengo_guidui2');
|
||||
if(!player.storage.kengo_guidui2) player.storage.kengo_guidui2=[];
|
||||
player.storage.kengo_guidui2.addArray(list);
|
||||
//player.addTempSkill('kengo_guidui2');
|
||||
},
|
||||
},
|
||||
kengo_guidui2:{onremove:true},
|
||||
|
@ -10496,6 +10852,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_abyusa:'游佐',
|
||||
key_godan:'松下护騨',
|
||||
key_yuu:'乙坂有宇',
|
||||
key_ryoichi:'三谷良一',
|
||||
key_kotori:'神户小鸟',
|
||||
lucia_duqu:'毒躯',
|
||||
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
|
||||
lucia_zhenren:'振刃',
|
||||
|
@ -10551,7 +10909,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_weishang_shan:'伪伤',
|
||||
kengo_weishang_info:'出牌阶段限一次,你可以废除一个装备栏并摸两张牌。若你的武器栏已废除,则你使用【杀】的次数上限+1,且当你使用【杀】指定目标后,目标角色弃置一张牌;若你的防具栏已废除,则你可以将一张牌当做【闪】使用或打出;若你的攻击/防御坐骑栏已废除,则你至其他角色的距离-1/其他角色至你的距离-1。',
|
||||
kengo_guidui:'归队',
|
||||
kengo_guidui_info:'锁定技,准备阶段,若你有已废除的装备栏,则你恢复这些装备栏,且本回合内发动【伪伤】时不能废除这些装备栏。',
|
||||
kengo_guidui_info:'锁定技,准备阶段,若你有已废除的装备栏,则你恢复这些装备栏,且本局游戏内发动【伪伤】时不能废除这些装备栏。',
|
||||
yoshino_jueyi:'决义',
|
||||
yoshino_jueyi_info:'出牌阶段开始时,你可以选择一名其他角色。你摸一张牌并与其猜拳(平局则重来)。若你赢,你对其造成1点伤害。若你没赢,你本阶段内使用牌时不能指定其为目标。',
|
||||
yui_jiang:'激昂',
|
||||
|
@ -10747,6 +11105,31 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yuu_lveduo:'掠夺',
|
||||
yuu_lveduo_info:'每轮限一次,其他角色的回合开始时,若你本局游戏内未对其发动过〖掠夺〗且你的武将牌正面朝上,你可以将武将牌翻面并获得该角色本回合内的控制权。此回合结束时,你将武将牌翻回正面。锁定技,若你的武将牌背面朝上,则你不能使用或打出牌。',
|
||||
yuu_lveduo_full_info:'每轮限一次,其他角色的回合开始时,若你本局游戏内未对其发动过〖掠夺〗且你的武将牌正面朝上,你可以将武将牌翻面并获得该角色本回合内的控制权。此回合结束时,你将武将牌翻回正面,获得该角色武将牌上所有的带有「Charlotte」标签的技能,且该角色失去这些技能。锁定技,若你的武将牌背面朝上,则你不能使用或打出牌。',
|
||||
ryoichi_baoyi:'爆衣',
|
||||
ryoichi_baoyi_info:'锁定技,当你失去装备区内的一张牌后,你摸一张牌,然后选择一项:①弃置一名其他男性角色区域内的两张牌。②令一名其他女性角色失去1点体力。',
|
||||
ryoichi_tuipi:'褪皮',
|
||||
ryoichi_tuipi_info:'锁定技,你不是【顺手牵羊】和【过河拆桥】的合法目标。你装备区的牌于弃牌阶段内计入手牌上限。',
|
||||
kotori_yumo:'驭魔',
|
||||
kotori_yumo_damage:'驭魔',
|
||||
kotori_yumo_gain:'驭魔',
|
||||
kotori_yumo_info:'锁定技,游戏开始时,你获得蓝色、红色、绿色、黄色魔物各一个。当有角色受到伤害后,若你没有对应的标记,你根据其势力获得一个对应魔物:魏:蓝、蜀:红、吴:绿、群:黄、键:紫。回合开始时,你可以弃置一个对应的魔物并获得以下技能之一直到回合结束:蓝:魏业、红:蜀义、绿:吴耀、黄:群心、紫:键魂。',
|
||||
kotori_skill_wei:'魏业',
|
||||
kotori_skill_wei_info:'回合开始时,你可以弃置一张牌并指定一名其他角色,该角色须弃置一张牌,否则你摸一张牌。',
|
||||
kotori_skill_shu:'蜀义',
|
||||
kotori_skill_shu_info:'你使用【杀】上限+1;出牌阶段结束时,若你于此阶段使用【杀】次数不少于2,摸一张牌。',
|
||||
kotori_skill_wu:'吴耀',
|
||||
kotori_skill_wu_info:'回合结束时,若你的手牌数不等于你的体力值,则你摸一张牌。',
|
||||
kotori_skill_qun:'群心',
|
||||
kotori_skill_qun_info:'锁定技,弃牌阶段开始时,若你的手牌数比体力值多2或更多,你本回合手牌上限+1;若你已损失体力值大于1,你手牌上限+1',
|
||||
kotori_skill_key:'键魂',
|
||||
kotori_skill_key_info:'出牌阶段限一次,你可以摸一张牌并获得1点护甲。若如此做,你于当前回合结束时失去1点体力。',
|
||||
kotori_yumo_wei:'<span class="thundertext">魔物</span>',
|
||||
kotori_yumo_shu:'<span class="firetext">魔物</span>',
|
||||
kotori_yumo_wu:'<span class="greentext">魔物</span>',
|
||||
kotori_yumo_qun:'<span class="yellowtext">魔物</span>',
|
||||
kotori_yumo_key:'<span class="legendtext">魔物</span>',
|
||||
kotori_huazhan:'花绽',
|
||||
kotori_huazhan_info:'每回合每种魔物限一次,你可将一个蓝色/红色/绿色/黄色/紫色魔物当做【树上开花】使用。',
|
||||
|
||||
key_kud:'库特莉亚芙卡',
|
||||
kud_qiaoshou:'巧手',
|
||||
|
@ -11051,6 +11434,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_yongjian:'用间篇',
|
||||
diy_yijiang:'设计比赛2020',
|
||||
diy_fakenews:'假新闻',
|
||||
diy_trashbin:'垃圾桶',
|
||||
old_jiakui:'贾逵重制',
|
||||
ol_guohuai:'三血郭淮',
|
||||
},
|
||||
};
|
||||
});
|
||||
|
|
|
@ -13,14 +13,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian"],
|
||||
mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng","xin_chengpu","xin_jianyong","xin_gongsunzan"],
|
||||
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","liuzan"],
|
||||
mobile_trashbin:['old_jiakui'],
|
||||
},
|
||||
},
|
||||
character:{
|
||||
xin_gongsunzan:['male','qun',4,['xinyicong','qiaomeng']],
|
||||
dingyuan:['male','qun',4,['beizhu']],
|
||||
xin_jianyong:['male','shu',3,['xinqiaoshui','xinjyzongshi']],
|
||||
old_jiakui:['male','wei',4,['tongqu','xinwanlan']],
|
||||
xin_caozhang:['male','wei',4,['rejiangchi']],
|
||||
xin_liaohua:['male','shu',4,['redangxian','refuli']],
|
||||
furong:['male','shu',4,['xuewei','liechi']],
|
||||
|
@ -348,11 +346,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
});
|
||||
if(cards.length){
|
||||
var card=cards.randomRemove(1)[0];
|
||||
target.useCard(player,false,{
|
||||
name:'sha',
|
||||
isCard:true,
|
||||
cards:[card],
|
||||
},[card]).card.beizhu=true;
|
||||
target.useCard(player,false,card).card.beizhu=true;
|
||||
event.redo();
|
||||
}
|
||||
},
|
||||
|
@ -6113,8 +6107,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
mobile_shenhua:'手杀异构·神话再临',
|
||||
mobile_yijiang1:'手杀异构·一将成名',
|
||||
mobile_sp:'手杀异构·SP',
|
||||
mobile_trashbin:'通厕所的',
|
||||
old_jiakui:'贾逵重制',
|
||||
xin_gongsunzan:'手杀公孙瓒',
|
||||
}
|
||||
};
|
||||
|
|
|
@ -752,7 +752,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ol_zhuran:'OL朱然',
|
||||
ol_guansuo:'OL关索',
|
||||
ol_manchong:'OL满宠',
|
||||
ol_guohuai:'OL郭淮',
|
||||
old_fuhuanghou:'旧伏皇后',
|
||||
old_caochong:'旧曹冲',
|
||||
old_guanqiujian:'旧毌丘俭',
|
||||
|
|
|
@ -2491,14 +2491,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
targetInRange:function(card,player,target){
|
||||
if(target==player.storage.rexianzhen) return true;
|
||||
},
|
||||
cardUsable:function(card,player,num){
|
||||
if(card.name=='sha'&&typeof num=='number') return num+100;
|
||||
},
|
||||
playerEnabled:function(card,player,target){
|
||||
if(card.name=='sha'&&player.storage.rexianzhen!=target&&!ui.selected.targets.contains(player.storage.rexianzhen)){
|
||||
var num=player.getCardUsable(card)-100;
|
||||
if(num<=0) return false;
|
||||
}
|
||||
cardUsableTarget:function(card,player,target){
|
||||
if(target==player.storage.rexianzhen) return true;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -3307,8 +3301,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
mark:function(dialog,storage,player){
|
||||
if(storage&&storage.current) dialog.addSmall([[storage.current],'character']);
|
||||
if(storage&&storage.current2) dialog.addText('【'+get.translation(storage.current2)+
|
||||
'】'+lib.translate[storage.current2+'_info']);
|
||||
if(storage&&storage.current2) dialog.add('<div><div class="skill">【'+get.translation(lib.translate[storage.current2+'_ab']||get.translation(storage.current2).slice(0,2))+'】</div><div>'+get.skillInfoTranslation(storage.current2,player)+'</div></div>');
|
||||
if(storage&&storage.character.length){
|
||||
if(player.isUnderControl(true)){
|
||||
dialog.addSmall([storage.character,'character']);
|
||||
|
@ -6480,9 +6473,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
cardEnabled:function(){
|
||||
return false;
|
||||
},
|
||||
cardUsable:function(){
|
||||
return false;
|
||||
},
|
||||
cardRespondable:function(){
|
||||
return false;
|
||||
},
|
||||
|
@ -6543,6 +6533,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player:["changeHp"],
|
||||
},
|
||||
audio:2,
|
||||
audioname:{gongsunzan:'yicong'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return get.sgn(player.hp-2.5)!=get.sgn(player.hp-2.5-event.num);
|
||||
|
|
|
@ -965,18 +965,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return true;
|
||||
}
|
||||
},
|
||||
cardUsable:function (card,player,num){
|
||||
if(typeof num=='number'&&game.hasPlayer(function(current){
|
||||
return current.hasSkill('drlt_xiongluan2');
|
||||
})) return num+100;
|
||||
},
|
||||
playerEnabled:function (card,player,target){
|
||||
if(game.hasPlayer(function(current){
|
||||
return current.hasSkill('drlt_xiongluan2');
|
||||
})&&!target.hasSkill('drlt_xiongluan2')){
|
||||
var num=player.getCardUsable(card)-100;
|
||||
if(num<=0) return false;
|
||||
}
|
||||
cardUsableTarget:function(card,player,target){
|
||||
if(target.hasSkill('drlt_xiongluan2')) return true;
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
100
character/sp.js
100
character/sp.js
|
@ -848,7 +848,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
card.remove();
|
||||
card=game.createCard('qibaodao',card.suit,card.number);
|
||||
}
|
||||
targets[0].chooseUseTarget(card,true,'nopopup','noanimate');
|
||||
targets[0].chooseUseTarget(card,true,'nopopup','nothrow');
|
||||
}
|
||||
else{
|
||||
player.chat('没有装备牌了吗');
|
||||
|
@ -2440,14 +2440,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
targetInRange:function (card,player,target){
|
||||
if(target==player.storage.zhengbi_eff1) return true;
|
||||
},
|
||||
cardUsable:function (card,player,num){
|
||||
if(typeof num=='number'&&player.storage.zhengbi_eff1&&player.storage.zhengbi_eff1.isAlive()) return num+100;
|
||||
},
|
||||
playerEnabled:function (card,player,target){
|
||||
if(player.storage.zhengbi_eff1.isAlive()&&player.storage.zhengbi_eff1&&target!=player.storage.zhengbi_eff1){
|
||||
var num=player.getCardUsable(card)-100;
|
||||
if(num<=0) return false;
|
||||
}
|
||||
cardUsableTarget:function (card,player,target){
|
||||
if(player.storage.zhengbi_eff1==target) return true;
|
||||
},
|
||||
},
|
||||
onremove:true,
|
||||
|
@ -3518,7 +3512,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
equip1=game.createCard2('qibaodao',equip1.suit,equip1.number);
|
||||
}
|
||||
target.$draw(equip1);
|
||||
target.chooseUseTarget(true,equip1,'noanimate','nopopup');
|
||||
target.chooseUseTarget(true,equip1,'nothrow','nopopup');
|
||||
game.delay();
|
||||
'step 2'
|
||||
game.updateRoundNumber();
|
||||
|
@ -10265,11 +10259,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return false;
|
||||
}
|
||||
},
|
||||
cardUsable:function(card,player){
|
||||
if(player.storage.zuixiang2&&player.storage.zuixiang2.contains(get.type(card,'trick'))){
|
||||
return false;
|
||||
}
|
||||
},
|
||||
cardRespondable:function(card,player){
|
||||
if(player.storage.zuixiang2&&player.storage.zuixiang2.contains(get.type(card,'trick'))){
|
||||
return false;
|
||||
|
@ -12151,20 +12140,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:'players'
|
||||
},
|
||||
mod:{
|
||||
cardUsable:function(card,player,num){
|
||||
if(typeof num=='number') return num+100;
|
||||
},
|
||||
playerEnabled:function(card,player,target){
|
||||
var bool=false;
|
||||
if(player.storage.huxiao3&&ui.selected.targets.length){
|
||||
for(var i=0;i<player.storage.huxiao3.length;i++){
|
||||
if(ui.selected.targets.contains(player.storage.huxiao3[i])){bool=true;break}
|
||||
}
|
||||
}
|
||||
if(!bool&&(!player.storage.huxiao3||!player.storage.huxiao3.contains(target))){
|
||||
var num=player.getCardUsable(card)-100;
|
||||
if(num<=0) return false;
|
||||
}
|
||||
cardUsableTarget:function(card,player,target){
|
||||
if(player.storage.huxiao3&&player.storage.huxiao3.contains(target)) return true;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -13118,30 +13095,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
chixin:{
|
||||
group:['chixin1','chixin2'],
|
||||
mod:{
|
||||
cardUsable:function(card,player,num){
|
||||
if(card.name=='sha'){
|
||||
return num+20;
|
||||
}
|
||||
cardUsableTarget:function(card,player,target){
|
||||
if(card.name=='sha'&&!target.hasSkill('chixin3')&&player.inRange(target)) return true;
|
||||
},
|
||||
},
|
||||
trigger:{player:'shaBefore'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
check:function(event,player){
|
||||
return player.countCards('h','sha')>0;
|
||||
},
|
||||
filter:function(event,player){
|
||||
return _status.currentPhase==player;
|
||||
},
|
||||
trigger:{player:'useCardToPlayered'},
|
||||
silent:true,
|
||||
firstDo:true,
|
||||
content:function(){
|
||||
var target=trigger.target;
|
||||
if(target.hasSkill('chixin3')){
|
||||
target.storage.chixin++;
|
||||
}
|
||||
else{
|
||||
target.storage.chixin=1;
|
||||
target.addTempSkill('chixin3','phaseUseEnd');
|
||||
}
|
||||
trigger.target.addTempSkill('chixin3');
|
||||
}
|
||||
},
|
||||
chixin1:{
|
||||
|
@ -13171,23 +13133,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
}
|
||||
},
|
||||
chixin3:{
|
||||
mod:{
|
||||
targetEnabled:function(card,player,target){
|
||||
if(card.name!='sha') return;
|
||||
if(player==_status.currentPhase&&player.hasSkill('chixin')){
|
||||
var num=player.getCardUsable(card,true)-20;
|
||||
var players=game.filterPlayer();
|
||||
for(var i=0;i<players.length;i++){
|
||||
if(players[i].hasSkill('chixin3')){
|
||||
num+=1-players[i].storage.chixin;
|
||||
}
|
||||
}
|
||||
return num>1;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
chixin3:{},
|
||||
suiren:{
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
skillAnimation:true,
|
||||
|
@ -13593,15 +13539,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{
|
||||
player:"phaseZhunbeiBegin",
|
||||
},
|
||||
forced:true,
|
||||
direct:true,
|
||||
filter:function (event,player){
|
||||
filter:function(event,player){
|
||||
if(player.phaseNumber>1) return false;
|
||||
return !game.hasPlayer(function(current){
|
||||
return current.hasSkill('smh_huoji')||current.hasSkill('smh_lianhuan');
|
||||
});
|
||||
},
|
||||
content:function (){
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseTarget('请将「龙印」交给一名角色',true,function(card,player,target){
|
||||
return target!=player;
|
||||
|
@ -13620,13 +13565,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(game.hasPlayer(function(current){
|
||||
return !current.hasSkill('smh_huoji')&¤t!=player
|
||||
})){
|
||||
player.chooseTarget('请将「凤印」交给一名角色',true,function(card,player,target){
|
||||
return target!=player&&!target.hasSkill('smh_huoji');
|
||||
}).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
return 10+get.attitude(player,target);
|
||||
});
|
||||
}else event.finish();
|
||||
player.chooseTarget('请将「凤印」交给一名角色',true,function(card,player,target){
|
||||
return target!=player&&!target.hasSkill('smh_huoji');
|
||||
}).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
return 10+get.attitude(player,target);
|
||||
});
|
||||
}
|
||||
else event.finish();
|
||||
"step 2"
|
||||
if(result.bool&&result.targets&&result.targets.length){
|
||||
var target=result.targets[0];
|
||||
|
|
|
@ -849,6 +849,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
ziqu:{
|
||||
audio:2,
|
||||
audioname:['sp_key_yuri'],
|
||||
trigger:{source:'damageBegin2'},
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&!player.getStorage('ziqu').contains(event.player)&&
|
||||
|
@ -4658,24 +4660,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"xinfu_tanbei":{
|
||||
locked:false,
|
||||
mod:{
|
||||
targetInRange:function (card,player,target){
|
||||
targetInRange:function(card,player,target){
|
||||
if(target.hasSkill('tanbei_effect1')){
|
||||
return true;
|
||||
}
|
||||
},
|
||||
cardUsable:function (card,player,num){
|
||||
if(typeof num=='number'&&game.hasPlayer(function(current){
|
||||
return current.hasSkill('tanbei_effect1');
|
||||
})) return num+100;
|
||||
cardUsableTarget:function(card,player,target){
|
||||
if(target.hasSkill('tanbei_effect1')) return true;
|
||||
},
|
||||
playerEnabled:function (card,player,target){
|
||||
playerEnabled:function(card,player,target){
|
||||
if(target.hasSkill('tanbei_effect2')) return false;
|
||||
if(game.hasPlayer(function(current){
|
||||
return current.hasSkill('tanbei_effect1');
|
||||
})&&!target.hasSkill('tanbei_effect1')){
|
||||
var num=player.getCardUsable(card)-100;
|
||||
if(num<=0) return false;
|
||||
}
|
||||
},
|
||||
},
|
||||
audio:2,
|
||||
|
|
|
@ -37,7 +37,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
lvbu:['male','qun',4,['wushuang']],
|
||||
diaochan:['female','qun',3,['lijian','biyue']],
|
||||
huaxiong:['male','qun',6,['yaowu']],
|
||||
gongsunzan:['male','qun',4,['yicong']],
|
||||
gongsunzan:['male','qun',4,['reyicong']],
|
||||
|
||||
xf_yiji:["male","shu",3,["xinfu_jijie","xinfu_jiyuan"],[]],
|
||||
re_yuanshu:['male','qun',4,['rewangzun','retongji']],
|
||||
|
|
|
@ -1444,10 +1444,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return true;
|
||||
}
|
||||
},
|
||||
cardUsable:function (card,player,num){
|
||||
if(typeof num=='number'&&player.countCards('j')&&card.name!='jiu'){
|
||||
return Infinity;
|
||||
}
|
||||
cardUsableTarget:function(card,player,target){
|
||||
if(player.countCards('j')&&player.inRange(target)) return true;
|
||||
},
|
||||
aiValue:function(player,card,num){
|
||||
if(card.name=='zhangba') return 15;
|
||||
|
|
|
@ -62,7 +62,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
hanhaoshihuan:['male','wei',4,['shenduan','yonglve']],
|
||||
|
||||
caorui:['male','wei',3,['huituo','mingjian','xingshuai'],['zhu']],
|
||||
caoxiu:['male','wei',4,['reqianju','reqingxi']],
|
||||
caoxiu:['male','wei',4,['qianju','reqingxi']],
|
||||
zhongyao:['male','wei',3,['huomo','zuoding']],
|
||||
liuchen:['male','shu',4,['zhanjue','qinwang'],['zhu']],
|
||||
zhangyi:['male','shu',4,['wurong','shizhi']],
|
||||
|
@ -1870,7 +1870,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return get.type(card)=='equip'&&target.hasUseTarget(card);
|
||||
});
|
||||
if(target.isMinEquip()&&equip){
|
||||
target.chooseUseTarget(equip,'noanimate','nopopup',true);
|
||||
target.chooseUseTarget(equip,'nothrow','nopopup',true);
|
||||
event.e=true;
|
||||
}
|
||||
'step 3'
|
||||
|
@ -1885,9 +1885,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 5'
|
||||
if(!event.e&&player.isMinEquip()){
|
||||
var equip=get.cardPile(function(card){
|
||||
return get.type(card)=='equip'&&target.hasUseTarget(card);
|
||||
return get.type(card)=='equip'&&player.hasUseTarget(card);
|
||||
});
|
||||
if(equip) player.chooseUseTarget(equip,'noanimate','nopopup',true);
|
||||
if(equip) player.chooseUseTarget(equip,'nothrow','nopopup',true);
|
||||
}
|
||||
'step 6'
|
||||
game.updateRoundNumber();
|
||||
|
@ -2398,7 +2398,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return get.type(card)=='equip'&&!target.isDisabled(get.subtype(card));
|
||||
});
|
||||
if(event.card){
|
||||
target.chooseUseTarget(event.card,'noanimate','nopopup',true);
|
||||
target.chooseUseTarget(event.card,'nothrow','nopopup',true);
|
||||
event.goto(3);
|
||||
}
|
||||
else{
|
||||
|
@ -2477,7 +2477,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return get.type(card)=='equip';
|
||||
});
|
||||
if(card){
|
||||
trigger.source.chooseUseTarget(card,'noanimate','nopopup',true);
|
||||
trigger.source.chooseUseTarget(card,'nothrow','nopopup',true);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -2527,7 +2527,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return get.type(card)=='equip';
|
||||
});
|
||||
if(card){
|
||||
target.chooseUseTarget(card,true,'noanimate','nopopup',true);
|
||||
target.chooseUseTarget(card,true,'nothrow','nopopup',true);
|
||||
}
|
||||
}
|
||||
if(event.triggername=='dyingAfter'&&player.storage.juexiang_lie>0) event.goto(0);
|
||||
|
@ -4992,7 +4992,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
event.directfalse=true;
|
||||
}
|
||||
else{
|
||||
trigger.target.chooseToDiscard(num,'弃置'+get.cnNumber(num)+'张手牌,或令杀的伤害+1').set('ai',function(card){
|
||||
trigger.target.chooseToDiscard(num,'弃置'+get.cnNumber(num)+'张手牌,或令'+get.translation(trigger.card)+'的伤害+1').set('ai',function(card){
|
||||
var player=_status.event.player;
|
||||
if(player.hp==1){
|
||||
if(get.type(card)=='basic'){
|
||||
|
@ -5016,18 +5016,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(e1){
|
||||
player.discard(e1,'notBySelf');
|
||||
}
|
||||
event.finish();
|
||||
}
|
||||
else{
|
||||
var storage=trigger.target.storage;
|
||||
var id=trigger.target.playerid;
|
||||
var map=trigger.customArgs;
|
||||
if(!map[id]) map[id]={};
|
||||
if(!map[id].extraDamage) map[id].extraDamage=0;
|
||||
map[id].extraDamage++;
|
||||
if(!storage.reqingxi2) storage.reqingxi2=[];
|
||||
storage.reqingxi2.push(trigger.card);
|
||||
trigger.target.addTempSkill('reqingxi2');
|
||||
trigger.target.judge(function(card){
|
||||
if(get.color(card)=='red') return -1;
|
||||
return 0;
|
||||
});
|
||||
}
|
||||
'step 2'
|
||||
if(result.bool===false) trigger.directHit.add(trigger.target);
|
||||
}
|
||||
},
|
||||
reqingxi2:{
|
||||
|
@ -5259,15 +5262,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
targetInRange:function(card,player,target){
|
||||
if(target==player.storage.xinxianzhen) return true;
|
||||
},
|
||||
cardUsable:function(card,player,num){
|
||||
if(typeof num=='number') return num+100;
|
||||
cardUsableTarget:function(card,player,target){
|
||||
if(target==player.storage.xinxianzhen) return true;
|
||||
},
|
||||
playerEnabled:function(card,player,target){
|
||||
if(card.name=='sha'&&player.storage.xinxianzhen!=target&&!ui.selected.targets.contains(player.storage.xinxianzhen)){
|
||||
var num=player.getCardUsable(card)-100;
|
||||
if(num<=0) return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
unequip:true,
|
||||
|
@ -5381,15 +5378,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
targetInRange:function(card,player,target){
|
||||
if(target==player.storage.xianzhen) return true;
|
||||
},
|
||||
cardUsable:function(card,player,num){
|
||||
if(card.name=='sha'&&typeof num=='number') return num+100;
|
||||
cardUsableTarget:function(card,player,target){
|
||||
if(target==player.storage.xianzhen) return true;
|
||||
},
|
||||
playerEnabled:function(card,player,target){
|
||||
if(card.name=='sha'&&player.storage.xianzhen!=target&&!ui.selected.targets.contains(player.storage.xianzhen)){
|
||||
var num=player.getCardUsable(card)-100;
|
||||
if(num<=0) return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
unequip:true,
|
||||
|
@ -10116,7 +10107,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var card=result[0];
|
||||
if(get.type(card)=='equip'){
|
||||
if(!event.target.isDisabled(get.subtype(card))){
|
||||
event.target.chooseUseTarget(card,true,'noanimate','nopopup');
|
||||
event.target.chooseUseTarget(card,true,'nopopup');
|
||||
game.delay();
|
||||
}
|
||||
event.bool=true;
|
||||
|
@ -10880,12 +10871,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 0"
|
||||
player.draw();
|
||||
"step 1"
|
||||
player.showHandcards();
|
||||
if(!player.countCards('h')) event.finish();
|
||||
else player.showHandcards();
|
||||
"step 2"
|
||||
if(!trigger.source) return;
|
||||
var cards=player.getCards('h');
|
||||
var color=get.color(cards[0],player);
|
||||
for(var i=1;i<cards.length;i++){
|
||||
if(get.color(cards[i])!=get.color(cards[0])) return;
|
||||
if(get.color(cards[i],player)!=color) return;
|
||||
}
|
||||
trigger.source.chooseToDiscard(true);
|
||||
},
|
||||
|
@ -12316,7 +12309,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
reqianju:'千驹',
|
||||
reqianju_info:'锁定技,若你已受伤,你计算与其他角色的距离时-X(X为你已损失的体力值且至少为1)。',
|
||||
reqingxi:'倾袭',
|
||||
reqingxi_info:'当你使用【杀】或【决斗】指定目标后,你可以令其选择一项:1、弃置X张手牌(X为你攻击范围内的角色数,且当你装备区内有武器牌/没有武器牌时至多为4/2),若如此做,其弃置你的此武器牌;2、令此牌的伤害值+1且其不能使用或打出与此牌颜色不同的牌或转化的牌直到此牌结算完成。',
|
||||
reqingxi_info:'当你使用【杀】或【决斗】指定目标后,你可以令其选择一项:1、弃置X张手牌(X为你攻击范围内的角色数,且当你装备区内有武器牌/没有武器牌时至多为4/2),若如此做,其弃置你的此武器牌;2、令此牌的伤害值+1且其进行判定,若结果为红色,则其不能响应此牌。',
|
||||
jieyue:'节钺',
|
||||
jieyue1:'节钺',
|
||||
jieyue2:'节钺',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.105.6.1',
|
||||
'v1.9.105.7',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -631,6 +631,7 @@ window.noname_asset_list=[
|
|||
'audio/die/re_manchong.mp3',
|
||||
'audio/die/re_yufan.mp3',
|
||||
'audio/die/xin_jianyong.mp3',
|
||||
'audio/die/sp_zhangliao.mp3',
|
||||
|
||||
'audio/skill/anguo1.mp3',
|
||||
'audio/skill/anguo2.mp3',
|
||||
|
@ -2782,6 +2783,12 @@ window.noname_asset_list=[
|
|||
'audio/skill/yuce_re_manchong2.mp3',
|
||||
'audio/skill/zhiyan_re_yufan1.mp3',
|
||||
'audio/skill/zhiyan_re_yufan2.mp3',
|
||||
'audio/skill/diaoling1.mp3',
|
||||
'audio/skill/diaoling2.mp3',
|
||||
'audio/skill/mubing1.mp3',
|
||||
'audio/skill/mubing2.mp3',
|
||||
'audio/skill/ziqu1.mp3',
|
||||
'audio/skill/ziqu2.mp3',
|
||||
|
||||
'font/huangcao.ttf',
|
||||
'font/shousha.ttf',
|
||||
|
@ -3420,6 +3427,8 @@ window.noname_asset_list=[
|
|||
'image/character/sp_zhangliao.jpg',
|
||||
'image/character/xin_jianyong.jpg',
|
||||
'image/character/ol_yuanshu.jpg',
|
||||
'image/character/key_kotori.jpg',
|
||||
'image/character/key_ryoichi.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
34
game/game.js
34
game/game.js
|
@ -9965,6 +9965,7 @@
|
|||
if(cards) next.cards=cards.slice(0);
|
||||
if(event.nopopup) next.nopopup=true;
|
||||
if(event.animate===false) next.animate=false;
|
||||
if(event.throw===false) next.throw=false;
|
||||
if(event.addCount===false) next.addCount=false;
|
||||
if(event.noTargetDelay) next.targetDelay=false;
|
||||
if(event.nodelayx) next.delayx=false;
|
||||
|
@ -13712,7 +13713,7 @@
|
|||
player.line(targets,config);
|
||||
}
|
||||
}
|
||||
player.$throw(cards);
|
||||
if(event.throw!==false) player.$throw(cards);
|
||||
if(lib.config.sync_speed&&cards[0]&&cards[0].clone){
|
||||
var waitingForTransition=get.time();
|
||||
event.waitingForTransition=waitingForTransition;
|
||||
|
@ -17844,6 +17845,9 @@
|
|||
else if(arguments[i]=='noanimate'){
|
||||
next.animate=false;
|
||||
}
|
||||
else if(arguments[i]=='nothrow'){
|
||||
next.throw=false;
|
||||
}
|
||||
else if(arguments[i]=='nodistance'){
|
||||
next.nodistance=true;
|
||||
}
|
||||
|
@ -22890,8 +22894,9 @@
|
|||
card=[card.suit,card.number,card.name,card.nature];
|
||||
}
|
||||
var cardnum=card[1]||'';
|
||||
if(parseInt(cardnum)==cardnum) cardnum=parseInt(cardnum);
|
||||
if([1,11,12,13].contains(cardnum)){
|
||||
cardnum={'1':'A','11':'J','12':'Q','13':'K'}[cardnum]
|
||||
cardnum={'1':'A','11':'J','12':'Q','13':'K'}[cardnum];
|
||||
}
|
||||
if(!lib.card[card[2]]){
|
||||
lib.card[card[2]]={};
|
||||
|
@ -24442,7 +24447,7 @@
|
|||
if(mod!='unchanged') return mod;
|
||||
return true;
|
||||
},
|
||||
cardUsable:function(card,player,event){
|
||||
cardUsable2:function(card,player,event){
|
||||
card=get.autoViewAs(card,null,player);
|
||||
var info=get.info(card);
|
||||
if(info.updateUsable=='phaseUse'){
|
||||
|
@ -24457,6 +24462,28 @@
|
|||
if(typeof num!='number') return true;
|
||||
else return(player.countUsed(card)<num);
|
||||
},
|
||||
cardUsable:function(card,player,event){
|
||||
card=get.autoViewAs(card,null,player);
|
||||
var info=get.info(card);
|
||||
if(info.updateUsable=='phaseUse'){
|
||||
event=event||_status.event;
|
||||
if(player!=_status.event.player) return true;
|
||||
if(event.getParent().name!='phaseUse') return true;
|
||||
if(event.getParent().player!=player) return true;
|
||||
}
|
||||
var num=info.usable;
|
||||
if(typeof num=='function') num=num(card,player);
|
||||
num=game.checkMod(card,player,num,'cardUsable',player);
|
||||
if(typeof num!='number') return true;
|
||||
if(player.countUsed(card)<num) return true;
|
||||
if(game.hasPlayer(function(current){
|
||||
return game.checkMod(card,player,current,false,'cardUsableTarget',player);
|
||||
})){
|
||||
_status.event.addCount_extra=true;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
cardDiscardable:function(card,player,event){
|
||||
event=event||_status.event;
|
||||
var mod=game.checkMod(card,player,event.getParent().name,'unchanged','cardDiscardable',player);
|
||||
|
@ -24503,6 +24530,7 @@
|
|||
},
|
||||
targetEnabled:function(card,player,target){
|
||||
if(!card) return false;
|
||||
if(_status.event.addCount_extra&&!lib.filter.cardUsable2(card,player)&&!game.checkMod(card,player,target,false,'cardUsableTarget',player)) return false;
|
||||
var info=get.info(card);
|
||||
var filter=info.filterTarget;
|
||||
var mod=game.checkMod(card,player,target,'unchanged','playerEnabled',player);
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
window.noname_update={
|
||||
version:'1.9.105.6.1',
|
||||
update:'1.9.105.6',
|
||||
version:'1.9.105.7',
|
||||
update:'1.9.105.6.1',
|
||||
changeLog:[
|
||||
'新标袁术',
|
||||
'神户小鸟、三谷良一',
|
||||
'bug修复',
|
||||
|
||||
],
|
||||
|
@ -19,7 +19,7 @@ window.noname_update={
|
|||
//'card/yunchou.js',
|
||||
//'card/zhenfa.js',
|
||||
//'card/zhulu.js',
|
||||
//'character/diy.js',
|
||||
'character/diy.js',
|
||||
//'character/extra.js',
|
||||
//'character/hearth.js',
|
||||
//'character/gujian.js',
|
||||
|
@ -29,14 +29,14 @@ window.noname_update={
|
|||
//'character/mtg.js',
|
||||
'character/old.js',
|
||||
'character/refresh.js',
|
||||
//'character/shenhua.js',
|
||||
'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
//'character/sp2.js',
|
||||
'character/sp2.js',
|
||||
//'character/tw.js',
|
||||
'character/standard.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
//'character/xinghuoliaoyuan.js',
|
||||
'character/xinghuoliaoyuan.js',
|
||||
'character/yijiang.js',
|
||||
//'character/yxs.js',
|
||||
//'extension/boss/extension.js',
|
||||
|
@ -44,13 +44,13 @@ window.noname_update={
|
|||
//'layout/nova/layout.css',
|
||||
//'mode/identity.js',
|
||||
//'mode/doudizhu.js',
|
||||
//'mode/guozhan.js',
|
||||
'mode/guozhan.js',
|
||||
//'mode/chess.js',
|
||||
//'mode/tafang.js',
|
||||
//'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
//'mode/brawl.js',
|
||||
'mode/versus.js',
|
||||
//'mode/versus.js',
|
||||
//'mode/boss.js',
|
||||
'game/game.js',
|
||||
//'game/keyWords.js',
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 225 KiB |
Binary file not shown.
After Width: | Height: | Size: 156 KiB |
|
@ -1566,13 +1566,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
targetInRange:function (card,player,target){
|
||||
if(target==player.storage.gzzhengbi_eff1) return true;
|
||||
},
|
||||
cardUsable:function (card,player,num){
|
||||
if(typeof num=='number'&&player.storage.gzzhengbi_eff1.isAlive()&&player.storage.gzzhengbi_eff1.isUnseen()) return num+100;
|
||||
},
|
||||
playerEnabled:function (card,player,target){
|
||||
if(player.storage.gzzhengbi_eff1.isAlive()&&player.storage.gzzhengbi_eff1.isUnseen()&&target!=player.storage.gzzhengbi_eff1){
|
||||
var num=player.getCardUsable(card)-100;
|
||||
if(num<=0) return false;
|
||||
cardUsableTarget:function (card,player,target){
|
||||
if(target==player.storage.gzzhengbi_eff1&&target.isUnseen()){
|
||||
return true;
|
||||
}
|
||||
},
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue