Files
scrap-signal/ui/hud.gd
Kellan KOZUME decd182b3e feat(atelier): complete zone 2 level design and game systems
- Add atelier tilemap (14x14 tiles) with dark atmosphere
- Add Journal D-891 interactable with Matteo Corda narrative
- Add pushable frozen robot (reuses PushableBox logic)
- Add PassageTrigger to reveal hidden path via TileMapLayer
- Add RepairStation for SCRAP-09 self-repair mini-game
- Add scrap09 puzzle in RepairMinigame with valid connections
- Add door to cour unlocked by scrap09_repaired flag
2026-04-25 12:54:33 -04:00

47 lines
1.3 KiB
GDScript

class_name HUD
extends CanvasLayer
@onready var slots := {
"engrenage": $InventoryBar/ItemRow/EngrenageSlot/Count,
"circuit": $InventoryBar/ItemRow/CircuitSlot/Count,
}
@onready var interact_prompt := $InteractPrompt
@onready var prompt_label := $InteractPrompt/PromptLabel
@onready var log_container := $LogContainer
@onready var log_label := $LogContainer/LogLabel
var _log_tween : Tween
func _ready() -> void:
GameState.inventory_changed.connect(_refresh)
_refresh()
func show_prompt(text: String) -> void:
prompt_label.text = text
interact_prompt.visible = true
func hide_prompt() -> void:
interact_prompt.visible = false
func _refresh() -> void:
for item_id in slots:
var count : int = GameState.inventory.get(item_id, 0)
slots[item_id].text = "x%d" % count
slots[item_id].get_parent().modulate.a = 0.4 if count == 0 else 1.0
func show_log(message: String) -> void:
log_label.text = "> " + message
log_container.modulate.a = 1.0
log_container.show()
# Annule le tween précédent si un log était encore visible
if _log_tween:
_log_tween.kill()
# Disparaît après 3 secondes avec un fade out
_log_tween = create_tween()
_log_tween.tween_interval(3.5)
_log_tween.tween_property(log_container, "modulate:a", 0.0, 0.5)
_log_tween.tween_callback(log_container.hide)