Example #1
0
        /// <summary>
        /// Applies junk data to a <see cref="SaveFile.BlankPKM"/>, which is preferable to a completely empty entity.
        /// </summary>
        /// <param name="pk">Blank data</param>
        /// <param name="tr">Trainer info to apply</param>
        public static void TemplateFields(PKM pk, ITrainerInfo tr)
        {
            pk.Move1 = (int)Move.Pound;
            pk.HealPP();
            pk.Ball    = 4;
            pk.MetDate = DateTime.Today;

            if (tr.Game >= 0)
            {
                pk.Version = tr.Game;
            }

            pk.Species  = GetTemplateSpecies(pk, tr);
            pk.Language = GetTemplateLanguage(tr);
            pk.Gender   = pk.GetSaneGender();

            pk.ClearNickname();

            pk.OT_Name   = tr.OT;
            pk.OT_Gender = tr.Gender;
            pk.TID       = tr.TID;
            pk.SID       = tr.SID;
            if (tr is IRegionOrigin o && pk is IRegionOrigin gt)
            {
                gt.ConsoleRegion = o.ConsoleRegion;
                gt.Country       = o.Country;
                gt.Region        = o.Region;
            }

            ApplyTrashBytes(pk, tr);
            pk.RefreshChecksum();
        }
Example #2
0
        /// <summary>
        /// Applies junk data to a <see cref="SaveFile.BlankPKM"/>, which is preferable to a completely empty entity.
        /// </summary>
        /// <param name="pk">Blank data</param>
        /// <param name="tr">Trainer info to apply</param>
        public static void TemplateFields(PKM pk, ITrainerInfo tr)
        {
            pk.Move1    = 1;
            pk.Move1_PP = 40;
            pk.Ball     = 4;
            pk.MetDate  = DateTime.Today;

            if (tr.Game >= 0)
            {
                pk.Version = tr.Game;
            }
            int spec = ((GameVersion)pk.Version).GetMaxSpeciesID();

            if (spec <= 0)
            {
                spec = pk.MaxSpeciesID;
            }
            pk.Species = spec;
            var lang = tr.Language;

            if (lang <= 0)
            {
                lang = (int)LanguageID.English;
            }
            pk.Language = lang;
            pk.Gender   = pk.GetSaneGender();

            pk.ClearNickname();

            pk.OT_Name   = tr.OT;
            pk.OT_Gender = tr.Gender;
            pk.TID       = tr.TID;
            pk.SID       = tr.SID;
            if (tr.ConsoleRegion >= 0)
            {
                pk.ConsoleRegion = tr.ConsoleRegion;
                pk.Country       = tr.Country;
                pk.Region        = tr.SubRegion;
            }

            // Copy OT trash bytes for sensitive games (Gen1/2)
            if (pk is GBPKM pk12)
            {
                switch (tr)
                {
                case SAV1 s1:
                    pk12.OT_Trash = s1.OT_Trash;
                    break;

                case SAV2 s2:
                    pk12.OT_Trash = s2.OT_Trash;
                    break;
                }
            }

            pk.RefreshChecksum();
        }
Example #3
0
        /// <summary>
        /// Applies junk data to a <see cref="SaveFile.BlankPKM"/>, which is preferable to a completely empty entity.
        /// </summary>
        /// <param name="pk">Blank data</param>
        /// <param name="tr">Trainer info to apply</param>
        public static void TemplateFields(PKM pk, ITrainerInfo tr)
        {
            pk.Move1 = (int)Move.Pound;
            pk.HealPP();
            pk.Ball    = 4;
            pk.MetDate = DateTime.Today;

            if (tr.Game >= 0)
            {
                pk.Version = tr.Game;
            }
            int species = tr is IGameValueLimit s ? s.MaxSpeciesID : ((GameVersion)pk.Version).GetMaxSpeciesID();

            if (species <= 0)
            {
                species = pk.MaxSpeciesID;
            }
            pk.Species = species;
            var lang = tr.Language;

            if (lang <= 0)
            {
                lang = (int)LanguageID.English;
            }
            pk.Language = lang;
            pk.Gender   = pk.GetSaneGender();

            pk.ClearNickname();

            pk.OT_Name   = tr.OT;
            pk.OT_Gender = tr.Gender;
            pk.TID       = tr.TID;
            pk.SID       = tr.SID;
            if (tr is IRegionOrigin o && pk is IRegionOrigin gt)
            {
                gt.ConsoleRegion = o.ConsoleRegion;
                gt.Country       = o.Country;
                gt.Region        = o.Region;
            }

            // Copy OT trash bytes for sensitive games (Gen1/2)
            if (pk is GBPKM pk12)
            {
                switch (tr)
                {
                case SAV1 s1:
                    pk12.OT_Trash = s1.OT_Trash;
                    break;

                case SAV2 s2:
                    pk12.OT_Trash = s2.OT_Trash;
                    break;
                }
            }

            pk.RefreshChecksum();
        }
Example #4
0
 /// <summary>
 /// Sets the <see cref="PKM.Nickname"/> to the provided value.
 /// </summary>
 /// <param name="pk">Pokémon to modify.</param>
 /// <param name="nick"><see cref="PKM.Nickname"/> to set. If no nickname is provided, the <see cref="PKM.Nickname"/> is set to the default value for its current language and format.</param>
 public static void SetNickname(this PKM pk, string nick)
 {
     if (string.IsNullOrWhiteSpace(nick))
     {
         pk.ClearNickname();
         return;
     }
     pk.IsNicknamed = true;
     pk.Nickname    = nick;
 }
Example #5
0
        /// <summary>
        /// Applies junk data to a <see cref="SaveFile.BlankPKM"/>, which is preferable to a completely empty entity.
        /// </summary>
        /// <param name="pk">Blank data</param>
        /// <param name="tr">Trainer info to apply</param>
        public static void TemplateFields(PKM pk, ITrainerInfo tr)
        {
            pk.Move1    = 1;
            pk.Move1_PP = 40;
            pk.Ball     = 4;
            pk.MetDate  = DateTime.Today;

            if (tr.Game >= 0)
            {
                pk.Version = tr.Game;
            }
            int spec = ((GameVersion)pk.Version).GetMaxSpeciesID();

            if (spec <= 0)
            {
                spec = pk.MaxSpeciesID;
            }
            pk.Species = spec;
            var lang = tr.Language;

            if (lang <= 0)
            {
                lang = (int)LanguageID.English;
            }
            pk.Language = lang;

            pk.ClearNickname();

            pk.OT_Name   = tr.OT;
            pk.OT_Gender = tr.Gender;
            pk.TID       = tr.TID;
            pk.SID       = tr.SID;
            if (tr.ConsoleRegion != 0)
            {
                pk.ConsoleRegion = tr.ConsoleRegion;
                pk.Country       = tr.Country;
                pk.Region        = tr.SubRegion;
            }

            // Copy OT trash bytes for sensitive games (Gen1/2)
            if (tr is SAV1 s1 && pk is PK1 p1)
            {
                p1.OT_Trash = s1.OT_Trash;
            }