relics/RelicBloodDonation.cs
using Sandbox;
using System.Reflection.PortableExecutable;
using System.Runtime.Versioning;
using System.Threading.Tasks;

public class RelicBloodDonation : Relic
{
	public override void LevelUp()
	{
		base.LevelUp();

		Manager.Instance.PlaySfxCenter( "coin", volume: 1.4f, pitch: Game.Random.Float( 0.9f, 1.1f ) );

		int moneyAmount = 3 + (int)Manager.Instance.Stats[StatType.EarnExtraMoney];

		var camera = Scene.Camera;
		var ray = camera.ScreenPixelToRay( new Vector3( Screen.Width / 2, Screen.Height / 2, 0f ) );
		var tr = Scene.Trace.Ray( ray, 10000f ).Run();

		Manager.Instance.SpawnGainMoneyFloater( moneyAmount, tr.EndPosition + new Vector3(0f, 20f, 0f) );

		Manager.Instance.Money += moneyAmount;
		Manager.Instance.TimeSinceMoneyChanged = 0f;
	}
}