Weapons/GaussGun/GaussGunEffects.cs
public sealed class GaussGunEffects : Component, GaussWeapon.IGaussWeaponEvents
{
	[Property]
	public GameObject Coil { get; set; }

	[Property]
	public Curve Curve { get; set; }

	TimeSince TimeSinceAmmoConsumed = 100;

	float speed;
	float Speed
	{
		get
		{
			speed = speed.LerpTo( Curve.Evaluate( TimeSinceAmmoConsumed, false ), Time.Delta * 10f );
			return speed;
		}
	}

	protected override void OnUpdate()
	{
		Coil.WorldRotation *= Rotation.From( 0, 0, Speed );
	}

	void GaussWeapon.IGaussWeaponEvents.OnConsumedAmmo()
	{
		TimeSinceAmmoConsumed = 0;
	}
}