diff --git a/source/assets/scripts/player_handlers/player_body_handler.gd b/source/assets/scripts/player_handlers/player_body_handler.gd
index ef96d5c..0f531fd 100644
--- a/source/assets/scripts/player_handlers/player_body_handler.gd
+++ b/source/assets/scripts/player_handlers/player_body_handler.gd
@@ -9,6 +9,8 @@ var bullet
var username_text = load("res://source/scenes/OVERLAY/elements/username_text.tscn")
var username setget username_set
var username_text_instance = null
+var health_bar_scene = load("res://source/scenes/OVERLAY/elements/HUD.tscn")
+var health_bar_instance = null
var hp = 100 setget set_hp
var can_shoot = true
var is_reloading = false
@@ -96,6 +98,8 @@ func _ready():
get_tree().connect("network_peer_connected", self, "_network_peer_connected")
username_text_instance = Global.instance_node_at_location(username_text, PersistentNodes, global_position)
username_text_instance.player_following = self
+ health_bar_instance = Global.instance_node_at_location(health_bar_scene, PersistentNodes, global_position)
+ health_bar_instance.player_following = self
update_shoot_mode(false)
Global.alive_players.append(self)
@@ -421,14 +425,17 @@ func _on_hitbox_area_entered(area):
sync func hit_by_damager(damage):
hp -= damage
modulate = Color(5, 5, 5, 1)
+ health_bar_instance.value = hp
hit_timer.start()
sync func enable() -> void:
hp = 100
+ health_bar_instance.value = 100
can_shoot = false
update_shoot_mode(false)
username_text_instance.visible = true
+ health_bar_instance.visible = true
visible = true
$player_collider.disabled = false
$hitbox/CollisionShape2D.disabled = false
@@ -444,6 +451,7 @@ sync func enable() -> void:
sync func destroy() -> void:
username_text_instance.visible = false
+ health_bar_instance.visible = false
visible = false
$player_collider.disabled = true
$hitbox/CollisionShape2D.disabled = true
diff --git a/source/assets/scripts/server_handlers/network_processors/network.gd b/source/assets/scripts/server_handlers/network_processors/network.gd
index 5e241e8..eda812c 100644
--- a/source/assets/scripts/server_handlers/network_processors/network.gd
+++ b/source/assets/scripts/server_handlers/network_processors/network.gd
@@ -69,6 +69,15 @@ func _server_disconnected() -> void:
prompt.set_text("Disconnected from server")
+func _server_leave() -> void:
+ print("Left the server")
+
+ for child in PersistentNodes.get_children():
+ if child.is_in_group("Net"):
+ child.queue_free()
+ reset_network_connection()
+
+
func _client_connection_timeout():
if client_connected_to_server == false:
print("Client has been timed out")
diff --git a/source/assets/scripts/server_handlers/network_processors/network_setup.gd b/source/assets/scripts/server_handlers/network_processors/network_setup.gd
index 52b6bb6..b022c1e 100644
--- a/source/assets/scripts/server_handlers/network_processors/network_setup.gd
+++ b/source/assets/scripts/server_handlers/network_processors/network_setup.gd
@@ -15,6 +15,7 @@ onready var device_ip_address = $UI/device_ip_address
onready var start_game = $UI/start_game
onready var background_lobby = $background_lobby
onready var text = $UI/text
+onready var menu_botton = $UI/menu_button
func _ready() -> void:
@@ -22,6 +23,7 @@ func _ready() -> void:
background_lobby.hide()
device_ip_address.hide()
text.hide()
+ menu_botton.hide()
get_tree().connect("network_peer_connected", self, "_player_connected")
@@ -70,6 +72,7 @@ func _player_disconnected(id) -> void:
if PersistentNodes.has_node(str(id)):
PersistentNodes.get_node(str(id)).username_text_instance.queue_free()
+ PersistentNodes.get_node(str(id)).health_bar_instance.queue_free()
PersistentNodes.get_node(str(id)).queue_free()
@@ -89,9 +92,7 @@ func _on_join_server_pressed():
func _connected_to_server() -> void:
yield(get_tree().create_timer(0.1), "timeout")
- device_ip_address.show()
- background_lobby.show()
- text.show()
+ show_lobby()
instance_player(get_tree().get_network_unique_id())
@@ -119,18 +120,22 @@ func _on_confirm_pressed():
if mode == "create":
if username_text_edit.text != "":
Network.current_player_username = username_text_edit.text
- multiplayer_config_ui.hide()
- device_ip_address.show()
- background_lobby.show()
- text.show()
+ show_lobby()
Network.create_server()
instance_player(get_tree().get_network_unique_id())
elif mode == "join":
if username_text_edit.text != "":
- multiplayer_config_ui.hide()
Global.instance_node(load("res://source/scenes/GUI/server_handlers/server_browser.tscn"), self)
+func show_lobby():
+ multiplayer_config_ui.hide()
+ device_ip_address.show()
+ background_lobby.show()
+ text.show()
+ menu_botton.show()
+
+
func _on_return_pressed():
get_tree().change_scene("res://source/scenes/GUI/main_menu.tscn")
diff --git a/source/assets/scripts/server_handlers/network_processors/singleplayer_setup.gd b/source/assets/scripts/server_handlers/network_processors/singleplayer_setup.gd
index 21a5eb5..1c64ad9 100644
--- a/source/assets/scripts/server_handlers/network_processors/singleplayer_setup.gd
+++ b/source/assets/scripts/server_handlers/network_processors/singleplayer_setup.gd
@@ -24,7 +24,7 @@ func _on_confirm_pressed():
func instance_player(id) -> void:
- var player_instance = Global.instance_node_at_location(player, PersistentNodes, Vector2(960, 540))
+ var player_instance = Global.instance_node_at_location(player, PersistentNodes, Vector2())
player_instance.name = str(id)
player_instance.set_network_master(id)
player_instance.username = username_text_edit.text
diff --git a/source/assets/scripts/server_handlers/trinity_site_level.gd b/source/assets/scripts/server_handlers/trinity_site_level.gd
index 443c2fa..d6505ed 100644
--- a/source/assets/scripts/server_handlers/trinity_site_level.gd
+++ b/source/assets/scripts/server_handlers/trinity_site_level.gd
@@ -25,6 +25,7 @@ func setup_player_positions() -> void:
func _player_disconnected(id) -> void:
if PersistentNodes.has_node(str(id)):
PersistentNodes.get_node(str(id)).username_text_instance.queue_free()
+ PersistentNodes.get_node(str(id)).health_bar_instance.queue_free()
PersistentNodes.get_node(str(id)).queue_free()
diff --git a/source/levels/trinity_site/Control.gd b/source/assets/scripts/shooting/Control.gd
similarity index 100%
rename from source/levels/trinity_site/Control.gd
rename to source/assets/scripts/shooting/Control.gd
diff --git a/source/assets/scripts/shooting/Hyperbola/Hyperbolic_Bullet.gd b/source/assets/scripts/shooting/Hyperbola/Hyperbolic_Bullet.gd
index 0c0ee9d..453557c 100644
--- a/source/assets/scripts/shooting/Hyperbola/Hyperbolic_Bullet.gd
+++ b/source/assets/scripts/shooting/Hyperbola/Hyperbolic_Bullet.gd
@@ -27,6 +27,4 @@ func _process(delta):
func _on_hitbox_body_entered(body):
- if body.is_in_group("mobs"):
- body.queue_free()
queue_free()
diff --git a/source/assets/scripts/shooting/Line/Line_Bullet.gd b/source/assets/scripts/shooting/Line/Line_Bullet.gd
index 5e6d99c..596c75b 100644
--- a/source/assets/scripts/shooting/Line/Line_Bullet.gd
+++ b/source/assets/scripts/shooting/Line/Line_Bullet.gd
@@ -21,6 +21,4 @@ func _process(delta):
func _on_hitbox_body_entered(body):
- if body.is_in_group("mobs"):
- body.queue_free()
queue_free()
diff --git a/source/assets/scripts/shooting/Parabola/Parabolic_Bullet.gd b/source/assets/scripts/shooting/Parabola/Parabolic_Bullet.gd
index 9b56464..a4b73aa 100644
--- a/source/assets/scripts/shooting/Parabola/Parabolic_Bullet.gd
+++ b/source/assets/scripts/shooting/Parabola/Parabolic_Bullet.gd
@@ -30,6 +30,4 @@ func _process(delta):
func _on_hitbox_body_entered(body):
- if body.is_in_group("mobs"):
- body.queue_free()
queue_free()
diff --git a/source/assets/scripts/ui_element_handlers/HUD.gd b/source/assets/scripts/ui_element_handlers/HUD.gd
new file mode 100644
index 0000000..f4f6cdd
--- /dev/null
+++ b/source/assets/scripts/ui_element_handlers/HUD.gd
@@ -0,0 +1,18 @@
+extends Node2D
+
+var player_following = null
+var value = "" setget value_set
+
+var distanceToPlayerOffset = -150
+
+onready var health_bar = $health_bar
+
+
+func _process(delta: float) -> void:
+ if player_following != null:
+ global_position = player_following.global_position + Vector2(0,distanceToPlayerOffset).rotated(player_following.rotation)
+
+
+func value_set(new_text) -> void:
+ value = new_text
+ health_bar.value = value
diff --git a/source/assets/scripts/ui_element_handlers/game_UI.gd b/source/assets/scripts/ui_element_handlers/game_UI.gd
index f2e07d4..9c0b96e 100644
--- a/source/assets/scripts/ui_element_handlers/game_UI.gd
+++ b/source/assets/scripts/ui_element_handlers/game_UI.gd
@@ -3,8 +3,8 @@ extends CanvasLayer
# if 0, then singleplayer will work, if 1, then multiplayer only
var winner_amount = 1
-onready var win_timer = $Control/winner/win_timer
-onready var winner = $Control/winner
+onready var win_timer = $winner/win_timer
+onready var winner = $winner
func _ready() -> void:
winner.hide()
diff --git a/source/assets/scripts/ui_element_handlers/main_menu.gd b/source/assets/scripts/ui_element_handlers/main_menu.gd
index 583be27..ba5059f 100644
--- a/source/assets/scripts/ui_element_handlers/main_menu.gd
+++ b/source/assets/scripts/ui_element_handlers/main_menu.gd
@@ -2,7 +2,7 @@ extends Control
func _on_play_pressed():
- get_tree().change_scene("res://source/scenes/GUI/sinplayer_setup.tscn")
+ get_tree().change_scene("res://source/scenes/GUI/singleplayer_setup.tscn")
func _on_LAN_party_pressed():
@@ -11,3 +11,5 @@ func _on_LAN_party_pressed():
func _on_exit_pressed():
get_tree().quit()
+
+
diff --git a/source/assets/scripts/ui_element_handlers/menu_button.gd b/source/assets/scripts/ui_element_handlers/menu_button.gd
new file mode 100644
index 0000000..6880319
--- /dev/null
+++ b/source/assets/scripts/ui_element_handlers/menu_button.gd
@@ -0,0 +1,8 @@
+extends TextureButton
+
+#func _process(delta) -> void:
+# if Input.is_action_just_pressed("esc"):
+# Global.instance_node(load("res://source/scenes/OVERLAY/elements/menu_button_overlay.tscn"), Global.ui)
+
+func _on_menu_button_pressed():
+ Global.instance_node(load("res://source/scenes/OVERLAY/elements/menu_button_overlay.tscn"), Global.ui)
diff --git a/source/assets/scripts/ui_element_handlers/menu_button_overlay.gd b/source/assets/scripts/ui_element_handlers/menu_button_overlay.gd
new file mode 100644
index 0000000..fc80f87
--- /dev/null
+++ b/source/assets/scripts/ui_element_handlers/menu_button_overlay.gd
@@ -0,0 +1,20 @@
+extends Control
+
+
+func _process(delta) -> void:
+# print(str(self))
+ if Input.is_action_just_pressed("esc"):
+ hide()
+
+
+func _on_return_to_game_pressed():
+ hide()
+
+
+func _on_return_to_main_menu_pressed():
+ Network._server_leave()
+ get_tree().change_scene("res://source/scenes/GUI/main_menu.tscn")
+
+
+func _on_exit_game_pressed():
+ get_tree().quit()
diff --git a/source/assets/sprites/GUI/bar-background.png b/source/assets/sprites/GUI/bar-background.png
new file mode 100644
index 0000000..6a11cb2
Binary files /dev/null and b/source/assets/sprites/GUI/bar-background.png differ
diff --git a/source/assets/sprites/GUI/bar-fill.png b/source/assets/sprites/GUI/bar-fill.png
new file mode 100644
index 0000000..fd65bef
Binary files /dev/null and b/source/assets/sprites/GUI/bar-fill.png differ
diff --git a/source/assets/sprites/GUI/menu_button.svg b/source/assets/sprites/GUI/menu_button.svg
new file mode 100644
index 0000000..3699158
--- /dev/null
+++ b/source/assets/sprites/GUI/menu_button.svg
@@ -0,0 +1,105 @@
+
+
+
+
diff --git a/source/assets/sprites/GUI/menu_button_hover.svg b/source/assets/sprites/GUI/menu_button_hover.svg
new file mode 100644
index 0000000..4e72842
--- /dev/null
+++ b/source/assets/sprites/GUI/menu_button_hover.svg
@@ -0,0 +1,161 @@
+
+
+
+
diff --git a/source/assets/sprites/GUI/menu_button_pressed.svg b/source/assets/sprites/GUI/menu_button_pressed.svg
new file mode 100644
index 0000000..2156dd7
--- /dev/null
+++ b/source/assets/sprites/GUI/menu_button_pressed.svg
@@ -0,0 +1,161 @@
+
+
+
+
diff --git a/source/entities/player/player_node.tscn b/source/entities/player/player_node.tscn
index 299fc58..502d5a8 100644
--- a/source/entities/player/player_node.tscn
+++ b/source/entities/player/player_node.tscn
@@ -173,10 +173,15 @@
[sub_resource type="SpriteFrames" id=2]
animations = [ {
-"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
+"frames": [ ExtResource( 70 ), ExtResource( 49 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 28 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 55 ), ExtResource( 150 ), ExtResource( 156 ), ExtResource( 138 ), ExtResource( 161 ), ExtResource( 145 ), ExtResource( 148 ), ExtResource( 147 ), ExtResource( 133 ), ExtResource( 164 ), ExtResource( 134 ), ExtResource( 152 ), ExtResource( 160 ) ],
"loop": true,
-"name": "boost-speed-right-01",
-"speed": 50.0
+"name": "move-speed-left-03",
+"speed": 35.0
+}, {
+"frames": [ ExtResource( 167 ), ExtResource( 157 ), ExtResource( 158 ), ExtResource( 126 ), ExtResource( 90 ), ExtResource( 89 ), ExtResource( 97 ), ExtResource( 88 ), ExtResource( 98 ), ExtResource( 91 ), ExtResource( 125 ), ExtResource( 105 ), ExtResource( 82 ), ExtResource( 84 ), ExtResource( 92 ), ExtResource( 103 ), ExtResource( 122 ), ExtResource( 130 ), ExtResource( 104 ), ExtResource( 116 ) ],
+"loop": true,
+"name": "move-speed-right-02",
+"speed": 35.0
}, {
"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
"loop": true,
@@ -188,21 +193,6 @@ animations = [ {
"name": "move-speed-right-04",
"speed": 35.0
}, {
-"frames": [ ExtResource( 162 ), ExtResource( 135 ), ExtResource( 146 ), ExtResource( 141 ), ExtResource( 143 ), ExtResource( 163 ), ExtResource( 149 ), ExtResource( 136 ), ExtResource( 154 ), ExtResource( 137 ), ExtResource( 165 ), ExtResource( 142 ), ExtResource( 139 ), ExtResource( 159 ), ExtResource( 140 ), ExtResource( 155 ), ExtResource( 144 ), ExtResource( 151 ), ExtResource( 153 ), ExtResource( 166 ) ],
-"loop": true,
-"name": "boost-speed-left-04",
-"speed": 50.0
-}, {
-"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
-"loop": true,
-"name": "idle-speed-right-02",
-"speed": 25.0
-}, {
-"frames": [ ExtResource( 99 ), ExtResource( 83 ), ExtResource( 109 ), ExtResource( 111 ), ExtResource( 101 ), ExtResource( 96 ), ExtResource( 79 ), ExtResource( 132 ), ExtResource( 119 ), ExtResource( 80 ), ExtResource( 85 ), ExtResource( 86 ), ExtResource( 87 ), ExtResource( 106 ), ExtResource( 121 ), ExtResource( 129 ), ExtResource( 100 ), ExtResource( 108 ), ExtResource( 110 ), ExtResource( 120 ) ],
-"loop": true,
-"name": "boost-speed-right-04",
-"speed": 50.0
-}, {
"frames": [ ExtResource( 114 ), ExtResource( 128 ), ExtResource( 93 ), ExtResource( 107 ), ExtResource( 117 ), ExtResource( 102 ), ExtResource( 81 ), ExtResource( 118 ), ExtResource( 76 ), ExtResource( 115 ), ExtResource( 127 ), ExtResource( 123 ), ExtResource( 113 ), ExtResource( 77 ), ExtResource( 78 ), ExtResource( 124 ), ExtResource( 94 ), ExtResource( 112 ), ExtResource( 131 ), ExtResource( 95 ) ],
"loop": true,
"name": "move-speed-right-03",
@@ -233,15 +223,40 @@ animations = [ {
"name": "idle-speed-left-01",
"speed": 25.0
}, {
-"frames": [ ExtResource( 70 ), ExtResource( 49 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 28 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 55 ), ExtResource( 150 ), ExtResource( 156 ), ExtResource( 138 ), ExtResource( 161 ), ExtResource( 145 ), ExtResource( 148 ), ExtResource( 147 ), ExtResource( 133 ), ExtResource( 164 ), ExtResource( 134 ), ExtResource( 152 ), ExtResource( 160 ) ],
+"frames": [ ExtResource( 48 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 32 ), ExtResource( 13 ), ExtResource( 40 ), ExtResource( 6 ), ExtResource( 15 ), ExtResource( 22 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 37 ), ExtResource( 23 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 34 ) ],
"loop": true,
-"name": "move-speed-left-03",
+"name": "boost-speed-left-01",
+"speed": 50.0
+}, {
+"frames": [ ExtResource( 162 ), ExtResource( 135 ), ExtResource( 146 ), ExtResource( 141 ), ExtResource( 143 ), ExtResource( 163 ), ExtResource( 149 ), ExtResource( 136 ), ExtResource( 154 ), ExtResource( 137 ), ExtResource( 165 ), ExtResource( 142 ), ExtResource( 139 ), ExtResource( 159 ), ExtResource( 140 ), ExtResource( 155 ), ExtResource( 144 ), ExtResource( 151 ), ExtResource( 153 ), ExtResource( 166 ) ],
+"loop": true,
+"name": "boost-speed-left-04",
+"speed": 50.0
+}, {
+"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
+"loop": true,
+"name": "idle-speed-right-02",
+"speed": 25.0
+}, {
+"frames": [ ExtResource( 99 ), ExtResource( 83 ), ExtResource( 109 ), ExtResource( 111 ), ExtResource( 101 ), ExtResource( 96 ), ExtResource( 79 ), ExtResource( 132 ), ExtResource( 119 ), ExtResource( 80 ), ExtResource( 85 ), ExtResource( 86 ), ExtResource( 87 ), ExtResource( 106 ), ExtResource( 121 ), ExtResource( 129 ), ExtResource( 100 ), ExtResource( 108 ), ExtResource( 110 ), ExtResource( 120 ) ],
+"loop": true,
+"name": "boost-speed-right-04",
+"speed": 50.0
+}, {
+"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
+"loop": true,
+"name": "boost-speed-right-01",
+"speed": 50.0
+}, {
+"frames": [ ExtResource( 48 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 32 ), ExtResource( 13 ), ExtResource( 40 ), ExtResource( 6 ), ExtResource( 15 ), ExtResource( 22 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 37 ), ExtResource( 23 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 34 ) ],
+"loop": true,
+"name": "move-speed-left-01",
"speed": 35.0
}, {
-"frames": [ ExtResource( 167 ), ExtResource( 157 ), ExtResource( 158 ), ExtResource( 126 ), ExtResource( 90 ), ExtResource( 89 ), ExtResource( 97 ), ExtResource( 88 ), ExtResource( 98 ), ExtResource( 91 ), ExtResource( 125 ), ExtResource( 105 ), ExtResource( 82 ), ExtResource( 84 ), ExtResource( 92 ), ExtResource( 103 ), ExtResource( 122 ), ExtResource( 130 ), ExtResource( 104 ), ExtResource( 116 ) ],
+"frames": [ ExtResource( 114 ), ExtResource( 128 ), ExtResource( 93 ), ExtResource( 107 ), ExtResource( 117 ), ExtResource( 102 ), ExtResource( 81 ), ExtResource( 118 ), ExtResource( 76 ), ExtResource( 115 ), ExtResource( 127 ), ExtResource( 123 ), ExtResource( 113 ), ExtResource( 77 ), ExtResource( 78 ), ExtResource( 124 ), ExtResource( 94 ), ExtResource( 112 ), ExtResource( 131 ), ExtResource( 95 ) ],
"loop": true,
-"name": "move-speed-right-02",
-"speed": 35.0
+"name": "boost-speed-right-03",
+"speed": 50.0
}, {
"frames": [ ExtResource( 70 ), ExtResource( 49 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 28 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 55 ), ExtResource( 150 ), ExtResource( 156 ), ExtResource( 138 ), ExtResource( 161 ), ExtResource( 145 ), ExtResource( 148 ), ExtResource( 147 ), ExtResource( 133 ), ExtResource( 164 ), ExtResource( 134 ), ExtResource( 152 ), ExtResource( 160 ) ],
"loop": true,
@@ -252,21 +267,6 @@ animations = [ {
"loop": true,
"name": "boost-speed-right-02",
"speed": 50.0
-}, {
-"frames": [ ExtResource( 48 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 32 ), ExtResource( 13 ), ExtResource( 40 ), ExtResource( 6 ), ExtResource( 15 ), ExtResource( 22 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 37 ), ExtResource( 23 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 34 ) ],
-"loop": true,
-"name": "move-speed-left-01",
-"speed": 35.0
-}, {
-"frames": [ ExtResource( 48 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 32 ), ExtResource( 13 ), ExtResource( 40 ), ExtResource( 6 ), ExtResource( 15 ), ExtResource( 22 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 37 ), ExtResource( 23 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 34 ) ],
-"loop": true,
-"name": "boost-speed-left-01",
-"speed": 50.0
-}, {
-"frames": [ ExtResource( 114 ), ExtResource( 128 ), ExtResource( 93 ), ExtResource( 107 ), ExtResource( 117 ), ExtResource( 102 ), ExtResource( 81 ), ExtResource( 118 ), ExtResource( 76 ), ExtResource( 115 ), ExtResource( 127 ), ExtResource( 123 ), ExtResource( 113 ), ExtResource( 77 ), ExtResource( 78 ), ExtResource( 124 ), ExtResource( 94 ), ExtResource( 112 ), ExtResource( 131 ), ExtResource( 95 ) ],
-"loop": true,
-"name": "boost-speed-right-03",
-"speed": 50.0
} ]
[sub_resource type="RectangleShape2D" id=3]
@@ -299,7 +299,7 @@ radius = 41.5403
animations = [ {
"frames": [ ExtResource( 170 ) ],
"loop": true,
-"name": "03",
+"name": "02",
"speed": 5.0
}, {
"frames": [ ExtResource( 27 ) ],
@@ -307,15 +307,15 @@ animations = [ {
"name": "01",
"speed": 5.0
}, {
+"frames": [ ExtResource( 170 ) ],
+"loop": true,
+"name": "03",
+"speed": 5.0
+}, {
"frames": [ ExtResource( 169 ) ],
"loop": true,
"name": "04",
"speed": 5.0
-}, {
-"frames": [ ExtResource( 170 ) ],
-"loop": true,
-"name": "02",
-"speed": 5.0
} ]
[node name="player" type="KinematicBody2D" groups=[
diff --git a/source/levels/trinity_site/trinity_site_level.tscn b/source/levels/trinity_site/trinity_site_level.tscn
index 87baffc..5f8425e 100644
--- a/source/levels/trinity_site/trinity_site_level.tscn
+++ b/source/levels/trinity_site/trinity_site_level.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=15 format=2]
+[gd_scene load_steps=16 format=2]
[ext_resource path="res://source/assets/scripts/server_handlers/trinity_site_level.gd" type="Script" id=1]
[ext_resource path="res://source/assets/scripts/ui_element_handlers/UI.gd" type="Script" id=2]
@@ -12,6 +12,7 @@
[ext_resource path="res://source/levels/trinity_site/images/trinity_site_level_layout_level_design_z_index_2.svg" type="Texture" id=10]
[ext_resource path="res://source/levels/trinity_site/images/trinity_site_level_layout_level_design_z_index_1.svg" type="Texture" id=11]
[ext_resource path="res://source/fonts/oxygen/oxygen_bold.tres" type="DynamicFont" id=12]
+[ext_resource path="res://source/scenes/OVERLAY/elements/menu_button.tscn" type="PackedScene" id=13]
[ext_resource path="res://source/assets/scripts/trinity_site_body_handler.gd" type="Script" id=46]
[sub_resource type="DynamicFont" id=1]
@@ -149,16 +150,7 @@ script = ExtResource( 2 )
[node name="game_UI" type="CanvasLayer" parent="."]
script = ExtResource( 6 )
-[node name="Control" type="Control" parent="game_UI"]
-anchor_right = 1.0
-anchor_bottom = 1.0
-script = ExtResource( 10 )
-__meta__ = {
-"_edit_lock_": true,
-"_edit_use_anchors_": false
-}
-
-[node name="winner" type="Label" parent="game_UI/Control"]
+[node name="winner" type="Label" parent="game_UI"]
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
@@ -179,61 +171,9 @@ __meta__ = {
"_edit_use_anchors_": false
}
-[node name="win_timer" type="Timer" parent="game_UI/Control/winner"]
+[node name="win_timer" type="Timer" parent="game_UI/winner"]
wait_time = 4.0
-[node name="Line" type="Button" parent="game_UI/Control"]
-anchor_left = 0.018
-anchor_top = 0.875
-anchor_right = 0.06
-anchor_bottom = 0.95
-margin_left = 0.439999
-margin_top = -6.10352e-05
-margin_right = -0.200005
-text = "Line"
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="Sine" type="Button" parent="game_UI/Control"]
-anchor_left = 0.018
-anchor_top = 0.875
-anchor_right = 0.06
-anchor_bottom = 0.95
-margin_left = 118.44
-margin_top = -6.10352e-05
-margin_right = 117.8
-text = "Sine"
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="Parab" type="Button" parent="game_UI/Control"]
-anchor_left = 0.018
-anchor_top = 0.875
-anchor_right = 0.06
-anchor_bottom = 0.95
-margin_left = 233.44
-margin_top = -6.10352e-05
-margin_right = 232.8
-text = "Parabola"
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="Hyper" type="Button" parent="game_UI/Control"]
-anchor_left = 0.018
-anchor_top = 0.875
-anchor_right = 0.06
-anchor_bottom = 0.95
-margin_left = 348.44
-margin_top = -6.10352e-05
-margin_right = 347.8
-text = "Hyperbola"
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
[node name="timer" type="Label" parent="."]
margin_right = 589.0
margin_bottom = 175.0
@@ -245,6 +185,76 @@ __meta__ = {
"_edit_use_anchors_": false
}
-[connection signal="timeout" from="game_UI/Control/winner/win_timer" to="game_UI/Control/winner" method="_on_win_timer_timeout"]
-[connection signal="pressed" from="game_UI/Control/Line" to="game_UI/Control" method="_on_Line_pressed"]
-[connection signal="pressed" from="game_UI/Control/Sine" to="game_UI/Control" method="_on_Sine_pressed"]
+[node name="controls" type="Control" parent="."]
+margin_right = 1920.0
+margin_bottom = 1080.0
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="menu_button" parent="controls" instance=ExtResource( 13 )]
+anchor_left = 1.0
+anchor_right = 1.0
+margin_left = -70.0
+margin_top = 20.0
+margin_right = -20.0
+margin_bottom = 70.0
+focus_mode = 0
+
+[node name="Line" type="Button" parent="controls"]
+anchor_left = 0.018
+anchor_top = 0.875
+anchor_right = 0.06
+anchor_bottom = 0.95
+margin_left = 8.82419
+margin_top = -6.4104
+margin_right = 47.8242
+margin_bottom = 13.5896
+text = "Line"
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="Sine" type="Button" parent="controls"]
+anchor_left = 0.018
+anchor_top = 0.875
+anchor_right = 0.06
+anchor_bottom = 0.95
+margin_left = 126.824
+margin_top = -6.4104
+margin_right = 165.824
+margin_bottom = 13.5896
+text = "Sine"
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="Parab" type="Button" parent="controls"]
+anchor_left = 0.018
+anchor_top = 0.875
+anchor_right = 0.06
+anchor_bottom = 0.95
+margin_left = 241.824
+margin_top = -6.4104
+margin_right = 307.824
+margin_bottom = 13.5896
+text = "Parabola"
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="Hyper" type="Button" parent="controls"]
+anchor_left = 0.018
+anchor_top = 0.875
+anchor_right = 0.06
+anchor_bottom = 0.95
+margin_left = 356.824
+margin_top = -6.4104
+margin_right = 433.824
+margin_bottom = 13.5896
+text = "Hyperbola"
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[connection signal="timeout" from="game_UI/winner/win_timer" to="game_UI/winner" method="_on_win_timer_timeout"]
diff --git a/source/scenes/GUI/main_menu.tscn b/source/scenes/GUI/main_menu.tscn
index 3edc7c7..c93cbb5 100644
--- a/source/scenes/GUI/main_menu.tscn
+++ b/source/scenes/GUI/main_menu.tscn
@@ -50,8 +50,8 @@ margin_left = -150.0
margin_top = -36.0
margin_right = 150.0
margin_bottom = 36.0
-custom_colors/font_color = Color( 0, 0, 0, 1 )
custom_fonts/font = ExtResource( 5 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "PLAY"
align = 1
valign = 1
@@ -75,8 +75,8 @@ margin_left = -98.8223
margin_top = -36.0
margin_right = 134.178
margin_bottom = 36.0
-custom_colors/font_color = Color( 0, 0, 0, 1 )
custom_fonts/font = ExtResource( 5 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "LAN Party"
align = 1
valign = 1
@@ -107,8 +107,8 @@ margin_left = -150.0
margin_top = -36.0
margin_right = 150.0
margin_bottom = 36.0
-custom_colors/font_color = Color( 0, 0, 0, 1 )
custom_fonts/font = ExtResource( 5 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "EXIT"
align = 1
valign = 1
diff --git a/source/scenes/GUI/network_setup.tscn b/source/scenes/GUI/network_setup.tscn
index c03b136..2ddee4b 100644
--- a/source/scenes/GUI/network_setup.tscn
+++ b/source/scenes/GUI/network_setup.tscn
@@ -1,8 +1,9 @@
-[gd_scene load_steps=21 format=2]
+[gd_scene load_steps=22 format=2]
[ext_resource path="res://source/assets/scripts/server_handlers/network_processors/network_setup.gd" type="Script" id=1]
[ext_resource path="res://source/fonts/oxygen/Oxygen-Regular.ttf" type="DynamicFontData" id=2]
[ext_resource path="res://source/fonts/oxygen/Oxygen-Bold.ttf" type="DynamicFontData" id=3]
+[ext_resource path="res://source/scenes/OVERLAY/elements/menu_button.tscn" type="PackedScene" id=4]
[ext_resource path="res://source/scenes/GUI/background.tscn" type="PackedScene" id=5]
[ext_resource path="res://source/scenes/OVERLAY/elements/floor.tscn" type="PackedScene" id=6]
[ext_resource path="res://source/assets/sprites/GUI/lan_logo.svg" type="Texture" id=7]
@@ -333,6 +334,15 @@ __meta__ = {
"_edit_use_anchors_": false
}
+[node name="menu_button" parent="UI" instance=ExtResource( 4 )]
+anchor_left = 1.0
+anchor_right = 1.0
+margin_left = -70.0
+margin_top = 20.0
+margin_right = -20.0
+margin_bottom = 70.0
+focus_mode = 0
+
[node name="spawn_locations" type="Node" parent="."]
[node name="1" type="Position2D" parent="spawn_locations"]
diff --git a/source/scenes/GUI/sinplayer_setup.tscn b/source/scenes/GUI/singleplayer_setup.tscn
similarity index 98%
rename from source/scenes/GUI/sinplayer_setup.tscn
rename to source/scenes/GUI/singleplayer_setup.tscn
index 6b83b1e..9784d76 100644
--- a/source/scenes/GUI/sinplayer_setup.tscn
+++ b/source/scenes/GUI/singleplayer_setup.tscn
@@ -28,7 +28,7 @@ use_mipmaps = true
use_filter = true
font_data = ExtResource( 2 )
-[node name="network_setup" type="Control"]
+[node name="network_setup2" type="Control"]
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource( 1 )
diff --git a/source/scenes/OVERLAY/elements/HUD.tscn b/source/scenes/OVERLAY/elements/HUD.tscn
new file mode 100644
index 0000000..2659417
--- /dev/null
+++ b/source/scenes/OVERLAY/elements/HUD.tscn
@@ -0,0 +1,26 @@
+[gd_scene load_steps=4 format=2]
+
+[ext_resource path="res://source/assets/sprites/GUI/bar-background.png" type="Texture" id=1]
+[ext_resource path="res://source/assets/sprites/GUI/bar-fill.png" type="Texture" id=2]
+[ext_resource path="res://source/assets/scripts/ui_element_handlers/HUD.gd" type="Script" id=3]
+
+[node name="HUD" type="Node2D" groups=[
+"Net",
+]]
+script = ExtResource( 3 )
+
+[node name="health_bar" type="TextureProgress" parent="."]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -64.0
+margin_top = -20.0
+margin_right = 64.0
+margin_bottom = 20.0
+value = 100.0
+texture_under = ExtResource( 1 )
+texture_progress = ExtResource( 2 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
diff --git a/source/scenes/OVERLAY/elements/button.tscn b/source/scenes/OVERLAY/elements/button.tscn
index 272b6e6..f50f245 100644
--- a/source/scenes/OVERLAY/elements/button.tscn
+++ b/source/scenes/OVERLAY/elements/button.tscn
@@ -7,6 +7,8 @@
[node name="TextureButton" type="TextureButton"]
margin_right = 40.0
margin_bottom = 40.0
+focus_mode = 0
+enabled_focus_mode = 0
texture_normal = ExtResource( 1 )
texture_pressed = ExtResource( 3 )
texture_hover = ExtResource( 2 )
diff --git a/source/scenes/OVERLAY/elements/menu_button.tscn b/source/scenes/OVERLAY/elements/menu_button.tscn
new file mode 100644
index 0000000..0b1b084
--- /dev/null
+++ b/source/scenes/OVERLAY/elements/menu_button.tscn
@@ -0,0 +1,20 @@
+[gd_scene load_steps=5 format=2]
+
+[ext_resource path="res://source/assets/sprites/GUI/menu_button.svg" type="Texture" id=1]
+[ext_resource path="res://source/assets/sprites/GUI/menu_button_pressed.svg" type="Texture" id=2]
+[ext_resource path="res://source/assets/sprites/GUI/menu_button_hover.svg" type="Texture" id=3]
+[ext_resource path="res://source/assets/scripts/ui_element_handlers/menu_button.gd" type="Script" id=4]
+
+[node name="menu_button" type="TextureButton"]
+margin_right = 40.0
+margin_bottom = 40.0
+enabled_focus_mode = 0
+texture_normal = ExtResource( 1 )
+texture_pressed = ExtResource( 2 )
+texture_hover = ExtResource( 3 )
+script = ExtResource( 4 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[connection signal="pressed" from="." to="." method="_on_menu_button_pressed"]
diff --git a/source/scenes/OVERLAY/elements/menu_button_overlay.tscn b/source/scenes/OVERLAY/elements/menu_button_overlay.tscn
new file mode 100644
index 0000000..e3062e9
--- /dev/null
+++ b/source/scenes/OVERLAY/elements/menu_button_overlay.tscn
@@ -0,0 +1,120 @@
+[gd_scene load_steps=8 format=2]
+
+[ext_resource path="res://source/fonts/oxygen/Oxygen-Bold.ttf" type="DynamicFontData" id=1]
+[ext_resource path="res://source/scenes/OVERLAY/elements/button.tscn" type="PackedScene" id=2]
+[ext_resource path="res://source/assets/scripts/ui_element_handlers/menu_button_overlay.gd" type="Script" id=3]
+
+[sub_resource type="StyleBoxFlat" id=1]
+bg_color = Color( 0, 0, 0, 0.380392 )
+
+[sub_resource type="DynamicFont" id=2]
+size = 30
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 1 )
+
+[sub_resource type="DynamicFont" id=3]
+size = 30
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 1 )
+
+[sub_resource type="DynamicFont" id=4]
+size = 30
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 1 )
+
+[node name="menu_button_overlay" type="Control"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+margin_top = 2.1189
+margin_bottom = 2.1189
+script = ExtResource( 3 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="panel" type="Panel" parent="."]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -960.0
+margin_top = -540.0
+margin_right = 960.0
+margin_bottom = 540.0
+custom_styles/panel = SubResource( 1 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="return_to_game" parent="panel" instance=ExtResource( 2 )]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -150.0
+margin_top = -180.0
+margin_right = 150.0
+margin_bottom = -108.0
+focus_mode = 2
+enabled_focus_mode = 2
+
+[node name="Label" type="Label" parent="panel/return_to_game"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+custom_fonts/font = SubResource( 2 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "Return to game"
+align = 1
+valign = 1
+
+[node name="return_to_main_menu" parent="panel" instance=ExtResource( 2 )]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -150.0
+margin_top = -36.0
+margin_right = 150.0
+margin_bottom = 36.0
+focus_mode = 2
+enabled_focus_mode = 2
+
+[node name="Label" type="Label" parent="panel/return_to_main_menu"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+custom_fonts/font = SubResource( 3 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "Retrun to main menu"
+align = 1
+valign = 1
+
+[node name="exit_game" parent="panel" instance=ExtResource( 2 )]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -150.0
+margin_top = 108.0
+margin_right = 150.0
+margin_bottom = 180.0
+focus_mode = 2
+enabled_focus_mode = 2
+
+[node name="Label" type="Label" parent="panel/exit_game"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+custom_fonts/font = SubResource( 4 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "Exit game"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[connection signal="pressed" from="panel/return_to_game" to="." method="_on_return_to_game_pressed"]
+[connection signal="pressed" from="panel/return_to_main_menu" to="." method="_on_return_to_main_menu_pressed"]
+[connection signal="pressed" from="panel/exit_game" to="." method="_on_exit_game_pressed"]