diff --git a/game/game.js b/game/game.js index 68e0a8b7b..8e597368e 100755 --- a/game/game.js +++ b/game/game.js @@ -2604,7 +2604,6 @@ item:{ combat:'对战', leader:'君主', - tafang:'塔防' }, restart:true, frequent:true, @@ -2632,20 +2631,6 @@ 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!='leader'){ map.ban_weak.show(); map.ban_strong.show(); @@ -2655,37 +2640,6 @@ map.ban_strong.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', @@ -2747,10 +2701,6 @@ }, frequent:true, }, - attack_move:{ - name:'击退效果', - init:true, - }, show_range:{ name:'显示卡牌范围', init:true, @@ -2883,6 +2833,10 @@ }, } }, + brawl:{ + name:'乱斗', + config:{} + }, story:{ name:'群侠', config:{ diff --git a/mode/chess.js b/mode/chess.js index 1d14939a9..37d9543bd 100755 --- a/mode/chess.js +++ b/mode/chess.js @@ -22,15 +22,11 @@ mode.chess={ document.head.appendChild(ui.chesssheet); var playback=localStorage.getItem(lib.configprefix+'playback'); lib.treasurelist=[]; - lib.mechlist=[]; if(get.config('chess_character')||playback||_status.mode=='leader'){ for(var i in lib.characterPack.mode_chess){ if(i.indexOf('treasure_')==0){ lib.treasurelist.push(i); } - else if(i.indexOf('chess_mech_')==0){ - lib.mechlist.push(i); - } if(!playback&&i.indexOf('leader_')==0&&_status.mode!='leader') continue; lib.character[i]=lib.characterPack.mode_chess[i]; if(!lib.character[i][4]){ @@ -40,7 +36,7 @@ mode.chess={ } if(get.config('chess_card')){ lib.card.list=lib.card.list.concat(lib.chess_cardlist); - if(parseFloat(get.config('chess_obstacle'))>0&&_status.mode!='tafang'){ + if(parseFloat(get.config('chess_obstacle'))>0){ lib.card.list=lib.card.list.concat(lib.chess_obstaclelist); delete lib.chess_obstaclelist } @@ -96,11 +92,6 @@ mode.chess={ game.chooseCharacter(); break; } - case 'tafang':{ - _status.mylist=[]; - _status.enemylist=[]; - break; - } default:{ game.chooseCharacter(); } @@ -146,24 +137,19 @@ mode.chess={ side=Math.random()<0.5; } - if(_status.mode=='tafang'){ - ui.chesswidth=parseInt(get.config('tafang_size')); - ui.chessheight=11; - } - else{ - switch(num){ - case 1:ui.chessheight=4;break; - case 2:ui.chessheight=5;break; - case 3:ui.chessheight=5;break; - case 4:ui.chessheight=6;break; - case 5:ui.chessheight=6;break; - case 6:ui.chessheight=7;break; - case 7:ui.chessheight=7;break; - case 8:ui.chessheight=8;break; - default:ui.chessheight=8; - } - ui.chesswidth=Math.round(ui.chessheight*1.5); + switch(num){ + case 1:ui.chessheight=4;break; + case 2:ui.chessheight=5;break; + case 3:ui.chessheight=5;break; + case 4:ui.chessheight=6;break; + case 5:ui.chessheight=6;break; + case 6:ui.chessheight=7;break; + case 7:ui.chessheight=7;break; + case 8:ui.chessheight=8;break; + default:ui.chessheight=8; } + ui.chesswidth=Math.round(ui.chessheight*1.5); + if(num==1) ui.chesswidth++; ui.chess.style.height=148*ui.chessheight+'px'; ui.chess.style.width=148*ui.chesswidth+'px'; @@ -248,42 +234,15 @@ mode.chess={ } event.obs=[]; if(!event.video){ - var tafanglist=[0,2,3,5,6,8,9,11,12]; - if(_status.mode=='tafang'){ - for(var i=0;i=8&&j!=0&&j!=ui.chesswidth-1) continue; - if(tafanglist.contains(j)){ - var cg=i*ui.chesswidth+j; - grids.remove(cg); - game.addObstacle(cg.toString(),false); - event.obs.push(cg.toString()); - } - } - } - for(var i=0;i0){ + var ng=Math.floor(gridnum*nco); + for(var i=0;i0){ - var ng=Math.floor(gridnum*nco); - for(var i=0;icount){ - map[i][j].classList.add('unselectable'); - } - else if(i=='zhaomu'&&_status.friends.length+selectedZhaomu>=ui.chesswidth){ - map[i][j].classList.add('unselectable'); - } - else if(i=='bufang'){ - var numbufang=0; - for(var k=0;k=3){ - map[i][j].classList.add('unselectable'); - break; - } - } - } - } - } - ui.dialog.content.firstChild.innerHTML='剩余行动点:'+count; - } - var clickOrder=0; - event.custom.replace.button=function(button){ - if(!button.classList.contains('unselectable')|| - button.classList.contains('selected')){ - button.classList.toggle('selected'); - button._clickOrder=clickOrder++; - } - updateSelected(); - } - event.custom.add.window=function(clicked){ - if(clicked) return; - if(event.step>1) return; - for(var i in map){ - for(var j=0;j=ui.chesswidth) return; - var current=node.parentNode.querySelector('.thundertext'); - if(current==node) return; - if(current){ - current.classList.remove('thundertext'); - } - update(link); - }); - if(!_status.friends.length){ - event.control.lastChild.style.opacity=0.5; - if(_status.lastTafangCommand=='行动'){ - _status.lastTafangCommand='招募'; - } - } - if(_status.friends.length>=ui.chesswidth){ - event.control.childNodes[1].style.opacity=0.5; - if(_status.lastTafangCommand=='招募'){ - _status.lastTafangCommand='行动'; - } - } - _status.imchoosing=true; - ui.auto.hide(); - var eventdong=function(){ - var selected=dialog.querySelectorAll('.button.selected'); - event.bufang=[]; - event.zhaomu=[]; - event.xingdong=[]; - var xingdongs=[]; - _status.remainingCount+=10; - for(var i=0;i=0;k--){ - var pos=i+k*ui.chesswidth; - if(lib.posmap[pos]){ - lib.posmap[pos].moveDown(); - } - } - } - } - } - if(shalldelay) game.delay(); - 'step 7' - event.justadded=[]; - if(_status.characterList.length){ - if(_status.enemies.length=10&&list1.length&&difficulty>1){ - // var enemy=game.addChessPlayer(_status.characterList.shift(),true,4,list1.randomRemove()); - // _status.enemies.push(enemy); - // event.justadded.push(enemy.name); - // } - // if(_status.turnCount>=20&&list1.length&&difficulty>1){ - // var enemy=game.addChessPlayer(_status.characterList.shift(),true,4,list1.randomRemove()); - // _status.enemies.push(enemy); - // event.justadded.push(enemy.name); - // } - // if(list1.length&&difficulty>2){ - // var enemy=game.addChessPlayer(_status.characterList.shift(),true,4,list1.randomRemove()); - // _status.enemies.push(enemy); - // event.justadded.push(enemy.name); - // } - } - } - else{ - game.over(true); - } - 'step 8' - if(event.xingdong.length){ - var toact=event.xingdong.shift(); - if(game.players.contains(toact)){ - toact.phase(); - } - event.redo(); - } - else{ - event.xingdong=_status.enemies.slice(0); - } - 'step 9' - if(event.xingdong.length){ - var enemy=event.xingdong.shift(); - if(!event.justadded.contains(enemy.name)&&game.players.contains(enemy)){ - enemy.phase(); - } - event.redo(); - } - else{ - event.mechlist=game.treasures.slice(0); - } - 'step 10' - if(event.mechlist.length){ - var mech=event.mechlist.shift(); - var info=lib.skill[mech.name+'_skill']; - if(!info.filter||info.filter(mech)){ - var next=game.createEvent('chessMech'); - next.player=mech; - next.setContent(info.content); - mech.chessFocus(); - if(lib.config.animation&&!lib.config.low_performance){ - mech.$epic2(); - } - game.delay(); - } - if(mech.life--<=0){ - game.treasures.remove(mech); - setTimeout(function(){ - mech.delete(); - },500); - delete lib.posmap[mech.dataset.position]; - game.addVideo('deleteChessPlayer',mech); - game.addObstacle(mech.dataset.position); - game.log(get.translation(mech)+'使用期限已到'); - } - event.redo(); - } - 'step 11' - delete event.xingdong; - delete event.mechlist; - if(_status.turnCount>=_status.turnTotal){ - game.over(true); - } - else{ - event.goto(0); - game.delay(); - } - }); - }, phaseLoopOrdered:function(player){ var next=game.createEvent('phaseLoop'); next.player=player; @@ -3805,7 +3279,6 @@ mode.chess={ continue; } if(i.indexOf('treasure_')==0) continue; - if(i.indexOf('chess_mech_')==0) continue; if(lib.character[i][4].contains('minskin')) continue; if(lib.config.forbidchess.contains(i)) continue; if(lib.filter.characterDisabled(i)) continue; @@ -4197,197 +3670,12 @@ mode.chess={ } }, skill:{ - chess_mech_weixingxianjing_skill:{ - filter:function(player){ - for(var i=0;i<_status.enemies.length;i++){ - if(!_status.enemies[i].isTurnedOver()&& - get.chessDistance(player,_status.enemies[i])<=2){ - return true; - } - } - return false; - }, - content:function(){ - var list=[]; - for(var i=0;i<_status.enemies.length;i++){ - if(!_status.enemies[i].isTurnedOver()&& - get.chessDistance(player,_status.enemies[i])<=2){ - list.push(_status.enemies[i]); - } - } - if(list.length){ - game.log('小型陷阱发动'); - var target=list.randomGet(); - target.turnOver(); - player.line(target,'green'); - } - } - }, - chess_mech_nengliangqiu_skill:{ - filter:function(player){ - for(var i=0;i<_status.friends.length;i++){ - if(get.chessDistance(player,_status.friends[i])<=3){ - return true; - } - } - return false; - }, - content:function(){ - var list1=[],list2=[]; - for(var i=0;i<_status.friends.length;i++){ - if(get.chessDistance(player,_status.friends[i])<=1){ - list2.push(_status.friends[i]); - } - else if(get.chessDistance(player,_status.friends[i])<=3){ - list1.push(_status.friends[i]); - } - // else if(get.chessDistance(player,_status.friends[i])<=4){ - // list2.push(_status.friends[i]); - // } - } - if(list2.length){ - game.asyncDraw(list2,2); - player.line(list2,'green'); - } - if(list1.length){ - game.asyncDraw(list1); - player.line(list1,'green'); - } - if(list1.length||list2.length){ - game.log('能量球发动'); - } - } - }, - chess_mech_mutong_skill:{ - filter:function(player){ - for(var i=0;i<_status.enemies.length;i++){ - if(get.chessDistance(player,_status.enemies[i])<=3){ - return true; - } - } - return false; - }, - content:function(){ - var list=[]; - for(var i=0;i<_status.enemies.length;i++){ - if(get.chessDistance(player,_status.enemies[i])<=3){ - list.push(_status.enemies[i]); - } - } - if(list.length){ - game.log('木桶发动'); - var targets=list.randomGets(1); - player.line(targets,'green'); - for(var i=0;i2) return false; var xy1=event.source.getXY(); @@ -5405,7 +4693,6 @@ mode.chess={ delay:false, preservecancel:true, filter:function(event,player){ - if(_status.mode=='tafang') return false; var num=0; var xy=player.getXY(); if(game.obstacles.contains(player.getNeighbour(-1,0))||xy[0]==0) num++; @@ -5529,7 +4816,7 @@ mode.chess={ order:5, result:{ playerx:function(player){ - if(_status.mode=='tafang'&&_status.enemies.contains(player)){ + if(get.mode()=='tafang'&&_status.enemies.contains(player)){ return 1; } var nh=player.num('h'); @@ -5897,31 +5184,12 @@ mode.chess={ mode_chess_character_config:'战棋模式', mode_chess_card_config:'战棋模式', - - chess_mech_weixingxianjing:'小型陷阱', - chess_mech_weixingxianjing_skill:'捕猎', - chess_mech_weixingxianjing_skill_info:'每一轮令距离你2格以内的一名随机敌人翻面', - chess_mech_mutong:'木桶', - chess_mech_mutong_skill:'飞滚', - chess_mech_mutong_skill_info:'每一轮对距离3格以内的一名随机敌人造成一点伤害', - chess_mech_nengliangqiu:'能量球', - chess_mech_nengliangqiu_skill:'充能', - chess_mech_nengliangqiu_skill_info:'每一轮令距离3格以内的所有友方角色摸1张牌,距离1以内改为摸2张', - chess_mech_jiguanren:'机关人', - chess_mech_jiguanren_skill:'掠夺', - chess_mech_jiguanren_skill_info:'每一轮弃置3格以内的所有敌方角色各1~2张牌', - chess_mech_gongchengche:'攻城车', - chess_mech_gongchengche_skill:'攻坚', - chess_mech_gongchengche_skill_info:'每一轮对距离2格以内的一名随机敌方角色造成1点火焰伤害,并将目标击退1格', - chess_mech_guangmingquan:'光明泉', - chess_mech_guangmingquan_skill:'圣疗', - chess_mech_guangmingquan_skill_info:'每一轮令距离2格以内的所有友方角色各回复一点体力', }, ui:{ create:{ playergrid:function(player,x,y){ var pos=player.getDataPos(x,y); - if(_status.mode=='tafang'){ + if(get.mode()=='tafang'){ if(pos=ui.chessheight-1) return false; } @@ -6188,13 +5456,6 @@ mode.chess={ treasure_shiyuansu:['','',0,['shiyuansu'],['boss']], treasure_wuyashenxiang:['','',0,['wuyashenxiang'],['boss']], - chess_mech_guangmingquan:['','',0,['chess_mech_guangmingquan_skill'],['boss']], - chess_mech_nengliangqiu:['','',0,['chess_mech_nengliangqiu_skill'],['boss']], - chess_mech_jiguanren:['','',0,['chess_mech_jiguanren_skill'],['boss']], - chess_mech_weixingxianjing:['','',0,['chess_mech_weixingxianjing_skill'],['boss']], - chess_mech_mutong:['','',0,['chess_mech_mutong_skill'],['boss']], - chess_mech_gongchengche:['','',0,['chess_mech_gongchengche_skill'],['boss']], - leader_caocao:['male','wei',4,['leader_xiaoxiong']], leader_liubei:['male','shu',4,['leader_renyi']], leader_sunquan:['male','wu',4,['leader_mouduan']], diff --git a/mode/tafang.js b/mode/tafang.js index 252ab9c02..5e2d3af4b 100644 --- a/mode/tafang.js +++ b/mode/tafang.js @@ -1,23 +1,34 @@ 'use strict'; mode.tafang={ canvasUpdates2:[], - importChess:{ - element:{ - card:['moveTo'], - player:['createRangeShadow','move'] - } - }, start:function(){ "step 0" + lib.init.css(lib.assetURL+'layout/mode','chess'); 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]; + lib.element[i][j]=lib.init.eval(result.element[i][j]); } } } + for(var i in result.ui){ + for(var j in result.ui[i]){ + ui[i][j]=lib.init.eval(result.ui[i][j]); + } + } + get.chessDistance=lib.init.eval(result.get.chessDistance); + ai.get.attitude=lib.init.eval(result.ai.get.attitude); + var toLoad=['addChessPlayer','addObstacle','removeObstacle','isChessNeighbour', + 'draw2','updateCanvas2','setChessInfo','modeSwapPlayer']; + for(var i=0;i=ui.chesswidth){ - x=ui.chesswidth-1; - } - if(y>=ui.chessheight){ - y=ui.chessheight-1; - } - - pos=y*ui.chesswidth+x; - } - if(!lib.posmap[pos]){ - var grid=ui.create.div('.player.minskin.obstacle',ui.chess).animate('start'); - grid.dataset.position=pos; - grid.listen(ui.click.obstacle); - lib.posmap[pos]=grid; - game.obstacles.push(grid); - } - }, - removeObstacle:function(pos){ - var node=lib.posmap[pos]; - if(node&&game.obstacles.contains(node)){ - game.addVideo('removeObstacle',null,pos); - game.obstacles.remove(node); - delete lib.posmap[pos]; - node.delete(); - } - }, addOverDialog:function(dialog){ dialog.classList.add('center'); }, @@ -763,9 +664,6 @@ mode.tafang={ clickGrid.call(event.playergrids.randomGet()); },50); } - event.switchToAuto=function(){ - clickGrid.call(event.playergrids.randomGet()); - } } else{ delete event.zhaomu; @@ -908,92 +806,6 @@ mode.tafang={ } }); }, - isChessNeighbour:function(a,b){ - if(a&&a.dataset){ - a=a.dataset.position; - } - if(b&&b.dataset){ - b=b.dataset.position; - } - var ax=a%ui.chesswidth; - var ay=Math.floor(a/ui.chesswidth); - - var bx=b%ui.chesswidth; - var by=Math.floor(b/ui.chesswidth); - - if(ax==bx&&Math.abs(ay-by)==1) return true; - if(ay==by&&Math.abs(ax-bx)==1) return true; - - return false; - }, - draw2:function(func){ - lib.canvasUpdates2.push(func); - if(!lib.status.canvas2){ - lib.status.canvas2=true; - game.update(game.updateCanvas2); - } - }, - updateCanvas2:function(time){ - if(lib.canvasUpdates2.length===0){ - lib.status.canvas2=false; - return false; - } - ui.canvas2.width=ui.chess.offsetWidth; - ui.canvas2.height=ui.chess.offsetHeight; - ui.canvas2.style.left=0; - ui.canvas2.style.top=0; - var ctx=ui.ctx2; - ctx.shadowBlur=5; - ctx.shadowColor='rgba(0,0,0,0.3)'; - ctx.fillStyle='white'; - ctx.strokeStyle='white'; - ctx.lineWidth=3; - ctx.save(); - for(var i=0;i2) 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*dy!=0) return false; - 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); - } - } - }, - _phasequeue:{ - trigger:{player:'phaseBegin'}, - forced:true, - popup:false, - content:function(){ - var current=ui.chessinfo.querySelector('.glow2'); - if(current){ - current.classList.remove('glow2'); - } - if(player.instance){ - player.instance.classList.add('glow2'); - ui.chessinfo.scrollTop=player.instance.offsetTop-8; - } - } - }, - _chessmove:{ - enable:'phaseUse', - usable:1, - direct:true, - delay:false, - preservecancel:true, - filter:function(event,player){ - if(!player.movable(0,1)&&!player.movable(0,-1)&& - !player.movable(1,0)&&!player.movable(-1,0)){ - return false; - } - var move=2; - move=game.checkMod(player,move,'chessMove',player.get('s')); - return move>0; - }, - content:function(){ - "step 0" - var move=2; - move=game.checkMod(player,move,'chessMove',player.get('s')); - player.chooseToMove(move).phasing=true; - "step 1" - if(!result.bool){ - var skill=player.getStat().skill; - skill._chessmove--; - if(typeof skill._chessmovetried=='number'){ - skill._chessmovetried++; - } - else{ - skill._chessmovetried=1; - } - } - }, - ai:{ - order:5, - result:{ - playerx:function(player){ - if(_status.mode=='tafang'&&_status.enemies.contains(player)){ - return 1; - } - var nh=player.num('h'); - if(!player.num('h','sha')&& - !player.num('h','shunshou')&& - !player.num('h','bingliang')){ - if(nh<=Math.min(3,player.hp)) return Math.random()-0.3; - else if(nh<=Math.min(2,player.hp)) return Math.random()-0.4; - return Math.random()-0.5; - } - var neighbour; - neighbour=player.getNeighbour(0,1); - if(neighbour&&game.players.contains(neighbour)&&neighbour.side!=player.side){ - if(get.distance(player,neighbour,'attack')<1) return 1; - return 0; - } - neighbour=player.getNeighbour(0,-1); - if(neighbour&&game.players.contains(neighbour)&&neighbour.side!=player.side){ - if(get.distance(player,neighbour,'attack')<1) return 1; - return 0; - } - neighbour=player.getNeighbour(1,0); - if(neighbour&&game.players.contains(neighbour)&&neighbour.side!=player.side){ - if(get.distance(player,neighbour,'attack')<1) return 1; - return 0; - } - neighbour=player.getNeighbour(-1,0); - if(neighbour&&game.players.contains(neighbour)&&neighbour.side!=player.side){ - if(get.distance(player,neighbour,'attack')<1) return 1; - return 0; - } - return 1; - }, - player:function(player){ - if(player.getStat().skill._chessmovetried>=10){ - return 0; - } - var x=lib.skill._chessmove.ai.result.playerx(player); - if(player.isMad()) return -x; - return x; - } - } - } - }, - _chessswap:{ - trigger:{player:['phaseBegin','chooseToUseBegin','chooseToRespondBegin','chooseToDiscardBegin','chooseToCompareBegin', - 'chooseButtonBegin','chooseCardBegin','chooseTargetBegin','chooseCardTargetBegin','chooseControlBegin', - 'chooseBoolBegin','choosePlayerCardBegin','discardPlayerCardBegin','gainPlayerCardBegin']}, - forced:true, - priority:100, - popup:false, - filter:function(event,player){ - if(event.autochoose&&event.autochoose()) return false; - if(lib.config.mode=='chess'&&_status.mode=='combat'&&!get.config('single_control')) return false; - return player.isUnderControl(); - }, - content:function(){ - game.modeSwapPlayer(player); - }, - }, - _chesscenter:{ - trigger:{player:['phaseBegin','useCardBegin','useSkillBegin','respondBegin','damageBegin','loseHpBegin'], - target:'useCardToBegin'}, - forced:true, - priority:100, - popup:false, - content:function(){ - player.chessFocus(); - }, - }, }, translate:{ friend:'友', @@ -1371,85 +1014,6 @@ mode.tafang={ chess_mech_guangmingquan_skill:'圣疗', chess_mech_guangmingquan_skill_info:'每一轮令距离2格以内的所有友方角色各回复一点体力', }, - ui:{ - create:{ - playergrid:function(player,x,y){ - var pos=player.getDataPos(x,y); - if(_status.mode=='tafang'){ - if(pos=ui.chessheight-1) return false; - } - var node=ui.create.div('.player.minskin.playergrid',player.parentNode); - node.link=player; - node.dataset.position=pos; - return node; - }, - fakeme:function(){ - if(ui.fakeme){ - ui.fakeme.delete(); - } - ui.fakeme=ui.create.div('.fakeme.avatar',ui.me); - ui.fakeme.style.backgroundImage=game.me.node.avatar.style.backgroundImage; - } - }, - click:{ - chessInfo:function(e){ - if(this.link.isAlive()){ - this.link.chessFocus(); - if(this.link.classList.contains('selectable')|| - this.link.classList.contains('selected')){ - ui.click.target.call(this.link,e); - ui.click.window.call(ui.window,e); - } - e.stopPropagation(); - } - }, - playergrid:function(){ - if(!_status.paused) return; - var pos=parseInt(this.dataset.position); - this.link.moveTo(pos%ui.chesswidth,Math.floor(pos/ui.chesswidth)); - if(ui.movegrids){ - while(ui.movegrids.length){ - ui.movegrids.shift().delete(); - } - } - _status.event.result={ - bool:true, - move:this.link.dataset.position - }; - game.resume(); - }, - obstacle:function(){ - if(_status.event.chooseObstacle&&_status.paused&& - _status.event.obstacles&&_status.event.obstacles.contains(this)){ - _status.event.obstacle=this; - game.resume(); - } - } - } - }, - get:{ - chessDistance:function(from,to){ - var fxy=from.getXY(); - var txy=to.getXY(); - return Math.abs(fxy[0]-txy[0])+Math.abs(fxy[1]-txy[1]); - }, - }, - ai:{ - get:{ - attitude:function(from,to){ - if(!from||!to) return 0; - var t=(from.side===to.side?1:-1); - if(from.isMad()){ - t=-t; - } - else if(to.isMad()){ - t=0; - } - return 6*t; - } - } - }, characterPack:{ mode_tafang:{ chess_mech_guangmingquan:['','',0,['chess_mech_guangmingquan_skill'],['boss']], @@ -1467,7 +1031,7 @@ mode.tafang={ help:{ '塔防模式': '
  • 阻上敌人到达最下方的出口,坚持到给定的回合数即获得胜利
  • '+ - '每轮可获得10个行动点,用来布置机关、招募武将,或令武将行动。游戏难度将影响不同操作消耗的行动点数。未用完的行动点将减半并累积到下一轮
  • '+ + '每轮可获得10个行动点,用来布置机关、招募武将,或令武将行动。游戏难度将影响不同操作消耗的行动点数。未用完的行动点将减半(向上取整)并累积到下一轮
  • '+ '每一轮在最上方的一个随机位置增加一名敌人,若最上方已有角色,则将其下移一格
  • '+ '战场上最多出现3个相同的机关,每个机关在置入战场3轮后消失。战场上最多招募10名友方角色。
  • '+ '敌方角色到达底部出口时游戏失败,已方角色到达底部出口,将被移出游戏',