From 9a157b22843859b662ba0694898280fd6894ce9c Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Sat, 13 Nov 2021 15:02:48 +0200 Subject: [PATCH 1/3] Added health bar --- .../player_handlers/player_body_handler.gd | 8 ++ .../network_processors/network_setup.gd | 1 + .../assets/scripts/ui_element_handlers/HUD.gd | 18 ++++ source/assets/sprites/GUI/bar-background.png | Bin 0 -> 989 bytes source/assets/sprites/GUI/bar-fill.png | Bin 0 -> 984 bytes source/entities/player/player_node.tscn | 88 +++++++++--------- source/scenes/GUI/sinplayer_setup.tscn | 2 +- source/scenes/OVERLAY/elements/HUD.tscn | 26 ++++++ 8 files changed, 98 insertions(+), 45 deletions(-) create mode 100644 source/assets/scripts/ui_element_handlers/HUD.gd create mode 100644 source/assets/sprites/GUI/bar-background.png create mode 100644 source/assets/sprites/GUI/bar-fill.png create mode 100644 source/scenes/OVERLAY/elements/HUD.tscn 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_setup.gd b/source/assets/scripts/server_handlers/network_processors/network_setup.gd index 52b6bb6..3f970ce 100644 --- a/source/assets/scripts/server_handlers/network_processors/network_setup.gd +++ b/source/assets/scripts/server_handlers/network_processors/network_setup.gd @@ -70,6 +70,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() 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/sprites/GUI/bar-background.png b/source/assets/sprites/GUI/bar-background.png new file mode 100644 index 0000000000000000000000000000000000000000..6a11cb2c7d4db2437049c2453a57160c5895531e GIT binary patch literal 989 zcmV<310wv1P)A2cNdQ!&VC#0Q~3YLc-bMTromWSYW1WokM;Xi*}WW)w8&h=1r> zmQFG%30XlX;~$1G1I1p%At5d6LBt|LO9!-Bab%91d+xd8C@OQ$-uvy|v-Upg`_{+W z_w2LQ6@EC)fO>-7%*uerfsw#4pifWcd7FFAz<>;>Qr;IW%6 zlKzTM%oBi_1!?{OF#1;S;_Z7i z1E+zfCH)@tGDiSrc0ceV@JO$Q;+?x)22KIvC0z*@hzsCL;Q6H0FJAhG6YcG^|8$D0 zSFhc!1Ag9JWT0=~`=}@%!?=nH29^ydbf=w?Ud$7KnNJprSB92eKHwl)zz|i!Cd;6lq4-XQPTBT-^c)Fb~x!r-_)8~&iooYRrpbC42&K% zl07?`DCyTP?)pJV)i(rSW&?r0qk;%7zTdEx?Yjy-K@=MwPWn5$u9ml#ERJIj&I<-f zx_CVUm|38P{ZXq6fBZ@1lxLkJEp4EWw0y?{gM%mgoKYpIH59-rz?SIc1FdZ=T>4hp zxNs6rc3lHim3c=xGbMcy3g8{!y(l}`&zor6ly#D@w1Hl-Xg>31&y2%bF6o0%04sra zqZS)K`HT&lbCN>ZcyR_#{k&IM^jeVQbH*x3E4=_5kbxI~13~T%q8ES{fZqaK)_~6d zE=M2m0`LOxTY$?N@EO46==&|e@#yzZ0C`8jo3}QxcB4NEPJ?_390jkCv^qQqd>z>2 zUk0Ti-1!(jZfs!EQ+Y3g7D&p50;mCUUi_asf1avo)6>a_W2g@A`<9_YhQv_^Rl;9~ z0vHbDREq}I^=~et-wuz44**}O#7dIYF5(EDO)CFZUtY`+h00000 LNkvXXu0mjfkRi*= literal 0 HcmV?d00001 diff --git a/source/assets/sprites/GUI/bar-fill.png b/source/assets/sprites/GUI/bar-fill.png new file mode 100644 index 0000000000000000000000000000000000000000..fd65befd316f172f3d8fcae1238fb3ed2cd57fe0 GIT binary patch literal 984 zcmV;}11J26P)!?#RtFpe?yE>xp44O+I0if{sXzI_aRM;2u*@F?S|UzTc1p(AI{-*lFpB=0A?1{@I^f8 z;-BX@efRTu#qD{=7-;E!jcIekZ@k2oN%|@hz-nM$+&yrlo1WFLJCOxoVBWjynB96u z63H`?-irjV8Q30==zHT3y)S)I0Qe4};e|)2U%Mhn#3o5QBLQ>(TT2A6`yjo$JDt4( zFwn4m74_>^CXsBD)ZqdsK!LL$xB#*kD!AVTQ1Ak0!E*s*F;sBB3!vZy&VuIx$YQAA zeiuN&3!DYd1(3y1!Tm0Pf)_Xo-b4g2ek*v-A$ni*t>7$j^WZPD6}&~#j%X+FIp9sd z8I*@|PCmzZ2i7tB!ErZ()<}9g62PNCN$c>%o<2@52_4~Xd1s*I#H&neye~b15 zlx+%alk|Cs0KyA1^S1E36gef&(YEk~H(hQEubo*A$p@02j+|+OAt!*_a?FFLUY>y; z!XC|Ktyh9o0|B4`+$gIapP#x7`Ox#7h^Q%4UcO80000 Date: Sun, 14 Nov 2021 12:41:11 +0200 Subject: [PATCH 2/3] Added menu button --- .../network_processors/network.gd | 9 + .../network_processors/network_setup.gd | 20 ++- .../network_processors/singleplayer_setup.gd | 2 +- .../server_handlers/trinity_site_level.gd | 1 + .../scripts/shooting}/Control.gd | 0 .../shooting/Hyperbola/Hyperbolic_Bullet.gd | 2 - .../scripts/shooting/Line/Line_Bullet.gd | 2 - .../shooting/Parabola/Parabolic_Bullet.gd | 2 - .../scripts/ui_element_handlers/game_UI.gd | 4 +- .../scripts/ui_element_handlers/main_menu.gd | 4 +- .../ui_element_handlers/menu_button.gd | 8 + .../menu_button_overlay.gd | 27 +++ source/assets/sprites/GUI/menu_button.svg | 105 ++++++++++++ .../assets/sprites/GUI/menu_button_hover.svg | 161 ++++++++++++++++++ .../sprites/GUI/menu_button_pressed.svg | 161 ++++++++++++++++++ .../trinity_site/trinity_site_level.tscn | 144 ++++++++-------- source/scenes/GUI/main_menu.tscn | 6 +- source/scenes/GUI/network_setup.tscn | 12 +- ...yer_setup.tscn => singleplayer_setup.tscn} | 0 source/scenes/OVERLAY/elements/button.tscn | 2 + .../scenes/OVERLAY/elements/menu_button.tscn | 20 +++ .../OVERLAY/elements/menu_button_overlay.tscn | 120 +++++++++++++ 22 files changed, 723 insertions(+), 89 deletions(-) rename source/{levels/trinity_site => assets/scripts/shooting}/Control.gd (100%) create mode 100644 source/assets/scripts/ui_element_handlers/menu_button.gd create mode 100644 source/assets/scripts/ui_element_handlers/menu_button_overlay.gd create mode 100644 source/assets/sprites/GUI/menu_button.svg create mode 100644 source/assets/sprites/GUI/menu_button_hover.svg create mode 100644 source/assets/sprites/GUI/menu_button_pressed.svg rename source/scenes/GUI/{sinplayer_setup.tscn => singleplayer_setup.tscn} (100%) create mode 100644 source/scenes/OVERLAY/elements/menu_button.tscn create mode 100644 source/scenes/OVERLAY/elements/menu_button_overlay.tscn 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 3f970ce..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") @@ -90,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()) @@ -120,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/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..c3a189d --- /dev/null +++ b/source/assets/scripts/ui_element_handlers/menu_button_overlay.gd @@ -0,0 +1,27 @@ +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() + + +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/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/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 100% rename from source/scenes/GUI/sinplayer_setup.tscn rename to source/scenes/GUI/singleplayer_setup.tscn 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"] From 9d448ffeecae5dcd85db383fcc0cba5354068ec5 Mon Sep 17 00:00:00 2001 From: Kristofers Solo <67258855+Kristofers-Solo@users.noreply.github.com> Date: Sun, 14 Nov 2021 12:45:57 +0200 Subject: [PATCH 3/3] Update menu_button_overlay.gd --- .../scripts/ui_element_handlers/menu_button_overlay.gd | 7 ------- 1 file changed, 7 deletions(-) diff --git a/source/assets/scripts/ui_element_handlers/menu_button_overlay.gd b/source/assets/scripts/ui_element_handlers/menu_button_overlay.gd index c3a189d..fc80f87 100644 --- a/source/assets/scripts/ui_element_handlers/menu_button_overlay.gd +++ b/source/assets/scripts/ui_element_handlers/menu_button_overlay.gd @@ -18,10 +18,3 @@ func _on_return_to_main_menu_pressed(): func _on_exit_game_pressed(): get_tree().quit() - - -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()