diff --git a/assets/level3.json b/assets/level3.json new file mode 100644 index 0000000..720717a --- /dev/null +++ b/assets/level3.json @@ -0,0 +1,116 @@ +{ "compressionlevel":-1, + "height":14, + "infinite":false, + "layers":[ + { + "data":[7, 7, 11, 7, 7, 7, 7, 7, 7, 7, 7, 2, 2, 0, 0, 0, + 7, 7, 11, 7, 11, 11, 11, 11, 11, 7, 7, 2, 2, 0, 0, 0, + 7, 7, 11, 7, 7, 7, 7, 7, 11, 7, 7, 2, 2, 0, 0, 0, + 7, 7, 11, 11, 7, 7, 7, 7, 11, 7, 7, 2, 2, 0, 0, 0, + 12, 12, 12, 11, 12, 12, 12, 12, 11, 12, 12, 2, 2, 0, 0, 0, + 2, 2, 2, 3221225478, 2, 2, 2, 2, 3221225478, 2, 2, 2, 2, 0, 0, 0, + 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 0, 0, 0, + 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 0, 0, 0, + 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 0, 0, 0, + 2, 6, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 0, 0, 0, + 7, 11, 7, 7, 7, 7, 7, 7, 11, 7, 7, 2, 2, 0, 0, 0, + 7, 11, 7, 7, 7, 7, 7, 7, 11, 7, 7, 2, 2, 0, 0, 0, + 7, 11, 11, 11, 11, 11, 11, 11, 11, 7, 7, 2, 2, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 2, 2, 0, 0, 0], + "height":14, + "id":1, + "name":"main", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":16, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 16, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":14, + "id":2, + "name":"platforms", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":16, + "x":0, + "y":0 + }], + "nextlayerid":3, + "nextobjectid":1, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.11.2", + "tileheight":200, + "tilesets":[ + { + "columns":5, + "firstgid":1, + "image":"terrain2.png", + "imageheight":1000, + "imagewidth":1000, + "margin":0, + "name":"terrain2", + "spacing":0, + "tilecount":25, + "tileheight":200, + "tiles":[ + { + "id":1, + "properties":[ + { + "name":"collides", + "type":"bool", + "value":true + }] + }, + { + "id":3, + "properties":[ + { + "name":"collides", + "type":"bool", + "value":true + }] + }, + { + "id":6, + "properties":[ + { + "name":"collides", + "type":"bool", + "value":true + }] + }, + { + "id":11, + "properties":[ + { + "name":"collides", + "type":"bool", + "value":true + }] + }], + "tilewidth":200 + }], + "tilewidth":200, + "type":"map", + "version":"1.10", + "width":16 +} \ No newline at end of file diff --git a/assets/terrain2.png b/assets/terrain2.png new file mode 100644 index 0000000..34b70ed Binary files /dev/null and b/assets/terrain2.png differ diff --git a/assets/terrain2.psd b/assets/terrain2.psd new file mode 100644 index 0000000..140707d Binary files /dev/null and b/assets/terrain2.psd differ diff --git a/assets/tilesets/level3.tmx b/assets/tilesets/level3.tmx new file mode 100644 index 0000000..2188af8 --- /dev/null +++ b/assets/tilesets/level3.tmx @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +7,7,11,7,7,7,7,7,7,7,7,2,2,0,0,0, +7,7,11,7,11,11,11,11,11,7,7,2,2,0,0,0, +7,7,11,7,7,7,7,7,11,7,7,2,2,0,0,0, +7,7,11,11,7,7,7,7,11,7,7,2,2,0,0,0, +12,12,12,11,12,12,12,12,11,12,12,2,2,0,0,0, +2,2,2,3221225478,2,2,2,2,3221225478,2,2,2,2,0,0,0, +2,2,2,1,2,2,2,2,1,2,2,2,2,0,0,0, +2,1,1,1,2,2,2,2,1,2,2,2,2,0,0,0, +2,1,2,2,2,2,2,2,1,2,2,2,2,0,0,0, +2,6,2,2,2,2,2,2,6,2,2,2,2,0,0,0, +7,11,7,7,7,7,7,7,11,7,7,2,2,0,0,0, +7,11,7,7,7,7,7,7,11,7,7,2,2,0,0,0, +7,11,11,11,11,11,11,11,11,7,7,2,2,0,0,0, +7,7,7,7,7,7,7,7,7,7,7,2,2,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,16,0,16,0,0,0,16,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0, +0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,16,0,0,0,0,16,0,0,0,0,0,0, +16,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + diff --git a/src/scenes/level.js b/src/scenes/level.js index d1e1d36..6755b19 100644 --- a/src/scenes/level.js +++ b/src/scenes/level.js @@ -9,6 +9,11 @@ export class Level extends Phaser.Scene { this.level = 1; this.wave = 1; this.gold = 150; + this.terrain = { + 1: 'terrain', + 2: 'terrain', + 3: 'terrain2', + } } init(data) { @@ -20,7 +25,7 @@ export class Level extends Phaser.Scene { preload() { this.load.tilemapTiledJSON(`level${this.level}`, `assets/level${this.level}.json`); - this.load.image('terrain', 'assets/terrain.png'); + this.load.image(`${this.terrain[this.level]}`, `assets/${this.terrain[this.level]}.png`); this.load.spritesheet('ammo', 'assets/ammo.png', { frameWidth: 50, frameHeight: 50 @@ -63,7 +68,7 @@ export class Level extends Phaser.Scene { create() { this.levelMap = this.make.tilemap({ key: `level${this.level}` }); - const terrainTiles = this.levelMap.addTilesetImage('terrain', 'terrain'); + const terrainTiles = this.levelMap.addTilesetImage(`${this.terrain[this.level]}`, `${this.terrain[this.level]}`); this.mainLayer = this.levelMap.createLayer('main', terrainTiles) .setCollisionByProperty({ collides: true }); this.platformsLayer = this.levelMap.createLayer('platforms', terrainTiles); diff --git a/src/support/towerConfig.js b/src/support/towerConfig.js index 493ac14..895e1fa 100644 --- a/src/support/towerConfig.js +++ b/src/support/towerConfig.js @@ -157,21 +157,21 @@ export const TOWERS_CONFIG = { }, 'level2': { 'cost': 1000, - 'dmgLow': 40, - 'dmgHigh': 50, - 'rate': 8000, + 'dmgLow': 55, + 'dmgHigh': 65, + 'rate': 9000, 'duration': 2000, - 'range': 800, + 'range': 900, 'aoe': 210, 'anim': 'none' }, 'level3': { 'cost': 2000, - 'dmgLow': 50, - 'dmgHigh': 60, - 'rate': 5000, + 'dmgLow': 80, + 'dmgHigh': 90, + 'rate': 7000, 'duration': 2000, - 'range': 800, + 'range': 1000, 'aoe': 225, 'anim': 'none' } diff --git a/src/support/waveConfig.js b/src/support/waveConfig.js index dc4901c..2621b10 100644 --- a/src/support/waveConfig.js +++ b/src/support/waveConfig.js @@ -478,5 +478,245 @@ export const WAVE_CONFIG = { basic4: 20 } } + }, + // Level + 3: { + //Spawn Point + spawnX: 2, + spawnY: 0, + endX: 4, + endY: 1, + // Wave + 1: { + // Schedule + 1: { + begin: 0, + basic1: 5, + }, + 2: { + begin: 15, + basic1: 8, + }, + 3: { + begin: 30, + basic1: 10, + } + }, + // Wave + 2: { + // Schedule + 1: { + begin: 0, + basic1: 8, + basic2: 1 + }, + 2: { + begin: 15, + basic1: 5, + basic2: 2 + }, + 3: { + begin: 30, + basic1: 5, + basic2: 4 + } + }, + // Wave + 3: { + // Schedule + 1: { + begin: 0, + basic2: 5 + }, + 2: { + begin: 15, + basic2: 6 + }, + 3: { + begin: 30, + basic2: 8, + basic3: 1 + } + }, + // Wave + 4: { + // Schedule + 1: { + begin: 0, + basic1: 10, + basic3: 2, + }, + 2: { + begin: 15, + basic1: 8, + basic2: 3, + basic3: 2 + }, + 3: { + begin: 30, + basic3: 4 + } + }, + //Wave + 5: { + //Schedule + 1: { + begin: 0, + basic1: 10, + basic2: 2, + basic3: 1 + }, + 2: { + begin: 15, + advanced1: 1, + }, + 3: { + begin: 25, + basic1: 8, + basic2: 3, + basic3: 2 + }, + 4: { + begin: 35, + basic1: 25 + }, + 5: { + begin: 40, + advanced1: 1 + } + }, + //Wave + 6: { + //Schedule + 1: { + begin: 0, + basic2: 10, + advanced2: 1 + }, + 2: { + begin: 15, + basic1: 20, + }, + 3: { + begin: 25, + basic3: 6, + advanced1: 1 + }, + 4: { + begin: 35, + advanced2: 1 + } + }, + //Wave + 7: { + //Schedule + 1: { + begin: 0, + medium1: 5, + basic3: 5 + }, + 2: { + begin: 15, + basic2: 10, + basic4: 2, + advanced1: 1 + }, + 3: { + begin: 25, + medium1: 6, + medium2: 2 + }, + 4: { + begin: 35, + advanced2: 1 + } + }, + //Wave + 8: { + //Schedule + 1: { + begin: 0, + advanced2: 1, + basic4: 20 + }, + 2: { + begin: 25, + basic2: 10, + medium2: 6, + }, + 3: { + begin: 35, + medium2: 5, + basic4: 15 + }, + 4: { + begin: 45, + advanced1: 1, + basic3: 10 + } + }, + //Wave + 9: { + //Schedule + 1: { + begin: 0, + advanced3: 1, + medium1: 4, + basic4: 6 + }, + 2: { + begin: 25, + basic3: 10, + medium2: 6, + }, + 3: { + begin: 40, + advanced3: 2, + basic4: 15 + }, + 4: { + begin: 55, + medium1: 4, + medium2: 4, + basic4: 20 + } + }, + //Wave + 10: { + //Schedule + 1: { + begin: 0, + advanced3: 2, + advanced1: 2, + medium1: 4, + basic4: 4, + basic3: 4 + }, + 2: { + begin: 25, + advanced2: 2, + medium2: 4, + basic2: 10 + }, + 3: { + begin: 45, + advanced3: 4, + basic4: 20 + }, + 4: { + begin: 50, + advanced1: 1, + advanced2: 1, + basic3: 10, + medium1: 20, + medium2: 10 + }, + 4: { + begin: 60, + medium1: 10, + medium2: 10, + basic4: 20 + } + } } } \ No newline at end of file