balanced gems

This commit is contained in:
koneko 2025-03-07 01:08:17 +01:00
parent aec0821dbb
commit a3e8be3c18
5 changed files with 193 additions and 174 deletions

View File

@ -8,7 +8,7 @@
"textures": [], "textures": [],
"cantCombineWith": [], "cantCombineWith": [],
"specialCombine": [], "specialCombine": [],
"initialGemValue": 50, "initialGemValue": 75,
"genericImprovements": [ "genericImprovements": [
{ {
"damageUp": 1, "damageUp": 1,
@ -29,9 +29,9 @@
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 0, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 2,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 250 "gemValueUp": 250
}, },
{ {
@ -47,12 +47,12 @@
"attackSpeedUp": 0, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 650 "gemValueUp": 650
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 0, "attackSpeedUp": 100,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 1,
@ -63,7 +63,7 @@
"attackSpeedUp": 0, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 900 "gemValueUp": 900
}, },
{ {
@ -76,7 +76,7 @@
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 0, "attackSpeedUp": 250,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 1,
@ -158,71 +158,71 @@
"textures": [], "textures": [],
"cantCombineWith": [], "cantCombineWith": [],
"specialCombine": [], "specialCombine": [],
"initialGemValue": 10, "initialGemValue": 80,
"genericImprovements": [ "genericImprovements": [
{ {
"damageUp": 2, "damageUp": 1,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 0 "gemValueUp": 100
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 1,
"gemValueUp": 10 "gemValueUp": 150
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 2,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 0 "gemValueUp": 250
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 1,
"gemValueUp": 10 "gemValueUp": 400
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 0 "gemValueUp": 650
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 1,
"gemValueUp": 10 "gemValueUp": 750
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 0 "gemValueUp": 900
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 100,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 1,
"gemValueUp": 10 "gemValueUp": 1000
} }
], ],
"gemResistanceModifications": [ "gemResistanceModifications": [
@ -230,14 +230,7 @@
"physical": 0, "physical": 0,
"divine": 0, "divine": 0,
"fire": 0, "fire": 0,
"ice": 0.1, "ice": 0.05,
"frostfire": 0
},
{
"physical": 0,
"divine": 0,
"fire": 0,
"ice": 0.2,
"frostfire": 0 "frostfire": 0
}, },
{ {
@ -251,14 +244,7 @@
"physical": 0, "physical": 0,
"divine": 0, "divine": 0,
"fire": 0, "fire": 0,
"ice": 0.2, "ice": 0.15,
"frostfire": 0
},
{
"physical": 0,
"divine": 0,
"fire": 0,
"ice": 0.1,
"frostfire": 0 "frostfire": 0
}, },
{ {
@ -272,15 +258,29 @@
"physical": 0, "physical": 0,
"divine": 0, "divine": 0,
"fire": 0, "fire": 0,
"ice": 0.1, "ice": 0.25,
"frostfire": 0 "frostfire": 0.1
}, },
{ {
"physical": 0, "physical": 0,
"divine": 0, "divine": 0,
"fire": 0, "fire": 0,
"ice": 0.2, "ice": 0.3,
"frostfire": 0 "frostfire": 0.1
},
{
"physical": 0,
"divine": 0,
"fire": 0,
"ice": 0.35,
"frostfire": 0.2
},
{
"physical": 0,
"divine": 0,
"fire": 0,
"ice": 0.4,
"frostfire": 0.25
} }
] ]
}, },
@ -293,63 +293,63 @@
"textures": [], "textures": [],
"cantCombineWith": [], "cantCombineWith": [],
"specialCombine": [], "specialCombine": [],
"initialGemValue": 10, "initialGemValue": 100,
"genericImprovements": [ "genericImprovements": [
{ {
"damageUp": 2, "damageUp": 1,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 1,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 0 "gemValueUp": 200
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 1,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 1,
"gemValueUp": 10 "gemValueUp": 350
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 1,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 2,
"gemValueUp": 0 "gemValueUp": 450
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 200,
"rangeUp": 0, "rangeUp": 1,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 1,
"gemValueUp": 10 "gemValueUp": 600
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 1,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 0 "gemValueUp": 850
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 10 "gemValueUp": 900
}, },
{ {
"damageUp": 2, "damageUp": 2,
"attackSpeedUp": 10, "attackSpeedUp": 0,
"rangeUp": 0, "rangeUp": 2,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 0 "gemValueUp": 900
} }
], ],
"gemResistanceModifications": [ "gemResistanceModifications": [
@ -357,49 +357,56 @@
"physical": 0, "physical": 0,
"divine": 0, "divine": 0,
"fire": 0, "fire": 0,
"ice": 0.1, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0.05,
"divine": 0, "divine": 0,
"fire": 0, "fire": 0,
"ice": 0.2, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0.1,
"divine": 0, "divine": 0,
"fire": 0, "fire": 0,
"ice": 0.1, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0.1,
"divine": 0, "divine": 0,
"fire": 0, "fire": 0,
"ice": 0.2, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0.15,
"divine": 0, "divine": 0,
"fire": 0, "fire": 0,
"ice": 0.1, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0.2,
"divine": 0, "divine": 0,
"fire": 0, "fire": 0,
"ice": 0.2, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0.25,
"divine": 0, "divine": 0,
"fire": 0, "fire": 0,
"ice": 0.1, "ice": 0,
"frostfire": 0
},
{
"physical": 0.3,
"divine": 0,
"fire": 0,
"ice": 0,
"frostfire": 0 "frostfire": 0
} }
] ]
@ -409,132 +416,124 @@
"description": "Made from the wandering souls of the damned, the Soulforge gem accelerates your towers cooldowns and acts as a repellant for all things unholy.", "description": "Made from the wandering souls of the damned, the Soulforge gem accelerates your towers cooldowns and acts as a repellant for all things unholy.",
"color": "gray", "color": "gray",
"type": "Soulforge", "type": "Soulforge",
"totalLevels": 2, "totalLevels": 7,
"textures": [], "textures": [],
"cantCombineWith": [], "cantCombineWith": [],
"specialCombine": [], "specialCombine": [],
"initialGemValue": 10, "initialGemValue": 150,
"genericImprovements": [ "genericImprovements": [
{ {
"damageUp": 2, "damageUp": 0,
"attackSpeedUp": 10, "attackSpeedUp": 100,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 0 "gemValueUp": 200
}, },
{ {
"damageUp": 2, "damageUp": 0,
"attackSpeedUp": 10, "attackSpeedUp": 100,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 1,
"gemValueUp": 10 "gemValueUp": 350
}, },
{ {
"damageUp": 2, "damageUp": 0,
"attackSpeedUp": 10, "attackSpeedUp": 150,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 0 "gemValueUp": 450
}, },
{ {
"damageUp": 2, "damageUp": 0,
"attackSpeedUp": 10, "attackSpeedUp": 100,
"rangeUp": 0, "rangeUp": 1,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 10 "gemValueUp": 600
}, },
{ {
"damageUp": 2, "damageUp": 0,
"attackSpeedUp": 10, "attackSpeedUp": 250,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 1,
"gemValueUp": 0 "gemValueUp": 850
}, },
{ {
"damageUp": 2, "damageUp": 0,
"attackSpeedUp": 10, "attackSpeedUp": 400,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 10 "gemValueUp": 900
}, },
{ {
"damageUp": 2, "damageUp": 0,
"attackSpeedUp": 10, "attackSpeedUp": 500,
"rangeUp": 0, "rangeUp": 0,
"timeToLiveUp": 0, "timeToLiveUp": 0,
"pierceUp": 1, "pierceUp": 0,
"gemValueUp": 0 "gemValueUp": 900
},
{
"damageUp": 2,
"attackSpeedUp": 10,
"rangeUp": 0,
"timeToLiveUp": 0,
"pierceUp": 1,
"gemValueUp": 10
} }
], ],
"gemResistanceModifications": [ "gemResistanceModifications": [
{ {
"physical": 0, "physical": 0,
"divine": 0, "divine": 0.2,
"fire": 0, "fire": 0,
"ice": 0.1, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0,
"divine": 0, "divine": 0.3,
"fire": 0, "fire": 0,
"ice": 0.2, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0,
"divine": 0, "divine": 0.4,
"fire": 0, "fire": 0,
"ice": 0.1, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0,
"divine": 0, "divine": 0.5,
"fire": 0, "fire": 0,
"ice": 0.2, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0,
"divine": 0, "divine": 0.6,
"fire": 0, "fire": 0,
"ice": 0.1, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0,
"divine": 0, "divine": 0.7,
"fire": 0, "fire": 0,
"ice": 0.2, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0,
"divine": 0, "divine": 0.75,
"fire": 0, "fire": 0,
"ice": 0.1, "ice": 0,
"frostfire": 0 "frostfire": 0
}, },
{ {
"physical": 0, "physical": 0,
"divine": 0, "divine": 0.8,
"fire": 0, "fire": 0,
"ice": 0.2, "ice": 0,
"frostfire": 0 "frostfire": 0
} }
] ]

