cirnogodot/Scripts/Resources/TimeModifier.cs
2025-02-14 16:18:33 +01:00

62 lines
1.1 KiB
C#

using Cirno.Scripts.Actors;
using Godot;
namespace Cirno.Scripts.Resources;
[GlobalClass]
public partial class TimeModifier : Resource
{
[Export] public float TimeInSeconds = 1f;
[Export] public TimeModifierType ModifierType;
[Export] public float Value;
[Export] public bool Continuous = false;
public bool Applied { get; set; } = false;
public ModifierWrapper Wrap()
{
return new ModifierWrapper()
{
TimeModifier = this,
Applied = false
};
}
public TimeModifier MakeClone()
{
return this.MemberwiseClone() as TimeModifier;
}
public virtual void Start(Bullet bullet)
{
}
public virtual void Update(Bullet bullet, double delta)
{
}
}
public class ModifierWrapper
{
public TimeModifier TimeModifier { get; set; }
public bool Applied { get; set; } = false;
public virtual void Start()
{
}
public virtual void Process(double deltaTime)
{
}
}
public enum TimeModifierType
{
SpeedChange,
RotationChange,
FacePlayer,
Dynamic
}