Saya's Song / Haruka Kanata
This commit is contained in:
parent
d347e1e324
commit
8e17c94001
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.
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.
Binary file not shown.
Binary file not shown.
268
character/diy.js
268
character/diy.js
|
@ -25,6 +25,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_yoshino:['male','key',4,['yoshino_jueyi']],
|
||||
key_yui:['female','key',3,['yui_jiang','yui_lieyin','yui_takaramono']],
|
||||
key_tsumugi:['female','key',3,['tsumugi_mugyu','tsumugi_huilang']],
|
||||
key_saya:['female','key',3,['saya_shouji','saya_powei']],
|
||||
key_harukakanata:['female','key',3,['haruka_shuangche']],
|
||||
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
|
||||
// diy_hanlong:['male','wei',4,['siji','ciqiu']],
|
||||
diy_feishi:['male','shu',3,['shuaiyan','moshou']],
|
||||
|
@ -101,7 +103,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"],
|
||||
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"],
|
||||
},
|
||||
},
|
||||
characterIntro:{
|
||||
|
@ -116,6 +118,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
|
||||
},
|
||||
characterTitle:{
|
||||
key_saya:'#bLittle Busters!',
|
||||
key_harukakanata:'#bLittle Busters!',
|
||||
key_tsumugi:'#bSummer Pockets',
|
||||
key_yui:'#rAngel Beats!',
|
||||
key_yoshino:'#bRewrite',
|
||||
|
@ -168,6 +172,233 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yuji:['zuoci']
|
||||
},
|
||||
skill:{
|
||||
saya_powei:{
|
||||
trigger:{player:'phaseAfter'},
|
||||
direct:true,
|
||||
locked:true,
|
||||
limited:true,
|
||||
unique:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'metal',
|
||||
filter:function(event,player){
|
||||
return event.type!='saya_powei'&&game.hasPlayer(function(current){
|
||||
return current.hp>player.hp;
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('saya_powei'),function(card,saya,kyousuke){
|
||||
return kyousuke.hp>saya.hp;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('saya_powei',target);
|
||||
player.awakenSkill('saya_powei');
|
||||
game.delay(3);
|
||||
var next=game.createEvent('saya_powei_loop',false,trigger);
|
||||
next.playertrue=player;
|
||||
next.playerfalse=target;
|
||||
next.setContent(lib.skill.saya_powei.content2);
|
||||
}
|
||||
},
|
||||
content2:function(){
|
||||
'step 0'
|
||||
event.count=0;
|
||||
event.stat=true;
|
||||
event.current=event['player'+event.stat];
|
||||
game.countPlayer2(function(current){
|
||||
if(current!=event.playertrue&¤t!=event.playerfalse) current.addSkill('saya_nodis');
|
||||
});
|
||||
event.playertrue.addSkill('saya_judge');
|
||||
'step 1'
|
||||
event.count++;
|
||||
event.current.phase().set('type','saya_powei');
|
||||
'step 2'
|
||||
if(event.count==9||event.playertrue.isDead()||event.playerfalse.isDead()){
|
||||
game.countPlayer2(function(current){
|
||||
current.removeSkill('saya_nodis');
|
||||
current.removeSkill('saya_judge');
|
||||
});
|
||||
}
|
||||
else{
|
||||
event.stat=!event.stat;
|
||||
event.current=event['player'+event.stat];
|
||||
event.goto(1);
|
||||
}
|
||||
}
|
||||
},
|
||||
saya_nodis:{
|
||||
group:'undist',
|
||||
mark:true,
|
||||
intro:{content:'不计入距离和座次的计算'},
|
||||
},
|
||||
saya_judge:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
filter:function(event,player){
|
||||
return event.type=='saya_powei'&&player==event.getParent().playertrue;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.judge(function(card){
|
||||
return get.color(card)=='red'?5:0;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.line(trigger.getParent().playerfalse);
|
||||
trigger.getParent().playerfalse.damage();
|
||||
}
|
||||
},
|
||||
},
|
||||
saya_shouji:{
|
||||
trigger:{player:'useCardAfter'},
|
||||
filter:function(event,player){
|
||||
return !player.getStat('skill').saya_shouji&&event.cards.filterInD().length>0;
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
var goon=function(){
|
||||
var num=0;
|
||||
var cards=trigger.cards.filterInD();
|
||||
for(var i=0;i<cards.length;i++){
|
||||
num+=player.getUseValue(cards[i]);
|
||||
}
|
||||
return player.countCards('h',function(card){
|
||||
return (card.name!='sha'||!player.countUsed('sha'))&&player.getUseValue(card)>num;
|
||||
})==0;
|
||||
}();
|
||||
player.chooseTarget(get.prompt2('saya_shouji'),lib.filter.notMe).set('ai',function(target){
|
||||
if(!_status.event.goon) return 0;
|
||||
var player=_status.event.player;
|
||||
var cards=_status.event.getTrigger().cards.filterInD();
|
||||
var att=get.attitude(player,target);
|
||||
var num=0;
|
||||
for(var i=0;i<cards.length;i++){
|
||||
num+=target.getUseValue(cards[i]);
|
||||
}
|
||||
return Math.max(num,0.1)*att;
|
||||
}).set('goon',goon);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.getStat('skill').saya_shouji=1;
|
||||
event.cards=trigger.cards.filterInD();
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.logSkill('saya_shouji',target);
|
||||
target.gain(event.cards,'gain2','log');
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
target.chooseToUse({
|
||||
cards:cards,
|
||||
filterCard:function(card){
|
||||
if(!_status.event.cards.contains(card)) return false;
|
||||
return lib.filter.filterCard.apply(this,arguments);
|
||||
},
|
||||
prompt:'是否使用得到的牌中的一张?',
|
||||
});
|
||||
'step 3'
|
||||
if(result.bool) player.draw();
|
||||
},
|
||||
},
|
||||
haruka_shuangche:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return player.countCards('he')>0&&!player.hasSkill('haruka_kanata');
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
var list=[];
|
||||
for(var i=0;i<lib.inpile.length;i++){
|
||||
var name=lib.inpile[i];
|
||||
if(name=='sha'){
|
||||
list.push(['基本','','sha']);
|
||||
list.push(['基本','','sha','fire']);
|
||||
list.push(['基本','','sha','thunder']);
|
||||
}
|
||||
else if(get.type(name)=='trick') list.push(['锦囊','',name]);
|
||||
else if(get.type(name)=='basic') list.push(['基本','',name]);
|
||||
}
|
||||
return ui.create.dialog('双掣',[list,'vcard']);
|
||||
},
|
||||
filter:function(button,player){
|
||||
return _status.event.getParent().filterCard({name:button.link[2]},player,_status.event.getParent());
|
||||
},
|
||||
check:function(button){
|
||||
var player=_status.event.player;
|
||||
if(player.countCards('h',button.link[2])>0) return 0;
|
||||
if(button.link[2]=='wugu') return 0;
|
||||
var effect=player.getUseValue(button.link[2]);
|
||||
if(effect>0) return effect;
|
||||
return 0;
|
||||
},
|
||||
backup:function(links,player){
|
||||
return {
|
||||
filterCard:true,
|
||||
audio:'haruka_shuangche',
|
||||
selectCard:-1,
|
||||
filterCard:function(){return false},
|
||||
popname:true,
|
||||
check:function(card){
|
||||
return 6-get.value(card);
|
||||
},
|
||||
position:'he',
|
||||
viewAs:{name:links[0][2],nature:links[0][3],isCard:true},
|
||||
}
|
||||
},
|
||||
prompt:function(links,player){
|
||||
return '请选择'+(get.translation(links[0][3])||'')+get.translation(links[0][2])+'的目标';
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:4,
|
||||
result:{
|
||||
player:function(player){
|
||||
var cards=player.getCards('he').sort(function(a,b){
|
||||
return get.value(a)-get.value(b);
|
||||
});
|
||||
var num=(player.getStat('skill').haruka_shuangche||0);
|
||||
if(cards.length>num){
|
||||
var val=0;
|
||||
for(var i=0;i<cards.length;i++){
|
||||
val+=get.value(cards[i]);
|
||||
}
|
||||
return 12-val;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
},
|
||||
group:'kanata_shuangche',
|
||||
},
|
||||
kanata_shuangche:{
|
||||
trigger:{player:'useCardAfter'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.skill=='haruka_shuangche_backup';
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var num=player.getStat('skill').haruka_shuangche||1;
|
||||
player.chooseToDiscard('###双掣:请选择一项###选择弃置'+get.cnNumber(num)+'张牌,或失去1点体力且令〖双掣〗失效至回合结束',num,'he').set('ai',function(card){
|
||||
var total=12;
|
||||
for(var i=0;i<ui.selected.cards.length;i++){
|
||||
total-=get.value(ui.selected.cards[i]);
|
||||
}
|
||||
return total-get.value(card);
|
||||
});
|
||||
'step 1'
|
||||
if(!result.bool){
|
||||
player.addTempSkill('haruka_kanata');
|
||||
player.loseHp();
|
||||
}
|
||||
},
|
||||
},
|
||||
haruka_kanata:{},
|
||||
tsumugi_mugyu:{
|
||||
audio:5,
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
|
@ -372,10 +603,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(lib.filter.notMe,get.prompt2('yoshino_jueyi')).set('ai',function(){
|
||||
player.chooseTarget(lib.filter.notMe,get.prompt2('yoshino_jueyi')).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
if(get.damageEffect(target,player,player)<0) return 0;
|
||||
var att=get.attitude(player,target);
|
||||
if(att<0) return 0;
|
||||
if(att>0) return 0;
|
||||
if(att==0) return 0.1;
|
||||
var eff=0;
|
||||
var hs=player.getCards('h');
|
||||
|
@ -1174,6 +1406,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
yuri_xingdong:{
|
||||
group:'yuri_xingdong_gain',
|
||||
subSkill:{
|
||||
mark:{
|
||||
mark:true,
|
||||
|
@ -1182,9 +1415,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:'跳过下个回合的判定阶段和摸牌阶段',
|
||||
},
|
||||
},
|
||||
gain:{
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
var card=get.cardPile(function(card){
|
||||
return card.name=='sha'||get.type(card)=='trick';
|
||||
});
|
||||
if(card) player.gain(card,'gain2','log');
|
||||
'step 1'
|
||||
game.updateRoundNumber();
|
||||
},
|
||||
},
|
||||
},
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
locked:true,
|
||||
filter:function(event,player){
|
||||
return player.countCards('h',lib.skill.yuri_xingdong.filterCard);
|
||||
},
|
||||
|
@ -6159,6 +6406,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_yoshino:'吉野晴彦',
|
||||
key_yui:'ユイ',
|
||||
key_tsumugi:'紬文德斯',
|
||||
key_saya:'朱鹭户沙耶',
|
||||
key_harukakanata:'三枝二木',
|
||||
lucia_duqu:'毒躯',
|
||||
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
|
||||
lucia_zhenren:'振刃',
|
||||
|
@ -6168,7 +6417,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_huanjie:'幻界',
|
||||
key_huanjie_info:'锁定技,当你进行判定或摸牌时,你改为从牌堆的另一端获取相应的牌。',
|
||||
yuri_xingdong:'行动',
|
||||
yuri_xingdong_info:'出牌阶段限一次,你可以将一张【杀】或普通锦囊牌交给一名其他角色,然后该角色选择一项:对除你以外的角色使用此牌并在此牌结算完成后和你各摸一张牌;或跳过下回合的判定阶段和摸牌阶段。',
|
||||
yuri_xingdong_info:'锁定技,出牌阶段开始时,你获得一张【杀】或普通锦囊牌。出牌阶段限一次,你可以将一张【杀】或普通锦囊牌交给一名其他角色,然后该角色选择一项:对除你以外的角色使用此牌并在此牌结算完成后和你各摸一张牌;或跳过下回合的判定阶段和摸牌阶段。',
|
||||
yuri_wangxi:'忘隙',
|
||||
yuri_wangxi_info:'主公技,限定技,当有角色因你发动的【行动】而死亡后,若其身份不为【明忠】,则其可以将身份改为忠臣并重新加入游戏,然后将势力改为与你相同,将体力值回复至2点并摸一张牌。',
|
||||
haruko_haofang:'豪放',
|
||||
|
@ -6230,6 +6479,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
tsumugi_huilang2:'回廊',
|
||||
tsumugi_huilang_info:'回合结束时,不可以将任意张牌扣置于武将牌下(均称为「隐」)。回合开始时,你获得所有「隐」,然后可令等量的角色各摸一张牌。',
|
||||
//〖回廊〗涉及的所有卡牌移动的结算不会触发〖良姻〗
|
||||
haruka_shuangche:'双掣',
|
||||
kanata_shuangche:'双掣',
|
||||
haruka_shuangche_backup:'双掣',
|
||||
haruka_shuangche_info:'出牌阶段,你可以将一张牌当做任意基本牌或锦囊牌使用。此牌结算完成后,你选择一项:1.弃置X张牌。2.失去1点体力且本回合内不能再发动〖双掣〗。',
|
||||
saya_shouji:'授计',
|
||||
saya_shouji_info:'每回合限一次,当你使用的牌结算完成后,你可以将此牌对应的所有实体牌交给一名其他角色。其可以使用这些牌中的一张,若如此做,你摸一张牌。',
|
||||
saya_powei:'破围',
|
||||
saya_powei_info:'限定技,回合结束后,你可以选择一名体力值大于你的其他角色。你与其交替进行额外回合,直到你与其中的一名角色死亡或进行到九个回合。你于回合开始时进行判定,若结果为红色,则你对其造成1点伤害。此过程中其他角色不计入距离和座次计算。',
|
||||
saya_judge:'破围',
|
||||
saya_nodis:'破围',
|
||||
//〖破围〗不会因为〖铁骑〗无效
|
||||
|
||||
ns_zhangwei:'张葳',
|
||||
nsqiyue:'骑钺',
|
||||
|
|
|
@ -847,10 +847,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
wushen:{
|
||||
mod:{
|
||||
cardname:function(card,player,name){
|
||||
if(get.position(card)=='h'&&get.suit(card)=='heart') return 'sha';
|
||||
if(get.suit(card)=='heart') return 'sha';
|
||||
},
|
||||
cardnature:function(card,player){
|
||||
if(get.position(card)=='h'&&get.suit(card)=='heart') return false;
|
||||
if(get.suit(card)=='heart') return false;
|
||||
},
|
||||
targetInRange:function(card){
|
||||
if(get.suit(card)=='heart') return true;
|
||||
|
|
|
@ -2004,7 +2004,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
player.loseHp();
|
||||
switch(get.type(cards[0],'trick')){
|
||||
switch(get.type(cards[0],'trick',cards[0].original=='h'?player:false)){
|
||||
case 'basic':player.addTempSkill('xinzhanyi_basic');break;
|
||||
case 'equip':player.addTempSkill('xinzhanyi_equip');break;
|
||||
case 'trick':player.addTempSkill('xinzhanyi_trick');player.draw(3);break;
|
||||
|
|
|
@ -370,7 +370,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 0"
|
||||
player.chooseToCompare(target);
|
||||
"step 1"
|
||||
if(result.player&&(result.player.name=='sha'||player.hasSkill('rejinjiu')&&result.player.name=='jiu')) player.addTempSkill('rexianzhen4');
|
||||
if(result.player&&get.name(result.player.name,player)=='sha') player.addTempSkill('rexianzhen4');
|
||||
if(result.bool){
|
||||
player.storage[event.name]=target;
|
||||
player.addTempSkill(event.name+2);
|
||||
|
@ -2634,7 +2634,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var cards=result.cards;
|
||||
var type=[];
|
||||
for(var i=0;i<cards.length;i++){
|
||||
if(!type.contains(get.type(cards[i],'trick'))) type.push(get.type(cards[i],'trick'));
|
||||
type.add(get.type(cards[i],'trick',cards[i].original=='h'?player:false));
|
||||
}
|
||||
player.storage.new_qingjian++;
|
||||
player.logSkill('new_qingjian',target);
|
||||
|
@ -2975,12 +2975,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
if(result.judge>0){
|
||||
event.cards.push(result.card);
|
||||
if(lib.config.autoskilllist.contains('reluoshen')){
|
||||
player.chooseBool('是否再次发动【洛神】?');
|
||||
}
|
||||
else{
|
||||
event._result={bool:true};
|
||||
}
|
||||
player.chooseBool('是否再次发动【洛神】?').set('frequentSkill','reluoshen');
|
||||
}
|
||||
else{
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
|
@ -2988,8 +2983,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
event.cards.splice(i,1);i--;
|
||||
}
|
||||
}
|
||||
player.gain(event.cards,'gain2');
|
||||
player.storage.reluoshen.addArray(event.cards);
|
||||
if(event.cards.length){
|
||||
player.gain(event.cards,'gain2');
|
||||
player.storage.reluoshen.addArray(event.cards);
|
||||
}
|
||||
event.finish();
|
||||
}
|
||||
"step 2"
|
||||
|
|
|
@ -465,13 +465,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:function(){
|
||||
"step 0"
|
||||
player.chooseTarget(get.prompt2('drlt_zhenggu'),function(card,player,target){
|
||||
//if(target.storage.drlt_zhenggu_mark&&target.storage.drlt_zhenggu_mark.contains(player)) return false;
|
||||
return target!=player;
|
||||
}).ai=function(target){
|
||||
}).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
//if(target.storage.drlt_zhenggu_mark&&target.storage.drlt_zhenggu_mark.contains(player)) return 0;
|
||||
var num=(Math.min(5,player.countCards('h'))-target.countCards('h'));
|
||||
var att=get.attitude(player,target);
|
||||
return num*att;
|
||||
};
|
||||
});
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
|
@ -504,7 +506,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return event.player.storage.drlt_zhenggu_mark&&event.player.storage.drlt_zhenggu_mark.contains(player);
|
||||
},
|
||||
content:function(){
|
||||
trigger.player.storage.drlt_zhenggu_mark.remove(player);
|
||||
while(trigger.player.storage.drlt_zhenggu_mark.contains(player)){
|
||||
trigger.player.storage.drlt_zhenggu_mark.remove(player);
|
||||
}
|
||||
if(trigger.player.storage.drlt_zhenggu_mark.length==0) trigger.player.unmarkSkill('drlt_zhenggu_mark');
|
||||
lib.skill.drlt_zhenggu.sync(player,trigger.player);
|
||||
},
|
||||
|
@ -2195,7 +2199,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}).set('logSkill',['jianchu',trigger.target]).set('att',get.attitude(player,trigger.target)<=0);
|
||||
'step 1'
|
||||
if(result.bool&&result.links&&result.links.length){
|
||||
if(get.type(result.links[0])=='equip'){
|
||||
if(get.type(result.links[0],null,result.links[0].original=='h'?player:false)=='equip'){
|
||||
trigger.getParent().directHit.add(trigger.target);
|
||||
}
|
||||
else if(trigger.cards){
|
||||
|
|
377
character/sp.js
377
character/sp.js
|
@ -18,11 +18,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sp_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
|
||||
sp_guozhan:["shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan"],
|
||||
sp_guozhan2:["mifuren","mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","bianfuren","liqueguosi","lvfan","cuimao","jiling","zangba","zhangren","zoushi"],
|
||||
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan"],
|
||||
sp_single:["hejin","hansui","niujin"],
|
||||
sp_others:["hanba"],
|
||||
},
|
||||
},
|
||||
character:{
|
||||
gaolan:['male','qun',4,['xiying']],
|
||||
sp_shenpei:['male','qun',3,['gangzhi','beizhan']],
|
||||
xunchen:['male','qun',3,['fenglve','mouzhi']],
|
||||
sp_zhanghe:['male','qun',4,['yuanlve']],
|
||||
sunshao:['male','wu',3,['bizheng','yidian'],['unseen']],
|
||||
wangshuang:['male','wei',5,['spzhuilie'],['unseen']],
|
||||
sp_gongsunzan:['male','qun',4,['spyicong','sptuji']],
|
||||
|
@ -181,6 +186,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
//kaisa:["male","western",4,["zhengfu"]],
|
||||
},
|
||||
characterIntro:{
|
||||
gaolan:'高览,生卒年不详,一名高奂,本属袁绍部将,后官渡之战淳于琼被曹操击破,与张郃一同投降曹操,被封为偏将军,东莱侯。《三国演义》里,曾与许褚、徐晃大战不分胜负。201年刘备败走荆州时,高览奉命追杀,三合斩刘辟,而后被冲阵而来的赵云刺死。',
|
||||
xunchen:'荀谌,字友若,荀彧之兄(一说荀彧之弟),荀绲之子,颍川人。曾任军阀袁绍的幕僚。帮助袁绍游说韩馥,夺取了冀州。',
|
||||
sunshao:'孙邵(163年-225年),字长绪,青州北海国人(今山东潍坊市昌乐县西)。原为北海相孔融的功曹,被孔融称赞为可任朝廷要职的人才,后随刘繇到达江东,继而辅佐孙权。孙权称吴王后,孙邵成为吴国首任丞相,数年后病逝。由于孙邵和当时吴国史官的关系并不是很好,因此在史书中并没有详细的记载。',
|
||||
wangshuang:'王双(?-228年),三国时期曹魏将领。蜀汉建兴六年(228年)冬,诸葛亮出散关,攻陈仓,后粮尽而退。王双率领骑兵追击蜀军,但在与蜀军的交战中被击败,王双也被蜀军所斩。在《三国演义》中,王双字子全,是陇西郡狄道县(今甘肃临洮县)人,有万夫不当之勇。在诸葛亮北伐期间,被魏延所斩。',
|
||||
yuantanyuanshang:'袁谭、袁尚分别是袁绍的长子和第三子。袁绍坐拥青州、冀州、幽州、并州,本是北方最强诸侯,却于官渡大败,惭恨而终。虽然袁绍生前偏爱小儿子袁尚,却并未在继承人上有明确表态,这也导致本应以嫡长子身份继承的袁谭因郭图、审配伪立遗令未能如愿。曹操击败袁绍后,进而渡过黄河追击袁家残余势力,袁谭告急,但袁尚仅给他少量兵力。曹操得郭嘉之计退兵坐观其变,恰使两人此前的种种矛盾彻底爆发,袁谭不敌便引狼入室,派辛毗作为使者向曹操求援,让袁尚不得不北逃投奔乌桓。但袁谭也在之后背叛曹操兵败被杀。没多久,乌桓也被平定,袁熙、袁尚二人投奔公孙康后被斩首送还曹操。',
|
||||
|
@ -505,6 +512,324 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
//官渡之战
|
||||
xiying:{
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
audio:2,
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.countCards('he')>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=game.filterPlayer(function(current){
|
||||
return current!=player;
|
||||
});
|
||||
list.sortBySeat();
|
||||
event.targets=list;
|
||||
player.chooseToDiscard(get.prompt2('xiying'),'he').set('logSkill',['xiying',list]).set('ai',function(card){
|
||||
return _status.event.val-get.value(card)
|
||||
}).set('val',function(){
|
||||
return 4*Math.sqrt(game.countPlayer(function(current){
|
||||
return get.attitude(player,current)<0&¤t.countCards('he')>0;
|
||||
}));
|
||||
}());
|
||||
'step 1'
|
||||
if(!result.bool) event.finish();
|
||||
'step 2'
|
||||
var target=targets.shift();
|
||||
event.target=target;
|
||||
if(target.isAlive()) target.chooseToDiscard('he','弃置一张牌,或本回合内不能使用或打出手牌').set('ai',function(card){
|
||||
var player=_status.event.player;
|
||||
var source=_status.event.getTrigger().player;
|
||||
if(get.attitude(source,player)>0) return -1;
|
||||
if(_status.event.getRand()>0.5) return 5-get.value(card);
|
||||
return -1;
|
||||
});
|
||||
'step 3'
|
||||
if(target.isAlive()&&!result.bool) target.addTempSkill('xiying2');
|
||||
if(targets.length) event.goto(2);
|
||||
},
|
||||
},
|
||||
xiying2:{
|
||||
mark:true,
|
||||
intro:{content:'本回合内不能使用或打出牌'},
|
||||
mod:{
|
||||
cardEnabled:function(){return false},
|
||||
cardRespondable:function(){return false},
|
||||
cardSavable:function(){return false},
|
||||
},
|
||||
},
|
||||
gangzhi:{
|
||||
audio:2,
|
||||
trigger:{player:'damageBefore'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
trigger.cancel();
|
||||
player.loseHp(trigger.num);
|
||||
},
|
||||
},
|
||||
beizhan:{
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
audio:2,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('beizhan')).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
var att=get.attitude(player,target);
|
||||
var hs=target.countCards('h');
|
||||
var ht=target.maxHp;
|
||||
if(hs>=ht&&target.isMaxHandcard()) return -att*hs;
|
||||
if(hs<ht&&game.hasPlayer(function(current){
|
||||
return current.countCards('h')>ht;
|
||||
})) return att*2*(ht-hs);
|
||||
return 0;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('beizhan',target);
|
||||
target.drawTo(Math.min(5,target.maxHp))
|
||||
target.addSkill('beizhan2');
|
||||
}
|
||||
},
|
||||
},
|
||||
beizhan2:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
silent:true,
|
||||
firstDo:true,
|
||||
content:function(){
|
||||
player.removeSkill('beizhan2');
|
||||
if(player.isMaxHandcard()) player.addTempSkill('zishou2');
|
||||
},
|
||||
mark:true,
|
||||
intro:{content:'回合开始时,若手牌数为全场最多,则回合内不能使用牌指定其他角色为目标'},
|
||||
},
|
||||
fenglve:{
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:"phaseUseBegin",
|
||||
},
|
||||
direct:true,
|
||||
content:function (){
|
||||
'step 0'
|
||||
var goon=player.hasCard(function(card){
|
||||
if(get.position(card)!="h") return false;
|
||||
var val=get.value(card);
|
||||
if(val<0) return true;
|
||||
if(val<=5){
|
||||
return card.number>=12;
|
||||
}
|
||||
if(val<=6){
|
||||
return card.number>=13;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
player.chooseTarget(get.prompt2('fenglve'),function(card,player,target){
|
||||
return player.canCompare(target);
|
||||
}).set('ai',function(target){
|
||||
if(!_status.event.goon) return 0;
|
||||
return -get.attitude(player,target)*(1+target.countCards('e'))/(1+target.countCards('j'));
|
||||
}).set('goon',goon);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.logSkill('fenglve',target);
|
||||
player.chooseToCompare(target);
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
var num=0;
|
||||
if(target.countCards('h')) num++;
|
||||
if(target.countCards('e')) num++;
|
||||
if(target.countCards('j')) num++;
|
||||
if(num){
|
||||
event.gainner=player;
|
||||
event.giver=target;
|
||||
target.choosePlayerCard(target,num,'hej',true).set('filterButton',function(button){
|
||||
for(var i=0;i<ui.selected.buttons.length;i++){
|
||||
if(get.position(button.link)==get.position(ui.selected.buttons[i].link)) return false;
|
||||
}
|
||||
return true;
|
||||
}).set('prompt','选择交给'+get.translation(event.gainner)+'的牌');
|
||||
}
|
||||
else event.finish();
|
||||
}
|
||||
else{
|
||||
if(player.countCards('he')){
|
||||
event.gainner=target;
|
||||
event.giver=player;
|
||||
player.choosePlayerCard(player,true,'he').set('prompt','选择交给'+get.translation(event.gainner)+'的牌');
|
||||
}
|
||||
else event.finish();
|
||||
}
|
||||
'step 3'
|
||||
event.gainner.gain(result.links,'giveAuto',event.giver)
|
||||
},
|
||||
group:'fenglve2',
|
||||
},
|
||||
fenglve2:{
|
||||
trigger:{player:'chooseToCompareAfter'},
|
||||
check:function(event,player){
|
||||
return get.attitude(player,event.target)*get.value(event.card1,event.target,'raw')>0;
|
||||
},
|
||||
filter:function(event,player){
|
||||
return event.getParent().name=='fenglve'&&get.position(event.card1,true)=='o';
|
||||
},
|
||||
prompt:function(event){
|
||||
return '是否令'+get.translation(event.target)+'获得'+get.translation(event.card1)+'?'
|
||||
},
|
||||
logTarget:'target',
|
||||
content:function(){
|
||||
trigger.target.gain(trigger.card1,'gain2','log');
|
||||
},
|
||||
},
|
||||
mouzhi:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>0
|
||||
},
|
||||
filterCard:true,
|
||||
filterTarget:function(card,player,target){
|
||||
//if(target.storage.mouzhi2&&target.storage.mouzhi2.contains(player)) return false;
|
||||
return target!=player;
|
||||
},
|
||||
delay:0,
|
||||
lose:false,
|
||||
discard:false,
|
||||
check:function(card){
|
||||
if(card.name=='du') return 20;
|
||||
var player=_status.event.player;
|
||||
var useval=player.getUseValue(card);
|
||||
var maxval=0;
|
||||
game.countPlayer(function(current){
|
||||
if(current!=player&&!current.hasSkillTag('nogain')&&get.attitude(player,current)>0){
|
||||
var temp=current.getUseValue(card);
|
||||
if(temp>maxval) maxval=temp;
|
||||
}
|
||||
});
|
||||
if(maxval>0&&get.tag(card,'damage')) return 15;
|
||||
if(maxval>useval) return 10;
|
||||
if(player.needsToDiscard()) return 1/Math.max(0.1,get.value(card));
|
||||
return -1;
|
||||
},
|
||||
content:function(){
|
||||
target.gain(cards,player,'giveAuto');
|
||||
target.addTempSkill('mouzhi2',{player:'phaseEnd'});
|
||||
target.storage.mouzhi2.add(player);
|
||||
target.storage.mouzhi2.sortBySeat(target);
|
||||
target.markSkill('mouzhi2');
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(ui.selected.cards.length){
|
||||
var card=ui.selected.cards[0];
|
||||
if(card.name=='du') return target.hasSkill('lucia_duqu')?1:-1;
|
||||
var t=target.getUseValue(card);
|
||||
var p=player.getUseValue(card);
|
||||
if(t>p) return 2;
|
||||
if(t>0) return 1.5
|
||||
if(player.needsToDiscard()) return 1;
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
mouzhi2:{
|
||||
init:function(player,skill){
|
||||
if(!player.storage[skill]) player.storage[skill]=[];
|
||||
},
|
||||
onremove:true,
|
||||
trigger:{source:'damageSource'},
|
||||
forced:true,
|
||||
intro:{
|
||||
content:'出牌阶段内第一次对一名其他角色造成伤害时,$摸一张牌',
|
||||
},
|
||||
filter:function(event,player){
|
||||
var evt2=event.getParent('phaseUse');
|
||||
if(!evt2||evt2.player!=player) return false;
|
||||
var history=event.player.getHistory('damage',function(evt){
|
||||
return evt.source==player&&evt.getParent('phaseUse')==evt2;
|
||||
});
|
||||
return history[0]==event;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
game.asyncDraw(player.storage.mouzhi2);
|
||||
'step 1'
|
||||
game.delay();
|
||||
},
|
||||
},
|
||||
yuanlve:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
audio:2,
|
||||
filter:function(event,player){
|
||||
return player.countCards('h',function(card){
|
||||
return get.type(card)!='equip';
|
||||
})
|
||||
},
|
||||
filterCard:function(card){
|
||||
return get.type(card)!='equip';
|
||||
},
|
||||
filterTarget:lib.filter.notMe,
|
||||
delay:false,
|
||||
discard:false,
|
||||
lose:false,
|
||||
check:function(card){
|
||||
if(card.name=='du') return 20;
|
||||
var player=_status.event.player;
|
||||
var useval=player.getUseValue(card);
|
||||
var maxval=0;
|
||||
game.countPlayer(function(current){
|
||||
if(current!=player&&!current.hasSkillTag('nogain')&&get.attitude(player,current)>0){
|
||||
var temp=current.getUseValue(card);
|
||||
if(temp>maxval) maxval=temp;
|
||||
}
|
||||
});
|
||||
if(maxval>useval) return 15;
|
||||
if(maxval>0) return 10;
|
||||
if(player.needsToDiscard()) return 1/Math.max(0.1,get.value(card));
|
||||
return -1;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
target.gain(cards,player,'giveAuto');
|
||||
'step 1'
|
||||
target.chooseUseTarget(cards[0]);
|
||||
'step 2'
|
||||
if(result.bool) player.draw();
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(ui.selected.cards.length){
|
||||
var card=ui.selected.cards[0];
|
||||
if(card.name=='du') return target.hasSkill('lucia_duqu')?1:-1;
|
||||
var t=target.getUseValue(card);
|
||||
var p=player.getUseValue(card);
|
||||
if(t>p) return 2;
|
||||
if(t>0) return 1.5
|
||||
if(player.needsToDiscard()) return 1;
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//孙邵
|
||||
bizheng:{
|
||||
trigger:{player:'phaseDrawEnd'},
|
||||
|
@ -697,9 +1022,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(get.position(card)=='e') return lib.filter.cardDiscardable.apply(this,arguments);
|
||||
return true;
|
||||
});
|
||||
next.set('logSkill',['spmingjian',trigger.player]);
|
||||
//next.set('logSkill',['spmingjian',trigger.player]);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('spmingjian',trigger.player);
|
||||
var card=result.cards[0];
|
||||
event.card=card;
|
||||
if(get.position(card)=='e') event._result={index:0};
|
||||
|
@ -2489,22 +2815,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinlvli:{
|
||||
audio:'lvli',
|
||||
trigger:{player:'damageEnd',source:'damageSource'},
|
||||
filter:function(event,player){
|
||||
filter:function(event,player,name){
|
||||
var stat=player.getStat().skill;
|
||||
if(!stat.xinlvli) stat.xinlvli=0;
|
||||
if(name=='damageEnd'&&!player.storage.beishui) return false;
|
||||
if(stat.xinlvli>1) return false;
|
||||
if(stat.xinlvli>0&&(player!=_status.currentPhase||!player.storage.choujue)) return false;
|
||||
if(player.hp==player.countCards('h')) return false;
|
||||
if(player.hp<player.countCards('h')&&player.isHealthy()) return false;
|
||||
if(event.source!=player&&!player.storage.beishui) return false;
|
||||
if(player.storage.lvli>1) return false;
|
||||
if(player.storage.lvli>0&&(player!=_status.currentPhase||!player.storage.choujue)) return false;
|
||||
return true;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.storage.lvli++;
|
||||
var stat=player.getStat().skill;
|
||||
stat.xinlvli++;
|
||||
var num=player.hp-player.countCards('h');
|
||||
if(num>0) player.draw(num);
|
||||
else player.recover(-num);
|
||||
},
|
||||
group:'lvli3',
|
||||
//group:'lvli3',
|
||||
},
|
||||
lvli:{
|
||||
audio:2,
|
||||
|
@ -3949,7 +4277,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var bool=true;
|
||||
if(result.cards){
|
||||
for(var i=0;i<result.cards.length;i++){
|
||||
if(['basic','trick'].contains(get.type(result.cards[i],'trick'))){
|
||||
if(['basic','trick'].contains(get.type(result.cards[i],'trick',result.cards[i].original=='h'?player:false))){
|
||||
bool=false;break;
|
||||
}
|
||||
}
|
||||
|
@ -6497,7 +6825,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.discardPlayerCard(target,true);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
if(result.cards[0].name=='shan'){
|
||||
if(get.name(result.cards[0],result.cards[0].original=='h'?player:false)=='shan'){
|
||||
player.viewHandcards(target);
|
||||
}
|
||||
else{
|
||||
|
@ -12165,7 +12493,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(event.type!='discard'||event.player==player||_status.currentPhase==player) return false;
|
||||
if(player.hasSkill('shenxian2')) return false;
|
||||
for(var i=0;i<event.cards2.length;i++){
|
||||
if(get.type(event.cards2[i])=='basic'){
|
||||
if(get.type(event.cards2[i],null,event.hs.contains(event.cards2[i])?event.player:false)=='basic'){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -12761,7 +13089,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
if(target==player){
|
||||
for(var i=0;i<cards.length;i++){
|
||||
if(get.color(cards[i])=='black'){
|
||||
if(get.color(cards[i],cards[i].original=='h'?player:false)=='black'){
|
||||
player.loseHp();
|
||||
break;
|
||||
}
|
||||
|
@ -13391,7 +13719,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(event.type!='discard') return false;
|
||||
if(event.cards2){
|
||||
for(var i=0;i<event.cards2.length;i++){
|
||||
if(get.color(event.cards2[i])=='red') return true;
|
||||
if(get.color(event.cards2[i],event.hs.contains(event.cards2[i])?player:false)=='red') return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
@ -13402,7 +13730,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(trigger.name=='lose'){
|
||||
event.count=0;
|
||||
for(var i=0;i<trigger.cards2.length;i++){
|
||||
if(get.color(trigger.cards2[i])=='red') event.count++;
|
||||
if(get.color(trigger.cards2[i],trigger.hs.contains(trigger.cards2[i])?player:false)=='red') event.count++;
|
||||
}
|
||||
}
|
||||
"step 1"
|
||||
|
@ -17411,6 +17739,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
bizheng_info:'摸牌阶段结束时,你可以令一名其他角色摸两张牌。然后,若你的手牌数大于体力值,你弃置两张牌。若其的手牌数大于体力值,其弃置两张牌。',
|
||||
yidian:'佚典',
|
||||
yidian_info:'当你使用牌选择目标时,若弃牌堆中没有与此牌名称相同的牌,则你可以为此牌增加一个目标(无距离限制)。',
|
||||
sp_zhanghe:'SP张郃',
|
||||
yuanlve:'远略',
|
||||
yuanlve_info:'出牌阶段限一次,你可以将一张非装备牌交给一名角色,然后该角色可以使用该牌并令你摸一张牌。',
|
||||
xunchen:'荀谌',
|
||||
fenglve:'锋略',
|
||||
fenglve2:'锋略',
|
||||
fenglve_info:'出牌阶段开始时,你可以与一名角色拼点,若你赢,该角色将其区域内的各一张牌交给你;若你没赢,你交给其一张牌。拼点结算后你可以令其获得你拼点的牌。',
|
||||
mouzhi:'谋识',
|
||||
mouzhi2:'谋识',
|
||||
mouzhi_info:'出牌阶段限一次,你可以将一张手牌交给一名角色,若如此做,当其于其下回合的出牌阶段内对一名角色造成伤害后,若是此阶段其第一次对该角色造成伤害,你摸一张牌。',
|
||||
sp_shenpei:'SP审配',
|
||||
gangzhi:'刚直',
|
||||
gangzhi_info:'锁定技,当你即将受到伤害时,你防止此伤害,改为失去等量的体力。',
|
||||
beizhan:'备战',
|
||||
beizhan2:'备战',
|
||||
beizhan_info:'结束阶段,你可以令一名角色将手牌摸至体力上限(至多为5)。其下个回合开始时,若其手牌数为全场最多,则其此回合内使用的牌不能指定其他角色为目标。',
|
||||
gaolan:'高览',
|
||||
xiying:'袭营',
|
||||
xiying2:'袭营',
|
||||
xiying_info:'出牌阶段开始时,你可以弃置一张牌,然后令所有其他角色依次选择一项:弃置一张牌,或本回合内不能使用或打出牌。',
|
||||
|
||||
sp_default:"常规",
|
||||
sp_whlw:"文和乱武",
|
||||
|
@ -17427,6 +17775,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sp_single:'新1v1',
|
||||
sp_guansuo:'花关索传',
|
||||
sp_sticker:'桌游志·贴纸',
|
||||
sp_guandu:'官渡之战',
|
||||
},
|
||||
};
|
||||
});
|
||||
|
|
|
@ -500,12 +500,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
if(result.judge>0){
|
||||
event.cards.push(result.card);
|
||||
if(lib.config.autoskilllist.contains('luoshen')){
|
||||
player.chooseBool('是否再次发动【洛神】?');
|
||||
}
|
||||
else{
|
||||
event._result={bool:true};
|
||||
}
|
||||
player.chooseBool('是否再次发动【洛神】?').set('frequentSkill','luoshen');
|
||||
}
|
||||
else{
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
|
|
|
@ -579,7 +579,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 2'
|
||||
target.chooseToUse({
|
||||
filterCard:function(card){
|
||||
return card.name=='sha'&&get.color(card)!='black'&&lib.filter.cardEnabled.apply(this,arguments);
|
||||
return get.name(card)=='sha'&&get.color(card)!='black'&&lib.filter.cardEnabled.apply(this,arguments);
|
||||
},
|
||||
prompt:'请使用一张不为黑色的【杀】,否则'+get.translation(player)+'可以对你或你攻击范围内的一名其他角色造成1点伤害',
|
||||
});
|
||||
|
@ -733,7 +733,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 0"
|
||||
var types=[];
|
||||
for(var i=0;i<cards.length;i++){
|
||||
types.add(get.type(cards[i],'trick'));
|
||||
types.add(get.type(cards[i],'trick',player));
|
||||
}
|
||||
target.chooseToDiscard(function(card){
|
||||
return !_status.event.types.contains(get.type(card,'trick'));
|
||||
|
@ -1424,13 +1424,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{
|
||||
player:"phaseZhunbeiBegin",
|
||||
},
|
||||
filter:function (event,player){
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return current.countCards('h')>current.hp;
|
||||
});
|
||||
},
|
||||
direct:true,
|
||||
content:function (){
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('zhenjun'),function(card,player,target){
|
||||
return target.countCards('h')>target.hp;
|
||||
|
@ -1451,7 +1451,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
event.num=0;
|
||||
event.num2=result.cards.length;
|
||||
for(var i=0;i<result.cards.length;i++){
|
||||
if(get.type(result.cards[i])!='equip'){
|
||||
if(get.type(result.cards[i],null,result.cards[i].original=='h'?target:false)!='equip'){
|
||||
event.num++;
|
||||
}
|
||||
}
|
||||
|
@ -1715,7 +1715,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.storage.pindi_type=[];
|
||||
}
|
||||
player.storage.pindi_target.push(target);
|
||||
player.storage.pindi_type.push(get.type2(cards[0]));
|
||||
player.storage.pindi_type.push(get.type2(cards[0],cards[0].original=='h'?player:false));
|
||||
event.num=player.getStat('skill').pindi;
|
||||
var evt=_status.event.getParent('phase');
|
||||
if(evt&&evt.name=='phase'&&!evt.pindi){
|
||||
|
@ -2018,7 +2018,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(result.bool&&result.cards){
|
||||
event.card=result.cards[0];
|
||||
trigger.targets.length=0;
|
||||
trigger.getParent().triggeredTargets2.length=0;
|
||||
trigger.getParent().triggeredTargets1.length=0;
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
|
@ -3478,7 +3478,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 1'
|
||||
if(result.bool){
|
||||
trigger.player.addSkill('xinsidi2');
|
||||
trigger.player.storage.xinsidi2=get.color(result.cards[0]);
|
||||
trigger.player.storage.xinsidi2=get.color(result.cards[0],result.cards[0].original=='h'?player:false);
|
||||
trigger.player.storage.xinsidi4=player;
|
||||
trigger.player.syncStorage('xinsidi2');
|
||||
}
|
||||
|
@ -4008,7 +4008,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 1'
|
||||
if(!result.cards||!result.cards.length) return;
|
||||
var card=result.cards[0];
|
||||
if(get.suit(card)=='spade'){
|
||||
if(get.suit(card,target)=='spade'){
|
||||
player.turnOver();
|
||||
target.loseHp();
|
||||
}
|
||||
|
@ -4466,6 +4466,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{player:'gainEnd'},
|
||||
audio:'fulin',
|
||||
forced:true,
|
||||
silent:true,
|
||||
filter:function(event,player){
|
||||
return _status.currentPhase==player;
|
||||
},
|
||||
|
@ -4704,7 +4705,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 2'
|
||||
target.chooseToDiscard('he',true).set('prompt','请弃置一张锦囊牌,或依次弃置两张非锦囊牌。');
|
||||
'step 3'
|
||||
if((!result.cards||get.type(result.cards[0],'trick')!='trick')&&target.countCards('he',function(card){
|
||||
if((!result.cards||get.type(result.cards[0],'trick',result.cards[0].original=='h'?target:false)!='trick')&&target.countCards('he',function(card){
|
||||
return get.type(card,'trick')!='trick';
|
||||
})){
|
||||
target.chooseToDiscard('he',true,function(card){
|
||||
|
@ -5270,8 +5271,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
filter:function(event,player){
|
||||
if(event.type!='discard') return;
|
||||
for(var i=0;i<event.cards2.length;i++){
|
||||
if(get.color(event.cards2[i])=='black'&&get.type(event.cards2[i])=='basic'&&
|
||||
get.position(event.cards2[i])=='d'){
|
||||
if(get.color(event.cards2[i],event.hs.contains(event.cards2[i])?event.player:false)=='black'&&get.type(event.cards2[i])=='basic'&&
|
||||
get.position(event.cards2[i],event.hs.contains(event.cards2[i])?event.player:false)=='d'){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -5282,7 +5283,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 0'
|
||||
var cards=[];
|
||||
for(var i=0;i<trigger.cards2.length;i++){
|
||||
if(get.color(trigger.cards2[i])=='black'&&get.type(trigger.cards2[i])=='basic'&&
|
||||
if(get.color(trigger.cards2[i],trigger.hs.contains(trigger.cards2[i])?trigger.player:false)=='black'&&get.type(trigger.cards2[i],trigger.hs.contains(trigger.cards2[i])?trigger.player:false)=='basic'&&
|
||||
get.position(trigger.cards2[i])=='d'){
|
||||
cards.push(trigger.cards2[i]);
|
||||
}
|
||||
|
@ -7445,7 +7446,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 0"
|
||||
var types=[];
|
||||
for(var i=0;i<cards.length;i++){
|
||||
types.add(get.type(cards[i],'trick'));
|
||||
types.add(get.type(cards[i],'trick',player));
|
||||
}
|
||||
target.chooseToDiscard(function(card){
|
||||
return !_status.event.types.contains(get.type(card,'trick'));
|
||||
|
@ -7615,7 +7616,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
event.finish();
|
||||
return;
|
||||
}
|
||||
event.color=get.color(result.cards[0]);
|
||||
event.color=get.color(result.cards[0],result.cards[0].original=='h'?player:false);
|
||||
player.chooseTarget(function(card,player,target){
|
||||
return player!=target&&get.distance(player,target)<=1;
|
||||
},true).set('ai',function(target){
|
||||
|
@ -8677,7 +8678,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 0"
|
||||
player.addTempSkill('gongji2');
|
||||
"step 1"
|
||||
if(get.type(cards[0])=='equip'){
|
||||
if(get.type(cards[0],null,cards[0].original=='h'?player:false)=='equip'){
|
||||
player.chooseTarget('是否弃置一名角色的一张牌?',function(card,player,target){
|
||||
return player!=target&&target.countCards('he')>0;
|
||||
}).set('ai',function(target){
|
||||
|
@ -9462,7 +9463,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(event.type!='discard') return false;
|
||||
if(event.player==player) return false;
|
||||
for(var i=0;i<event.cards2.length;i++){
|
||||
if(get.suit(event.cards2[i])=='club'&&get.position(event.cards2[i],true)=='d'){
|
||||
if(get.suit(event.cards2[i],event.hs.contains(event.cards2[i])?event.player:false)=='club'&&get.position(event.cards2[i],true)=='d'){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -9471,7 +9472,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
frequent:'check',
|
||||
check:function(event,player){
|
||||
for(var i=0;i<event.cards2.length;i++){
|
||||
if(get.suit(event.cards2[i])=='club'&&get.position(event.cards2[i],true)=='d'){
|
||||
if(get.suit(event.cards2[i],event.hs.contains(event.cards2[i])?event.player:false)=='club'&&get.position(event.cards2[i],true)=='d'){
|
||||
if(event.cards2[i].name=='du') return false;
|
||||
}
|
||||
}
|
||||
|
@ -9483,7 +9484,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
var cards=[];
|
||||
for(var i=0;i<trigger.cards2.length;i++){
|
||||
if(get.suit(trigger.cards2[i])=='club'&&get.position(trigger.cards2[i],true)=='d'){
|
||||
if(get.suit(trigger.cards2[i],trigger.hs.contains(trigger.cards2[i])?trigger.player:false)=='club'&&get.position(trigger.cards2[i],true)=='d'){
|
||||
cards.push(trigger.cards2[i]);
|
||||
}
|
||||
}
|
||||
|
@ -10730,9 +10731,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(target.hasSkill('shibei_ai')) return;
|
||||
if(_status.event.getParent('useCard',true)||_status.event.getParent('_wuxie',true)) return;
|
||||
if(get.tag(card,'damage')){
|
||||
if(target.getHistory('damage',function(evt){
|
||||
return evt!=trigger
|
||||
}).length>0){
|
||||
if(target.getHistory('damage').length>0){
|
||||
return [1,-2];
|
||||
}
|
||||
else{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.98.6',
|
||||
'v1.9.98.7',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -554,6 +554,10 @@ window.noname_asset_list=[
|
|||
'audio/die/chendeng.mp3',
|
||||
'audio/die/yangbiao.mp3',
|
||||
'audio/die/ol_pangtong.mp3',
|
||||
'audio/die/gaolan.mp3',
|
||||
'audio/die/sp_shenpei.mp3',
|
||||
'audio/die/sp_zhanghe.mp3',
|
||||
'audio/die/xunchen.mp3',
|
||||
|
||||
'audio/skill/anguo1.mp3',
|
||||
'audio/skill/anguo2.mp3',
|
||||
|
@ -2426,7 +2430,18 @@ window.noname_asset_list=[
|
|||
'audio/skill/tsumugi_mugyu4.mp3',
|
||||
'audio/skill/tsumugi_mugyu5.mp3',
|
||||
'audio/skill/xinlianhuan_ol_pangtong1.mp3',
|
||||
'audio/skill/xinlianhuan_ol_pangtong2.mp3',
|
||||
'audio/skill/xinlianhuan_ol_pangtong2.mp3','audio/skill/beizhan1.mp3',
|
||||
'audio/skill/beizhan2.mp3',
|
||||
'audio/skill/fenglve1.mp3',
|
||||
'audio/skill/fenglve2.mp3',
|
||||
'audio/skill/gangzhi1.mp3',
|
||||
'audio/skill/gangzhi2.mp3',
|
||||
'audio/skill/mouzhi1.mp3',
|
||||
'audio/skill/mouzhi2.mp3',
|
||||
'audio/skill/xiying1.mp3',
|
||||
'audio/skill/xiying2.mp3',
|
||||
'audio/skill/yuanlve1.mp3',
|
||||
'audio/skill/yuanlve2.mp3',
|
||||
|
||||
'font/huangcao.ttf',
|
||||
'font/shousha.ttf',
|
||||
|
@ -2938,7 +2953,12 @@ window.noname_asset_list=[
|
|||
'image/character/ol_pangtong.jpg',
|
||||
'image/character/key_yui.jpg',
|
||||
'image/character/key_tsumugi.jpg',
|
||||
'image/character/key_yoshino.jpg',
|
||||
'image/character/key_yoshino.jpg','image/character/gaolan.jpg',
|
||||
'image/character/key_harukakanata.jpg',
|
||||
'image/character/key_saya.jpg',
|
||||
'image/character/sp_shenpei.jpg',
|
||||
'image/character/sp_zhanghe.jpg',
|
||||
'image/character/xunchen.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
69
game/game.js
69
game/game.js
|
@ -11203,7 +11203,7 @@
|
|||
});
|
||||
player.phaseDiscard()
|
||||
if(!player.noPhaseDelay) game.delayx();
|
||||
delete player.using;
|
||||
//delete player.using;
|
||||
delete player._noSkill;
|
||||
"step 5"
|
||||
player.phaseJieshu();
|
||||
|
@ -11310,7 +11310,7 @@
|
|||
delete ui.tempnowuxie;
|
||||
}
|
||||
});
|
||||
delete player.using;
|
||||
//delete player.using;
|
||||
},
|
||||
phaseDiscard:function(){
|
||||
"step 0"
|
||||
|
@ -13483,7 +13483,7 @@
|
|||
}
|
||||
}
|
||||
if(directDiscard.length) game.cardsGotoOrdering(directDiscard);
|
||||
player.using=cards;
|
||||
//player.using=cards;
|
||||
var cardaudio=true;
|
||||
if(event.skill){
|
||||
if(lib.skill[event.skill].audio){
|
||||
|
@ -13888,7 +13888,7 @@
|
|||
if(event._result){
|
||||
event.result=event._result;
|
||||
}
|
||||
delete player.using;
|
||||
//delete player.using;
|
||||
if(document.getElementsByClassName('thrown').length){
|
||||
if(event.delayx!==false) game.delayx();
|
||||
}
|
||||
|
@ -24183,6 +24183,7 @@
|
|||
var outrange=info.outrange;
|
||||
if(range==undefined&&outrange==undefined) return true;
|
||||
|
||||
if(player.hasSkill('undist')||target.hasSkill('undist')) return false;
|
||||
for(var i in range){
|
||||
if(i=='attack'){
|
||||
if(player.inRange(target)) return true;
|
||||
|
@ -32195,6 +32196,7 @@
|
|||
if(card.ai.basic.equipValue==undefined) card.ai.basic.equipValue=1;
|
||||
}
|
||||
if(card.ai.basic.value==undefined) card.ai.basic.value=function(card,player,index,method){
|
||||
if(player.isDisabled(get.subtype(card))) return 0.1;
|
||||
var value=0;
|
||||
var info=get.info(card);
|
||||
var current=player.getEquip(info.subtype);
|
||||
|
@ -45527,8 +45529,8 @@
|
|||
event.result.skill=event.skill;
|
||||
event.result.card=get.copy(get.info(event.skill).viewAs);
|
||||
if(event.result.cards.length==1&&event.result.card){
|
||||
event.result.card.suit=event.result.cards[0].suit;
|
||||
event.result.card.number=event.result.cards[0].number;
|
||||
event.result.card.suit=get.suit(event.result.cards[0]);
|
||||
event.result.card.number=get.number(event.result.cards[0]);
|
||||
}
|
||||
if(event.skillDialog&&get.objtype(event.skillDialog)=='div'){
|
||||
event.skillDialog.close();
|
||||
|
@ -48272,16 +48274,16 @@
|
|||
if(Object.prototype.toString.call(obj) === '[object HTMLTableCellElement]') return 'td';
|
||||
if(Object.prototype.toString.call(obj) === '[object HTMLBodyElement]') return 'td';
|
||||
},
|
||||
type:function(obj,method){
|
||||
type:function(obj,method,player){
|
||||
if(typeof obj=='string') obj={name:obj};
|
||||
if(typeof obj!='object') return;
|
||||
var name=get.name(obj);
|
||||
var name=get.name(obj,player);
|
||||
if(!lib.card[name]) return;
|
||||
if(method=='trick'&&lib.card[name].type=='delay') return 'trick';
|
||||
return lib.card[name].type;
|
||||
},
|
||||
type2:function(card){
|
||||
return get.type(card,'trick');
|
||||
type2:function(card,player){
|
||||
return get.type(card,'trick',player);
|
||||
},
|
||||
subtype:function(obj){
|
||||
if(typeof obj=='string') obj={name:obj};
|
||||
|
@ -48290,22 +48292,22 @@
|
|||
return lib.card[obj.name].subtype;
|
||||
},
|
||||
equiptype:function(card){
|
||||
var subtype=get.subtype(card);
|
||||
var subtype=get.subtype(card,player);
|
||||
if(subtype.indexOf('equip')==0) return parseInt(subtype[5]);
|
||||
return 0;
|
||||
},
|
||||
name:function(card,mod){
|
||||
if(mod!==false&&!['e','j'].contains(get.position(card))){
|
||||
var owner=get.owner(card);
|
||||
name:function(card,player){
|
||||
if(get.itemtype(player)=='player'||(player!==false&&get.position(card)=='h')){
|
||||
var owner=player||get.owner(card);
|
||||
if(owner){
|
||||
return game.checkMod(card,owner,card.name,'cardname',owner);
|
||||
}
|
||||
}
|
||||
return card.name;
|
||||
},
|
||||
suit:function(card){
|
||||
suit:function(card,player){
|
||||
if(get.itemtype(card)=='cards'){
|
||||
if(card.length==1) return get.suit(card[0]);
|
||||
if(card.length==1) return get.suit(card[0],player);
|
||||
return 'none';
|
||||
//var suit=get.suit(card[0])
|
||||
//for(var i=1;i<card.length;i++){
|
||||
|
@ -48314,38 +48316,39 @@
|
|||
//return suit;
|
||||
}
|
||||
else if(get.itemtype(card.cards)=='cards'&&!lib.suit.contains(card.suit)){
|
||||
return get.suit(card.cards);
|
||||
return get.suit(card.cards,player);
|
||||
}
|
||||
else{
|
||||
var owner=get.owner(card);
|
||||
var owner=player||get.owner(card);
|
||||
if(owner){
|
||||
return game.checkMod(card,card.suit,'suit',owner);
|
||||
}
|
||||
return card.suit;
|
||||
}
|
||||
},
|
||||
color:function(card){
|
||||
color:function(card,player){
|
||||
if(get.itemtype(card)=='cards'){
|
||||
var color=get.color(card[0])
|
||||
var color=get.color(card[0],player)
|
||||
for(var i=1;i<card.length;i++){
|
||||
if(get.color(card[i])!=color) return 'none';
|
||||
if(get.color(card[i],player)!=color) return 'none';
|
||||
}
|
||||
return color;
|
||||
}
|
||||
else if(get.itemtype(card.cards)=='cards'&&card.name!='muniu'){
|
||||
return get.color(card.cards);
|
||||
else if(get.itemtype(card.cards)=='cards'&&!lib.suit.contains(card.suit)){
|
||||
return get.color(card.cards,player);
|
||||
}
|
||||
else{
|
||||
if(get.suit(card)=='spade'||get.suit(card)=='club') return 'black';
|
||||
if(get.suit(card)=='heart'||get.suit(card)=='diamond') return 'red';
|
||||
if(get.suit(card,player)=='spade'||get.suit(card,player)=='club') return 'black';
|
||||
if(get.suit(card,player)=='heart'||get.suit(card,player)=='diamond') return 'red';
|
||||
return 'none';
|
||||
}
|
||||
},
|
||||
number:function(card){
|
||||
number:function(card,player){
|
||||
//啥时候狗卡出相关技能我再完善
|
||||
return card.number;
|
||||
},
|
||||
nature:function(card,mod){
|
||||
if(mod!==false&&!['e','j'].contains(get.position(card))){
|
||||
nature:function(card,player){
|
||||
if(get.itemtype(player)=='player'||player!==false){
|
||||
var owner=get.owner(card);
|
||||
if(owner){
|
||||
return game.checkMod(card,owner,card.nature,'cardnature',owner);
|
||||
|
@ -48489,13 +48492,13 @@
|
|||
if(method=='attack') return m;
|
||||
return n;
|
||||
},
|
||||
info:function(item,mod){
|
||||
info:function(item,player){
|
||||
if(typeof item=='string'){
|
||||
return lib.skill[item];
|
||||
}
|
||||
if(typeof item=='object'){
|
||||
var name=item.name;
|
||||
if(mod!==false) name=get.name(item);
|
||||
if(player!==false) name=get.name(item,player);
|
||||
return lib.card[name];
|
||||
}
|
||||
},
|
||||
|
@ -48932,9 +48935,9 @@
|
|||
if(game.players[i].getCards('hej').contains(card)) return game.players[i];
|
||||
if(game.players[i].judging[0]==card&&method!='judge') return game.players[i];
|
||||
}
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].using&&game.players[i].using.contains(card)) return game.players[i];
|
||||
}
|
||||
//for(var i=0;i<game.players.length;i++){
|
||||
// if(game.players[i].using&&game.players[i].using.contains(card)) return game.players[i];
|
||||
//}
|
||||
},
|
||||
noSelected:function(){
|
||||
return (ui.selected.buttons.length+ui.selected.cards.length+ui.selected.targets.length==0)
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
window.noname_update={
|
||||
version:'1.9.98.6.1',
|
||||
update:'1.9.98.6',
|
||||
version:'1.9.98.7',
|
||||
update:'1.9.98.6.1',
|
||||
changeLog:[
|
||||
'界庞统',
|
||||
'SP张郃,高览,荀谌,SP审配',
|
||||
'bug修复',
|
||||
],
|
||||
files:[
|
||||
'card/extra.js',
|
||||
//'card/extra.js',
|
||||
//'card/huanlekapai.js',
|
||||
//'card/sp.js',
|
||||
//'card/standard.js',
|
||||
|
@ -18,37 +18,37 @@ window.noname_update={
|
|||
//'card/zhenfa.js',
|
||||
//'card/zhulu.js',
|
||||
'character/diy.js',
|
||||
//'character/extra.js',
|
||||
'character/hearth.js',
|
||||
'character/extra.js',
|
||||
//'character/hearth.js',
|
||||
//'character/gujian.js',
|
||||
//'character/gwent.js',
|
||||
//'character/hearth.js',
|
||||
'character/mobile.js',
|
||||
//'character/mtg.js',
|
||||
'character/old.js',
|
||||
//'character/old.js',
|
||||
'character/refresh.js',
|
||||
'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
'character/tw.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',
|
||||
//'layout/default/layout.css',
|
||||
//'layout/nova/layout.css',
|
||||
'mode/identity.js',
|
||||
//'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/boss.js',
|
||||
'mode/boss.js',
|
||||
'game/game.js',
|
||||
//'game/NoSleep.js',
|
||||
//'game/config.js',
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 206 KiB |
Binary file not shown.
After Width: | Height: | Size: 213 KiB |
Binary file not shown.
After Width: | Height: | Size: 284 KiB |
Binary file not shown.
After Width: | Height: | Size: 138 KiB |
Binary file not shown.
After Width: | Height: | Size: 169 KiB |
Binary file not shown.
After Width: | Height: | Size: 213 KiB |
10
mode/boss.js
10
mode/boss.js
|
@ -2637,8 +2637,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
player:['damageBegin4','phaseZhunbeiBegin'],
|
||||
},
|
||||
filter:function(event,player,name){
|
||||
if(name=='damageBegin4'){return event.num&&event.num>1;}
|
||||
return true;
|
||||
if(name=='damageBegin4'){return event.num&&event.num>1;}
|
||||
return game.hasPlayer(function(target){
|
||||
return player!=target&&get.distance(player,target)<=1;
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
var name=event.triggername;
|
||||
|
@ -2647,7 +2649,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
else{
|
||||
game.countPlayer(function(target){
|
||||
if(player!=target&&get.distance(target,player)<=1){
|
||||
if(player!=target&&get.distance(player,target)<=1){
|
||||
target.damage(1,player,'fire');
|
||||
}
|
||||
});
|
||||
|
@ -9326,7 +9328,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
//地藏王:
|
||||
"boss_dizangwang":"地藏王",
|
||||
"boss_bufo":"不佛",
|
||||
"boss_bufo_info":"锁定技,你的回合开始时,你对所有至你距离为1的其他角色造成1点火焰伤害;你受到大于等于2的伤害时,令此伤害-1。",
|
||||
"boss_bufo_info":"锁定技,你的回合开始时,你对所有距离为1的其他角色造成1点火焰伤害;你受到大于等于2的伤害时,令此伤害-1。",
|
||||
"boss_wuliang":"无量",
|
||||
"boss_wuliang_info":"锁定技,你登场时额外摸3张牌;结束阶段开始时,你摸两张牌;你的回合开始时,若你当前体力小于3,则回复至3。",
|
||||
"boss_dayuan":"大愿",
|
||||
|
|
Loading…
Reference in New Issue