diff --git a/package.json b/package.json index 2f09f25..52b3f7f 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "shooting_game", - "version": "0.1.0", + "version": "1.0.0", "homepage": "https://planeshooinggame.com", "private": true, "dependencies": { diff --git a/src/page/home/Canvas.tsx b/src/page/home/Canvas.tsx index 26028c2..241e44d 100755 --- a/src/page/home/Canvas.tsx +++ b/src/page/home/Canvas.tsx @@ -38,9 +38,7 @@ const Canvas = ( props : CanvasProps ) => { paint.initBackground() ; paint.runAnimationFrame() ; - window.addEventListener('focus', (event) => { - window.location.reload() ; - }, false); + window.addEventListener('focus', (event) => window.location.reload(), false); const game = new Game({ title : gameData.title, enemyPlaneImformationList : gameData.enemyPlaneList, wall : wall, painter : paint, enemyPlaneDataList : enemyPlaneList }) ; diff --git a/src/page/home/class/Game.ts b/src/page/home/class/Game.ts index 2304969..ffe24da 100644 --- a/src/page/home/class/Game.ts +++ b/src/page/home/class/Game.ts @@ -3,6 +3,8 @@ import Painter from "./Painter"; import { PlaneList, PlaneKind } from "./Plane" import Wall from "./Wall" + +const SCORE = 100 ; const ENEMPLANE_START_POSITION_X = 1200 ; const ENEMPLANE_START_POSITION_Y_MIN = 0 ; const ENEMPLANE_START_POSITION_Y_MAX = 600 ; @@ -35,6 +37,8 @@ export default class Game { private enemyPlaneDataList : EnemyPlanLevelData[] = [] ; private gameStatus : GameStatus = GameStatus.START ; private planeList : PlaneList = new PlaneList() ; + public static enemyPlaneNum : number = 0 ; + public static userScore : number = 0 ; constructor({ title, @@ -57,6 +61,9 @@ export default class Game { let time = 0 ; this.enemyPlaneImformationList.forEach((enemyPlaneImportmation : EnemyPlaneImformation, index : number) => { + + Game.enemyPlaneNum += enemyPlaneImportmation.num ; + for(let i = 0 ; i < enemyPlaneImportmation.num ; i++) { const findIndex = this.enemyPlaneDataList.findIndex((enemyPlanData : EnemyPlanLevelData) => enemyPlanData.level === enemyPlaneImportmation.level) ; const planeData = this.enemyPlaneDataList[findIndex].planeDate ; @@ -77,4 +84,40 @@ export default class Game { public end() { } +} + +export function gameOver() { + const gameEnd = document.getElementsByClassName('gameEnd')[0] as HTMLParagraphElement ; + gameEnd.className = gameEnd.className.replace('hidden', 'flex') ; + + const gameOver = document.getElementsByClassName('gameOver')[0] as HTMLParagraphElement ; + gameOver.className = gameOver.className.replace('hidden', 'block') ; +} + +export function gameClear() { + const gameEnd = document.getElementsByClassName('gameEnd')[0] as HTMLParagraphElement ; + gameEnd.className = gameEnd.className.replace('hidden', 'flex') ; + + const gameOver = document.getElementsByClassName('gameClear')[0] as HTMLParagraphElement ; + gameOver.className = gameOver.className.replace('hidden', 'block') ; +} + +export function setUserLifeHTML( life : number ) { + const userLife = document.getElementsByClassName('userLife')[0] as HTMLParagraphElement ; + userLife.innerText = `Life : ${life <= 0 ? 0 : life}` ; + + if( life === 0 ) { + gameOver() ; + } +} + +export function setUserScoreHTML( score : number ) { + Game.userScore += SCORE * score ; + + const userScore = document.getElementsByClassName('userScore')[0] as HTMLParagraphElement ; + userScore.innerText = `Score : ${Game.userScore}` ; + + if( Game.enemyPlaneNum !== 0 && Game.userScore === Game.enemyPlaneNum * SCORE ) { + gameClear() ; + } } \ No newline at end of file diff --git a/src/page/home/class/Plane.ts b/src/page/home/class/Plane.ts index bef2a10..f2f295a 100755 --- a/src/page/home/class/Plane.ts +++ b/src/page/home/class/Plane.ts @@ -1,11 +1,11 @@ -import Painter from './Painter'; import Wall from './Wall' import { Obj, Direction, size } from './util' - -const SCORE = 100 ; +import { gameOver, gameClear, setUserLifeHTML, setUserScoreHTML } from './Game' export type PlaneData = { planeImageSrc : string + planeImageRunSrc : string + planeExpImageSrcList : string[] speed : number life : number size : size @@ -23,6 +23,12 @@ export enum PlaneKind { ENEMYPLANE = 1 } +enum PlaneStatus { + NORAML = 0, + COLLISION = 1, + END = 2 +} + enum ShotStatus { STOP = 0, ACTION = 1, @@ -31,12 +37,15 @@ enum ShotStatus { class Plane extends Obj { // Plane Data private id : number = 0 ; - private img : HTMLImageElement | null = null ; + private planeExpImgList : HTMLImageElement[] = [] ; + protected planeExpImgIndex : number = 0 ; + private img : HTMLImageElement = new Image() ; private shotAction : ShotStatus = ShotStatus.STOP ; private shotDelay : number = 1000 ; private shotMappingPid : number = 0 ; private size : size = { width : 0, height : 0, expWidth : 0, expHeight : 0 } ; protected life : number = 0 ; + protected planeStatus : PlaneStatus = PlaneStatus.NORAML ; // Shot Data private shotImgList : HTMLImageElement[] | null = null ; @@ -53,6 +62,7 @@ class Plane extends Obj { positionY : number, { planeImageSrc, + planeExpImageSrcList, size, shotSize, speed, @@ -72,11 +82,19 @@ class Plane extends Obj { this.size = size ; this.life = life ; - this.img = new Image() ; this.img.src = planeImageSrc ; this.img.width = size.width ; this.img.height = size.height ; + this.planeExpImgList = planeExpImageSrcList.map(( src : string, index : number ) => { + const img = new Image() ; + img.src = src ; + img.width = size.expWidth ; + img.height = size.expHeight ; + + return img ; + }) ; + this.shotDamage = shotDamage ; this.shotDelay = shotDelay ; this.shotSpeed = shotSpeed ; @@ -97,9 +115,7 @@ class Plane extends Obj { return img ; }) ; } - public getId() { return this.id ; } - public getImg() { return this.img ; } public getImgList() { return this.shotImgList ; } public getShotStatus() { return this.shotAction ; } public getShotDelay() { return this.shotDelay ; } @@ -111,20 +127,43 @@ class Plane extends Obj { public getLife() { return this.life ; } public getShotDamage() { return this.shotDamage ; } public getShotSize() { return this.shotSize ; } + public getPlaneStatus() { return this.planeStatus ; } public getShotPosition( direction : boolean ) { - let shotPositionX ; - const middle = this.size.width ; if( direction ) shotPositionX = this.position.x + middle ; else shotPositionX = this.position.x - middle ; const shotPositionY = this.position.y + (this.size.height / 2) - (this.shotSize.height / 2) ; - - return { shotPositionX, shotPositionY } + return { shotPositionX, shotPositionY } ; + } + public getImg() { + let img : HTMLImageElement ; + switch( this.planeStatus ) { + case PlaneStatus.COLLISION : + // x, y update + if( this.planeExpImgIndex === 0 ) { + this.position.x = this.position.x - (this.size.expWidth - this.size.width) / 2 ; + this.position.y = this.position.y - (this.size.expWidth - this.size.height) / 2 ; + } + img = this.planeExpImgList[this.planeExpImgIndex] ; + this.planeExpImgIndex++ ; + // PlaneStatus End + if( this.planeExpImgIndex === this.planeExpImgList.length ) this.planeStatus = PlaneStatus.END ; + break ; + case PlaneStatus.NORAML : + img = this.img ; + break ; + case PlaneStatus.END : + default : + img = new Image() ; + break ; + } + return img ; } public setLife( life : number ) { + if( life === 0 ) this.planeStatus = PlaneStatus.COLLISION ; this.life = life ; } public checkShotStatusAction() { @@ -149,31 +188,14 @@ class Plane extends Obj { clearInterval(this.shotMappingPid) ; this.shotMappingPid = 0 ; } - - public gameEnd() { - const gameEnd = document.getElementsByClassName('gameEnd')[0] as HTMLParagraphElement ; - gameEnd.className = gameEnd.className.replace('hidden', 'flex') ; - - const gameOver = document.getElementsByClassName('gameOver')[0] as HTMLParagraphElement ; - gameOver.className = gameOver.className.replace('hidden', 'block') ; - } - } class UserPlane extends Plane { - public userLifeToHTML() { - const userLife = document.getElementsByClassName('userLife')[0] as HTMLParagraphElement ; - userLife.innerText = `Life : ${this.getLife()}` ; - } - public setLife( life : number ) { + setUserLifeHTML( life ) ; + if( life === 0 ) this.planeStatus = PlaneStatus.COLLISION ; this.life = life ; - this.userLifeToHTML() ; - - if( this.life === 0 ) { - this.gameEnd() ; - } } public keyDownToMoveMapping( event : KeyboardEvent ) : void { @@ -251,7 +273,7 @@ class EnemyPlane extends Plane { public move() { try { - if( this.wall ) { + if( this.wall && this.planeStatus === PlaneStatus.NORAML ) { if( this.direction.up ) { if ( this.wall?.getTop() < this.position.y - this.speed ) { this.position.y -= this.speed ; @@ -265,10 +287,11 @@ class EnemyPlane extends Plane { } if( this.direction.left ) { - if ( this.wall?.getLeft() < this.position.x - this.speed ) { - this.position.x -= this.speed ; - }else { - this.gameEnd() ; + this.position.x -= this.speed ; + if( this.wall?.getLeft() > this.position.x - this.speed ) { + gameOver() ; + }else if( this.wall?.getLeft() > this.position.x + this.getSize().width ) { + this.planeStatus = PlaneStatus.END ; } } @@ -341,18 +364,14 @@ class PlaneList { public unregisterPlane() : void { // User Plane - const notLifeUserPlane = this.userPlaneList.filter((plane : UserPlane) => ( plane.getLife() === 0 )) ; + const notLifeUserPlane = this.userPlaneList.filter((plane : UserPlane) => ( plane.getPlaneStatus() === PlaneStatus.END )) ; this.userPlaneList = this.userPlaneList.filter((plane : UserPlane) => !notLifeUserPlane.includes(plane)) ; // Enemy Plane - const notLifeEnemyPlane = this.enemyPlaneList.filter((plane : EnemyPlane) => ( plane.getLife() === 0 )) ; - - this.score += SCORE * notLifeEnemyPlane.length ; - - const userScore = document.getElementsByClassName('userScore')[0] as HTMLParagraphElement ; - userScore.innerText = `Score : ${this.score}` - + const notLifeEnemyPlane = this.enemyPlaneList.filter((plane : EnemyPlane) => ( plane.getPlaneStatus() === PlaneStatus.END )) ; this.enemyPlaneList = this.enemyPlaneList.filter((plane : EnemyPlane) => !notLifeEnemyPlane.includes(plane)) ; + + setUserScoreHTML( notLifeEnemyPlane.length ) ; } } diff --git a/src/page/home/class/Shot.ts b/src/page/home/class/Shot.ts index c80e478..fda0c75 100644 --- a/src/page/home/class/Shot.ts +++ b/src/page/home/class/Shot.ts @@ -58,7 +58,11 @@ export class Shot extends Obj { return this.currentIndex = currentIndex ; } - public setStateToCollison() { this.state = ShotStatus.COLLISION ; } + public setStateToCollison() { + this.position.x = this.position.x - (this.size.expWidth - this.size.width) / 2 ; + this.position.y = this.position.y - (this.size.expWidth - this.size.height) / 2 ; + this.state = ShotStatus.COLLISION ; + } public deleteDetermining() { if( this.imgList ) { return this.imgList?.length === this.currentIndex ; diff --git a/src/page/home/data/enemyPlane.ts b/src/page/home/data/enemyPlane.ts index 113d067..baaf61a 100644 --- a/src/page/home/data/enemyPlane.ts +++ b/src/page/home/data/enemyPlane.ts @@ -1,20 +1,59 @@ -import shoot1Src from '../img/shot/enemyPlaneShot/shot5_1.png' -import shoot2Src from '../img/shot/enemyPlaneShot/shot5_2.png' -import shoot3Src from '../img/shot/enemyPlaneShot/shot5_3.png' -import shoot4Src from '../img/shot/enemyPlaneShot/shot5_4.png' -import shoot5Src from '../img/shot/enemyPlaneShot/shot5_5.png' +import shoot1Src from '../img/shot/enemyLevel1PlaneShot/shot5_1.png' +import shoot2Src from '../img/shot/enemyLevel1PlaneShot/shot5_2.png' +import shoot3Src from '../img/shot/enemyLevel1PlaneShot/shot5_3.png' +import shoot4Src from '../img/shot/enemyLevel1PlaneShot/shot5_4.png' +import shoot5Src from '../img/shot/enemyLevel1PlaneShot/shot5_5.png' -import shoot6Src from '../img/shot/enemyPlaneShot/shot5_exp1.png' -import shoot7Src from '../img/shot/enemyPlaneShot/shot5_exp2.png' -import shoot8Src from '../img/shot/enemyPlaneShot/shot5_exp3.png' -import shoot9Src from '../img/shot/enemyPlaneShot/shot5_exp4.png' -import shoot10Src from '../img/shot/enemyPlaneShot/shot5_exp5.png' -import shoot11Src from '../img/shot/enemyPlaneShot/shot5_exp6.png' -import shoot12Src from '../img/shot/enemyPlaneShot/shot5_exp7.png' +import shoot6Src from '../img/shot/enemyLevel1PlaneShot/shot5_exp1.png' +import shoot7Src from '../img/shot/enemyLevel1PlaneShot/shot5_exp2.png' +import shoot8Src from '../img/shot/enemyLevel1PlaneShot/shot5_exp3.png' +import shoot9Src from '../img/shot/enemyLevel1PlaneShot/shot5_exp4.png' +import shoot10Src from '../img/shot/enemyLevel1PlaneShot/shot5_exp5.png' +import shoot11Src from '../img/shot/enemyLevel1PlaneShot/shot5_exp6.png' +import shoot12Src from '../img/shot/enemyLevel1PlaneShot/shot5_exp7.png' + +import planeExp1 from '../img/planes/enemyLevel1PlaneExp/exp1.png' +import planeExp2 from '../img/planes/enemyLevel1PlaneExp/exp2.png' +import planeExp3 from '../img/planes/enemyLevel1PlaneExp/exp3.png' +import planeExp4 from '../img/planes/enemyLevel1PlaneExp/exp4.png' +import planeExp5 from '../img/planes/enemyLevel1PlaneExp/exp5.png' +import planeExp6 from '../img/planes/enemyLevel1PlaneExp/exp6.png' +import planeExp7 from '../img/planes/enemyLevel1PlaneExp/exp7.png' +import planeExp8 from '../img/planes/enemyLevel1PlaneExp/exp8.png' +import planeExp9 from '../img/planes/enemyLevel1PlaneExp/exp9.png' +import planeExp10 from '../img/planes/enemyLevel1PlaneExp/exp10.png' +import planeExp11 from '../img/planes/enemyLevel1PlaneExp/exp11.png' import level1EnemyPlaneSrc from '../img/planes/level1_enemy_planes.png' import { PlaneData } from '../class/Plane' +import shoot1SrcLevel2 from '../img/shot/enemyLevel2PlaneShot/shot6_1.png' +import shoot2SrcLevel2 from '../img/shot/enemyLevel2PlaneShot/shot6_2.png' +import shoot3SrcLevel2 from '../img/shot/enemyLevel2PlaneShot/shot6_3.png' +import shoot4SrcLevel2 from '../img/shot/enemyLevel2PlaneShot/shot6_4.png' + +import shoot5SrcLevel2 from '../img/shot/enemyLevel2PlaneShot/shot6_exp1.png' +import shoot6SrcLevel2 from '../img/shot/enemyLevel2PlaneShot/shot6_exp2.png' +import shoot7SrcLevel2 from '../img/shot/enemyLevel2PlaneShot/shot6_exp3.png' +import shoot8SrcLevel2 from '../img/shot/enemyLevel2PlaneShot/shot6_exp4.png' +import shoot9SrcLevel2 from '../img/shot/enemyLevel2PlaneShot/shot6_exp5.png' +import shoot10SrcLevel2 from '../img/shot/enemyLevel2PlaneShot/shot6_exp6.png' +import shoot11SrcLevel2 from '../img/shot/enemyLevel2PlaneShot/shot6_exp7.png' + +import planeExp1Level2 from '../img/planes/enemyLevel2PlaneExp/exp1.png' +import planeExp2Level2 from '../img/planes/enemyLevel2PlaneExp/exp2.png' +import planeExp3Level2 from '../img/planes/enemyLevel2PlaneExp/exp3.png' +import planeExp4Level2 from '../img/planes/enemyLevel2PlaneExp/exp4.png' +import planeExp5Level2 from '../img/planes/enemyLevel2PlaneExp/exp5.png' +import planeExp6Level2 from '../img/planes/enemyLevel2PlaneExp/exp6.png' +import planeExp7Level2 from '../img/planes/enemyLevel2PlaneExp/exp7.png' +import planeExp8Level2 from '../img/planes/enemyLevel2PlaneExp/exp8.png' +import planeExp9Level2 from '../img/planes/enemyLevel2PlaneExp/exp9.png' +import planeExp10Level2 from '../img/planes/enemyLevel2PlaneExp/exp10.png' +import planeExp11Level2 from '../img/planes/enemyLevel2PlaneExp/exp11.png' + +import level1EnemyPlaneSrcLevel2 from '../img/planes/level2_enemy_planes.png' + export type EnemyPlanLevelData = { level : number planeDate : PlaneData @@ -24,12 +63,26 @@ const enemyPlaneList : EnemyPlanLevelData[] = [ { level : 1, planeDate : { + planeImageRunSrc : "", planeImageSrc : level1EnemyPlaneSrc, + planeExpImageSrcList : [ + planeExp1, + planeExp2, + planeExp3, + planeExp4, + planeExp5, + planeExp6, + planeExp7, + planeExp8, + planeExp9, + planeExp10, + planeExp11, + ], size : { width : 105, height : 82, - expWidth : 0, - expHeight : 0 + expWidth : 183, + expHeight : 183 }, shotSize : { width : 46, @@ -39,7 +92,7 @@ const enemyPlaneList : EnemyPlanLevelData[] = [ }, speed : 1, life : 2, - shotDamage : 1 , + shotDamage : 1, shootImgSrcList : [ shoot1Src, shoot2Src, @@ -59,6 +112,58 @@ const enemyPlaneList : EnemyPlanLevelData[] = [ shotListNormalImageIndex : 4, shotCollisionImageIndex : 6 } + }, + { + level : 2, + planeDate : { + planeImageRunSrc : "", + planeImageSrc : level1EnemyPlaneSrcLevel2, + planeExpImageSrcList : [ + planeExp1Level2, + planeExp2Level2, + planeExp3Level2, + planeExp4Level2, + planeExp5Level2, + planeExp6Level2, + planeExp7Level2, + planeExp8Level2, + planeExp9Level2, + planeExp10Level2, + planeExp11Level2, + ], + size : { + width : 117, + height : 75, + expWidth : 256, + expHeight : 256 + }, + shotSize : { + width : 58, + height : 12, + expWidth : 128, + expHeight : 128 + }, + speed : 1.2, + life : 3, + shotDamage : 1 , + shootImgSrcList : [ + shoot1SrcLevel2, + shoot2SrcLevel2, + shoot3SrcLevel2, + shoot4SrcLevel2, + shoot5SrcLevel2, + shoot6SrcLevel2, + shoot7SrcLevel2, + shoot8SrcLevel2, + shoot9SrcLevel2, + shoot10SrcLevel2, + shoot11SrcLevel2, + ], + shotDelay : 1800, + shotSpeed : 8, + shotListNormalImageIndex : 3, + shotCollisionImageIndex : 5 + } } ] ; diff --git a/src/page/home/data/userPlane.ts b/src/page/home/data/userPlane.ts index fd7d4fb..cc48df8 100644 --- a/src/page/home/data/userPlane.ts +++ b/src/page/home/data/userPlane.ts @@ -17,7 +17,9 @@ import shoot12Src from '../img/shot/userPlaneShot/shot2_exp5.png' import userPlaneSrc from '../img/planes/user_airplane.png' const userPlaneData : PlaneData = { + planeImageRunSrc : "", planeImageSrc : userPlaneSrc, + planeExpImageSrcList : [], size : { width : 77, height : 34, @@ -30,7 +32,7 @@ const userPlaneData : PlaneData = { expWidth : 64, expHeight : 64 }, - speed : 4, + speed : 5, life : 3, shotDamage : 1, shootImgSrcList : [ diff --git a/src/page/home/gameData/data.json b/src/page/home/gameData/data.json index 6f86dca..a9abd12 100644 --- a/src/page/home/gameData/data.json +++ b/src/page/home/gameData/data.json @@ -1,6 +1,7 @@ { "title" : "Plane Game", "enemyPlaneList" : [ - { "level" : 1, "num" : 60 } + { "level" : 1, "num" : 25 }, + { "level" : 2, "num" : 36 } ] } \ No newline at end of file diff --git a/src/page/home/img/planes/userPlaneExp/exp1.png b/src/page/home/img/planes/enemyLevel1PlaneExp/exp1.png similarity index 100% rename from src/page/home/img/planes/userPlaneExp/exp1.png rename to src/page/home/img/planes/enemyLevel1PlaneExp/exp1.png diff --git a/src/page/home/img/planes/userPlaneExp/exp10.png b/src/page/home/img/planes/enemyLevel1PlaneExp/exp10.png similarity index 100% rename from src/page/home/img/planes/userPlaneExp/exp10.png rename to src/page/home/img/planes/enemyLevel1PlaneExp/exp10.png diff --git a/src/page/home/img/planes/userPlaneExp/exp11.png b/src/page/home/img/planes/enemyLevel1PlaneExp/exp11.png similarity index 100% rename from src/page/home/img/planes/userPlaneExp/exp11.png rename to src/page/home/img/planes/enemyLevel1PlaneExp/exp11.png diff --git a/src/page/home/img/planes/userPlaneExp/exp2.png b/src/page/home/img/planes/enemyLevel1PlaneExp/exp2.png similarity index 100% rename from src/page/home/img/planes/userPlaneExp/exp2.png rename to src/page/home/img/planes/enemyLevel1PlaneExp/exp2.png diff --git a/src/page/home/img/planes/userPlaneExp/exp3.png b/src/page/home/img/planes/enemyLevel1PlaneExp/exp3.png similarity index 100% rename from src/page/home/img/planes/userPlaneExp/exp3.png rename to src/page/home/img/planes/enemyLevel1PlaneExp/exp3.png diff --git a/src/page/home/img/planes/userPlaneExp/exp4.png b/src/page/home/img/planes/enemyLevel1PlaneExp/exp4.png similarity index 100% rename from src/page/home/img/planes/userPlaneExp/exp4.png rename to src/page/home/img/planes/enemyLevel1PlaneExp/exp4.png diff --git a/src/page/home/img/planes/userPlaneExp/exp5.png b/src/page/home/img/planes/enemyLevel1PlaneExp/exp5.png similarity index 100% rename from src/page/home/img/planes/userPlaneExp/exp5.png rename to src/page/home/img/planes/enemyLevel1PlaneExp/exp5.png diff --git a/src/page/home/img/planes/userPlaneExp/exp6.png b/src/page/home/img/planes/enemyLevel1PlaneExp/exp6.png similarity index 100% rename from src/page/home/img/planes/userPlaneExp/exp6.png rename to src/page/home/img/planes/enemyLevel1PlaneExp/exp6.png diff --git a/src/page/home/img/planes/userPlaneExp/exp7.png b/src/page/home/img/planes/enemyLevel1PlaneExp/exp7.png similarity index 100% rename from src/page/home/img/planes/userPlaneExp/exp7.png rename to src/page/home/img/planes/enemyLevel1PlaneExp/exp7.png diff --git a/src/page/home/img/planes/userPlaneExp/exp8.png b/src/page/home/img/planes/enemyLevel1PlaneExp/exp8.png similarity index 100% rename from src/page/home/img/planes/userPlaneExp/exp8.png rename to src/page/home/img/planes/enemyLevel1PlaneExp/exp8.png diff --git a/src/page/home/img/planes/userPlaneExp/exp9.png b/src/page/home/img/planes/enemyLevel1PlaneExp/exp9.png similarity index 100% rename from src/page/home/img/planes/userPlaneExp/exp9.png rename to src/page/home/img/planes/enemyLevel1PlaneExp/exp9.png diff --git a/src/page/home/img/planes/enemyLevel2PlaneExp/exp1.png b/src/page/home/img/planes/enemyLevel2PlaneExp/exp1.png new file mode 100644 index 0000000..0235c7a Binary files /dev/null and b/src/page/home/img/planes/enemyLevel2PlaneExp/exp1.png differ diff --git a/src/page/home/img/planes/enemyLevel2PlaneExp/exp10.png b/src/page/home/img/planes/enemyLevel2PlaneExp/exp10.png new file mode 100644 index 0000000..c62ebec Binary files /dev/null and b/src/page/home/img/planes/enemyLevel2PlaneExp/exp10.png differ diff --git a/src/page/home/img/planes/enemyLevel2PlaneExp/exp11.png b/src/page/home/img/planes/enemyLevel2PlaneExp/exp11.png new file mode 100644 index 0000000..edee73e Binary files /dev/null and b/src/page/home/img/planes/enemyLevel2PlaneExp/exp11.png differ diff --git a/src/page/home/img/planes/enemyLevel2PlaneExp/exp2.png b/src/page/home/img/planes/enemyLevel2PlaneExp/exp2.png new file mode 100644 index 0000000..954ab62 Binary files /dev/null and b/src/page/home/img/planes/enemyLevel2PlaneExp/exp2.png differ diff --git a/src/page/home/img/planes/enemyLevel2PlaneExp/exp3.png b/src/page/home/img/planes/enemyLevel2PlaneExp/exp3.png new file mode 100644 index 0000000..6a597b2 Binary files /dev/null and b/src/page/home/img/planes/enemyLevel2PlaneExp/exp3.png differ diff --git a/src/page/home/img/planes/enemyLevel2PlaneExp/exp4.png b/src/page/home/img/planes/enemyLevel2PlaneExp/exp4.png new file mode 100644 index 0000000..0a3f6bd Binary files /dev/null and b/src/page/home/img/planes/enemyLevel2PlaneExp/exp4.png differ diff --git a/src/page/home/img/planes/enemyLevel2PlaneExp/exp5.png b/src/page/home/img/planes/enemyLevel2PlaneExp/exp5.png new file mode 100644 index 0000000..5b2cc1f Binary files /dev/null and b/src/page/home/img/planes/enemyLevel2PlaneExp/exp5.png differ diff --git a/src/page/home/img/planes/enemyLevel2PlaneExp/exp6.png b/src/page/home/img/planes/enemyLevel2PlaneExp/exp6.png new file mode 100644 index 0000000..eabe780 Binary files /dev/null and b/src/page/home/img/planes/enemyLevel2PlaneExp/exp6.png differ diff --git a/src/page/home/img/planes/enemyLevel2PlaneExp/exp7.png b/src/page/home/img/planes/enemyLevel2PlaneExp/exp7.png new file mode 100644 index 0000000..74a0430 Binary files /dev/null and b/src/page/home/img/planes/enemyLevel2PlaneExp/exp7.png differ diff --git a/src/page/home/img/planes/enemyLevel2PlaneExp/exp8.png b/src/page/home/img/planes/enemyLevel2PlaneExp/exp8.png new file mode 100644 index 0000000..263eb12 Binary files /dev/null and b/src/page/home/img/planes/enemyLevel2PlaneExp/exp8.png differ diff --git a/src/page/home/img/planes/enemyLevel2PlaneExp/exp9.png b/src/page/home/img/planes/enemyLevel2PlaneExp/exp9.png new file mode 100644 index 0000000..8345c7b Binary files /dev/null and b/src/page/home/img/planes/enemyLevel2PlaneExp/exp9.png differ diff --git a/src/page/home/img/planes/level2_enemy_planes.png b/src/page/home/img/planes/level2_enemy_planes.png new file mode 100644 index 0000000..e607f1f Binary files /dev/null and b/src/page/home/img/planes/level2_enemy_planes.png differ diff --git a/src/page/home/img/shot/enemyPlaneShot/shot5_1.png b/src/page/home/img/shot/enemyLevel1PlaneShot/shot5_1.png similarity index 100% rename from src/page/home/img/shot/enemyPlaneShot/shot5_1.png rename to src/page/home/img/shot/enemyLevel1PlaneShot/shot5_1.png diff --git a/src/page/home/img/shot/enemyPlaneShot/shot5_2.png b/src/page/home/img/shot/enemyLevel1PlaneShot/shot5_2.png similarity index 100% rename from src/page/home/img/shot/enemyPlaneShot/shot5_2.png rename to src/page/home/img/shot/enemyLevel1PlaneShot/shot5_2.png diff --git a/src/page/home/img/shot/enemyPlaneShot/shot5_3.png b/src/page/home/img/shot/enemyLevel1PlaneShot/shot5_3.png similarity index 100% rename from src/page/home/img/shot/enemyPlaneShot/shot5_3.png rename to src/page/home/img/shot/enemyLevel1PlaneShot/shot5_3.png diff --git a/src/page/home/img/shot/enemyPlaneShot/shot5_4.png b/src/page/home/img/shot/enemyLevel1PlaneShot/shot5_4.png similarity index 100% rename from src/page/home/img/shot/enemyPlaneShot/shot5_4.png rename to src/page/home/img/shot/enemyLevel1PlaneShot/shot5_4.png diff --git a/src/page/home/img/shot/enemyPlaneShot/shot5_5.png b/src/page/home/img/shot/enemyLevel1PlaneShot/shot5_5.png similarity index 100% rename from src/page/home/img/shot/enemyPlaneShot/shot5_5.png rename to src/page/home/img/shot/enemyLevel1PlaneShot/shot5_5.png diff --git a/src/page/home/img/shot/enemyPlaneShot/shot5_exp1.png b/src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp1.png similarity index 100% rename from src/page/home/img/shot/enemyPlaneShot/shot5_exp1.png rename to src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp1.png diff --git a/src/page/home/img/shot/enemyPlaneShot/shot5_exp2.png b/src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp2.png similarity index 100% rename from src/page/home/img/shot/enemyPlaneShot/shot5_exp2.png rename to src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp2.png diff --git a/src/page/home/img/shot/enemyPlaneShot/shot5_exp3.png b/src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp3.png similarity index 100% rename from src/page/home/img/shot/enemyPlaneShot/shot5_exp3.png rename to src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp3.png diff --git a/src/page/home/img/shot/enemyPlaneShot/shot5_exp4.png b/src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp4.png similarity index 100% rename from src/page/home/img/shot/enemyPlaneShot/shot5_exp4.png rename to src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp4.png diff --git a/src/page/home/img/shot/enemyPlaneShot/shot5_exp5.png b/src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp5.png similarity index 100% rename from src/page/home/img/shot/enemyPlaneShot/shot5_exp5.png rename to src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp5.png diff --git a/src/page/home/img/shot/enemyPlaneShot/shot5_exp6.png b/src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp6.png similarity index 100% rename from src/page/home/img/shot/enemyPlaneShot/shot5_exp6.png rename to src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp6.png diff --git a/src/page/home/img/shot/enemyPlaneShot/shot5_exp7.png b/src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp7.png similarity index 100% rename from src/page/home/img/shot/enemyPlaneShot/shot5_exp7.png rename to src/page/home/img/shot/enemyLevel1PlaneShot/shot5_exp7.png diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_1.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_1.png new file mode 100644 index 0000000..7e62989 Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_1.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_2.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_2.png new file mode 100644 index 0000000..4886f0c Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_2.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_3.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_3.png new file mode 100644 index 0000000..7cb5c6b Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_3.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_4.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_4.png new file mode 100644 index 0000000..316efc6 Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_4.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp1.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp1.png new file mode 100644 index 0000000..4c04426 Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp1.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp10.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp10.png new file mode 100644 index 0000000..07ad620 Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp10.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp2.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp2.png new file mode 100644 index 0000000..dc65f06 Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp2.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp3.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp3.png new file mode 100644 index 0000000..c067312 Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp3.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp4.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp4.png new file mode 100644 index 0000000..cc9fb77 Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp4.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp5.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp5.png new file mode 100644 index 0000000..bc14bb2 Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp5.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp6.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp6.png new file mode 100644 index 0000000..421bf81 Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp6.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp7.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp7.png new file mode 100644 index 0000000..8961ad2 Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp7.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp8.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp8.png new file mode 100644 index 0000000..02a9d27 Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp8.png differ diff --git a/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp9.png b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp9.png new file mode 100644 index 0000000..199ea6c Binary files /dev/null and b/src/page/home/img/shot/enemyLevel2PlaneShot/shot6_exp9.png differ