extends Node @export var die_timer: Timer @export var decal: Decal @export var gpu_particles: GPUParticles3D @export var collision_shape: CollisionShape3D @export var expansion_mult: float = 2.0 func _ready() -> void: $"../InitialParticles".restart() var tween: Tween = create_tween().set_parallel() var time:float = die_timer.wait_time-5.0 tween.tween_property(decal,"size:x",decal.size.x * expansion_mult,time) tween.tween_property(decal,"size:z",decal.size.z * expansion_mult,time) if multiplayer.is_server(): tween.tween_property(collision_shape.shape,"radius",decal.size.x*expansion_mult*0.5,time) tween.tween_property(gpu_particles.process_material,"emission_box_extents:x",gpu_particles.process_material.emission_box_extents.x*expansion_mult,time) tween.tween_property(gpu_particles.process_material,"emission_box_extents:y",gpu_particles.process_material.emission_box_extents.y*expansion_mult,time) func die() -> void: var tween: Tween = create_tween().set_parallel() var time:float = 1.0 tween.tween_property(decal,"size:x",1.0,time) tween.tween_property(decal,"size:z",1.0,time) tween.tween_property(decal,"modulate",Color.TRANSPARENT,time/2) tween.tween_property(gpu_particles.process_material,"emission_box_extents:x",1.0,time) tween.tween_property(gpu_particles.process_material,"emission_box_extents:y",1.0,time) if multiplayer.is_server(): tween.tween_property(collision_shape.shape,"radius",1.0,time) tween.chain().tween_callback(get_parent().queue_free)