mirror of
https://gitlab.com/open-fpsz/open-fpsz.git
synced 2026-03-12 08:51:08 +00:00
16 lines
505 B
GDScript
16 lines
505 B
GDScript
class_name ExplosiveDamageComponent extends Area3D
|
|
|
|
@export var damage : int = 100
|
|
@export var impulse_force : int = 1000
|
|
|
|
func _physics_process(_delta):
|
|
for body in get_overlapping_bodies():
|
|
if body is RigidBody3D:
|
|
var direction = (body.global_position - global_position).normalized()
|
|
body.apply_central_impulse(direction * impulse_force)
|
|
|
|
for area in get_overlapping_areas():
|
|
if area is HealthComponent and is_multiplayer_authority():
|
|
area.damage.rpc(damage)
|
|
|
|
set_physics_process(false)
|