guns/GunActiveReload.cs

A small Gun subclass that represents the "gun_active_reload" item. It provides a Description string that references PerkActiveReload, announces the perk in chat at run start, and adds the PerkActiveReload type to the player on run start.

Rough CodeNetworking
public class GunActiveReload : Gun
{
	public const string ItemId = "gun_active_reload";

	public static string Description() => $"Start with {Perk.GetRichTextNameToken( typeof( PerkActiveReload ) )} {Perk.GetRichTextToken( nameof(PerkActiveReload) )}";

	public override void OnRunStart()
	{
		base.OnRunStart();

		Manager.Instance.Chat.AddLocalChatMessage( $"Got {Perk.GetRichTextNameToken( typeof( PerkActiveReload ) )} {Perk.GetRichTextToken( nameof( PerkActiveReload ) )}", from: "" );

		Player.AddPerk( TypeLibrary.GetType( typeof( PerkActiveReload ) ) );
	}
}