Skip to content

Commit 158740e

Browse files
committed
Add a Mode Change validator.
1 parent 4fa2e70 commit 158740e

2 files changed

Lines changed: 100 additions & 0 deletions

File tree

Form3.Designer.cs

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Form3.cs

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,5 +289,78 @@ private void baseMonHandlerComboBox_SelectionChangeCommitted(object sender, Even
289289
costumedAgumonLoaderComboBox.SelectedIndex = 0;
290290
costumedAgumonLoaderComboBox.DataSource = vanillaMonHandlingStates.Take(baseMonHandlerComboBox.SelectedIndex + 1).ToList();
291291
}
292+
293+
private void modeChangeValidatorButton_Click(object sender, EventArgs e)
294+
{
295+
LogMessage("Looking for Digimons with the Mode Change evolution option");
296+
297+
var valid = true;
298+
var levels = new string[] { "In-Training 1", "In-Training 2", "Rookie", "Champion", "Armor", "Ultimate", "Mega", "Ultra" };
299+
300+
for (var i = 0; i < sourceForm.DigimonLists.Length; i++)
301+
{
302+
var monlist = sourceForm.DigimonLists[i].Item1.Where(x =>
303+
(x.Digimon.EvoConditions.Any(y => y.Item1 == 13)))
304+
.ToList();
305+
306+
if (monlist.Count > 0)
307+
{
308+
foreach (var mon in monlist)
309+
{
310+
var monstring = "";
311+
var modechanges = mon.Digimon.EvoConditions.Where(x => x.Item1 == 13).Select(x => x.Item2).ToList();
312+
313+
if (modechanges.Count > 1)
314+
{
315+
monstring += "\t > Has multiple Mode Changes" + Environment.NewLine;
316+
}
317+
318+
foreach (var item in modechanges)
319+
{
320+
if (String.IsNullOrEmpty(item) || String.Equals("0", item))
321+
{
322+
monstring += "\t > Missing Mode Change parameter";
323+
}
324+
325+
if (!mon.Evolutions.Contains(item))
326+
{
327+
var faultyMon = KnownMons.SingleOrDefault(x => String.Equals(x.ID, item));
328+
if (faultyMon == null)
329+
{
330+
monstring += "\t > Requires external mon ID " + item + " as a mode change option" + Environment.NewLine;
331+
}
332+
else
333+
{
334+
monstring += "\t > Requires external mon " + faultyMon.Name + " as a Mode Change option" + Environment.NewLine;
335+
}
336+
}
337+
}
338+
339+
foreach (var item in mon.Evolutions)
340+
{
341+
if (!modechanges.Contains(item))
342+
{
343+
monstring += "\t > Missing evolution " + KnownMons.Single(x => String.Equals(x.ID, item)).Name + " as Mode Change option" + Environment.NewLine;
344+
}
345+
}
346+
347+
if (monstring.Length > 0)
348+
{
349+
valid = false;
350+
LogMessage(mon + " [" + levels[i] + "]" + Environment.NewLine + monstring);
351+
}
352+
}
353+
}
354+
}
355+
356+
if (valid)
357+
{
358+
LogMessage("Analysis completed. No such Digimon encountered.");
359+
}
360+
else
361+
{
362+
LogMessage("Analysis completed.");
363+
}
364+
}
292365
}
293366
}

0 commit comments

Comments
 (0)