35 lines
878 B
C#
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)
|
|
{
|
|
|
|
}
|
|
}
|