View File

@ -9,13 +9,13 @@
"projectileTexturesArrayLength": 5, "projectileTexturesArrayLength": 5,
"description": "The building block of society, nothing more basic exists.", "description": "The building block of society, nothing more basic exists.",
"stats": { "stats": {
"damage": 2, "damage": 1,
"cooldown": 1500, "cooldown": 1500,
"gemSlotsAmount": 1, "gemSlotsAmount": 1,
"cost": 50, "cost": 25,
"range": 3, "range": 3,
"timeToLive": 20, "timeToLive": 20,
"pierce": 2 "pierce": 1
} }
}, },
{ {
@ -26,15 +26,15 @@
"projectile": "blue", "projectile": "blue",
"projectileTextures": [], "projectileTextures": [],
"projectileTexturesArrayLength": 4, "projectileTexturesArrayLength": 4,
"description": "If you feel like shooting in a circle around you, projectiles may miss.", "description": "Shoots 8 projectiles in a circle, they may miss.",
"stats": { "stats": {
"damage": 3, "damage": 3,
"cooldown": 4000, "cooldown": 3000,
"gemSlotsAmount": 2, "gemSlotsAmount": 2,
"cost": 100, "cost": 50,
"range": 2.5, "range": 3,
"timeToLive": 12, "timeToLive": 20,
"pierce": 30 "pierce": 5
} }
}, },
{ {
@ -50,10 +50,10 @@
"damage": 3, "damage": 3,
"cooldown": 3500, "cooldown": 3500,
"gemSlotsAmount": 2, "gemSlotsAmount": 2,
"cost": 150, "cost": 100,
"range": 3, "range": 3,
"timeToLive": 12, "timeToLive": 12,
"pierce": 10 "pierce": 1
} }
}, },
{ {
@ -64,13 +64,13 @@
"projectile": "blue", "projectile": "blue",
"projectileTextures": [], "projectileTextures": [],
"projectileTexturesArrayLength": 4, "projectileTexturesArrayLength": 4,
"description": "Doesn't shoot, instead buffs other towers with 50% of its power.", "description": "Doesn't shoot, instead buffs other towers with some of its power.",
"stats": { "stats": {
"damage": 4, "damage": 4,
"cooldown": 1000, "cooldown": 1000,
"gemSlotsAmount": 3, "gemSlotsAmount": 3,
"cost": 200, "cost": 200,
"range": 2, "range": 2.5,
"timeToLive": 15, "timeToLive": 15,
"pierce": 5 "pierce": 5
} }
@ -83,13 +83,13 @@
"projectile": "white", "projectile": "white",
"projectileTextures": [], "projectileTextures": [],
"projectileTexturesArrayLength": 5, "projectileTexturesArrayLength": 5,
"description": "Like a regular tower, just slows down creeps.", "description": "Behaves like the Basic Tower, only its shots stop creeps in their tracks!",
"stats": { "stats": {
"damage": 2, "damage": 2,
"cooldown": 2000, "cooldown": 2250,
"gemSlotsAmount": 3, "gemSlotsAmount": 2,
"cost": 125, "cost": 75,
"range": 2.5, "range": 3.25,
"timeToLive": 12, "timeToLive": 12,
"pierce": 1 "pierce": 1
} }
@ -104,8 +104,8 @@
"projectileTexturesArrayLength": 4, "projectileTexturesArrayLength": 4,
"description": "Shoots a quick, high pierce rail projectile at creeps.", "description": "Shoots a quick, high pierce rail projectile at creeps.",
"stats": { "stats": {
"damage": 2, "damage": 4,
"cooldown": 2000, "cooldown": 3750,
"gemSlotsAmount": 3, "gemSlotsAmount": 3,
"cost": 125, "cost": 125,
"range": 2.5, "range": 2.5,
@ -121,15 +121,15 @@
"projectile": "stone", "projectile": "stone",
"projectileTextures": [], "projectileTextures": [],
"projectileTexturesArrayLength": 1, "projectileTexturesArrayLength": 1,
"description": "Randomly places traps on the track, instead of attacking creeps.", "description": "Randomly places expiring traps on the track, instead of attacking creeps.",
"stats": { "stats": {
"damage": 2, "damage": 2,
"cooldown": 2000, "cooldown": 2000,
"gemSlotsAmount": 3, "gemSlotsAmount": 3,
"cost": 125, "cost": 150,
"range": 2.5, "range": 3,
"timeToLive": 400, "timeToLive": 400,
"pierce": 2 "pierce": 3
} }
}, },
{ {
@ -143,12 +143,12 @@
"description": "On top of a regular attack, this tower gives creeps a debuff, making them take more damage.", "description": "On top of a regular attack, this tower gives creeps a debuff, making them take more damage.",
"stats": { "stats": {
"damage": 2, "damage": 2,
"cooldown": 2000, "cooldown": 1750,
"gemSlotsAmount": 3, "gemSlotsAmount": 3,
"cost": 125, "cost": 200,
"range": 2.5, "range": 2.5,
"timeToLive": 12, "timeToLive": 12,
"pierce": 30 "pierce": 2
} }
} }
] ]

