@@ -334,7 +334,7 @@ private void modLoaderButton_Click(object sender, EventArgs e)
334334
335335 itemList . Sort ( ) ;
336336
337- var digimonEvolutions = settingsForm . VanillaMonHandle > 1
337+ var digimonEvolutions = settingsForm . VanillaMonHandle > 1
338338 ? BaseDigimonStats . LoadDigimonEvolutions ( this )
339339 : new ( ) ;
340340
@@ -1063,7 +1063,64 @@ private void digimonEvoControl_SelectedEvoOptionChanged(object sender, EventArgs
10631063 selectedDigimon . Digimon . EvoConditions . Add ( new ( 0 , "" ) ) ;
10641064 }
10651065
1066+ // delete old mode change
1067+ if ( selectedDigimon . Digimon . EvoConditions [ i ] . Item1 == 13 )
1068+ {
1069+ var oldModeChangeTargetID = selectedDigimon . Digimon . EvoConditions [ i ] . Item2 ;
1070+ foreach ( var lists in digimonLists )
1071+ {
1072+ foreach ( var targetMon in lists . Item1 )
1073+ {
1074+ if ( String . Equals ( targetMon . Digimon . ID , oldModeChangeTargetID ) )
1075+ {
1076+ for ( var targetMonEvoCond = 0 ; targetMonEvoCond < targetMon . Digimon . EvoConditions . Count ; targetMonEvoCond ++ )
1077+ {
1078+ if ( targetMon . Digimon . EvoConditions [ targetMonEvoCond ] . Item1 == 13
1079+ && String . Equals ( targetMon . Digimon . EvoConditions [ targetMonEvoCond ] . Item2 , selectedDigimon . Digimon . ID ) )
1080+ {
1081+ targetMon . Digimon . EvoConditions [ targetMonEvoCond ] = new ( 0 , "" ) ;
1082+ }
1083+ }
1084+ }
1085+ }
1086+ }
1087+ }
1088+
10661089 selectedDigimon . Digimon . EvoConditions [ i ] = currentEvoControl . EvoCondition ;
1090+
1091+ if ( currentEvoControl . EvoCondition . Item1 == 13 )
1092+ {
1093+ var newModeChangeTargetID = selectedDigimon . Digimon . EvoConditions [ i ] . Item2 ;
1094+ foreach ( var lists in digimonLists )
1095+ {
1096+ foreach ( var targetMon in lists . Item1 )
1097+ {
1098+ if ( String . Equals ( targetMon . Digimon . ID , newModeChangeTargetID ) )
1099+ {
1100+ var placed = false ;
1101+ for ( var targetMonEvoCond = 0 ; targetMonEvoCond < targetMon . Digimon . EvoConditions . Count ; targetMonEvoCond ++ )
1102+ {
1103+ if ( targetMon . Digimon . EvoConditions [ targetMonEvoCond ] . Item1 == 13
1104+ && String . Equals ( targetMon . Digimon . EvoConditions [ targetMonEvoCond ] . Item2 , selectedDigimon . Digimon . ID ) )
1105+ {
1106+ targetMon . Digimon . EvoConditions [ targetMonEvoCond ] = new ( 0 , "" ) ;
1107+ }
1108+
1109+ if ( ! placed && targetMon . Digimon . EvoConditions [ targetMonEvoCond ] . Item1 == 0 )
1110+ {
1111+ targetMon . Digimon . EvoConditions [ targetMonEvoCond ] = new Tuple < int , string > ( 13 , selectedDigimon . Digimon . ID ) ;
1112+ placed = true ;
1113+ }
1114+ }
1115+
1116+ if ( ! placed )
1117+ {
1118+ targetMon . Digimon . EvoConditions . Add ( new Tuple < int , string > ( 13 , selectedDigimon . Digimon . ID ) ) ;
1119+ }
1120+ }
1121+ }
1122+ }
1123+ }
10671124 }
10681125 }
10691126 }
0 commit comments