fix: blueprint state, cube upgrade, lvl max management on btn
This commit is contained in:
parent
4bd9a76d64
commit
d4c62243d8
6 changed files with 26 additions and 18 deletions
|
|
@ -5,7 +5,7 @@ extends Node
|
||||||
|
|
||||||
signal cube_integrity_changed
|
signal cube_integrity_changed
|
||||||
signal money_changed
|
signal money_changed
|
||||||
signal loose
|
signal lose
|
||||||
signal allowed_tower_has_change
|
signal allowed_tower_has_change
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -100,6 +100,6 @@ func spendMoney(amount : int) -> bool:
|
||||||
|
|
||||||
|
|
||||||
func death():
|
func death():
|
||||||
loose.emit()
|
lose.emit()
|
||||||
Transition.goto("res://UI/defeat_screen.tscn")
|
Transition.goto("res://UI/defeat_screen.tscn")
|
||||||
resetGame()
|
resetGame()
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,8 @@ price = 150
|
||||||
projectileRessource = SubResource("Resource_lhd8w")
|
projectileRessource = SubResource("Resource_lhd8w")
|
||||||
towerRange = SubResource("SphereShape3D_6bcjo")
|
towerRange = SubResource("SphereShape3D_6bcjo")
|
||||||
action_cooldown = 2.5
|
action_cooldown = 2.5
|
||||||
|
max_energy = 100.0
|
||||||
|
energy_regen = 10.0
|
||||||
energy_cost = 25.0
|
energy_cost = 25.0
|
||||||
|
|
||||||
[node name="Sprite3D" parent="." index="5"]
|
[node name="Sprite3D" parent="." index="5"]
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ var energy : float :
|
||||||
energy = clampf(value, 0, max_energy)
|
energy = clampf(value, 0, max_energy)
|
||||||
energyBar.value = energy
|
energyBar.value = energy
|
||||||
energy_changed.emit()
|
energy_changed.emit()
|
||||||
if not energy:
|
if not energy && state != STATE.BLUEPRINT:
|
||||||
state = STATE.EXHAUSTED
|
state = STATE.EXHAUSTED
|
||||||
|
|
||||||
var availableTargets : Array[Enemy]
|
var availableTargets : Array[Enemy]
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ var upgrade: Upgrade
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
Game.money_changed.connect(moneyChanged)
|
Game.money_changed.connect(onMoneyChanged)
|
||||||
upgradeBtn.pressed.connect(upgradeTower)
|
upgradeBtn.pressed.connect(onUpgradePressed)
|
||||||
|
|
||||||
|
|
||||||
func setUpgrade(_upgrade: Upgrade) -> void:
|
func setUpgrade(_upgrade: Upgrade) -> void:
|
||||||
|
|
@ -24,24 +24,24 @@ func setTower(_tower: Tower) -> void:
|
||||||
updateVisuals()
|
updateVisuals()
|
||||||
|
|
||||||
|
|
||||||
func upgradeTower() -> void:
|
func onUpgradePressed() -> void:
|
||||||
if upgrade.upgrade(tower):
|
if upgrade.upgrade(tower):
|
||||||
updateVisuals()
|
updateVisuals()
|
||||||
|
|
||||||
|
|
||||||
func updateVisuals() -> void:
|
func updateVisuals() -> void:
|
||||||
$UpgradeName.text = upgrade.text
|
$UpgradeName.text = upgrade.text
|
||||||
if upgrade.isLevelMax:
|
if upgrade.isLevelMax():
|
||||||
upgradeBtn.visible = false
|
upgradeBtn.visible = false
|
||||||
|
if upgrade.level:
|
||||||
$UpgradeName.text += " Lvl. max"
|
$UpgradeName.text += " Lvl. max"
|
||||||
return
|
return
|
||||||
if upgrade.level:
|
if upgrade.level:
|
||||||
$UpgradeName.text += " Lvl. %d" % upgrade.level
|
$UpgradeName.text += " Lvl. %d" % upgrade.level
|
||||||
|
|
||||||
upgradeBtn.text = "%d €" % upgrade.cost
|
upgradeBtn.text = "%d €" % upgrade.cost
|
||||||
if not upgrade.canUpgrade():
|
upgradeBtn.disabled = not upgrade.canUpgrade()
|
||||||
upgradeBtn.disabled = true
|
|
||||||
|
|
||||||
|
func onMoneyChanged() -> void:
|
||||||
func moneyChanged() -> void:
|
|
||||||
upgradeBtn.disabled = not upgrade.canUpgrade()
|
upgradeBtn.disabled = not upgrade.canUpgrade()
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,12 @@ enum TYPE {
|
||||||
@export var type : TYPE
|
@export var type : TYPE
|
||||||
|
|
||||||
|
|
||||||
|
func isLevelMax() -> bool :
|
||||||
|
return super.isLevelMax() || type == TYPE.TIER && Game.maxTier == Game.tier
|
||||||
|
|
||||||
|
|
||||||
func canUpgrade() -> bool:
|
func canUpgrade() -> bool:
|
||||||
return super.canUpgrade() && (type != TYPE.TIER || Game.maxTier < Game.tier)
|
return super.canUpgrade() && (type != TYPE.TIER || Game.maxTier > Game.tier)
|
||||||
|
|
||||||
|
|
||||||
func upgrade(_subject = null) -> bool:
|
func upgrade(_subject = null) -> bool:
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,10 @@ enum UPGRADE_DIRECTION { INCREASE = 1, DECREASE = -1 }
|
||||||
|
|
||||||
var cost : int
|
var cost : int
|
||||||
var level : int = 0
|
var level : int = 0
|
||||||
var isLevelMax : bool :
|
|
||||||
get(): return maxLevel == level && (tierLock.is_empty() || level == tierLock[Game.maxTier])
|
|
||||||
|
func isLevelMax() -> bool :
|
||||||
|
return not tierLock.is_empty() && level == tierLock[Game.tier]
|
||||||
|
|
||||||
|
|
||||||
func upgrade(_subject = null) -> bool:
|
func upgrade(_subject = null) -> bool:
|
||||||
|
|
@ -45,8 +47,8 @@ func upgradeUpgrade() -> void:
|
||||||
cost = getNextValue(cost, costModificator, costScaleType)
|
cost = getNextValue(cost, costModificator, costScaleType)
|
||||||
|
|
||||||
|
|
||||||
func canUpgrade():
|
func canUpgrade() -> bool:
|
||||||
return not isLevelMax && Game.money >= cost && (tierLock.is_empty() || tierLock[Game.tier] > level)
|
return not isLevelMax() && Game.money >= cost && (tierLock.is_empty() || tierLock[Game.tier] > level)
|
||||||
|
|
||||||
|
|
||||||
func getNextValue(oldValue, baseValue, scaleType : SCALE_TYPE):
|
func getNextValue(oldValue, baseValue, scaleType : SCALE_TYPE):
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue