diff --git a/PKHeX.Core/PKM/PKM.cs b/PKHeX.Core/PKM/PKM.cs index a2972d0e7..eb8c9e0a8 100644 --- a/PKHeX.Core/PKM/PKM.cs +++ b/PKHeX.Core/PKM/PKM.cs @@ -913,6 +913,11 @@ public void ClearInvalidMoves() } if (invalid == 0) return; + if (invalid == 4) // no moves remain + { + moves[0] = 1; // Pound + Move1_PP = getMovePP(1, Move1_PPUps); + } Moves = moves; FixMoves(); diff --git a/PKHeX.Core/Saves/SaveUtil.cs b/PKHeX.Core/Saves/SaveUtil.cs index 3be7d331b..65b177a49 100644 --- a/PKHeX.Core/Saves/SaveUtil.cs +++ b/PKHeX.Core/Saves/SaveUtil.cs @@ -1076,10 +1076,7 @@ public static bool checkCompatible(SaveFile SAV, PKM pk) if (pk.OT_Name.Length > SAV.OTLength) pk.OT_Name = pk.OT_Name.Substring(0, SAV.OTLength); if (pk.Moves.Any(move => move > SAV.MaxMoveID)) - { - pk.Moves = pk.Moves.Select(move => move <= SAV.MaxMoveID ? move : 0).ToArray(); - pk.FixMoves(); - } + pk.ClearInvalidMoves(); if (pk.EVs.Any(ev => ev > SAV.MaxEV)) pk.EVs = pk.EVs.Select(ev => Math.Min(SAV.MaxEV, ev)).ToArray(); if (pk.IVs.Any(ev => ev > SAV.MaxEV))