"use strict"; (function(){ var _status={ paused:false, paused2:false, over:false, clicked:false, auto:false, event:{ finished:true, next:[], }, ai:{}, lastdragchange:[] }; var lib={ configprefix:'noname_0.9_', updates:[], canvasUpdates:[], configMenu:{ general:{ name:'通用', config:{ cheat:{ name:'控制台命令', init:false, onclick:function(bool){ if(lib.config.cheat&&bool==false){ lib.cheat=window.cheat; delete window.cheat; delete window.game; delete window.ui; delete window.get; delete window.ai; delete window.lib; delete window._status; } else if(!lib.config.cheat&&bool){ window.cheat=lib.cheat; window.cheat.i(); } game.saveConfig('cheat',bool); }, unfrequent:true, }, auto_confirm:{ name:'自动确认', init:true, }, enable_drag:{ name:'启用拖拽', init:true, }, wuxie_self:{ name:'不无懈自己', init:true, }, game_speed:{ name:'游戏速度', init:'mid', item:{ vslow:'慢', slow:'较慢', mid:'中', fast:'较快', vfast:'快', }, }, right_click:{ name:'右键功能', init:'pause', unfrequent:true, item:{ pause:'暂停', config:'选项', auto:'托管', } }, right_info:{ name:'右键显示信息', init:true, unfrequent:true, restart:true }, hover_all:{ name:'悬停显示信息', init:true, unfrequent:true, restart:true, }, hover_handcard:{ name:'悬停手牌显示信息', init:true, unfrequent:true, }, hoveration:{ name:'悬停菜单弹出时间', unfrequent:true, init:'1000', item:{ '500':'0.5秒', '700':'0.7秒', '1000':'1秒', '1500':'1.5秒', '2500':'2.5秒', } }, touchscreen:{ name:'触屏模式', init:false, restart:true }, mousewheel:{ name:'滚轮控制手牌', init:true, unfrequent:true, onclick:function(bool){ game.saveConfig('mousewheel',bool); if(lib.config.touchscreen) return; if(lib.config.mousewheel){ game.me.node.handcards1.onmousewheel=ui.click.mousewheel; game.me.node.handcards2.onmousewheel=ui.click.mousewheel; } else{ game.me.node.handcards1.onmousewheel=null; game.me.node.handcards2.onmousewheel=null; } } }, update:function(config,map){ if(!config.hover_all){ map.hover_handcard.hide(); map.hoveration.hide(); } else{ map.hover_handcard.show(); map.hoveration.show(); } if(config.touchscreen){ map.mousewheel.hide(); } else{ map.mousewheel.show(); } } } }, appearence:{ name:'外观', config:{ theme:{ name:'主题', init:'woodden', item:{ woodden:'木纹', music:'音乐', simple:'简约', }, onclick:function(theme){ game.saveConfig('theme',theme); ui.arena.hide(); setTimeout(function(){ var theme=ui.css.theme; ui.css.theme=lib.init.css('theme/'+lib.config.theme,'style'); theme.remove(); setTimeout(function(){ui.arena.show();},100); },500); } }, layout:{ name:'布局', init:'newlayout', item:{ default:'旧版', newlayout:'默认', mobile:'紧凑' }, onclick:function(layout){ game.saveConfig('layout',layout); if(lib.config.layoutfixed.contains(lib.config.mode)&&layout=='default'){ return; } setTimeout(function(){ var layout=ui.css.layout; ui.css.layout=lib.init.css('layout/'+lib.config.layout,'layout',layout); if(lib.config.layout=='mobile'){ ui.arena.classList.add('mobile'); if(game.me&&game.me.node.handcards2.childNodes.length){ while(game.me.node.handcards2.childNodes.length){ game.me.node.handcards1.appendChild(game.me.node.handcards2.firstChild); } } } else{ ui.arena.classList.remove('mobile'); } setTimeout(function(){ layout.remove(); ui.arena.show(); setTimeout(function(){ ui.updatex(); },500); },100); },500); } }, ui_zoom:{ name:'界面缩放', unfrequent:true, init:'normal', item:{ esmall:'极小', vsmall:'很小', small:'较小', normal:'原始', big:'较大', vbig:'很大', }, onclick:function(zoom){ game.saveConfig('ui_zoom',zoom); switch(zoom){ case 'esmall':ui.window.style.zoom=0.8;break; case 'vsmall':ui.window.style.zoom=0.9;break; case 'small':ui.window.style.zoom=0.95;break; case 'big':ui.window.style.zoom=1.05;break; case 'vbig':ui.window.style.zoom=1.1;break; default:ui.window.style.zoom=1; } } }, image_background:{ name:'游戏背景', init:'default', item:{ default:'默认', huangyueying_bg:'逐墨', zhulian_bg:'璧合', september_bg:'九月', xueji_bg:'雪霁', yinxiang_bg:'印象', chunhui_bg:'春晖', grass_bg:'芳草', huangtian_bg:'黄天', }, onclick:function(background){ var animate=lib.config.image_background=='default'; game.saveConfig('image_background',background); ui.background.delete(); ui.background=ui.create.div('.background'); switch (lib.config.image_background_filter){ case 'blur':ui.background.style.webkitFilter='blur(8px)'; ui.background.style.webkitTransform='scale(1.05)';break; case 'gray':ui.background.style.webkitFilter='grayscale(1)';break; case 'sepia':ui.background.style.webkitFilter='sepia(0.5)';break; case 'invert':ui.background.style.webkitFilter='invert(1)';break; case 'saturate':ui.background.style.webkitFilter='saturate(5)';break; case 'contrast':ui.background.style.webkitFilter='contrast(1.4)';break; case 'hue':ui.background.style.webkitFilter='hue-rotate(180deg)';break; case 'brightness':ui.background.style.webkitFilter='brightness(5)';break; default:ui.background.style.webkitFilter=''; ui.background.style.webkitTransform=''; } document.body.insertBefore(ui.background,document.body.firstChild); if(animate) ui.background.animate('start'); if(lib.config.image_background=='default'){ ui.background.style.backgroundImage="none"; } else{ ui.background.style.backgroundImage="url('image/background/"+lib.config.image_background+".jpg')"; } ui.background.style.backgroundSize='cover'; }, }, image_background_filter:{ name:'背景特效', init:'default', unfrequent:true, item:{ default:'无', blur:'模糊', gray:'黑色', sepia:'怀旧', invert:'反色', saturate:'饱和', contrast:'对比', hue:'偏色', brightness:'高亮', }, onclick:function(filter){ game.saveConfig('image_background_filter',filter); ui.click.sidebar.image_background(lib.config.image_background); }, }, auto_popped:{ name:'自动弹出菜单', init:true, unfrequent:true, }, only_fullskin:{ name:'隐藏无全身皮肤武将', init:true, unfrequent:true, restart:true, }, hide_card_image:{ name:'隐藏卡牌背景', init:false, unfrequent:true, restart:true, }, bottom_line:{ name:'指示线置底', init:false, unfrequent:true, onclick:function(bool){ game.saveConfig('bottom_line',bool); if(lib.config.bottom_line){ ui.canvas.style.zIndex=0; } else{ ui.canvas.style.zIndex=''; } } }, line_dash:{ name:'虚线指示线', init:false, unfrequent:true, }, show_name:{ name:'显示武将名', init:false, unfrequent:true, onclick:function(bool){ game.saveConfig('show_name',bool); if(lib.config.show_name){ for(var i=0;i'+ ''+ '', clear:true, }, export_data:{ name:'导出游戏数据', onclick:function(){ var data={}; for(var i in localStorage){ data[i]=localStorage[i]; } var textToWrite = lib.init.encode(JSON.stringify(data)); var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'}); var fileNameToSaveAs = 'noname-data'; var downloadLink = document.createElement("a"); downloadLink.download = fileNameToSaveAs; downloadLink.innerHTML = "Download File"; downloadLink.href = window.URL.createObjectURL(textFileAsBlob); // { // downloadLink.href = window.URL.createObjectURL(textFileAsBlob); // downloadLink.onclick = function(){ // downloadLink.remove(); // }; // downloadLink.style.display = "none"; // document.body.appendChild(downloadLink); // } downloadLink.click(); }, clear:true } } } }, mode:{ identity:{ name:'身份', config:{ player_number:{ name:'游戏人数', init:'8', item:{ '2':'两人', '3':'三人', '4':'四人', '5':'五人', '6':'六人', '7':'七人', '8':'八人' }, frequent:true, restart:true, }, double_character:{ name:'双将模式', init:false, frequent:true, restart:true, }, double_hp:{ name:'双将体力上限', init:'pingjun', item:{ hejiansan:'和减三', pingjun:'平均值', zuidazhi:'最大值', zuixiaozhi:'最小值', zonghe:'相加', }, restart:true, }, auto_identity:{ name:'自动显示身份', item:{ off:'关闭', one:'一轮', two:'两轮', three:'三轮', always:'始终' }, init:'off', onclick:function(bool){ game.saveConfig('auto_identity',bool,this._link.config.mode); var num; switch(bool){ case '一轮':num=1;break; case '两轮':num=2;break; case '三轮':num=3;break; default:num=0;break; } if(num&!_status.identityShown&&game.phaseNumber>game.players.length*num&&game.showIdentity){ _status.identityShown=true; game.showIdentity(); } } }, ban_weak:{ name:'屏蔽弱将', init:false, restart:true, }, enhance_zhu:{ name:'加强主公', init:false, restart:true, frequent:true, }, free_choose:{ name:'自由选将', init:true, onclick:function(bool){ game.saveConfig('free_choose',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(!ui.cheat2&&get.config('free_choose')) ui.create.cheat2(); else if(ui.cheat2&&!get.config('free_choose')){ ui.cheat2.close(); delete ui.cheat2; if(ui.cheat2x){ ui.cheat2x.close(); delete ui.cheat2; } } } }, change_identity:{ name:'自由选择身份和座位', init:true, onclick:function(bool){ game.saveConfig('change_identity',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; var dialog; if(ui.cheat2&&ui.cheat2.backup) dialog=ui.cheat2.backup; else dialog=_status.event.dialog; if(!dialog.querySelector('table')&&get.config('change_identity')) _status.event.parent.addSetting(dialog); else _status.event.parent.removeSetting(dialog); ui.update(); } }, change_choice:{ name:'开启换将卡', init:false, onclick:function(bool){ game.saveConfig('change_choice',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(!ui.cheat&&get.config('change_choice')) ui.create.cheat(); else if(ui.cheat&&!get.config('change_choice')){ ui.cheat.close(); delete ui.cheat; } } }, change_card:{ name:'开启手气卡', init:false, frequent:true }, dierestart:{ name:'死亡后显示重来', init:true, onclick:function(bool){ game.saveConfig('dierestart',bool,this._link.config.mode); if(get.config('dierestart')){ if(!ui.restart&&game.me.isDead()){ ui.restart=ui.create.control('restart',game.reload); } } else if(ui.restart){ ui.restart.close(); delete ui.restart; } } }, swap:{ name:'死亡后显示换人', init:true, onclick:function(bool){ game.saveConfig('swap',bool,this._link.config.mode); if(get.config('swap')){ if(!ui.swap&&game.me.isDead()){ ui.swap=ui.create.control('换人',ui.click.dieswap); } } else if(ui.swap){ ui.swap.close(); delete ui.swap; } } }, revive:{ name:'死亡后显示复活', init:false, onclick:function(bool){ game.saveConfig('revive',bool,this._link.config.mode); if(get.config('revive')){ if(!ui.revive&&game.me.isDead()){ ui.revive=ui.create.control('revive',ui.click.dierevive); } } else if(ui.revive){ ui.revive.close(); delete ui.revive; } } }, ai_strategy:{ name:'内奸策略', init:'ai_strategy_1', item:{ ai_strategy_1:'均衡', ai_strategy_2:'偏反', ai_strategy_3:'偏忠', ai_strategy_4:'酱油', ai_strategy_5:'天使', ai_strategy_6:'仇主', } }, difficulty:{ name:'AI对人类态度', init:'normal', item:{ easy:'友好', normal:'一般', hard:'仇视', } }, } }, guozhan:{ name:'国战', config:{ player_number:{ name:'游戏人数', init:'8', item:{ '3':'三人', '4':'四人', '5':'五人', '6':'六人', '7':'七人', '8':'八人' }, frequent:true, restart:true, }, initshow_draw:{ name:'首亮摸牌', item:{ '0':'无', '1':'一张', '2':'两张', }, init:'2', frequent:true, }, zhulian:{ name:'珠联璧合', init:true, frequent:true, }, double_hp:{ name:'双将体力上限', init:'pingjun', item:{ hejiansan:'和减三', pingjun:'平均值', zuidazhi:'最大值', zuixiaozhi:'最小值', zonghe:'相加', }, restart:true, }, free_choose:{ name:'自由选将', init:true, onclick:function(bool){ game.saveConfig('free_choose',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(!ui.cheat2&&get.config('free_choose')) ui.create.cheat2(); else if(ui.cheat2&&!get.config('free_choose')){ ui.cheat2.close(); delete ui.cheat2; if(ui.cheat2x){ ui.cheat2x.close(); delete ui.cheat2; } } } }, change_identity:{ name:'自由选择座位', init:true, onclick:function(bool){ game.saveConfig('change_identity',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; var dialog; if(ui.cheat2&&ui.cheat2.backup) dialog=ui.cheat2.backup; else dialog=_status.event.dialog; if(!dialog.querySelector('table')&&get.config('change_identity')) _status.event.parent.addSetting(dialog); else _status.event.parent.removeSetting(dialog); ui.update(); } }, change_choice:{ name:'开启换将卡', init:false, onclick:function(bool){ game.saveConfig('change_choice',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(!ui.cheat&&get.config('change_choice')) ui.create.cheat(); else if(ui.cheat&&!get.config('change_choice')){ ui.cheat.close(); delete ui.cheat; } } }, change_card:{ name:'开启手气卡', init:false, frequent:true }, dierestart:{ name:'死亡后显示重来', init:true, onclick:function(bool){ game.saveConfig('dierestart',bool,this._link.config.mode); if(get.config('dierestart')){ if(!ui.restart&&game.me.isDead()){ ui.restart=ui.create.control('restart',game.reload); } } else if(ui.restart){ ui.restart.close(); delete ui.restart; } } }, swap:{ name:'死亡后显示换人', init:true, onclick:function(bool){ game.saveConfig('swap',bool,this._link.config.mode); if(get.config('swap')){ if(!ui.swap&&game.me.isDead()){ ui.swap=ui.create.control('换人',ui.click.dieswap); } } else if(ui.swap){ ui.swap.close(); delete ui.swap; } } }, revive:{ name:'死亡后显示复活', init:false, onclick:function(bool){ game.saveConfig('revive',bool,this._link.config.mode); if(get.config('revive')){ if(!ui.revive&&game.me.isDead()){ ui.revive=ui.create.control('revive',ui.click.dierevive); } } else if(ui.revive){ ui.revive.close(); delete ui.revive; } } }, difficulty:{ name:'AI对人类态度', init:'normal', item:{ easy:'友好', normal:'一般', hard:'仇视', } }, } }, versus:{ name:'对决', config:{ change_choice:{ name:'开启换将卡', init:false, onclick:function(bool){ game.saveConfig('change_choice',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(!ui.cheat&&get.config('change_choice')) ui.create.cheat(); else if(ui.cheat&&!get.config('change_choice')){ ui.cheat.close(); delete ui.cheat; } }, frequent:true, }, ban_weak:{ name:'屏蔽弱将', init:false, restart:true, frequent:true, }, } }, boss:{ name:'挑战', config:{ free_choose:{ name:'自由选将', init:true, frequent:true, onclick:function(bool){ game.saveConfig('free_choose',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(!ui.cheat2&&get.config('free_choose')) ui.create.cheat2(); else if(ui.cheat2&&!get.config('free_choose')){ ui.cheat2.close(); delete ui.cheat2; if(ui.cheat2x){ ui.cheat2x.close(); delete ui.cheat2; } } } }, change_choice:{ name:'开启换将卡', init:false, onclick:function(bool){ game.saveConfig('change_choice',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(!ui.cheat&&get.config('change_choice')) ui.create.cheat(); else if(ui.cheat&&!get.config('change_choice')){ ui.cheat.close(); delete ui.cheat; } }, frequent:true, }, ban_weak:{ name:'屏蔽弱将', init:false, restart:true, frequent:true, }, } }, chess:{ name:'战棋', config:{ chess_mode:{ name:'游戏模式', init:'combat', item:{ combat:'对战', leader:'统率' }, restart:true, frequent:true, }, update:function(config,map){ if(config.chess_mode=='combat'){ map.chess_leader_save.hide(); map.chess_leader_clear.hide(); map.battle_number.show(); map.ban_weak.show(); map.free_choose.show(); map.change_choice.show(); map.chess_ordered.show(); map.chess_character.show(); } else{ map.chess_leader_save.show(); map.chess_leader_clear.show(); map.battle_number.hide(); map.ban_weak.hide(); map.free_choose.hide(); map.change_choice.hide(); map.chess_ordered.hide(); map.chess_character.hide(); } }, chess_leader_save:{ name:'选择历程', init:'save1', item:{ save1:'一', save2:'二', save3:'三', save4:'四', save5:'五', }, restart:true, frequent:true, }, chess_leader_clear:{ name:'清除进度', onclick:function(){ var node=this; if(node._clearing){ game.save(get.config('chess_leader_save'),null); window.location.reload(); return; } node._clearing=true; node.innerHTML='单击以确认 (3)'; setTimeout(function(){ node.innerHTML='单击以确认 (2)'; setTimeout(function(){ node.innerHTML='单击以确认 (1)'; setTimeout(function(){ node.innerHTML='清除进度'; delete node._clearing; },1000); },1000); },1000); }, clear:true, frequent:true, }, battle_number:{ name:'对战人数', init:'3', frequent:true, item:{ '2':'2v2', '3':'3v3', '4':'4v4', '6':'6v6', '8':'8v8', }, onclick:function(num){ game.saveConfig('battle_number',num,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(_status.event.parent.changeDialog){ _status.event.parent.changeDialog(); } }, }, chess_ordered:{ name:'交替行动', init:true, frequent:true, }, chess_character:{ name:'战棋武将', init:true, frequent:true, }, chessscroll_speed:{ name:'边缘滚动速度', init:'20', item:{ '0':'不滚动', '10':'10格/秒', '20':'20格/秒', '30':'30格/秒', } }, free_choose:{ name:'自由选将', init:true, onclick:function(bool){ game.saveConfig('free_choose',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(!ui.cheat2&&get.config('free_choose')) ui.create.cheat2(); else if(ui.cheat2&&!get.config('free_choose')){ ui.cheat2.close(); delete ui.cheat2; if(ui.cheat2x){ ui.cheat2x.close(); delete ui.cheat2; } } }, }, change_choice:{ name:'开启换将卡', init:false, onclick:function(bool){ game.saveConfig('change_choice',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(!ui.cheat&&get.config('change_choice')) ui.create.cheat(); else if(ui.cheat&&!get.config('change_choice')){ ui.cheat.close(); delete ui.cheat; } }, }, ban_weak:{ name:'屏蔽弱将', init:false, restart:true, }, } }, stone:{ name:'炉石', config:{ battle_number:{ name:'出场人数', init:'3', frequent:true, item:{ '2':'两人', '3':'三人', '4':'四人', '6':'六人', '8':'八人', '10':'十人', }, onclick:function(num){ game.saveConfig('battle_number',num,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(_status.event.parent.changeDialog){ _status.event.parent.changeDialog(); } }, }, free_choose:{ name:'自由选将', init:true, onclick:function(bool){ game.saveConfig('free_choose',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(!ui.cheat2&&get.config('free_choose')) ui.create.cheat2(); else if(ui.cheat2&&!get.config('free_choose')){ ui.cheat2.close(); delete ui.cheat2; if(ui.cheat2x){ ui.cheat2x.close(); delete ui.cheat2; } } }, frequent:true, }, change_choice:{ name:'开启换将卡', init:false, onclick:function(bool){ game.saveConfig('change_choice',bool,this._link.config.mode); if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; if(!ui.cheat&&get.config('change_choice')) ui.create.cheat(); else if(ui.cheat&&!get.config('change_choice')){ ui.cheat.close(); delete ui.cheat; } }, frequent:true, }, ban_weak:{ name:'屏蔽弱将', init:false, restart:true, frequent:true, }, } } }, status:{ running:false, canvas:false, time:0, delayed:0, frameId:0, }, help:{ '游戏选项':'