open-fpsz/weapons/space_gun/projectile_explosion.gd

23 lines
641 B
GDScript3
Raw Permalink Normal View History

2024-04-07 14:25:59 -04:00
extends Node3D
@onready var fire = $Fire
@onready var area_damage : AreaDamageComponent = $AreaDamageComponent
2024-04-07 14:25:59 -04:00
var explosion_effect_pending : bool = false
const impulse_force = 1000;
func _ready():
2024-04-07 14:25:59 -04:00
fire.emitting = true
2024-04-07 14:25:59 -04:00
func _physics_process(_delta):
var bodies = area_damage.get_overlapping_bodies() if area_damage.monitoring else []
for body in bodies:
if body is RigidBody3D:
var direction = (body.global_position - global_position).normalized()
body.apply_central_impulse(direction * impulse_force)
area_damage.monitorable = false
area_damage.monitoring = false
await get_tree().create_timer(1.0).timeout
queue_free()