private void VerifyAwakenedValues(LegalityAnalysis data, IAwakened awakened) { var pkm = data.pkm; int sum = pkm.EVTotal; if (sum != 0) { data.AddLine(GetInvalid(LEffortShouldBeZero)); } if (!awakened.AwakeningAllValid()) { data.AddLine(GetInvalid(LAwakenedCap)); } var enc = data.EncounterMatch; if (enc is EncounterSlot7GO && Enumerable.Range(0, 6).Select(awakened.GetAV).Any(z => z < 2)) { data.AddLine(GetInvalid(string.Format(LAwakenedShouldBeValue, 2))); // go park transfers have 2 AVs for all stats. } else if (awakened.AwakeningSum() == 0 && !enc.IsWithinRange(pkm)) { data.AddLine(Get(LAwakenedEXPIncreased, Severity.Fishy)); } }
private void VerifyAwakenedValues(LegalityAnalysis data, IAwakened awakened) { var pk = data.Entity; int sum = pk.EVTotal; if (sum != 0) { data.AddLine(GetInvalid(LEffortShouldBeZero)); } if (!awakened.AwakeningAllValid()) { data.AddLine(GetInvalid(LAwakenedCap)); } var enc = data.EncounterMatch; // go park transfers have 2 AVs for all stats. if (enc is EncounterSlot7GO) { Span <byte> avs = stackalloc byte[6]; awakened.GetAVs(avs); foreach (var av in avs) { if (av >= 2) { continue; } data.AddLine(GetInvalid(string.Format(LAwakenedShouldBeValue, 2))); break; } return; } if (awakened.AwakeningSum() == 0 && !enc.IsWithinEncounterRange(pk)) { data.AddLine(Get(LAwakenedEXPIncreased, Severity.Fishy)); } }