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