!function(t){var e={};function i(s){if(e[s])return e[s].exports;var a=e[s]={i:s,l:!1,exports:{}};return t[s].call(a.exports,a,a.exports,i),a.l=!0,a.exports}i.m=t,i.c=e,i.d=function(t,e,s){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(i.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)i.d(s,a,function(e){return t[e]}.bind(null,a));return s},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=0)}([function(module,exports){var Bullet=function(t,e,i,s){this.ctx=t,this.x=0,this.y=0,this.owner=e,this.type=i,this.dir=s,this.speed=3,this.size=6,this.hit=!1,this.isDestroyed=!1,this.draw=function(){this.ctx.drawImage(RESOURCE_IMAGE,POS.bullet[0]+this.dir*this.size,POS.bullet[1],this.size,this.size,this.x,this.y,this.size,this.size),this.move()},this.move=function(){this.dir==UP?this.y-=this.speed:this.dir==DOWN?this.y+=this.speed:this.dir==RIGHT?this.x+=this.speed:this.dir==LEFT&&(this.x-=this.speed),this.isHit()},this.isHit=function(){if(!this.isDestroyed){if(this.xmap.offsetX+map.mapWidth-this.size&&(this.x=map.offsetX+map.mapWidth-this.size,this.hit=!0),this.ymap.offsetY+map.mapHeight-this.size&&(this.y=map.offsetY+map.mapHeight-this.size,this.hit=!0),!this.hit&&null!=bulletArray&&bulletArray.length>0)for(var t=0;t0)for(t=0;t1?e.lives--:e.distroy(),this.hit=!0;break}}}else this.type==BULLET_TYPE_ENEMY&&(player1.lives>0&&CheckIntersect(this,player1,0)?(player1.isProtected||player1.isDestroyed||player1.distroy(),this.hit=!0):player2.lives>0&&CheckIntersect(this,player2,0)&&(player2.isProtected||player2.isDestroyed||player2.distroy(),this.hit=!0));this.hit&&this.distroy()}},this.distroy=function(){this.isDestroyed=!0,crackArray.push(new CrackAnimation(CRACK_TYPE_BULLET,this.ctx,this)),this.owner.isAI||BULLET_DESTROY_AUDIO.play()}};function CheckIntersect(t,e,i){return A1=t.x+i,B1=t.x+t.size-i,C1=t.y+i,D1=t.y+t.size-i,A2=e.x+i,B2=e.x+e.size-i,C2=e.y+i,D2=e.y+e.size-i,(A1>=A2&&A1<=B2||B1>=A2&&B1<=B2)&&(C1>=C2&&C1<=D2||D1>=C2&&D1<=D2)}function tankMapCollision(t,e){var i=0,s=0,a=0;if(t.dir==UP?(s=parseInt((t.tempY+3-e.offsetY)/e.tileSize),a=parseInt((t.tempX+3-e.offsetX)/e.tileSize)):t.dir==DOWN?(s=parseInt((t.tempY-3-e.offsetY+t.size)/e.tileSize),a=parseInt((t.tempX+3-e.offsetX)/e.tileSize)):t.dir==LEFT?(s=parseInt((t.tempY+3-e.offsetY)/e.tileSize),a=parseInt((t.tempX+3-e.offsetX)/e.tileSize)):t.dir==RIGHT&&(s=parseInt((t.tempY+3-e.offsetY)/e.tileSize),a=parseInt((t.tempX-3-e.offsetX+t.size)/e.tileSize)),s>=e.HTileCount||s<0||a>=e.wTileCount||a<0)return!0;if(t.dir==UP||t.dir==DOWN){var h=parseInt(t.tempX-map.offsetX-a*e.tileSize+t.size-3);i=h%e.tileSize==0?parseInt(h/e.tileSize):parseInt(h/e.tileSize)+1;for(var r=0;r=e.HTileCount||s<0||a>=e.wTileCount||a<0)return!0;if(t.dir==UP||t.dir==DOWN){var n=parseInt(t.x-map.offsetX-a*e.tileSize+t.size);i=n%e.tileSize==0?parseInt(n/e.tileSize):parseInt(n/e.tileSize)+1;for(var l=0;l3*this.frame-parseInt(1.5)&&(this.tempDir=-1),this.times<=0&&(this.isOver=!0)}};Array.prototype.remove=function(t){var e=0,i=0,s=this.length;for(e=0;e0)for(var t=0;t=maxAppearEnemy||0==maxEnemy)){appearEnemy++;var t=parseInt(3*Math.random()),e=null;0==t?e=new EnemyOne(tankCtx):1==t?e=new EnemyTwo(tankCtx):2==t&&(e=new EnemyThree(tankCtx)),e.x=ENEMY_LOCATION[parseInt(3*Math.random())]+map.offsetX,e.y=map.offsetY,e.dir=DOWN,enemyArray[enemyArray.length]=e,map.clearEnemyNum(maxEnemy,appearEnemy)}}function drawEnemyTanks(){if(null!=enemyArray||enemyArray.length>0)for(var t=0;t0&&emenyStopTime--}function drawAll(){tankCtx.clearRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT),player1.lives>0&&player1.draw(),player2.lives>0&&player2.draw(),drawLives(),appearEnemy0?homeProtectedTime--:0==homeProtectedTime&&(homeProtectedTime=-1,homeNoProtected())}function drawCrack(){if(null!=crackArray&&crackArray.length>0)for(var t=0;t0?player1.shoot(BULLET_TYPE_PLAYER):t.keyCode==keyboard.ENTER&&player2.lives>0?player2.shoot(BULLET_TYPE_ENEMY):t.keyCode==keyboard.N?nextLevel():t.keyCode==keyboard.P&&preLevel()}})),$(document).keyup((function(t){keys.remove(t.keyCode)}));var Map=function(wCtx,gCtx){this.level=1,this.mapLevel=null,this.wallCtx=wCtx,this.grassCtx=gCtx,this.offsetX=32,this.offsetY=16,this.wTileCount=26,this.HTileCount=26,this.tileSize=16,this.homeSize=32,this.num=new Num(this.wallCtx),this.mapWidth=416,this.mapHeight=416,this.setMapLevel=function(level){this.level=level;var tempMap=eval("map"+this.level);this.mapLevel=new Array;for(var i=0;i0)for(var i=t.length,s=0;s0?this.wallCtx.drawImage(RESOURCE_IMAGE,this.tileSize*(e-1)+POS.map[0],POS.map[1],this.tileSize,this.tileSize,a[1]*this.tileSize+this.offsetX,a[0]*this.tileSize+this.offsetY,this.tileSize,this.tileSize):(this.wallCtx.fillStyle="#000",this.wallCtx.fillRect(a[1]*this.tileSize+this.offsetX,a[0]*this.tileSize+this.offsetY,this.tileSize,this.tileSize))}},this.homeHit=function(){this.wallCtx.drawImage(RESOURCE_IMAGE,POS.home[0]+this.homeSize,POS.home[1],this.homeSize,this.homeSize,12*this.tileSize+this.offsetX,24*this.tileSize+this.offsetY,this.homeSize,this.homeSize)}},Menu=function(t){this.ctx=t,this.x=0,this.y=SCREEN_HEIGHT,this.selectTank=new SelectTank,this.playNum=1,this.times=0,this.draw=function(){this.times++;var t=0;t=parseInt(this.times/6)%2==0?0:this.selectTank.size,this.y<=0?this.y=0:this.y-=5,this.ctx.clearRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT),this.ctx.save(),this.ctx.drawImage(MENU_IMAGE,this.x,this.y),this.ctx.drawImage(RESOURCE_IMAGE,POS.selectTank[0],POS.selectTank[1]+t,this.selectTank.size,this.selectTank.size,this.selectTank.x,this.y+this.selectTank.ys[this.playNum-1],this.selectTank.size,this.selectTank.size),this.ctx.restore()},this.next=function(t){this.playNum+=t,this.playNum>2?this.playNum=1:this.playNum<1&&(this.playNum=2)}},Num=function(t){this.ctx=t,this.size=14,this.draw=function(t,e,i){var s=e,a=i,h=[];if(0==t)h.push(0);else for(;t>0;)h.push(t%10),t=parseInt(t/10);for(var r=h.length-1;r>=0;r--)s=e+(h.length-r-1)*this.size,this.ctx.drawImage(RESOURCE_IMAGE,POS.num[0]+14*h[r],POS.num[1],this.size,this.size,s,a,this.size,this.size)}},Prop=function(t){this.x=0,this.y=0,this.duration=600,this.type=0,this.hit=!1,this.width=30,this.height=28,this.ctx=t,this.isDestroyed=!1,this.size=28,this.init=function(){this.ctx.clearRect(this.x,this.y,this.width,this.height),this.duration=600,this.type=parseInt(6*Math.random()),this.x=parseInt(384*Math.random())+map.offsetX,this.y=parseInt(384*Math.random())+map.offsetY,this.isDestroyed=!1},this.draw=function(){this.duration>0&&!this.isDestroyed?(this.ctx.drawImage(RESOURCE_IMAGE,POS.prop[0]+this.type*this.width,POS.prop[1],this.width,this.height,this.x,this.y,this.width,this.height),this.duration--,this.isHit()):(this.ctx.clearRect(this.x,this.y,this.width,this.height),this.isDestroyed=!0)},this.isHit=function(){var t=null;if(player1.lives>0&&CheckIntersect(this,player1,0)?(this.hit=!0,t=player1):player2.lives>0&&CheckIntersect(this,player2,0)&&(this.hit=!0,t=player2),this.hit)switch(PROP_AUDIO.play(),this.isDestroyed=!0,this.ctx.clearRect(this.x,this.y,this.width,this.height),this.type){case 0:t.lives++;break;case 1:emenyStopTime=500;break;case 2:map.updateMap([[23,11],[23,12],[23,13],[23,14],[24,11],[24,14],[25,11],[25,14]],GRID),homeProtectedTime=500;break;case 3:if(null!=enemyArray||enemyArray.length>0)for(var e=0;e=0?(this.ctx.clearRect(0,this.temp,512,this.drawHeigth),this.ctx.clearRect(0,448-this.temp-this.drawHeigth,512,this.drawHeigth)):this.isReady=!0,this.temp+=this.drawHeigth*this.dir}},Tank=function(){this.x=0,this.y=0,this.size=32,this.dir=UP,this.speed=1,this.frame=0,this.hit=!1,this.isAI=!1,this.isShooting=!1,this.bullet=null,this.shootRate=.6,this.isDestroyed=!1,this.tempX=0,this.tempY=0,this.move=function(){this.isAI&&emenyStopTime>0||(this.tempX=this.x,this.tempY=this.y,this.isAI&&(this.frame++,(this.frame%100==0||this.hit)&&(this.dir=parseInt(4*Math.random()),this.hit=!1,this.frame=0)),this.dir==UP?this.tempY-=this.speed:this.dir==DOWN?this.tempY+=this.speed:this.dir==RIGHT?this.tempX+=this.speed:this.dir==LEFT&&(this.tempX-=this.speed),this.isHit(),this.hit||(this.x=this.tempX,this.y=this.tempY))},this.isHit=function(){this.dir==LEFT?this.x<=map.offsetX&&(this.x=map.offsetX,this.hit=!0):this.dir==RIGHT?this.x>=map.offsetX+map.mapWidth-this.size&&(this.x=map.offsetX+map.mapWidth-this.size,this.hit=!0):this.dir==UP?this.y<=map.offsetY&&(this.y=map.offsetY,this.hit=!0):this.dir==DOWN&&this.y>=map.offsetY+map.mapHeight-this.size&&(this.y=map.offsetY+map.mapHeight-this.size,this.hit=!0),this.hit||tankMapCollision(this,map)&&(this.hit=!0)},this.isShot=function(){},this.shoot=function(t){if(!(this.isAI&&emenyStopTime>0||this.isShooting)){var e=this.x,i=this.y;this.bullet=new Bullet(this.ctx,this,t,this.dir),this.dir==UP?(e=this.x+parseInt(this.size/2)-parseInt(this.bullet.size/2),i=this.y-this.bullet.size):this.dir==DOWN?(e=this.x+parseInt(this.size/2)-parseInt(this.bullet.size/2),i=this.y+this.size):this.dir==LEFT?(e=this.x-this.bullet.size,i=this.y+parseInt(this.size/2)-parseInt(this.bullet.size/2)):this.dir==RIGHT&&(e=this.x+this.size,i=this.y+parseInt(this.size/2)-parseInt(this.bullet.size/2)),this.bullet.x=e,this.bullet.y=i,this.isAI||ATTACK_AUDIO.play(),this.bullet.draw(),bulletArray.push(this.bullet),this.isShooting=!0}},this.distroy=function(){this.isDestroyed=!0,crackArray.push(new CrackAnimation(CRACK_TYPE_TANK,this.ctx,this)),TANK_DESTROY_AUDIO.play()}},SelectTank=function(){this.ys=[250,281],this.x=140,this.size=27};SelectTank.prototype=new Tank;var PlayTank=function(t){this.ctx=t,this.lives=3,this.isProtected=!0,this.protectedTime=500,this.offsetX=0,this.speed=2,this.draw=function(){if(this.hit=!1,this.ctx.drawImage(RESOURCE_IMAGE,POS.player[0]+this.offsetX+this.dir*this.size,POS.player[1],this.size,this.size,this.x,this.y,this.size,this.size),this.isProtected){var t=parseInt((500-this.protectedTime)/5)%2;this.ctx.drawImage(RESOURCE_IMAGE,POS.protected[0],POS.protected[1]+32*t,32,32,this.x,this.y,32,32),this.protectedTime--,0==this.protectedTime&&(this.isProtected=!1)}},this.distroy=function(){this.isDestroyed=!0,crackArray.push(new CrackAnimation(CRACK_TYPE_TANK,this.ctx,this)),PLAYER_DESTROY_AUDIO.play()},this.renascenc=function(t){this.lives--,this.dir=UP,this.isProtected=!0,this.protectedTime=500,this.isDestroyed=!1;var e=0;e=1==t?129:256,this.x=e+map.offsetX,this.y=385+map.offsetY}};PlayTank.prototype=new Tank;var EnemyOne=function(t){this.ctx=t,this.isAppear=!1,this.times=0,this.lives=1,this.isAI=!0,this.speed=1.5,this.draw=function(){if(this.times++,this.isAppear){if(this.ctx.drawImage(RESOURCE_IMAGE,POS.enemy1[0]+this.dir*this.size,POS.enemy1[1],32,32,this.x,this.y,32,32),this.times%50==0)Math.random()