/// <summary> /// Modifies the provided <see cref="pk"/> to the specifications required by <see cref="set"/>. /// </summary> /// <param name="pk">Converted final pkm to apply details to</param> /// <param name="set">Set details required</param> /// <param name="unconverted">Original pkm data</param> /// <param name="handler">Trainer to handle the Pokémon</param> /// <param name="enc">Encounter details matched to the Pokémon</param> private static void ApplySetDetails(PKM pk, IBattleTemplate set, PKM unconverted, ITrainerInfo handler, IEncounterable enc) { int Form = set.FormIndex; var pidiv = MethodFinder.Analyze(pk); var abilitypref = GetAbilityPreference(pk, enc); pk.SetVersion(unconverted); // Preemptive Version setting pk.SetSpeciesLevel(set, Form, enc); pk.SetRecordFlags(set.Moves); pk.SetMovesEVs(set); pk.SetHandlerandMemory(handler); pk.SetNatureAbility(set, abilitypref); pk.GetSuggestedTracker(); pk.SetIVsPID(set, pidiv.Type, set.HiddenPowerType, unconverted); pk.SetHeldItem(set); pk.SetHyperTrainingFlags(set); // Hypertrain pk.SetEncryptionConstant(enc); pk.FixFatefulFlag(enc); pk.SetShinyBoolean(set.Shiny, enc, set is RegenTemplate s ? s.ShinyType : Shiny.Random); pk.FixGender(set); pk.SetSuggestedRibbons(SetAllLegalRibbons); pk.SetSuggestedMemories(); pk.SetHTLanguage(); pk.SetDynamaxLevel(); pk.SetFriendship(enc); pk.SetBelugaValues(); pk.FixEdgeCases(); pk.SetSuggestedBall(SetMatchingBalls, ForceSpecifiedBall, set is RegenTemplate b ? b.Ball : Ball.None); pk.ApplyMarkings(UseMarkings, UseCompetitiveMarkings); }
/// <summary> /// Modifies the provided <see cref="pk"/> to the specifications required by <see cref="set"/>. /// </summary> /// <param name="pk">Converted final pkm to apply details to</param> /// <param name="set">Set details required</param> /// <param name="Form">Alternate form required</param> /// <param name="unconverted">Original pkm data</param> /// <param name="handler">Trainer to handle the Pokémon</param> /// <param name="enc">Encounter details matched to the Pokémon</param> private static void ApplySetDetails(PKM pk, ShowdownSet set, int Form, PKM unconverted, ITrainerInfo handler, IEncounterable enc) { var pidiv = MethodFinder.Analyze(pk); var abilitypref = GetAbilityPreference(pk, enc); pk.SetVersion(unconverted); // Preemptive Version setting pk.SetSpeciesLevel(set, Form, enc); pk.SetRecordFlags(set.Moves); pk.SetMovesEVsItems(set); pk.SetHandlerandMemory(handler); pk.SetNatureAbility(set, abilitypref); pk.GetSuggestedTracker(); pk.SetIVsPID(set, pidiv.Type, set.HiddenPowerType, unconverted); pk.SetHyperTrainingFlags(set); // Hypertrain pk.SetEncryptionConstant(enc); pk.FixFatefulFlag(enc); pk.SetShinyBoolean(set.Shiny, enc); pk.FixGender(set); pk.SetSuggestedRibbons(SetAllLegalRibbons); pk.SetSuggestedMemories(); pk.SetHTLanguage(); pk.SetDynamaxLevel(); pk.SetSuggestedBall(SetMatchingBalls); pk.ApplyMarkings(UseMarkings, UseCompetitiveMarkings); pk.SetHappiness(enc); pk.SetBelugaValues(); pk.FixEdgeCases(); }