Ejemplo n.º 1
0
 /// <summary>
 /// Remove an interactable from spawns on all stages.
 /// </summary>
 /// <param name="interactableName">Name of the interactable to remove</param>
 public static void RemoveExistingInteractable(string interactableName)
 {
     DirectorAPI.AddHook();
     DirectorAPI.interactableActions += (interactables, currentStage) =>
     {
         interactables.RemoveAll((card) => (card.card.spawnCard.name.ToLower() == interactableName.ToLower()));
     };
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Removes a monster from spawns on all stages.
 /// </summary>
 /// <param name="monsterName">The name of the monster card to remove</param>
 public static void RemoveExistingMonster(string monsterName)
 {
     DirectorAPI.AddHook();
     DirectorAPI.monsterActions += (monsters, currentStage) =>
     {
         monsters.RemoveAll((card) => (card.card.spawnCard.name.ToLower() == monsterName.ToLower()));
     };
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Divides the scene director interactable credits on a specific stage.
 /// For custom stages use Stage.Custom and enter the name of the stage in customStageName.
 /// </summary>
 /// <param name="divisor">The number to divide by</param>
 /// <param name="stage">The stage to divide on</param>
 /// <param name="customStageName">The name of the custom stage</param>
 public static void ReduceSceneInteractableCredits(int divisor, Stage stage, string customStageName = "")
 {
     DirectorAPI.AddHook();
     DirectorAPI.stageSettingsActions += (settings, currentStage) =>
     {
         if (currentStage.stage == stage)
         {
             if (currentStage.CheckStage(stage, customStageName))
             {
                 settings.sceneDirectorInteractableCredits /= divisor;
             }
         }
     };
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Multiplies the scene director monster credits on a specific stage.
 /// For custom stages use Stage.Custom and enter the name of the stage in customStageName.
 /// </summary>
 /// <param name="multiplier">The number to multiply by</param>
 /// <param name="stage">The stage to multiply on</param>
 /// <param name="customStageName">The name of the custom stage</param>
 public static void MultiplySceneMonsterCredits(int multiplier, Stage stage, string customStageName = "")
 {
     DirectorAPI.AddHook();
     DirectorAPI.stageSettingsActions += (settings, currentStage) =>
     {
         if (currentStage.stage == stage)
         {
             if (currentStage.CheckStage(stage, customStageName))
             {
                 settings.sceneDirectorMonsterCredits *= multiplier;
             }
         }
     };
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Adds a flat amount of monster credits to the scene director on a specific stage.
 /// For custom stages use Stage.Custom and enter the name of the stage in customStageName.
 /// </summary>
 /// <param name="increase">The quantity to add</param>
 /// <param name="stage">The stage to add on</param>
 /// <param name="customStageName">The name of the custom stage</param>
 public static void AddSceneMonsterCredits(int increase, Stage stage, string customStageName = "")
 {
     DirectorAPI.AddHook();
     DirectorAPI.stageSettingsActions += (settings, currentStage) =>
     {
         if (currentStage.stage == stage)
         {
             if (currentStage.CheckStage(stage, customStageName))
             {
                 settings.sceneDirectorMonsterCredits += increase;
             }
         }
     };
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Remove an interactable from spawns on a specific stage.
 /// For custom stages use Stage.Custom and enter the name of the stage in customStageName.
 /// </summary>
 /// <param name="interactableName">The name of the interactable to remove</param>
 /// <param name="stage">The stage to remove on</param>
 /// <param name="customStageName">The name of the custom stage</param>
 public static void RemoveExistingInteractableFromStage(string interactableName, Stage stage, string customStageName = "")
 {
     DirectorAPI.AddHook();
     DirectorAPI.interactableActions += (interactables, currentStage) =>
     {
         if (currentStage.stage == stage)
         {
             if (currentStage.CheckStage(stage, customStageName))
             {
                 interactables.RemoveAll((card) => (card.card.spawnCard.name.ToLower() == interactableName.ToLower()));
             }
         }
     };
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Removes a monster from spawns on a specific stage.
 /// For custom stages use Stage.Custom and enter the name of the stage in customStageName.
 /// </summary>
 /// <param name="monsterName">The name of the monster card to remove</param>
 /// <param name="stage">The stage to remove on</param>
 /// <param name="customStageName">The name of the custom stage</param>
 public static void RemoveExistingMonsterFromStage(string monsterName, Stage stage, string customStageName = "")
 {
     DirectorAPI.AddHook();
     DirectorAPI.monsterActions += (monsters, currentStage) =>
     {
         if (currentStage.stage == stage)
         {
             if ((stage != Stage.Custom) ^ (currentStage.customStageName == customStageName))
             {
                 monsters.RemoveAll((card) => (card.card.spawnCard.name.ToLower() == monsterName.ToLower()));
             }
         }
     };
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Enables or disables elite spawns for a specific monster.
 /// </summary>
 /// <param name="monsterName">The name of the monster to edit</param>
 /// <param name="elitesAllowed">Should elites be allowed?</param>
 public static void PreventElites(string monsterName, bool elitesAllowed)
 {
     DirectorAPI.AddHook();
     DirectorAPI.monsterActions += (monsters, currentStage) =>
     {
         foreach (DirectorCardHolder holder in monsters)
         {
             if (holder.card.spawnCard.name.ToLower() == monsterName.ToLower())
             {
                 ((CharacterSpawnCard)holder.card.spawnCard).noElites = elitesAllowed;
             }
         }
     };
 }
Ejemplo n.º 9
0
            /// <summary>
            /// Adds a new interactable to all stages.
            /// </summary>
            /// <param name="interactableCard">The DirectorCard for the interactable</param>
            /// <param name="category">The category of the interactable</param>
            public static void AddNewInteractable(DirectorCard interactableCard, InteractableCategory category)
            {
                DirectorAPI.AddHook();
                DirectorCardHolder card = new DirectorCardHolder
                {
                    card = interactableCard,
                    interactableCategory = category,
                    monsterCategory      = MonsterCategory.None
                };

                DirectorAPI.interactableActions += (interactables, currentStage) =>
                {
                    interactables.Add(card);
                };
            }
Ejemplo n.º 10
0
            /// <summary>
            /// Adds a new monster to all stages.
            /// </summary>
            /// <param name="monsterCard">The DirectorCard for the monster</param>
            /// <param name="category">The category to add the monster to</param>
            public static void AddNewMonster(DirectorCard monsterCard, MonsterCategory category)
            {
                DirectorAPI.AddHook();
                DirectorCardHolder card = new DirectorCardHolder
                {
                    card = monsterCard,
                    interactableCategory = InteractableCategory.None,
                    monsterCategory      = category
                };

                DirectorAPI.monsterActions += (monsters, currentStage) =>
                {
                    monsters.Add(card);
                };
            }
Ejemplo n.º 11
0
            /// <summary>
            /// Adds a new interactable to a specific stage.
            /// For custom stages use Stage.Custom and enter the name of the stage in customStageName.
            /// </summary>
            /// <param name="interactableCard">The DirectorCard of the interactable</param>
            /// <param name="category">The category of the interactable</param>
            /// <param name="stage">The stage to add the interactable to</param>
            /// <param name="customStageName">The name of the custom stage</param>
            public static void AddNewInteractableToStage(DirectorCard interactableCard, InteractableCategory category, Stage stage, string customStageName = "")
            {
                DirectorAPI.AddHook();
                DirectorCardHolder card = new DirectorCardHolder
                {
                    card = interactableCard,
                    interactableCategory = category,
                    monsterCategory      = MonsterCategory.None
                };

                DirectorAPI.interactableActions += (interactables, currentStage) =>
                {
                    if (currentStage.stage == stage)
                    {
                        if (currentStage.CheckStage(stage, customStageName))
                        {
                            interactables.Add(card);
                        }
                    }
                };
            }
Ejemplo n.º 12
0
            /// <summary>
            /// Adds a new monster to a specific stage.
            /// For custom stages use Stage.Custom and enter the name of the stage in customStageName.
            /// </summary>
            /// <param name="monsterCard">The DirectorCard of the monster to add</param>
            /// <param name="category">The category to add the monster to</param>
            /// <param name="stage">The stage to add the monster to</param>
            /// <param name="customStageName">The name of the custom stage</param>
            public static void AddNewMonsterToStage(DirectorCard monsterCard, MonsterCategory category, Stage stage, string customStageName = "")
            {
                DirectorAPI.AddHook();
                DirectorCardHolder card = new DirectorCardHolder
                {
                    card = monsterCard,
                    interactableCategory = InteractableCategory.None,
                    monsterCategory      = category
                };

                DirectorAPI.monsterActions += (monsters, currentStage) =>
                {
                    if (currentStage.stage == stage)
                    {
                        if (currentStage.CheckStage(stage, customStageName))
                        {
                            monsters.Add(card);
                        }
                    }
                };
            }