Files
scrap-signal/levels/atelier/panel.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

44 lines
1.4 KiB
GDScript

class_name PanelJournal
extends Area2D
@export var prompt_text: String = "[E] Lire"
@export var journal_id: String = "D-891"
const DIALOGUE: Array[Dictionary] = [
{ "name": "JOURNAL D-891", "text": "Dernier jour. J'ai vérifié les générateurs ils tiendront des années." },
{ "name": "JOURNAL D-891", "text": "J'ai laissé les réservoirs de maintenance pleins. Je ne sais pas si c'est légal." },
{ "name": "JOURNAL D-891", "text": "Mais ça change quelque chose pour moi. — Matteo Corda, Directeur" },
]
func _ready() -> void:
body_entered.connect(_on_body_entered)
body_exited.connect(_on_body_exited)
func interact() -> void:
print("Journal interact() appelé")
var hud := get_tree().get_first_node_in_group("hud")
if hud:
hud.hide_prompt()
if journal_id != "":
GameState.set_flag(journal_id + "_read", true)
var dialogue_box := get_tree().get_first_node_in_group("dialogue_box")
print("dialogue_box trouvé : ", dialogue_box)
if dialogue_box:
print("Lancement dialogue avec : ", DIALOGUE)
dialogue_box.start(DIALOGUE)
func _on_body_entered(body: Node) -> void:
if body.is_in_group("player"):
var hud: HUD = get_tree().get_first_node_in_group("hud")
if hud: hud.show_prompt(prompt_text)
func _on_body_exited(body: Node) -> void:
if body.is_in_group("player"):
var hud: HUD = get_tree().get_first_node_in_group("hud")
if hud: hud.hide_prompt()