diff --git a/entities/npcs/vrac7/vrac7.gd b/entities/npcs/vrac7/vrac7.gd index d855a89..0f4af57 100644 --- a/entities/npcs/vrac7/vrac7.gd +++ b/entities/npcs/vrac7/vrac7.gd @@ -62,7 +62,7 @@ func interact() -> void: if hud: hud.hide_prompt() - var dialogue_box: DialogueBox = get_tree().get_first_node_in_group("dialogue_box") + var dialogue_box := get_tree().get_first_node_in_group("dialogue_box") if not dialogue_box: return @@ -94,7 +94,7 @@ func interact() -> void: # ── Mini-jeu ────────────────────────────────────────────────────────────────── func _start_minigame() -> void: - var dialogue_box: DialogueBox = get_tree().get_first_node_in_group("dialogue_box") + var dialogue_box := get_tree().get_first_node_in_group("dialogue_box") if dialogue_box: dialogue_box.hide() var minigame_node := preload("res://ui/minigame/repair_minigame.tscn").instantiate() @@ -122,7 +122,7 @@ func _on_repair_done() -> void: hud.show_log("Clé magnétique obtenue. Accès atelier déverrouillé.") # Dialogue post-réparation - var dialogue_box: DialogueBox = get_tree().get_first_node_in_group("dialogue_box") + var dialogue_box := get_tree().get_first_node_in_group("dialogue_box") if dialogue_box: dialogue_box.start(DIALOGUE_POST_REPAIR) diff --git a/entities/player/player.tscn b/entities/player/player.tscn index 97274ef..41d982b 100644 --- a/entities/player/player.tscn +++ b/entities/player/player.tscn @@ -529,7 +529,7 @@ autoplay = "idle_down" [node name="InteractionArea" type="Area2D" parent="." unique_id=1623204784] position = Vector2(-1, -12) collision_layer = 16 -collision_mask = 12 +collision_mask = 28 [node name="CollisionShape2D" type="CollisionShape2D" parent="InteractionArea" unique_id=446150610] position = Vector2(1, 9) diff --git a/levels/entrepot/entrepot.tscn b/levels/entrepot/entrepot.tscn index 7a9d8af..4d85039 100644 --- a/levels/entrepot/entrepot.tscn +++ b/levels/entrepot/entrepot.tscn @@ -9,6 +9,8 @@ [ext_resource type="PackedScene" uid="uid://cge56ob5tt4o6" path="res://entities/items/engrenage/engrenage.tscn" id="7_1p1pm"] [ext_resource type="PackedScene" uid="uid://1x65ioo8tdro" path="res://entities/items/pushable box/pushable_box.tscn" id="7_dm063"] [ext_resource type="PackedScene" uid="uid://c52luh50w8hi2" path="res://levels/unlock_zone.tscn" id="8_dm063"] +[ext_resource type="PackedScene" uid="uid://fftu7ne6spjy" path="res://levels/entrepot/etagere.tscn" id="9_sju6u"] +[ext_resource type="PackedScene" uid="uid://do61r73dbypfd" path="res://levels/journal.tscn" id="10_b870l"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_n70cd"] texture = ExtResource("1_qvgxo") @@ -212,6 +214,18 @@ position = Vector2(458, 376) scale = Vector2(5, 6.5) node_to_reveal = NodePath("../HiddenEngrenage") +[node name="Etagere" parent="Map" unique_id=2130339636 instance=ExtResource("9_sju6u")] +position = Vector2(408, 277) + +[node name="Etagere2" parent="Map" unique_id=1943291775 instance=ExtResource("9_sju6u")] +position = Vector2(184, 83) + +[node name="Etagere3" parent="Map" unique_id=565472517 instance=ExtResource("9_sju6u")] +position = Vector2(312, 85) + +[node name="Journal" parent="Map" unique_id=2014306468 instance=ExtResource("10_b870l")] +position = Vector2(456, 199) + [node name="Player" parent="." unique_id=628518902 instance=ExtResource("2_n70cd")] z_index = 1 position = Vector2(262, 239) diff --git a/levels/entrepot/etagere.tscn b/levels/entrepot/etagere.tscn new file mode 100644 index 0000000..32598f6 --- /dev/null +++ b/levels/entrepot/etagere.tscn @@ -0,0 +1,15 @@ +[gd_scene format=3 uid="uid://fftu7ne6spjy"] + +[ext_resource type="Texture2D" uid="uid://b4v24viojafdc" path="res://assets/tilesets/etagere.png" id="1_pfmsg"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_u2a1m"] +size = Vector2(59, 61) + +[node name="Etagere" type="StaticBody2D" unique_id=2130339636] + +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1345709968] +texture = ExtResource("1_pfmsg") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=39604345] +position = Vector2(-0.5, 0.5) +shape = SubResource("RectangleShape2D_u2a1m") diff --git a/levels/journal.gd b/levels/journal.gd new file mode 100644 index 0000000..b120bc9 --- /dev/null +++ b/levels/journal.gd @@ -0,0 +1,41 @@ +class_name Journal +extends Area2D + +@export var prompt_text: String = "[E] Lire" +@export var journal_id: String = "" + +const DIALOGUE: Array[Dictionary] = [ + { "name": "JOURNAL D-447", "text": "Les lumières se sont éteintes. Les humains ne sont pas revenus. Nous avons continué." }, + { "name": "JOURNAL D-447", "text": "Les unités ont cessé de recevoir les ordres. Elles continuent quand même. C'est comme si elles avaient décidé." }, +] + +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() diff --git a/levels/journal.gd.uid b/levels/journal.gd.uid new file mode 100644 index 0000000..c4e93a4 --- /dev/null +++ b/levels/journal.gd.uid @@ -0,0 +1 @@ +uid://d20gkytolhrgi diff --git a/levels/journal.tscn b/levels/journal.tscn new file mode 100644 index 0000000..0f4ad29 --- /dev/null +++ b/levels/journal.tscn @@ -0,0 +1,20 @@ +[gd_scene format=3 uid="uid://do61r73dbypfd"] + +[ext_resource type="Script" uid="uid://d20gkytolhrgi" path="res://levels/journal.gd" id="1_22265"] +[ext_resource type="Texture2D" uid="uid://cl6rwoc5egg4x" path="res://tests/assets/sprites/objects/rpgItems.png" id="1_k1px1"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_lnklh"] +size = Vector2(14, 14) + +[node name="Journal" type="Area2D" unique_id=2014306468] +collision_layer = 16 +collision_mask = 2 +script = ExtResource("1_22265") + +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1022488019] +texture = ExtResource("1_k1px1") +region_enabled = true +region_rect = Rect2(96, 32, 16, 16) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=437524935] +shape = SubResource("RectangleShape2D_lnklh")