diff --git a/scripts/multiplayer/session.gd b/scripts/multiplayer/session.gd index bdd99a6..8d0b539 100644 --- a/scripts/multiplayer/session.gd +++ b/scripts/multiplayer/session.gd @@ -271,15 +271,15 @@ func stop_interact() -> void: var id = multiplayer.get_remote_sender_id() player_stopped_interacting.emit(id) -func is_on_site(id: int) -> bool: +func is_on_site() -> bool: for plant in plants: - if plant.is_player_on_site(id): + if plant.is_player_on_site(multiplayer.get_unique_id()): return true return false -func get_site(id: int) -> PlantSite: +func get_site() -> PlantSite: for plant in plants: - if plant.is_player_on_site(id): + if plant.is_player_on_site(multiplayer.get_unique_id()): return plant return null diff --git a/scripts/weapon_system/bomb/bomb_idle_state.gd b/scripts/weapon_system/bomb/bomb_idle_state.gd index 2761471..0d2c89c 100644 --- a/scripts/weapon_system/bomb/bomb_idle_state.gd +++ b/scripts/weapon_system/bomb/bomb_idle_state.gd @@ -7,6 +7,6 @@ func enter() -> void: func exit() -> void: pass -func use_begin() -> void: - if Session.is_on_site(machine.player.player_id): +func state_input(event: InputEvent) -> void: + if event.is_action("plr_bomb") and Session.is_on_site(): transition.emit("Plant") diff --git a/scripts/weapon_system/bomb/bomb_main_state.gd b/scripts/weapon_system/bomb/bomb_main_state.gd index 322c7b9..46c1d84 100644 --- a/scripts/weapon_system/bomb/bomb_main_state.gd +++ b/scripts/weapon_system/bomb/bomb_main_state.gd @@ -17,13 +17,14 @@ func on_animation_finished(animation: StringName): return if animation == machine.animation_prefix + "plant": - Session.spawn({"scene": active_bomb, "position": machine.player_camera.get_parent().global_position,"plant": Session.get_site(machine.player.player_id).name}) + Session.spawn({"scene": active_bomb, "position": machine.player_camera.get_parent().global_position,"plant": Session.get_site().name}) machine.ammo -= 1 return_to_previous.emit() -func use_end() -> void: +func state_input(event: InputEvent) -> void: if is_multiplayer_authority() == false: return - transition.emit("Idle") - machine.player.get_node("PlantAudio").multiplayer_stop() + if event.is_action_released("plr_bomb"): + transition.emit("Idle") + machine.player.get_node("PlantAudio").multiplayer_stop() diff --git a/scripts/weapon_system/weapon_system.gd b/scripts/weapon_system/weapon_system.gd index f9037e7..01bf555 100644 --- a/scripts/weapon_system/weapon_system.gd +++ b/scripts/weapon_system/weapon_system.gd @@ -31,9 +31,6 @@ func _ready() -> void: player_input.drop.connect(drop_current) player_input.fire_begin.connect(use_begin) player_input.fire_end.connect(use_end) - player_input.switch_weapon.connect(switch) - player_input.alternate_state.connect(alternate_state) - player_input.switch_firemode.connect(switch_mode) func get_speed_modifier() -> float: if current_state == null: @@ -71,9 +68,8 @@ func add(state: WeaponSubStateMachine, slot: StringName,ignore_parent: bool = fa ammo_updated.emit(current_state.ammo,current_state.remaining_ammo) state.enter.call_deferred() -@rpc("authority","call_remote","reliable") func switch(to: StringName, exit: bool = true): - if slots.has(to) == false or slots[to] == null or slots[to] == current_state or (multiplayer.get_remote_sender_id() != 1 and is_multiplayer_authority() == false): + if slots.has(to) == false or slots[to] == null or slots[to] == current_state or is_multiplayer_authority() == false: return if current_state != null and exit: current_state.exit() @@ -86,8 +82,6 @@ func switch(to: StringName, exit: bool = true): ammo_updated.emit(current_state.ammo,current_state.remaining_ammo) switched_to.emit(current_state) - if is_multiplayer_authority(): - switch.rpc(to,exit) func return_to_previous(exit: bool = true): if last_slot != "": @@ -179,9 +173,3 @@ func use_begin() -> void: func use_end() -> void: current_state.use_end.rpc() - -func alternate_state() -> void: - current_state.alternate_state() - -func switch_mode() -> void: - current_state.switch_mode()