namespace PKHeX.Core
{
public class SlotChange : StorageSlotOffset
{
/// Parent of the object that initiated the slot change.
public object Parent { get; set; }
/// Original Data of the slot.
public byte[] OriginalData { get; set; }
public int Slot { get; set; } = -1;
public int Box { get; set; } = -1;
public PKM PKM { get; set; }
public bool IsParty => IsPartyFormat;
public bool IsValid => Slot > -1 && (Box > -1 || IsParty);
public bool Editable { get; set; }
public SlotChange() { }
public SlotChange(SlotChange info, SaveFile sav)
{
Box = info.Box;
Slot = info.Slot;
Offset = info.Offset;
PKM = sav.GetStoredSlot(info.Offset);
}
public SlotChange GetInverseData(SaveFile sav) => new SlotChange(this, sav);
}
}