Add tower upgrade functionality with cost and sprite updates
This commit implements tower upgrading mechanics by: - Adding sprite and cost properties to all tower levels in towerConfig.js - Implementing upgradeMenu() and upgradeTower() methods in TowerManager.js - Adding interactive tower selection for upgrades - Updating tower textures during upgrades - Including gold cost validation for upgrades The changes enable players to upgrade towers up to level 3, with appropriate cost increases and visual feedback through sprite changes.
This commit is contained in:
parent
37a292c022
commit
b554839537
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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) => {
|
||||
|
|
|
|||
Loading…
Reference in New Issue