@@ -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