From 8282638a3cfc5bb35f2e79115ce99572dd604211 Mon Sep 17 00:00:00 2001 From: libccy Date: Wed, 30 Mar 2016 15:31:51 +0800 Subject: [PATCH] x --- audio/skill/reyingzi_sunce1.mp3 | Bin 229 -> 66519 bytes character/hearth.js | 2 + character/refresh.js | 2 +- character/shenhua.js | 1 + character/standard.js | 88 +-- character/yijiang.js | 27 +- game/config.js | 1 + game/game.js | 1145 +++++++++++++++---------------- game/server.js | 30 - game/update.js | 6 +- layout/default/layout.css | 71 +- layout/default/menu.css | 3 +- layout/mode/stone.css | 69 +- mode/identity.js | 18 +- 14 files changed, 721 insertions(+), 742 deletions(-) mode change 100644 => 100755 audio/skill/reyingzi_sunce1.mp3 delete mode 100644 game/server.js diff --git a/audio/skill/reyingzi_sunce1.mp3 b/audio/skill/reyingzi_sunce1.mp3 old mode 100644 new mode 100755 index f418deda7737c233c804abd1aa98b401a52a635d..c6f10e3c31ba34bab283fe4bda346b079cbf66ab GIT binary patch literal 66519 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 eThJbM?O0; + return event.player!=player; }, prompt:function(event,player){ return '是否对'+get.translation(event.player)+'发动【献图】?' @@ -2893,17 +2893,28 @@ character.yijiang={ }, qiangzhi:{ audio:2, - enable:'phaseUse', - usable:1, + trigger:{player:'phaseUseBegin'}, + direct:true, filterTarget:function(card,player,target){ return target!=player&&target.num('h')>0; }, content:function(){ - var card=target.get('h').randomGet(); - player.showCards(card); - player.storage.qiangzhi=get.type(card,'trick'); - game.addVideo('storage',player,['qiangzhi',player.storage.qiangzhi]); - player.markSkill('qiangzhi'); + 'step 0' + player.chooseTarget('是否发动【强识】?',function(card,player,target){ + return target!=player&&target.num('h')>0; + }).ai=function(){ + return Math.random(); + } + 'step 1' + if(result.bool){ + var target=result.targets[0]; + player.logSkill('qiangzhi',target); + var card=target.get('h').randomGet(); + player.showCards(card); + player.storage.qiangzhi=get.type(card,'trick'); + game.addVideo('storage',player,['qiangzhi',player.storage.qiangzhi]); + player.markSkill('qiangzhi'); + } }, intro:{ content:function(type){ diff --git a/game/config.js b/game/config.js index eafc853a1..fa5a67978 100755 --- a/game/config.js +++ b/game/config.js @@ -228,6 +228,7 @@ window.config={ show_volumn:true, show_cardpile:true, only_fullskin:true, + show_connect:true, show_wuxie:false, show_wuxie_self:true, show_stat:true, diff --git a/game/game.js b/game/game.js index eb7cea84e..0c6dd1f8d 100755 --- a/game/game.js +++ b/game/game.js @@ -47,6 +47,7 @@ }; var lib={ configprefix:'noname_0.9_', + versionOL:1, updateURL:localStorage.getItem('noname_download_source')||'http://isha.applinzi.com/', assetURL:'', changeLog:[], @@ -134,6 +135,8 @@ name:'控制台命令', init:false, onclick:function(bool){ + game.saveConfig('cheat',bool); + if(_status.connectMode) return; if(lib.config.cheat&&bool==false){ lib.cheat=window.cheat; delete window.cheat; @@ -148,7 +151,6 @@ window.cheat=lib.cheat; window.cheat.i(); } - game.saveConfig('cheat',bool); }, unfrequent:true, }, @@ -370,6 +372,17 @@ init:false, unfrequent:true }, + connect_nickname:{ + name:'联机昵称', + clear:true, + unfrequent:true + }, + connect_avatar:{ + name:'联机头像', + init:'caocao', + item:{}, + unfrequent:true + }, update:function(config,map){ if(config.touchscreen){ map.mousewheel.hide(); @@ -549,45 +562,16 @@ 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=''; - } + if(lib.config.image_background_blur){ + ui.background.style.filter='blur(8px)'; + ui.background.style.webkitFilter='blur(8px)'; + ui.background.style.transform='scale(1.05)'; + } + else{ + 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'); @@ -619,23 +603,21 @@ '', 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); + image_background_blur:{ + name:'背景模糊', + init:false, + onclick:function(bool){ + game.saveConfig('image_background_blur',bool); + if(lib.config.image_background_blur){ + ui.background.style.filter='blur(8px)'; + ui.background.style.webkitFilter='blur(8px)'; + ui.background.style.transform='scale(1.05)'; + } + else{ + ui.background.style.filter=''; + ui.background.style.webkitFilter=''; + ui.background.style.transform=''; + } }, }, card_style:{ @@ -840,6 +822,19 @@ game.saveConfig('dialog_transform',[0,0]); } }, + remember_round_button:{ + name:'记住按钮位置', + init:false, + unfrequent:true, + }, + reset_round_button:{ + name:'重置按钮位置', + clear:true, + unfrequent:true, + onclick:function(){ + ui.click.resetround(); + } + }, character_dialog_tool:{ name:'自由选将显示', init:'最近', @@ -851,6 +846,17 @@ }, unfrequent:true, }, + recent_character_number:{ + name:'最近使用武将', + init:'12', + item:{ + '6':'6', + '12':'12', + '20':'24', + '30':'36', + }, + unfrequent:true + }, show_favourite:{ name:'显示添加收藏', init:true, @@ -950,6 +956,20 @@ } } }, + show_connect:{ + name:'显示联机按钮', + init:true, + unfrequent:true, + onclick:function(bool){ + game.saveConfig('show_connect',bool); + if(lib.config.show_connect){ + ui.connectconfig.style.display=''; + } + else{ + ui.connectconfig.style.display='none'; + } + } + }, show_cardpile:{ name:'显示牌堆按钮', init:true, @@ -1105,10 +1125,10 @@ // }, update:function(config,map){ if(lib.config.image_background=='default'){ - map.image_background_filter.hide(); + map.image_background_blur.hide(); } else{ - map.image_background_filter.show(); + map.image_background_blur.show(); } if(lib.config.image_background=='custom'&&lib.db){ map.import_background.show(); @@ -1124,6 +1144,14 @@ map.hide_card_prompt_basic.hide(); map.hide_card_prompt_equip.hide(); } + if(lib.config.layout=='phone'){ + map.remember_round_button.show(); + map.reset_round_button.show(); + } + else{ + map.remember_round_button.hide(); + map.reset_round_button.hide(); + } // if(config.theme=='woodden'&&config.image_background=='default'){ // map.background_color_wood.show(); // } @@ -1637,8 +1665,26 @@ mode:{ identity:{ name:'身份', + connect:true, config:{ update:function(config,map){ + if(ui.connectButton.classList.contains('glow')){ + for(var i in map){ + if(map[i]._link.config.connect){ + map[i].style.display=''; + } + else{ + map[i].style.display='none'; + } + } + map.choose_timeout.show(); + } + else{ + for(var i in map){ + map[i].style.display=''; + } + map.choose_timeout.hide(); + } if(config.identity_mode=='zhong'){ map.player_number.hide(); map.enhance_zhu.hide(); @@ -1674,7 +1720,21 @@ }, restart:true, frequent:true, + connect:true }, + choose_timeout:{ + name:'出牌时限', + init:'30', + item:{ + '10':'10秒', + '15':'15秒', + '30':'30秒', + '60':'60秒', + '90':'90秒', + }, + connect:true, + frequent:true + }, player_number:{ name:'游戏人数', init:'8', @@ -1689,18 +1749,21 @@ }, frequent:true, restart:true, + connect:true }, double_nei:{ name:'双内奸', init:false, frequent:true, restart:true, + connect:true }, double_character:{ name:'双将模式', init:false, frequent:true, restart:true, + connect:true }, double_hp:{ name:'双将体力上限', @@ -1713,6 +1776,7 @@ zonghe:'相加', }, restart:true, + connect:true }, auto_identity:{ name:'自动显示身份', @@ -1742,23 +1806,25 @@ }, auto_mark_identity:{ name:'自动标记身份', - init:false + init:true, }, ban_weak:{ name:'屏蔽弱将', init:false, restart:true, + connect:true }, ban_strong:{ name:'屏蔽强将', init:false, restart:true, + connect:true }, enhance_zhu:{ name:'加强主公', init:false, restart:true, - frequent:true, + connect:true }, free_choose:{ name:'自由选将', @@ -1812,7 +1878,7 @@ once:'一次', twice:'两次', unlimited:'无限', - } + }, }, continue_game:{ name:'显示再战', @@ -1872,7 +1938,7 @@ ai_strategy_4:'酱油', ai_strategy_5:'天使', ai_strategy_6:'仇主', - } + }, }, difficulty:{ name:'AI对人类态度', @@ -1881,7 +1947,7 @@ easy:'友好', normal:'一般', hard:'仇视', - } + }, }, choice_zhu:{ name:'主公候选武将数', @@ -1894,7 +1960,7 @@ '6':'六', '8':'八', '10':'十', - } + }, }, choice_zhong:{ name:'忠臣候选武将数', @@ -1907,7 +1973,7 @@ '6':'六', '8':'八', '10':'十', - } + }, }, choice_nei:{ name:'内奸候选武将数', @@ -1920,7 +1986,7 @@ '6':'六', '8':'八', '10':'十', - } + }, }, choice_fan:{ name:'反贼候选武将数', @@ -1933,7 +1999,7 @@ '6':'六', '8':'八', '10':'十', - } + }, }, } }, @@ -2569,7 +2635,7 @@ }, battle_number:{ name:'出场人数', - init:'3', + init:'1', frequent:true, item:{ '1':'一人', @@ -2858,6 +2924,7 @@ } lib.config={}; + lib.configOL={}; var config2; var config=window.config; for(var i in config){ @@ -3160,7 +3227,7 @@ debug:function(){ require('remote').getCurrentWindow().toggleDevTools(); } - } + }; game.download=function(url,folder,onsuccess,onerror){ url=lib.updateURL+url; var dir=folder.split('/'); @@ -3298,43 +3365,11 @@ ui.background.style.backgroundSize="cover"; if(lib.config.image_background&&lib.config.image_background!='default'&&lib.config.image_background!='custom'){ ui.background.setBackgroundImage('image/background/'+lib.config.image_background+'.jpg'); - 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.webkitFilter=''; - } + if(lib.config.image_background_blur){ + ui.background.style.filter='blur(8px)'; + ui.background.style.webkitFilter='blur(8px)'; + ui.background.style.transform='scale(1.05)'; + } } document.body.insertBefore(ui.background,document.body.firstChild); @@ -3501,6 +3536,9 @@ } } } + for(var i in lib.character){ + lib.configMenu.general.config.connect_avatar.item[i]=lib.translate[i]; + } if(lib.cardPack.mode_derivation){ for(var i=0;i=lib.configOL.number){ + this.send('denied','number'); + } + else{ + if(config){ + this.avatar=config.avatar; + this.nickname=config.nickname; + } + this.send('init',this.id,lib.configOL); + } + } + }, + client:{ + init:function(id,config){ + console.log(id,config); + if(_status.connectCallback){ + _status.connectCallback(true); + delete _status.connectCallback; + } + game.online=true; + game.onlineID=id; + lib.configOL=config; + }, + denied:function(reason){ + console.log(reason); + } + } + }, group:['wei','shu','wu','qun'], nature:['fire','thunder','poison'], linked:['fire','thunder'], }; var game={ + online:false, + onlineID:null, + waitForStart:function(){ + var next=game.createEvent('waitForStart',false); + next.content=function(){ + console.log(1); + game.pause(); + } + }, + countDown:function(time,onEnd){ + time=parseInt(time); + if(!time) return; + if(time<=0) return; + var current=time; + ui.timer.set(current,1); + _status.countDown=setInterval(function(){ + if(current){ + ui.timer.set(--current,current/time); + } + else{ + clearInterval(_status.countDown); + delete _status.countDown; + if(onEnd) onEnd(); + } + },1000); + }, + countChoose:function(clear){ + if(_status.imchoosing){ + return; + } + _status.imchoosing=true; + if(_status.connectMode&&!_status.countDown){ + ui.timer.show(); + game.countDown(parseInt(get.config('choose_timeout')),function(){ + ui.click.auto(); + ui.timer.hide(); + }); + } + }, + stopCountChoose:function(){ + if(_status.countDown){ + clearInterval(_status.countDown); + delete _status.countDown; + ui.timer.hide(); + } + }, + connect:function(ip,port,callback){ + if(game.online) return; + try{ + game.ws=new WebSocket('ws://'+ip+':'+(port||8080)+''); + } + catch(e){ + alert('错误:无效联机地址'); + if(callback){ + callback(false); + } + return; + } + if(typeof game.onlineID==='number'){ + game.ws.onopen=lib.element.ws.onreconnect; + } + else{ + game.ws.onopen=lib.element.ws.onopen; + } + game.ws.onmessage=lib.element.ws.onmessage; + game.ws.onerror=lib.element.ws.onerror; + game.ws.onclose=lib.element.ws.onclose; + _status.connectCallback=callback; + }, + send:function(){ + if(game.ws){ + game.ws.send(JSON.stringify(Array.from(arguments))); + } + }, + createServer:function(){ + lib.node.clients=[]; + lib.configOL={}; + var WebSocketServer=require('ws').Server; + var wss=new WebSocketServer({port:8080}); + wss.on('connection',function(ws){ + var client={ + ws:ws, + id:(new Date()).getTime(), + closed:false + }; + lib.node.clients.push(client); + for(var i in lib.element.client){ + client[i]=lib.element.client[i]; + } + ws.on('message',function(messagestr){ + var message; + try{ + message=JSON.parse(messagestr); + if(!Array.isArray(message)|| + typeof lib.message.server[message[0]]!=='function'){ + throw('err'); + } + } + catch(e){ + console.log('invalid message: '+messagestr); + return; + } + lib.message.server[message.shift()].apply(client,message); + }); + ws.on('close',function(){ + client.close(); + }); + }); + }, playAudio:function(){ if(_status.video&&arguments[1]!='video') return; var str=''; @@ -11397,7 +11676,7 @@ }, phaseJudge:function(player,card){ if(player&&card){ - player.$phaseJudge(get.infoCard(card)); + // player.$phaseJudge(get.infoCard(card)); } else{ console.log(player); @@ -12332,8 +12611,8 @@ lib.config.recentCharacter.unshift(arguments[i]); } } - if(lib.config.recentCharacter.length>20){ - lib.config.recentCharacter.splice(0,20); + if(lib.config.recentCharacter.length>parseInt(lib.config.recent_character_number)){ + lib.config.recentCharacter.splice(0,12); } game.saveConfig('recentCharacter',lib.config.recentCharacter); }, @@ -12889,16 +13168,21 @@ _status.paused=true; }, pause2:function(){ + if(_status.connectMode) return; _status.paused2=true; }, resume:function(){ if(_status.paused){ + if(!_status.noclearcountdown){ + game.stopCountChoose(); + } _status.paused=false; delete _status.waitingForTransition; game.loop(); } }, resume2:function(){ + if(_status.connectMode) return; if(_status.paused2){ _status.paused2=false; game.loop(); @@ -13205,7 +13489,7 @@ } else{ ui.arena.classList.add('selecting'); - _status.imchoosing=true; + game.countChoose(); if(!_status.noconfirm&&!_status.event.noconfirm){ if(!_status.mousedown||_status.mouseleft){ var str=''; @@ -15069,9 +15353,10 @@ ui.roundmenu.style.transition=''; },500); game.saveConfig('roundmenu_transform',[0,0]); - e.stopPropagation(); + if(e) e.stopPropagation(); return false; }; + ui.click.resetround=resetround; if(lib.config.touchscreen){ ui.roundmenu.addEventListener('touchstart',function(e){ _status.draggingroundmenu=true; @@ -15092,6 +15377,9 @@ else{ ui.roundmenu.oncontextmenu=resetround; } + if(!lib.config.remember_round_button){ + game.saveConfig('roundmenu_transform'); + } if(lib.config.roundmenu_transform){ var translate=lib.config.roundmenu_transform; ui.roundmenu._dragtransform=translate; @@ -15170,7 +15458,7 @@ if(lib.skill[i].frequent&&lib.translate[i]){ lib.translate[i+'_forbid_config']=lib.translate[i]; nodex=ui.create.switcher(i+'_forbid', - !lib.config.autoskilllist.contains(i),ui.click.sidebar.autoskill); + !lib.config.autoskilllist.contains(i),ui.click.autoskill); nodex.link=i; autoskill[i]=nodex; } @@ -15179,6 +15467,7 @@ ui.system1=ui.create.div('#system1',ui.system); ui.system2=ui.create.div('#system2',ui.system); + ui.connectconfig=ui.create.system('联机',ui.click.connectButton,true); ui.replay=ui.create.system('重来',game.reload,true); ui.config2=ui.create.system('选项',ui.click.config); ui.pause=ui.create.system('暂停',ui.click.pause); @@ -15188,12 +15477,14 @@ if(!lib.config.show_pause){ ui.pause.style.display='none'; } + if(!lib.config.show_connect){ + ui.connectconfig.style.display='none'; + } ui.cardPileButton=ui.create.system('牌堆',null,true); lib.setPopped(ui.cardPileButton,ui.click.cardPileButton,220); ui.wuxie=ui.create.system('不询问无懈',ui.click.wuxie,true); if(!lib.config.touchscreen){ lib.setPopped(ui.config2,ui.click.pauseconfig,170); - // lib.setPopped(ui.wuxie,ui.click.wuxieconfig,170); } ui.auto=ui.create.system('托管',ui.click.auto); ui.volumn=ui.create.system('♫'); @@ -15244,9 +15535,64 @@ ui.controls=[]; ui.style={}; + + ui.timer=ui.create.div('.skillbar.shadowed.playerbg.hidden'); + ui.timer.id='timer'; + ui.create.div('.skillbarshadow',ui.timer); + ui.create.div('.skillbarfill',ui.timer); + ui.timer.fillnode=ui.create.div(ui.timer.lastChild); + ui.timer.popnode=ui.create.div('.skillbartext',ui.timer); + ui.timer.popnode.style.opacity=1; + ui.timer.position=4; + ui.timer.style.zIndex=5; + ui.timer.set=function(text,percentage){ + if(typeof text=='string'||typeof text=='number'){ + ui.timer.popnode.innerHTML=text; + } + ui.timer.fillnode.style.top=((1-percentage)*100)+'%'; + } + var setTimerPosition=function(e){ + this.position++; + if(this.position>4){ + this.position=1; + } + var left1='180px'; + var left2='calc(100% - 245px)'; + var top1='210px'; + var top2='calc(100% - 245px)'; + if(lib.config.layout=='default'){ + left1='265px'; + top1='160px'; + left2='calc(100% - 330px)'; + top2='calc(100% - 235px)'; + } + if(this.position==1||this.position==2){ + this.style.top=top2; + } + else{ + this.style.top=top1; + } + if(this.position==1||this.position==4){ + this.style.left=left2; + } + else{ + this.style.left=left1; + } + } + ui.timer.listen(setTimerPosition); + + if(_status.connectMode){ + ui.playerids.remove(); + ui.connectconfig.remove(); + ui.pause.innerHTML='历史'; + setTimerPosition.call(ui.timer); + ui.arena.appendChild(ui.timer); + } + (function(){ var menu,menuContainer; var startButton; + var connectButton; var popupContainer; var closeMenu=function(){ popupContainer.classList.add('hidden'); @@ -15282,12 +15628,22 @@ if(this._link.menu){ var pos1=this.lastChild.getBoundingClientRect(); var pos2=ui.window.getBoundingClientRect(); - openMenu(this._link.menu,{ - x:pos1.left+pos1.width+5-pos2.left, - y:pos1.top-pos2.top - },function(){ - node.classList.remove('on'); - }); + if(this._link.menu.childElementCount>10){ + openMenu(this._link.menu,{ + x:pos1.left+pos1.width+5-pos2.left, + y:40 + },function(){ + node.classList.remove('on'); + }); + } + else{ + openMenu(this._link.menu,{ + x:pos1.left+pos1.width+5-pos2.left, + y:pos1.top-pos2.top + },function(){ + node.classList.remove('on'); + }); + } } }; var clickContainer=function(){ @@ -15452,12 +15808,32 @@ var start=menux.pages[0]; var rightPane=start.lastChild; + + connectButton=ui.create.div('.menubutton.round.highlight','联',start,function(){ + this.classList.toggle('glow'); + var active=this.parentNode.querySelector('.active'); + if(active&&active.update){ + active.update(); + } + }); + connectButton.style.left='275px'; + ui.connectButton=connectButton; + if(lib.config.connectMode){ + connectButton.classList.add('glow'); + } + startButton=ui.create.div('.menubutton.round.highlight','启',start,function(){ if(this.animating||this.classList.contains('dim')){ return; } var active=this.parentNode.querySelector('.active'); if(active){ + if(connectButton.classList.contains('glow')&&lib.mode[active.mode].connect){ + game.saveConfig('connectMode',true); + } + else{ + game.saveConfig('connectMode'); + } game.saveConfig('mode',active.mode); localStorage.setItem(lib.configprefix+'directstart',true); game.reload(); @@ -15474,6 +15850,12 @@ active=this; this.classList.add('active'); rightPane.appendChild(this.link); + if(lib.mode[this.mode].connect){ + connectButton.style.display=''; + } + else{ + connectButton.style.display='none'; + } }; var createModeConfig=function(mode,position){ @@ -15571,6 +15953,9 @@ } if(info.config.update){ info.config.update(config,map); + node.update=function(){ + info.config.update(config,map); + } } } return node; @@ -15587,6 +15972,9 @@ active.classList.add('active'); } rightPane.appendChild(active.link); + if(!lib.mode[active.mode].connect){ + connectButton.style.display='none'; + } }()); (function(){ @@ -17490,12 +17878,12 @@ checkCheat(); }; menuUpdates.push(function(){ - if(_status.video){ + if(_status.video||_status.connectMode){ node.classList.add('off'); node.classList.remove('active'); - node.remove(); page.remove(); - cheatButton.style.display='none'; + cheatButton.remove(); + if(_status.video) node.remove(); return; } var list=[]; @@ -17542,7 +17930,7 @@ game.swapPlayer(this.link); }; menuUpdates.push(function(){ - if(lib.config.mode!='identity'&&lib.config.mode!='guozhan'){ + if(_status.connectMode||(lib.config.mode!='identity'&&lib.config.mode!='guozhan')){ node.classList.add('off'); var active=start.firstChild.querySelector('.active'); if(active==node){ @@ -17553,6 +17941,7 @@ rightPane.appendChild(active.link); cheatButton.style.display=''; } + return; } var list=[]; for(var i=0;i确定'; importVideo.lastChild.onclick=function(){ var fileToLoad = importVideo.firstChild.files[0]; - var fileReader = new FileReader(); fileReader.onload = function(fileLoadedEvent) { @@ -17892,7 +18283,12 @@ var active=start.firstChild.querySelector('.active'); if(!active){ - active=start.firstChild.firstChild; + if(_status.connectMode){ + active=start.firstChild.lastChild; + } + else{ + active=start.firstChild.firstChild; + } active.classList.add('active'); } rightPane.appendChild(active.link); @@ -17933,6 +18329,10 @@ var button1,button2; game.checkForUpdate=function(forcecheck){ + if(lib.config.debug){ + alert('不能在开发模式下更新'); + return; + } if(button1.disabled){ return; } @@ -18050,6 +18450,10 @@ } }; var checkForAssetUpdate=function(){ + if(lib.config.debug){ + alert('不能在开发模式下更新'); + return; + } if(button2.disabled){ return; } @@ -18243,7 +18647,12 @@ } var node2=ui.create.div('#paused2',node); - node2.innerHTML='已暂停'; + if(_status.connectMode){ + node2.innerHTML=''; + } + else{ + node2.innerHTML='已暂停'; + } // node2.listen(function(){ // _status.clicked=true; @@ -18452,6 +18861,7 @@ if(num===0){ return; } + if(num==undefined) num=lib.configOL.number; if(num==undefined) num=lib.config.mode_config[lib.config.mode].player_number; if(typeof num=='string'){ num=parseInt(num); @@ -18560,6 +18970,9 @@ }, }, click:{ + connectButton:function(){ + game.connect('localhost'); + }, favouriteCharacter:function(e){ if(this.innerHTML=='添加收藏'){ this.innerHTML='移除收藏'; @@ -18701,15 +19114,6 @@ uiintro.add(ui.sidebar); return uiintro; }, - wuxieconfig:function(){ - if(!lib.config.auto_popped) return; - // if(!ui.config.childNodes.length) return; - var uiintro=ui.create.dialog('hidden'); - var node=ui.create.switcher('wuxie_self',lib.config.wuxie_self,ui.click.sidebar.global); - uiintro.add(node); - - return uiintro; - }, pauseconfig:function(){ if(!lib.config.auto_popped_config) return; // if(!ui.config.childNodes.length) return; @@ -20521,454 +20925,17 @@ e.stopPropagation(); } }, - sidebar:{ - local:function(item){ - game.saveConfig(this.name,item,true); - }, - local2:function(item){ - game.saveConfig(this.name,item,true); - ui.sidebarrestart.classList.add('thundertext'); - }, - wuxie_self:function(item){ - ui.wuxie_self.lastChild.click(); - }, - global:function(item){ - game.saveConfig(this.name,item); - }, - global2:function(item){ - game.saveConfig(this.name,item); - ui.sidebarrestart.classList.add('thundertext'); - }, - background_music:function(item){ - game.saveConfig(this.name,item); - game.playBackgroundMusic(); - }, - cheat: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); - }, - free_choose:function(bool){ - game.saveConfig('free_choose',bool,true); - 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:function(bool){ - game.saveConfig('change_identity',bool,true); - 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(); - }, - battle_number:function(num){ - game.saveConfig('battle_number',num,true); - if(!_status.event.parent.showConfig&&!_status.event.showConfig) return; - if(_status.event.parent.changeDialog){ - _status.event.parent.changeDialog(); - } - }, - change_choice:function(bool){ - game.saveConfig('change_choice',bool,true); - 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; - } - }, - player_number:function(num){ - game.saveConfig('player_number',num,true); - game.reload(); - }, - auto_identity:function(item){ - game.saveConfig('auto_identity',item,true); - var num; - switch(item){ - case 'one':num=1;break; - case 'two':num=2;break; - case 'three':num=3;break; - case 'always':num=-1;break; - default:num=0;break; - } - if(num&!_status.identityShown&&game.phaseNumber>game.players.length*num&&game.showIdentity){ - _status.identityShown=true; - game.showIdentity(false); - } - }, - swap:function(bool){ - game.saveConfig('swap',bool,true); - 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:function(bool){ - game.saveConfig('revive',bool,true); - 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; - } - }, - hover_all:function(bool){ - game.saveConfig('hover_all',bool); - if(!lib.config.hover_all) ui.hoverhandcardconfig.classList.add('disabled'); - else ui.hoverhandcardconfig.classList.remove('disabled'); - ui.sidebarrestart.classList.add('thundertext'); - }, - theme:function(theme){ - game.saveConfig('theme',theme); - ui.arena.hide(); - setTimeout(function(){ - var theme=ui.css.theme; - ui.css.theme=lib.init.css(lib.assetURL+'theme/'+lib.config.theme,'style'); - theme.remove(); - setTimeout(function(){ui.arena.show();},100); - },500); - }, - layout:function(layout){ - game.saveConfig('layout',layout); - if(lib.config.mode!='chess'){ - ui.arena.hide(); - setTimeout(function(){ - var layout=ui.css.layout; - ui.css.layout=lib.init.css(lib.assetURL+'layout/'+lib.config.layout,'layout',layout); - - setTimeout(function(){layout.remove();ui.arena.show();},100); - },500); - } - }, - image_background: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.setBackgroundImage("image/background/"+lib.config.image_background+".jpg"); - } - ui.background.style.backgroundSize='cover'; - }, - image_background_filter:function(filter){ - game.saveConfig('image_background_filter',filter); - ui.click.sidebar.image_background(lib.config.image_background); - }, - ui_zoom:function(zoom){ - game.saveConfig('ui_zoom',zoom); - switch(zoom){ - case '极小':ui.window.style.zoom=0.8;break; - case '很小':ui.window.style.zoom=0.9;break; - case '较小':ui.window.style.zoom=0.95;break; - case '较大':ui.window.style.zoom=1.05;break; - case '很大':ui.window.style.zoom=1.1;break; - default:ui.window.style.zoom=1; - } - }, - show_name:function(bool){ - game.saveConfig('show_name',bool); - var players=get.players(false,true); - if(lib.config.show_name){ - for(var i=0;i0){ - game.me.node.handcards1.appendChild(cards[i]); - } - else{ - game.me.node.handcards2.appendChild(cards[i]); - } - } - } - }, - reverse_sort:function(bool){ - game.saveConfig('reverse_sort',bool,true); - var cards1=[]; - var cards2=[]; - var i; - for(i=0;idiv:not(.playerfocus):not(#chess-container):not(.removing){ +#arena.playerfocus>div:not(#timer):not(.playerfocus):not(#chess-container):not(.removing){ opacity: 0.3 !important; } #arena.playerfocus #chess>div:not(.playerfocus):not(.removing){ @@ -1316,6 +1316,75 @@ span[data-color="unknownm"]{ left:calc(100% - 11px); } +#arena>.skillbar{ + width: 65px; + height: 65px; + border-radius: 100%; + font-size: 55px; + font-family: 'huangcao'; + top:calc(50% - 110px); + line-height: 65px; + text-align: center; +} +#arena>.skillbar.left{ + left:0; + right: auto; +} +#arena>.skillbar.right{ + right:0; + left:auto; +} +#arena>.skillbar>div{ + border-radius: 100%; + width: 55px; + height: 55px; + position: absolute; + margin: 0; + padding: 0; + left: 5px; + top: 5px; + overflow: hidden; +} +#arena>.skillbar>.skillbarshadow{ + box-shadow: 0px 0px 8px #222 inset; + z-index: 1; +} +#arena>.skillbar>.skillbarfill>div{ + box-shadow: 0px 0px 10px #555 inset,rgba(0, 0, 0, 0.05) 0 0 0 1px; + width: 200%; + height: 200%; + position: absolute; + margin: 0; + padding: 0; + background-color: rgba(63, 119, 173,1); + left: -50%; + top: 100%; +} +#arena>.skillbar.full>.skillbarfill>div{ + box-shadow: none; + background-color: red; +} +#arena>.skillbar.full{ + /*transform: scale(1.1);*/ + /*box-shadow: rgba(0, 0, 0, 0.1) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px; + -webkit-animation:skillbarglow 3s infinite;*/ +} +#arena>.skillbar>.skillbartext{ + font-family: 'xinwei'; + font-size: 35px; + width: 100%; + text-align: center; + height: 35px; + line-height: 40px; + overflow: visible; + margin: 0; + padding: 0; + left: 0; + top: 15px; + z-index: 2; + opacity: 0; +} + .firetext{ color: rgb(255,119,63); } diff --git a/layout/default/menu.css b/layout/default/menu.css index 975dcbb51..8b2495be2 100644 --- a/layout/default/menu.css +++ b/layout/default/menu.css @@ -282,7 +282,8 @@ } .popup-container>.menu{ position:absolute; - overflow:hidden; + overflow:scroll; + max-height: 400px; } .popup-container>.menu>div{ padding-top:5px; diff --git a/layout/mode/stone.css b/layout/mode/stone.css index 9cc819b22..b358dfbab 100755 --- a/layout/mode/stone.css +++ b/layout/mode/stone.css @@ -277,74 +277,7 @@ display: none !important; } -#arena>.skillbar{ - width: 65px; - height: 65px; - border-radius: 100%; - font-size: 55px; - font-family: 'huangcao'; - top:calc(50% - 110px); - line-height: 65px; - text-align: center; -} -#arena>.skillbar.left{ - left:0; - right: auto; -} -#arena>.skillbar.right{ - right:0; - left:auto; -} -#arena>.skillbar>div{ - border-radius: 100%; - width: 55px; - height: 55px; - position: absolute; - margin: 0; - padding: 0; - left: 5px; - top: 5px; - overflow: hidden; -} -#arena>.skillbar>.skillbarshadow{ - box-shadow: 0px 0px 8px #222 inset; - z-index: 1; -} -#arena>.skillbar>.skillbarfill>div{ - box-shadow: 0px 0px 10px #555 inset,rgba(0, 0, 0, 0.05) 0 0 0 1px; - width: 200%; - height: 200%; - position: absolute; - margin: 0; - padding: 0; - background-color: rgba(63, 119, 173,1); - left: -50%; - top: 100%; -} -#arena>.skillbar.full>.skillbarfill>div{ - box-shadow: none; - background-color: red; -} -#arena>.skillbar.full{ - /*transform: scale(1.1);*/ - /*box-shadow: rgba(0, 0, 0, 0.1) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px; - -webkit-animation:skillbarglow 3s infinite;*/ -} -#arena>.skillbar>.skillbartext{ - font-family: 'xinwei'; - font-size: 35px; - width: 100%; - text-align: center; - height: 35px; - line-height: 40px; - overflow: visible; - margin: 0; - padding: 0; - left: 0; - top: 15px; - z-index: 2; - opacity: 0; -} + /*#arena>.skillbar>.skillbartext:hover{ opacity: 1; }*/ diff --git a/mode/identity.js b/mode/identity.js index 2a1513a43..3d94a44a0 100755 --- a/mode/identity.js +++ b/mode/identity.js @@ -6,6 +6,17 @@ mode.identity={ ui.arena.classList.add('only_dialog'); } _status.mode=get.config('identity_mode'); + if(lib.config.connectMode){ + game.createServer(); + for(var i in lib.mode.identity.config){ + if(lib.mode.identity.config[i].connect){ + lib.configOL[i]=get.config(i); + } + } + lib.configOL.number=lib.configOL.player_number; + lib.configOL.characterPack='standard'; + lib.configOL.cardPack='standard'; + } "step 1" var playback=localStorage.getItem(lib.configprefix+'playback'); if(playback){ @@ -139,7 +150,12 @@ mode.identity={ _status.auto=true; ui.auto.classList.add('glow'); } - game.chooseCharacter(); + if(_status.connectMode){ + game.waitForStart(); + } + else{ + game.chooseCharacter(); + } "step 4" if(ui.coin){ _status.coinCoeff=get.coinCoeff([game.me.name]);