From 016a30430383b1681da2f8f6faf9f4359ea8f721 Mon Sep 17 00:00:00 2001 From: Haze Weathers Date: Mon, 29 May 2023 01:28:25 -0400 Subject: [PATCH] eel fixes --- objects/enemy/eel.gd | 8 +++++--- objects/enemy/eel.tscn | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/objects/enemy/eel.gd b/objects/enemy/eel.gd index 296c505..e0bae7d 100644 --- a/objects/enemy/eel.gd +++ b/objects/enemy/eel.gd @@ -30,15 +30,17 @@ func _ready() -> void: func _physics_process(delta: float) -> void: # move - global_position.x -= speed * delta * sign(scale.x) + global_position.x += speed * delta * sign(scale.x) # make segments wibble _wave_segments() # check for wrapping - var sector_rect = Rect2(sector * Game.resolution, Game.resolution) + var sector_rect = Rect2(sector * Game.resolution - Vector2(8.0, 0.0), Game.resolution + Vector2(16.0, 0.0)) var total_length = BASE_LENGTH + (SEGMENT_LENGTH * float(segments)) var eel_rect = Rect2(global_position + Vector2(-2.0, 4.0), Vector2(total_length, 0.0)) + if sign(scale.x) == 1.0: + eel_rect.position.x -= total_length if not sector_rect.intersects(eel_rect): - global_position.x += (Game.resolution.x + total_length) * sign(scale.x) + global_position.x -= (sector_rect.size.x + total_length) * sign(scale.x) func _wave_segments() -> void: for segment in hitbox.get_children(): diff --git a/objects/enemy/eel.tscn b/objects/enemy/eel.tscn index 79cf82a..4cd25e8 100644 --- a/objects/enemy/eel.tscn +++ b/objects/enemy/eel.tscn @@ -19,6 +19,7 @@ wave_amplitude = 6.0 [node name="Hitbox" type="Area2D" parent="." groups=["enemy_hitbox"]] position = Vector2( 0, 4 ) +scale = Vector2( -1, 1 ) [node name="SegmentStart" type="Position2D" parent="Hitbox"] unique_name_in_owner = true