示例#1
0
    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));
        }
    }