Пример #1
0
        /// <summary>
        /// Sets all ribbon flags according to a legality report.
        /// </summary>
        /// <param name="pk">Pokémon to modify</param>
        /// <param name="allValid">Set all valid ribbons only</param>
        public static void SetSuggestedRibbons(this PKM pk, IEncounterable enc, bool allValid = true)
        {
            if (allValid)
            {
                RibbonApplicator.SetAllValidRibbons(pk);
                if (pk is PK8 pk8 && pk8.Species != (int)Species.Shedinja && pk8.GetRandomValidMark(enc, out var mark))
                {
                    pk8.SetRibbonIndex(mark);
                }
            }
            string report = new LegalityAnalysis(pk).Report();

            if (report.Contains(string.Format(LegalityCheckStrings.LRibbonFMissing_0, "")))
            {
                var val            = string.Format(LegalityCheckStrings.LRibbonFMissing_0, "");
                var ribbonList     = GetRequiredRibbons(report, val);
                var missingRibbons = GetRibbonsRequired(pk, ribbonList);
                SetRibbonValues(pk, missingRibbons, 0, true);
            }
            if (report.Contains(string.Format(LegalityCheckStrings.LRibbonFInvalid_0, "")))
            {
                var      val            = string.Format(LegalityCheckStrings.LRibbonFInvalid_0, "");
                string[] ribbonList     = GetRequiredRibbons(report, val);
                var      invalidRibbons = GetRibbonsRequired(pk, ribbonList);
                SetRibbonValues(pk, invalidRibbons, 0, false);
            }
        }
Пример #2
0
    public static ModifyResult SetSuggestedRibbons(BatchInfo info, string value)
    {
        var pk = info.Entity;

        if (IsNone(value))
        {
            RibbonApplicator.RemoveAllValidRibbons(pk);
        }
        else // All
        {
            RibbonApplicator.SetAllValidRibbons(pk);
        }
        return(ModifyResult.Modified);
    }
Пример #3
0
        private void B_None_Click(object sender, EventArgs e)
        {
            if (ModifierKeys == Keys.Shift)
            {
                RibbonApplicator.RemoveAllValidRibbons(pkm);
                Close();
                return;
            }

            foreach (var c in TLP_Ribbons.Controls.OfType <CheckBox>())
            {
                c.Checked = false;
            }
            foreach (var n in TLP_Ribbons.Controls.OfType <NumericUpDown>())
            {
                n.Value = 0;
            }
        }
Пример #4
0
    private void B_All_Click(object sender, EventArgs e)
    {
        if (ModifierKeys == Keys.Shift)
        {
            RibbonApplicator.RemoveAllValidRibbons(Entity);
            RibbonApplicator.SetAllValidRibbons(Entity);
            Close();
            return;
        }

        foreach (var c in TLP_Ribbons.Controls.OfType <CheckBox>())
        {
            c.Checked = true;
        }
        foreach (var n in TLP_Ribbons.Controls.OfType <NumericUpDown>())
        {
            n.Value = n.Maximum;
        }
    }
Пример #5
0
        /// <summary>
        /// Sets all ribbon flags according to a legality report.
        /// </summary>
        /// <param name="pk">Pokémon to modify</param>
        /// <param name="allValid">Set all valid ribbons only</param>
        public static void SetSuggestedRibbons(this PKM pk, bool allValid = true)
        {
            if (allValid)
            {
                RibbonApplicator.SetAllValidRibbons(pk);
            }
            string report = new LegalityAnalysis(pk).Report();

            if (report.Contains(string.Format(LegalityCheckStrings.LRibbonFMissing_0, "")))
            {
                var val            = string.Format(LegalityCheckStrings.LRibbonFMissing_0, "");
                var ribbonList     = GetRequiredRibbons(report, val);
                var missingRibbons = GetRibbonsRequired(pk, ribbonList);
                SetRibbonValues(pk, missingRibbons, 0, true);
            }
            if (report.Contains(string.Format(LegalityCheckStrings.LRibbonFInvalid_0, "")))
            {
                var      val            = string.Format(LegalityCheckStrings.LRibbonFInvalid_0, "");
                string[] ribbonList     = GetRequiredRibbons(report, val);
                var      invalidRibbons = GetRibbonsRequired(pk, ribbonList);
                SetRibbonValues(pk, invalidRibbons, 0, false);
            }
        }
Пример #6
0
    private void B_None_Click(object sender, EventArgs e)
    {
        if (ModifierKeys == Keys.Shift)
        {
            RibbonApplicator.RemoveAllValidRibbons(Entity);
            if (Entity is IRibbonSetAffixed affixed)
            {
                affixed.AffixedRibbon = -1;
            }
            Close();
            return;
        }

        CB_Affixed.SelectedValue = -1;
        foreach (var c in TLP_Ribbons.Controls.OfType <CheckBox>())
        {
            c.Checked = false;
        }
        foreach (var n in TLP_Ribbons.Controls.OfType <NumericUpDown>())
        {
            n.Value = 0;
        }
    }