From cf574337e9d6fbb277b18121b888ef6bdf5d3433 Mon Sep 17 00:00:00 2001 From: Kurt Date: Wed, 14 Aug 2019 16:35:25 -0700 Subject: [PATCH] Rewrite encounter move suggestion logic more straightforward logic flow, don't repeat same <= 2 comparison --- PKHeX.Core/Legality/Analysis.cs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/PKHeX.Core/Legality/Analysis.cs b/PKHeX.Core/Legality/Analysis.cs index 16a761618..b0653f0e2 100644 --- a/PKHeX.Core/Legality/Analysis.cs +++ b/PKHeX.Core/Legality/Analysis.cs @@ -422,11 +422,20 @@ public int[] GetSuggestedMoves(bool tm, bool tutor, bool reminder) return new int[4]; if (pkm.IsEgg && pkm.Format <= 5) // pre relearn return Legal.GetBaseEggMoves(pkm, pkm.Species, (GameVersion)pkm.Version, pkm.CurrentLevel); - if (!(tm || tutor || reminder) && (Info.Generation <= 2 || pkm.Species == EncounterOriginal.Species)) + + if (!tm && !tutor && !reminder) { - var lvl = Info.Generation <= 2 && pkm.Format >= 7 ? pkm.Met_Level : pkm.CurrentLevel; - var ver = Info.Generation <= 2 && EncounterOriginal is IVersion v ? v.Version : (GameVersion)pkm.Version; - return MoveLevelUp.GetEncounterMoves(pkm, lvl, ver); + // try to give current moves + if (Info.Generation <= 2) + { + var lvl = pkm.Format >= 7 ? pkm.Met_Level : pkm.CurrentLevel; + var ver = EncounterOriginal is IVersion v ? v.Version : (GameVersion)pkm.Version; + return MoveLevelUp.GetEncounterMoves(EncounterOriginal.Species, 0, lvl, ver); + } + if (pkm.Species == EncounterOriginal.Species) + { + return MoveLevelUp.GetEncounterMoves(pkm.Species, pkm.AltForm, pkm.CurrentLevel, (GameVersion)pkm.Version); + } } var evos = Info.EvoChainsAllGens; return Legal.GetValidMoves(pkm, evos, Tutor: tutor, Machine: tm, MoveReminder: reminder).Skip(1).ToArray(); // skip move 0