48 lines
1.3 KiB
GDScript
48 lines
1.3 KiB
GDScript
extends Control
|
|
|
|
@onready var texture = $texture
|
|
@onready var amountLabel = $Label
|
|
@onready var progressRect = $progress
|
|
|
|
@export var imDead := false
|
|
|
|
var upgradeID := ""
|
|
var amount := 1
|
|
var timer = Globals.UPGRADE_TIMERSTART * pow(1.5, Globals.unlockedUpgrades.get("stopwatch", 0))
|
|
var goldUpgrade := false
|
|
|
|
func _ready():
|
|
if goldUpgrade:
|
|
progressRect.hide()
|
|
$goldrect.show()
|
|
timer = 999
|
|
|
|
func _process(delta: float) -> void:
|
|
if imDead and not $particles.emitting:
|
|
queue_free()
|
|
|
|
if not goldUpgrade: timer -= delta * Engine.time_scale
|
|
|
|
texture.scale += (Vector2(1, 1) - texture.scale) * 7 * delta
|
|
texture.modulate.a += (1 - texture.modulate.a) * 7 * delta
|
|
|
|
progressRect.position.x += (timer / Globals.UPGRADE_TIMERSTART * 48 - progressRect.position.x) * 5 * delta
|
|
progressRect.size.x += (48 - timer / Globals.UPGRADE_TIMERSTART * 48 - progressRect.size.x) * 5 * delta
|
|
|
|
amountLabel.text = str("x", amount)#Globals.unlockedUpgrades.get(upgradeID, -1))
|
|
|
|
if timer < 0 and not imDead:
|
|
amount -= 1
|
|
Globals.unlockedUpgrades[upgradeID] -= 1
|
|
timer = Globals.UPGRADE_TIMERSTART
|
|
if amount == 0:
|
|
#Globals.unlockedUpgrades.erase(upgradeID)
|
|
imDead = true
|
|
$texture.hide()
|
|
$progress.hide()
|
|
$Label.hide()
|
|
$goldrect.hide()
|
|
|
|
$breaksfx.play()
|
|
$particles.emitting = true
|