Chelimbalo/weapons/molikman/molik/molotov_animation.gd
2025-12-17 00:03:57 +05:00

35 lines
1.5 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:
$"../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)