diff --git a/levels/prototype_scene.tscn b/levels/prototype_scene.tscn index bdf218b..2a8deb4 100644 --- a/levels/prototype_scene.tscn +++ b/levels/prototype_scene.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=21 format=3 uid="uid://cqrh2cc7m2i7f"] +[gd_scene load_steps=23 format=3 uid="uid://cqrh2cc7m2i7f"] [ext_resource type="Environment" uid="uid://d0cfgtx2yxw13" path="res://environments/prototype_environment.tres" id="1_i6jab"] [ext_resource type="Material" uid="uid://bx3f5vx71ynh5" path="res://materials/Graymat.tres" id="4_y6i55"] @@ -16,6 +16,8 @@ [ext_resource type="Material" uid="uid://c6xa4phihtya2" path="res://materials/Redmat.tres" id="9_ysk2e"] [ext_resource type="Script" uid="uid://ypgm3aplt78m" path="res://scripts/multiplayer/spawn_system/team_spawner.gd" id="10_02ic3"] [ext_resource type="Script" uid="uid://3i00rp8urth7" path="res://scripts/object_container.gd" id="11_02ic3"] +[ext_resource type="Script" uid="uid://bala54fa32e35" path="res://scripts/gui/hud/player_round_display.gd" id="17_wsuwo"] +[ext_resource type="Script" uid="uid://bos7nftlx8tv3" path="res://scripts/gui/hud/player_round_time.gd" id="18_0hcup"] [sub_resource type="BoxShape3D" id="BoxShape3D_ysk2e"] size = Vector3(15.324341, 0.96273804, 21.381592) @@ -312,3 +314,28 @@ shape = SubResource("BoxShape3D_5uqia") [node name="DefaultCamera" type="Camera3D" parent="."] transform = Transform3D(0.6629243, -0.44385082, 0.60293275, 0.022305315, 0.81667197, 0.57667094, -0.7483541, -0.36884052, 0.5512919, 17.194904, 16.47376, -9.509804) + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="RoundData" type="HBoxContainer" parent="CanvasLayer"] +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -20.0 +offset_right = 20.0 +offset_bottom = 40.0 +grow_horizontal = 2 +mouse_filter = 2 + +[node name="RoundDisplayOur" type="Label" parent="CanvasLayer/RoundData"] +layout_mode = 2 +script = ExtResource("17_wsuwo") +our_side = true + +[node name="RoundTime" type="Label" parent="CanvasLayer/RoundData"] +layout_mode = 2 +script = ExtResource("18_0hcup") + +[node name="RoundDisplayTheir" type="Label" parent="CanvasLayer/RoundData"] +layout_mode = 2 +script = ExtResource("17_wsuwo") diff --git a/scenes/gui/client_settings.tscn b/scenes/gui/client_settings.tscn index e3974a6..96e7187 100644 --- a/scenes/gui/client_settings.tscn +++ b/scenes/gui/client_settings.tscn @@ -3,6 +3,7 @@ [ext_resource type="Script" uid="uid://ddi1alk8oyi1b" path="res://scripts/gui/client_settings_menu.gd" id="1_xqyus"] [node name="ClientSettingsMenu" type="CanvasLayer"] +layer = 3 [node name="CenterContainer" type="CenterContainer" parent="."] anchors_preset = 15 diff --git a/scenes/molikman.tscn b/scenes/molikman.tscn index f05943c..22b585c 100644 --- a/scenes/molikman.tscn +++ b/scenes/molikman.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=84 format=4 uid="uid://dpsr6ug3pkb40"] +[gd_scene load_steps=82 format=4 uid="uid://dpsr6ug3pkb40"] [ext_resource type="Script" uid="uid://3dphlay25fih" path="res://scripts/player/player.gd" id="1_g2els"] [ext_resource type="Script" uid="uid://dalwlndejfdhm" path="res://scripts/player/crosshair.gd" id="3_dqkch"] @@ -21,8 +21,6 @@ [ext_resource type="Script" uid="uid://cwasvwhm5yg0o" path="res://scripts/player/states/walk.gd" id="11_qfm1y"] [ext_resource type="Script" uid="uid://cq4i0afwesdm3" path="res://scripts/player/states/falling.gd" id="12_fulsm"] [ext_resource type="Script" uid="uid://gan0amqbhi4i" path="res://scripts/gui/hud/player_ammo_display.gd" id="12_iortg"] -[ext_resource type="Script" uid="uid://bala54fa32e35" path="res://scripts/gui/hud/player_round_display.gd" id="13_x73hv"] -[ext_resource type="Script" uid="uid://bos7nftlx8tv3" path="res://scripts/gui/hud/player_round_time.gd" id="13_xar7t"] [ext_resource type="AudioStream" uid="uid://bd4iofirvmiu6" path="res://audio/step_wood.ogg" id="16_fbysy"] [ext_resource type="Script" uid="uid://da0xv360va3b3" path="res://scripts/audio_system/multiplayer_audio_3d.gd" id="17_0cqlf"] [ext_resource type="Script" uid="uid://xsgfbuyje35p" path="res://scripts/player/player_pickup.gd" id="17_fjvrb"] @@ -8595,9 +8593,10 @@ libraries = { &"": SubResource("AnimationLibrary_kyf2b") } -[node name="VisibilityToggler" type="Node" parent="Camera3D/molikman_hands" node_paths=PackedStringArray("reference_player")] +[node name="PlayerBasedVisibility" type="Node" parent="Camera3D/molikman_hands" node_paths=PackedStringArray("reference_player")] script = ExtResource("4_smehm") reference_player = NodePath("../../..") +metadata/_custom_type_script = "uid://dd5mp72dq43v6" [node name="DeadSpectator" type="Camera3D" parent="Camera3D"] fov = 90.0 @@ -8622,6 +8621,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 [node name="PanelContainer" type="PanelContainer" parent="HUD"] visible = false @@ -8657,6 +8657,7 @@ offset_right = 20.0 offset_bottom = 20.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 script = ExtResource("3_dqkch") crosses_width = 2.0 crosses_length = 6.0 @@ -8675,6 +8676,7 @@ anchor_bottom = 1.0 offset_top = -0.2800293 offset_right = -0.32000732 grow_vertical = 0 +mouse_filter = 2 step = 1.0 value = 100.0 fill_mode = 3 @@ -8694,29 +8696,6 @@ grow_vertical = 0 label_settings = SubResource("LabelSettings_x73hv") script = ExtResource("12_iortg") -[node name="RoundData" type="HBoxContainer" parent="HUD"] -layout_mode = 1 -anchors_preset = 5 -anchor_left = 0.5 -anchor_right = 0.5 -offset_left = -20.0 -offset_right = 20.0 -offset_bottom = 40.0 -grow_horizontal = 2 - -[node name="RoundDisplayOur" type="Label" parent="HUD/RoundData"] -layout_mode = 2 -script = ExtResource("13_x73hv") -our_side = true - -[node name="RoundTime" type="Label" parent="HUD/RoundData"] -layout_mode = 2 -script = ExtResource("13_xar7t") - -[node name="RoundDisplayTheir" type="Label" parent="HUD/RoundData"] -layout_mode = 2 -script = ExtResource("13_x73hv") - [node name="PlayerPropertiesSync" type="MultiplayerSynchronizer" parent="."] replication_config = SubResource("SceneReplicationConfig_qhqgy") @@ -8878,11 +8857,14 @@ script = ExtResource("37_5amik") replication_config = SubResource("SceneReplicationConfig_5amik") script = ExtResource("37_b2eak") +[connection signal="died" from="." to="molikman_ingame/PlayerBasedVisibility" method="reverse_if_own"] [connection signal="died" from="." to="Camera3D" method="disable"] [connection signal="died" from="." to="Camera3D/DeadSpectator" method="set_active"] [connection signal="died" from="." to="BodyStateMachine/Death" method="on_death"] [connection signal="died" from="." to="PlayerMovement" method="disable"] [connection signal="died" from="." to="WeaponSystem" method="disable"] +[connection signal="died" from="." to="Camera3D/molikman_hands/PlayerBasedVisibility" method="reverse_if_own"] [connection signal="health_changed" from="." to="HUD/Healthbar" method="on_hp_changed"] +[connection signal="ammo_updated" from="WeaponSystem" to="HUD/AmmoDisplay" method="on_ammo_updated"] [connection signal="interact_begin" from="PlayerInput" to="Interaction" method="on_player_start_interacting"] [connection signal="interact_end" from="PlayerInput" to="Interaction" method="on_player_end_interacting"] diff --git a/scripts/gui/hud/player_round_display.gd b/scripts/gui/hud/player_round_display.gd index 7c076da..ecc7afd 100644 --- a/scripts/gui/hud/player_round_display.gd +++ b/scripts/gui/hud/player_round_display.gd @@ -4,6 +4,9 @@ extends Label # Called when the node enters the scene tree for the first time. func _ready() -> void: + Session.round_started.connect(update) + +func update(): if our_side: match Lobby.get_team(): Session.TEAMS.DEFENCE: diff --git a/scripts/multiplayer/own_visibility_toggle.gd b/scripts/multiplayer/own_visibility_toggle.gd index db47a4e..fa548e3 100644 --- a/scripts/multiplayer/own_visibility_toggle.gd +++ b/scripts/multiplayer/own_visibility_toggle.gd @@ -10,3 +10,7 @@ func _ready() -> void: func reverse() -> void: get_parent().visible = not get_parent().visible + +func reverse_if_own(): + if multiplayer.get_unique_id() == reference_player.player_id: + reverse() diff --git a/scripts/multiplayer/player_input.gd b/scripts/multiplayer/player_input.gd index b234210..4228545 100644 --- a/scripts/multiplayer/player_input.gd +++ b/scripts/multiplayer/player_input.gd @@ -32,7 +32,7 @@ func _process(_delta: float) -> void: if not is_multiplayer_authority(): return direction = Input.get_vector("plr_strafe_r","plr_strafe_l", "plr_back","plr_forward") -func _input(event: InputEvent) -> void: +func _unhandled_input(event: InputEvent) -> void: if not is_multiplayer_authority(): return if event.is_action_pressed("plr_ult"): switch_on_server.rpc_id(1,"ultimate") diff --git a/scripts/multiplayer/session.gd b/scripts/multiplayer/session.gd index 7810ba2..ac95fbd 100644 --- a/scripts/multiplayer/session.gd +++ b/scripts/multiplayer/session.gd @@ -288,4 +288,4 @@ func kill_site(site: StringName) -> void: for body in plant_deadzones[site].get_overlapping_bodies(): if body is Player: - body.kill_request.rpc() + body.die() diff --git a/scripts/multiplayer/spawn_system/team_spawner.gd b/scripts/multiplayer/spawn_system/team_spawner.gd index a7f73ff..80bb81e 100644 --- a/scripts/multiplayer/spawn_system/team_spawner.gd +++ b/scripts/multiplayer/spawn_system/team_spawner.gd @@ -54,6 +54,6 @@ func spawn_spectator(id: int) -> void: var distance = randf_range(0,spawn_radius) var angle = randf_range(0,TAU) var new_position = global_position + Vector3.RIGHT.rotated(Vector3.UP,angle) * distance - inst.team = team + #inst.team = team get_parent().add_child(inst) inst.global_position = new_position diff --git a/scripts/player/player.gd b/scripts/player/player.gd index 02b87fa..5266fb9 100644 --- a/scripts/player/player.gd +++ b/scripts/player/player.gd @@ -41,8 +41,15 @@ func die() -> void: return Session.add_dead(team) died.emit() + die_on_peers.rpc() passived = true +@rpc("authority","call_remote","reliable") +func die_on_peers(): + if multiplayer.get_remote_sender_id() != 1: + return + died.emit() + func passive() -> void: passived = true