charms/CharmHoming.cs

A Charm item that adds bullet homing radius to the player. It defines a constant homing radius, a text description, and applies two player stat modifiers when the charm is activated.

Reflection
using System.Xml.Linq;
using static Sandbox.VertexLayout;

public class CharmHoming : Charm
{
	public const string ItemId = "charm_homing";

	private const float HomingRadius = 0.5f;

	public static string Description() => $"+{HomingRadius.ToString("0.##")}m bullet homing range";

	public override void OnRunStart()
	{
		Player.Modify( this, PlayerStat.BulletHomingRadius, HomingRadius * Utils.Meter2Unit, ModifierType.Add );
		Player.Modify( this, PlayerStat.BulletHomingRadiusDisplay, HomingRadius, ModifierType.Add );
	}
}