mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 09:45:33 +00:00
64 lines
1.2 KiB
C#
64 lines
1.2 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,
|
|
Elapsed = 0.0,
|
|
};
|
|
}
|
|
|
|
public TimeModifier MakeClone()
|
|
{
|
|
return this.MemberwiseClone() as TimeModifier;
|
|
}
|
|
|
|
public virtual void Start(Bullet bullet)
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void Update(Bullet bullet, double delta, double elapsed)
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
public class ModifierWrapper
|
|
{
|
|
public TimeModifier TimeModifier { get; set; }
|
|
public bool Applied { get; set; } = false;
|
|
public double Elapsed { get; set; } = 0f;
|
|
|
|
public virtual void Start()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void Process(double deltaTime)
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
public enum TimeModifierType
|
|
{
|
|
SpeedChange,
|
|
RotationChange,
|
|
FacePlayer,
|
|
Dynamic
|
|
}
|