diff --git a/src/support/towerConfig.js b/src/support/towerConfig.js index 4f5478d..9a654a1 100644 --- a/src/support/towerConfig.js +++ b/src/support/towerConfig.js @@ -12,6 +12,8 @@ export const TOWERS_CONFIG = { 'range': 300 }, 'level2': { + 'sprite': 2, + 'cost': 200, 'dmgLow': 15, 'dmgHigh': 35, 'rate': 1500, @@ -19,6 +21,8 @@ export const TOWERS_CONFIG = { 'range': 350 }, 'level3': { + 'sprite': 4, + 'cost': 400, 'dmgLow': 25, 'dmgHigh': 50, 'rate': 1000, @@ -40,16 +44,20 @@ export const TOWERS_CONFIG = { 'aoe': 50, }, 'level2': { - 'dmgLow': 25, - 'dmgHigh': 45, + 'sprite': 12, + 'cost': 400, + 'dmgLow': 28, + 'dmgHigh': 60, 'rate': 2500, 'duration': 500, 'range': 450, 'aoe': 25, }, 'level3': { + 'sprite': 14, + 'cost': 800, 'dmgLow': 35, - 'dmgHigh': 65, + 'dmgHigh': 90, 'rate': 2500, 'duration': 500, 'range': 500, @@ -70,16 +78,20 @@ export const TOWERS_CONFIG = { 'aoe': 100, }, 'level2': { - 'dmgLow': 3, - 'dmgHigh': 8, + 'sprite': 21, + 'cost': 300, + 'dmgLow': 2, + 'dmgHigh': 10, 'rate': 1000, 'duration': 1000, 'range': 350, 'aoe': 100, }, 'level3': { + 'sprite': 22, + 'cost': 600, 'dmgLow': 5, - 'dmgHigh': 12, + 'dmgHigh': 18, 'rate': 1000, 'duration': 1000, 'range': 400, diff --git a/src/support/towerManager.js b/src/support/towerManager.js index 83368c8..3808acb 100644 --- a/src/support/towerManager.js +++ b/src/support/towerManager.js @@ -27,6 +27,10 @@ export class TowerManager { tower.id = uniqueId; this.scene.towers.add(tower); + tower.setInteractive(); + tower.on('pointerdown', () => { + this.upgradeMenu(tower); + }); // Draw range circle const config = TOWERS_CONFIG[type].level1; @@ -36,6 +40,22 @@ export class TowerManager { } } + upgradeMenu(tower) { + // TODO: update this asap. + const nextLevel = `level${tower.props.level+1}`; + if (this.scene.UIScene.interfaceManager.gold >= TOWERS_CONFIG[tower.props.type][nextLevel].cost){ + this.upgradeTower(tower) + } + } + + upgradeTower(tower) { + + if (tower.props.level === 3) return; + tower.props.level++; + const newLevel = `level${tower.props.level}` + tower.setTexture('towers', TOWERS_CONFIG[tower.props.type][newLevel].sprite); + } + update(time, delta) { // Iterate through all towers this.scene.towers.children.iterate((tower) => {