aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/game.gd2
-rw-r--r--client/game.tscn5
-rw-r--r--client/menu/overlay.gd24
-rw-r--r--client/menu/overlay.tscn62
-rw-r--r--client/multiplayer.gd1
5 files changed, 93 insertions, 1 deletions
diff --git a/client/game.gd b/client/game.gd
index abb04bc6..6f5f376e 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -176,6 +176,8 @@ func _ready():
map.autobake = false
await transition.fade_out()
)
+
+ mp.score.connect($Overlay.update)
func _process(delta):
marker.position = lerp(marker.position, marker_target, delta * 40.0)
diff --git a/client/game.tscn b/client/game.tscn
index 7c90d833..eab73acc 100644
--- a/client/game.tscn
+++ b/client/game.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=10 format=3 uid="uid://c6krh36hoqfg8"]
+[gd_scene load_steps=11 format=3 uid="uid://c6krh36hoqfg8"]
[ext_resource type="Script" path="res://game.gd" id="1_sftfn"]
[ext_resource type="PackedScene" uid="uid://b31mlnao6ybt8" path="res://player/follow_camera.tscn" id="2_s8y6o"]
@@ -6,6 +6,7 @@
[ext_resource type="PackedScene" uid="uid://bg2d78ycorcqk" path="res://menu/scene_transition.tscn" id="5_yg6cl"]
[ext_resource type="Script" path="res://multiplayer.gd" id="6_fbxu8"]
[ext_resource type="PackedScene" uid="uid://b4gone8fu53r7" path="res://map/map.tscn" id="6_prg6t"]
+[ext_resource type="PackedScene" uid="uid://bpikve6wlsjfl" path="res://menu/overlay.tscn" id="7_7xrr6"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_py7px"]
ground_bottom_color = Color(0.0826605, 0.065772, 0.0461518, 1)
@@ -47,3 +48,5 @@ ingame = true
auto_fade_in = false
[node name="Map" parent="." instance=ExtResource("6_prg6t")]
+
+[node name="Overlay" parent="." instance=ExtResource("7_7xrr6")]
diff --git a/client/menu/overlay.gd b/client/menu/overlay.gd
new file mode 100644
index 00000000..23efa209
--- /dev/null
+++ b/client/menu/overlay.gd
@@ -0,0 +1,24 @@
+class_name Overlay
+extends PanelContainer
+
+const LABEL_SCALE: Vector2 = Vector2(1.5, 1.5)
+
+var failed: int = 0
+var completed: int = 0
+
+@onready var failed_label: Label = $VBoxContainer/HBoxContainer2/Failed
+@onready var completed_label: Label = $VBoxContainer/HBoxContainer/Completed
+
+func update(failed_: int, completed_: int):
+ if failed_ - failed:
+ failed_label.text = str(failed_)
+ failed_label.scale = LABEL_SCALE
+ failed = failed_
+ if completed_ - completed:
+ completed_label.text = str(completed_)
+ completed_label.scale = LABEL_SCALE
+ completed = completed_
+
+func _process(delta):
+ failed_label.scale = lerp(failed_label.scale, Vector2(1, 1), delta * 4.)
+ completed_label.scale = lerp(completed_label.scale, Vector2(1, 1), delta * 4.)
diff --git a/client/menu/overlay.tscn b/client/menu/overlay.tscn
new file mode 100644
index 00000000..46beae0f
--- /dev/null
+++ b/client/menu/overlay.tscn
@@ -0,0 +1,62 @@
+[gd_scene load_steps=4 format=3 uid="uid://bpikve6wlsjfl"]
+
+[ext_resource type="Theme" uid="uid://b0qmvo504e457" path="res://menu/theme/theme.tres" id="1_4kujw"]
+[ext_resource type="Script" path="res://menu/overlay.gd" id="2_kbjds"]
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_04ujj"]
+bg_color = Color(0, 0, 0, 0)
+
+[node name="Overlay" type="PanelContainer"]
+custom_minimum_size = Vector2(250, 0)
+anchors_preset = 1
+anchor_left = 1.0
+anchor_right = 1.0
+offset_left = -40.0
+offset_bottom = 40.0
+grow_horizontal = 0
+theme = ExtResource("1_4kujw")
+theme_override_styles/panel = SubResource("StyleBoxFlat_04ujj")
+script = ExtResource("2_kbjds")
+
+[node name="VBoxContainer" type="VBoxContainer" parent="."]
+layout_mode = 2
+
+[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
+layout_mode = 2
+
+[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer"]
+layout_mode = 2
+theme_override_colors/font_color = Color(0.513233, 0.513233, 0.513233, 1)
+theme_override_font_sizes/font_size = 40
+text = "Completed"
+
+[node name="Control" type="Control" parent="VBoxContainer/HBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+
+[node name="Completed" type="Label" parent="VBoxContainer/HBoxContainer"]
+custom_minimum_size = Vector2(100, 0)
+layout_mode = 2
+theme_override_font_sizes/font_size = 40
+text = "0"
+horizontal_alignment = 1
+
+[node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer"]
+layout_mode = 2
+
+[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer2"]
+layout_mode = 2
+theme_override_colors/font_color = Color(0.513726, 0.513726, 0.513726, 1)
+theme_override_font_sizes/font_size = 40
+text = "Failed"
+
+[node name="Control" type="Control" parent="VBoxContainer/HBoxContainer2"]
+layout_mode = 2
+size_flags_horizontal = 3
+
+[node name="Failed" type="Label" parent="VBoxContainer/HBoxContainer2"]
+custom_minimum_size = Vector2(100, 0)
+layout_mode = 2
+theme_override_font_sizes/font_size = 40
+text = "0"
+horizontal_alignment = 1
diff --git a/client/multiplayer.gd b/client/multiplayer.gd
index eb85898c..00bf193b 100644
--- a/client/multiplayer.gd
+++ b/client/multiplayer.gd
@@ -175,6 +175,7 @@ func handle_packet(bytes: PackedByteArray):
"score":
var demands_failed: int = decoded["demands_failed"]
var demands_completed: int = decoded["demands_completed"]
+ emit_signal("score", demands_failed, demands_completed)
_:
push_error("Unrecognized packet type: %s" % packet_type)