"use strict"; (function(){ var _status={ paused:false, paused2:false, over:false, clicked:false, auto:false, event:{ finished:true, next:[], }, ai:{}, lastdragchange:[], skillaudio:[], dieClose:[] }; var lib={ version:1.76, changeLog:[ 'bug修复(捉鬼、导出武将)', '配音支持引用文件名', '挑战模式可关闭单人控制', '不同模式可单独设置禁将、禁卡', '自定义技能禁配', '战棋对战选项', '炉石模式平衡调整', 'ctrl+shift+R重置游戏' ], configprefix:'noname_0.9_', updates:[], canvasUpdates:[], video:[], arenaReady:[], _onDB:[], customCharacters:[], customCards:[], skilllist:[], characterPack:{}, cardPack:{}, onresize:[], onDB:function(func){ if(lib.db){ func(); } else{ lib._onDB.push(func); } }, setTranslate:function(name){ if(name.indexOf('|')==-1){ lib.translate[name]=name; } else{ if(name.lastIndexOf('|')>name.indexOf('|')){ lib.translate[name]=name.slice(name.indexOf('|')+1,name.lastIndexOf('|')); } else{ lib.translate[name]=name.slice(name.indexOf('|')+1); } } }, checkCharacterName:function(name){ if(lib.character[name]){ if(!lib.customCharacters.contains(name)) return true; for(var i in lib.config.customCharacterPack){ if(lib.config.customCharacterPack[i].character.contains(name)) return true; } } return false; }, checkSkillName:function(name){ if(lib.skill[name]){ if(!lib.skill[name].createInfo) return true; for(var i in lib.config.customCharacterPack){ if(lib.config.customCharacterPack[i].skill.contains(name)) return true; } } return false; }, listenEnd:function(node){ if(!node._listeningEnd){ node._listeningEnd=true; node.addEventListener('webkitTransitionEnd',function(){ delete node._listeningEnd; if(node._onEndMoveDelete){ node.moveDelete(node._onEndMoveDelete); } else if(node._onEndDelete){ node.delete(); } node._transitionEnded=true; }); } }, 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, }, low_performance:{ name:'流畅模式', init:false, onclick:function(bool){ game.saveConfig('low_performance',bool); if(bool){ ui.arena.classList.add('low_performance'); } else{ ui.arena.classList.remove('low_performance'); } } }, confirm_exit:{ name:'确认退出', init:false, unfrequent:true }, auto_confirm:{ name:'自动确认', init:true, unfrequent:true, }, enable_drag:{ name:'启用拖拽', init:true, unfrequent:true, }, enable_dragline:{ name:'拖拽指示线', init:true, unfrequent:true, }, enable_touchdragline:{ name:'拖拽指示线', init:false, unfrequent:true, }, wuxie_self:{ name:'不无懈自己', init:true, }, tao_enemy:{ name:'不对敌将使用桃', init:false, }, touchscreen:{ name:'触屏模式', init:false, restart:true, unfrequent:true, }, change_skin:{ name:'双击换肤', init:true }, swipe:{ name:'滑动手势', init:true, unfrequent:true, }, swipe_down:{ name:'下划操作', init:'system', unfrequent:true, item:{ system:'显示按钮', menu:'打开菜单', pause:'切换暂停', auto:'切换托管', off:'关闭', } }, swipe_up:{ name:'上划操作', init:'auto', unfrequent:true, item:{ system:'显示按钮', menu:'打开菜单', pause:'切换暂停', auto:'切换托管', off:'关闭', } }, swipe_left:{ name:'左划操作', init:'off', unfrequent:true, item:{ system:'显示按钮', menu:'打开菜单', pause:'切换暂停', auto:'切换托管', off:'关闭', } }, swipe_right:{ name:'右划操作', init:'off', unfrequent:true, item:{ system:'显示按钮', menu:'打开菜单', pause:'切换暂停', auto:'切换托管', off:'关闭', } }, show_splash:{ name:'显示开始界面', init:true, }, game_speed:{ name:'游戏速度', init:'mid', item:{ vslow:'慢', slow:'较慢', mid:'中', fast:'较快', vfast:'快', vvfast:'很快', }, }, sync_speed:{ name:'限制结算速度', init:true }, 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秒', } }, mousewheel:{ name:'滚轮控制手牌', init:true, unfrequent:true, onclick:function(bool){ game.saveConfig('mousewheel',bool); if(lib.config.touchscreen) return; if(lib.config.mousewheel){ ui.handcards1Container.onmousewheel=ui.click.mousewheel; ui.handcards2Container.onmousewheel=ui.click.mousewheel; } else{ ui.handcards1Container.onmousewheel=null; ui.handcards2Container.onmousewheel=null; } } }, video:{ name:'保存录像', init:'20', item:{ '0':'关闭', '5':'五局', '10':'十局', '20':'二十局', '50':'五十局', '10000':'无限', }, unfrequent:true, }, update:function(config,map){ if(config.touchscreen){ map.mousewheel.hide(); map.hover_all.hide(); map.hover_handcard.hide(); map.hoveration.hide(); map.right_info.hide(); map.right_click.hide(); map.swipe.show(); if(config.swipe){ map.swipe_up.show(); map.swipe_down.show(); map.swipe_left.show(); map.swipe_right.show(); } else{ map.swipe_up.hide(); map.swipe_down.hide(); map.swipe_left.hide(); map.swipe_right.hide(); } } else{ map.mousewheel.show(); map.hover_all.show(); map.right_info.show(); map.right_click.show(); if(!config.hover_all){ map.hover_handcard.hide(); map.hoveration.hide(); } else{ map.hover_handcard.show(); map.hoveration.show(); } map.swipe.hide(); map.swipe_up.hide(); map.swipe_down.hide(); map.swipe_left.hide(); map.swipe_right.hide(); } if(lib.config.enable_drag){ if(lib.config.touchscreen){ map.enable_dragline.hide(); map.enable_touchdragline.show(); } else{ map.enable_dragline.show(); map.enable_touchdragline.hide(); } } else{ map.enable_dragline.hide(); map.enable_touchdragline.hide(); } } } }, 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:'mobile', item:{ default:'旧版', newlayout:'对称', mobile:'默认', phone:'移动' }, onclick:function(layout){ if(lib.config.layoutfixed.contains(lib.config.mode)&&layout=='default'){ game.saveConfig('layout',layout); } else{ lib.init.layout(layout); } } }, ui_zoom:{ name:'界面缩放', unfrequent:true, init:'normal', item:{ esmall:'80%', vsmall:'90%', small:'95%', normal:'100%', big:'105%', vbig:'110%', ebig:'120%', }, 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; case 'ebig':ui.window.style.zoom=1.2;break; default:ui.window.style.zoom=1; } } }, image_background:{ name:'游戏背景', init:'default', item:{ default:'默认', custom:'自定', }, 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.filter='blur(8px)'; ui.background.style.webkitFilter='blur(8px)'; ui.background.style.transform='scale(1.05)'; break; case 'gray': ui.background.style.filter='grayscale(1)'; ui.background.style.webkitFilter='grayscale(1)'; break; case 'sepia': ui.background.style.filter='sepia(0.5)'; ui.background.style.webkitFilter='sepia(0.5)'; break; case 'invert': ui.background.style.filter='invert(1)'; ui.background.style.webkitFilter='invert(1)'; break; case 'saturate': ui.background.style.filter='saturate(5)'; ui.background.style.webkitFilter='saturate(5)'; break; case 'contrast': ui.background.style.filter='contrast(1.4)'; ui.background.style.webkitFilter='contrast(1.4)'; break; case 'hue': ui.background.style.filter='hue-rotate(180deg)'; ui.background.style.webkitFilter='hue-rotate(180deg)'; break; case 'brightness': ui.background.style.filter='brightness(5)'; ui.background.style.webkitFilter='brightness(5)'; break; default: ui.background.style.filter=''; ui.background.style.webkitFilter=''; ui.background.style.transform=''; } 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 if(lib.config.image_background=='custom'){ ui.background.style.backgroundImage="none"; game.getDB('image','background',function(fileToLoad){ if(!fileToLoad) return; var fileReader = new FileReader(); fileReader.onload = function(fileLoadedEvent) { var data = fileLoadedEvent.target.result; ui.background.style.backgroundImage='url('+data+')'; }; fileReader.readAsDataURL(fileToLoad, "UTF-8"); }); } else{ ui.background.style.backgroundImage="url('image/background/"+lib.config.image_background+".jpg')"; } ui.background.style.backgroundSize='cover'; }, }, import_background:{ name:'
'+ ''+ '
', clear:true, }, image_background_filter:{ name:'背景特效', init:'default', 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); }, }, card_style:{ name:'卡牌样式', init:'default', item:{ default:'默认', wood:'木纹', music:'音乐', simple:'原版' }, onclick:function(layout){ game.saveConfig('card_style',layout); var style=ui.css.card_style; ui.css.card_style=lib.init.css('theme/style/card',lib.config.card_style); style.remove(); }, unfrequent:true, }, cardback_style:{ name:'卡背样式', init:'default', item:{ default:'默认', wood:'木纹', music:'音乐', official:'原版' }, onclick:function(layout){ game.saveConfig('cardback_style',layout); var style=ui.css.cardback_style; ui.css.cardback_style=lib.init.css('theme/style/cardback',lib.config.cardback_style); style.remove(); }, unfrequent:true, }, hp_style:{ name:'体力条样式', init:'default', item:{ default:'默认', official:'勾玉', }, onclick:function(layout){ game.saveConfig('hp_style',layout); var style=ui.css.hp_style; ui.css.hp_style=lib.init.css('theme/style/hp',lib.config.hp_style); style.remove(); if(lib.config.layout=='default'&&lib.config.hp_style=='official'){ ui.arena.classList.add('hpimage'); } else{ ui.arena.classList.remove('hpimage'); } }, unfrequent:true, }, show_log:{ name:'显示历史记录', init:'off', unfrequent:true, item:{ off:'关闭', left:'靠左', center:'居中', right:'靠右', }, onclick:function(bool){ game.saveConfig('show_log',bool); if(lib.config.show_log!='off'){ ui.arenalog.style.display=''; ui.arenalog.dataset.position=bool; } else{ ui.arenalog.style.display='none'; ui.arenalog.innerHTML=''; } } }, log_highlight:{ name:'历史记录高亮', init:true, unfrequent:true, }, glow_phase:{ name:'当前回合角色高亮', unfrequent:true, init:'yellow', item:{ none:'无', yellow:'黄色', green:'绿色', purple:'紫色', }, onclick:function(bool){ game.saveConfig('glow_phase',bool); if(_status.currentPhase){ if(lib.config.glow_phase){ _status.currentPhase.classList.add('glow_phase'); ui.arena.dataset.glow_phase=lib.config.glow_phase; } else{ _status.currentPhase.classList.remove('glow_phase'); } } } }, slim_player:{ name:'窄边框', init:true, unfrequent:true, onclick:function(bool){ game.saveConfig('slim_player',bool); if(bool){ ui.arena.classList.add('slim_player'); } else{ ui.arena.classList.remove('slim_player'); } } }, fold_card:{ name:'折叠手牌', init:true, unfrequent:true, }, auto_popped_config:{ name:'自动弹出选项', init:true, unfrequent:true, }, auto_popped_history:{ name:'自动弹出历史', init:false, unfrequent:true, }, remember_dialog:{ name:'记住对话框位置', init:true, unfrequent:true, }, reset_dialog:{ name:'重置对话框位置', clear:true, unfrequent:true, onclick:function(){ if(ui.dialog){ var dialog=ui.dialog; dialog.style.transform=''; dialog._dragtransform=[0,0]; dialog.style.transition='all 0.3s'; dialog._dragtouches; dialog._dragorigin; dialog._dragorigintransform; setTimeout(function(){ dialog.style.transition=''; },500); } game.saveConfig('dialog_transform',[0,0]); } }, 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, }, background_audio:{ name:'游戏音效', init:true, }, background_speak:{ name:'人物配音', init:true, }, background_ogg:{ name:'补全配音', init:true }, volumn_audio:{ name:'音效音量', init:8, item:{ '1':'一', '2':'二', '3':'三', '4':'四', '5':'五', '6':'六', '7':'七', '8':'八', }, onclick:function(volume){ game.saveConfig('volumn_audio',parseInt(volume)); } }, volumn_background:{ name:'音乐音量', init:8, item:{ '1':'一', '2':'二', '3':'三', '4':'四', '5':'五', '6':'六', '7':'七', '8':'八', }, onclick:function(volume){ game.saveConfig('volumn_background',parseInt(volume)); ui.backgroundMusic.volume=volume/8; } } } }, playpack:{ name:'玩法', config:{ character:{ name:'技能卡牌', init:false, restart:true, onclick:function(bool){ if(bool){ lib.config.plays.add('character'); } else{ lib.config.plays.remove('character'); } game.saveConfig('plays',lib.config.plays); } }, character_num_playpackconfig:{ name:'卡牌比例', init:'0.05', item:{ '0.02':'2%', '0.05':'5%', '0.1':'10%', '0.2':'20%', } }, soldier:{ name:'士兵模式', init:false, restart:true, onclick:function(bool){ if(bool){ lib.config.plays.add('soldier'); } else{ lib.config.plays.remove('soldier'); } game.saveConfig('plays',lib.config.plays); } }, wuxing:{ name:'五行生克', init:false, restart:true, onclick:function(bool){ if(bool){ lib.config.plays.add('wuxing'); } else{ lib.config.plays.remove('wuxing'); } game.saveConfig('plays',lib.config.plays); } }, wuxing_num_playpackconfig:{ name:'带属性卡牌', init:'0.3', item:{ '0.1':'10%', '0.2':'20%', '0.3':'30%', '0.5':'50%', } }, weather:{ name:'天气变化', init:false, restart:true, onclick:function(bool){ if(bool){ lib.config.plays.add('weather'); } else{ lib.config.plays.remove('weather'); } game.saveConfig('plays',lib.config.plays); } }, // weather_animation_playpackconfig:{ // name:'天气动画', // init:true // }, weather_noqing_playpackconfig:{ name:'异常天气出现概率', init:'0.5', item:{ '0.1':'10%', '0.3':'30%', '0.5':'50%', '0.7':'70%', '0.9':'90%', } }, weather_chance_playpackconfig:{ name:'天气效果触发概率', init:'0.5', item:{ '0.1':'10%', '0.2':'20%', '0.3':'30%', '0.5':'50%', '0.8':'80%', }, onclick:function(item){ game.saveConfig('weather_chance_playpackconfig',item); _status.weatherchance=parseFloat(lib.config.weather_chance_playpackconfig)||0; } }, weather_duration_playpackconfig:{ name:'异常天气持续时间', init:'[4,4]', item:{ '[2,4]':'1~3回合', '[4,4]':'3~6回合', '[4,7]':'3~9回合', '[7,4]':'6~9回合', '[7,7]':'6~12回合', } }, weather_qingduration_playpackconfig:{ name:'晴朗天气持续时间', init:'[2,4]', item:{ '[2,4]':'1~3回合', '[4,4]':'3~6回合', '[4,7]':'3~9回合', '[7,4]':'6~9回合', '[7,7]':'6~12回合', } }, coin:{ name:'富甲天下', init:false, restart:true, onclick:function(bool){ if(bool){ lib.config.plays.add('coin'); } else{ lib.config.plays.remove('coin'); } game.saveConfig('plays',lib.config.plays); } }, coin_display_playpackconfig:{ name:'金币显示', init:'text', item:{ symbol:'符号', text:'文字' }, onclick:function(item){ game.saveConfig('coin_display_playpackconfig',item); if(game.changeCoin) game.changeCoin(0); } }, coin_canvas_playpackconfig:{ name:'特效置顶', init:false, onclick:function(bool){ game.saveConfig('coin_canvas_playpackconfig',bool); if(bool){ ui.window.classList.add('canvas_top'); } else{ ui.window.classList.remove('canvas_top'); } } }, // coin_free_playpackconfig:{ // name:'仅在空闲时显示特效', // init:false, // }, update:function(config,map){ for(var i in map){ if(i.indexOf('_playpackconfig')!=-1){ map[i].classList.add('indent'); if(lib.config.plays.contains(i.slice(0,i.indexOf('_')))){ map[i].show(); } else{ map[i].hide(); } } else{ if(lib.config.plays.contains(i)){ map[i].classList.add('on'); } else{ map[i].classList.remove('on'); } } } } } }, skill:{ name:'技能', config:{ update:function(config,map){ for(var i in map){ if(map[i]._link.config.type=='autoskill'){ if(!lib.config.autoskilllist.contains(i)){ map[i].classList.add('on'); ui.autoskill[i].lastChild.classList.add('on'); } else{ map[i].classList.remove('on'); ui.autoskill[i].lastChild.classList.remove('on'); } } else if(map[i]._link.config.type=='banskill'){ if(!lib.config.forbidlist.contains(i)){ map[i].classList.add('on'); } else{ map[i].classList.remove('on'); } } } } } }, others:{ name:'其它', config:{ reset_game:{ name:'重置游戏', onclick:function(){ var node=this; if(node._clearing){ localStorage.clear(); if(indexedDB) indexedDB.deleteDatabase(lib.configprefix+'data'); game.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 }, reset_hiddenpack:{ name:'重置隐藏扩展包', onclick:function(){ if(this.innerHTML!='已重置'){ this.innerHTML='已重置' game.saveConfig('hiddenModePack',[]); game.saveConfig('hiddenCharacterPack',[]); game.saveConfig('hiddenCardPack',[]); var that=this; setTimeout(function(){ that.innerHTML='重置隐藏扩展包'; },500); } }, clear:true }, reset_tutorial:{ name:'重置新手向导', onclick:function(){ if(this.innerHTML!='已重置'){ this.innerHTML='已重置' game.saveConfig('new_tutorial',false); var that=this; setTimeout(function(){ that.innerHTML='重置新手向导'; },500); } }, clear:true }, import_data:{ name:'导入游戏数据', onclick:function(){ ui.import_data_button.classList.toggle('hidden'); }, clear:true }, import_data_button:{ name:'
'+ ''+ '
', clear:true, }, export_data:{ name:'导出游戏数据', onclick:function(){ var data={}; for(var i in localStorage){ data[i]=localStorage[i]; } game.export(lib.init.encode(JSON.stringify(data)), '无名杀 - 数据 - '+(new Date()).toLocaleString()); }, clear:true } } } }, mode:{ identity:{ name:'身份', config:{ update:function(config,map){ if(config.identity_mode=='zhong'){ map.player_number.hide(); map.enhance_zhu.hide(); map.double_nei.hide(); map.auto_identity.hide(); map.choice_zhu.hide(); map.choice_zhong.hide(); map.choice_nei.hide(); map.choice_fan.hide(); } else{ map.player_number.show(); map.enhance_zhu.show(); map.auto_identity.show(); if(config.player_number=='8'){ map.double_nei.show(); } else{ map.double_nei.hide(); } map.choice_zhu.show(); map.choice_zhong.show(); map.choice_nei.show(); map.choice_fan.show(); } }, identity_mode:{ name:'游戏模式', init:'normal', item:{ normal:'普通', zhong:'明忠' }, restart:true, frequent:true, }, player_number:{ name:'游戏人数', init:'8', item:{ '2':'两人', '3':'三人', '4':'四人', '5':'五人', '6':'六人', '7':'七人', '8':'八人' }, frequent:true, restart:true, }, double_nei:{ name:'双内奸', init:false, 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); if(get.config('identity_mode')=='zhong') return; 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(false); } } }, ban_weak:{ name:'屏蔽弱将', init:false, restart:true, }, ban_strong:{ 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, }, 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; } } }, continue_game:{ name:'显示继续游戏', init:false, onclick:function(bool){ game.saveConfig('continue_game',bool,this._link.config.mode); if(get.config('continue_game')){ if(!ui.continue_game&&_status.over){ ui.continue_game=ui.create.control('继续',game.reloadCurrent); } } else if(ui.continue_game){ ui.continue_game.close(); delete ui.continue_game; } } }, 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:'仇视', } }, choice_zhu:{ name:'主公候选武将数', init:'3', restart:true, item:{ '3':'三', '4':'四', '5':'五', '6':'六', '8':'八', '10':'十', } }, choice_zhong:{ name:'忠臣候选武将数', init:'4', restart:true, item:{ '3':'三', '4':'四', '5':'五', '6':'六', '8':'八', '10':'十', } }, choice_nei:{ name:'内奸候选武将数', init:'5', restart:true, item:{ '3':'三', '4':'四', '5':'五', '6':'六', '8':'八', '10':'十', } }, choice_fan:{ name:'反贼候选武将数', init:'3', restart:true, item:{ '3':'三', '4':'四', '5':'五', '6':'六', '8':'八', '10':'十', } }, } }, guozhan:{ name:'国战', config:{ guozhan_mode:{ name:'游戏模式', init:'normal', item:{ normal:'普通', mingjiang:'明将' }, frequent:true, }, player_number:{ name:'游戏人数', init:'8', item:{ '3':'三人', '4':'四人', '5':'五人', '6':'六人', '7':'七人', '8':'八人' }, frequent:true, restart:true, }, initshow_draw:{ name:'首亮摸牌', item:{ '0':'无', '1':'一张', '2':'两张', '3':'三张', }, init:'2', frequent:true, }, zhulian:{ name:'珠联璧合', init:true, frequent:true, }, double_hp:{ name:'双将体力上限', init:'pingjun', item:{ hejiansan:'和减三', pingjun:'平均值', zuidazhi:'最大值', zuixiaozhi:'最小值', zonghe:'相加', }, restart:true, }, ban_strong:{ name:'屏蔽强将', init:false, 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, }, 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; } } }, continue_game:{ name:'显示继续游戏', init:false, onclick:function(bool){ game.saveConfig('continue_game',bool,this._link.config.mode); if(get.config('continue_game')){ if(!ui.continue_game&&_status.over){ ui.continue_game=ui.create.control('继续',game.reloadCurrent); } } else if(ui.continue_game){ ui.continue_game.close(); delete ui.continue_game; } } }, 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:'仇视', } }, choice_num:{ name:'候选武将数', init:'7', restart:true, item:{ '5':'五', '6':'六', '7':'七', '8':'八', '9':'九', '10':'十', } }, } }, 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, }, ban_strong:{ 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, }, single_control:{ name:'单人控制', init:true, frequent:true, onclick:function(bool){ game.saveConfig('single_control',bool,this._link.config.mode); if(ui.single_swap&&game.me!=game.boss){ if(bool){ ui.single_swap.style.display='none'; } else{ ui.single_swap.style.display=''; } } }, }, ban_weak:{ name:'屏蔽弱将', init:false, restart:true, frequent:true, }, ban_strong:{ name:'屏蔽强将', init:false, restart:true, frequent:true, }, } }, chess:{ name:'战棋', config:{ chess_mode:{ name:'游戏模式', init:'combat', item:{ combat:'对战', leader:'君主', tafang:'塔防' }, restart:true, frequent:true, }, update:function(config,map){ if(config.chess_mode=='leader'){ map.chess_leader_save.show(); map.chess_leader_clear.show(); map.chess_character.hide(); } else{ map.chess_leader_save.hide(); map.chess_leader_clear.hide(); map.chess_character.show(); } if(config.chess_mode=='combat'){ // map.battle_number.show(); // map.chess_ordered.show(); map.free_choose.show(); map.change_choice.show(); } else{ // map.battle_number.hide(); // map.chess_ordered.hide(); map.free_choose.hide(); map.change_choice.hide(); } if(config.chess_mode=='tafang'){ map.chess_treasure.hide(); map.chess_obstacle.hide(); map.tafang_size.show(); map.tafang_turn.show(); map.tafang_difficulty.show(); } else{ map.chess_treasure.show(); map.chess_obstacle.show(); map.tafang_size.hide(); map.tafang_turn.hide(); map.tafang_difficulty.hide(); } if(config.chess_mode=='combat'||config.chess_mode=='tafang'){ map.ban_weak.show(); } else{ map.ban_weak.hide(); } }, tafang_turn:{ name:'游戏胜利', init:'20', frequent:true, item:{ '10':'十回合', '20':'二十回合', '30':'三十回合', '1000':'无限', } }, tafang_size:{ name:'战场大小', init:'9', frequent:true, item:{ '6':'小', '9':'中', '12':'大', } }, tafang_difficulty:{ name:'战斗难度', init:'2', frequent:true, item:{ '1':'简单', '2':'普通', '3':'困难', } }, 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_treasure:{ name:'战场机关', init:'0.2', frequent:true, item:{ '0':'关闭', '0.1':'较少出现', '0.2':'偶尔出现', '0.333':'时常出现', '0.5':'频繁出现', } }, chess_obstacle:{ name:'随机路障', init:'0.333', item:{ '0':'关闭', '0.2':'少量', '0.333':'中量', '0.5':'大量', }, frequent:true, }, attack_move:{ name:'击退效果', init:true, // frequent:true, }, show_distance:{ name:'显示距离', init:true, // frequent:true, }, // chess_ordered:{ // name:'交替行动', // init:true, // // frequent:true, // }, chess_character:{ name:'战棋武将', init:true, // frequent:true, }, chess_card:{ name:'战棋卡牌', init: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_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, }, ban_strong:{ name:'屏蔽强将', init:false, restart:true, }, chessscroll_speed:{ name:'边缘滚动速度', init:'20', item:{ '0':'不滚动', '10':'10格/秒', '20':'20格/秒', '30':'30格/秒', } }, } }, stone:{ name:'炉石', config:{ update:function(config,map){ if(config.stone_mode=='deck'){ // map.deck_length.show(); // map.deck_repeat.show(); map.random_length.hide(); } else{ // map.deck_length.hide(); // map.deck_repeat.hide(); map.random_length.show(); } }, stone_mode:{ name:'游戏模式', init:'deck', item:{ deck:'构筑', random:'随机' }, restart:true, frequent:true, }, // deck_length:{ // name:'卡组长度', // init:'30', // item:{ // '30':'30张', // '50':'50张', // '80':'80张', // }, // frequent:true, // }, // deck_repeat:{ // name:'重复卡牌', // init:'2', // item:{ // '2':'2张', // '3':'3张', // '5':'5张', // '80':'无限', // }, // frequent:true, // }, random_length:{ name:'随从牌数量', init:'1/80', item:{ '1/120':'少', '1/80':'中', '1/50':'多', }, frequent:true, }, 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(); } }, }, double_character:{ name:'双将模式', init:false, frequent:true, restart:function(){ return _status.event.parent.name!='chooseCharacter'||_status.event.name!='chooseButton'; } }, 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, }, ban_strong:{ name:'屏蔽强将', init:false, restart:true, }, } } }, status:{ running:false, canvas:false, time:0, delayed:0, frameId:0, videoId:0, }, help:{ '游戏选项':'