35 lines
1.6 KiB
GDScript
35 lines
1.6 KiB
GDScript
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:
|
|
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,"size:x",decal.size.x*expansion_mult,time)
|
|
tween.tween_property(collision_shape.shape,"size:z",decal.size.z*expansion_mult,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,"size:x",1.0,time)
|
|
tween.tween_property(collision_shape.shape,"size:z",1.0,time)
|
|
tween.chain().tween_callback(get_parent().queue_free)
|