Components/DamageNumber.cs
using Sandbox;
namespace Battlebugs;
public sealed class DamageNumber : Component
{
[RequireComponent] TextRenderer Renderer { get; set; }
TimeSince timeSinceCreated = 0;
float speed = 100f;
protected override void OnUpdate()
{
WorldPosition += Vector3.Up * speed * Time.Delta;
speed = speed.LerpTo( 0, Time.Delta * 4f );
if ( timeSinceCreated > 1f )
{
Renderer.Color = Renderer.Color.WithAlpha( Renderer.Color.a.LerpTo( 0, Time.Delta * 4f ) );
if ( Renderer.Color.a <= 0.01f )
{
GameObject.Destroy();
}
}
}
protected override void OnPreRender()
{
WorldRotation = Rotation.LookAt( WorldPosition - Scene.Camera.WorldPosition );
}
}