diff --git a/Game/project.godot b/Game/project.godot
index 390d261..0280370 100644
--- a/Game/project.godot
+++ b/Game/project.godot
@@ -84,6 +84,11 @@ input_shoot={
"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null)
]
}
+esc={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"unicode":0,"echo":false,"script":null)
+ ]
+}
[physics]
diff --git a/Game/source/assets/scripts/server_handlers/global.gd b/Game/source/assets/scripts/server_handlers/global.gd
index 0c2f85d..9a35339 100644
--- a/Game/source/assets/scripts/server_handlers/global.gd
+++ b/Game/source/assets/scripts/server_handlers/global.gd
@@ -4,11 +4,13 @@ var player_master = null
var ui = null
var alive_players = []
+
func instance_node_at_location(node: Object, parent: Object, location: Vector2) -> Object:
var node_instance = instance_node(node, parent)
node_instance.global_position = location
return node_instance
+
func instance_node(node: Object, parent: Object) -> Object:
var node_instance = node.instance()
parent.add_child(node_instance)
diff --git a/Game/source/assets/scripts/server_handlers/network_processors/network_setup.gd b/Game/source/assets/scripts/server_handlers/network_processors/network_setup.gd
index 209e26e..310d81e 100644
--- a/Game/source/assets/scripts/server_handlers/network_processors/network_setup.gd
+++ b/Game/source/assets/scripts/server_handlers/network_processors/network_setup.gd
@@ -2,17 +2,26 @@ extends Control
var player = load("res://source/entities/player/player_node.tscn")
-var min_players = 1
var current_spawn_location_instance_number = 1
var current_player_for_spawn_location_number = null
+var mode
onready var multiplayer_config_ui = $multiplayer_configure
-onready var username_text_edit = $multiplayer_configure/username_text_edit
+onready var username_text_edit = $multiplayer_configure/username/username_text_edit
+onready var username = $multiplayer_configure/username
+
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
-func _ready():
+func _ready() -> void:
+ username.hide()
+ background_lobby.hide()
+ device_ip_address.hide()
+ text.hide()
+
get_tree().connect("network_peer_connected", self, "_player_connected")
get_tree().connect("network_peer_disconnected", self, "_player_disconnected")
get_tree().connect("connected_to_server", self, "_connected_to_server")
@@ -21,7 +30,9 @@ func _ready():
if get_tree().network_peer != null:
multiplayer_config_ui.hide()
-
+ background_lobby.show()
+ device_ip_address.show()
+ text.show()
current_spawn_location_instance_number = 1
for player in PersistentNodes.get_children():
if player.is_in_group("Player"):
@@ -35,9 +46,9 @@ func _ready():
start_game.hide()
-func _process(delta: float) -> void:
+func _process(_delta: float) -> void:
if get_tree().network_peer != null:
- if get_tree().get_network_connected_peers().size() >= (min_players - 1) and get_tree().is_network_server():
+ if get_tree().get_network_connected_peers().size() >= 0 and get_tree().is_network_server():
start_game.show()
else:
start_game.hide()
@@ -50,28 +61,28 @@ func _player_connected(id) -> void:
func _player_disconnected(id) -> void:
print("Player " + str(id) + " has disconnected")
+
if PersistentNodes.has_node(str(id)):
PersistentNodes.get_node(str(id)).username_text_instance.queue_free()
PersistentNodes.get_node(str(id)).queue_free()
-
func _on_create_server_pressed():
- if username_text_edit.text != "":
- Network.current_player_username = username_text_edit.text
- multiplayer_config_ui.hide()
- Network.create_server()
- instance_player(get_tree().get_network_unique_id())
+ username.show()
+ username_text_edit.call_deferred("grab_focus")
+ mode = "create"
func _on_join_server_pressed():
- if username_text_edit.text != "":
- multiplayer_config_ui.hide()
- username_text_edit.hide()
- Global.instance_node(load("res://source/scenes/GUI/server_handlers/server_browser.tscn"), self)
+ username.show()
+ username_text_edit.call_deferred("grab_focus")
+ mode = "join"
func _connected_to_server() -> void:
yield(get_tree().create_timer(0.1), "timeout")
+ device_ip_address.show()
+ background_lobby.show()
+ text.show()
instance_player(get_tree().get_network_unique_id())
@@ -92,4 +103,26 @@ sync func switch_to_game() -> void:
if child.is_in_group("Player"):
child.update_shoot_mode(true)
- get_tree().change_scene("res://source/levels/trinity_site/trinity_site_level.tscn")
+ get_tree().change_scene("res://source/levels/trinity_site/trinity_site_level.tscn")
+
+
+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()
+ Network.create_server()
+ instance_player(get_tree().get_network_unique_id())
+ elif mode == "join":
+ if username_text_edit.text != "":
+ multiplayer_config_ui.hide()
+ #username_text_edit.hide()
+ Global.instance_node(load("res://source/scenes/GUI/server_handlers/server_browser.tscn"), self)
+
+
+func _on_return_pressed():
+ get_tree().change_scene("res://source/scenes/GUI/main_menu.tscn")
+
diff --git a/Game/source/assets/scripts/server_handlers/server_processors/server_browser.gd b/Game/source/assets/scripts/server_handlers/server_processors/server_browser.gd
index 958e832..1381d1b 100644
--- a/Game/source/assets/scripts/server_handlers/server_processors/server_browser.gd
+++ b/Game/source/assets/scripts/server_handlers/server_processors/server_browser.gd
@@ -2,13 +2,19 @@ extends Control
onready var server_listener = $server_listener
onready var server_ip_text_edit = $background_panel/server_ip_text_edit
-onready var server_container = $background_panel/VBoxContainer
-onready var manual_setup_button = $background_panel/manual_setup
+onready var server_container = $controls/background_panel/VBoxContainer
+onready var manual_setup_button = $controls/manual_setup/Label
+onready var background_panel = $background_panel
func _ready() -> void:
- server_ip_text_edit.hide()
-
+ background_panel.hide()
+
+
+func _process(delta):
+ if Input.is_action_just_pressed("esc") and background_panel.is_visible_in_tree():
+ background_panel.hide()
+
func _on_server_listener_new_server(serverInfo):
var server_node = Global.instance_node(load("res://source/scenes/GUI/server_handlers/server_display.tscn"), server_container)
@@ -25,16 +31,8 @@ func _on_server_listener_remove_server(serverIp):
func _on_manual_setup_pressed():
- if manual_setup_button.text != "Exit setup":
- server_ip_text_edit.show()
- manual_setup_button.text = "Exit setup"
- server_container.hide()
- server_ip_text_edit.call_deferred("grab_focus")
- else:
- server_ip_text_edit.text = ""
- server_ip_text_edit.hide()
- manual_setup_button.text = "Manual setup"
- server_container.show()
+ background_panel.show()
+ server_ip_text_edit.call_deferred("grab_focus")
func _on_join_server_pressed():
@@ -44,5 +42,5 @@ func _on_join_server_pressed():
Network.join_server()
-func _on_go_back_pressed():
+func _on_return_pressed():
get_tree().reload_current_scene()
diff --git a/Game/source/assets/scripts/server_handlers/server_processors/server_display.gd b/Game/source/assets/scripts/server_handlers/server_processors/server_display.gd
index ad0ed27..eeb0638 100644
--- a/Game/source/assets/scripts/server_handlers/server_processors/server_display.gd
+++ b/Game/source/assets/scripts/server_handlers/server_processors/server_display.gd
@@ -6,4 +6,4 @@ var ip_address = ""
func _on_join_button_pressed():
Network.ip_address = ip_address
Network.join_server()
- get_parent().get_parent().queue_free()
+ get_parent().get_parent().get_parent().get_parent().queue_free()
diff --git a/Game/source/assets/scripts/ui_element_handlers/main_menu.gd b/Game/source/assets/scripts/ui_element_handlers/main_menu.gd
new file mode 100644
index 0000000..a291c16
--- /dev/null
+++ b/Game/source/assets/scripts/ui_element_handlers/main_menu.gd
@@ -0,0 +1,13 @@
+extends Control
+
+
+func _on_play_pressed():
+ get_tree().change_scene("res://source/levels/trinity_site/trinity_site_level.tscn")
+
+
+func _on_LAN_party_pressed():
+ get_tree().change_scene("res://source/scenes/GUI/network_setup.tscn")
+
+
+func _on_exit_pressed():
+ get_tree().quit()
diff --git a/Game/source/assets/scripts/ui_element_handlers/winner.gd b/Game/source/assets/scripts/ui_element_handlers/winner.gd
index 8470d75..cfdbf47 100644
--- a/Game/source/assets/scripts/ui_element_handlers/winner.gd
+++ b/Game/source/assets/scripts/ui_element_handlers/winner.gd
@@ -1,7 +1,7 @@
extends Label
sync func return_to_lobby():
- get_tree().change_scene("res://source/scenes/GUI/main_menu.tscn")
+ get_tree().change_scene("res://source/scenes/GUI/network_setup.tscn")
func _on_win_timer_timeout():
diff --git a/Game/source/assets/sprites/GUI/background_lobby.svg b/Game/source/assets/sprites/GUI/background_lobby.svg
new file mode 100644
index 0000000..3d1f917
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/background_lobby.svg
@@ -0,0 +1,300 @@
+
+
+
+
diff --git a/Game/source/assets/sprites/GUI/background_lobby.svg.import b/Game/source/assets/sprites/GUI/background_lobby.svg.import
new file mode 100644
index 0000000..73182fa
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/background_lobby.svg.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/background_lobby.svg-06ea140a84b3f56c75ad6759c82baa30.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://source/assets/sprites/GUI/background_lobby.svg"
+dest_files=[ "res://.import/background_lobby.svg-06ea140a84b3f56c75ad6759c82baa30.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Game/source/assets/sprites/GUI/background_main_menu.svg b/Game/source/assets/sprites/GUI/background_main_menu.svg
new file mode 100644
index 0000000..4feeb6d
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/background_main_menu.svg
@@ -0,0 +1,1729 @@
+
+
+
+
diff --git a/Game/source/assets/sprites/GUI/background_main_menu.svg.import b/Game/source/assets/sprites/GUI/background_main_menu.svg.import
new file mode 100644
index 0000000..a59de46
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/background_main_menu.svg.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/background_main_menu.svg-5f46fc4238a42907deac7eba838ce736.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://source/assets/sprites/GUI/background_main_menu.svg"
+dest_files=[ "res://.import/background_main_menu.svg-5f46fc4238a42907deac7eba838ce736.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Game/source/assets/sprites/GUI/background_server.svg b/Game/source/assets/sprites/GUI/background_server.svg
new file mode 100644
index 0000000..1f71d2d
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/background_server.svg
@@ -0,0 +1,1246 @@
+
+
+
+
diff --git a/Game/source/assets/sprites/GUI/background_server.svg.import b/Game/source/assets/sprites/GUI/background_server.svg.import
new file mode 100644
index 0000000..d6dbd1e
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/background_server.svg.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/background_server.svg-13dbbcdecf9445c672c8dcdfde37ed7d.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://source/assets/sprites/GUI/background_server.svg"
+dest_files=[ "res://.import/background_server.svg-13dbbcdecf9445c672c8dcdfde37ed7d.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Game/source/assets/sprites/GUI/button.svg b/Game/source/assets/sprites/GUI/button.svg
new file mode 100644
index 0000000..e172409
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/button.svg
@@ -0,0 +1,270 @@
+
+
+
+
diff --git a/Game/source/assets/sprites/GUI/button.svg.import b/Game/source/assets/sprites/GUI/button.svg.import
new file mode 100644
index 0000000..7cee9fb
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/button.svg.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/button.svg-cac9640e5d782b30cde0a13413acff96.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://source/assets/sprites/GUI/button.svg"
+dest_files=[ "res://.import/button.svg-cac9640e5d782b30cde0a13413acff96.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Game/source/assets/sprites/GUI/button_disabled.svg b/Game/source/assets/sprites/GUI/button_disabled.svg
new file mode 100644
index 0000000..c9c3a03
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/button_disabled.svg
@@ -0,0 +1,148 @@
+
+
+
+
diff --git a/Game/source/assets/sprites/GUI/button_disabled.svg.import b/Game/source/assets/sprites/GUI/button_disabled.svg.import
new file mode 100644
index 0000000..63b0f84
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/button_disabled.svg.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/button_disabled.svg-1645aa2c3b02b1298d50c2efbbc961a4.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://source/assets/sprites/GUI/button_disabled.svg"
+dest_files=[ "res://.import/button_disabled.svg-1645aa2c3b02b1298d50c2efbbc961a4.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Game/source/assets/sprites/GUI/button_hover.svg b/Game/source/assets/sprites/GUI/button_hover.svg
new file mode 100644
index 0000000..27ee226
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/button_hover.svg
@@ -0,0 +1,271 @@
+
+
+
+
diff --git a/Game/source/assets/sprites/GUI/button_hover.svg.import b/Game/source/assets/sprites/GUI/button_hover.svg.import
new file mode 100644
index 0000000..609d23f
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/button_hover.svg.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/button_hover.svg-1c62b1c693b43d087bdbc7254293a530.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://source/assets/sprites/GUI/button_hover.svg"
+dest_files=[ "res://.import/button_hover.svg-1c62b1c693b43d087bdbc7254293a530.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Game/source/assets/sprites/GUI/button_play.svg.import b/Game/source/assets/sprites/GUI/button_play.svg.import
new file mode 100644
index 0000000..a78de4f
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/button_play.svg.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/button_play.svg-0d959369142cf9c05ba8de57072ee80c.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://source/assets/sprites/GUI/button_play.svg"
+dest_files=[ "res://.import/button_play.svg-0d959369142cf9c05ba8de57072ee80c.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Game/source/assets/sprites/GUI/button_pressed.svg b/Game/source/assets/sprites/GUI/button_pressed.svg
new file mode 100644
index 0000000..91e107c
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/button_pressed.svg
@@ -0,0 +1,271 @@
+
+
+
+
diff --git a/Game/source/assets/sprites/GUI/button_pressed.svg.import b/Game/source/assets/sprites/GUI/button_pressed.svg.import
new file mode 100644
index 0000000..83344a2
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/button_pressed.svg.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/button_pressed.svg-06daadad8f5649869eff21b5223e29af.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://source/assets/sprites/GUI/button_pressed.svg"
+dest_files=[ "res://.import/button_pressed.svg-06daadad8f5649869eff21b5223e29af.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Game/source/assets/sprites/GUI/floor.svg b/Game/source/assets/sprites/GUI/floor.svg
new file mode 100644
index 0000000..73fb773
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/floor.svg
@@ -0,0 +1,99 @@
+
+
+
+
diff --git a/Game/source/sprites/floor.svg.import b/Game/source/assets/sprites/GUI/floor.svg.import
similarity index 70%
rename from Game/source/sprites/floor.svg.import
rename to Game/source/assets/sprites/GUI/floor.svg.import
index 3f37db6..055ca85 100644
--- a/Game/source/sprites/floor.svg.import
+++ b/Game/source/assets/sprites/GUI/floor.svg.import
@@ -2,15 +2,15 @@
importer="texture"
type="StreamTexture"
-path="res://.import/floor.svg-86da9fb94a8a492527a026759e2d9055.stex"
+path="res://.import/floor.svg-b79f442e9ead427c03573eb4e5401ea6.stex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://source/sprites/floor.svg"
-dest_files=[ "res://.import/floor.svg-86da9fb94a8a492527a026759e2d9055.stex" ]
+source_file="res://source/assets/sprites/GUI/floor.svg"
+dest_files=[ "res://.import/floor.svg-b79f442e9ead427c03573eb4e5401ea6.stex" ]
[params]
diff --git a/Game/source/assets/sprites/GUI/lan_logo.svg b/Game/source/assets/sprites/GUI/lan_logo.svg
new file mode 100644
index 0000000..35b32f5
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/lan_logo.svg
@@ -0,0 +1,316 @@
+
+
+
+
diff --git a/Game/source/assets/sprites/GUI/lan_logo.svg.import b/Game/source/assets/sprites/GUI/lan_logo.svg.import
new file mode 100644
index 0000000..ee4b403
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/lan_logo.svg.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/lan_logo.svg-b439fc221992a07305499b467dc9b69c.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://source/assets/sprites/GUI/lan_logo.svg"
+dest_files=[ "res://.import/lan_logo.svg-b439fc221992a07305499b467dc9b69c.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Game/source/assets/sprites/GUI/server_title.svg b/Game/source/assets/sprites/GUI/server_title.svg
new file mode 100644
index 0000000..b7b0ce6
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/server_title.svg
@@ -0,0 +1,77 @@
+
+
+
+
diff --git a/Game/source/assets/sprites/GUI/server_title.svg.import b/Game/source/assets/sprites/GUI/server_title.svg.import
new file mode 100644
index 0000000..83de574
--- /dev/null
+++ b/Game/source/assets/sprites/GUI/server_title.svg.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/server_title.svg-2897adf4d416843a712ca1520c8afe70.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://source/assets/sprites/GUI/server_title.svg"
+dest_files=[ "res://.import/server_title.svg-2897adf4d416843a712ca1520c8afe70.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Game/source/assets/sprites/character/menu_player/tank.svg b/Game/source/assets/sprites/character/menu_player/tank.svg
new file mode 100644
index 0000000..d8b61c1
--- /dev/null
+++ b/Game/source/assets/sprites/character/menu_player/tank.svg
@@ -0,0 +1,826 @@
+
+
diff --git a/Game/source/assets/sprites/character/menu_player/tank.svg.import b/Game/source/assets/sprites/character/menu_player/tank.svg.import
new file mode 100644
index 0000000..0cef778
--- /dev/null
+++ b/Game/source/assets/sprites/character/menu_player/tank.svg.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/tank.svg-dd75a0a35b6e8c0b4f9010a769c83637.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://source/assets/sprites/character/menu_player/tank.svg"
+dest_files=[ "res://.import/tank.svg-dd75a0a35b6e8c0b4f9010a769c83637.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Game/source/entities/grass/grass_node.tscn b/Game/source/entities/grass/grass_node.tscn
index e7d3d3b..28b8ec8 100644
--- a/Game/source/entities/grass/grass_node.tscn
+++ b/Game/source/entities/grass/grass_node.tscn
@@ -54,15 +54,15 @@ animations = [ {
"name": "idle_down",
"speed": 12.0
}, {
-"frames": [ ExtResource( 38 ), ExtResource( 35 ), ExtResource( 41 ), ExtResource( 37 ), ExtResource( 19 ), ExtResource( 18 ), ExtResource( 40 ) ],
-"loop": false,
-"name": "transition_up",
-"speed": 24.0
-}, {
"frames": [ ExtResource( 17 ), ExtResource( 34 ), ExtResource( 28 ), ExtResource( 26 ), ExtResource( 24 ), ExtResource( 27 ), ExtResource( 36 ) ],
"loop": false,
"name": "transition_down",
"speed": 24.0
+}, {
+"frames": [ ExtResource( 38 ), ExtResource( 35 ), ExtResource( 41 ), ExtResource( 37 ), ExtResource( 19 ), ExtResource( 18 ), ExtResource( 40 ) ],
+"loop": false,
+"name": "transition_up",
+"speed": 24.0
} ]
[sub_resource type="RectangleShape2D" id=2]
@@ -76,11 +76,10 @@ position = Vector2( -3.36365, 0 )
scale = Vector2( 0.75, 0.75 )
frames = SubResource( 1 )
animation = "idle"
-frame = 7
+frame = 2
playing = true
[node name="trinity_site_level_layout-level_design_z-index_0_grass_type-2" type="Sprite" parent="."]
-visible = false
[node name="grass_node" type="Node2D" parent="."]
diff --git a/Game/source/entities/menu_player/player_node.tscn b/Game/source/entities/menu_player/player_node.tscn
new file mode 100644
index 0000000..1887611
--- /dev/null
+++ b/Game/source/entities/menu_player/player_node.tscn
@@ -0,0 +1,15 @@
+[gd_scene load_steps=3 format=2]
+
+[ext_resource path="res://source/assets/sprites/character/menu_player/tank.svg" type="Texture" id=1]
+
+[sub_resource type="CircleShape2D" id=1]
+radius = 76.0267
+
+[node name="player" type="KinematicBody2D"]
+
+[node name="player_collider" type="CollisionShape2D" parent="."]
+shape = SubResource( 1 )
+
+[node name="player_sprite" type="Sprite" parent="."]
+position = Vector2( 0.561218, -8.41847 )
+texture = ExtResource( 1 )
diff --git a/Game/source/entities/player/shooting_point.gd b/Game/source/entities/player/shooting_point.gd
deleted file mode 100644
index ba915cc..0000000
--- a/Game/source/entities/player/shooting_point.gd
+++ /dev/null
@@ -1,5 +0,0 @@
-extends Position2D
-
-
-func _process(delta):
- look_at(get_global_mouse_position())
diff --git a/Game/source/fonts/oxygen/Oxygen-Bold.ttf b/Game/source/fonts/oxygen/Oxygen-Bold.ttf
new file mode 100644
index 0000000..8a3d389
Binary files /dev/null and b/Game/source/fonts/oxygen/Oxygen-Bold.ttf differ
diff --git a/Game/source/fonts/oxygen/Oxygen-Light.ttf b/Game/source/fonts/oxygen/Oxygen-Light.ttf
new file mode 100644
index 0000000..f0236d9
Binary files /dev/null and b/Game/source/fonts/oxygen/Oxygen-Light.ttf differ
diff --git a/Game/source/fonts/oxygen/Oxygen-Regular.ttf b/Game/source/fonts/oxygen/Oxygen-Regular.ttf
new file mode 100644
index 0000000..416f8e6
Binary files /dev/null and b/Game/source/fonts/oxygen/Oxygen-Regular.ttf differ
diff --git a/Game/source/fonts/oxygen/oxygen_bold.tres b/Game/source/fonts/oxygen/oxygen_bold.tres
new file mode 100644
index 0000000..5ef488a
--- /dev/null
+++ b/Game/source/fonts/oxygen/oxygen_bold.tres
@@ -0,0 +1,9 @@
+[gd_resource type="DynamicFont" load_steps=2 format=2]
+
+[ext_resource path="res://source/fonts/oxygen/Oxygen-Bold.ttf" type="DynamicFontData" id=1]
+
+[resource]
+size = 36
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 1 )
diff --git a/Game/source/fonts/oxygen/oxygen_regular.tres b/Game/source/fonts/oxygen/oxygen_regular.tres
new file mode 100644
index 0000000..8c45000
--- /dev/null
+++ b/Game/source/fonts/oxygen/oxygen_regular.tres
@@ -0,0 +1,9 @@
+[gd_resource type="DynamicFont" load_steps=2 format=2]
+
+[ext_resource path="res://source/fonts/oxygen/Oxygen-Regular.ttf" type="DynamicFontData" id=1]
+
+[resource]
+size = 50
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 1 )
diff --git a/Game/source/levels/trinity_site/trinity_site_level.tscn b/Game/source/levels/trinity_site/trinity_site_level.tscn
index f408bb6..b3db345 100644
--- a/Game/source/levels/trinity_site/trinity_site_level.tscn
+++ b/Game/source/levels/trinity_site/trinity_site_level.tscn
@@ -106,11 +106,11 @@ z_index = -3
[node name="spawn_locations" type="Node" parent="."]
[node name="1" type="Position2D" parent="spawn_locations"]
-position = Vector2( 460, 540 )
+position = Vector2( 260, 540 )
z_index = 1
[node name="2" type="Position2D" parent="spawn_locations"]
-position = Vector2( 260, 540 )
+position = Vector2( 460, 540 )
z_index = 1
[node name="3" type="Position2D" parent="spawn_locations"]
diff --git a/Game/source/scenes/GUI/background.tscn b/Game/source/scenes/GUI/background.tscn
new file mode 100644
index 0000000..c0ce0fb
--- /dev/null
+++ b/Game/source/scenes/GUI/background.tscn
@@ -0,0 +1,18 @@
+[gd_scene load_steps=3 format=2]
+
+[ext_resource path="res://source/scenes/OVERLAY/elements/floor.tscn" type="PackedScene" id=5]
+[ext_resource path="res://source/assets/sprites/GUI/background_main_menu.svg" type="Texture" id=6]
+
+[node name="background" type="Node2D"]
+
+[node name="background_main_menu" type="Sprite" parent="."]
+position = Vector2( 960, 540 )
+z_index = -10
+z_as_relative = false
+texture = ExtResource( 6 )
+__meta__ = {
+"_edit_lock_": true
+}
+
+[node name="floor" parent="." instance=ExtResource( 5 )]
+position = Vector2( 960, 1016 )
diff --git a/Game/source/scenes/GUI/main_menu.tscn b/Game/source/scenes/GUI/main_menu.tscn
index 5327a46..ea9d959 100644
--- a/Game/source/scenes/GUI/main_menu.tscn
+++ b/Game/source/scenes/GUI/main_menu.tscn
@@ -1,122 +1,137 @@
-[gd_scene load_steps=7 format=2]
+[gd_scene load_steps=9 format=2]
-[ext_resource path="res://source/fonts/roboto/roboto.tres" type="DynamicFont" id=1]
-[ext_resource path="res://source/assets/scripts/server_handlers/network_processors/network_setup.gd" type="Script" id=2]
-[ext_resource path="res://source/assets/scripts/ui_element_handlers/UI.gd" type="Script" id=3]
-[ext_resource path="res://source/floor.tscn" type="PackedScene" id=4]
-[ext_resource path="res://source/fonts/roboto/Roboto-Regular.ttf" type="DynamicFontData" id=5]
+[ext_resource path="res://source/entities/menu_player/player_node.tscn" type="PackedScene" id=1]
+[ext_resource path="res://source/scenes/GUI/background.tscn" type="PackedScene" id=2]
+[ext_resource path="res://source/assets/sprites/GUI/lan_logo.svg" type="Texture" id=3]
+[ext_resource path="res://source/fonts/oxygen/Oxygen-Bold.ttf" type="DynamicFontData" id=4]
+[ext_resource path="res://source/fonts/oxygen/oxygen_bold.tres" type="DynamicFont" id=5]
+[ext_resource path="res://source/assets/scripts/ui_element_handlers/main_menu.gd" type="Script" id=6]
+[ext_resource path="res://source/scenes/OVERLAY/elements/button.tscn" type="PackedScene" id=7]
[sub_resource type="DynamicFont" id=1]
-size = 32
+size = 100
use_mipmaps = true
use_filter = true
-font_data = ExtResource( 5 )
+font_data = ExtResource( 4 )
-[node name="network_setup" type="Control"]
+[node name="main_menu" type="Control"]
anchor_right = 1.0
anchor_bottom = 1.0
-script = ExtResource( 2 )
+script = ExtResource( 6 )
__meta__ = {
"_edit_use_anchors_": false
}
-[node name="multiplayer_configure" type="Control" parent="."]
+[node name="background" parent="." instance=ExtResource( 2 )]
+
+[node name="player" parent="background" instance=ExtResource( 1 )]
+position = Vector2( 408, 872 )
+
+[node name="foreground" type="Control" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
-margin_left = 2.5199
-margin_right = 2.5199
+margin_top = 1.49835
+margin_bottom = 1.49829
__meta__ = {
"_edit_use_anchors_": false
}
-[node name="create_server" type="Button" parent="multiplayer_configure"]
-anchor_left = 0.5
-anchor_top = 0.5
-anchor_right = 0.5
-anchor_bottom = 0.5
-margin_left = -267.5
-margin_top = -202.0
-margin_right = 267.5
-margin_bottom = -26.0
-custom_fonts/font = ExtResource( 1 )
-text = "Create server"
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="join_server" type="Button" parent="multiplayer_configure"]
-anchor_left = 0.5
-anchor_top = 0.5
-anchor_right = 0.5
-anchor_bottom = 0.5
-margin_left = -266.52
-margin_top = 28.0
-margin_right = 268.48
-margin_bottom = 204.0
-custom_fonts/font = ExtResource( 1 )
-text = "Join server"
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="username_text_edit" type="LineEdit" parent="multiplayer_configure"]
+[node name="name" type="Label" parent="foreground"]
anchor_left = 0.5
anchor_right = 0.5
-margin_left = -422.5
-margin_top = 117.0
-margin_right = 422.5
-margin_bottom = 221.0
-custom_fonts/font = ExtResource( 1 )
-align = 1
-placeholder_text = "Enter username"
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="UI" type="CanvasLayer" parent="."]
-script = ExtResource( 3 )
-
-[node name="start_game" type="Button" parent="UI"]
-margin_left = 27.0
-margin_top = 24.7551
-margin_right = 391.0
-margin_bottom = 155.755
-custom_fonts/font = ExtResource( 1 )
-text = "Start game"
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="device_ip_address" type="Label" parent="UI"]
-anchor_left = 1.0
-anchor_right = 1.0
-margin_left = -256.0
-margin_bottom = 64.0
+margin_left = -320.0
+margin_top = 350.0
+margin_right = 320.0
+margin_bottom = 477.0
custom_fonts/font = SubResource( 1 )
+text = "NAME&LOGO"
+__meta__ = {
+"_edit_lock_": true,
+"_edit_use_anchors_": false
+}
+
+[node name="play" parent="foreground" instance=ExtResource( 7 )]
+margin_left = 810.0
+margin_top = 500.0
+margin_right = 1110.0
+margin_bottom = 572.0
+
+[node name="Label" type="Label" parent="foreground/play"]
+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
+custom_fonts/font = ExtResource( 5 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "PLAY"
align = 1
valign = 1
__meta__ = {
+"_edit_lock_": true,
"_edit_use_anchors_": false
}
-[node name="floor" parent="." instance=ExtResource( 4 )]
-position = Vector2( 960, 1096 )
-scale = Vector2( 2, 1 )
+[node name="LAN_party" parent="foreground" instance=ExtResource( 7 )]
+margin_left = 810.0
+margin_top = 580.0
+margin_right = 1110.0
+margin_bottom = 652.0
-[node name="spawn_locations" type="Node" parent="."]
+[node name="Label2" type="Label" parent="foreground/LAN_party"]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -98.8223
+margin_top = -36.0
+margin_right = 134.178
+margin_bottom = 36.0
+custom_fonts/font = ExtResource( 5 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "LAN Party"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_lock_": true,
+"_edit_use_anchors_": false
+}
-[node name="1" type="Position2D" parent="spawn_locations"]
-position = Vector2( 264, 880 )
+[node name="lan_logo" type="Sprite" parent="foreground/LAN_party"]
+position = Vector2( 33.5, 36 )
+texture = ExtResource( 3 )
+__meta__ = {
+"_edit_lock_": true
+}
-[node name="2" type="Position2D" parent="spawn_locations"]
-position = Vector2( 688, 912 )
+[node name="exit" parent="foreground" instance=ExtResource( 7 )]
+margin_left = 810.0
+margin_top = 660.0
+margin_right = 1110.0
+margin_bottom = 732.0
-[node name="3" type="Position2D" parent="spawn_locations"]
-position = Vector2( 1264, 872 )
+[node name="Label" type="Label" parent="foreground/exit"]
+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
+custom_fonts/font = ExtResource( 5 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "EXIT"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_lock_": true,
+"_edit_use_anchors_": false
+}
-[node name="4" type="Position2D" parent="spawn_locations"]
-position = Vector2( 1584, 888 )
-
-[connection signal="pressed" from="multiplayer_configure/create_server" to="." method="_on_create_server_pressed"]
-[connection signal="pressed" from="multiplayer_configure/join_server" to="." method="_on_join_server_pressed"]
-[connection signal="pressed" from="UI/start_game" to="." method="_on_start_game_pressed"]
+[connection signal="pressed" from="foreground/play" to="." method="_on_play_pressed"]
+[connection signal="pressed" from="foreground/LAN_party" to="." method="_on_LAN_party_pressed"]
+[connection signal="pressed" from="foreground/exit" to="." method="_on_exit_pressed"]
diff --git a/Game/source/scenes/GUI/network_setup.tscn b/Game/source/scenes/GUI/network_setup.tscn
new file mode 100644
index 0000000..8adebbc
--- /dev/null
+++ b/Game/source/scenes/GUI/network_setup.tscn
@@ -0,0 +1,282 @@
+[gd_scene load_steps=16 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/fonts/roboto/roboto.tres" type="DynamicFont" 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]
+[ext_resource path="res://source/fonts/oxygen/oxygen_bold.tres" type="DynamicFont" id=8]
+[ext_resource path="res://source/scenes/OVERLAY/elements/button.tscn" type="PackedScene" id=9]
+[ext_resource path="res://source/fonts/oxygen/oxygen_regular.tres" type="DynamicFont" id=10]
+[ext_resource path="res://source/assets/scripts/ui_element_handlers/UI.gd" type="Script" id=11]
+[ext_resource path="res://source/assets/sprites/GUI/background_lobby.svg" type="Texture" id=12]
+
+[sub_resource type="DynamicFont" id=3]
+size = 36
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 2 )
+
+[sub_resource type="DynamicFont" id=1]
+size = 88
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 3 )
+
+[sub_resource type="DynamicFont" id=2]
+size = 22
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 2 )
+
+[node name="network_setup" type="Control"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+script = ExtResource( 1 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="background" parent="." instance=ExtResource( 5 )]
+
+[node name="multiplayer_configure" type="Control" parent="."]
+anchor_right = 1.0
+anchor_bottom = 1.0
+margin_left = 2.5199
+margin_right = 2.5199
+rect_pivot_offset = Vector2( -2200.59, -462.965 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="create_server" parent="multiplayer_configure" instance=ExtResource( 9 )]
+margin_left = 810.0
+margin_top = 424.0
+margin_right = 1110.0
+margin_bottom = 496.0
+
+[node name="Label" type="Label" parent="multiplayer_configure/create_server"]
+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
+custom_fonts/font = ExtResource( 8 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "CREATE SERVER"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_lock_": true,
+"_edit_use_anchors_": false
+}
+
+[node name="join_server" parent="multiplayer_configure" instance=ExtResource( 9 )]
+margin_left = 810.0
+margin_top = 504.0
+margin_right = 1110.0
+margin_bottom = 576.0
+
+[node name="Label" type="Label" parent="multiplayer_configure/join_server"]
+anchor_left = 1.0
+anchor_top = 0.5
+anchor_right = 1.0
+anchor_bottom = 0.5
+margin_left = -233.0
+margin_top = -36.0
+margin_bottom = 36.0
+custom_fonts/font = ExtResource( 8 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "JOIN SERVER"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_lock_": true,
+"_edit_use_anchors_": false
+}
+
+[node name="lan_logo" type="Sprite" parent="multiplayer_configure/join_server"]
+position = Vector2( 33.5, 36 )
+texture = ExtResource( 7 )
+__meta__ = {
+"_edit_lock_": true
+}
+
+[node name="return" parent="multiplayer_configure" instance=ExtResource( 9 )]
+margin_left = 810.0
+margin_top = 584.0
+margin_right = 1110.0
+margin_bottom = 656.0
+
+[node name="Label" type="Label" parent="multiplayer_configure/return"]
+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
+custom_fonts/font = ExtResource( 8 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "RETURN"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_lock_": true,
+"_edit_use_anchors_": false
+}
+
+[node name="username" type="Panel" parent="multiplayer_configure"]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -480.0
+margin_top = -270.0
+margin_right = 480.0
+margin_bottom = 270.0
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="username_text_edit" type="LineEdit" parent="multiplayer_configure/username"]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -403.0
+margin_top = -243.0
+margin_right = 403.0
+margin_bottom = -138.0
+custom_fonts/font = ExtResource( 4 )
+custom_colors/selection_color = Color( 0.607843, 0.607843, 0.607843, 1 )
+custom_colors/cursor_color = Color( 1, 1, 1, 1 )
+align = 1
+placeholder_text = "Enter username"
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="confirm" parent="multiplayer_configure/username/username_text_edit" instance=ExtResource( 9 )]
+margin_left = 255.623
+margin_top = 129.885
+margin_right = 555.623
+margin_bottom = 201.885
+
+[node name="Label" type="Label" parent="multiplayer_configure/username/username_text_edit/confirm"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+custom_fonts/font = SubResource( 3 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "CONFIRM"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_lock_": true
+}
+
+[node name="background_lobby" type="Node2D" parent="."]
+z_index = -1
+
+[node name="background_lobby" type="Sprite" parent="background_lobby"]
+position = Vector2( 960, 540 )
+texture = ExtResource( 12 )
+__meta__ = {
+"_edit_lock_": true
+}
+
+[node name="floor" parent="background_lobby" instance=ExtResource( 6 )]
+position = Vector2( 960, 1016 )
+
+[node name="UI" type="CanvasLayer" parent="."]
+script = ExtResource( 11 )
+
+[node name="device_ip_address" type="Label" parent="UI"]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -319.0
+margin_top = -56.0
+margin_right = 319.0
+margin_bottom = 56.0
+custom_fonts/font = SubResource( 1 )
+custom_colors/font_color = Color( 0.439216, 0.666667, 1, 0.27451 )
+align = 1
+valign = 1
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="text" type="Label" parent="UI"]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -116.5
+margin_top = 60.0
+margin_right = 116.5
+margin_bottom = 89.0
+custom_fonts/font = SubResource( 2 )
+custom_colors/font_color = Color( 0.439216, 0.666667, 1, 0.27451 )
+text = "WAITING FOR PLAYERS"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="start_game" parent="UI" instance=ExtResource( 9 )]
+visible = false
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -150.0
+margin_top = 100.0
+margin_right = 150.0
+margin_bottom = 172.0
+
+[node name="Label" type="Label" parent="UI/start_game"]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -74.5
+margin_top = -32.0
+margin_right = 74.5
+margin_bottom = 32.0
+custom_fonts/font = ExtResource( 10 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "START"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="spawn_locations" type="Node" parent="."]
+
+[node name="1" type="Position2D" parent="spawn_locations"]
+position = Vector2( 384, 860 )
+
+[node name="2" type="Position2D" parent="spawn_locations"]
+position = Vector2( 768, 860 )
+
+[node name="3" type="Position2D" parent="spawn_locations"]
+position = Vector2( 1152, 860 )
+
+[node name="4" type="Position2D" parent="spawn_locations"]
+position = Vector2( 1536, 860 )
+
+[connection signal="pressed" from="multiplayer_configure/create_server" to="." method="_on_create_server_pressed"]
+[connection signal="pressed" from="multiplayer_configure/join_server" to="." method="_on_join_server_pressed"]
+[connection signal="pressed" from="multiplayer_configure/return" to="." method="_on_return_pressed"]
+[connection signal="pressed" from="multiplayer_configure/username/username_text_edit/confirm" to="." method="_on_confirm_pressed"]
+[connection signal="pressed" from="UI/start_game" to="." method="_on_start_game_pressed"]
diff --git a/Game/source/scenes/GUI/server_handlers/server_browser.tscn b/Game/source/scenes/GUI/server_handlers/server_browser.tscn
index ab5710c..662ab2e 100644
--- a/Game/source/scenes/GUI/server_handlers/server_browser.tscn
+++ b/Game/source/scenes/GUI/server_handlers/server_browser.tscn
@@ -1,10 +1,27 @@
-[gd_scene load_steps=5 format=2]
+[gd_scene load_steps=12 format=2]
[ext_resource path="res://source/fonts/roboto/roboto.tres" type="DynamicFont" id=1]
[ext_resource path="res://source/scenes/GUI/server_handlers/server_listener.tscn" type="PackedScene" id=2]
[ext_resource path="res://source/assets/scripts/server_handlers/server_processors/server_browser.gd" type="Script" id=3]
+[ext_resource path="res://source/scenes/OVERLAY/elements/button.tscn" type="PackedScene" id=4]
+[ext_resource path="res://source/assets/sprites/GUI/background_server.svg" type="Texture" id=5]
+[ext_resource path="res://source/assets/sprites/GUI/server_title.svg" type="Texture" id=6]
+[ext_resource path="res://source/assets/sprites/GUI/button_disabled.svg" type="Texture" id=7]
+[ext_resource path="res://source/fonts/oxygen/Oxygen-Regular.ttf" type="DynamicFontData" id=8]
-[sub_resource type="Animation" id=1]
+[sub_resource type="DynamicFont" id=1]
+size = 36
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 8 )
+
+[sub_resource type="DynamicFont" id=2]
+size = 32
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 8 )
+
+[sub_resource type="Animation" id=3]
resource_name = "searching_for_servers"
length = 0.8
loop = true
@@ -26,44 +43,160 @@ anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource( 3 )
__meta__ = {
+"_edit_lock_": true,
"_edit_use_anchors_": false
}
+[node name="background_server" type="Sprite" parent="."]
+position = Vector2( 960, 540 )
+texture = ExtResource( 5 )
+__meta__ = {
+"_edit_lock_": true
+}
+
+[node name="controls" type="Control" parent="."]
+anchor_right = 1.0
+anchor_bottom = 1.0
+margin_left = 2.51978
+margin_top = 1.77069
+margin_right = 2.51978
+margin_bottom = 1.77075
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="manual_setup" parent="controls" instance=ExtResource( 4 )]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = 40.0
+margin_top = -116.0
+margin_right = 340.0
+margin_bottom = -44.0
+
+[node name="Label" type="Label" parent="controls/manual_setup"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+custom_fonts/font = SubResource( 1 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "MANUAL SETUP"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_lock_": true
+}
+
+[node name="online" type="TextureButton" parent="controls"]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = 40.0
+margin_top = -36.0
+margin_right = 340.0
+margin_bottom = 36.0
+texture_normal = ExtResource( 7 )
+__meta__ = {
+"_edit_lock_": true,
+"_edit_use_anchors_": false
+}
+
+[node name="Label" type="Label" parent="controls/online"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+margin_left = 68.0
+custom_fonts/font = SubResource( 1 )
+custom_colors/font_color = Color( 0.329412, 0.329412, 0.329412, 1 )
+text = "ONLINE"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_lock_": true
+}
+
+[node name="return" parent="controls" instance=ExtResource( 4 )]
+margin_left = 1000.0
+margin_top = 584.0
+margin_right = 1300.0
+margin_bottom = 656.0
+
+[node name="Label" type="Label" parent="controls/return"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+custom_fonts/font = SubResource( 1 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "RETURN"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_lock_": true
+}
+
+[node name="background_panel" type="Panel" parent="controls"]
+self_modulate = Color( 0.0862745, 0.0862745, 0.0862745, 0.392157 )
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -447.5
+margin_top = -66.0
+margin_right = -20.0
+margin_bottom = 171.5
+__meta__ = {
+"_edit_lock_": true,
+"_edit_use_anchors_": false
+}
+
+[node name="VBoxContainer" type="VBoxContainer" parent="controls/background_panel"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+rect_pivot_offset = Vector2( -279.611, -199.539 )
+__meta__ = {
+"_edit_lock_": true,
+"_edit_use_anchors_": false
+}
+
+[node name="server_title" type="Sprite" parent="controls/background_panel"]
+position = Vector2( 225, -25 )
+texture = ExtResource( 6 )
+__meta__ = {
+"_edit_lock_": true
+}
+
+[node name="searching_for_servers" type="Label" parent="controls/background_panel/server_title"]
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -450.0
+margin_top = -64.0
+margin_bottom = 14.0
+rect_min_size = Vector2( 0, 70 )
+custom_fonts/font = SubResource( 2 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "Searching for servers"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_lock_": true,
+"_edit_use_anchors_": false
+}
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="controls/background_panel/server_title/searching_for_servers"]
+autoplay = "searching_for_servers"
+playback_speed = 0.5
+anims/searching_for_servers = SubResource( 3 )
+
[node name="background_panel" type="Panel" parent="."]
-anchor_right = 1.0
-anchor_bottom = 1.0
-margin_left = 96.0
-margin_top = 162.0
-margin_right = -96.0
-margin_bottom = -54.0
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="manual_setup" type="Button" parent="background_panel"]
-anchor_left = 1.0
-anchor_top = 1.0
-anchor_right = 1.0
-anchor_bottom = 1.0
-margin_left = -473.0
-margin_top = -175.0
-margin_right = -30.0
-margin_bottom = -30.0
-custom_fonts/font = ExtResource( 1 )
-text = "Manual setup"
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="go_back" type="Button" parent="background_panel"]
-anchor_top = 1.0
-anchor_bottom = 1.0
-margin_left = 30.0
-margin_top = -170.0
-margin_right = 473.0
-margin_bottom = -25.0
-custom_fonts/font = ExtResource( 1 )
-text = "Go back"
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -480.0
+margin_top = -270.0
+margin_right = 480.0
+margin_bottom = 270.0
__meta__ = {
"_edit_use_anchors_": false
}
@@ -78,71 +211,36 @@ margin_top = -243.0
margin_right = 403.0
margin_bottom = -138.0
custom_fonts/font = ExtResource( 1 )
+custom_colors/selection_color = Color( 0.607843, 0.607843, 0.607843, 1 )
+custom_colors/cursor_color = Color( 1, 1, 1, 1 )
align = 1
-
-[node name="type_in_server_ip" type="Label" parent="background_panel/server_ip_text_edit"]
-anchor_right = 1.0
-margin_top = -105.0
-custom_fonts/font = ExtResource( 1 )
-text = "Type in server IP"
-align = 1
-valign = 1
-
-[node name="join_server" type="Button" parent="background_panel/server_ip_text_edit"]
-anchor_left = 0.5
-anchor_top = 0.5
-anchor_right = 0.5
-anchor_bottom = 0.5
-margin_left = -221.5
-margin_top = 94.5
-margin_right = 221.5
-margin_bottom = 239.5
-custom_fonts/font = ExtResource( 1 )
-text = "Join server"
+placeholder_text = "Server IP"
__meta__ = {
"_edit_use_anchors_": false
}
-[node name="VBoxContainer" type="VBoxContainer" parent="background_panel"]
+[node name="join_server" parent="background_panel/server_ip_text_edit" instance=ExtResource( 4 )]
+margin_left = 255.623
+margin_top = 129.885
+margin_right = 555.623
+margin_bottom = 201.885
+
+[node name="Label" type="Label" parent="background_panel/server_ip_text_edit/join_server"]
anchor_right = 1.0
anchor_bottom = 1.0
-margin_left = 70.0
-margin_top = 40.0
-margin_right = -70.0
-margin_bottom = -175.0
-__meta__ = {
-"_edit_use_anchors_": false
-}
-
-[node name="searching_for_servers" type="Label" parent="background_panel/VBoxContainer"]
-margin_right = 1588.0
-margin_bottom = 76.0
-rect_min_size = Vector2( 0, 70 )
-custom_fonts/font = ExtResource( 1 )
-text = "Searching for servers.."
-align = 1
-valign = 1
-
-[node name="AnimationPlayer" type="AnimationPlayer" parent="background_panel/VBoxContainer/searching_for_servers"]
-autoplay = "searching_for_servers"
-playback_speed = 0.5
-anims/searching_for_servers = SubResource( 1 )
-
-[node name="server_browser_label" type="Label" parent="background_panel"]
-anchor_right = 1.0
-margin_top = -176.0
-custom_fonts/font = ExtResource( 1 )
-text = "Server Browser"
+custom_fonts/font = SubResource( 1 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "JOIN SERVER"
align = 1
valign = 1
__meta__ = {
-"_edit_use_anchors_": false
+"_edit_lock_": true
}
[node name="server_listener" parent="." instance=ExtResource( 2 )]
-[connection signal="pressed" from="background_panel/manual_setup" to="." method="_on_manual_setup_pressed"]
-[connection signal="pressed" from="background_panel/go_back" to="." method="_on_go_back_pressed"]
+[connection signal="pressed" from="controls/manual_setup" to="." method="_on_manual_setup_pressed"]
+[connection signal="pressed" from="controls/return" to="." method="_on_return_pressed"]
[connection signal="pressed" from="background_panel/server_ip_text_edit/join_server" to="." method="_on_join_server_pressed"]
[connection signal="new_server" from="server_listener" to="." method="_on_server_listener_new_server"]
[connection signal="remove_server" from="server_listener" to="." method="_on_server_listener_remove_server"]
diff --git a/Game/source/scenes/GUI/server_handlers/server_display.tscn b/Game/source/scenes/GUI/server_handlers/server_display.tscn
index 4fc876c..7cde319 100644
--- a/Game/source/scenes/GUI/server_handlers/server_display.tscn
+++ b/Game/source/scenes/GUI/server_handlers/server_display.tscn
@@ -1,18 +1,30 @@
-[gd_scene load_steps=3 format=2]
+[gd_scene load_steps=6 format=2]
-[ext_resource path="res://source/fonts/roboto/roboto.tres" type="DynamicFont" id=1]
+[ext_resource path="res://source/fonts/oxygen/Oxygen-Regular.ttf" type="DynamicFontData" id=1]
[ext_resource path="res://source/assets/scripts/server_handlers/server_processors/server_display.gd" type="Script" id=2]
+[ext_resource path="res://source/fonts/oxygen/Oxygen-Bold.ttf" type="DynamicFontData" id=3]
+
+[sub_resource type="DynamicFont" id=1]
+size = 24
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 1 )
+
+[sub_resource type="DynamicFont" id=2]
+size = 36
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 3 )
[node name="server_display" type="Label" groups=[
"Server_display",
]]
anchor_right = 1.0
-margin_right = -220.0
+margin_right = -1520.0
margin_bottom = 130.0
rect_min_size = Vector2( 0, 130 )
-custom_fonts/font = ExtResource( 1 )
+custom_fonts/font = SubResource( 1 )
text = "N/A: 000.000.000"
-align = 1
valign = 1
script = ExtResource( 2 )
__meta__ = {
@@ -22,11 +34,9 @@ __meta__ = {
[node name="join_button" type="Button" parent="."]
anchor_left = 1.0
anchor_right = 1.0
-anchor_bottom = 1.0
-margin_left = -302.0
-margin_top = 13.0
-margin_bottom = -13.0
-custom_fonts/font = ExtResource( 1 )
+margin_left = -100.0
+margin_bottom = 52.0
+custom_fonts/font = SubResource( 2 )
text = "Join"
__meta__ = {
"_edit_use_anchors_": false
diff --git a/Game/source/scenes/OVERLAY/elements/button.tscn b/Game/source/scenes/OVERLAY/elements/button.tscn
new file mode 100644
index 0000000..272b6e6
--- /dev/null
+++ b/Game/source/scenes/OVERLAY/elements/button.tscn
@@ -0,0 +1,15 @@
+[gd_scene load_steps=4 format=2]
+
+[ext_resource path="res://source/assets/sprites/GUI/button.svg" type="Texture" id=1]
+[ext_resource path="res://source/assets/sprites/GUI/button_hover.svg" type="Texture" id=2]
+[ext_resource path="res://source/assets/sprites/GUI/button_pressed.svg" type="Texture" id=3]
+
+[node name="TextureButton" type="TextureButton"]
+margin_right = 40.0
+margin_bottom = 40.0
+texture_normal = ExtResource( 1 )
+texture_pressed = ExtResource( 3 )
+texture_hover = ExtResource( 2 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
diff --git a/Game/source/floor.tscn b/Game/source/scenes/OVERLAY/elements/floor.tscn
similarity index 68%
rename from Game/source/floor.tscn
rename to Game/source/scenes/OVERLAY/elements/floor.tscn
index 8ddbc8a..9915af7 100644
--- a/Game/source/floor.tscn
+++ b/Game/source/scenes/OVERLAY/elements/floor.tscn
@@ -1,9 +1,9 @@
[gd_scene load_steps=3 format=2]
-[ext_resource path="res://source/sprites/floor.svg" type="Texture" id=1]
+[ext_resource path="res://source/assets/sprites/GUI/floor.svg" type="Texture" id=1]
[sub_resource type="RectangleShape2D" id=1]
-extents = Vector2( 960, 24 )
+extents = Vector2( 960, 64 )
[node name="floor" type="StaticBody2D"]
@@ -11,4 +11,5 @@ extents = Vector2( 960, 24 )
texture = ExtResource( 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+visible = false
shape = SubResource( 1 )
diff --git a/Game/source/scenes/OVERLAY/elements/username_text.tscn b/Game/source/scenes/OVERLAY/elements/username_text.tscn
index e253804..ff95f30 100644
--- a/Game/source/scenes/OVERLAY/elements/username_text.tscn
+++ b/Game/source/scenes/OVERLAY/elements/username_text.tscn
@@ -1,8 +1,14 @@
-[gd_scene load_steps=3 format=2]
+[gd_scene load_steps=4 format=2]
-[ext_resource path="res://source/fonts/roboto/roboto.tres" type="DynamicFont" id=1]
+[ext_resource path="res://source/fonts/oxygen/Oxygen-Bold.ttf" type="DynamicFontData" id=1]
[ext_resource path="res://source/assets/scripts/ui_element_handlers/username_text.gd" type="Script" id=2]
+[sub_resource type="DynamicFont" id=1]
+size = 36
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 1 )
+
[node name="username_text" type="Node2D" groups=[
"Net",
]]
@@ -14,7 +20,7 @@ margin_left = -197.0
margin_top = -125.0
margin_right = 197.0
margin_bottom = -49.0
-custom_fonts/font = ExtResource( 1 )
+custom_fonts/font = SubResource( 1 )
text = "null"
align = 1
valign = 1
diff --git a/Game/source/sprites/floor.svg b/Game/source/sprites/floor.svg
deleted file mode 100644
index 4d53002..0000000
--- a/Game/source/sprites/floor.svg
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-