From 8a29cc5be3686a0e9cd6049b0c364bcd9200e2b1 Mon Sep 17 00:00:00 2001 From: Dustin Date: Thu, 17 Apr 2025 20:50:40 -0700 Subject: [PATCH] More multiplayer stuff. --- lib/singleton_autoloads/NetworkManager.gd | 10 ++-- src/actors/players/playerE/PlayerE.gd | 62 ++++++++++++++--------- 2 files changed, 44 insertions(+), 28 deletions(-) diff --git a/lib/singleton_autoloads/NetworkManager.gd b/lib/singleton_autoloads/NetworkManager.gd index 3735737..8ce095a 100644 --- a/lib/singleton_autoloads/NetworkManager.gd +++ b/lib/singleton_autoloads/NetworkManager.gd @@ -85,9 +85,13 @@ func unregister_player(id): remote func pre_start_game(spawn_points): # Change scene. - var world = load("res://src/levels/TestBox.tscn").instance() - get_tree().get_root().get_node("/root/Main/ViewportContainer/Viewport").add_child(world) + var world :Node = load("res://src/levels/TestBox.tscn").instance() + var ui :Node = load("res://src/ui/HUD.tscn").instance() + world.set_name("World") + get_tree().get_root().get_node("/root/Main/ViewportContainer/Viewport").add_child(world) + get_tree().get_root().get_node("/root/Main/ViewportContainer/Viewport").add_child(ui) + get_tree().get_root().get_node("/root/Main/ViewportContainer/Viewport/Lobby").hide() var player_scene = load("res://src/actors/players/playerE/PlayerE.tscn") @@ -109,7 +113,7 @@ remote func pre_start_game(spawn_points): # # Otherwise set name from peer. # player.set_player_name(players[p_id]) - world.get_node("/root/Main/ViewportContainer/Viewport/World").add_child(player) + get_tree().get_root().get_node("/root/Main/ViewportContainer/Viewport").add_child(player) #world.get_node("Players").add_child(player) # # Set up score. diff --git a/src/actors/players/playerE/PlayerE.gd b/src/actors/players/playerE/PlayerE.gd index 32e045c..92655f0 100644 --- a/src/actors/players/playerE/PlayerE.gd +++ b/src/actors/players/playerE/PlayerE.gd @@ -28,6 +28,10 @@ const state_damage_amount :Dictionary = { var player_info_index :int var player_data :PlayerData +## Multiplayer Variables +puppet var puppet_pos = Vector2() + + # Called when the node enters the scene tree for the first time. func _ready(): # PlayerInfo.player_health = health_component.health @@ -50,39 +54,47 @@ func _ready(): movement_component.state_stamina_cost = state_stamina_cost + puppet_pos = position #var stamina_recovery :float = 0.0 # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): - #PlayerInfo.player_position = global_position.round() - player_data.player_position = global_position.round() -# stamina_recovery += delta -# if stamina_recovery > 1.0: -# stamina_component.recover(1) -# stamina_recovery = 0.0 -# #print("recover ", stamina_component.stamina) - - #PlayerInfo.player_stamina = stamina_component.stamina - player_data.player_stamina = stamina_component.stamina + if is_network_master(): + #PlayerInfo.player_position = global_position.round() + player_data.player_position = global_position.round() + # stamina_recovery += delta + # if stamina_recovery > 1.0: + # stamina_component.recover(1) + # stamina_recovery = 0.0 + # #print("recover ", stamina_component.stamina) + + #PlayerInfo.player_stamina = stamina_component.stamina + player_data.player_stamina = stamina_component.stamina - ##TODO: well I'm not sure I like this but making a whole state receiver is silly - if state_damage_amount.has(movement_state_machine.current_state.name): - $Hitbox_Component.damage_amount = state_damage_amount[movement_state_machine.current_state.name] + ##TODO: well I'm not sure I like this but making a whole state receiver is silly + if state_damage_amount.has(movement_state_machine.current_state.name): + $Hitbox_Component.damage_amount = state_damage_amount[movement_state_machine.current_state.name] + else: + $Hitbox_Component.damage_amount = 10 + + match movement_state_machine.current_state.name: + "idle": + if Input.is_action_just_released("switch_primary_item_" + str(player_number)): + var _selected_item = player_inventory.switch_primary() + if _selected_item: + print("Switched Primary item to: ", _selected_item.name) + elif Input.is_action_just_released("switch_secondary_item_" + str(player_number)): + var _selected_item = player_inventory.switch_secondary() + if _selected_item: + print("Switched Secondary item to: ", _selected_item.name) + + rset("puppet_pos", position) else: - $Hitbox_Component.damage_amount = 10 - - match movement_state_machine.current_state.name: - "idle": - if Input.is_action_just_released("switch_primary_item_" + str(player_number)): - var _selected_item = player_inventory.switch_primary() - if _selected_item: - print("Switched Primary item to: ", _selected_item.name) - elif Input.is_action_just_released("switch_secondary_item_" + str(player_number)): - var _selected_item = player_inventory.switch_secondary() - if _selected_item: - print("Switched Secondary item to: ", _selected_item.name) + position = puppet_pos + + func hit_Receiver(damage): $Hurtbox_Component.set_hurtbox(false)