using System; namespace PKHeX.Core { /// /// Secret base format for /// public sealed class SecretBase6 { private readonly byte[] Data; private readonly int Offset; public const int SIZE = 0x3E0; public int BaseLocation { get => BitConverter.ToInt16(Data, Offset); set => BitConverter.GetBytes((short)value).CopyTo(Data, Offset); } public SecretBase6(byte[] data, int offset = 0) { Data = data; Offset = offset; } public string TrainerName { get => StringConverter.GetString6(Data, Offset + 0x218, 0x1A); set => StringConverter.SetString6(value, 0x1A / 2).CopyTo(Data, Offset + 0x218); } public string FlavorText1 { get => StringConverter.GetString6(Data, Offset + 0x232 + (0x22 * 0), 0x22); set => StringConverter.SetString6(value, 0x22 / 2).CopyTo(Data, Offset + 0x232 + (0x22 * 0)); } public string FlavorText2 { get => StringConverter.GetString6(Data, Offset + 0x232 + (0x22 * 1), 0x22); set => StringConverter.SetString6(value, 0x22 / 2).CopyTo(Data, Offset + 0x232 + (0x22 * 1)); } public string Saying1 { get => StringConverter.GetString6(Data, Offset + 0x276 + (0x22 * 0), 0x22); set => StringConverter.SetString6(value, 0x22 / 2).CopyTo(Data, Offset + 0x276 + (0x22 * 0)); } public string Saying2 { get => StringConverter.GetString6(Data, Offset + 0x276 + (0x22 * 1), 0x22); set => StringConverter.SetString6(value, 0x22 / 2).CopyTo(Data, Offset + 0x276 + (0x22 * 1)); } public string Saying3 { get => StringConverter.GetString6(Data, Offset + 0x276 + (0x22 * 2), 0x22); set => StringConverter.SetString6(value, 0x22 / 2).CopyTo(Data, Offset + 0x276 + (0x22 * 2)); } public string Saying4 { get => StringConverter.GetString6(Data, Offset + 0x276 + (0x22 * 3), 0x22); set => StringConverter.SetString6(value, 0x22 / 2).CopyTo(Data, Offset + 0x276 + (0x22 * 3)); } public bool IsDummiedBaseLocation => !IsEmpty && BaseLocation < 3; public bool IsEmpty => BaseLocation == 0; } }