Effects handling rework
This commit is contained in:
parent
08d593175b
commit
63930450a3
21 changed files with 100 additions and 228 deletions
|
|
@ -5,7 +5,7 @@ namespace Newlon.Systems.Effects;
|
|||
public abstract partial class Effect : Resource
|
||||
{
|
||||
[Export] public float Duration;
|
||||
[Export] public Utility.EffectSlots Slot;
|
||||
[Export] public string Slot;
|
||||
public abstract void Enter(Node target);
|
||||
public abstract void Process(Node target);
|
||||
public abstract void Exit(Node target);
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
namespace Newlon.Systems.Effects;
|
||||
|
||||
public interface IEffectHandler
|
||||
{
|
||||
void GiveEffect(Effect what);
|
||||
void EndEffect(Effect what);
|
||||
void ProcessEffects();
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://eeqk3fvjwg31
|
||||
|
|
@ -11,21 +11,20 @@ public partial class SlownessEffect : Effect
|
|||
|
||||
public override void Enter(Node target)
|
||||
{
|
||||
if (target is IEffectHandler handler)
|
||||
if (target is Entity entity)
|
||||
{
|
||||
if (target is ILocalTimescale timescalable)
|
||||
timescalable.LocalTimescale *= Multiplier;
|
||||
if (target is CanvasItem canvasItem)
|
||||
canvasItem.Modulate = ColorOverride;
|
||||
entity.LocalTimescale *= Multiplier;
|
||||
entity.Modulate = ColorOverride;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Exit(Node target)
|
||||
{
|
||||
if(target is ILocalTimescale timescalable)
|
||||
timescalable.LocalTimescale /= Multiplier;
|
||||
if(target is CanvasItem canvasItem)
|
||||
canvasItem.Modulate = Colors.White;
|
||||
if (target is Entity entity)
|
||||
{
|
||||
entity.LocalTimescale /= Multiplier;
|
||||
entity.Modulate = Colors.White;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Process(Node target)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue