new effect system

This commit is contained in:
Rendo 2025-07-30 00:56:53 +05:00
commit 22b02c4590
11 changed files with 146 additions and 89 deletions

View file

@ -0,0 +1,48 @@
using Godot;
using Newlon.Components;
namespace Newlon.Systems.Effects;
public partial class EffectHandler : RefCounted
{
public Entity handler;
public Effect HandledEffect;
public Timer EffectTimer;
public Tween EffectTween;
public void Start()
{
EffectTimer.WaitTime = HandledEffect.Duration;
EffectTimer.Start();
HandledEffect.Enter(handler);
}
public void End()
{
HandledEffect.Exit(handler);
HandledEffect = null;
EffectTimer.Stop();
if (EffectTween != null)
{
LON.ForceFinishTween(EffectTween);
EffectTween.Kill();
}
}
public void Process()
{
HandledEffect.Process(handler);
}
public void Restart()
{
HandledEffect.Exit(handler);
EffectTimer.Stop();
if (EffectTween != null)
{
LON.ForceFinishTween(EffectTween);
EffectTween.Kill();
}
HandledEffect.Enter(handler);
EffectTimer.Start();
}
}