X-Git-Url: http://git.purplebirdman.com/frog-ninja.git/blobdiff_plain/992458ba0caf1d218a85c4bf10e48fd304c85626..df26d4a32e30692efba3fb3b7270501dc005bbff:/asset/projectile/projectile.gd?ds=sidebyside diff --git a/asset/projectile/projectile.gd b/asset/projectile/projectile.gd index 376ebb0..7727320 100644 --- a/asset/projectile/projectile.gd +++ b/asset/projectile/projectile.gd @@ -16,13 +16,20 @@ var _origin: Vector3 func _ready() -> void: - if not last_movement_direction: - last_movement_direction = Vector3.BACK.rotated(Vector3.UP, rotation.y) + if last_movement_direction: + last_movement_direction = last_movement_direction.normalized() + else: + last_movement_direction = Vector3.BACK.rotated(Vector3.UP, global_rotation.y) + hurtbox.weapon = weapon hurtbox.is_attacking = true hurtbox.set_collision_layer(collision_layer) hurtbox.set_collision_mask(collision_mask) _origin = global_position + + # TODO: if projectile gets reflected, this must be recalculated! + var target_angle := Vector3.BACK.signed_angle_to(last_movement_direction, Vector3.UP) + global_rotate(Vector3.UP, target_angle) func _process(delta: float) -> void: @@ -31,6 +38,6 @@ func _process(delta: float) -> void: else: global_position = lerp( global_position, - global_position + speed * last_movement_direction.normalized(), + global_position + speed * last_movement_direction, delta )