diff --git a/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterGift9a.cs b/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterGift9a.cs index b364de0be..4eda4ab63 100644 --- a/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterGift9a.cs +++ b/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterGift9a.cs @@ -124,25 +124,17 @@ private void SetPINGA(PA9 pk, EncounterCriteria criteria, PersonalInfo9ZA pi) private void SetMoves(PA9 pk, PersonalInfo9ZA pi, byte level) { var (learn, plus) = LearnSource9ZA.GetLearnsetAndPlus(Species, Form); - Span moves = stackalloc ushort[4]; + PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level); if (Moves.HasMoves) { pk.SetMoves(Moves); - pk.GetMoves(moves); - PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level); return; } - if (!IsAlpha) - { - learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); - PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level); - } - else - { - learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); - PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level, moves[0] = pi.AlphaMove); - } + Span moves = stackalloc ushort[4]; + learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); + if (pk.IsAlpha) + PlusRecordApplicator.SetPlusFlagsSpecific(pk, pi, moves[0] = pi.AlphaMove); pk.SetMoves(moves); } diff --git a/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterSlot9a.cs b/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterSlot9a.cs index 9c9a40138..478a39a2b 100644 --- a/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterSlot9a.cs +++ b/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterSlot9a.cs @@ -79,17 +79,12 @@ private void SetPINGA(PA9 pk, EncounterCriteria criteria, PersonalInfo9ZA pi) private void SetMoves(PA9 pk, PersonalInfo9ZA pi, byte level) { var (learn, plus) = LearnSource9ZA.GetLearnsetAndPlus(Species, Form); + PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level); + Span moves = stackalloc ushort[4]; - if (!IsAlpha) - { - learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); - PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level); - } - else - { - learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); - PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level, moves[0] = pi.AlphaMove); - } + learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); + if (pk.IsAlpha) + PlusRecordApplicator.SetPlusFlagsSpecific(pk, pi, moves[0] = pi.AlphaMove); pk.SetMoves(moves); } diff --git a/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterStatic9a.cs b/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterStatic9a.cs index b6b5b6442..8d3aa5fd6 100644 --- a/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterStatic9a.cs +++ b/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterStatic9a.cs @@ -101,25 +101,17 @@ private void SetPINGA(PA9 pk, EncounterCriteria criteria, PersonalInfo9ZA pi) private void SetMoves(PA9 pk, PersonalInfo9ZA pi, byte level) { var (learn, plus) = LearnSource9ZA.GetLearnsetAndPlus(Species, Form); - Span moves = stackalloc ushort[4]; + PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level); if (Moves.HasMoves) { pk.SetMoves(Moves); - pk.GetMoves(moves); - PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level); return; } - if (!IsAlpha) - { - learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); - PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level); - } - else - { - learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); - PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level, moves[0] = pi.AlphaMove); - } + Span moves = stackalloc ushort[4]; + learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); + if (pk.IsAlpha) + PlusRecordApplicator.SetPlusFlagsSpecific(pk, pi, moves[0] = pi.AlphaMove); pk.SetMoves(moves); } diff --git a/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterTrade9a.cs b/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterTrade9a.cs index 4b78d1fdb..1b075ba26 100644 --- a/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterTrade9a.cs +++ b/PKHeX.Core/Legality/Encounters/Templates/Gen9a/EncounterTrade9a.cs @@ -127,25 +127,17 @@ private void SetPINGA(PA9 pk, EncounterCriteria criteria, PersonalInfo9ZA pi) private void SetMoves(PA9 pk, PersonalInfo9ZA pi, byte level) { var (learn, plus) = LearnSource9ZA.GetLearnsetAndPlus(Species, Form); - Span moves = stackalloc ushort[4]; + PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level); if (Moves.HasMoves) { pk.SetMoves(Moves); - pk.GetMoves(moves); - PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level); return; } - if (!IsAlpha) - { - learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); - PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level); - } - else - { - learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); - PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level, moves[0] = pi.AlphaMove); - } + Span moves = stackalloc ushort[4]; + learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); + if (pk.IsAlpha) + PlusRecordApplicator.SetPlusFlagsSpecific(pk, pi, moves[0] = pi.AlphaMove); pk.SetMoves(moves); } diff --git a/PKHeX.Core/Legality/Evolutions/EvolutionGroup/EvolutionGroupHOME2.cs b/PKHeX.Core/Legality/Evolutions/EvolutionGroup/EvolutionGroupHOME2.cs index 455c2bb50..aa9062b10 100644 --- a/PKHeX.Core/Legality/Evolutions/EvolutionGroup/EvolutionGroupHOME2.cs +++ b/PKHeX.Core/Legality/Evolutions/EvolutionGroup/EvolutionGroupHOME2.cs @@ -83,7 +83,6 @@ public int Evolve(Span result, PKM pk, EvolutionOrigin enc, Evoluti private static bool IsUnavailableEvoChain(ushort species, byte form) => species switch { - // TODO DLC ZA: ALT Evolutions // Split-evolution Alolans can't be reached in any game Gen8+. Must have been via Gen7. (int)Raichu when form == 1 => true, (int)Exeggutor when form == 1 => true, @@ -174,7 +173,7 @@ private static void RevertMutatedForms(ref EvoCriteria evo) // Eager check: only reversions are if form is not 0. if (form == 0) return; - // TODO DLC ZA: Is this necessary? + // None present in Z-A. //if (species is (ushort)Dialga or (ushort)Palkia or (ushort)Arceus or (ushort)Silvally) // evo = evo with { Form = 0 }; // Normal if (FormInfo.IsBattleOnlyForm(species, form, Latest.Generation)) diff --git a/PKHeX.Core/Legality/Verifiers/LegendsZAVerifier.cs b/PKHeX.Core/Legality/Verifiers/LegendsZAVerifier.cs index 717c3b6aa..2c005a032 100644 --- a/PKHeX.Core/Legality/Verifiers/LegendsZAVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/LegendsZAVerifier.cs @@ -116,13 +116,9 @@ private static void GetInitialMoves(IEncounter9a enc, PA9 pa9, Span move } var level = Math.Max((byte)1, pa9.MetLevel); var learn = LearnSource9ZA.Instance.GetLearnset(enc.Species, enc.Form); - if (!enc.IsAlpha) - { - learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); - return; - } learn.SetEncounterMovesBackwards(level, moves, sameDescend: false); - moves[0] = PersonalTable.ZA[enc.Species, enc.Form].AlphaMove; + if (enc.IsAlpha) + moves[0] = PersonalTable.ZA[enc.Species, enc.Form].AlphaMove; } private void CheckFlagsTM(LegalityAnalysis data, PA9 pa9) diff --git a/PKHeX.Core/MysteryGifts/WA9.cs b/PKHeX.Core/MysteryGifts/WA9.cs index 42fd3a3a4..c734eb3ad 100644 --- a/PKHeX.Core/MysteryGifts/WA9.cs +++ b/PKHeX.Core/MysteryGifts/WA9.cs @@ -489,13 +489,12 @@ public override PA9 ConvertToPKM(ITrainerInfo tr, EncounterCriteria criteria) private void SetMoves(byte currentLevel, PA9 pk, PersonalInfo9ZA pi) { var (learn, plus) = LearnSource9ZA.GetLearnsetAndPlus(Species, Form); - if (Move1 == 0) // Just in case they forget to set moves on an event. - { - Span moves = stackalloc ushort[4]; - learn.SetEncounterMoves(currentLevel, moves); - pk.SetMoves(moves); - } PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, currentLevel); + if (Move1 != 0) // Just in case they forget to set moves on an event. + return; + Span moves = stackalloc ushort[4]; + learn.SetEncounterMoves(currentLevel, moves); + pk.SetMoves(moves); } private DateOnly GetSuggestedDate() diff --git a/PKHeX.Core/PKM/HOME/GameDataPA9.cs b/PKHeX.Core/PKM/HOME/GameDataPA9.cs index d034c4c6a..daf6603de 100644 --- a/PKHeX.Core/PKM/HOME/GameDataPA9.cs +++ b/PKHeX.Core/PKM/HOME/GameDataPA9.cs @@ -279,6 +279,6 @@ private void PopulateFromCore(PKH pkh) Ability = (ushort)pi.GetAbilityAtIndex(index); var level = Experience.GetLevel(pkh.EXP, pi.EXPGrowth); - this.ResetMoves(pkh.Species, pkh.Form, level, LearnSource9ZA.Instance, EntityContext.Gen9); + this.ResetMoves(pkh.Species, pkh.Form, level, LearnSource9ZA.Instance, EntityContext.Gen9a); } }