diff --git a/assets/advanced-enemies.png b/assets/advanced-enemies.png index 3e79b5d..9deb145 100644 Binary files a/assets/advanced-enemies.png and b/assets/advanced-enemies.png differ diff --git a/assets/advanced-enemies.psd b/assets/advanced-enemies.psd index 5ec8169..a4d97bd 100644 Binary files a/assets/advanced-enemies.psd and b/assets/advanced-enemies.psd differ diff --git a/src/support/enemies.js b/src/support/enemies.js index 39b90bd..b2beb59 100644 --- a/src/support/enemies.js +++ b/src/support/enemies.js @@ -14,7 +14,7 @@ export class Enemies { this.baseSprite = ENEMIES_CONFIG[type].spriteStart; this.spawnRange = { low: 500, - high: 8000 + high: 12000 } this.spawnEnemy(); diff --git a/src/support/enemiesConfig.js b/src/support/enemiesConfig.js index b2c7329..72c6e17 100644 --- a/src/support/enemiesConfig.js +++ b/src/support/enemiesConfig.js @@ -86,5 +86,16 @@ export const ENEMIES_CONFIG = { 'spriteSheet': 'advanced-enemies', 'dropLow': 15, 'dropHigh': 25 + }, + 'advanced3': { + 'spread': 0, + 'health': 1100, + 'fullHealth': 1100, + 'speedLow': 65, + 'speedHigh': 85, + 'spriteStart': 20, + 'spriteSheet': 'advanced-enemies', + 'dropLow': 15, + 'dropHigh': 25 } } \ No newline at end of file diff --git a/src/support/towerConfig.js b/src/support/towerConfig.js index 723a046..493ac14 100644 --- a/src/support/towerConfig.js +++ b/src/support/towerConfig.js @@ -33,43 +33,6 @@ export const TOWERS_CONFIG = { 'anim': 'gun-level3-fire' } }, - 'cannon': { - 'name': 'Cannon', - 'cost': 200, - 'spriteStart': 10, - 'dmgType': 'aoe', - 'level1': { - 'dmgLow': 15, - 'dmgHigh': 35, - 'rate': 2500, - 'duration': 200, - 'range': 400, - 'aoe': 55, - 'anim': 'cannon-level1-fire' - }, - 'level2': { - 'sprite': 12, - 'cost': 400, - 'dmgLow': 28, - 'dmgHigh': 60, - 'rate': 2500, - 'duration': 500, - 'range': 450, - 'aoe': 60, - 'anim': 'cannon-level1-fire' - }, - 'level3': { - 'sprite': 14, - 'cost': 800, - 'dmgLow': 35, - 'dmgHigh': 90, - 'rate': 2500, - 'duration': 500, - 'range': 500, - 'aoe': 65, - 'anim': 'cannon-level1-fire' - } - }, 'flame': { 'name': 'Flamethrower', 'cost': 150, @@ -107,39 +70,41 @@ export const TOWERS_CONFIG = { 'anim': 'flamethrower' } }, - 'icbm': { - 'name': 'ICBM Launcher', - 'cost': 500, - 'spriteStart': 30, + 'cannon': { + 'name': 'Cannon', + 'cost': 200, + 'spriteStart': 10, 'dmgType': 'aoe', 'level1': { - 'dmgLow': 40, - 'dmgHigh': 50, - 'rate': 10000, - 'duration': 2000, - 'range': 800, - 'aoe': 200, - 'anim': 'none' + 'dmgLow': 15, + 'dmgHigh': 35, + 'rate': 2500, + 'duration': 200, + 'range': 400, + 'aoe': 55, + 'anim': 'cannon-level1-fire' }, 'level2': { - 'cost': 1000, - 'dmgLow': 40, - 'dmgHigh': 50, - 'rate': 8000, - 'duration': 2000, - 'range': 800, - 'aoe': 210, - 'anim': 'none' + 'sprite': 12, + 'cost': 400, + 'dmgLow': 28, + 'dmgHigh': 60, + 'rate': 2500, + 'duration': 500, + 'range': 450, + 'aoe': 60, + 'anim': 'cannon-level1-fire' }, 'level3': { - 'cost': 2000, - 'dmgLow': 50, - 'dmgHigh': 60, - 'rate': 5000, - 'duration': 2000, - 'range': 800, - 'aoe': 225, - 'anim': 'none' + 'sprite': 14, + 'cost': 800, + 'dmgLow': 35, + 'dmgHigh': 90, + 'rate': 2500, + 'duration': 500, + 'range': 500, + 'aoe': 65, + 'anim': 'cannon-level1-fire' } }, 'laser': { @@ -175,5 +140,40 @@ export const TOWERS_CONFIG = { 'range': 400, 'anim': 'laser-level3-fire' } - } + }, + 'icbm': { + 'name': 'ICBM Launcher', + 'cost': 500, + 'spriteStart': 30, + 'dmgType': 'aoe', + 'level1': { + 'dmgLow': 40, + 'dmgHigh': 50, + 'rate': 10000, + 'duration': 2000, + 'range': 800, + 'aoe': 200, + 'anim': 'none' + }, + 'level2': { + 'cost': 1000, + 'dmgLow': 40, + 'dmgHigh': 50, + 'rate': 8000, + 'duration': 2000, + 'range': 800, + 'aoe': 210, + 'anim': 'none' + }, + 'level3': { + 'cost': 2000, + 'dmgLow': 50, + 'dmgHigh': 60, + 'rate': 5000, + 'duration': 2000, + 'range': 800, + 'aoe': 225, + 'anim': 'none' + } + }, } \ No newline at end of file diff --git a/src/support/towerManager.js b/src/support/towerManager.js index c943ce6..130692a 100644 --- a/src/support/towerManager.js +++ b/src/support/towerManager.js @@ -60,7 +60,7 @@ export class TowerManager { upgradeMenu(tower) { if (this.upgradeDetails) this.upgradeDetails.destroy(); - + this.selectedTower = tower; const currentLevel = `level${tower.props.level}`; const nextLevel = currentLevel === 'level3' ? 'level3' : `level${tower.props.level + 1}`; @@ -92,7 +92,7 @@ export class TowerManager { this.upgradeCost = TOWERS_CONFIG[tower.props.type][nextLevel].cost; - this.upgradeText = this.scene.add.text(tower.x + 175, tower.y - 50, `Upgrade: ${this.upgradeCost}`, { + this.upgradeText = this.scene.add.text(tower.x + 175, tower.y - 75, `Upgrade: ${this.upgradeCost}`, { fontFamily: 'neuropol, arial', fontSize: '32px', fill: '#ffd900ff', @@ -109,6 +109,20 @@ export class TowerManager { }).setDepth(13).setInteractive(); this.upgradeDetails.add(this.upgradeText); + if (currentLevel !== 3) { + const currentStats = TOWERS_CONFIG[tower.props.type][currentLevel]; + const nextStats = TOWERS_CONFIG[tower.props.type][nextLevel]; + const rangeText = `Range: +${nextStats.range - currentStats.range}\n`; + const damageText = `Damage: +${nextStats.dmgHigh - currentStats.dmgHigh}`; + const upgradesText = `${rangeText}${damageText}`; + + this.upgradeTextStats = this.scene.add.text(tower.x + 200, tower.y - 25, upgradesText, { + fontFamily: 'neuropol, arial', fontSize: '20px', fill: '#00ff88ff', stroke: '#00c493ff', strokeThickness: 2, + shadow: { offsetX: 2, offsetY: 2, color: '#000000', blur: 2, stroke: false, fill: true } + }).setDepth(13).setInteractive(); + this.upgradeDetails.add(this.upgradeTextStats); + } + if (currentLevel === 'level3') { this.upgradeText.setText('Max Upgrade').disableInteractive(); } diff --git a/src/support/waveConfig.js b/src/support/waveConfig.js index d1ca967..910643b 100644 --- a/src/support/waveConfig.js +++ b/src/support/waveConfig.js @@ -174,6 +174,32 @@ export const WAVE_CONFIG = { 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: 45, + advanced3: 2, + basic4: 15 + }, + 4: { + begin: 35, + medium1: 4, + medium2: 4, + basic4: 20 + } } } } \ No newline at end of file