diff --git a/objects/enemy/cop.gd b/objects/enemy/cop.gd index 88fcb4e..7c7786b 100644 --- a/objects/enemy/cop.gd +++ b/objects/enemy/cop.gd @@ -44,29 +44,30 @@ func _physics_process(delta): # check for player in raycast var collider = shoot_cast.get_collider() if collider != null && (collider.is_in_group("player") or collider.is_in_group("msx")): - # kill player and enter shooting state temporarily - collider.get_parent().die() - # play sound - Audio.play_sound(Audio.a_die_robot, Audio.ac_boss) - # muzzle flash - muzzle_flash.emitting = true - shooting = true - get_tree().create_timer(0.05, false).connect("timeout", self, "_stop_shoot") - sprite.play("shoot") - # check other raycast to find collision passing through player - graphics_cast.force_raycast_update() - var hit_position = graphics_cast.to_global(Vector2(256.0, 0.0)) - if graphics_cast.is_colliding(): - hit_position = graphics_cast.get_collision_point() - # set line point to point of collision - var hit_x = shoot_line.to_local(hit_position).x - shoot_line.points[1].x = hit_x -# shoot_line.visible = true -# get_tree().create_timer(0.05, false).connect("timeout", shoot_line, "set_visible", [false], CONNECT_DEFERRED) - # move and play sparks - sparks.global_position = hit_position - sparks.emitting = true - return + if Game.get_sector(global_position) == Game.get_sector(collider.global_position): + # kill player and enter shooting state temporarily + collider.get_parent().die() + # play sound + Audio.play_sound(Audio.a_die_robot, Audio.ac_boss) + # muzzle flash + muzzle_flash.emitting = true + shooting = true + get_tree().create_timer(0.05, false).connect("timeout", self, "_stop_shoot") + sprite.play("shoot") + # check other raycast to find collision passing through player + graphics_cast.force_raycast_update() + var hit_position = graphics_cast.to_global(Vector2(256.0, 0.0)) + if graphics_cast.is_colliding(): + hit_position = graphics_cast.get_collision_point() + # set line point to point of collision + var hit_x = shoot_line.to_local(hit_position).x + shoot_line.points[1].x = hit_x + # shoot_line.visible = true + # get_tree().create_timer(0.05, false).connect("timeout", shoot_line, "set_visible", [false], CONNECT_DEFERRED) + # move and play sparks + sparks.global_position = hit_position + sparks.emitting = true + return # if there aren't turns, walk around if turns == 0: