22using APIPlugin ;
33using DiskCardGame ;
44using HarmonyLib ;
5+ using System ;
56using System . Collections . Generic ;
67
78namespace API . Patches
@@ -13,7 +14,10 @@ public class RunState_Initialize
1314 {
1415 public static void Postfix ( ref RunState __instance )
1516 {
16- __instance . regionTier = RegionUtils . GetRandomRegionFromTier ( 0 ) ;
17+ if ( ! SaveManager . SaveFile . ascensionActive )
18+ {
19+ __instance . regionTier = RegionUtils . GetRandomRegionFromTier ( RunState . Run . regionOrder [ 0 ] ) ;
20+ }
1721 }
1822 }
1923
@@ -24,10 +28,36 @@ public static bool Prefix(ref RunState __instance)
2428 {
2529 List < RegionData > original = RegionProgression . Instance . regions ;
2630 int tier = RegionUtils . TrueTier ( ) ;
27- __instance . regionTier = RegionUtils . GetRandomRegionFromTier ( tier ) ;
31+ int progressionTier = Array . IndexOf ( RunState . Run . regionOrder , tier ) ;
32+ __instance . regionTier = RegionUtils . GetRandomRegionFromTier ( ( progressionTier == - 1 || progressionTier == RunState . Run . regionOrder . Length - 1 ) ? RunState . Run . regionOrder . Length : RunState . Run . regionOrder [ progressionTier + 1 ] ) ;
33+ if ( __instance . regionTier == RunState . Run . regionOrder . Length )
34+ {
35+ if ( SaveManager . SaveFile . ascensionActive )
36+ {
37+ __instance . regionTier = original . Count - 1 ;
38+
39+ }
40+ }
2841 __instance . map = MapGenerator . GenerateMap ( RunState . CurrentMapRegion , 3 , 13 ) ;
2942 __instance . currentNodeId = __instance . map . RootNode . id ;
3043 return false ;
3144 }
3245 }
46+
47+ [ HarmonyPatch ( typeof ( RunState ) , "CurrentMapRegion" , MethodType . Getter ) ]
48+ public class RunState_get_CurrentMapRegion
49+ {
50+ public static bool Prefix ( ref RegionData __result )
51+ {
52+ if ( SaveManager . SaveFile . IsPart3 || SaveManager . SaveFile . IsGrimora )
53+ {
54+ __result = ResourceBank . Get < RegionData > ( "Data/Map/Regions/!TEST_PART3" ) ;
55+ }
56+ else
57+ {
58+ __result = RegionProgression . Instance . regions [ RunState . Run . regionTier ] ;
59+ }
60+ return false ;
61+ }
62+ }
3363}
0 commit comments