internal static void Prefix(MonkeySelectMenu __instance, Il2CppSystem.Object data) { if (!reOpening) { var towerSets = new List <string>(__instance.TowerSets); foreach (var modTowerSet in ModContent.GetContent <ModTowerSet>()) { var towerSetIndex = modTowerSet.GetTowerSetIndex(towerSets); towerSets.Insert(towerSetIndex, modTowerSet.Id); } __instance.TowerSets = towerSets.ToArray(); } if (data == null) { menu = null; var model = Game.instance.model; foreach (var set in __instance.TowerSets) { Offsets[set] = 0; TowersInSets[set] = model.towerSet.Where(details => model.GetTowerFromId(details.towerId).towerSet == set).ToList(); TotalSpotses[set] = ((TowersInSets[set].Count - 1) / 8 + 1) * 8; } } if (!reOpening) { CreatePips(__instance); CreateCustomButtons(__instance); } }
internal static bool Prefix(MonkeySelectMenu __instance, ref string towerSet, bool swipeGesture, ref int __state) // State is the offset that the page should be at after this switch { __state = Offset; if (towerSet != currentTowerSet) { // By default, switches will take the __state = 0; // Swipe gestures also include the left and right arrow buttons alongside swiping. // This is how actual navigation between the different pages of the same tower sets happens if (swipeGesture) { if (ItComesAfter(towerSet, currentTowerSet) && Offset != TotalSpots - 8) { // Move to next page of tower set Cycle(Offset + 8); return(false); // Don't switch to next tower set } if (ItComesBefore(towerSet, currentTowerSet)) { if (Offset != 0) { // Move to previous page of tower set Cycle(Offset - 8); return(false); // Don't switch to previous tower set } // Move to previous tower set, with it's offset at the last place it can be at __state = TotalSpotses[towerSet] - 8; } } } else if (!reOpening) { // Like on the maps screen, clicking your current MonkeyGroupButton should cycle the set Cycle(Offset + 8); } return(true); }
internal static void Postfix(MonkeySelectMenu __instance) { //DestroyPips(); //DestroyCustomButtons(); }
internal static void Postfix(MonkeySelectMenu __instance, string towerSet, bool swipeGesture, int __state) { UpdateTowerSet(__instance, __state); UpdatePips(); }
internal static void Postfix(MonkeySelectMenu __instance, Il2CppSystem.Object data) { menu = __instance; UpdateTowerSet(__instance); UpdatePips(); }