Ships/ShipData.cs
[GameResource( "Ship", "ship", "Ship Resource", Icon = "rocket", IconBgColor = "#f7aa25", IconFgColor = "#262522" )]
public partial class ShipData : GameResource
{
	[Category( "General" )]
	public string ShipName { get; set; }

	[Category( "General" )]
	public string Description { get; set; }

	[Category( "General" ), ResourceType( "prefab" )]
	public string ExplosionPrefab { get; set; }

	[Category( "General" ), ResourceType( "prefab" )]
	public string ShipPrefab { get; set; }

	[Category( "General" ), ResourceType( "png" )]
	public string ShipLogo { get; set; }

	[Category( "General" )]
	public float Health { get; set; } = 100;

	[Category( "General" )]
	public float Shield { get; set; } = 100;

	[Category( "General" )]
	public float ShieldRegenRate { get; set; } = 0.25f;

	[Category( "General" )]
	public float ShieldRegenDelay { get; set; } = 2f;

	[Category( "General" )]
	public ShipType shipType { get; set; } = ShipType.Assault;

	[Category( "Speed Stats" )]
	public float Acceleration { get; set; } = 15f;

	[Category( "Speed Stats" )]
	public float Deceleration { get; set; } = 5f;

	[Category( "Speed Stats" )]
	public float MinSpeed { get; set; } = 10;

	[Category( "Speed Stats" )]
	public float IdleSpeed { get; set; } = 10;

	[Category( "Speed Stats" )]
	public float MaxSpeed { get; set; } = 20;

	[Category( "Speed Stats" )]
	public float BoostSpeed { get; set; } = 40;

	[Category( "Speed Stats" )]
	public float BoostAmount { get; set; } = 100;

	[Category( "Speed Stats" )]
	public float BoostRegenRate { get; set; } = 15f;

	[Category( "Sounds" ), ResourceType( "soundcom" )]
	public string EngineSound { get; set; }

	[Category( "Sounds" ), ResourceType( "sound" )]
	public string BoostSound { get; set; }

	[Category( "Sounds" ), ResourceType( "sound" )]
	public string BoostSoundLoop { get; set; }

	[Category( "Weapons" ), ResourceType( "prefab" )]
	public string Primary { get; set; }

	[Category( "Weapons" )]
	public string PrimaryWeaponName { get; set; }

	[Category( "Weapons" ), ResourceType( "prefab" )]
	public string Secondary { get; set; }

	[Category( "Weapons" )]
	public string SecondaryWeaponName { get; set; }

	[Category( "Skins" )]
	public List<ShipSkinEntry> skinList { get; set; } = new();

	public enum ShipType
	{
		Assault,
		Tank,
		Scout
	}

	public struct ShipSkinEntry
	{
		[ResourceType( "vmat" )]
		public string Skin { get; set; }
		public string SkinName { get; set; }
		public int skinIdent { get; set; }
		public int XPNeeded { get; set; }
	}
}