From b22177e92657796d941d636bee6b30e361557730 Mon Sep 17 00:00:00 2001 From: MotH Date: Tue, 24 Jan 2023 21:28:06 +0100 Subject: [PATCH] Fix bomb collisions through walls --- networking/multiplayer_bomber/bomb.gd | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/networking/multiplayer_bomber/bomb.gd b/networking/multiplayer_bomber/bomb.gd index 31a29245..b6a7180b 100644 --- a/networking/multiplayer_bomber/bomb.gd +++ b/networking/multiplayer_bomber/bomb.gd @@ -1,7 +1,7 @@ extends Area2D -var in_area = [] -var from_player +var in_area: Array = [] +var from_player: int # Called from the animation. func explode(): @@ -10,8 +10,13 @@ func explode(): return for p in in_area: if p.has_method("exploded"): - # Exploded can only be called by the authority, but will also be called locally. - p.exploded.rpc(from_player) + # Checks if there is wall in between bomb and the object + var world_state: PhysicsDirectSpaceState2D = get_world_2d().direct_space_state + var query := PhysicsRayQueryParameters2D.create(position, p.position) + var result: Dictionary = world_state.intersect_ray(query) + if not result.collider is TileMap: + # Exploded can only be called by the authority, but will also be called locally. + p.exploded.rpc(from_player) func done():