1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-29 23:41:54 +08:00
Files
Dog-Lynx-And-HCN/scripts/Statemachine/EffectController.gd
T

27 lines
681 B
GDScript
Raw Normal View History

2025-08-26 15:52:54 +08:00
extends Node2D
class_name EffectController
@export var oneShot: bool = true
@onready var particles: GPUParticles2D = $"%particles"
func _ready():
particles.emitting = false
particles.one_shot = oneShot
func shot():
var cloned = particles.duplicate() as GPUParticles2D
cloned.emitting = true
add_child(cloned)
if oneShot:
await cloned.finished
cloned.queue_free()
static func create(scene: PackedScene, spawnPosition: Vector2, parent: Node2D = null) -> EffectController:
var cloned = scene.instantiate() as EffectController
cloned.global_position = spawnPosition
if parent:
parent.add_child(cloned)
else:
WorldManager.rootNode.add_child(cloned)
return cloned