This commit is contained in:
libccy 2016-05-23 12:13:23 +08:00
parent ed790a08d3
commit de22d89762
4 changed files with 87 additions and 26 deletions

View File

@ -2251,13 +2251,13 @@ character.shenhua={
order:8, order:8,
result:{ result:{
player:function(player,target){ player:function(player,target){
if(ui.selected.cards.length) return 0; if(player.get('e','1')) return 0;
if(player.hp>=target.hp) return -0.9; if(player.hp>=target.hp) return -0.9;
if(player.hp<=2) return -10; if(player.hp<=2) return -10;
return -2; return -2;
}, },
target:function(player,target){ target:function(player,target){
if(!ui.selected.cards.length){ if(!player.get('e','1')){
if(player.hp<2) return 0; if(player.hp<2) return 0;
if(player.hp==2&&target.hp>=2) return 0; if(player.hp==2&&target.hp>=2) return 0;
} }

View File

@ -5890,12 +5890,18 @@
game.broadcastAll(function(player,card){ game.broadcastAll(function(player,card){
if(lib.config.background_audio){ if(lib.config.background_audio){
var sex=player.sex=='female'?'female':'male'; var sex=player.sex=='female'?'female':'male';
if(lib.card[card.name].audio||lib.config.background_ogg){ var audioinfo=lib.card[card.name].audio;
if(audioinfo||lib.config.background_ogg){
if(card.name=='sha'&&(card.nature=='fire'||card.nature=='thunder')){ if(card.name=='sha'&&(card.nature=='fire'||card.nature=='thunder')){
game.playAudio('card',sex,card.name+'_'+card.nature); game.playAudio('card',sex,card.name+'_'+card.nature);
} }
else{ else{
if(typeof audioinfo=='string'&&audioinfo.indexOf('ext:')==0){
game.playAudio('..','extension',audioinfo.slice(4),card.name+'_'+sex);
}
else{
game.playAudio('card',sex,card.name); game.playAudio('card',sex,card.name);
}
} }
} }
else if(get.type(card)!='equip'){ else if(get.type(card)!='equip'){
@ -6389,8 +6395,14 @@
game.broadcastAll(function(player,card){ game.broadcastAll(function(player,card){
if(lib.config.background_audio){ if(lib.config.background_audio){
var sex=player.sex=='female'?'female':'male'; var sex=player.sex=='female'?'female':'male';
if(lib.card[card.name].audio||lib.config.background_ogg){ var audioinfo=lib.card[card.name].audio;
if(audioinfo||lib.config.background_ogg){
if(typeof audioinfo=='string'&&audioinfo.indexOf('ext:')==0){
game.playAudio('..','extension',audioinfo.slice(4),card.name+'_'+sex);
}
else{
game.playAudio('card',sex,card.name); game.playAudio('card',sex,card.name);
}
} }
else{ else{
game.playAudio('card/default'); game.playAudio('card/default');
@ -13455,10 +13467,27 @@
var audioname=skill; var audioname=skill;
var audioinfo=info.audio; var audioinfo=info.audio;
if(typeof audioinfo=='string'){ if(typeof audioinfo=='string'){
if(audioinfo.indexOf('ext:')==0){
audioinfo=audioinfo.split(':');
if(audioinfo.length==3){
if(audioinfo[2]=='true'){
game.playAudio('..','extension',audioinfo[1],audioname);
}
else{
audioinfo[2]=parseInt(audioinfo[2]);
if(audioinfo[2]){
game.playAudio('..','extension',audioinfo[1],audioname+Math.ceil(audioinfo[2]*Math.random()));
}
}
}
return;
}
else{
audioname=audioinfo; audioname=audioinfo;
if(lib.skill[audioinfo]){ if(lib.skill[audioinfo]){
audioinfo=lib.skill[audioinfo].audio; audioinfo=lib.skill[audioinfo].audio;
} }
}
} }
else if(Array.isArray(audioinfo)){ else if(Array.isArray(audioinfo)){
audioname=audioinfo[0]; audioname=audioinfo[0];
@ -15739,6 +15768,11 @@
lib.skilllist.add(pack[i][j][3][l]); lib.skilllist.add(pack[i][j][3][l]);
} }
} }
else if(i=='skill'){
if(typeof pack[i][j].audio=='number'||typeof pack[i][j].audio=='boolean'){
pack[i][j].audio='ext:'+extname+':'+pack[i][j].audio;
}
}
if(lib[i][j]==undefined){ if(lib[i][j]==undefined){
lib[i][j]=lib.init.eval(pack[i][j]); lib[i][j]=lib.init.eval(pack[i][j]);
} }
@ -15750,6 +15784,9 @@
}, },
addCard:function(name,info,info2){ addCard:function(name,info,info2){
var extname=(_status.extension||info2.extension); var extname=(_status.extension||info2.extension);
if(info.audio==true){
info.audio='ext:'+extname;
}
if(info.fullskin){ if(info.fullskin){
if(_status.evaluatingExtension){ if(_status.evaluatingExtension){
info.image='db:extension-'+extname+':'+name+'.png'; info.image='db:extension-'+extname+':'+name+'.png';
@ -15804,6 +15841,9 @@
} }
for(var j in pack[i]){ for(var j in pack[i]){
if(i=='card'){ if(i=='card'){
if(pack[i][j].audio==true){
pack[i][j].audio='ext:'+extname;
}
if(pack[i][j].fullskin){ if(pack[i][j].fullskin){
if(_status.evaluatingExtension){ if(_status.evaluatingExtension){
pack[i][j].image='db:extension-'+extname+':'+j+'.png'; pack[i][j].image='db:extension-'+extname+':'+j+'.png';
@ -15822,6 +15862,11 @@
} }
lib.cardPack[packname].push(j); lib.cardPack[packname].push(j);
} }
else if(i=='skill'){
if(typeof pack[i][j].audio=='number'||typeof pack[i][j].audio=='boolean'){
pack[i][j].audio='ext:'+extname+':'+pack[i][j].audio;
}
}
if(lib[i][j]==undefined) lib[i][j]=lib.init.eval(pack[i][j]); if(lib[i][j]==undefined) lib[i][j]=lib.init.eval(pack[i][j]);
} }
} }
@ -15830,6 +15875,9 @@
if(lib.skill[name]){ if(lib.skill[name]){
return false; return false;
} }
if(typeof info.audio=='number'||typeof info.audio=='boolean'){
info.audio='ext:'+_status.extension+':'+info.audio;
}
lib.skill[name]=info; lib.skill[name]=info;
lib.translate[name]=translate; lib.translate[name]=translate;
lib.translate[name+'_info']=description; lib.translate[name+'_info']=description;

View File

@ -2,9 +2,10 @@ window.noname_update={
version:'1.8.11', version:'1.8.11',
changeLog:[ changeLog:[
'单机2v2', '单机2v2',
'扩展支持配音'
], ],
files:{ files:{
global:['mode/versus.js'], global:['mode/versus.js','game/game.js','mode/stone.js','character/shenhua.js'],
'1.8.10.5':[], '1.8.10.5':[],
} }
} }

View File

@ -1019,7 +1019,12 @@ mode.stone={
} }
} }
if(source&&source.side!=this.side&&!source.isMin()){ if(source&&source.side!=this.side&&!source.isMin()){
source.draw(2); if(_status.mode=='deck'){
source.drawDeck();
}
else{
source.draw();
}
source.actused--; source.actused--;
source.updateActCount(); source.updateActCount();
} }
@ -1236,15 +1241,15 @@ mode.stone={
stone_alaikesita:['female','qun',4,['stone_fushi'],['minskin','stone','stonehidden','stonelegend'],[6,4]], stone_alaikesita:['female','qun',4,['stone_fushi'],['minskin','stone','stonehidden','stonelegend'],[6,4]],
stone_yisela:['female','qun',4,['stone_chenshui'],['minskin','stone','stonehidden','stonelegend'],[6,2]], stone_yisela:['female','qun',4,['stone_chenshui'],['minskin','stone','stonehidden','stonelegend'],[6,2]],
stone_nuoziduomu:['male','qun',4,['stone_shixu'],['minskin','stone','stonehidden','stonelegend'],[6,4]], stone_nuoziduomu:['male','qun',4,['stone_shixu'],['minskin','stone','stonehidden','stonelegend'],[6,4]],
stone_maligousi:['male','qun',5,['stone_mowang'],['minskin','stone','stonehidden','stonelegend'],[6,2]], stone_maligousi:['male','qun',4,['stone_mowang'],['minskin','stone','stonehidden','stonelegend'],[6,2]],
stone_aolajier:['male','qun',4,['stone_chongfeng','shaman_fengnu','paladin_hudun','chaofeng'],['minskin','stone','stonehidden','stonelegend_shaman'],[6,4]], stone_aolajier:['male','qun',4,['stone_chongfeng','shaman_fengnu','paladin_hudun','chaofeng'],['minskin','stone','stonehidden','stonelegend_shaman'],[6,4]],
stone_andongni:['male','qun',4,['stone_zhiyin'],['minskin','stone','stonehidden','stonelegend_mage'],[6,4]], stone_andongni:['male','qun',4,['stone_zhiyin'],['minskin','stone','stonehidden','stonelegend_mage'],[6,4]],
stone_jialakesi:['male','qun',4,['stone_bianshen'],['minskin','stone','stonehidden','stonelegend_warlock'],[6,0]], stone_jialakesi:['male','qun',5,['stone_bianshen'],['minskin','stone','stonehidden','stonelegend_warlock'],[6,0]],
stone_jialakesix:['male','qun',4,['stone_lianyu'],['stonehidden','stonespecial']], stone_jialakesix:['male','qun',5,['stone_lianyu'],['stonehidden','stonespecial']],
stone_kelushi:['male','qun',5,['stone_chongfeng'],['minskin','stone','stonehidden','stonelegend_hunter'],[6,5]], stone_kelushi:['male','qun',5,['stone_chongfeng'],['minskin','stone','stonehidden','stonelegend_hunter'],[6,5]],
stone_geluomashi:['male','qun',4,['stone_chongfeng','stone_jinu'],['minskin','stone','stonehidden','stonelegend_warrior'],[6,4]], stone_geluomashi:['male','qun',4,['stone_chongfeng','stone_jinu'],['minskin','stone','stonehidden','stonelegend_warrior'],[6,4]],
stone_aidewen:['male','qun',2,['stone_lianji'],['minskin','stone','stonehidden','stonelegend_rogue'],[6,2]], stone_aidewen:['male','qun',3,['stone_lianji'],['minskin','stone','stonehidden','stonelegend_rogue'],[6,3]],
stone_sainaliusi:['male','qun',3,['stone_shenyu'],['minskin','stone','stonehidden','stonelegend_druid'],[6,3]], stone_sainaliusi:['male','qun',3,['stone_shenyu'],['minskin','stone','stonehidden','stonelegend_druid'],[6,3]],
stone_fuding:['male','qun',3,['paladin_hudun','chaofeng','stone_fuchou'],['minskin','stone','stonehidden','stonelegend_paladin'],[6,3]], stone_fuding:['male','qun',3,['paladin_hudun','chaofeng','stone_fuchou'],['minskin','stone','stonehidden','stonelegend_paladin'],[6,3]],
stone_weilun:['male','qun',4,['stone_shenyou'],['minskin','stone','stonehidden','stonelegend_priest'],[6,6]], stone_weilun:['male','qun',4,['stone_shenyou'],['minskin','stone','stonehidden','stonelegend_priest'],[6,6]],
@ -1740,13 +1745,7 @@ mode.stone={
career:'warlock', career:'warlock',
filterTarget:true, filterTarget:true,
content:function(){ content:function(){
'step 0'
target.damage(2); target.damage(2);
'step 1'
var hs=player.get('h');
if(hs.length){
player.discard(hs.randomGet());
}
}, },
ai:{ ai:{
order:8, order:8,
@ -5554,7 +5553,12 @@ mode.stone={
event.card&&get.type(event.card)=='stonecard'; event.card&&get.type(event.card)=='stonecard';
}, },
content:function(){ content:function(){
if(trigger.player.isMin()){
trigger.num+=4;
}
else{
trigger.num+=2; trigger.num+=2;
}
}, },
ai:{ ai:{
threaten:1.6 threaten:1.6
@ -5586,6 +5590,10 @@ mode.stone={
'step 0' 'step 0'
var target=player.getLeader(); var target=player.getLeader();
if(target.name=='stone_jialakesix'){ if(target.name=='stone_jialakesix'){
target.hp=target.maxHp;
target.update();
target.actused-=6;
target.updateActCount();
target.storage.stone_lianyu++; target.storage.stone_lianyu++;
} }
else{ else{
@ -9242,6 +9250,10 @@ mode.stone={
if(event.addname){ if(event.addname){
if(event.addname=='stone_jialakesi'){ if(event.addname=='stone_jialakesi'){
if(player.name=='stone_jialakesix'){ if(player.name=='stone_jialakesix'){
player.hp=player.maxHp;
player.update();
player.actused-=4;
player.updateActCount();
player.storage.stone_lianyu++; player.storage.stone_lianyu++;
} }
else{ else{
@ -9304,7 +9316,7 @@ mode.stone={
stone_chenshui:'沉睡', stone_chenshui:'沉睡',
stone_chenshui_info:'在你的回合结束阶段,令己方主将获得一张梦境牌', stone_chenshui_info:'在你的回合结束阶段,令己方主将获得一张梦境牌',
stone_mowang:'魔网', stone_mowang:'魔网',
stone_mowang_info:'己方法术伤害+2', stone_mowang_info:'己方法术对主将伤害+2,对随从伤害+4',
stone_zhiyin:'指引', stone_zhiyin:'指引',
stone_zhiyin_info:'每当己方主将使用一张法术牌,将一张火球术置于其手牌', stone_zhiyin_info:'每当己方主将使用一张法术牌,将一张火球术置于其手牌',
@ -9534,7 +9546,7 @@ mode.stone={
spell_shenshengfennu:'神圣愤怒', spell_shenshengfennu:'神圣愤怒',
spell_shenshengfennu_info:'从牌库中获得一张牌,并造成等同于其行动值消耗的伤害', spell_shenshengfennu_info:'从牌库中获得一张牌,并造成等同于其行动值消耗的伤害',
spell_yongshizhufu:'勇士祝福', spell_yongshizhufu:'勇士祝福',
spell_yongshizhufu_info:'令一名随从的体力值和体力上限翻倍', spell_yongshizhufu_info:'令一名随从的手牌数翻倍',
spell_zhengqianghaosheng:'争强好胜', spell_zhengqianghaosheng:'争强好胜',
paladin_zhengqianghaosheng:'争强好胜', paladin_zhengqianghaosheng:'争强好胜',
paladin_zhengqianghaosheng_info:'在你的下一回合开始时,令所有友方随从增加一点体力和体力上限并摸一张牌', paladin_zhengqianghaosheng_info:'在你的下一回合开始时,令所有友方随从增加一点体力和体力上限并摸一张牌',
@ -10158,7 +10170,7 @@ mode.stone={
'<li>主将出牌阶段的出牌数量行动值有上限从1开始递增后手的首个回合有一点额外行动值装备牌不计入出牌上限<li>游戏每进行一轮,主将的出牌上限+1超过6时减至3并重新累加'+ '<li>主将出牌阶段的出牌数量行动值有上限从1开始递增后手的首个回合有一点额外行动值装备牌不计入出牌上限<li>游戏每进行一轮,主将的出牌上限+1超过6时减至3并重新累加'+
'<li>使用随从牌可召唤一个随从随从出场时背面朝上。每一方在场的随从数不能超过4<li>随从于摸牌阶段摸牌基数为1随从的随从牌均视为闪装备牌均视为杀<li>'+ '<li>使用随从牌可召唤一个随从随从出场时背面朝上。每一方在场的随从数不能超过4<li>随从于摸牌阶段摸牌基数为1随从的随从牌均视为闪装备牌均视为杀<li>'+
'随从与其他所有角色相互距离基数为1<li>'+ '随从与其他所有角色相互距离基数为1<li>'+
'主将杀死对方随从后获得一个额外的行动值并摸两张牌,杀死己方随从无惩罚,随从杀死随从无效果'+ '主将杀死对方随从后获得一个额外的行动值并从牌库中获得一张牌,杀死己方随从无惩罚,随从杀死随从无效果'+
'<li>主将可重铸随从牌但回合内总的重铸次数不能超过3随从不能重铸任何牌包括铁索等默认可以重铸的牌若重铸的牌为随从牌或法术牌则摸牌改为获得一张随机法术牌'+ '<li>主将可重铸随从牌但回合内总的重铸次数不能超过3随从不能重铸任何牌包括铁索等默认可以重铸的牌若重铸的牌为随从牌或法术牌则摸牌改为获得一张随机法术牌'+
'<li>嘲讽:若一方阵营中有嘲讽角色,则同阵营的无嘲讽角色不以能成为杀目标'+ '<li>嘲讽:若一方阵营中有嘲讽角色,则同阵营的无嘲讽角色不以能成为杀目标'+
'<li>行动顺序为先主将后随从。主将或随从死亡后立即移出游戏主将死亡后替补登场替补登场时摸3+X张牌X为对方存活的随从数无替补时游戏结束' '<li>行动顺序为先主将后随从。主将或随从死亡后立即移出游戏主将死亡后替补登场替补登场时摸3+X张牌X为对方存活的随从数无替补时游戏结束'