Moved modifiers code to resource

This commit is contained in:
Marco 2025-02-14 16:18:33 +01:00
commit f9aab9718a
12 changed files with 132 additions and 74 deletions

View file

@ -39,7 +39,7 @@ public partial class BulletResource : Resource
Modifier = Modifier,
LifeTime = LifeTime,
DestructionParticlesScene = DestructionParticlesScene,
TimeModifiers = TimeModifiers.Select(x => x.MakeClone()).ToList()
TimeModifiers = TimeModifiers.Select(x => x).ToList()
// TimeModifiers = TimeModifiers?.Where(mod => mod is TimeModifier).Cast<TimeModifier>().Select(m => new ModifierWrapper()
// {
// TimeModifier = m,

View file

@ -0,0 +1,12 @@
using Godot;
namespace Cirno.Scripts.Resources.Modifiers;
[GlobalClass]
public partial class DelayedPlayerFacingModifier : TimeModifier
{
public override void Start(Bullet bullet)
{
bullet.FacePlayer();
}
}

View file

@ -0,0 +1,12 @@
using Godot;
namespace Cirno.Scripts.Resources.Modifiers;
[GlobalClass]
public partial class DelayedRotationModifier : TimeModifier
{
public override void Start(Bullet bullet)
{
bullet.RotateBullet(this.Value);
}
}

View file

@ -1,9 +1,13 @@
using Godot;
using Cirno.Scripts.Actors;
using Godot;
namespace Cirno.Scripts.Resources.Modifiers;
[GlobalClass]
public partial class DelayedSpeedModifier : TimeModifier
{
public override void Start(Bullet bullet)
{
bullet.Speed = this.Value;
}
}

View file

@ -1,4 +1,5 @@
using Godot;
using Cirno.Scripts.Actors;
using Godot;
namespace Cirno.Scripts.Resources;
@ -24,6 +25,16 @@ public partial class TimeModifier : Resource
{
return this.MemberwiseClone() as TimeModifier;
}
public virtual void Start(Bullet bullet)
{
}
public virtual void Update(Bullet bullet, double delta)
{
}
}
public class ModifierWrapper