private void Awake()
 {
     if (!InteractableActions.single_IA)
     {
         InteractableActions.single_IA = this;
     }
 }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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;
            }
        }