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;
}
}