Files
NeonCollapse/game/entities/turret/turret_projectile.gd
T
2026-07-03 19:13:22 +03:00

48 lines
864 B
GDScript

class_name TurretProjectile
extends Area2D
const SPEED = 300
const DAMAGE = 30.0
const ANIMATION_WOBBLE = "wobble"
@export var direction := Vector2.ZERO
var is_on_screen := false
@onready var sprite : AnimatedSprite2D = $AnimatedSprite2D
@onready var fly_particles : GPUParticles2D = $FlyParticles
func _ready() -> void:
sprite.play(ANIMATION_WOBBLE)
func _physics_process(delta: float) -> void:
position += direction * SPEED * delta
func _on_body_entered(body: Node2D) -> void:
if body is Player:
SoundManager.play_sfx_stream(SoundManager.sfx_stream_turret_hit, global_position)
HitstopManager.short_hitstop()
body.deal_damage(DAMAGE)
queue_free()
func _on_screen_entered() -> void:
is_on_screen = true
func _on_screen_exited() -> void:
if is_on_screen:
queue_free()
func _on_destroy_particles_finished() -> void:
queue_free()