diff --git a/NHSE.Core/Structures/Item/FieldItem/FieldItemDefinition.cs b/NHSE.Core/Structures/Item/FieldItem/FieldItemDefinition.cs
index a5d9888..5b3b6c3 100644
--- a/NHSE.Core/Structures/Item/FieldItem/FieldItemDefinition.cs
+++ b/NHSE.Core/Structures/Item/FieldItem/FieldItemDefinition.cs
@@ -6,44 +6,13 @@
///
/// These details are extracted from FgMainParam.bcsv
///
-public class FieldItemDefinition : INamedValue
+/// Item ID
+/// Item ID that the player receives if the item is dug up. Is if it cannot be dug up.
+/// Item ID that the player receives if the item is picked up. Is if it cannot be picked up.
+/// Internal Name of the Item
+/// Classification of item.
+public sealed record FieldItemDefinition(ushort Index, ushort Dig, ushort Pick, string Name, FieldItemKind Kind) : INamedValue
{
- ///
- /// Item ID
- ///
- public ushort Index { get; }
-
- ///
- /// Internal Name of the Item
- ///
- public string Name { get; }
-
- ///
- /// Item ID that the player receives if the item is dug up.
- ///
- /// Is if it cannot be dug up.
- public readonly ushort Dig;
-
- ///
- /// Item ID that the player receives if the item is dug up.
- ///
- /// Is if it cannot be picked up.
- public readonly ushort Pick;
-
- ///
- /// Classification of item.
- ///
- public readonly FieldItemKind Kind;
-
- public FieldItemDefinition(ushort id, ushort dig, ushort pick, string name, FieldItemKind kind)
- {
- Index = id;
- Dig = dig;
- Pick = pick;
- Name = name;
- Kind = kind;
- }
-
///
/// When the field item is picked up, this is the held item ID.
///
diff --git a/NHSE.Core/Structures/Records/EventFlagHouse.cs b/NHSE.Core/Structures/Records/EventFlagHouse.cs
index 4ff2e5a..d7dadd8 100644
--- a/NHSE.Core/Structures/Records/EventFlagHouse.cs
+++ b/NHSE.Core/Structures/Records/EventFlagHouse.cs
@@ -2,23 +2,8 @@
namespace NHSE.Core;
-public class EventFlagHouse : INamedValue
+public sealed record EventFlagHouse(short DefaultValue, short MaxValue, ushort Index, string Name) : INamedValue
{
- // these are actually unsigned
- public readonly short DefaultValue;
- public readonly short MaxValue;
-
- public ushort Index { get; }
- public string Name { get; }
-
- public EventFlagHouse(short init, short max, ushort index, string name)
- {
- Name = name;
- Index = index;
- DefaultValue = init;
- MaxValue = max;
- }
-
public static readonly IReadOnlyDictionary List = new Dictionary
{
{0x001, new EventFlagHouse(0, 1 , 0001, "HouseOrder1" )}, // テント→6x6増築申込
diff --git a/NHSE.Core/Structures/Records/EventFlagLand.cs b/NHSE.Core/Structures/Records/EventFlagLand.cs
index 9a25bbe..53a687d 100644
--- a/NHSE.Core/Structures/Records/EventFlagLand.cs
+++ b/NHSE.Core/Structures/Records/EventFlagLand.cs
@@ -2,23 +2,8 @@
namespace NHSE.Core;
-public class EventFlagLand : INamedValue
+public sealed record EventFlagLand(short DefaultValue, short MaxValue, ushort Index, string Name) : INamedValue
{
- // these are actually unsigned
- public readonly short DefaultValue;
- public readonly short MaxValue;
-
- public ushort Index { get; }
- public string Name { get; }
-
- public EventFlagLand(short init, short max, ushort index, string name)
- {
- Name = name;
- Index = index;
- DefaultValue = init;
- MaxValue = max;
- }
-
public static readonly IReadOnlyDictionary List = new Dictionary
{
{0x000, new EventFlagLand(0 , 1 , 0000, "TodayCreateVillage" )}, // 今日村作成されたか
diff --git a/NHSE.Core/Structures/Records/EventFlagPlayer.cs b/NHSE.Core/Structures/Records/EventFlagPlayer.cs
index c9046f8..1ff5fd6 100644
--- a/NHSE.Core/Structures/Records/EventFlagPlayer.cs
+++ b/NHSE.Core/Structures/Records/EventFlagPlayer.cs
@@ -3,23 +3,8 @@
namespace NHSE.Core;
-public class EventFlagPlayer : INamedValue
+public sealed record EventFlagPlayer(short DefaultValue, short MaxValue, ushort Index, string Name) : INamedValue
{
- // these are actually unsigned
- public readonly short DefaultValue;
- public readonly short MaxValue;
-
- public ushort Index { get; }
- public string Name { get; }
-
- public EventFlagPlayer(short init, short max, ushort index, string name)
- {
- Name = name;
- Index = index;
- DefaultValue = init;
- MaxValue = max;
- }
-
public static readonly IReadOnlyDictionary List = new Dictionary
{
{0x002, new EventFlagPlayer(0 , 9 , 0002, "PrologueNpcHintCount" )}, // NPCの序盤ヒントをいくつまで聞いたか
diff --git a/NHSE.Core/Structures/Records/EventFlagVillager.cs b/NHSE.Core/Structures/Records/EventFlagVillager.cs
index b1a761c..af91277 100644
--- a/NHSE.Core/Structures/Records/EventFlagVillager.cs
+++ b/NHSE.Core/Structures/Records/EventFlagVillager.cs
@@ -3,22 +3,8 @@
namespace NHSE.Core;
-public class EventFlagVillager : INamedValue
+public sealed record EventFlagVillager(short Value1, short Value2, ushort Index, string Name) : INamedValue
{
- public readonly short Value1;
- public readonly short Value2;
-
- public ushort Index { get; }
- public string Name { get; }
-
- public EventFlagVillager(short v1, short v2, ushort index, string name)
- {
- Name = name;
- Index = index;
- Value1 = v1;
- Value2 = v2;
- }
-
public static readonly IReadOnlyDictionary List = new Dictionary
{
{0x000, new EventFlagVillager(0 , 200 , 0000, "NnpcHouseLoan" )}, // ローン返済カウント
diff --git a/NHSE.Core/Structures/Records/EventFlagVillagerMemoryPlayer.cs b/NHSE.Core/Structures/Records/EventFlagVillagerMemoryPlayer.cs
index ccb94ce..b858cfd 100644
--- a/NHSE.Core/Structures/Records/EventFlagVillagerMemoryPlayer.cs
+++ b/NHSE.Core/Structures/Records/EventFlagVillagerMemoryPlayer.cs
@@ -2,22 +2,8 @@
namespace NHSE.Core;
-public class EventFlagVillagerMemoryPlayer : INamedValue
+public sealed record EventFlagVillagerMemoryPlayer(byte Initial, byte Maximum, ushort Index, string Name) : INamedValue
{
- public readonly byte Initial;
- public readonly byte Maximum;
-
- public ushort Index { get; }
- public string Name { get; }
-
- public EventFlagVillagerMemoryPlayer(byte init, byte max, ushort index, string name)
- {
- Name = name;
- Index = index;
- Initial = init;
- Maximum = max;
- }
-
public static readonly IReadOnlyDictionary List = new Dictionary
{
{0x00, new EventFlagVillagerMemoryPlayer(0 , 1 , 000, "TalkFreeMultiDayEventNow" )}, // (ボツ)今、期間型イベント用のFreeFを聞いたか?