Add Level 3 with new terrain, updated tower stats, and comprehensive wave configurations
This commit introduces Level 3 with: - New terrain assets (terrain2.png) and tilemap configuration - Updated tower statistics for level 2 and 3 in towerConfig.js - Complete wave scheduling for level 3 in waveConfig.js - Dynamic asset loading based on current level in level.js
This commit is contained in:
parent
7112571a2b
commit
f843aee85f
|
|
@ -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
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 509 KiB |
Binary file not shown.
|
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.10" tiledversion="1.11.2" orientation="orthogonal" renderorder="right-down" width="16" height="14" tilewidth="200" tileheight="200" infinite="0" nextlayerid="3" nextobjectid="1">
|
||||
<editorsettings>
|
||||
<export target="../level3.tmj" format="json"/>
|
||||
</editorsettings>
|
||||
<tileset firstgid="1" name="terrain2" tilewidth="200" tileheight="200" tilecount="25" columns="5">
|
||||
<image source="../terrain2.png" width="1000" height="1000"/>
|
||||
<tile id="1">
|
||||
<properties>
|
||||
<property name="collides" type="bool" value="true"/>
|
||||
</properties>
|
||||
</tile>
|
||||
<tile id="3">
|
||||
<properties>
|
||||
<property name="collides" type="bool" value="true"/>
|
||||
</properties>
|
||||
</tile>
|
||||
<tile id="6">
|
||||
<properties>
|
||||
<property name="collides" type="bool" value="true"/>
|
||||
</properties>
|
||||
</tile>
|
||||
<tile id="11">
|
||||
<properties>
|
||||
<property name="collides" type="bool" value="true"/>
|
||||
</properties>
|
||||
</tile>
|
||||
</tileset>
|
||||
<layer id="1" name="main" width="16" height="14">
|
||||
<data encoding="csv">
|
||||
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
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="2" name="platforms" width="16" height="14">
|
||||
<data encoding="csv">
|
||||
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
|
||||
</data>
|
||||
</layer>
|
||||
</map>
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue