private void Awake() { if (!InteractableActions.single_IA) { InteractableActions.single_IA = this; } }
private static void ApplyInteractableChanges(ClassicStageInfo self, StageInfo stage) { var interactables = self.GetFieldValue <DirectorCardCategorySelection>("interactableCategories"); var interactableCards = new List <DirectorCardHolder>(); foreach (var cat in interactables.categories) { MonsterCategory monstCat = GetMonsterCategory(cat.name); InteractableCategory interCat = GetInteractableCategory(cat.name); foreach (var t in cat.cards) { interactableCards.Add(new DirectorCardHolder { InteractableCategory = interCat, MonsterCategory = monstCat, Card = t }); } } InteractableActions?.Invoke(interactableCards, stage); var interChests = new List <DirectorCard>(); var interBarrels = new List <DirectorCard>(); var interShrines = new List <DirectorCard>(); var interDrones = new List <DirectorCard>(); var interMisc = new List <DirectorCard>(); var interRare = new List <DirectorCard>(); var interDupe = new List <DirectorCard>(); foreach (var hold in interactableCards) { switch (hold.InteractableCategory) { case InteractableCategory.None: R2API.Logger.LogWarning("InteractableCategory from DirectorCardHolder is None !"); break; case InteractableCategory.Chests: interChests.Add(hold.Card); break; case InteractableCategory.Barrels: interBarrels.Add(hold.Card); break; case InteractableCategory.Drones: interDrones.Add(hold.Card); break; case InteractableCategory.Duplicator: interDupe.Add(hold.Card); break; case InteractableCategory.Misc: interMisc.Add(hold.Card); break; case InteractableCategory.Rare: interRare.Add(hold.Card); break; case InteractableCategory.Shrines: interShrines.Add(hold.Card); break; } } for (int i = 0; i < interactables.categories.Length; i++) { DirectorCardCategorySelection.Category cat = interactables.categories[i]; switch (cat.name) { case "Chests": cat.cards = interChests.ToArray(); break; case "Barrels": cat.cards = interBarrels.ToArray(); break; case "Shrines": cat.cards = interShrines.ToArray(); break; case "Drones": cat.cards = interDrones.ToArray(); break; case "Misc": cat.cards = interMisc.ToArray(); break; case "Rare": cat.cards = interRare.ToArray(); break; case "Duplicator": cat.cards = interDupe.ToArray(); break; } interactables.categories[i] = cat; } }
private static void ApplyInteractableChanges(ClassicStageInfo self, StageInfo stage) { var interactables = self.GetFieldValue <DirectorCardCategorySelection>("interactableCategories"); List <DirectorCardHolder> interactableCards = new List <DirectorCardHolder>(); for (int i = 0; i < interactables.categories.Length; i++) { DirectorCardCategorySelection.Category cat = interactables.categories[i]; MonsterCategory monstCat = GetMonsterCategory(cat.name); InteractableCategory interCat = GetInteractableCategory(cat.name); for (int j = 0; j < cat.cards.Length; j++) { interactableCards.Add(new DirectorCardHolder { interactableCategory = interCat, monsterCategory = monstCat, card = cat.cards[j] }); } } InteractableActions?.Invoke(interactableCards, stage); List <DirectorCard> interChests = new List <DirectorCard>(); List <DirectorCard> interBarrels = new List <DirectorCard>(); List <DirectorCard> interShrines = new List <DirectorCard>(); List <DirectorCard> interDrones = new List <DirectorCard>(); List <DirectorCard> interMisc = new List <DirectorCard>(); List <DirectorCard> interRare = new List <DirectorCard>(); List <DirectorCard> interDupe = new List <DirectorCard>(); for (int i = 0; i < interactableCards.Count; i++) { DirectorCardHolder hold = interactableCards[i]; switch (hold.interactableCategory) { default: Debug.Log("Wtf are you doing..."); break; case InteractableCategory.Chests: interChests.Add(hold.card); break; case InteractableCategory.Barrels: interBarrels.Add(hold.card); break; case InteractableCategory.Drones: interDrones.Add(hold.card); break; case InteractableCategory.Duplicator: interDupe.Add(hold.card); break; case InteractableCategory.Misc: interMisc.Add(hold.card); break; case InteractableCategory.Rare: interRare.Add(hold.card); break; case InteractableCategory.Shrines: interShrines.Add(hold.card); break; } } for (int i = 0; i < interactables.categories.Length; i++) { DirectorCardCategorySelection.Category cat = interactables.categories[i]; switch (cat.name) { default: break; case "Chests": cat.cards = interChests.ToArray(); break; case "Barrels": cat.cards = interBarrels.ToArray(); break; case "Shrines": cat.cards = interShrines.ToArray(); break; case "Drones": cat.cards = interDrones.ToArray(); break; case "Misc": cat.cards = interMisc.ToArray(); break; case "Rare": cat.cards = interRare.ToArray(); break; case "Duplicator": cat.cards = interDupe.ToArray(); break; } interactables.categories[i] = cat; } }