Misaka Kaori & Misaka Shiori
This commit is contained in:
parent
317e18431a
commit
966542c1ab
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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
21355
character/diy.js
21355
character/diy.js
File diff suppressed because it is too large
Load Diff
|
@ -1398,17 +1398,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
targetInRange:function(card){
|
||||
if(get.suit(card)=='heart') return true;
|
||||
},
|
||||
cardUsable:function(card){
|
||||
if(card.name=='sha'&&get.suit(card)=='heart') return Infinity;
|
||||
}
|
||||
},
|
||||
audio:2,
|
||||
trigger:{player:['useCard1','respond']},
|
||||
firstDo:true,
|
||||
trigger:{player:'useCard'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.card.name=='sha'&&!event.skill&&
|
||||
event.cards.length==1&&get.suit(event.cards[0])=='heart';
|
||||
return event.card.name=='sha'&&get.suit(event.card)=='heart';
|
||||
},
|
||||
content:function(){
|
||||
trigger.directHit.addArray(game.players);
|
||||
},
|
||||
content:function(){},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card,player,target,current){
|
||||
|
@ -3310,7 +3313,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
longhun_info:'你可以将同花色的X张牌按下列规则使用或打出:红桃当【桃】,方块当具火焰伤害的【杀】,梅花当【闪】,黑桃当【无懈可击】(X为你当前的体力值且至少为1)',
|
||||
juejing_info:'锁定技,摸牌阶段,你摸牌的数量改为你已损失的体力值+2;你的手牌上限+2。',
|
||||
wushen:'武神',
|
||||
wushen_info:'锁定技,你的红桃手牌和判定牌均视为【杀】;锁定技,你使用红桃【杀】无距离限制。',
|
||||
wushen_info:'锁定技,你的红桃手牌均视为【杀】;锁定技,你使用红桃【杀】无距离和次数限制且不可被响应。',
|
||||
wuhun:'武魂',
|
||||
wuhun21:'武魂',
|
||||
wuhun22:'武魂',
|
||||
|
|
11346
character/mobile.js
11346
character/mobile.js
File diff suppressed because it is too large
Load Diff
1736
character/old.js
1736
character/old.js
File diff suppressed because it is too large
Load Diff
14157
character/refresh.js
14157
character/refresh.js
File diff suppressed because it is too large
Load Diff
|
@ -633,6 +633,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player:'linkBegin'
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return !player.isLinked();
|
||||
},
|
||||
content:function(){
|
||||
trigger.cancel();
|
||||
},
|
||||
|
@ -1588,7 +1591,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
filter:function (event,player){
|
||||
return (player.getHistory('useCard',function(evt){
|
||||
return evt.getParent('phaseUse')==event;
|
||||
}).length<game.countPlayer(function(current){return !current.inRange(player)}))&&game.hasPlayer(function(target){
|
||||
}).length<game.countPlayer(function(current){return current!=player&&!current.inRange(player)}))&&game.hasPlayer(function(target){
|
||||
return target!=player&&!target.inRange(player)&&target.countDiscardableCards(player,'he');
|
||||
});
|
||||
},
|
||||
|
@ -1914,16 +1917,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
usable:1,
|
||||
delay:false,
|
||||
filter:function(event,player){
|
||||
var storage=player.getStorage('nzry_mingren');
|
||||
if(get.itemtype(storage)!='cards') return false;
|
||||
var num=player.countCards('he',{color:get.color(player.storage.nzry_mingren[0])});
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&&
|
||||
player.inRange(current)&&
|
||||
player.storage.nzry_mingren!=undefined&&
|
||||
player.countCards('he',{color:get.color(player.storage.nzry_mingren[0])})>=Math.max(Math.abs(current.hp-player.hp),1);
|
||||
num>=Math.max(Math.abs(current.hp-player.hp),1);
|
||||
})&&player.storage.nzry_zhenliang!=true;
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return player.storage.nzry_mingren!=undefined&&
|
||||
target!=player&&
|
||||
return target!=player&&
|
||||
player.inRange(target)&&
|
||||
player.countCards('he',{color:get.color(player.storage.nzry_mingren[0])})>=Math.max(Math.abs(target.hp-player.hp),1);
|
||||
},
|
||||
|
|
29953
character/sp.js
29953
character/sp.js
File diff suppressed because it is too large
Load Diff
468
character/sp2.js
468
character/sp2.js
|
@ -4,8 +4,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
name:'sp2',
|
||||
connect:true,
|
||||
character:{
|
||||
re_maliang:['male','shu',3,['rexiemu','heli'],['unseen']],
|
||||
ol_yujin:['male','wei',4,['rezhenjun']],
|
||||
ol_xinxianying:['female','wei',3,['caishi','zhongjian']],
|
||||
caobuxing:['male','wu',3,['moying','juanhui'],['unseen']],
|
||||
//sp_zhangliao:['male','qun',4,['mubing','diaoling']],
|
||||
sp_key_yuri:['female','qun',4,['mubing','diaoling'],['unseen']],
|
||||
re_sunluyu:['female','wu',3,['remeibu','remumu']],
|
||||
liuzan:['male','wu',4,['refenyin','liji']],
|
||||
wenyang:['male','wei',5,['xinlvli','choujue']],
|
||||
|
@ -57,11 +60,431 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sp_shengun:["puyuan","guanlu","gexuan","xushao"],
|
||||
sp_baigei:['re_panfeng','xingdaorong'],
|
||||
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','liuzan','re_sunluyu'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang'],
|
||||
}
|
||||
},
|
||||
skill:{
|
||||
rexiemu:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return !game.hasPlayer(function(current){
|
||||
return current.hasMark('rexiemu');
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('rexiemu'),lib.filter.notMe).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
return get.attitude(player,target)*Math.sqrt(Math.max(1+player.countCards('h'),1+target.countCards('h')));
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('rexiemu',target);
|
||||
target.addMark('rexiemu',1);
|
||||
player.addSkill('rexiemu2');
|
||||
}
|
||||
},
|
||||
intro:{content:'mark'},
|
||||
ai:{
|
||||
expose:0.1,
|
||||
},
|
||||
},
|
||||
rexiemu2:{
|
||||
audio:'rexiemu',
|
||||
trigger:{global:['loseAfter']},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return (event.player==player||event.player.hasMark('rexiemu'))&&['useCard','respond'].contains(event.getParent().name)&&event.hs&&event.hs.length&&
|
||||
event.player!=_status.currentPhase&&game.hasPlayer(function(current){
|
||||
return current.hasMark('rexiemu');
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
game.asyncDraw(game.filterPlayer(function(current){
|
||||
return current==player||current==trigger.player||current.hasMark('rexiemu');
|
||||
}));
|
||||
'step 1'
|
||||
game.delayx();
|
||||
},
|
||||
group:'rexiemu3',
|
||||
},
|
||||
rexiemu3:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
silent:true,
|
||||
firstDo:true,
|
||||
content:function(){
|
||||
player.removeSkill('rexiemu2');
|
||||
game.countPlayer(function(current){
|
||||
var num=current.countMark('rexiemu');
|
||||
if(num) current.removeMark('rexiemu',num);
|
||||
});
|
||||
},
|
||||
},
|
||||
heli:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return lib.skill.heli.filterTarget(null,player,current);
|
||||
});
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target.countCards('h')<player.countCards('h')
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(target.countCards('h')) target.showHandcards();
|
||||
'step 1'
|
||||
var list=[];
|
||||
var cards=[];
|
||||
for(var i of lib.inpile) list.add(get.type2(i));
|
||||
for(var i of list){
|
||||
if(!target.countCards('h',{type:i})){
|
||||
var card=get.cardPile2(function(card){
|
||||
return get.type(card,false)==i;
|
||||
});
|
||||
if(card) cards.push(card);
|
||||
}
|
||||
}
|
||||
if(cards.length) target.gain(cards,'gain2','log');
|
||||
else event.finish();
|
||||
'step 2'
|
||||
game.updateRoundNumber();
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
return 1/Math.sqrt(1+target.countCards('h'))
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
moying:{
|
||||
audio:2,
|
||||
trigger:{player:'loseAfter'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player!=_status.currentPhase&&event.getParent().name!='useCard'&&event.cards2&&event.cards2.length==1&&!player.hasSkill('moying2')&&['equip','trick'].contains(get.type2(event.cards2[0],event.hs.contains(event.cards2[0])?player:false));
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
var number=trigger.cards2[0].number;
|
||||
var numbers=[number-2,number-1,number,number+1,number+2].filter(function(number){
|
||||
return number>=1&&number<=13;
|
||||
});
|
||||
if(player.isUnderControl()){
|
||||
game.modeSwapPlayer(player);
|
||||
}
|
||||
var switchToAuto=function(){
|
||||
_status.imchoosing=false;
|
||||
event._result={
|
||||
bool:true,
|
||||
suit:lib.suit.randomGet(),
|
||||
number:numbers.randomGet(),
|
||||
};
|
||||
if(event.dialog) event.dialog.close();
|
||||
if(event.control) event.control.close();
|
||||
};
|
||||
var chooseButton=function(player,numbers){
|
||||
var event=_status.event;
|
||||
player=player||event.player;
|
||||
var dialog=ui.create.dialog('是否发动【墨影】?','forcebutton','hidden');
|
||||
event.dialog=dialog;
|
||||
dialog.addText('花色');
|
||||
var table=document.createElement('div');
|
||||
table.classList.add('add-setting');
|
||||
table.style.margin='0';
|
||||
table.style.width='100%';
|
||||
table.style.position='relative';
|
||||
var listi=['spade','heart','club','diamond'];
|
||||
for(var i=0;i<listi.length;i++){
|
||||
var td=ui.create.div('.shadowed.reduce_radius.pointerdiv.tdnode');
|
||||
td.link=listi[i];
|
||||
table.appendChild(td);
|
||||
td.innerHTML='<span>'+get.translation(listi[i])+'</span>';
|
||||
td.addEventListener(lib.config.touchscreen?'touchend':'click',function(){
|
||||
if(_status.dragged) return;
|
||||
if(_status.justdragged) return;
|
||||
_status.tempNoButton=true;
|
||||
setTimeout(function(){
|
||||
_status.tempNoButton=false;
|
||||
},500);
|
||||
var link=this.link;
|
||||
var current=this.parentNode.querySelector('.bluebg');
|
||||
if(current){
|
||||
current.classList.remove('bluebg');
|
||||
}
|
||||
this.classList.add('bluebg');
|
||||
event._result.suit=link;
|
||||
});
|
||||
}
|
||||
dialog.content.appendChild(table);
|
||||
dialog.addText('点数');
|
||||
var table2=document.createElement('div');
|
||||
table2.classList.add('add-setting');
|
||||
table2.style.margin='0';
|
||||
table2.style.width='100%';
|
||||
table2.style.position='relative';
|
||||
for(var i=0;i<numbers.length;i++){
|
||||
var td=ui.create.div('.shadowed.reduce_radius.pointerdiv.tdnode');
|
||||
td.link=numbers[i];
|
||||
table2.appendChild(td);
|
||||
var num=numbers[i];
|
||||
switch(num){
|
||||
case 1:num='A';break;
|
||||
case 11:num='J';break;
|
||||
case 12:num='Q';break;
|
||||
case 13:num='K';break;
|
||||
}
|
||||
td.innerHTML='<span>'+num+'</span>';
|
||||
td.addEventListener(lib.config.touchscreen?'touchend':'click',function(){
|
||||
if(_status.dragged) return;
|
||||
if(_status.justdragged) return;
|
||||
_status.tempNoButton=true;
|
||||
setTimeout(function(){
|
||||
_status.tempNoButton=false;
|
||||
},500);
|
||||
var link=this.link;
|
||||
var current=this.parentNode.querySelector('.bluebg');
|
||||
if(current){
|
||||
current.classList.remove('bluebg');
|
||||
}
|
||||
this.classList.add('bluebg');
|
||||
event._result.number=link;
|
||||
});
|
||||
}
|
||||
dialog.content.appendChild(table2);
|
||||
dialog.add(' ');
|
||||
event.dialog.open();
|
||||
|
||||
event.switchToAuto=function(){
|
||||
event._result={
|
||||
bool:true,
|
||||
number:numbers.randomGet(),
|
||||
suit:lib.suit.randomGet(),
|
||||
};
|
||||
event.dialog.close();
|
||||
event.control.close();
|
||||
game.resume();
|
||||
_status.imchoosing=false;
|
||||
};
|
||||
event.control=ui.create.control('ok','cancel2',function(link){
|
||||
var result=event._result;
|
||||
if(link=='cancel2') result.bool=false;
|
||||
else{
|
||||
if(!result.number||!result.suit) return;
|
||||
result.bool=true;
|
||||
}
|
||||
event.dialog.close();
|
||||
event.control.close();
|
||||
game.resume();
|
||||
_status.imchoosing=false;
|
||||
});
|
||||
for(var i=0;i<event.dialog.buttons.length;i++){
|
||||
event.dialog.buttons[i].classList.add('selectable');
|
||||
}
|
||||
game.pause();
|
||||
game.countChoose();
|
||||
};
|
||||
if(event.isMine()){
|
||||
chooseButton(player,numbers);
|
||||
}
|
||||
else if(event.isOnline()){
|
||||
event.player.send(chooseButton,event.player,numbers);
|
||||
event.player.wait();
|
||||
game.pause();
|
||||
}
|
||||
else{
|
||||
switchToAuto();
|
||||
}
|
||||
"step 1"
|
||||
var map=event.result||result;
|
||||
if(result.bool){
|
||||
player.logSkill('moying');
|
||||
player.addTempSkill('moying2');
|
||||
var cards=[];
|
||||
for(var i=0;i<ui.cardPile.childNodes.length;i++){
|
||||
var card=ui.cardPile.childNodes[i];
|
||||
if(get.suit(card)==result.suit&&get.number(card)==result.number) cards.push(card);
|
||||
}
|
||||
if(cards.length) player.gain(cards,'gain2','log');
|
||||
}
|
||||
else event.finish();
|
||||
"step 2"
|
||||
game.updateRoundNumber();
|
||||
},
|
||||
},
|
||||
moying2:{},
|
||||
juanhui:{
|
||||
audio:2,
|
||||
charlotte:true,
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('juanhui'),lib.filter.notMe).set('ai',function(target){
|
||||
if(target.isTurnedOver()||target.hasJudge('lebu')) return Math.random();
|
||||
return (1+target.countCards('h'))*2+Math.random();
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('juanhui',target);
|
||||
player.storage.juanhui2=target;
|
||||
player.storage.juanhui3=[];
|
||||
player.addSkill('juanhui2');
|
||||
}
|
||||
},
|
||||
},
|
||||
juanhui2:{
|
||||
mark:true,
|
||||
intro:{
|
||||
markcount:function(storage,player){
|
||||
return player.getStorage('juanhui3').length;
|
||||
},
|
||||
mark:function(dialog,storage,player){
|
||||
dialog.addText('记录目标');
|
||||
dialog.addSmall([storage]);
|
||||
var vcard=player.getStorage('juanhui3');
|
||||
if(vcard.length){
|
||||
dialog.addText('记录卡牌');
|
||||
dialog.addAuto([vcard,'vcard']);
|
||||
}
|
||||
},
|
||||
content:function(storage,player){
|
||||
var str='记录目标:'+get.translation(storage);
|
||||
var vcard=player.getStorage('juanhui3');
|
||||
if(vcard.length){
|
||||
str+='<br>记录卡牌:';
|
||||
for(var i of vcard){
|
||||
if(i[2]=='sha'&&i[3]) str+=get.translation(i[3]);
|
||||
str+=get.translation(i[2]);
|
||||
str+='、'
|
||||
}
|
||||
str=str.slice(0,str.length-1);
|
||||
}
|
||||
return str;
|
||||
},
|
||||
},
|
||||
onremove:function(player){
|
||||
delete player.storage.juanhui2;
|
||||
delete player.storage.juanhui3;
|
||||
},
|
||||
group:'juanhui3',
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return player.getStorage('juanhui3').length>0;
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
return ui.create.dialog('绢绘',[player.getStorage('juanhui3'),'vcard'],'hidden')
|
||||
},
|
||||
filter:function(button,player){
|
||||
return lib.filter.cardEnabled({
|
||||
name:button.link[2],
|
||||
nature:button.link[3],
|
||||
},player,_status.event.getParent());
|
||||
},
|
||||
check:function(button){
|
||||
var player=_status.event.player;
|
||||
var card={
|
||||
name:button.link[2],
|
||||
nature:button.link[3],
|
||||
};
|
||||
if(player.getUseValue(card)>0) return get.order(card);
|
||||
return -1;
|
||||
},
|
||||
backup:function(links,player){
|
||||
return {
|
||||
audio:'juanhui',
|
||||
filterCard:true,
|
||||
viewAs:{
|
||||
name:links[0][2],
|
||||
nature:links[0][3],
|
||||
},
|
||||
check:function(card){
|
||||
return 6-get.value(card);
|
||||
},
|
||||
precontent:function(){
|
||||
var card=event.result.card;
|
||||
if(card.name=='sha') event.getParent().addCount=false;
|
||||
var vcard=player.storage.juanhui3;
|
||||
for(var i=0;i<vcard.length;i++){
|
||||
if(vcard[i][2]==card.name) vcard.splice(i--,1);
|
||||
}
|
||||
if(vcard.length) player.markSkill('juanhui2');
|
||||
else{
|
||||
player.unmarkSkill('juanhui2');
|
||||
event.getParent().juanhui=true;
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
prompt:function(links,player){
|
||||
return '将一张手牌当做'+(links[0][2]=='sha'&&links[0][3]?get.translation(links[0][3]):'')+get.translation(links[0][2])+'使用';
|
||||
},
|
||||
},
|
||||
ai:{
|
||||
order:function(item,player){
|
||||
var muniu=player.getStorage('juanhui3');
|
||||
var order=0;
|
||||
for(var i=0;i<muniu.length;i++){
|
||||
var card={name:muniu[i][2],nature:muniu[i][3]};
|
||||
if(player.getUseValue(card)>0){
|
||||
var order2=get.order(card);
|
||||
if(order2>order) order=order2
|
||||
}
|
||||
}
|
||||
return order+0.1;
|
||||
},
|
||||
result:{
|
||||
player:1,
|
||||
},
|
||||
},
|
||||
},
|
||||
juanhui3:{
|
||||
charlotte:true,
|
||||
firstDo:true,
|
||||
trigger:{
|
||||
global:'useCard2',
|
||||
player:['phaseUseEnd','phaseUseSkipped','useCardAfter'],
|
||||
},
|
||||
silent:true,
|
||||
filter:function(event,player,name){
|
||||
if(event.name=='phaseUse') return true;
|
||||
else if(name=='useCardAfter') return event.getParent().juanhui;
|
||||
return event.player==player.storage.juanhui2&&event.player.isPhaseUsing()&&
|
||||
['basic','trick'].contains(get.type(event.card))&&player.getStorage('juanhui3').filter(function(vcard){
|
||||
return vcard[2]==event.card.name;
|
||||
}).length==0;
|
||||
},
|
||||
content:function(){
|
||||
if(trigger.name=='phaseUse') player.removeSkill('juanhui2');
|
||||
else if(event.triggername=='useCardAfter'){
|
||||
player.recover();
|
||||
player.drawTo(3);
|
||||
}
|
||||
else{
|
||||
var vcard=[get.type(trigger.card),'',trigger.card.name];
|
||||
if(trigger.card.nature) vcard.push(trigger.card.nature);
|
||||
player.storage.juanhui3.push(vcard);
|
||||
player.markSkill('juanhui2');
|
||||
}
|
||||
},
|
||||
},
|
||||
mubing:{
|
||||
audio:2,
|
||||
audioname:['sp_key_yuri'],
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
|
@ -71,7 +494,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 0'
|
||||
var num=player.storage.mubing2?3:2;
|
||||
event.num=num+1;
|
||||
player.chooseToDiscard(true,[1,num],'he',get.prompt('mubing'),'弃置至多'+get.cnNumber(num)+'张牌,然后展示牌堆顶的'+get.cnNumber(num+1)+'张牌').logSkill='mubing';
|
||||
player.chooseToDiscard([1,num],'he',get.prompt('mubing'),'弃置至多'+get.cnNumber(num)+'张牌,然后展示牌堆顶的'+get.cnNumber(num+1)+'张牌').set('ai',function(card){
|
||||
var player=_status.event.player;
|
||||
if(card.name!='tengjia'&&get.position(card)=='e'&&get.equipValue(card,player)<=0) return 14;
|
||||
if(!ui.selected.cards.length){
|
||||
if(card.number<9) return 0;
|
||||
if(card.number>11) return card.number;
|
||||
if(!player.countCards('he',function(xcard){
|
||||
return xcard!=card&&card.number+xcard.number>17;
|
||||
})) return 0;
|
||||
return card.number;
|
||||
}
|
||||
var num=0;
|
||||
for(var i of ui.selected.cards){
|
||||
num+=i.number;
|
||||
}
|
||||
if(num+card.number<18) return 0;
|
||||
return Math.max(5-get.value(card),card.number);
|
||||
}).logSkill='mubing';
|
||||
'step 1'
|
||||
if(!result.bool){
|
||||
event.finish();return;
|
||||
|
@ -136,6 +576,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
diaoling:{
|
||||
audio:2,
|
||||
audioname:['sp_key_yuri'],
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
forced:true,
|
||||
juexingji:true,
|
||||
|
@ -145,7 +587,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var num=0;
|
||||
player.getAllHistory('gain',function(evt){
|
||||
var evt2=evt.getParent();
|
||||
if(evt.name=='mubing'&&evt.player==player) num+=evt.cards.filter(function(card){
|
||||
if(evt2.name=='mubing'&&evt2.player==player) num+=evt.cards.filter(function(card){
|
||||
return card.name=='sha'||get.subtype(card,false)=='equip1'||(get.type2(card,false)=='trick'&&get.tag({name:card.name},'damage'));
|
||||
}).length;
|
||||
});
|
||||
|
@ -4961,13 +5403,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
remumu_info:'出牌阶段开始时,你可以选择一项:1.弃置一名其他角色装备区里的一张牌,然后你本回合可使用【杀】的次数+1;2.获得一名角色装备区里的一张防具牌,然后你本回合可使用【杀】的次数-1。',
|
||||
sp_zhangliao:'SP张辽',
|
||||
//这俩技能给SP仲村由理毫无违和感好吗!!!
|
||||
sp_key_yuri:'SP仲村由理',
|
||||
mubing:'募兵',
|
||||
mubing_info:'出牌阶段开始时,你可以弃置至多两张牌,然后展示牌堆顶的三张牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。',
|
||||
diaoling:'调令',
|
||||
diaoling_info:'觉醒技,准备阶段,若你已经获得了6张或更多的【杀】或武器牌或伤害锦囊牌,则你回复1点体力或摸两张牌,然后修改【募兵】。',
|
||||
diaoling_info:'觉醒技,准备阶段,若你已因〖募兵〗获得了6张或更多的【杀】或武器牌或伤害锦囊牌,则你回复1点体力或摸两张牌,然后修改〖募兵〗。',
|
||||
mubing_rewrite:'募兵·改',
|
||||
mubing_rewrite_info:'出牌阶段开始时,你可以弃置至多三张牌,然后展示牌堆顶的四张牌,并可令一名角色获得任意张点数之和不大于你弃置的牌点数之和的牌。',
|
||||
caobuxing:'曹不兴',
|
||||
moying:'墨影',
|
||||
moying_info:'每回合限一次,当你于回合外不因使用而失去单一一张锦囊牌或装备牌后,你可以选择一个花色和与此牌点数差绝对值不超过2的点数,然后获得牌堆中所有与此牌花色点数相同的牌。',
|
||||
juanhui:'绢绘',
|
||||
juanhui2:'绢绘',
|
||||
juanhui2_backup:'绢绘',
|
||||
juanhui_info:'结束阶段,你可以选择一名其他角色。记录该角色下回合的出牌阶段里使用的基本牌和普通锦囊牌(每种牌名限记一次),你的下回合出牌阶段,可将一张手牌当这些牌里的任意一张牌使用(每张限使用一次,且【杀】不计次数)。当"绢绘"的牌全部用完时,你回复1点体力并将手牌摸至三张。',
|
||||
ol_xinxianying:'OL辛宪英',
|
||||
ol_yujin:'OL于禁',
|
||||
re_maliang:'马良',
|
||||
rexiemu:'协穆',
|
||||
rexiemu_info:'结束阶段,若全场没有“协穆”标记,你可以选择一名角色获得“协穆”标记直到你的下回合开始。你或该角色在各自的回合外使用或打出手牌时,你与其各摸一张牌(每回合限一次)。',
|
||||
heli:'贺励',
|
||||
heli_info:'出牌阶段限一次,你可以选择手牌数比你少的一名其他角色。该角色展示所有手牌,然后每缺少一种类型的牌,便从牌堆中随机获得一张此类型的牌。',
|
||||
|
||||
|
||||
sp_whlw:"文和乱武",
|
||||
sp_zlzy:"逐鹿中原",
|
||||
|
|
File diff suppressed because it is too large
Load Diff
24882
character/yijiang.js
24882
character/yijiang.js
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.102.1',
|
||||
'v1.9.103',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -589,6 +589,10 @@ window.noname_asset_list=[
|
|||
'audio/die/sp_sufei.mp3',
|
||||
'audio/die/wulan.mp3',
|
||||
'audio/die/key_saya.mp3',
|
||||
'audio/die/old_guanzhang.mp3',
|
||||
'audio/die/old_madai.mp3',
|
||||
'audio/die/old_wangyi.mp3',
|
||||
'audio/die/sunshao.mp3',
|
||||
|
||||
'audio/skill/anguo1.mp3',
|
||||
'audio/skill/anguo2.mp3',
|
||||
|
@ -2609,6 +2613,14 @@ window.noname_asset_list=[
|
|||
'audio/skill/saya_shouji2.mp3',
|
||||
'audio/skill/saya_powei1.mp3',
|
||||
'audio/skill/saya_powei2.mp3',
|
||||
'audio/skill/old_fuhun1.mp3',
|
||||
'audio/skill/old_fuhun2.mp3',
|
||||
'audio/skill/oldmiji1.mp3',
|
||||
'audio/skill/oldmiji2.mp3',
|
||||
'audio/skill/oldqianxi1.mp3',
|
||||
'audio/skill/oldqianxi2.mp3',
|
||||
'audio/skill/oldzhenlie1.mp3',
|
||||
'audio/skill/oldzhenlie2.mp3',
|
||||
|
||||
'font/huangcao.ttf',
|
||||
'font/shousha.ttf',
|
||||
|
@ -3221,6 +3233,8 @@ window.noname_asset_list=[
|
|||
'image/character/re_jianyong.jpg',
|
||||
'image/character/sp_key_yuri.jpg',
|
||||
'image/character/xin_xusheng.jpg',
|
||||
'image/character/key_kaori.jpg',
|
||||
'image/character/key_shiori.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
81
game/game.js
81
game/game.js
|
@ -7177,6 +7177,16 @@
|
|||
game.saveConfig('mousewheel',false);
|
||||
}
|
||||
|
||||
var show_splash=lib.config.show_splash;
|
||||
if(show_splash=='off'){
|
||||
show_splash=false;
|
||||
}
|
||||
else if(show_splash=='init'){
|
||||
if(localStorage.getItem('show_splash_off')){
|
||||
show_splash=false;
|
||||
}
|
||||
}
|
||||
localStorage.removeItem('show_splash_off');
|
||||
var extensionlist=[];
|
||||
if(!localStorage.getItem(lib.configprefix+'disable_extension')){
|
||||
if(lib.config.extensions&&lib.config.extensions.length){
|
||||
|
@ -7204,14 +7214,16 @@
|
|||
}
|
||||
_status.evaluatingExtension=false;
|
||||
}
|
||||
else{
|
||||
else if(lib.config.mode!='connect'||show_splash){
|
||||
extensionlist.push(lib.config.extensions[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
for(var i=0;i<lib.config.extensions.length;i++){
|
||||
game.import('extension',{name:lib.config.extensions[i]});
|
||||
if(lib.config.mode!='connect'||show_splash){
|
||||
for(var i=0;i<lib.config.extensions.length;i++){
|
||||
game.import('extension',{name:lib.config.extensions[i]});
|
||||
}
|
||||
}
|
||||
}
|
||||
var loadPack=function(){
|
||||
|
@ -7228,16 +7240,6 @@
|
|||
}
|
||||
}
|
||||
};
|
||||
var show_splash=lib.config.show_splash;
|
||||
if(show_splash=='off'){
|
||||
show_splash=false;
|
||||
}
|
||||
else if(show_splash=='init'){
|
||||
if(localStorage.getItem('show_splash_off')){
|
||||
show_splash=false;
|
||||
}
|
||||
}
|
||||
localStorage.removeItem('show_splash_off');
|
||||
if(localStorage.getItem(lib.configprefix+'playback')){
|
||||
toLoad++;
|
||||
lib.init.js(lib.assetURL+'mode',lib.config.mode,packLoaded,packLoaded);
|
||||
|
@ -7284,7 +7286,7 @@
|
|||
var styleLoaded=function(){
|
||||
styleToLoad--;
|
||||
if(styleToLoad==0){
|
||||
if(extensionlist.length){
|
||||
if(extensionlist.length&&(lib.config.mode!='connect'||show_splash)){
|
||||
var extToLoad=extensionlist.length;
|
||||
var extLoaded=function(){
|
||||
extToLoad--;
|
||||
|
@ -8561,26 +8563,29 @@
|
|||
clickedNode=true;
|
||||
lib.config.mode=this.link;
|
||||
game.saveConfig('mode',this.link);
|
||||
if(game.layout!='mobile'&&lib.layoutfixed.indexOf(lib.config.mode)!==-1){
|
||||
game.layout='mobile';
|
||||
ui.css.layout.href=lib.assetURL+'layout/'+game.layout+'/layout.css';
|
||||
if(this.link=='connect') game.reload();
|
||||
else{
|
||||
if(game.layout!='mobile'&&lib.layoutfixed.indexOf(lib.config.mode)!==-1){
|
||||
game.layout='mobile';
|
||||
ui.css.layout.href=lib.assetURL+'layout/'+game.layout+'/layout.css';
|
||||
}
|
||||
else if(game.layout=='mobile'&&lib.config.layout!='mobile'&&lib.layoutfixed.indexOf(lib.config.mode)===-1){
|
||||
game.layout=lib.config.layout;
|
||||
if(game.layout=='default'){
|
||||
ui.css.layout.href='';
|
||||
}
|
||||
else{
|
||||
ui.css.layout.href=lib.assetURL+'layout/'+game.layout+'/layout.css';
|
||||
}
|
||||
}
|
||||
splash.delete(1000);
|
||||
delete window.inSplash;
|
||||
window.resetGameTimeout=setTimeout(lib.init.reset,5000);
|
||||
|
||||
this.listenTransition(function(){
|
||||
lib.init.js(lib.assetURL+'mode',lib.config.mode,proceed);
|
||||
},500);
|
||||
}
|
||||
else if(game.layout=='mobile'&&lib.config.layout!='mobile'&&lib.layoutfixed.indexOf(lib.config.mode)===-1){
|
||||
game.layout=lib.config.layout;
|
||||
if(game.layout=='default'){
|
||||
ui.css.layout.href='';
|
||||
}
|
||||
else{
|
||||
ui.css.layout.href=lib.assetURL+'layout/'+game.layout+'/layout.css';
|
||||
}
|
||||
}
|
||||
splash.delete(1000);
|
||||
delete window.inSplash;
|
||||
window.resetGameTimeout=setTimeout(lib.init.reset,5000);
|
||||
|
||||
this.listenTransition(function(){
|
||||
lib.init.js(lib.assetURL+'mode',lib.config.mode,proceed);
|
||||
},500);
|
||||
}
|
||||
var downNode=function(){
|
||||
this.classList.add('glow');
|
||||
|
@ -20184,8 +20189,10 @@
|
|||
removeEquipTrigger:function(card){
|
||||
if(card){
|
||||
var info=get.info(card);
|
||||
var skills=this.getSkills(null,false);
|
||||
if(info.skills){
|
||||
for(var j=0;j<info.skills.length;j++){
|
||||
if(skills.contains(info.skills[j])) continue;
|
||||
this.removeSkillTrigger(info.skills[j]);
|
||||
}
|
||||
}
|
||||
|
@ -42900,6 +42907,14 @@
|
|||
}
|
||||
}
|
||||
else{
|
||||
for(var i of game.connectPlayers){
|
||||
var num=0;
|
||||
if(!i.nickname&&!i.classList.contains('unselectable2')) i++;
|
||||
}
|
||||
if(i>=lib.configOL.number-1){
|
||||
alert('至少要有两名玩家才能开始游戏!');
|
||||
return;
|
||||
}
|
||||
game.resume();
|
||||
}
|
||||
button.delete();
|
||||
|
|
149
game/update.js
149
game/update.js
|
@ -1,74 +1,75 @@
|
|||
window.noname_update={
|
||||
version:'1.9.102.1',
|
||||
update:'1.9.102',
|
||||
changeLog:[
|
||||
'朱鹭户沙耶语音',
|
||||
'开黑斗地主模式',
|
||||
'OL张昌蒲、OL士燮、界简雍、界徐盛',
|
||||
'bug修复',
|
||||
|
||||
],
|
||||
files:[
|
||||
//'card/extra.js',
|
||||
//'card/huanlekapai.js',
|
||||
//'card/sp.js',
|
||||
//'card/standard.js',
|
||||
//'card/swd.js',
|
||||
//'card/mtg.js',
|
||||
//'card/gujian.js',
|
||||
'card/guozhan.js',
|
||||
//'card/gwent.js',
|
||||
//'card/yunchou.js',
|
||||
//'card/zhenfa.js',
|
||||
//'card/zhulu.js',
|
||||
'character/diy.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/refresh.js',
|
||||
//'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
'character/sp2.js',
|
||||
//'character/tw.js',
|
||||
//'character/standard.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.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/doudizhu.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',
|
||||
'game/game.js',
|
||||
//'game/NoSleep.js',
|
||||
//'game/config.js',
|
||||
//'game/package.js',
|
||||
//'game/asset.js',
|
||||
//'game/source.js',
|
||||
//'theme/style/hp/xinglass.css',
|
||||
//'theme/style/hp/xinround.css',
|
||||
//'theme/style/hp/image/xinglass1.png',
|
||||
//'theme/style/hp/image/xinglass2.png',
|
||||
//'theme/style/hp/image/xinglass3.png',
|
||||
//'theme/style/hp/image/xinglass4.png',
|
||||
//'theme/style/hp/image/xinround1.png',
|
||||
//'theme/style/hp/image/xinround2.png',
|
||||
//'theme/style/hp/image/xinround3.png',
|
||||
//'theme/style/hp/image/xinround4.png',
|
||||
]
|
||||
};
|
||||
window.noname_update={
|
||||
version:'1.9.103.1',
|
||||
update:'1.9.103',
|
||||
changeLog:[
|
||||
'SP仲村由理',
|
||||
'美坂栞、美坂香里',
|
||||
'新神关羽',
|
||||
'武将分包调整',
|
||||
'bug修复',
|
||||
|
||||
],
|
||||
files:[
|
||||
//'card/extra.js',
|
||||
//'card/huanlekapai.js',
|
||||
//'card/sp.js',
|
||||
//'card/standard.js',
|
||||
//'card/swd.js',
|
||||
//'card/mtg.js',
|
||||
//'card/gujian.js',
|
||||
//'card/guozhan.js',
|
||||
//'card/gwent.js',
|
||||
//'card/yunchou.js',
|
||||
//'card/zhenfa.js',
|
||||
//'card/zhulu.js',
|
||||
//'character/diy.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/refresh.js',
|
||||
'character/shenhua.js',
|
||||
//'character/sp.js',
|
||||
//'character/sp2.js',
|
||||
//'character/tw.js',
|
||||
//'character/standard.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.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/doudizhu.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',
|
||||
'game/game.js',
|
||||
//'game/NoSleep.js',
|
||||
//'game/config.js',
|
||||
//'game/package.js',
|
||||
//'game/asset.js',
|
||||
//'game/source.js',
|
||||
//'theme/style/hp/xinglass.css',
|
||||
//'theme/style/hp/xinround.css',
|
||||
//'theme/style/hp/image/xinglass1.png',
|
||||
//'theme/style/hp/image/xinglass2.png',
|
||||
//'theme/style/hp/image/xinglass3.png',
|
||||
//'theme/style/hp/image/xinglass4.png',
|
||||
//'theme/style/hp/image/xinround1.png',
|
||||
//'theme/style/hp/image/xinround2.png',
|
||||
//'theme/style/hp/image/xinround3.png',
|
||||
//'theme/style/hp/image/xinround4.png',
|
||||
]
|
||||
};
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 245 KiB |
Binary file not shown.
After Width: | Height: | Size: 195 KiB |
|
@ -1207,7 +1207,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
|
||||
stone_fennuxiaoji:['male','qun',1,['stone_fennuxiaoji1'],['minskin','stone'],[1,2]],
|
||||
stone_juxingchanchu:['male','qun',2,['stone_juxingchanchu1'],['minskin','stone'],[2,1]],
|
||||
stone_wuyi:['male','qun',1,['jijiu'],['minskin','stone'],[2,2]],
|
||||
stone_wuyi:['male','qun',1,['jijiu'],['minskin','stone','die_audio'],[2,2]],
|
||||
stone_langren:['male','qun',1,['stone_qianxing'],['minskin','stone'],[1,2]],
|
||||
stone_shishigui:['male','qun',2,['stone_shishigui1'],['minskin','stone'],[2,1]],
|
||||
|
||||
|
|
Loading…
Reference in New Issue