Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions Scenes/level_display.tscn
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
[gd_scene load_steps=3 format=3 uid="uid://b8x7y2z1a3c4"]

[ext_resource type="Script" path="res://Scripts/LevelHUD.gd" id="1_script"]

[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hud"]
content_margin_left = 15.0
content_margin_top = 8.0
content_margin_right = 15.0
content_margin_bottom = 8.0
bg_color = Color(0.1, 0.1, 0.1, 0.8)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(1, 1, 1, 0.3)
corner_radius_top_left = 15
corner_radius_top_right = 15
corner_radius_bottom_right = 15
corner_radius_bottom_left = 15
shadow_color = Color(0, 0, 0, 0.2)
shadow_size = 5

[node name="LevelHUD" type="CanvasLayer"]
script = ExtResource("1_script")

[node name="PanelContainer" type="PanelContainer" parent="."]
offset_left = 16.0
offset_top = 16.0
offset_right = 220.0
offset_bottom = 56.0
theme_override_styles/panel = SubResource("StyleBoxFlat_hud")

[node name="Label" type="Label" parent="PanelContainer"]
layout_mode = 2
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_shadow_color = Color(0, 0, 0, 0.5)
theme_override_constants/shadow_offset_x = 1
theme_override_constants/shadow_offset_y = 1
theme_override_font_sizes/font_size = 20
text = "Level Progress: 1 / 3"
vertical_alignment = 1
29 changes: 27 additions & 2 deletions Scripts/level.gd
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
extends Node

var sinkBoxMatchNeeded=[false,true,true,false]
var sinkBoxMatchPresent
var sinkUsed
Expand All @@ -9,14 +10,32 @@ var nextLevel
var levels=["basicEventFlow","boxClick","multiSink","dlqPattern"]
var levelind=0

# Level Display Handling
var level_display_scene = preload("res://Scenes/level_display.tscn")
var level_display_instance

func _ready():
level_display_instance = level_display_scene.instantiate()
add_child(level_display_instance)
update_level_display()

func initialise():
sinkBoxMatchPresent=true
sinkUsed=false
totalbox=0
nextLevel=false
dlsUsed=false

# Make sure Level Display is visible again if we restarted
if level_display_instance:
level_display_instance.show()
update_level_display()

func update_level_display():
if level_display_instance:
level_display_instance.update_display(levelind + 1, levels.size())

func next_level():
func next_level():
if sinkUsed:
if not sinkBoxMatchNeeded[levelind] and not dlsRequired[levelind]:
print("if next level entered",sinkBoxMatchNeeded,dlsRequired)
Expand All @@ -36,16 +55,22 @@ func next_level():
message_display.show_message("Success")
await message_display.show_message_for_duration(2.0)
message_display.visible = false

levelind+=1
update_level_display()

if levelind!=levels.size():
var next_level_path="res://Scenes/"+levels[levelind]+".tscn"
get_tree().change_scene_to_file(next_level_path)
ConveyerController.initialise()
else:
print("End of Levels.")
# --- HIDE LEVEL DISPLAY HERE ---
if level_display_instance:
level_display_instance.hide()
get_tree().change_scene_to_file("res://Scenes/end_of_all_levels.tscn")
else:
print("Failed. Try Again")
message_display.show_message("Failed. Try Again")
await message_display.show_message_for_duration(2.0)
message_display.visible = false
message_display.visible = false
6 changes: 6 additions & 0 deletions Scripts/level_display.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
extends CanvasLayer

@onready var label = $PanelContainer/Label

func update_display(current_level: int, total_levels: int):
label.text = "Level Progress: " + str(current_level) + " / " + str(total_levels)