From 00c0aefe00c72bfba6d5073fac16e91be7488a60 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sat, 13 Jan 2024 21:08:45 -0800 Subject: [PATCH] Add simple alolan evo trim for HOME+ permit Closes #4159 --- .../Evolutions/EvolutionGroup/EvolutionGroupHOME.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/PKHeX.Core/Legality/Evolutions/EvolutionGroup/EvolutionGroupHOME.cs b/PKHeX.Core/Legality/Evolutions/EvolutionGroup/EvolutionGroupHOME.cs index 68db850f5..9cd7d761c 100644 --- a/PKHeX.Core/Legality/Evolutions/EvolutionGroup/EvolutionGroupHOME.cs +++ b/PKHeX.Core/Legality/Evolutions/EvolutionGroup/EvolutionGroupHOME.cs @@ -56,11 +56,22 @@ public int Devolve(Span result, PKM pk, EvolutionOrigin enc) public int Evolve(Span result, PKM pk, EvolutionOrigin enc, EvolutionHistory history) { + if (IsUnavailableEvoChain(pk.Species, pk.Form)) + result = result[..1]; // Only allow the highest (current). if (CheckAllAdjacent(pk, enc)) return EvolveMulti(result, pk, enc, history); return EvolveSingle(result, pk, enc, history); } + private static bool IsUnavailableEvoChain(ushort species, byte form) => species switch + { + // Split-evolution Alolans can't be reached in any game Gen8+. Must have been via Gen7. + (int)Species.Raichu when form == 1 => true, + (int)Species.Exeggutor when form == 1 => true, + (int)Species.Marowak when form == 1 => true, + _ => false, + }; + private int DevolveMulti(Span result, PKM pk, in EvolutionOrigin enc) { int present = 1;