using System;
using PKHeX.Core;

namespace PKHeX.WinForms.Controls
{
    public partial class PKMEditor
    {
        private void PopulateFieldsPK3()
        {
            if (Entity is not G3PKM pk3)
                throw new FormatException(nameof(Entity));

            LoadMisc1(pk3);
            LoadMisc2(pk3);
            LoadMisc3(pk3);

            CB_Ability.SelectedIndex = pk3.AbilityBit && CB_Ability.Items.Count > 1 ? 1 : 0;
            if (pk3 is IShadowPKM s)
                LoadShadow3(s);

            LoadPartyStats(pk3);
            UpdateStats();
        }

        private G3PKM PreparePK3()
        {
            if (Entity is not G3PKM pk3)
                throw new FormatException(nameof(Entity));

            SaveMisc1(pk3);
            SaveMisc2(pk3);
            SaveMisc3(pk3);

            pk3.AbilityBit = CB_Ability.SelectedIndex != 0;
            if (Entity is IShadowPKM ck3)
                SaveShadow3(ck3);

            SavePartyStats(pk3);
            pk3.FixMoves();
            pk3.RefreshChecksum();
            return pk3;
        }
    }
}
