1.9.4
This commit is contained in:
parent
951723aa87
commit
f8d6b19340
|
@ -55,14 +55,14 @@ character.extra={
|
|||
}
|
||||
}
|
||||
var prompt=get.prompt('qinyin')+'(剩余'+get.cnNumber(event.count)+'次)';
|
||||
player.chooseControl('失去体力','回复体力','cancel',
|
||||
player.chooseControl('失去体力','回复体力','cancel2',
|
||||
ui.create.dialog(get.prompt('qinyin'),'hidden')).ai=function(){
|
||||
if(lose>recover&&lose>0) return 0;
|
||||
if(lose<recover&&recover>0) return 1;
|
||||
return 2;
|
||||
}
|
||||
"step 1"
|
||||
if(result.bool==false||result.control=='cancel'){
|
||||
if(result.control=='cancel2'){
|
||||
event.finish();
|
||||
}
|
||||
else{
|
||||
|
|
|
@ -1964,14 +1964,14 @@ character.hearth={
|
|||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseControl('draw_card','出杀','cancel',function(){
|
||||
player.chooseControl('draw_card','出杀','cancel2',function(){
|
||||
if(ai.get.effect(trigger.target,{name:'sha'},player,player)>0){
|
||||
return '出杀';
|
||||
}
|
||||
return 'draw_card';
|
||||
}).prompt='是对'+get.translation(trigger.target)+'发动否发动【远征】?';
|
||||
'step 1'
|
||||
if(result.control!='cancel'){
|
||||
if(result.control!='cancel2'){
|
||||
if(result.control=='draw_card'){
|
||||
player.draw();
|
||||
player.logSkill('yuanzheng');
|
||||
|
@ -3829,10 +3829,10 @@ character.hearth={
|
|||
var cards=[ui.cardPile.childNodes[0],ui.cardPile.childNodes[1]];
|
||||
var att=ai.get.attitude(player,trigger.player);
|
||||
var delta=trigger.judge(ui.cardPile.childNodes[1])-trigger.judge(ui.cardPile.childNodes[0]);
|
||||
player.chooseControl('调换顺序','cancel',
|
||||
player.chooseControl('调换顺序','cancel2',
|
||||
ui.create.dialog('先知:'+get.translation(trigger.player)+'的'+str+'判定',cards,'hidden')).ai=function(){
|
||||
if(att*delta>0) return '调换顺序';
|
||||
else return 'cancel';
|
||||
else return 'cancel2';
|
||||
};
|
||||
'step 1'
|
||||
if(result.control=='调换顺序'){
|
||||
|
@ -5258,7 +5258,7 @@ character.hearth={
|
|||
ayuling:'玉灵',
|
||||
ayuling_info:'每当你受到一次伤害,你可以获得一张随机青玉牌;每当你使用一张青玉牌,你的手牌上限+1;当你累计使用两张青玉牌后,你可以于回合开始阶段摸一张牌;当你累计使用六张青玉牌后,你可以于回合结束阶段摸一张牌',
|
||||
lianjin:'炼金',
|
||||
lianjin_info:'出牌阶段限两次,将一张手牌永久转化为一张由三张随机牌组成的药水',
|
||||
lianjin_info:'出牌阶段限两次,你可以将一张手牌永久转化为一张由三张随机牌组成的药水',
|
||||
shouji:'收集',
|
||||
shouji_info:'每回合限发动一次,每当你使用一张杀,你可以获得一张目标随机手牌的复制;每当你的杀被闪避,你可以获得一张目标随机装备牌的复制',
|
||||
guimou:'鬼谋',
|
||||
|
|
|
@ -2377,13 +2377,13 @@ character.ow={
|
|||
if(player.hp<player.maxHp){
|
||||
controls.push('recover_hp');
|
||||
}
|
||||
controls.push('cancel');
|
||||
controls.push('cancel2');
|
||||
player.chooseControl(controls).set('prompt',get.prompt('ziyu')).set('ai',function(event,player){
|
||||
if(player.hp<player.maxHp) return 'recover_hp';
|
||||
return 'draw_card';
|
||||
});
|
||||
"step 1"
|
||||
if(result.control!='cancel'){
|
||||
if(result.control!='cancel2'){
|
||||
player.logSkill('ziyu');
|
||||
if(result.control=='draw_card'){
|
||||
player.draw();
|
||||
|
@ -2406,13 +2406,13 @@ character.ow={
|
|||
if(player.hp<player.maxHp){
|
||||
controls.push('recover_hp');
|
||||
}
|
||||
controls.push('cancel');
|
||||
controls.push('cancel2');
|
||||
player.chooseControl(controls).set('prompt',get.prompt('ziyu')).set('ai',function(event,player){
|
||||
if(player.hp<player.maxHp) return 'recover_hp';
|
||||
return 'draw_card';
|
||||
});
|
||||
"step 1"
|
||||
if(result.control!='cancel'){
|
||||
if(result.control!='cancel2'){
|
||||
player.logSkill('ziyu');
|
||||
if(result.control=='draw_card'){
|
||||
player.draw();
|
||||
|
|
|
@ -350,6 +350,7 @@ window.characterRank={
|
|||
'hs_liadrin',
|
||||
'hs_anomalus',
|
||||
'mifuren',
|
||||
'hanba',
|
||||
],
|
||||
b:[
|
||||
'caochun',
|
||||
|
@ -366,7 +367,6 @@ window.characterRank={
|
|||
'hs_nozdormu',
|
||||
'yxs_lishimin',
|
||||
'hs_ruanniguai',
|
||||
'hanba',
|
||||
'daxiaoqiao',
|
||||
'pal_linyueru',
|
||||
'zhuran',
|
||||
|
|
|
@ -89,7 +89,7 @@ character.refresh={
|
|||
list.push('jiu');
|
||||
}
|
||||
if(list.length){
|
||||
list.push('cancel');
|
||||
list.push('cancel2');
|
||||
player.chooseControl(list,function(){
|
||||
var controls=_status.event.controls;
|
||||
var player=_status.event.player;
|
||||
|
@ -103,7 +103,7 @@ character.refresh={
|
|||
}
|
||||
}
|
||||
}
|
||||
return 'cancel';
|
||||
return 'cancel2';
|
||||
}).set('prompt','是否视为使用一张基本牌?');
|
||||
}
|
||||
else{
|
||||
|
@ -119,7 +119,7 @@ character.refresh={
|
|||
event.finish();
|
||||
}
|
||||
'step 1'
|
||||
if(result&&result.control&&result.control!='cancel'){
|
||||
if(result&&result.control&&result.control!='cancel2'){
|
||||
if(result.control=='sha'){
|
||||
player.chooseTarget(function(card,player,target){
|
||||
return player.canUse({name:'sha'},target,true,true);
|
||||
|
@ -834,14 +834,14 @@ character.refresh={
|
|||
content:function(){
|
||||
"step 0"
|
||||
if(get.itemtype(trigger.cards)=='cards'&&get.position(trigger.cards[0])=='d'){
|
||||
player.chooseControl('rejianxiong_mopai','rejianxiong_napai','cancel').ai=function(){
|
||||
player.chooseControl('rejianxiong_mopai','rejianxiong_napai','cancel2').ai=function(){
|
||||
var trigger=_status.event.getTrigger();
|
||||
if(trigger.cards.length==1&&trigger.cards[0].name=='sha') return 0;
|
||||
return 1;
|
||||
};
|
||||
}
|
||||
else{
|
||||
player.chooseControl('rejianxiong_mopai','cancel');
|
||||
player.chooseControl('rejianxiong_mopai','cancel2');
|
||||
}
|
||||
"step 1"
|
||||
if(result.control=='rejianxiong_napai'){
|
||||
|
|
|
@ -151,7 +151,7 @@ character.shenhua={
|
|||
audio:'kuanggu',
|
||||
content:function(){
|
||||
'step 0'
|
||||
var controls=['draw_card','cancel'];
|
||||
var controls=['draw_card','cancel2'];
|
||||
if(player.hp<player.maxHp) controls.unshift('recover_hp');
|
||||
player.chooseControl(controls).set('prompt',get.prompt('xinkuanggu')).set('ai',function(event,player){
|
||||
if(player.hp==player.maxHp) return 'draw_card';
|
||||
|
@ -160,7 +160,7 @@ character.shenhua={
|
|||
return 'recover_hp';
|
||||
});
|
||||
'step 1'
|
||||
if(result.control!='cancel'){
|
||||
if(result.control!='cancel2'){
|
||||
player.logSkill('xinkuanggu');
|
||||
if(result.control=='draw_card'){
|
||||
player.draw();
|
||||
|
@ -1263,10 +1263,10 @@ character.shenhua={
|
|||
event.control=ui.create.control();
|
||||
}
|
||||
else{
|
||||
event.control=ui.create.control(['cancel']);
|
||||
event.control=ui.create.control(['cancel2']);
|
||||
}
|
||||
event.clickControl=function(link){
|
||||
if(link!='cancel'){
|
||||
if(link!='cancel2'){
|
||||
var currentname=event.dialog.querySelector('.selected.button').link;
|
||||
var mark=player.marks.huashen;
|
||||
if(trigger.name=='game'){
|
||||
|
@ -1358,7 +1358,7 @@ character.shenhua={
|
|||
event.control.style.opacity=0;
|
||||
}
|
||||
else{
|
||||
event.control.replace(['cancel']);
|
||||
event.control.replace(['cancel2']);
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
@ -1388,7 +1388,7 @@ character.shenhua={
|
|||
event.control.style.opacity=0;
|
||||
}
|
||||
else{
|
||||
event.control.replace(['cancel']);
|
||||
event.control.replace(['cancel2']);
|
||||
}
|
||||
event.control.custom=event.clickControl;
|
||||
return;
|
||||
|
|
|
@ -18,7 +18,7 @@ character.sp={
|
|||
simalang:['male','wei',3,['junbing','quji']],
|
||||
zhangxingcai:['female','shu',3,['shenxian','qiangwu']],
|
||||
fuwan:['male','qun',4,['moukui']],
|
||||
sp_sunshangxiang:['female','shu',3,['liangzhu','xiaoji']],
|
||||
sp_sunshangxiang:['female','shu',3,['liangzhu','fanxiang']],
|
||||
caoang:['male','wei',4,['kaikang']],
|
||||
re_yuanshu:['male','qun',4,['wangzun','tongji']],
|
||||
sp_caoren:['male','wei',4,['kuiwei','yanzheng']],
|
||||
|
@ -4012,9 +4012,9 @@ character.sp={
|
|||
content:function(){
|
||||
'step 0'
|
||||
player.addTempSkill('fengpo3','phaseAfter');
|
||||
player.chooseControl('draw_card','加伤害','cancel').set('prompt',get.prompt('fengpo'));
|
||||
player.chooseControl('draw_card','加伤害','cancel2').set('prompt',get.prompt('fengpo'));
|
||||
'step 1'
|
||||
if(result.control&&result.control!='cancel'){
|
||||
if(result.control&&result.control!='cancel2'){
|
||||
player.logSkill('fengpo');
|
||||
var nd=trigger.target.num('h',{suit:'diamond'});
|
||||
if(result.control=='draw_card'){
|
||||
|
@ -4346,15 +4346,15 @@ character.sp={
|
|||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseControl('basic','trick','equip','cancel',function(){
|
||||
player.chooseControl('basic','trick','equip','cancel2',function(){
|
||||
var source=_status.event.source;
|
||||
if(ai.get.attitude(_status.event.player,source)>0) return 'cancel';
|
||||
if(ai.get.attitude(_status.event.player,source)>0) return 'cancel2';
|
||||
if(_status.currentPhase!=source) return 'trick';
|
||||
if(lib.filter.cardUsable({name:'sha'},source)&&source.num('h')>=2) return 'basic';
|
||||
return 'trick';
|
||||
}).set('prompt',get.prompt('jilei',trigger.source)).set('source',trigger.source);
|
||||
'step 1'
|
||||
if(result.control!='cancel'){
|
||||
if(result.control!='cancel2'){
|
||||
player.logSkill('jilei',trigger.source);
|
||||
player.popup(get.translation(result.control)+'牌');
|
||||
trigger.source.storage.jilei2=result.control;
|
||||
|
@ -5009,19 +5009,79 @@ character.sp={
|
|||
liangzhu:{
|
||||
audio:2,
|
||||
trigger:{global:'recoverAfter'},
|
||||
check:function(event,player){
|
||||
return ai.get.attitude(player,event.player)>=0;
|
||||
},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&_status.currentPhase==event.player;
|
||||
return _status.currentPhase==event.player;
|
||||
},
|
||||
content:function(){
|
||||
game.asyncDraw([trigger.player,player]);
|
||||
'step 0'
|
||||
if(player==trigger.player){
|
||||
player.chooseControl('摸一张','摸两张','cancel2',function(){
|
||||
return '摸两张';
|
||||
}).set('prompt',get.prompt('liangzhu'));
|
||||
event.single=true;
|
||||
}
|
||||
else{
|
||||
player.chooseTarget(get.prompt('liangzhu'),function(card,player,target){
|
||||
return target==_status.event.player||target==_status.event.target;
|
||||
}).set('target',trigger.player).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
if(player==target) return 1;
|
||||
return ai.get.attitude(player,target)-1.5;
|
||||
});
|
||||
}
|
||||
'step 1'
|
||||
if(event.single){
|
||||
if(result.control!='cancel2'){
|
||||
player.logSkill('liangzhu',player);
|
||||
if(result.control=='摸一张'){
|
||||
player.draw();
|
||||
}
|
||||
else{
|
||||
player.draw(2);
|
||||
player.storage.liangzhu=player;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('liangzhu',target);
|
||||
if(target==player){
|
||||
target.draw();
|
||||
}
|
||||
else{
|
||||
target.draw(2);
|
||||
target.storage.liangzhu=player;
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
expose:0.2
|
||||
expose:0.1
|
||||
}
|
||||
},
|
||||
fanxiang:{
|
||||
skillAnimation:true,
|
||||
animationColor:'fire',
|
||||
audio:2,
|
||||
unique:true,
|
||||
forceunique:true,
|
||||
trigger:{player:'phaseBegin'},
|
||||
filter:function(event,player){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].storage.liangzhu==player&&game.players[i].isDamaged()){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
player.gainMaxHp();
|
||||
player.recover();
|
||||
player.removeSkill('liangzhu');
|
||||
player.addSkill('xiaoji');
|
||||
},
|
||||
},
|
||||
mingshi:{
|
||||
audio:2,
|
||||
trigger:{player:'damageBegin'},
|
||||
|
@ -6457,6 +6517,7 @@ character.sp={
|
|||
player.storage.bifa[1].gain(result.cards,player);
|
||||
player.$give(result.cards,player.storage.bifa[1]);
|
||||
player.gain(player.storage.bifa[0],'draw2');
|
||||
game.log(player,'获得了',player.storage.bifa[0]);
|
||||
}
|
||||
else{
|
||||
ui.discardPile.appendChild(player.storage.bifa[0]);
|
||||
|
@ -7367,6 +7428,8 @@ character.sp={
|
|||
yawang:'雅望',
|
||||
xunzhi:'殉志',
|
||||
yingjian:'影箭',
|
||||
fanxiang:'返乡',
|
||||
fanxiang_info:'觉醒技,准备阶段开始时,若全场有至少一名已受伤且你曾发动【良助】令其摸牌的角色,则你回复1点体力和体力上限,失去技能【良助】并获得技能【枭姬】',
|
||||
yingjian_info:'回合开始阶段,你可以视为使用一张无视距离的杀',
|
||||
xunzhi_info:'准备阶段开始时,若你的上家和下家与你的体力值均不相等,你可以失去1点体力。若如此做,你的手牌上限+2',
|
||||
yawang_info:'锁定技,摸牌阶段开始时,你放弃摸牌,改为摸x张牌,然后你于出牌阶段内至多使用x张牌(x为与你体力值相等的角色数)',
|
||||
|
@ -7417,7 +7480,7 @@ character.sp={
|
|||
tongji_info:'锁定技。若你的手牌数大于你的体力值,则只要你在任一其他角色的攻击范围内,该角色使用【杀】时便不能指定你以外的角色为目标',
|
||||
wangzun_info:'其他角色的回合开始时,你可以摸一张牌,然后令该角色此回合的手牌上限-1;直到你的回合开始,你不能再次发动此技',
|
||||
kaikang_info:'每当你距离1以内的角色成为杀的目标后,你可以摸一张牌。若如此做,你交给其一张牌并展示之,若该牌为装备牌,该角色可以使用此牌。',
|
||||
liangzhu_info:'其他角色在其回合内回复体力时,你可以与其各摸一张牌 ',
|
||||
liangzhu_info:'当一名角色于其出牌阶段内回复体力时,你可以选择一项:1、摸一张牌;2、令该角色摸两张牌 ',
|
||||
mingshi_info:'当你即将受到伤害时,若伤害来源的体力值大于你,你可以弃置一张黑色手牌令伤害-1 ',
|
||||
lirang_info:'你可以将你弃置的卡牌交给一名其他角色 ',
|
||||
moukui_info:'当你使用【杀】指定一名角色为目标后,你可以选择一项:摸一张牌,或弃置其一张牌。若如此做,此【杀】被【闪】抵消时,该角色弃置你的一张牌。 ',
|
||||
|
|
|
@ -6576,7 +6576,7 @@ character.swd={
|
|||
if(todiscard.length){
|
||||
choice.push('discard_card');
|
||||
}
|
||||
choice.push('cancel');
|
||||
choice.push('cancel2');
|
||||
if(choice.length>1){
|
||||
if(event.isMine()){
|
||||
event.dialog=ui.create.dialog(get.prompt('xielv'));
|
||||
|
@ -6584,7 +6584,7 @@ character.swd={
|
|||
player.chooseControl(choice).ai=function(){
|
||||
if(choice.contains('recover_hp')) return 'recover_hp';
|
||||
else if(ainum>0) return 'discard_card';
|
||||
else return 'cancel';
|
||||
else return 'cancel2';
|
||||
}
|
||||
event.todiscard=todiscard;
|
||||
event.filter=filter;
|
||||
|
|
|
@ -662,13 +662,13 @@ character.yijiang={
|
|||
if(player.hp<player.maxHp){
|
||||
controls.push('recover_hp');
|
||||
}
|
||||
controls.push('cancel');
|
||||
controls.push('cancel2');
|
||||
player.chooseControl(controls).set('prompt',get.prompt('guizao')).set('ai',function(event,player){
|
||||
if(player.hp<player.maxHp) return 'recover_hp';
|
||||
return 'draw_card';
|
||||
});
|
||||
"step 1"
|
||||
if(result.control!='cancel'){
|
||||
if(result.control!='cancel2'){
|
||||
player.logSkill('guizao');
|
||||
if(result.control=='draw_card'){
|
||||
player.draw();
|
||||
|
@ -6455,7 +6455,7 @@ character.yijiang={
|
|||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseControl('jiangchi_less','jiangchi_more','cancel',function(){
|
||||
player.chooseControl('jiangchi_less','jiangchi_more','cancel2',function(){
|
||||
var player=_status.event.player;
|
||||
if(player.num('h')>3&&player.num('h','sha')>1){
|
||||
return 'jiangchi_less';
|
||||
|
@ -6466,7 +6466,7 @@ character.yijiang={
|
|||
if(player.hp-player.num('h')>1){
|
||||
return 'jiangchi_more';
|
||||
}
|
||||
return 'cancel';
|
||||
return 'cancel2';
|
||||
});
|
||||
"step 1"
|
||||
if(result.control=='jiangchi_less'){
|
||||
|
|
|
@ -166,7 +166,7 @@ play.boss={
|
|||
lib.translate[i]=lib.translate[i]||mode.versus.translate[i];
|
||||
}
|
||||
for(var i in mode.versus.skill){
|
||||
if(i!='versus_swap'){
|
||||
if(i!='versus_swap'&&i!='versus_ladder'){
|
||||
lib.skill[i]=lib.init.eval(mode.versus.skill[i]);
|
||||
game.finishSkill(i);
|
||||
}
|
||||
|
|
|
@ -71,10 +71,10 @@ play.soldier={
|
|||
if(event.isMine()){
|
||||
event.dialog=ui.create.dialog('选择替你承受伤害的士兵');
|
||||
}
|
||||
player.chooseControl(player.storage.soldier,'cancel');
|
||||
player.chooseControl(player.storage.soldier,'cancel2');
|
||||
"step 1"
|
||||
if(event.dialog) event.dialog.close();
|
||||
if(result.control!='cancel'&&result.control){
|
||||
if(result.control!='cancel2'&&result.control){
|
||||
game.log(player,'牺牲了'+get.translation(result.control));
|
||||
player.storage.soldier.remove(result.control);
|
||||
player.removeSkill(result.control);
|
||||
|
|
168
game/game.js
168
game/game.js
|
@ -1638,7 +1638,7 @@
|
|||
this.innerHTML='已隐藏';
|
||||
game.saveConfig('hiddenModePack',['stone','chess','boss','tafang']);
|
||||
game.saveConfig('hiddenCardPack',['zhenfa','yunchou','swd','shenqi','hearth']);
|
||||
game.saveConfig('hiddenCharacterPack',['diy','yxs','hearth','swd','gujian','xianjian','xiake','boss','ow']);
|
||||
game.saveConfig('hiddenCharacterPack',['diy','yxs','hearth','swd','gujian','xianjian','boss','ow']);
|
||||
var that=this;
|
||||
setTimeout(function(){
|
||||
that.innerHTML='隐藏非官方扩展包';
|
||||
|
@ -2747,15 +2747,29 @@
|
|||
update:function(config,map){
|
||||
if(config.versus_mode=='four'){
|
||||
map.change_choice.hide();
|
||||
map.enable_all.show();
|
||||
map.four_assign.show();
|
||||
map.four_cross.show();
|
||||
map.ladder.show();
|
||||
if(config.ladder){
|
||||
map.ladder_monthly.show();
|
||||
map.ladder_reset.show();
|
||||
}
|
||||
else{
|
||||
map.ladder_monthly.hide();
|
||||
map.ladder_reset.hide();
|
||||
}
|
||||
map.enable_all.show();
|
||||
map.four_assign.show();
|
||||
map.expand_dialog.show();
|
||||
// map.four_cross.show();
|
||||
}
|
||||
else{
|
||||
map.change_choice.show();
|
||||
map.ladder.hide();
|
||||
map.ladder_monthly.hide();
|
||||
map.ladder_reset.hide();
|
||||
map.enable_all.hide();
|
||||
map.four_assign.hide();
|
||||
map.four_cross.hide();
|
||||
map.expand_dialog.show();
|
||||
// map.four_cross.hide();
|
||||
}
|
||||
if(config.versus_mode=='jiange'||config.versus_mode=='two'){
|
||||
map.free_choose.show();
|
||||
|
@ -2792,6 +2806,17 @@
|
|||
restart:true,
|
||||
frequent:true,
|
||||
},
|
||||
ladder:{
|
||||
name:'天梯模式',
|
||||
init:true,
|
||||
frequent:true,
|
||||
restart:true
|
||||
},
|
||||
ladder_monthly:{
|
||||
name:'每月重置天梯',
|
||||
init:true,
|
||||
frequent:true,
|
||||
},
|
||||
enable_all:{
|
||||
name:'启用全部武将',
|
||||
init:false,
|
||||
|
@ -2804,12 +2829,12 @@
|
|||
frequent:true,
|
||||
restart:true,
|
||||
},
|
||||
four_cross:{
|
||||
name:'交叉座位',
|
||||
init:false,
|
||||
frequent:true,
|
||||
restart:true,
|
||||
},
|
||||
// four_cross:{
|
||||
// name:'交叉座位',
|
||||
// init:false,
|
||||
// frequent:true,
|
||||
// restart:true,
|
||||
// },
|
||||
free_choose:{
|
||||
name:'自由选将',
|
||||
init:true,
|
||||
|
@ -2869,6 +2894,10 @@
|
|||
name:'替补模式',
|
||||
init:false,
|
||||
frequent:true,
|
||||
},
|
||||
expand_dialog:{
|
||||
name:'默认展开选将框',
|
||||
init:false,
|
||||
},
|
||||
ban_weak:{
|
||||
name:'屏蔽弱将',
|
||||
|
@ -2878,8 +2907,38 @@
|
|||
ban_strong:{
|
||||
name:'屏蔽强将',
|
||||
init:false,
|
||||
restart:true,
|
||||
restart:true
|
||||
},
|
||||
ladder_reset:{
|
||||
name:'重置天梯数据',
|
||||
onclick:function(){
|
||||
var node=this;
|
||||
if(node._clearing){
|
||||
game.save('ladder',{
|
||||
current:900,
|
||||
top:900,
|
||||
month:(new Date()).getMonth()
|
||||
});
|
||||
ui.ladder.innerHTML='卫士五';
|
||||
clearTimeout(node._clearing);
|
||||
node.innerHTML='重置天梯数据';
|
||||
delete node._clearing;
|
||||
return;
|
||||
}
|
||||
node.innerHTML='单击以确认 (3)';
|
||||
node._clearing=setTimeout(function(){
|
||||
node.innerHTML='单击以确认 (2)';
|
||||
node._clearing=setTimeout(function(){
|
||||
node.innerHTML='单击以确认 (1)';
|
||||
node._clearing=setTimeout(function(){
|
||||
node.innerHTML='重置天梯数据';
|
||||
delete node._clearing;
|
||||
},1000);
|
||||
},1000);
|
||||
},1000);
|
||||
},
|
||||
clear:true,
|
||||
},
|
||||
}
|
||||
},
|
||||
connect:{
|
||||
|
@ -4961,6 +5020,16 @@
|
|||
window.lib=lib;
|
||||
window._status=_status;
|
||||
},
|
||||
p:function(name,i){
|
||||
var target;
|
||||
if(typeof i=='number'){
|
||||
target=game.players[i];
|
||||
}
|
||||
else{
|
||||
target=game.me.next;
|
||||
}
|
||||
target.init(name);
|
||||
},
|
||||
e:function(){
|
||||
var cards=[],target;
|
||||
for(var i=0;i<arguments.length;i++){
|
||||
|
@ -5329,7 +5398,8 @@
|
|||
red:'红色',
|
||||
black:'黑色',
|
||||
ok:"确定",
|
||||
cancel:"取消",
|
||||
cancel:"取消",
|
||||
cancel2:"取消",
|
||||
restart:"重新开始",
|
||||
setting:"设置",
|
||||
start:"开始",
|
||||
|
@ -10985,7 +11055,12 @@
|
|||
}
|
||||
else if(!nopop) this.popup(get.skillTranslation(name,this));
|
||||
if(typeof targets=='object'&&targets.length){
|
||||
game.log(this,'对',targets,'发动了','【'+get.skillTranslation(name,this)+'】');
|
||||
var str='对<span class="bluetext">'+(targets[0]==this?'自己':get.translation(targets[0]));
|
||||
for(var i=1;i<targets.length;i++){
|
||||
str+='、'+(targets[i]==this?'自己':get.translation(targets[i]));
|
||||
}
|
||||
str+='</span>发动了【'+get.skillTranslation(name,this)+'】';
|
||||
game.log(this,str);
|
||||
}
|
||||
else{
|
||||
game.log(this,'发动了','【'+get.skillTranslation(name,this)+'】');
|
||||
|
@ -18762,6 +18837,54 @@
|
|||
}
|
||||
game.changeCoin(_status.coin);
|
||||
}
|
||||
if(get.mode()=='versus'&&_status.ladder){
|
||||
var mmr=_status.ladder_mmr;
|
||||
mmr+=10-get.rank(game.me.name,true)*2;
|
||||
if(result=='战斗胜利'){
|
||||
mmr=20+Math.round(mmr);
|
||||
if(mmr>40){
|
||||
mmr=40;
|
||||
}
|
||||
else if(mmr<10){
|
||||
mmr=10;
|
||||
}
|
||||
dialog.add(ui.create.div('','获得'+mmr+'积分'));
|
||||
}
|
||||
else{
|
||||
mmr=-30+Math.round(mmr/2);
|
||||
if(mmr>-20){
|
||||
mmr=-20;
|
||||
}
|
||||
else if(mmr<-35){
|
||||
mmr=-35;
|
||||
}
|
||||
if(lib.storage.ladder.current<900){
|
||||
mmr=Math.round(mmr/4);
|
||||
}
|
||||
else if(lib.storage.ladder.current<1400){
|
||||
mmr=Math.round(mmr/2);
|
||||
}
|
||||
else if(lib.storage.ladder.current<2000){
|
||||
mmr=Math.round(mmr/1.5);
|
||||
}
|
||||
else if(lib.storage.ladder.current>2500){
|
||||
mmr=Math.round(mmr*1.5);
|
||||
}
|
||||
dialog.add(ui.create.div('','失去'+(-mmr)+'积分'));
|
||||
}
|
||||
if(_status.ladder_tmp){
|
||||
lib.storage.ladder.current+=40;
|
||||
delete _status.ladder_tmp;
|
||||
}
|
||||
lib.storage.ladder.current+=mmr;
|
||||
if(lib.storage.ladder.top<lib.storage.ladder.current){
|
||||
lib.storage.ladder.top=lib.storage.ladder.current;
|
||||
}
|
||||
game.save('ladder',lib.storage.ladder);
|
||||
if(ui.ladder&&game.getLadderName){
|
||||
ui.ladder.innerHTML=game.getLadderName(lib.storage.ladder.current);
|
||||
}
|
||||
}
|
||||
if(true){
|
||||
if(game.players.length){
|
||||
table=document.createElement('table');
|
||||
|
@ -21203,8 +21326,10 @@
|
|||
else if(config.input){
|
||||
node.classList.add('switcher');
|
||||
var input=ui.create.div(node);
|
||||
input.contentEditable=true;
|
||||
input.style.webkitUserSelect='text';
|
||||
if(!config.fixed){
|
||||
input.contentEditable=true;
|
||||
input.style.webkitUserSelect='text';
|
||||
}
|
||||
input.style.minWidth='10px';
|
||||
input.onkeydown=function(e){
|
||||
if(e.keyCode==13){
|
||||
|
@ -21676,7 +21801,7 @@
|
|||
morenodes._onclick.call(morenodes,'unexpand');
|
||||
}
|
||||
}
|
||||
});
|
||||
},{passive:true});
|
||||
}
|
||||
}());
|
||||
|
||||
|
@ -31708,8 +31833,13 @@
|
|||
if(rank.bm.contains(name)) return num?Math.round(2*(num-1)/8+1):'bm';
|
||||
if(rank.c.contains(name)) return num?Math.round(1*(num-1)/8+1):'c';
|
||||
if(rank.d.contains(name)) return num?Math.round(0*(num-1)/8+1):'d';
|
||||
if(lib.customCharacters.contains(name)) return num?Math.round(8*(num-1)/8+1):'s';
|
||||
if(lib.characterPack.boss&&lib.characterPack.boss[name]) return num?Math.round(9*(num-1)/8+1):'sp';
|
||||
if(lib.character[name]&&lib.character[name][4]){
|
||||
if(lib.character[name][4].contains('boss')||
|
||||
lib.character[name][4].contains('bossallowed')||
|
||||
lib.character[name][4].contains('hiddenboss')){
|
||||
return num?Math.round(9*(num-1)/8+1):'sp';
|
||||
}
|
||||
}
|
||||
return num?1:'x';
|
||||
},
|
||||
targetsInfo:function(targets){
|
||||
|
|
|
@ -13,7 +13,7 @@ character.pack={
|
|||
swd:'轩辕剑',
|
||||
gujian:'古剑奇谭',
|
||||
xianjian:'仙剑',
|
||||
xiake:'侠客',
|
||||
// xiake:'侠客',
|
||||
};
|
||||
character.hearthpack={
|
||||
classic:'经典',
|
||||
|
|
|
@ -16,7 +16,7 @@ window.noname_source_list=[
|
|||
'character/gujian.js',
|
||||
'character/guozhan.js',
|
||||
'character/hearth.js',
|
||||
'character/jiange.js',
|
||||
// 'character/jiange.js',
|
||||
'character/ow.js',
|
||||
'character/rank.js',
|
||||
'character/refresh.js',
|
||||
|
@ -24,7 +24,7 @@ window.noname_source_list=[
|
|||
'character/sp.js',
|
||||
'character/standard.js',
|
||||
'character/swd.js',
|
||||
'character/xiake.js',
|
||||
// 'character/xiake.js',
|
||||
'character/xianjian.js',
|
||||
'character/yijiang.js',
|
||||
'character/yxs.js',
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
window.noname_update={
|
||||
version:'1.9.4',
|
||||
changeLog:[
|
||||
'新武将',
|
||||
'武将修改',
|
||||
'4v4改进',
|
||||
],
|
||||
files:{
|
||||
global:[
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 26 KiB |
229
mode/versus.js
229
mode/versus.js
|
@ -80,23 +80,43 @@ mode.versus={
|
|||
}
|
||||
}
|
||||
else if(_status.mode=='four'){
|
||||
var list=['zhong','ezhong','zhong','ezhong','zhong','ezhong','zhong','ezhong'];
|
||||
list[2*Math.floor(Math.random()*4)]='zhu';
|
||||
list[2*Math.floor(Math.random()*4)+1]='ezhu';
|
||||
if(!get.config('four_cross')){
|
||||
list.randomSort();
|
||||
var list=[
|
||||
['zhong','ezhong','ezhong','zhong','zhong','ezhong','ezhong','zhong'],
|
||||
['zhong','ezhong','zhong','ezhong','ezhong','zhong','ezhong','zhong'],
|
||||
['zhong','ezhong','ezhong','zhong','ezhong','zhong','zhong','ezhong'],
|
||||
['zhong','ezhong','zhong','ezhong','zhong','ezhong','zhong','ezhong'],
|
||||
['zhong','ezhong','ezhong','zhong','ezhong','zhong','ezhong','zhong'],
|
||||
].randomGet();
|
||||
var rand1=Math.floor(Math.random()*4);
|
||||
var rand2=Math.floor(Math.random()*4);
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i]=='zhong'){
|
||||
if(rand1==0){
|
||||
list[i]='zhu';
|
||||
}
|
||||
rand1--;
|
||||
}
|
||||
else{
|
||||
if(rand2==0){
|
||||
list[i]='ezhu';
|
||||
}
|
||||
rand2--;
|
||||
}
|
||||
}
|
||||
else{
|
||||
for(var i in lib.skill){
|
||||
if(lib.skill[i].changeSeat){
|
||||
lib.skill[i]={};
|
||||
if(lib.translate[i+'_info']){
|
||||
lib.translate[i+'_info']='此模式下不可用';
|
||||
}
|
||||
|
||||
for(var i in lib.skill){
|
||||
if(lib.skill[i].changeSeat){
|
||||
lib.skill[i]={};
|
||||
if(lib.translate[i+'_info']){
|
||||
lib.translate[i+'_info']='此模式下不可用';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var side=Math.random()<0.5;
|
||||
var num=Math.floor(Math.random()*8);
|
||||
list=list.splice(8-num).concat(list);
|
||||
_status.firstAct=game.players[num];
|
||||
for(var i=0;i<8;i++){
|
||||
if(list[i][0]=='e'){
|
||||
game.players[i].side=side;
|
||||
|
@ -334,9 +354,35 @@ mode.versus={
|
|||
}
|
||||
game.me.directgain(get.cards(hs.length));
|
||||
}
|
||||
if(_status.ladder){
|
||||
lib.storage.ladder.current-=40;
|
||||
_status.ladder_tmp=true;
|
||||
game.save('ladder',lib.storage.ladder);
|
||||
game.addGlobalSkill('versus_ladder');
|
||||
}
|
||||
game.phaseLoop(_status.firstAct);
|
||||
},
|
||||
game:{
|
||||
getLadderName:function(score){
|
||||
if(score<900) return '平民';
|
||||
if(score<1000) return '卫士五';
|
||||
if(score<1100) return '卫士四';
|
||||
if(score<1200) return '卫士三';
|
||||
if(score<1300) return '卫士二';
|
||||
if(score<1400) return '卫士一';
|
||||
if(score<1500) return '校尉三';
|
||||
if(score<1600) return '校尉二';
|
||||
if(score<1700) return '校尉一';
|
||||
if(score<1800) return '中郎将三';
|
||||
if(score<1900) return '中郎将二';
|
||||
if(score<2000) return '中郎将一';
|
||||
if(score<2100) return '大将五';
|
||||
if(score<2200) return '大将四';
|
||||
if(score<2300) return '大将三';
|
||||
if(score<2400) return '大将二';
|
||||
if(score<2500) return '大将一';
|
||||
return '枭雄';
|
||||
},
|
||||
checkOnlineResult:function(player){
|
||||
return game.players[0].side==player.side;
|
||||
},
|
||||
|
@ -842,18 +888,7 @@ mode.versus={
|
|||
event.list=[];
|
||||
event.filterChoice=function(name){
|
||||
if(get.config('enable_all')) return false;
|
||||
if(lib.banFour.contains(name)){
|
||||
return true;
|
||||
}
|
||||
if(lib.characterPack.refresh[name]) return false;
|
||||
if(lib.characterPack.standard[name]){
|
||||
if(lib.characterPack.refresh['re_'+name]) return true;
|
||||
return false;
|
||||
}
|
||||
if(lib.characterPack.shenhua[name]) return false;
|
||||
if(lib.characterPack.sp[name]) return false;
|
||||
if(lib.characterPack.yijiang[name]) return false;
|
||||
return true;
|
||||
return !lib.choiceFour.contains(name);
|
||||
}
|
||||
for(i in lib.character){
|
||||
if(event.filterChoice(i)) continue;
|
||||
|
@ -868,13 +903,46 @@ mode.versus={
|
|||
}
|
||||
event.list.randomSort();
|
||||
event.list2=list2;
|
||||
event.current=game.players.randomGet();
|
||||
_status.firstAct=event.current;
|
||||
event.current=_status.firstAct;
|
||||
event.four_assign=get.config('four_assign');
|
||||
event.flipassign=true;
|
||||
if(get.config('ladder')){
|
||||
var date=new Date();
|
||||
if(!lib.storage.ladder){
|
||||
lib.storage.ladder={
|
||||
current:900,
|
||||
top:900,
|
||||
month:date.getMonth()
|
||||
};
|
||||
game.save('ladder',lib.storage.ladder);
|
||||
}
|
||||
else if(date.getMonth()!=lib.storage.ladder.month&&get.config('ladder_monthly')){
|
||||
lib.storage.ladder.month=date.getMonth();
|
||||
lib.storage.ladder.current=900;
|
||||
game.save('ladder',lib.storage.ladder);
|
||||
}
|
||||
ui.ladder=ui.create.system(game.getLadderName(lib.storage.ladder.current),null,true);
|
||||
lib.setPopped(ui.ladder,function(uiintro){
|
||||
var uiintro=ui.create.dialog('hidden');
|
||||
uiintro.add('<div class="text center">当前分数:<div style="width:40px;text-align:left;font-family:xinwei">'+(lib.storage.ladder.current+(_status.ladder_tmp?40:0))+'</div></div>');
|
||||
uiintro.add('<div class="text center">历史最高:<div style="width:40px;text-align:left;font-family:xinwei">'+lib.storage.ladder.top+'</div></div>');
|
||||
uiintro.content.lastChild.style.paddingBottom='8px';
|
||||
return uiintro;
|
||||
},180);
|
||||
_status.ladder=true;
|
||||
_status.ladder_mmr=0;
|
||||
}
|
||||
"step 1"
|
||||
if(event.current==game.me||(event.four_assign&&event.current.side==game.me.side)){
|
||||
var dialog=event.xdialog||ui.create.characterDialog(event.filterChoice,'expandall');
|
||||
var dialog=event.xdialog;
|
||||
if(!dialog){
|
||||
if(get.config('expand_dialog')){
|
||||
dialog=event.xdialog||ui.create.characterDialog(event.filterChoice,'expandall');
|
||||
}
|
||||
else{
|
||||
dialog=event.xdialog||ui.create.characterDialog(event.filterChoice);
|
||||
}
|
||||
}
|
||||
var names=[];
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].name){
|
||||
|
@ -1505,7 +1573,7 @@ mode.versus={
|
|||
}
|
||||
var filterChoice=function(name){
|
||||
if(name=='zuoci') return true;
|
||||
if(lib.banFour.contains(name)){
|
||||
if(!lib.choiceFour.contains(name)){
|
||||
return true;
|
||||
}
|
||||
if(lib.characterPack.refresh&&lib.characterPack.refresh[name]){
|
||||
|
@ -2413,16 +2481,21 @@ mode.versus={
|
|||
boss_lieshiyazi:['male','wei',4,['boss_jiguan','boss_nailuo'],['jiangemech','hiddenboss','bossallowed'],'wei'],
|
||||
}
|
||||
},
|
||||
banFour:[
|
||||
'yuanshu','re_yuanshu','zhangxingcai','hetaiyou','wenpin','yuji',
|
||||
'lusu','guanping','zhangzong','zhoutai','sp_zhangjiao','zhangjiao',
|
||||
'shixie','zhanglu','chenlin','mayunlu','yangxiu','zhugeke','chengyu',
|
||||
'zhangbao','zhangliang','sunhao','wutugu','zhugeguo','liuzan','lingcao',
|
||||
'sunru','lingju','lifeng','hanba','sunluyu','zhuling','daxiaoqiao',
|
||||
'sp_zhaoyun','sp_diaochan','sp_pangtong','sp_caoren','sp_daqiao',
|
||||
'sp_ganning','sp_zhangfei','sp_xiahoudun',
|
||||
'zuoci','yuanshao','caopi','zhangzhang',
|
||||
'huaxiong','guanzhang','liuxie','fuwan','sp_sunshangxiang','hanhaoshihuan',
|
||||
choiceFour:[
|
||||
'sunquan','re_ganning','re_lvmeng','re_zhouyu','re_luxun','sunshangxiang',
|
||||
're_liubei','re_guanyu','re_zhangfei','zhugeliang','re_zhaoyun','re_machao','huangyueying','re_xushu',
|
||||
're_caocao','re_simayi','re_zhangliao','re_xuzhu','re_guojia','zhenji','re_lidian',
|
||||
're_lvbu','diaochan','re_huatuo',
|
||||
'xiahouyuan','huangzhong','xiaoqiao',
|
||||
'dianwei','pangtong','sp_zhugeliang','taishici','pangde','yanwen',
|
||||
'xuhuang','sunjian','jiaxu','dongzhuo',
|
||||
'zhanghe','dengai','jiangwei','liushan','sunce',
|
||||
'caozhi','zhangchunhua','masu','fazheng','xushu','lingtong','wuguotai','xusheng','chengong','gaoshun',
|
||||
'xunyou','wangyi','zhonghui','madai','liaohua','chengpu','handang','bulianshi',
|
||||
'jianyong','panzhangmazhong','yufan','liru','fuhuanghou',
|
||||
'caozhen','chenqun','hanhaoshihuan','wuyi','zhoucang','guyong','sunluban','jushou','caifuren',
|
||||
'caoxiu','liuchen','gongsunyuan',
|
||||
'guohuanghou','liyan','cenhun','liuyu'
|
||||
],
|
||||
translate:{
|
||||
zhu:'主',
|
||||
|
@ -3505,6 +3578,86 @@ mode.versus={
|
|||
}
|
||||
},
|
||||
},
|
||||
versus_ladder:{
|
||||
trigger:{global:['damageEnd','recoverEnd','dieEnd','gainEnd','phaseDiscardEnd']},
|
||||
forced:true,
|
||||
popup:false,
|
||||
silent:true,
|
||||
filter:function(event,player){
|
||||
if(!_status.ladder) return false;
|
||||
if(event._ladder_mmr_counted) return false;
|
||||
return event.source==game.me||event.player==game.me;
|
||||
},
|
||||
content:function(){
|
||||
switch(event.triggername){
|
||||
case 'damageEnd':{
|
||||
if(trigger.source.side!=trigger.player.side){
|
||||
if(trigger.source==game.me){
|
||||
_status.ladder_mmr+=0.5*Math.max(1,trigger.num);
|
||||
}
|
||||
else{
|
||||
_status.ladder_mmr+=0.2*Math.max(1,trigger.num);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'recoverEnd':{
|
||||
if(trigger.source!=trigger.player){
|
||||
if(trigger.source==game.me){
|
||||
if(trigger.player.side==game.me.side){
|
||||
_status.ladder_mmr+=0.5*trigger.num;
|
||||
}
|
||||
else{
|
||||
_status.ladder_mmr-=0.3*trigger.num;
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
_status.ladder_mmr+=0.3*trigger.num;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'dieEnd':{
|
||||
if(trigger.source==game.me&&trigger.player.side!=game.me.side){
|
||||
_status.ladder_mmr+=2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'gainEnd':{
|
||||
if(trigger.cards&&trigger.cards.length){
|
||||
if(trigger.source==game.me&&trigger.player!=game.me){
|
||||
if(trigger.player.side==game.me.side){
|
||||
_status.ladder_mmr+=0.3*trigger.cards.length;
|
||||
}
|
||||
else{
|
||||
_status.ladder_mmr-=0.1*trigger.cards.length;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(trigger.source){
|
||||
if(trigger.source.side!=game.me.side){
|
||||
_status.ladder_mmr+=0.3*trigger.cards.length;
|
||||
}
|
||||
}
|
||||
else{
|
||||
_status.ladder_mmr+=0.1*trigger.cards.length;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'phaseDiscardEnd':{
|
||||
if(trigger.player==player){
|
||||
if(trigger.cards&&trigger.cards.length){
|
||||
_status.ladder_mmr-=0.2*trigger.cards.length;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
trigger._ladder_mmr_counted=true;
|
||||
}
|
||||
}
|
||||
},
|
||||
element:{
|
||||
content:{
|
||||
|
|
Loading…
Reference in New Issue