diff --git a/PKHeX.Core/Editing/Bulk/BatchEditor.cs b/PKHeX.Core/Editing/Bulk/BatchEditor.cs
index ff93514bc..389ea0ea6 100644
--- a/PKHeX.Core/Editing/Bulk/BatchEditor.cs
+++ b/PKHeX.Core/Editing/Bulk/BatchEditor.cs
@@ -9,7 +9,7 @@ namespace PKHeX.Core
///
/// Carries out a batch edit and contains information summarizing the results.
///
- public class BatchEditor
+ public sealed class BatchEditor
{
private int Modified { get; set; }
private int Iterated { get; set; }
diff --git a/PKHeX.Core/Editing/Bulk/StringInstruction.cs b/PKHeX.Core/Editing/Bulk/StringInstruction.cs
index e32f44c4b..108c02077 100644
--- a/PKHeX.Core/Editing/Bulk/StringInstruction.cs
+++ b/PKHeX.Core/Editing/Bulk/StringInstruction.cs
@@ -14,7 +14,7 @@ namespace PKHeX.Core
///
///
///
- public class StringInstruction
+ public sealed class StringInstruction
{
public string PropertyName { get; private set; }
public string PropertyValue { get; private set; }
diff --git a/PKHeX.Core/Editing/Bulk/StringInstructionSet.cs b/PKHeX.Core/Editing/Bulk/StringInstructionSet.cs
index da59593ee..2f07b0ec1 100644
--- a/PKHeX.Core/Editing/Bulk/StringInstructionSet.cs
+++ b/PKHeX.Core/Editing/Bulk/StringInstructionSet.cs
@@ -6,7 +6,7 @@ namespace PKHeX.Core
///
/// Processes input of strings into a list of valid Filters and Instructions.
///
- public class StringInstructionSet
+ public sealed class StringInstructionSet
{
public IList Filters { get; private set; }
public IList Instructions { get; private set; }
diff --git a/PKHeX.Core/Editing/PKM/LegalMoveSource.cs b/PKHeX.Core/Editing/PKM/LegalMoveSource.cs
index 9ec5dd37c..575532975 100644
--- a/PKHeX.Core/Editing/PKM/LegalMoveSource.cs
+++ b/PKHeX.Core/Editing/PKM/LegalMoveSource.cs
@@ -7,7 +7,7 @@ namespace PKHeX.Core
///
/// Legal Move information for a single , for indicating if a move is legal or not.
///
- public class LegalMoveSource
+ public sealed class LegalMoveSource
{
public readonly IList IsMoveBoxOrdered = new bool[4];
public IReadOnlyList DataSource => (ComboItem[])MoveDataAllowed.Clone();
diff --git a/PKHeX.Core/Editing/PKM/PKMSummary.cs b/PKHeX.Core/Editing/PKM/PKMSummary.cs
index 1d24b7f76..25868aa3a 100644
--- a/PKHeX.Core/Editing/PKM/PKMSummary.cs
+++ b/PKHeX.Core/Editing/PKM/PKMSummary.cs
@@ -5,7 +5,7 @@ namespace PKHeX.Core
///
/// Bindable summary object that can fetch strings that summarize a .
///
- public class PKMSummary
+ public class PKMSummary // do NOT seal, allow inheritance
{
private static readonly IReadOnlyList GenderSymbols = GameInfo.GenderSymbolASCII;
diff --git a/PKHeX.Core/Editing/Saves/Editors/EventWork/EventFlag.cs b/PKHeX.Core/Editing/Saves/Editors/EventWork/EventFlag.cs
index 5309ef5a5..5c5526963 100644
--- a/PKHeX.Core/Editing/Saves/Editors/EventWork/EventFlag.cs
+++ b/PKHeX.Core/Editing/Saves/Editors/EventWork/EventFlag.cs
@@ -5,7 +5,7 @@ namespace PKHeX.Core
///
/// Event Flag that toggles certain features / entities on and off.
///
- public class EventFlag : EventVar
+ public sealed class EventFlag : EventVar
{
public bool Flag;
diff --git a/PKHeX.Core/Editing/Saves/Editors/EventWork/EventVar.cs b/PKHeX.Core/Editing/Saves/Editors/EventWork/EventVar.cs
index a3f685915..9dca35bf5 100644
--- a/PKHeX.Core/Editing/Saves/Editors/EventWork/EventVar.cs
+++ b/PKHeX.Core/Editing/Saves/Editors/EventWork/EventVar.cs
@@ -3,7 +3,7 @@ namespace PKHeX.Core
///
/// Event variable used to determine game events.
///
- public class EventVar
+ public abstract class EventVar
{
///
/// Name of event variable
diff --git a/PKHeX.Core/Editing/Saves/Editors/EventWork/EventWork.cs b/PKHeX.Core/Editing/Saves/Editors/EventWork/EventWork.cs
index ae3cce17a..0a2cbe978 100644
--- a/PKHeX.Core/Editing/Saves/Editors/EventWork/EventWork.cs
+++ b/PKHeX.Core/Editing/Saves/Editors/EventWork/EventWork.cs
@@ -7,7 +7,7 @@ namespace PKHeX.Core
/// Event number storage for more complex logic events.
///
///
- public class EventWork : EventVar
+ public sealed class EventWork : EventVar
{
public T Value;
public readonly IList Options = new List { new EventWorkVal() };
diff --git a/PKHeX.Core/Editing/Saves/Editors/EventWork/EventWorkVal.cs b/PKHeX.Core/Editing/Saves/Editors/EventWork/EventWorkVal.cs
index 1f8ee7bb2..8683e223a 100644
--- a/PKHeX.Core/Editing/Saves/Editors/EventWork/EventWorkVal.cs
+++ b/PKHeX.Core/Editing/Saves/Editors/EventWork/EventWorkVal.cs
@@ -3,7 +3,7 @@
///
/// Represents a known value for a of type .
///
- public class EventWorkVal
+ public sealed class EventWorkVal
{
public readonly bool Custom;
public readonly string Text;
diff --git a/PKHeX.Core/Editing/Saves/Editors/EventWork/SplitEventEditor.cs b/PKHeX.Core/Editing/Saves/Editors/EventWork/SplitEventEditor.cs
index 155c5c172..2dd12d6d9 100644
--- a/PKHeX.Core/Editing/Saves/Editors/EventWork/SplitEventEditor.cs
+++ b/PKHeX.Core/Editing/Saves/Editors/EventWork/SplitEventEditor.cs
@@ -7,7 +7,7 @@ namespace PKHeX.Core
/// Editor object that unpacks into flags & work groups, and handles value get/set operations.
///
///
- public class SplitEventEditor
+ public sealed class SplitEventEditor
{
public readonly IList Work;
public readonly IList Flag;
diff --git a/PKHeX.Core/Editing/Saves/Editors/SaveDataEditor.cs b/PKHeX.Core/Editing/Saves/Editors/SaveDataEditor.cs
index 8e4bed841..0c4b465b8 100644
--- a/PKHeX.Core/Editing/Saves/Editors/SaveDataEditor.cs
+++ b/PKHeX.Core/Editing/Saves/Editors/SaveDataEditor.cs
@@ -4,7 +4,7 @@
/// Environment for editing a
///
///
- public class SaveDataEditor
+ public sealed class SaveDataEditor
{
public readonly SaveFile SAV;
public readonly SlotEditor Slots;
diff --git a/PKHeX.Core/Editing/Saves/Slots/BoxEdit.cs b/PKHeX.Core/Editing/Saves/Slots/BoxEdit.cs
index 3a6a69d6e..b8d19971a 100644
--- a/PKHeX.Core/Editing/Saves/Slots/BoxEdit.cs
+++ b/PKHeX.Core/Editing/Saves/Slots/BoxEdit.cs
@@ -5,7 +5,7 @@ namespace PKHeX.Core
///
/// Represents a Box Editor that loads the contents for easy manipulation.
///
- public class BoxEdit
+ public sealed class BoxEdit
{
private readonly SaveFile SAV;
private readonly PKM[] CurrentContents;
diff --git a/PKHeX.Core/Editing/Saves/Slots/SlotChangelog.cs b/PKHeX.Core/Editing/Saves/Slots/SlotChangelog.cs
index 7127c29d1..61510cd21 100644
--- a/PKHeX.Core/Editing/Saves/Slots/SlotChangelog.cs
+++ b/PKHeX.Core/Editing/Saves/Slots/SlotChangelog.cs
@@ -5,7 +5,7 @@ namespace PKHeX.Core
///
/// Tracks slot changes and provides the ability to revert a change.
///
- public class SlotChangelog
+ public sealed class SlotChangelog
{
private readonly SaveFile SAV;
private readonly Stack UndoStack = new Stack();
diff --git a/PKHeX.Core/Editing/Saves/Slots/SlotViewInfo.cs b/PKHeX.Core/Editing/Saves/Slots/SlotViewInfo.cs
index b75ccda13..b4abde962 100644
--- a/PKHeX.Core/Editing/Saves/Slots/SlotViewInfo.cs
+++ b/PKHeX.Core/Editing/Saves/Slots/SlotViewInfo.cs
@@ -4,7 +4,7 @@ namespace PKHeX.Core
/// Tuple containing data for a and the originating
///
///
- public class SlotViewInfo
+ public sealed class SlotViewInfo
{
public ISlotInfo Slot;
public ISlotViewer View;
diff --git a/PKHeX.Core/Editing/ShowdownSet.cs b/PKHeX.Core/Editing/ShowdownSet.cs
index a1edccbc5..17e2e0b9d 100644
--- a/PKHeX.Core/Editing/ShowdownSet.cs
+++ b/PKHeX.Core/Editing/ShowdownSet.cs
@@ -7,7 +7,7 @@ namespace PKHeX.Core
///
/// Logic for exporting and importing data in Pokémon Showdown's text format.
///
- public class ShowdownSet
+ public sealed class ShowdownSet
{
private static readonly string[] genders = {"M", "F", ""};
private static readonly string[] genderForms = {"", "F", ""};
diff --git a/PKHeX.Core/Game/GameStrings/FilteredGameDataSource.cs b/PKHeX.Core/Game/GameStrings/FilteredGameDataSource.cs
index 5ae6c45cc..1ccd17ec9 100644
--- a/PKHeX.Core/Game/GameStrings/FilteredGameDataSource.cs
+++ b/PKHeX.Core/Game/GameStrings/FilteredGameDataSource.cs
@@ -7,7 +7,7 @@ namespace PKHeX.Core
///
/// sensitive provider for data sources.
///
- public class FilteredGameDataSource
+ public sealed class FilteredGameDataSource
{
public FilteredGameDataSource(SaveFile sav, GameDataSource source, bool HaX = false)
{
diff --git a/PKHeX.Core/Game/GameStrings/GameDataSource.cs b/PKHeX.Core/Game/GameStrings/GameDataSource.cs
index 3dd188fb9..03dfe425c 100644
--- a/PKHeX.Core/Game/GameStrings/GameDataSource.cs
+++ b/PKHeX.Core/Game/GameStrings/GameDataSource.cs
@@ -7,7 +7,7 @@ namespace PKHeX.Core
///
/// Bundles raw string inputs into lists that can be used in data binding.
///
- public class GameDataSource
+ public sealed class GameDataSource
{
public static readonly IReadOnlyList Regions = Util.GetCSVUnsortedCBList("regions3ds");
public static readonly IReadOnlyList LanguageList = Util.GetCSVUnsortedCBList("languages");
diff --git a/PKHeX.Core/Game/GameStrings/GameStrings.cs b/PKHeX.Core/Game/GameStrings/GameStrings.cs
index c0cba136d..a01187c02 100644
--- a/PKHeX.Core/Game/GameStrings/GameStrings.cs
+++ b/PKHeX.Core/Game/GameStrings/GameStrings.cs
@@ -7,7 +7,7 @@ namespace PKHeX.Core
///
/// Repository of localized game strings for a given .
///
- public class GameStrings : IBasicStrings
+ public sealed class GameStrings : IBasicStrings
{
// PKM Info
public readonly string[] specieslist, movelist, itemlist, abilitylist, types, natures, forms,
diff --git a/PKHeX.Core/Game/GameStrings/MemoryStrings.cs b/PKHeX.Core/Game/GameStrings/MemoryStrings.cs
index 55497b147..92e1c744e 100644
--- a/PKHeX.Core/Game/GameStrings/MemoryStrings.cs
+++ b/PKHeX.Core/Game/GameStrings/MemoryStrings.cs
@@ -4,7 +4,7 @@
namespace PKHeX.Core
{
- public class MemoryStrings
+ public sealed class MemoryStrings
{
private readonly GameStrings s;
diff --git a/PKHeX.Core/Legality/BulkAnalysis.cs b/PKHeX.Core/Legality/BulkAnalysis.cs
index 0d22112c9..dc80b8619 100644
--- a/PKHeX.Core/Legality/BulkAnalysis.cs
+++ b/PKHeX.Core/Legality/BulkAnalysis.cs
@@ -8,7 +8,7 @@
namespace PKHeX.Core
{
- public class BulkAnalysis
+ public sealed class BulkAnalysis
{
public readonly IReadOnlyList AllData;
public readonly IReadOnlyList AllAnalysis;
diff --git a/PKHeX.Core/Legality/Encounters/Generator/EncounterCriteria.cs b/PKHeX.Core/Legality/Encounters/Generator/EncounterCriteria.cs
index df60f97b7..6136248d8 100644
--- a/PKHeX.Core/Legality/Encounters/Generator/EncounterCriteria.cs
+++ b/PKHeX.Core/Legality/Encounters/Generator/EncounterCriteria.cs
@@ -3,7 +3,7 @@
///
/// Object that can be fed to a converter to ensure that the resulting meets rough specifications.
///
- public class EncounterCriteria
+ public sealed class EncounterCriteria
{
public static readonly EncounterCriteria Unrestricted = new EncounterCriteria();
diff --git a/PKHeX.Core/Legality/Encounters/Generator/PeekEnumerator.cs b/PKHeX.Core/Legality/Encounters/Generator/PeekEnumerator.cs
index 2a4d5f716..96ce5a7da 100644
--- a/PKHeX.Core/Legality/Encounters/Generator/PeekEnumerator.cs
+++ b/PKHeX.Core/Legality/Encounters/Generator/PeekEnumerator.cs
@@ -8,7 +8,7 @@ namespace PKHeX.Core
/// Iterates a generic collection with the ability to peek into the collection to see if the next element exists.
///
/// Generic Collection Element Type
- public class PeekEnumerator : IEnumerator
+ public sealed class PeekEnumerator : IEnumerator
{
private readonly IEnumerator Enumerator;
private T peek;
diff --git a/PKHeX.Core/Legality/Encounters/Information/ValidEncounterMoves.cs b/PKHeX.Core/Legality/Encounters/Information/ValidEncounterMoves.cs
index e739c670e..f80115be9 100644
--- a/PKHeX.Core/Legality/Encounters/Information/ValidEncounterMoves.cs
+++ b/PKHeX.Core/Legality/Encounters/Information/ValidEncounterMoves.cs
@@ -7,7 +7,7 @@ namespace PKHeX.Core
///
/// Object which stores information useful for analyzing a moveset relative to the encounter data.
///
- public class ValidEncounterMoves
+ public sealed class ValidEncounterMoves
{
public List[] LevelUpMoves { get; } = Empty;
public List[] TMHMMoves { get; } = Empty;
@@ -30,7 +30,7 @@ public ValidEncounterMoves(List[] levelup)
}
}
- public class LevelUpRestriction
+ public sealed class LevelUpRestriction
{
public readonly IReadOnlyList[] EvolutionChains;
public readonly int MinimumLevelGen1;
diff --git a/PKHeX.Core/Legality/Moves/LearnLookup.cs b/PKHeX.Core/Legality/Moves/LearnLookup.cs
index 30e3d860d..2f8bb1788 100644
--- a/PKHeX.Core/Legality/Moves/LearnLookup.cs
+++ b/PKHeX.Core/Legality/Moves/LearnLookup.cs
@@ -8,7 +8,7 @@ namespace PKHeX.Core
///
/// LevelUp Lookup object
///
- public class LearnLookup
+ public sealed class LearnLookup
{
private readonly GameVersion Version;
private readonly PersonalTable Table;
diff --git a/PKHeX.Core/Legality/RNG/Frame/Frame.cs b/PKHeX.Core/Legality/RNG/Frame/Frame.cs
index 73df02ea1..b39a1d7c3 100644
--- a/PKHeX.Core/Legality/RNG/Frame/Frame.cs
+++ b/PKHeX.Core/Legality/RNG/Frame/Frame.cs
@@ -1,6 +1,6 @@
namespace PKHeX.Core
{
- public class Frame
+ public sealed class Frame
{
///
/// Ending seed value for the frame (prior to nature call).
diff --git a/PKHeX.Core/Legality/RNG/Frame/FrameCache.cs b/PKHeX.Core/Legality/RNG/Frame/FrameCache.cs
index 534c8d245..aa8c83c57 100644
--- a/PKHeX.Core/Legality/RNG/Frame/FrameCache.cs
+++ b/PKHeX.Core/Legality/RNG/Frame/FrameCache.cs
@@ -7,7 +7,7 @@ namespace PKHeX.Core
///
/// Frame List used to cache results.
///
- public class FrameCache
+ public sealed class FrameCache
{
private const int DefaultSize = 32;
private readonly List Seeds = new List(DefaultSize);
diff --git a/PKHeX.Core/Legality/RNG/Frame/FrameGenerator.cs b/PKHeX.Core/Legality/RNG/Frame/FrameGenerator.cs
index f4e16cf0b..12f4a79b8 100644
--- a/PKHeX.Core/Legality/RNG/Frame/FrameGenerator.cs
+++ b/PKHeX.Core/Legality/RNG/Frame/FrameGenerator.cs
@@ -1,6 +1,6 @@
namespace PKHeX.Core
{
- public class FrameGenerator
+ public sealed class FrameGenerator
{
public uint Nature;
public readonly bool Gendered;
diff --git a/PKHeX.Core/Legality/RNG/Locks/TeamLock.cs b/PKHeX.Core/Legality/RNG/Locks/TeamLock.cs
index d6246dc53..4484eb645 100644
--- a/PKHeX.Core/Legality/RNG/Locks/TeamLock.cs
+++ b/PKHeX.Core/Legality/RNG/Locks/TeamLock.cs
@@ -1,6 +1,6 @@
namespace PKHeX.Core
{
- public class TeamLock
+ public sealed class TeamLock
{
public int Species;
public string Comment;
diff --git a/PKHeX.Core/Legality/RNG/PIDIV.cs b/PKHeX.Core/Legality/RNG/PIDIV.cs
index 11063262d..d773e0fde 100644
--- a/PKHeX.Core/Legality/RNG/PIDIV.cs
+++ b/PKHeX.Core/Legality/RNG/PIDIV.cs
@@ -16,7 +16,7 @@ public class PIDIV
public PIDType Type;
}
- public class PIDIVTSV : PIDIV
+ public sealed class PIDIVTSV : PIDIV
{
public int TSV1 { get; internal set; } = -1;
public int TSV2 { get; internal set; } = -1;
diff --git a/PKHeX.Core/Legality/Structures/CheckMoveResult.cs b/PKHeX.Core/Legality/Structures/CheckMoveResult.cs
index 021ab5ca2..e0c1d4c78 100644
--- a/PKHeX.Core/Legality/Structures/CheckMoveResult.cs
+++ b/PKHeX.Core/Legality/Structures/CheckMoveResult.cs
@@ -23,7 +23,7 @@ public enum MoveSource
///
/// Move specific to contain in which Generation it was learned & source.
///
- public class CheckMoveResult : CheckResult
+ public sealed class CheckMoveResult : CheckResult
{
public readonly MoveSource Source;
public readonly int Generation;
diff --git a/PKHeX.Core/Legality/Structures/SimpleTrainerInfo.cs b/PKHeX.Core/Legality/Structures/SimpleTrainerInfo.cs
index a67a4b688..a8ab0e17d 100644
--- a/PKHeX.Core/Legality/Structures/SimpleTrainerInfo.cs
+++ b/PKHeX.Core/Legality/Structures/SimpleTrainerInfo.cs
@@ -1,6 +1,6 @@
namespace PKHeX.Core
{
- public class SimpleTrainerInfo : ITrainerInfo
+ public sealed class SimpleTrainerInfo : ITrainerInfo
{
public string OT { get; set; } = "PKHeX";
public int TID { get; set; } = 12345;
diff --git a/PKHeX.Core/MysteryGifts/PL6.cs b/PKHeX.Core/MysteryGifts/PL6.cs
index df968f30f..b023d02ef 100644
--- a/PKHeX.Core/MysteryGifts/PL6.cs
+++ b/PKHeX.Core/MysteryGifts/PL6.cs
@@ -11,7 +11,7 @@ namespace PKHeX.Core
/// This Template object is very similar to the structure in that it stores more data than just the gift.
/// This template object is only present in Generation 6 save files.
///
- public class PL6
+ public sealed class PL6
{
public const int Size = 0xA47;
public const string Filter = "Pokémon Link Data|*.pl6|All Files (*.*)|*.*";
@@ -131,7 +131,7 @@ public int[] Quantities
/// This Template object is very similar to the structure and similar objects, in that the structure offsets are ordered the same.
/// This template object is only present in Generation 6 save files.
///
- public class PL6_PKM : IRibbonSetEvent3, IRibbonSetEvent4
+ public sealed class PL6_PKM : IRibbonSetEvent3, IRibbonSetEvent4
{
internal const int Size = 0xA0;
diff --git a/PKHeX.Core/MysteryGifts/WC3.cs b/PKHeX.Core/MysteryGifts/WC3.cs
index 58113908e..8fce2723a 100644
--- a/PKHeX.Core/MysteryGifts/WC3.cs
+++ b/PKHeX.Core/MysteryGifts/WC3.cs
@@ -10,7 +10,7 @@ namespace PKHeX.Core
/// This is fabricated data built to emulate the future generation Mystery Gift objects.
/// Data here is not stored in any save file and cannot be naturally exported.
///
- public class WC3 : MysteryGift, IRibbonSetEvent3, IVersion
+ public sealed class WC3 : MysteryGift, IRibbonSetEvent3, IVersion
{
///
/// Matched Type
diff --git a/PKHeX.Core/MysteryGifts/WR7.cs b/PKHeX.Core/MysteryGifts/WR7.cs
index 6b3001b73..91129fbe6 100644
--- a/PKHeX.Core/MysteryGifts/WR7.cs
+++ b/PKHeX.Core/MysteryGifts/WR7.cs
@@ -11,7 +11,7 @@ namespace PKHeX.Core
/// A full is not stored in the structure, as it is immediately converted to upon receiving from server.
/// The save file just stores a summary of the received data for the user to look back at.
///
- public class WR7 : MysteryGift
+ public sealed class WR7 : MysteryGift
{
public const int Size = 0x140;
diff --git a/PKHeX.Core/PKM/Searching/SearchSettings.cs b/PKHeX.Core/PKM/Searching/SearchSettings.cs
index d11d07ab6..1e470f2b1 100644
--- a/PKHeX.Core/PKM/Searching/SearchSettings.cs
+++ b/PKHeX.Core/PKM/Searching/SearchSettings.cs
@@ -7,7 +7,7 @@ namespace PKHeX.Core.Searching
///
/// search settings & searcher
///
- public class SearchSettings
+ public sealed class SearchSettings
{
public int Format { private get; set; }
public int Generation { private get; set; }
diff --git a/PKHeX.Core/PKM/Shared/QRPK7.cs b/PKHeX.Core/PKM/Shared/QRPK7.cs
index b0675ca28..4b9aaaa80 100644
--- a/PKHeX.Core/PKM/Shared/QRPK7.cs
+++ b/PKHeX.Core/PKM/Shared/QRPK7.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class QRPK7
+ public sealed class QRPK7
{
private readonly byte[] Data;
diff --git a/PKHeX.Core/PersonalInfo/PersonalInfoB2W2.cs b/PKHeX.Core/PersonalInfo/PersonalInfoB2W2.cs
index 0f2a988c0..48fb25d5e 100644
--- a/PKHeX.Core/PersonalInfo/PersonalInfoB2W2.cs
+++ b/PKHeX.Core/PersonalInfo/PersonalInfoB2W2.cs
@@ -3,7 +3,7 @@
///
/// class with values from the Black 2 & White 2 games.
///
- public class PersonalInfoB2W2 : PersonalInfoBW
+ public sealed class PersonalInfoB2W2 : PersonalInfoBW
{
public new const int SIZE = 0x4C;
diff --git a/PKHeX.Core/PersonalInfo/PersonalInfoG1.cs b/PKHeX.Core/PersonalInfo/PersonalInfoG1.cs
index f02dc52ef..0e2a85dd1 100644
--- a/PKHeX.Core/PersonalInfo/PersonalInfoG1.cs
+++ b/PKHeX.Core/PersonalInfo/PersonalInfoG1.cs
@@ -3,9 +3,8 @@
///
/// class with values from Generation 1 games.
///
- public class PersonalInfoG1 : PersonalInfo
+ public sealed class PersonalInfoG1 : PersonalInfo
{
- protected PersonalInfoG1() { }
public const int SIZE = 0x1C;
public PersonalInfoG1(byte[] data)
diff --git a/PKHeX.Core/PersonalInfo/PersonalInfoG2.cs b/PKHeX.Core/PersonalInfo/PersonalInfoG2.cs
index 28ecba78e..0630682df 100644
--- a/PKHeX.Core/PersonalInfo/PersonalInfoG2.cs
+++ b/PKHeX.Core/PersonalInfo/PersonalInfoG2.cs
@@ -3,9 +3,8 @@
///
/// class with values from Generation 2 games.
///
- public class PersonalInfoG2 : PersonalInfo
+ public sealed class PersonalInfoG2 : PersonalInfo
{
- protected PersonalInfoG2() { }
public const int SIZE = 0x20;
public PersonalInfoG2(byte[] data)
diff --git a/PKHeX.Core/PersonalInfo/PersonalInfoG4.cs b/PKHeX.Core/PersonalInfo/PersonalInfoG4.cs
index 0fbae100b..00f472bec 100644
--- a/PKHeX.Core/PersonalInfo/PersonalInfoG4.cs
+++ b/PKHeX.Core/PersonalInfo/PersonalInfoG4.cs
@@ -5,7 +5,7 @@ namespace PKHeX.Core
///
/// class with values from Generation 4 games.
///
- public class PersonalInfoG4 : PersonalInfoG3
+ public sealed class PersonalInfoG4 : PersonalInfoG3
{
public new const int SIZE = 0x2C;
diff --git a/PKHeX.Core/PersonalInfo/PersonalInfoORAS.cs b/PKHeX.Core/PersonalInfo/PersonalInfoORAS.cs
index 58f532a5e..f07119b37 100644
--- a/PKHeX.Core/PersonalInfo/PersonalInfoORAS.cs
+++ b/PKHeX.Core/PersonalInfo/PersonalInfoORAS.cs
@@ -3,7 +3,7 @@
///
/// class with values from the OR & AS games.
///
- public class PersonalInfoORAS : PersonalInfoXY
+ public sealed class PersonalInfoORAS : PersonalInfoXY
{
public new const int SIZE = 0x50;
diff --git a/PKHeX.Core/PersonalInfo/PersonalInfoSWSH.cs b/PKHeX.Core/PersonalInfo/PersonalInfoSWSH.cs
index 25a3a9899..421b8aa11 100644
--- a/PKHeX.Core/PersonalInfo/PersonalInfoSWSH.cs
+++ b/PKHeX.Core/PersonalInfo/PersonalInfoSWSH.cs
@@ -5,7 +5,7 @@ namespace PKHeX.Core
///
/// class with values from the games.
///
- public class PersonalInfoSWSH : PersonalInfoSM
+ public sealed class PersonalInfoSWSH : PersonalInfoSM
{
public new const int SIZE = PersonalInfoSM.SIZE;
diff --git a/PKHeX.Core/Saves/SAV3.cs b/PKHeX.Core/Saves/SAV3.cs
index bfffc0475..741d975ec 100644
--- a/PKHeX.Core/Saves/SAV3.cs
+++ b/PKHeX.Core/Saves/SAV3.cs
@@ -898,7 +898,7 @@ private void LoadEReaderBerryData()
#endregion
// RTC
- public class RTC3
+ public sealed class RTC3
{
public readonly byte[] Data;
private const int Size = 8;
diff --git a/PKHeX.Core/Saves/SAV5B2W2.cs b/PKHeX.Core/Saves/SAV5B2W2.cs
index 87b6cff34..ee3915c16 100644
--- a/PKHeX.Core/Saves/SAV5B2W2.cs
+++ b/PKHeX.Core/Saves/SAV5B2W2.cs
@@ -1,6 +1,6 @@
namespace PKHeX.Core
{
- public class SAV5B2W2 : SAV5
+ public sealed class SAV5B2W2 : SAV5
{
public SAV5B2W2() : base(SaveUtil.SIZE_G5RAW) => Initialize();
public SAV5B2W2(byte[] data) : base(data) => Initialize();
diff --git a/PKHeX.Core/Saves/SAV5BW.cs b/PKHeX.Core/Saves/SAV5BW.cs
index 18a29e9af..e3dc91f1f 100644
--- a/PKHeX.Core/Saves/SAV5BW.cs
+++ b/PKHeX.Core/Saves/SAV5BW.cs
@@ -1,6 +1,6 @@
namespace PKHeX.Core
{
- public class SAV5BW : SAV5
+ public sealed class SAV5BW : SAV5
{
public SAV5BW() : base(SaveUtil.SIZE_G5RAW) => Initialize();
public SAV5BW(byte[] data) : base(data) => Initialize();
diff --git a/PKHeX.Core/Saves/SAV7SM.cs b/PKHeX.Core/Saves/SAV7SM.cs
index 98ec94980..91e630518 100644
--- a/PKHeX.Core/Saves/SAV7SM.cs
+++ b/PKHeX.Core/Saves/SAV7SM.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class SAV7SM : SAV7
+ public sealed class SAV7SM : SAV7
{
public SAV7SM(byte[] data) : base(data, BlocksSM, boSM) => Initialize();
public SAV7SM() : base(SaveUtil.SIZE_G7SM, BlocksSM, boSM) => Initialize();
diff --git a/PKHeX.Core/Saves/SAV7USUM.cs b/PKHeX.Core/Saves/SAV7USUM.cs
index c6117b2f8..28c48dbe9 100644
--- a/PKHeX.Core/Saves/SAV7USUM.cs
+++ b/PKHeX.Core/Saves/SAV7USUM.cs
@@ -1,6 +1,6 @@
namespace PKHeX.Core
{
- public class SAV7USUM : SAV7
+ public sealed class SAV7USUM : SAV7
{
public SAV7USUM(byte[] data) : base(data, BlocksUSUM, boUU)
{
diff --git a/PKHeX.Core/Saves/SAV8SWSH.cs b/PKHeX.Core/Saves/SAV8SWSH.cs
index c02b4a080..e210a46d3 100644
--- a/PKHeX.Core/Saves/SAV8SWSH.cs
+++ b/PKHeX.Core/Saves/SAV8SWSH.cs
@@ -3,7 +3,7 @@
///
/// Generation 8 object for games.
///
- public class SAV8SWSH : SAV8
+ public sealed class SAV8SWSH : SAV8
{
public SAV8SWSH(byte[] data) : base(data, BlocksSWSH, boSWSH) => Initialize();
public SAV8SWSH() : base(SaveUtil.SIZE_G8SWSH, BlocksSWSH, boSWSH) => Initialize();
diff --git a/PKHeX.Core/Saves/Substructures/Battle Videos/BV6.cs b/PKHeX.Core/Saves/Substructures/Battle Videos/BV6.cs
index c1d168ada..8fa0b16cf 100644
--- a/PKHeX.Core/Saves/Substructures/Battle Videos/BV6.cs
+++ b/PKHeX.Core/Saves/Substructures/Battle Videos/BV6.cs
@@ -4,7 +4,7 @@
namespace PKHeX.Core
{
- public class BV6 : BattleVideo
+ public sealed class BV6 : BattleVideo
{
internal const int SIZE = 0x2E60;
diff --git a/PKHeX.Core/Saves/Substructures/Battle Videos/BV7.cs b/PKHeX.Core/Saves/Substructures/Battle Videos/BV7.cs
index da02d0e89..57987cf89 100644
--- a/PKHeX.Core/Saves/Substructures/Battle Videos/BV7.cs
+++ b/PKHeX.Core/Saves/Substructures/Battle Videos/BV7.cs
@@ -4,7 +4,7 @@
namespace PKHeX.Core
{
- public class BV7 : BattleVideo
+ public sealed class BV7 : BattleVideo
{
internal const int SIZE = 0x2BC0;
diff --git a/PKHeX.Core/Saves/Substructures/Gen12/G1OverworldSpawner.cs b/PKHeX.Core/Saves/Substructures/Gen12/G1OverworldSpawner.cs
index e73573d61..4ed5fce7c 100644
--- a/PKHeX.Core/Saves/Substructures/Gen12/G1OverworldSpawner.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen12/G1OverworldSpawner.cs
@@ -3,7 +3,7 @@
namespace PKHeX.Core
{
- public class G1OverworldSpawner
+ public sealed class G1OverworldSpawner
{
private readonly SAV1 SAV;
private readonly bool[] EventFlags;
@@ -73,7 +73,7 @@ public G1OverworldSpawner(SAV1 sav)
private FlagPair FlagSquirtle { get; }
private FlagPair FlagCharmander { get; }
- public class FlagPair
+ public sealed class FlagPair
{
public string Name { get; internal set; }
diff --git a/PKHeX.Core/Saves/Substructures/Gen3/HallFame3.cs b/PKHeX.Core/Saves/Substructures/Gen3/HallFame3.cs
index a7b0056e3..4fc2fe352 100644
--- a/PKHeX.Core/Saves/Substructures/Gen3/HallFame3.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen3/HallFame3.cs
@@ -3,7 +3,7 @@
namespace PKHeX.Core
{
- public class HallFame3Entry
+ public sealed class HallFame3Entry
{
private readonly byte[] Parent;
private readonly bool Japanese;
@@ -64,7 +64,7 @@ public static void SetEntries(SAV3 sav, HallFame3Entry[] entries)
}
}
- public class HallFame3PKM
+ public sealed class HallFame3PKM
{
public const int SIZE = 20;
diff --git a/PKHeX.Core/Saves/Substructures/Gen3/PokeBlock3.cs b/PKHeX.Core/Saves/Substructures/Gen3/PokeBlock3.cs
index 5425823eb..a8650b2ae 100644
--- a/PKHeX.Core/Saves/Substructures/Gen3/PokeBlock3.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen3/PokeBlock3.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class PokeBlock3
+ public sealed class PokeBlock3
{
public const int SIZE = 7;
private readonly byte[] Data;
diff --git a/PKHeX.Core/Saves/Substructures/Gen3/PokeBlock3Case.cs b/PKHeX.Core/Saves/Substructures/Gen3/PokeBlock3Case.cs
index d5ca3fe2f..a3a269999 100644
--- a/PKHeX.Core/Saves/Substructures/Gen3/PokeBlock3Case.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen3/PokeBlock3Case.cs
@@ -1,6 +1,6 @@
namespace PKHeX.Core
{
- public class PokeBlock3Case
+ public sealed class PokeBlock3Case
{
private const int Count = 40;
public readonly PokeBlock3[] Blocks;
diff --git a/PKHeX.Core/Saves/Substructures/Gen3/Roamer3.cs b/PKHeX.Core/Saves/Substructures/Gen3/Roamer3.cs
index bafbbad73..19b1445fb 100644
--- a/PKHeX.Core/Saves/Substructures/Gen3/Roamer3.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen3/Roamer3.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class Roamer3 : IContestStats
+ public sealed class Roamer3 : IContestStats
{
private readonly SaveFile SAV;
private readonly int Offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen3/SecretBase3.cs b/PKHeX.Core/Saves/Substructures/Gen3/SecretBase3.cs
index 85de122db..396473eae 100644
--- a/PKHeX.Core/Saves/Substructures/Gen3/SecretBase3.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen3/SecretBase3.cs
@@ -1,9 +1,8 @@
using System;
-using System.Linq;
namespace PKHeX.Core
{
- public class SecretBase3
+ public sealed class SecretBase3
{
private readonly byte[] Data;
private readonly int Offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen3/SecretBase3PKM.cs b/PKHeX.Core/Saves/Substructures/Gen3/SecretBase3PKM.cs
index 54f44f4d0..af829ccd7 100644
--- a/PKHeX.Core/Saves/Substructures/Gen3/SecretBase3PKM.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen3/SecretBase3PKM.cs
@@ -3,7 +3,7 @@
namespace PKHeX.Core
{
- public class SecretBase3PKM
+ public sealed class SecretBase3PKM
{
public uint PID { get; set; }
public int Move1 { get; set; }
diff --git a/PKHeX.Core/Saves/Substructures/Gen3/SecretBase3Team.cs b/PKHeX.Core/Saves/Substructures/Gen3/SecretBase3Team.cs
index 43ae532d1..75591765c 100644
--- a/PKHeX.Core/Saves/Substructures/Gen3/SecretBase3Team.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen3/SecretBase3Team.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class SecretBase3Team
+ public sealed class SecretBase3Team
{
private const int O_PID = 0;
private const int O_Moves = 0x18;
diff --git a/PKHeX.Core/Saves/Substructures/Gen3/ShadowInfo.cs b/PKHeX.Core/Saves/Substructures/Gen3/ShadowInfo.cs
index 74c92a5af..a586cfa22 100644
--- a/PKHeX.Core/Saves/Substructures/Gen3/ShadowInfo.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen3/ShadowInfo.cs
@@ -4,7 +4,7 @@
namespace PKHeX.Core
{
- public class ShadowInfoTableXD
+ public sealed class ShadowInfoTableXD
{
private readonly List Entries;
private readonly int MaxLength;
@@ -56,7 +56,7 @@ public void SetEntry(ShadowInfoEntryXD Entry)
public int Count => Entries.Count;
}
- public class ShadowInfoEntryXD
+ public sealed class ShadowInfoEntryXD
{
public readonly byte[] Data;
internal const int SIZE_ENTRY = 72;
@@ -74,7 +74,7 @@ public class ShadowInfoEntryXD
public bool IsEmpty => Species == 0;
}
- public class ShadowInfoEntryColo
+ public sealed class ShadowInfoEntryColo
{
public readonly byte[] Data;
private const int SIZE_ENTRY = 12;
diff --git a/PKHeX.Core/Saves/Substructures/Gen3/StrategyMemo.cs b/PKHeX.Core/Saves/Substructures/Gen3/StrategyMemo.cs
index eef60cd67..2ac38f4bb 100644
--- a/PKHeX.Core/Saves/Substructures/Gen3/StrategyMemo.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen3/StrategyMemo.cs
@@ -4,7 +4,7 @@
namespace PKHeX.Core
{
- public class StrategyMemo
+ public sealed class StrategyMemo
{
private readonly bool XD;
private const int SIZE_ENTRY = 12;
@@ -51,7 +51,7 @@ public void SetEntry(StrategyMemoEntry entry)
Entries.Add(entry);
}
- public class StrategyMemoEntry
+ public sealed class StrategyMemoEntry
{
public readonly byte[] Data;
private readonly bool XD;
diff --git a/PKHeX.Core/Saves/Substructures/Gen4/HoneyTree.cs b/PKHeX.Core/Saves/Substructures/Gen4/HoneyTree.cs
index d3aa63d69..c60b10b81 100644
--- a/PKHeX.Core/Saves/Substructures/Gen4/HoneyTree.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen4/HoneyTree.cs
@@ -5,7 +5,7 @@ namespace PKHeX.Core
///
/// Honey Tree in Sinnoh (Gen4)
///
- public class HoneyTree
+ public sealed class HoneyTree
{
public const int Size = 8;
diff --git a/PKHeX.Core/Saves/Substructures/Gen4/Poffin4.cs b/PKHeX.Core/Saves/Substructures/Gen4/Poffin4.cs
index a91160b84..75178e860 100644
--- a/PKHeX.Core/Saves/Substructures/Gen4/Poffin4.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen4/Poffin4.cs
@@ -3,7 +3,7 @@
namespace PKHeX.Core
{
- public class Poffin4
+ public sealed class Poffin4
{
public const int SIZE = 8;
public readonly byte[] Data;
diff --git a/PKHeX.Core/Saves/Substructures/Gen4/PoffinCase4.cs b/PKHeX.Core/Saves/Substructures/Gen4/PoffinCase4.cs
index e852d0a5c..dceb21a9a 100644
--- a/PKHeX.Core/Saves/Substructures/Gen4/PoffinCase4.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen4/PoffinCase4.cs
@@ -6,7 +6,7 @@ namespace PKHeX.Core
///
/// Storage for all the trainer has.
///
- public class PoffinCase4
+ public sealed class PoffinCase4
{
private readonly SAV4Sinnoh SAV;
private readonly int Offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen5/BattleSubway5.cs b/PKHeX.Core/Saves/Substructures/Gen5/BattleSubway5.cs
index 098913356..8985d51e8 100644
--- a/PKHeX.Core/Saves/Substructures/Gen5/BattleSubway5.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen5/BattleSubway5.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class BattleSubway5 : SaveBlock
+ public sealed class BattleSubway5 : SaveBlock
{
public BattleSubway5(SAV5 sav, int offset) : base(sav) => Offset = offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen5/CGearBackground.cs b/PKHeX.Core/Saves/Substructures/Gen5/CGearBackground.cs
index 5cdd77ed2..0b6042ccc 100644
--- a/PKHeX.Core/Saves/Substructures/Gen5/CGearBackground.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen5/CGearBackground.cs
@@ -4,7 +4,10 @@
namespace PKHeX.Core
{
- public class CGearBackground
+ ///
+ /// Generation 5 C-Gear Background Image
+ ///
+ public sealed class CGearBackground
{
public const string Extension = "cgb";
public const string Filter = "C-Gear Background|*.cgb";
diff --git a/PKHeX.Core/Saves/Substructures/Gen5/Daycare5.cs b/PKHeX.Core/Saves/Substructures/Gen5/Daycare5.cs
index 22fd0a5a1..db0e7e019 100644
--- a/PKHeX.Core/Saves/Substructures/Gen5/Daycare5.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen5/Daycare5.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class Daycare5 : SaveBlock
+ public sealed class Daycare5 : SaveBlock
{
// struct daycareSlot
// bool32 occupied
diff --git a/PKHeX.Core/Saves/Substructures/Gen5/EntreeForest.cs b/PKHeX.Core/Saves/Substructures/Gen5/EntreeForest.cs
index ac483cca7..bf88aec99 100644
--- a/PKHeX.Core/Saves/Substructures/Gen5/EntreeForest.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen5/EntreeForest.cs
@@ -2,7 +2,10 @@
namespace PKHeX.Core
{
- public class EntreeForest
+ ///
+ /// Generation 5 Entree Forest
+ ///
+ public sealed class EntreeForest
{
///
/// Areas 1 thru 8 have 20 slots.
diff --git a/PKHeX.Core/Saves/Substructures/Gen5/EntreeSlot.cs b/PKHeX.Core/Saves/Substructures/Gen5/EntreeSlot.cs
index 2b2720088..b2d901efd 100644
--- a/PKHeX.Core/Saves/Substructures/Gen5/EntreeSlot.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen5/EntreeSlot.cs
@@ -2,7 +2,10 @@
namespace PKHeX.Core
{
- public class EntreeSlot
+ ///
+ /// Generation 5 slot
+ ///
+ public sealed class EntreeSlot
{
///
/// index
diff --git a/PKHeX.Core/Saves/Substructures/Gen5/MysteryBlock5.cs b/PKHeX.Core/Saves/Substructures/Gen5/MysteryBlock5.cs
index 5757b6828..cbfe81b3c 100644
--- a/PKHeX.Core/Saves/Substructures/Gen5/MysteryBlock5.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen5/MysteryBlock5.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class MysteryBlock5 : SaveBlock
+ public sealed class MysteryBlock5 : SaveBlock
{
private const int FlagStart = 0;
private const int MaxReceivedFlag = 2048;
diff --git a/PKHeX.Core/Saves/Substructures/Gen5/PWTBlock5.cs b/PKHeX.Core/Saves/Substructures/Gen5/PWTBlock5.cs
index c9435f69b..922caeb61 100644
--- a/PKHeX.Core/Saves/Substructures/Gen5/PWTBlock5.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen5/PWTBlock5.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class PWTBlock5 : SaveBlock
+ public sealed class PWTBlock5 : SaveBlock
{
public PWTBlock5(SAV5B2W2 sav, int offset) : base(sav) => Offset = offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen5/PlayerData5.cs b/PKHeX.Core/Saves/Substructures/Gen5/PlayerData5.cs
index 00bb4e7bf..ea1868319 100644
--- a/PKHeX.Core/Saves/Substructures/Gen5/PlayerData5.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen5/PlayerData5.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class PlayerData5 : SaveBlock
+ public sealed class PlayerData5 : SaveBlock
{
public PlayerData5(SAV5 sav, int offset) : base(sav) => Offset = offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen6/BoxLayout6.cs b/PKHeX.Core/Saves/Substructures/Gen6/BoxLayout6.cs
index 17baf001b..0ac4f4c41 100644
--- a/PKHeX.Core/Saves/Substructures/Gen6/BoxLayout6.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen6/BoxLayout6.cs
@@ -1,6 +1,6 @@
namespace PKHeX.Core
{
- public class BoxLayout6 : SaveBlock
+ public sealed class BoxLayout6 : SaveBlock
{
// gfstr5[31] boxNames;
// byte[31] wallpapers;
diff --git a/PKHeX.Core/Saves/Substructures/Gen6/MysteryBlock6.cs b/PKHeX.Core/Saves/Substructures/Gen6/MysteryBlock6.cs
index 315f4fd90..f7aeacd86 100644
--- a/PKHeX.Core/Saves/Substructures/Gen6/MysteryBlock6.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen6/MysteryBlock6.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class MysteryBlock6 : SaveBlock
+ public sealed class MysteryBlock6 : SaveBlock
{
private const int FlagStart = 0;
private const int MaxReceivedFlag = 2048;
diff --git a/PKHeX.Core/Saves/Substructures/Gen6/Puff6.cs b/PKHeX.Core/Saves/Substructures/Gen6/Puff6.cs
index 63c4b5669..30ceaa20d 100644
--- a/PKHeX.Core/Saves/Substructures/Gen6/Puff6.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen6/Puff6.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class Puff6 : SaveBlock
+ public sealed class Puff6 : SaveBlock
{
private const int MaxPuffID = 26; // Supreme Winter Poké Puff
private const int PuffSlots = 100;
@@ -58,7 +58,7 @@ public void Sort(bool reverse = false)
}
- public class BattleBox6 : SaveBlock
+ public sealed class BattleBox6 : SaveBlock
{
public BattleBox6(SaveFile SAV, int offset) : base(SAV) => Offset = offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen6/Record6.cs b/PKHeX.Core/Saves/Substructures/Gen6/Record6.cs
index e04705234..b8fd51baa 100644
--- a/PKHeX.Core/Saves/Substructures/Gen6/Record6.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen6/Record6.cs
@@ -4,7 +4,7 @@
namespace PKHeX.Core
{
- public class Record6 : RecordBlock
+ public sealed class Record6 : RecordBlock
{
public const int RecordCount = 200;
protected override IReadOnlyList RecordMax { get; }
diff --git a/PKHeX.Core/Saves/Substructures/Gen6/SangoInfoBlock.cs b/PKHeX.Core/Saves/Substructures/Gen6/SangoInfoBlock.cs
index 50663d20b..2d5a8f744 100644
--- a/PKHeX.Core/Saves/Substructures/Gen6/SangoInfoBlock.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen6/SangoInfoBlock.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class SangoInfoBlock : SaveBlock
+ public sealed class SangoInfoBlock : SaveBlock
{
public SangoInfoBlock(SaveFile SAV, int offset) : base(SAV) => Offset = offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen6/Situation6.cs b/PKHeX.Core/Saves/Substructures/Gen6/Situation6.cs
index b6fdd8427..ed9650471 100644
--- a/PKHeX.Core/Saves/Substructures/Gen6/Situation6.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen6/Situation6.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class Situation6 : SaveBlock
+ public sealed class Situation6 : SaveBlock
{
public Situation6(SaveFile SAV, int offset) : base(SAV) => Offset = offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen6/TrainerFashion6.cs b/PKHeX.Core/Saves/Substructures/Gen6/TrainerFashion6.cs
index d408f3d35..c61647b67 100644
--- a/PKHeX.Core/Saves/Substructures/Gen6/TrainerFashion6.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen6/TrainerFashion6.cs
@@ -69,7 +69,7 @@ public enum F6Skin
}
}
- public class Fashion6Male : TrainerFashion6
+ public sealed class Fashion6Male : TrainerFashion6
{
public Fashion6Male(byte[] data, int offset)
: base(data, offset) { }
@@ -269,7 +269,7 @@ public enum F6HairStyleFront
}
}
- public class Fashion6Female : TrainerFashion6
+ public sealed class Fashion6Female : TrainerFashion6
{
public Fashion6Female(byte[] data, int offset)
: base(data, offset) { }
diff --git a/PKHeX.Core/Saves/Substructures/Gen7/BattleTree7.cs b/PKHeX.Core/Saves/Substructures/Gen7/BattleTree7.cs
index d56e42cd0..26755ee12 100644
--- a/PKHeX.Core/Saves/Substructures/Gen7/BattleTree7.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen7/BattleTree7.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class BattleTree7 : SaveBlock
+ public sealed class BattleTree7 : SaveBlock
{
public BattleTree7(SAV7 sav, int offset) : base(sav) => Offset = offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen7/Daycare7.cs b/PKHeX.Core/Saves/Substructures/Gen7/Daycare7.cs
index a1c3b9e3a..a8b43c02c 100644
--- a/PKHeX.Core/Saves/Substructures/Gen7/Daycare7.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen7/Daycare7.cs
@@ -1,6 +1,6 @@
namespace PKHeX.Core
{
- public class Daycare7 : SaveBlock
+ public sealed class Daycare7 : SaveBlock
{
public const int DaycareSeedSize = 32; // 128 bits
diff --git a/PKHeX.Core/Saves/Substructures/Gen7/FieldMoveModelSave7.cs b/PKHeX.Core/Saves/Substructures/Gen7/FieldMoveModelSave7.cs
index 7604adcf6..6a4b14251 100644
--- a/PKHeX.Core/Saves/Substructures/Gen7/FieldMoveModelSave7.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen7/FieldMoveModelSave7.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class FieldMoveModelSave7 : SaveBlock
+ public sealed class FieldMoveModelSave7 : SaveBlock
{
public FieldMoveModelSave7(SAV7 sav, int offset) : base(sav) => Offset = offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen7/GP1.cs b/PKHeX.Core/Saves/Substructures/Gen7/GP1.cs
index d1e1497ba..6f6c38f46 100644
--- a/PKHeX.Core/Saves/Substructures/Gen7/GP1.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen7/GP1.cs
@@ -7,7 +7,7 @@ namespace PKHeX.Core
///
/// Go Park Entity transferred from to .
///
- public class GP1
+ public sealed class GP1
{
public const int SIZE = 0x1B0;
public byte[] Data { get; }
diff --git a/PKHeX.Core/Saves/Substructures/Gen7/MyStatus7.cs b/PKHeX.Core/Saves/Substructures/Gen7/MyStatus7.cs
index 632190250..98bdd4d65 100644
--- a/PKHeX.Core/Saves/Substructures/Gen7/MyStatus7.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen7/MyStatus7.cs
@@ -3,7 +3,7 @@
namespace PKHeX.Core
{
- public class MyStatus7 : SaveBlock
+ public sealed class MyStatus7 : SaveBlock
{
public const int GameSyncIDSize = 16; // 64 bits
public const int NexUniqueIDSize = 32; // 128 bits
diff --git a/PKHeX.Core/Saves/Substructures/Gen7/PokeFinder7.cs b/PKHeX.Core/Saves/Substructures/Gen7/PokeFinder7.cs
index c078bd9c6..68cdab9e8 100644
--- a/PKHeX.Core/Saves/Substructures/Gen7/PokeFinder7.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen7/PokeFinder7.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class PokeFinder7 : SaveBlock
+ public sealed class PokeFinder7 : SaveBlock
{
public PokeFinder7(SAV7 sav, int offset) : base(sav) => Offset = offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen7/WB7Records.cs b/PKHeX.Core/Saves/Substructures/Gen7/WB7Records.cs
index 884363c70..61c70bd74 100644
--- a/PKHeX.Core/Saves/Substructures/Gen7/WB7Records.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen7/WB7Records.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class WB7Records : SaveBlock
+ public sealed class WB7Records : SaveBlock
{
public WB7Records(SaveFile sav) : base(sav)
{
diff --git a/PKHeX.Core/Saves/Substructures/Gen7/WormholeInfoReader.cs b/PKHeX.Core/Saves/Substructures/Gen7/WormholeInfoReader.cs
index 61bb3d010..7894ffb8a 100644
--- a/PKHeX.Core/Saves/Substructures/Gen7/WormholeInfoReader.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen7/WormholeInfoReader.cs
@@ -1,6 +1,6 @@
namespace PKHeX.Core
{
- public class WormholeInfoReader
+ public sealed class WormholeInfoReader
{
public readonly SAV7 SAV;
public WormholeInfoReader(SAV7 sav) => SAV = sav;
diff --git a/PKHeX.Core/Saves/Substructures/Gen8/FieldMoveModelSave8.cs b/PKHeX.Core/Saves/Substructures/Gen8/FieldMoveModelSave8.cs
index c3871a912..412d3cdc9 100644
--- a/PKHeX.Core/Saves/Substructures/Gen8/FieldMoveModelSave8.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen8/FieldMoveModelSave8.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class FieldMoveModelSave8 : SaveBlock
+ public sealed class FieldMoveModelSave8 : SaveBlock
{
public FieldMoveModelSave8(SAV8 sav, int offset) : base(sav) => Offset = offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen8/MyStatus8.cs b/PKHeX.Core/Saves/Substructures/Gen8/MyStatus8.cs
index e4c427afe..2471d55cc 100644
--- a/PKHeX.Core/Saves/Substructures/Gen8/MyStatus8.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen8/MyStatus8.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class MyStatus8 : SaveBlock
+ public sealed class MyStatus8 : SaveBlock
{
public MyStatus8(SAV8 sav, int offset) : base(sav) => Offset = offset;
diff --git a/PKHeX.Core/Saves/Substructures/Gen8/Record6.cs b/PKHeX.Core/Saves/Substructures/Gen8/Record6.cs
index b8c976548..5a54805f4 100644
--- a/PKHeX.Core/Saves/Substructures/Gen8/Record6.cs
+++ b/PKHeX.Core/Saves/Substructures/Gen8/Record6.cs
@@ -4,7 +4,7 @@
namespace PKHeX.Core
{
- public class Record8 : RecordBlock
+ public sealed class Record8 : RecordBlock
{
public const int RecordCount = 200;
protected override IReadOnlyList RecordMax { get; }
diff --git a/PKHeX.Core/Saves/Substructures/Inventory/BeanPouch.cs b/PKHeX.Core/Saves/Substructures/Inventory/BeanPouch.cs
index 033b66fb5..4dec90036 100644
--- a/PKHeX.Core/Saves/Substructures/Inventory/BeanPouch.cs
+++ b/PKHeX.Core/Saves/Substructures/Inventory/BeanPouch.cs
@@ -7,7 +7,7 @@ namespace PKHeX.Core
///
/// Reads the bean pouch data from a .
///
- public class BeanPouch
+ public sealed class BeanPouch
{
public const int Count = 15;
public static readonly string[] BeanIndexNames = GetBeanList();
diff --git a/PKHeX.Core/Saves/Substructures/Inventory/InventoryItem.cs b/PKHeX.Core/Saves/Substructures/Inventory/InventoryItem.cs
index bea6783ce..50e95fa89 100644
--- a/PKHeX.Core/Saves/Substructures/Inventory/InventoryItem.cs
+++ b/PKHeX.Core/Saves/Substructures/Inventory/InventoryItem.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class InventoryItem
+ public sealed class InventoryItem
{
public bool New;
public bool FreeSpace;
diff --git a/PKHeX.Core/Saves/Substructures/Mail/Mail2.cs b/PKHeX.Core/Saves/Substructures/Mail/Mail2.cs
index 40da66017..044891d94 100644
--- a/PKHeX.Core/Saves/Substructures/Mail/Mail2.cs
+++ b/PKHeX.Core/Saves/Substructures/Mail/Mail2.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class Mail2 : Mail
+ public sealed class Mail2 : Mail
{
private readonly bool US;
diff --git a/PKHeX.Core/Saves/Substructures/Mail/Mail3.cs b/PKHeX.Core/Saves/Substructures/Mail/Mail3.cs
index 610cb0774..f8148ba91 100644
--- a/PKHeX.Core/Saves/Substructures/Mail/Mail3.cs
+++ b/PKHeX.Core/Saves/Substructures/Mail/Mail3.cs
@@ -3,7 +3,7 @@
namespace PKHeX.Core
{
- public class Mail3 : Mail
+ public sealed class Mail3 : Mail
{
private const int SIZE = 0x24;
private readonly bool JP;
diff --git a/PKHeX.Core/Saves/Substructures/Mail/Mail4.cs b/PKHeX.Core/Saves/Substructures/Mail/Mail4.cs
index 6c7def217..f6479c225 100644
--- a/PKHeX.Core/Saves/Substructures/Mail/Mail4.cs
+++ b/PKHeX.Core/Saves/Substructures/Mail/Mail4.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class Mail4 : Mail
+ public sealed class Mail4 : Mail
{
private const int SIZE = 0x38;
diff --git a/PKHeX.Core/Saves/Substructures/Mail/Mail5.cs b/PKHeX.Core/Saves/Substructures/Mail/Mail5.cs
index 507709a12..337773ccc 100644
--- a/PKHeX.Core/Saves/Substructures/Mail/Mail5.cs
+++ b/PKHeX.Core/Saves/Substructures/Mail/Mail5.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class Mail5 : Mail
+ public sealed class Mail5 : Mail
{
private const int SIZE = 0x38;
diff --git a/PKHeX.Core/Saves/Substructures/Misc/FestaFacility.cs b/PKHeX.Core/Saves/Substructures/Misc/FestaFacility.cs
index 6ddb06ef4..70c39cedb 100644
--- a/PKHeX.Core/Saves/Substructures/Misc/FestaFacility.cs
+++ b/PKHeX.Core/Saves/Substructures/Misc/FestaFacility.cs
@@ -1,9 +1,8 @@
using System;
-using System.Linq;
namespace PKHeX.Core
{
- public class FestaFacility
+ public sealed class FestaFacility
{
private const int SIZE = 0x48;
private readonly byte[] Data;
diff --git a/PKHeX.Core/Saves/Substructures/MysteryGiftAlbum.cs b/PKHeX.Core/Saves/Substructures/MysteryGiftAlbum.cs
index 945f2e7a6..64711f035 100644
--- a/PKHeX.Core/Saves/Substructures/MysteryGiftAlbum.cs
+++ b/PKHeX.Core/Saves/Substructures/MysteryGiftAlbum.cs
@@ -3,7 +3,7 @@
///
/// Structure containing the Mystery Gift Data
///
- public class MysteryGiftAlbum
+ public sealed class MysteryGiftAlbum
{
///
/// Mystery Gift data received
diff --git a/PKHeX.Core/Saves/Substructures/OPower/OPower6.cs b/PKHeX.Core/Saves/Substructures/OPower/OPower6.cs
index bb8a4836c..466dbd848 100644
--- a/PKHeX.Core/Saves/Substructures/OPower/OPower6.cs
+++ b/PKHeX.Core/Saves/Substructures/OPower/OPower6.cs
@@ -3,7 +3,7 @@
namespace PKHeX.Core
{
- public class OPower6 : SaveBlock
+ public sealed class OPower6 : SaveBlock
{
private static readonly OPowerFlagSet[] Mapping =
{
diff --git a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan5.cs b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan5.cs
index 0add558e4..9baa96935 100644
--- a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan5.cs
+++ b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan5.cs
@@ -2,7 +2,7 @@
namespace PKHeX.Core
{
- public class Zukan5 : Zukan
+ public sealed class Zukan5 : Zukan
{
protected override int OFS_SEEN => OFS_CAUGHT + BitSeenSize;
protected override int OFS_CAUGHT => 0x8;
diff --git a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan6.cs b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan6.cs
index 4dcea22a0..c1e67f915 100644
--- a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan6.cs
+++ b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan6.cs
@@ -168,7 +168,7 @@ private bool[] GetBlankLanguageBits(bool value)
}
}
- public class Zukan6AO : Zukan6
+ public sealed class Zukan6AO : Zukan6
{
public Zukan6AO(SaveFile sav, int dex, int langflag) : base(sav, dex, langflag)
{
@@ -197,7 +197,7 @@ public void SetEncounterCount(int index, ushort value)
}
}
- public class Zukan6XY : Zukan6
+ public sealed class Zukan6XY : Zukan6
{
public Zukan6XY(SaveFile sav, int dex, int langflag) : base(sav, dex, langflag)
{
diff --git a/PKHeX.Drawing/Sprites/SpriteBuilder.cs b/PKHeX.Drawing/Sprites/SpriteBuilder.cs
index c7fbeaff1..b416579cf 100644
--- a/PKHeX.Drawing/Sprites/SpriteBuilder.cs
+++ b/PKHeX.Drawing/Sprites/SpriteBuilder.cs
@@ -4,7 +4,7 @@
namespace PKHeX.Drawing
{
- public class SpriteBuilder : ISpriteBuilder
+ public sealed class SpriteBuilder : ISpriteBuilder
{
public static bool ShowEggSpriteAsItem { get; set; } = true;
diff --git a/PKHeX.WinForms/Controls/Slots/CryPlayer.cs b/PKHeX.WinForms/Controls/Slots/CryPlayer.cs
index a91dcd2cf..19f39f9fd 100644
--- a/PKHeX.WinForms/Controls/Slots/CryPlayer.cs
+++ b/PKHeX.WinForms/Controls/Slots/CryPlayer.cs
@@ -5,7 +5,7 @@
namespace PKHeX.WinForms.Controls
{
- public class CryPlayer
+ public sealed class CryPlayer
{
private readonly SoundPlayer Sounds = new SoundPlayer();
diff --git a/PKHeX.WinForms/Controls/Slots/DragManager.cs b/PKHeX.WinForms/Controls/Slots/DragManager.cs
index 125842efb..c2bcaee0b 100644
--- a/PKHeX.WinForms/Controls/Slots/DragManager.cs
+++ b/PKHeX.WinForms/Controls/Slots/DragManager.cs
@@ -3,7 +3,7 @@
namespace PKHeX.WinForms.Controls
{
- public class DragManager
+ public sealed class DragManager
{
public SlotChangeInfo Info { get; private set; }
public event DragEventHandler RequestExternalDragDrop;
diff --git a/PKHeX.WinForms/Controls/Slots/SlotChangeInfo.cs b/PKHeX.WinForms/Controls/Slots/SlotChangeInfo.cs
index 9678d5505..fe8be732c 100644
--- a/PKHeX.WinForms/Controls/Slots/SlotChangeInfo.cs
+++ b/PKHeX.WinForms/Controls/Slots/SlotChangeInfo.cs
@@ -2,7 +2,7 @@
namespace PKHeX.WinForms.Controls
{
- public class SlotChangeInfo
+ public sealed class SlotChangeInfo
{
public bool LeftMouseIsDown { get; set; }
public bool DragDropInProgress { get; set; }
diff --git a/PKHeX.WinForms/Controls/Slots/SlotHoverHandler.cs b/PKHeX.WinForms/Controls/Slots/SlotHoverHandler.cs
index 9137b1dbf..4ddb455b0 100644
--- a/PKHeX.WinForms/Controls/Slots/SlotHoverHandler.cs
+++ b/PKHeX.WinForms/Controls/Slots/SlotHoverHandler.cs
@@ -10,7 +10,7 @@ namespace PKHeX.WinForms.Controls
///
/// Handles Hovering operations for an editor, where only one (1) slot can be animated at a given time when hovering over it.
///
- public class SlotHoverHandler : IDisposable
+ public sealed class SlotHoverHandler : IDisposable
{
public DrawConfig Draw { private get; set; }
public bool GlowHover { private get; set; } = true;
diff --git a/PKHeX.WinForms/Controls/Slots/SlotTrackerImage.cs b/PKHeX.WinForms/Controls/Slots/SlotTrackerImage.cs
index ea110b908..e6143e65d 100644
--- a/PKHeX.WinForms/Controls/Slots/SlotTrackerImage.cs
+++ b/PKHeX.WinForms/Controls/Slots/SlotTrackerImage.cs
@@ -2,7 +2,7 @@
namespace PKHeX.WinForms.Controls
{
- public class SlotTrackerImage
+ public sealed class SlotTrackerImage
{
public Image OriginalBackground { get; set; }
public Image CurrentBackground { get; set; }
diff --git a/PKHeX.WinForms/Controls/Slots/SummaryPreviewer.cs b/PKHeX.WinForms/Controls/Slots/SummaryPreviewer.cs
index d25a50267..b74a941d2 100644
--- a/PKHeX.WinForms/Controls/Slots/SummaryPreviewer.cs
+++ b/PKHeX.WinForms/Controls/Slots/SummaryPreviewer.cs
@@ -4,7 +4,7 @@
namespace PKHeX.WinForms.Controls
{
- public class SummaryPreviewer
+ public sealed class SummaryPreviewer
{
private readonly ToolTip ShowSet = new ToolTip { InitialDelay = 200, IsBalloon = false };
diff --git a/PKHeX.WinForms/Subforms/Misc/PropertyComparer.cs b/PKHeX.WinForms/Subforms/Misc/PropertyComparer.cs
index df244f96a..b3c3ee722 100644
--- a/PKHeX.WinForms/Subforms/Misc/PropertyComparer.cs
+++ b/PKHeX.WinForms/Subforms/Misc/PropertyComparer.cs
@@ -6,7 +6,7 @@
namespace PKHeX.WinForms
{
- public class PropertyComparer : IComparer
+ public sealed class PropertyComparer : IComparer
{
private readonly IComparer comparer;
private PropertyDescriptor propertyDescriptor;
diff --git a/PKHeX.WinForms/Subforms/Misc/SortableBindingList.cs b/PKHeX.WinForms/Subforms/Misc/SortableBindingList.cs
index 6edd935fb..dd8e726d3 100644
--- a/PKHeX.WinForms/Subforms/Misc/SortableBindingList.cs
+++ b/PKHeX.WinForms/Subforms/Misc/SortableBindingList.cs
@@ -4,7 +4,7 @@
namespace PKHeX.WinForms
{
- public class SortableBindingList : BindingList
+ public abstract class SortableBindingList : BindingList
{
private readonly Dictionary> comparers;
private bool isSorted;
diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen6/SAV_SecretBase.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen6/SAV_SecretBase.cs
index 34a40bd66..327cb217a 100644
--- a/PKHeX.WinForms/Subforms/Save Editors/Gen6/SAV_SecretBase.cs
+++ b/PKHeX.WinForms/Subforms/Save Editors/Gen6/SAV_SecretBase.cs
@@ -555,7 +555,7 @@ private void B_Export_Click(object sender, EventArgs e)
}
- public class SecretBase6
+ public sealed class SecretBase6
{
private readonly byte[] Data;
private readonly int Offset;
diff --git a/PKHeX.WinForms/Util/WinFormsTranslator.cs b/PKHeX.WinForms/Util/WinFormsTranslator.cs
index f383beb10..524b24be2 100644
--- a/PKHeX.WinForms/Util/WinFormsTranslator.cs
+++ b/PKHeX.WinForms/Util/WinFormsTranslator.cs
@@ -199,7 +199,7 @@ public static void RemoveAll(string defaultLanguage, params string[] banlist)
}
}
- public class TranslationContext
+ public sealed class TranslationContext
{
public bool AddNew { private get; set; }
public bool RemoveUsedKeys { private get; set; }