newlon/scripts/systems/effects/SlownessEffect.cs
2025-06-29 14:28:51 +05:00

35 lines
878 B
C#

using Godot;
using Newlon.Components;
using System;
namespace Newlon.Systems.Effects;
public partial class SlownessEffect : Effect
{
[Export] public Color ColorOverride;
[Export] public float Multiplier;
public override void Enter(Node target)
{
if (target is IEffectHandler handler)
{
if (target is ILocalTimescale timescalable)
timescalable.LocalTimescale *= Multiplier;
if (target is CanvasItem canvasItem)
canvasItem.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;
}
public override void Process(Node target)
{
}
}