'use strict'; mode.story={ forcehide:['wuxie','cardPileButton','pause','auto','replay'], start:function(){ 'step 0' game.loadChess(); 'step 1' game.loadScene(); }, story:{ version:1, career:{ zhanshi:{ name:'战士', intro:'擅长各种近战武器,有较高的输出和防御能力,技能学习门槛低,容易速成' }, cike:{ name:'刺客', intro:'远程攻击职业,能较好地配合其他角色打击特定目标,克制低防御力的职业,速度和生存能力较高' }, fashi:{ name:'法师', intro:'法术攻击型职业,可对各位置的敌人造成大量伤害,但生存能力低,需要队友保护', }, jisi:{ name:'祭司', intro:'擅长召唤术,可同时召唤出多个随从,具有很强的干扰能力,但比较惧怕范围攻击', }, fangshi:{ name:'方士', intro:'法术辅助型职业,可有效提升队友的输出和生存能力', }, moushi:{ name:'谋士', intro:'擅长锦囊和阵法,技能效果强大但同时有较高的风险', }, yisheng:{ name:'医生', intro:'治疗和辅助队友,敌方集火的首选目标', }, yanshi:{ name:'偃师', intro:'全能型职业,可通过制造不同的偃甲达到各种效果,但制造和维护偃甲需要较多的资金支持', } }, character:{ zuoci:{ name:'左慈' }, yuji:{ name:'于吉' }, nanhua:{ name:'南华' } }, scene:{ connect:{ hulaoguan:{ name:'虎牢关', to:['middle','east'] }, huanghedukou:{ name:'黄河渡口', to:['east','north'] }, yanmenguan:{ name:'雁门关', to:['north','northwest'] }, changjiangdukou:{ name:'长江渡口', to:['east','southeast'] }, jiamengguan:{ name:'葭萌关', to:['south','southeast'] } }, middle:{ taoyuanxiang:{ name:'桃源乡', content:{ default:[ '东汉末年,桃源乡仙人南华预见了三国时代将会是纷扰的乱世,便施展“九龙逆天大法”扭转时序,打算将曹操、刘备、孙权三位天命王者的出现时间错开', '然而此举却造成上古魔神“刑天”逃脱,并与当世残虐的当权者董卓合而为一,顿时时空陷入前所未有的混乱中。魏蜀吴三国战将能臣散逸各地,便连曹操、刘备、孙权三人也失踪于乱序的时空里', '由于仙人不能将三国的前因后果透露给当世的凡人,最后桃源乡三仙人只好决定召唤一名熟悉三国历史的未来少年来找回三国名将,对抗董卓,让三国历史重新归序', '(桃源乡∙南华小屋内)', ['nanhua','事情的经过大致就是这样'], ['nanhua','这都是我的错,但我们仙人实在无法干涉凡世之事,重建三国秩序的重任只能交给你了'], ['player','可是,我什么都没有,拿什么来对抗董卓?'], ['nanhua','这三卷太平要术是我的心血之作,学好了能够呼风唤雨,对你一定会有帮助'], '得到【太平经】', ['nanhua','左慈和于吉都有事情交代,你去找他们吧'], //左慈:给东西 //于吉:选职业,开启技能 function(){ _status.lockScene=false; var node=ui.window.querySelector('.storyscene'); game.data.scene.enabled.push('yingxiongting'); game.saveData(); var scene=node.childNodes[1]; scene.namenode.innerHTML='英雄亭'; scene.classList.remove('unselectable') ui.click.scene.call(scene); } ] } }, yingxiongting:{ name:'英雄亭', content:{ default:[ '(英雄亭)', function(){ console.log(1); _status.lockScene=false; var node=ui.window.querySelector('.storyscene'); ui.click.scene2(node.childNodes[1],true); } ] } }, nanyang:{ name:'南阳', }, xinye:{ name:'新野' }, xujiacun:{ name:'许家村', }, }, east:{ luoyang:{ name:'洛阳' }, juyang:{ name:'雎阳' }, xiapi:{ name:'下邳' }, beihai:{ name:'北海' }, tianshizhong:{ name:'天师冢' } }, north:{ yecheng:{ name:'邺城' }, julu:{ name:'钜鹿' }, shangdang:{ name:'上党' }, beiping:{ name:'北平' }, xieliang:{ name:'解良' }, }, northwest:{ wuwei:{ name:'武威' }, xiqiang:{ name:'西羌' }, xiongnu:{ name:'匈奴' }, huashan:{ name:'华山' }, changan:{ name:'长安' }, }, south:{ chengdu:{ name:'成都' }, nanman:{ name:'南蛮' }, wulin:{ name:'武陵' }, shanyue:{ name:'山越' }, changsha:{ name:'长沙' }, }, southeast:{ xiangyang:{ name:'襄阳' }, jianye:{ name:'建业' }, chaisang:{ name:'柴桑' }, jiangxia:{ name:'江夏' }, zhongshan:{ name:'钟山' }, } } }, game:{ minskin:true, singleHandcard:true, chess:true, saveData:function(){ game.save(get.config('save'),game.data); }, addChessPlayer:function(name,enemy,num,pos){ if(typeof num!='number'){ num=4; } var player=ui.create.player(); player.animate('start'); if(enemy){ player.side=!game.me.side; player.setIdentity('enemy'); player.identity='enemy'; _status.enemies.push(player); } else{ player.side=game.me.side; player.setIdentity('friend'); player.identity='friend'; _status.friends.push(player); } game.players.push(player); game.phasequeue.push(player); ui.chess.appendChild(player); if(pos&&!lib.posmap[pos]){ player.dataset.position=pos; } else{ var grids=[]; var gridnum=ui.chessheight*ui.chesswidth; for(var i=0;i.player'+pos+ '{left:'+(14+i*148)+'px;top:'+(14+j*148)+'px}',0); ui.chesssheet.sheet.insertRule('#arena.chess #chess>.card'+pos+ '{left:'+(22+i*148)+'px;top:'+(22+j*148)+'px}',0); ui.chesssheet.sheet.insertRule('#arena.chess #chess>.popup'+pos+ '{left:'+(19+i*148)+'px;top:'+(142+j*148)+'px}',0); } } var grids=[]; var gridnum=ui.chessheight*ui.chesswidth; for(var i=0;i=list.length/2,0); } game.modeSwapPlayer(game.players[3]); game.delay(0.5); 'step 1' event.trigger('gameStart'); game.gameDraw(game.players[0]); game.phaseLoop(game.players[0]); } }, loadChess:function(){ var next=game.createEvent('loadChess'); next.content=function(){ 'step 0' game.loadMode('chess'); 'step 1' for(var i in result.element){ for(var j in result.element[i]){ if(j!='dieAfter'){ lib.element[i][j]=result.element[i][j]; } } } for(var i in result.ui){ for(var j in result.ui[i]){ ui[i][j]=result.ui[i][j]; } } ai.get.attitude=result.ai.get.attitude; game.modeSwapPlayer=result.game.modeSwapPlayer; game.isChessNeighbour=result.game.isChessNeighbour; get.chessDistance=result.get.chessDistance; lib.skill._chessmove=result.skill._chessmove; lib.skill._chessswap=result.skill._chessswap; lib.skill._chesscenter=result.skill._chesscenter; lib.skill._phasequeue=result.skill._phasequeue; 'step 2' for(var i in lib.skill){ if(lib.skill[i].changeSeat){ lib.skill[i]={}; if(lib.translate[i+'_info']){ lib.translate[i+'_info']='此模式下不可用'; } } } lib.init.css(lib.assetURL+'layout/mode','chess'); ui.create.cards(); game.finishCards(); ui.arena.classList.add('chess'); ui.chessContainer=ui.create.div('#chess-container',ui.arena); lib.setScroll(ui.chessContainer); ui.chess=ui.create.div('#chess',ui.chessContainer); ui.canvas2=document.createElement('canvas'); ui.canvas2.id='canvas2'; ui.chess.appendChild(ui.canvas2); ui.ctx2=ui.canvas2.getContext('2d'); game.me=ui.create.player(); if(!lib.config.touchscreen){ ui.chess.addEventListener('mousedown',function(e){ if(Array.isArray(e.path)){ for(var i=0;inode.offsetHeight){ node.scrollTop=node.scrollHeight-node.offsetHeight; } } else{ write(); } } else{ if(typeof onfinish=='function'){ onfinish(); } } } write(); _status.lockScene=write; } }, element:{ player:{ dieAfter:function(){ var player=this; if(_status.friends){ _status.friends.remove(this); } if(_status.enemies){ _status.enemies.remove(this); } if(ui.friendDied&&player.side==game.me.side){ ui.friendDied.innerHTML='阵亡: '+get.cnNumber(++_status.friendDied,true); } if(ui.enemyDied&&player.side!=game.me.side){ ui.enemyDied.innerHTML='杀敌: '+get.cnNumber(++_status.enemyDied,true); } delete lib.posmap[player.dataset.position]; setTimeout(function(){ player.delete(); },500); if(player.instance){ player.instance.remove(); } if(_status.friends.length==0){ game.over(false); } else if(_status.enemies.length==0){ game.over(true); } } } }, skill:{ _attackmove:{ trigger:{player:'damageEnd'}, forced:true, popup:false, priority:50, filter:function(event,player){ if(!event.source) return false; if(get.distance(event.source,player,'pure')>2) return false; var xy1=event.source.getXY(); var xy2=player.getXY(); var dx=xy2[0]-xy1[0]; var dy=xy2[1]-xy1[1]; if(dx==0&&Math.abs(dy)==2){ dy/=2; } if(dy==0&&Math.abs(dx)==2){ dx/=2; } return player.movable(dx,dy); }, content:function(){ var xy1=trigger.source.getXY(); var xy2=player.getXY(); var dx=xy2[0]-xy1[0]; var dy=xy2[1]-xy1[1]; if(dx==0&&Math.abs(dy)==2){ dy/=2; } if(dy==0&&Math.abs(dx)==2){ dx/=2; } if(player.movable(dx,dy)){ player.move(dx,dy); } } }, }, posmap:{}, translate:{ friend:'友', friend2:'友', enemy:'敌', neutral:'中', _chessmove:'移动' } };