/// <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())); }; }
/// <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())); }; }
/// <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; } } }; }
/// <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; } } }; }
/// <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; } } }; }
/// <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())); } } }; }
/// <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())); } } }; }
/// <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; } } }; }
/// <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); }; }
/// <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); }; }
/// <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); } } }; }
/// <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); } } }; }