public static void RemoveCurse(string name) { if (CurseIsActive(name)) { for (int i = (CurrentActiveCurses.Count - 1); i >= 0; i--) { if (CurrentActiveCurses[i].curseName == name) { if (CurrentActiveCurses[i].curseName == "Curse of Darkness") { CustomDarknessHandler.shouldBeDark.RemoveOverride("DarknessCurse"); } CurrentActiveCurses.RemoveAt(i); } } } }
public static void AddCurse(string CurseName, bool dopopup = false) { if (CurseManager.CurseIsActive(CurseName)) { Debug.LogWarning("Attempted to Add Curse (" + CurseName + ") but it was already active!"); return; } CurseData newCurse = null; foreach (CurseData data in CursePrefabs) { if (data.curseName == CurseName) { newCurse = data; } } if (!(GameManager.Instance.AnyPlayerHasPickupID(HoleyWater.HoleyWaterID) && !GameManager.Instance.AnyPlayerHasActiveSynergy("The Last Crusade"))) { CurrentActiveCurses.Add(newCurse); if (previousCursesThisRun == null) { previousCursesThisRun = new List <string>(); } if (previousCursesThisRun.Contains(newCurse.curseName)) { if (bannedCursesThisRun == null) { bannedCursesThisRun = new List <string>(); } bannedCursesThisRun.Add(newCurse.curseName); } else { previousCursesThisRun.Add(newCurse.curseName); } Debug.Log("Added New Curse: " + newCurse.curseName + " (Popup: " + dopopup + ")"); if (dopopup) { DoSpecificCursePopup(CurseName, newCurse.curseSubtitle, newCurse.curseIconId); } } InherentPostLevelCurseProcessing(); }