| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- extends Node2D
- @export_enum("Spin", "Drop", "Poof") var gib_type := 0
- var visuals: Node = null
- var velocity := Vector2(0, 0)
- var direction := 1
- var entity_rotation := 0.0
- func _ready() -> void:
- if visuals == null:
- queue_free()
- return
- visuals.physics_interpolation_mode = Node.PHYSICS_INTERPOLATION_MODE_OFF
- add_child(visuals)
- visuals.process_mode = Node.PROCESS_MODE_DISABLED
- visuals.position = Vector2.ZERO
- match gib_type:
- 0:
- velocity = Vector2(100 * direction, -200)
- func _physics_process(delta: float) -> void:
- match gib_type:
- 0:
- spin_move(delta)
- 1:
- velocity.y += (15 / delta) * delta
- velocity.y = clamp(velocity.y, -INF, Global.entity_max_fall_speed)
- scale.y = -1
-
- global_position += velocity * delta
- func spin_move(delta: float) -> void:
- velocity.y += (15 / delta) * delta
- velocity.y = clamp(velocity.y, -INF, Global.entity_max_fall_speed)
- entity_rotation = (180 * direction)
- visuals.global_rotation_degrees = snapped(entity_rotation, 45)
- velocity.x = lerpf(velocity.x, 0, delta / 2)
-
|