public void upgrade() {
		TowerTemplate next = getTemplate().getNextTower();
		if (next == null || GameConfig.player.getGold() < next.getValue())
			return;
		effect = next.getEffect();
		fireRate = next.getFireRate();
		shootStrenght = next.getShootStrenght();
		setRadius(next.getVisionRadius());

		setTemplate(next);
		GameConfig.player.spendGold(next.getValue());

		for (TowerModifier t : buffs)
			t.modify(this);
	}