Exemplo n.º 1
0
        private static void ApplyMonsterChanges(ClassicStageInfo self, StageInfo stage)
        {
            var monsters     = self.GetFieldValue <DirectorCardCategorySelection>("monsterCategories");
            var monsterCards = new List <DirectorCardHolder>();

            foreach (var cat in monsters.categories)
            {
                MonsterCategory      monstCat = GetMonsterCategory(cat.name);
                InteractableCategory interCat = GetInteractableCategory(cat.name);
                foreach (var t in cat.cards)
                {
                    monsterCards.Add(new DirectorCardHolder {
                        InteractableCategory = interCat,
                        MonsterCategory      = monstCat,
                        Card = t
                    });
                }
            }
            MonsterActions?.Invoke(monsterCards, stage);
            var monsterBasic = new List <DirectorCard>();
            var monsterSub   = new List <DirectorCard>();
            var monsterChamp = new List <DirectorCard>();

            foreach (var hold in monsterCards)
            {
                switch (hold.MonsterCategory)
                {
                case MonsterCategory.BasicMonsters:
                    monsterBasic.Add(hold.Card);
                    break;

                case MonsterCategory.Champions:
                    monsterChamp.Add(hold.Card);
                    break;

                case MonsterCategory.Minibosses:
                    monsterSub.Add(hold.Card);
                    break;
                }
            }
            for (int i = 0; i < monsters.categories.Length; i++)
            {
                DirectorCardCategorySelection.Category cat = monsters.categories[i];
                switch (cat.name)
                {
                case "Champions":
                    cat.cards = monsterChamp.ToArray();
                    break;

                case "Minibosses":
                    cat.cards = monsterSub.ToArray();
                    break;

                case "Basic Monsters":
                    cat.cards = monsterBasic.ToArray();
                    break;
                }
                monsters.categories[i] = cat;
            }
        }