View File

@ -34,11 +34,12 @@ export class Engine {
public static TestSuite() { public static TestSuite() {
let params = new URLSearchParams(location.href); let params = new URLSearchParams(location.href);
if (params.entries().next().value[1] != 'game') return; if (params.entries().next().value[1] != 'game') return;
Engine.NotificationManager.Notify('Loaded testing suite.', 'danger'); Engine.NotificationManager.Notify('Loaded.', 'danger');
let tower = GameAssets.Towers[TowerType.Electric]; let tower = GameAssets.Towers[TowerType.Electric];
Engine.TowerManager.ToggleChoosingTowerLocation('RESET'); Engine.TowerManager.ToggleChoosingTowerLocation('RESET');
Engine.TowerManager.PlaceTower(tower, 6, 10, tower.behaviour, true); Engine.TowerManager.PlaceTower(tower, 6, 10, tower.behaviour, true);
for (let i = 0; i < 29; i++) { Engine.GameScene.MissionStats.earnGold(2000);
for (let i = 0; i < 24; i++) {
this.GameScene.MissionStats.giveGem(new Gem(i % 6), true); this.GameScene.MissionStats.giveGem(new Gem(i % 6), true);
} }
} }

View File

@ -20,7 +20,7 @@ export class VisualGemSlot extends GuiObject {
let gtexture; let gtexture;
this.i = index; this.i = index;
this.container.x = 10; this.container.x = 10;
this.container.y = index * (Engine.GridCellSize + 6) + 300; this.container.y = index * (Engine.GridCellSize + 6) + 350;
this.background = new PIXI.Sprite({ this.background = new PIXI.Sprite({
texture: GameAssets.Frame01Texture, texture: GameAssets.Frame01Texture,
}); });
@ -115,6 +115,7 @@ export default class TowerPanel extends GuiObject {
public divineResDamage: PIXI.Text; public divineResDamage: PIXI.Text;
public physicalResDamage: PIXI.Text; public physicalResDamage: PIXI.Text;
private sellButton: Button; private sellButton: Button;
private description: PIXI.Text;
constructor(bounds: PIXI.Rectangle) { constructor(bounds: PIXI.Rectangle) {
super(false); super(false);
@ -282,6 +283,23 @@ export default class TowerPanel extends GuiObject {
}), }),
}); });
this.container.addChild(this.physicalResDamage); this.container.addChild(this.physicalResDamage);
this.description = new PIXI.Text({
x: 10,
y: 270,
zIndex: 5,
style: {
fontSize: 18,
wordWrap: true,
wordWrapWidth: 245,
fill: 0x00ff00,
fontStyle: 'italic',
stroke: {
color: 0x000000,
width: 2,
},
},
});
this.container.addChild(this.description);
this.sellButton = new Button( this.sellButton = new Button(
new PIXI.Rectangle(5, this.towerPanel.height - 70, this.towerPanel.width - 115, 60), new PIXI.Rectangle(5, this.towerPanel.height - 70, this.towerPanel.width - 115, 60),
'Sell', 'Sell',
@ -348,6 +366,7 @@ export default class TowerPanel extends GuiObject {
this.frostFireResDamage.text = `+${tower.totalGemResistanceModifications.frostfire * 100}% FrostFire damage`; this.frostFireResDamage.text = `+${tower.totalGemResistanceModifications.frostfire * 100}% FrostFire damage`;
this.divineResDamage.text = `+${tower.totalGemResistanceModifications.divine * 100}% Divine damage`; this.divineResDamage.text = `+${tower.totalGemResistanceModifications.divine * 100}% Divine damage`;
this.physicalResDamage.text = `+${tower.totalGemResistanceModifications.physical * 100}% Physical damage`; this.physicalResDamage.text = `+${tower.totalGemResistanceModifications.physical * 100}% Physical damage`;
this.description.text = `"${tower.definition.description}"`;
this.sellButton.setCaption('Sell for ' + tower.definition.stats.cost + ' gold'); this.sellButton.setCaption('Sell for ' + tower.definition.stats.cost + ' gold');
this.sellButton.onClick = () => { this.sellButton.onClick = () => {
tower.Sell(); tower.Sell();

View File

@ -123,7 +123,7 @@ export class GameScene extends Scene {
this.changeRoundButton.buttonIcon.texture = GameAssets.FastForwardIconTexture; this.changeRoundButton.buttonIcon.texture = GameAssets.FastForwardIconTexture;
this.events.emit(WaveManagerEvents.NewWave, `${this.currentRound + 1}`); this.events.emit(WaveManagerEvents.NewWave, `${this.currentRound + 1}`);
}; };
this.MissionStats = new MissionStats(100, 250); this.MissionStats = new MissionStats(100, 75);
this.events.on(GemEvents.TowerPanelSelectGem, (gem, index, tower) => { this.events.on(GemEvents.TowerPanelSelectGem, (gem, index, tower) => {
if (gem == null) { if (gem == null) {
if (!this.MissionStats.checkIfPlayerHasAnyGems()) if (!this.MissionStats.checkIfPlayerHasAnyGems())