コード例 #1
0
        public static void AddRandomCurse(bool doPopup = false)
        {
            List <CurseData> refinedData = new List <CurseData>();

            refinedData.AddRange(CursePrefabs);
            if (CurrentActiveCurses.Count > 0)
            {
                for (int i = (refinedData.Count - 1); i >= 0; i--)
                {
                    if (CurseManager.CurseIsActive(refinedData[i].curseName))
                    {
                        refinedData.RemoveAt(i);
                    }
                    else if (cursesLastFloor != null && cursesLastFloor.Contains(refinedData[i].curseName))
                    {
                        refinedData.RemoveAt(i);
                    }
                    else if (bannedCursesThisRun != null && bannedCursesThisRun.Contains(refinedData[i].curseName))
                    {
                        refinedData.RemoveAt(i);
                    }
                }
            }
            if (refinedData.Count > 0)
            {
                CurseData pickedCurse = BraveUtility.RandomElement(refinedData);
                AddCurse(pickedCurse.curseName, doPopup);
            }
        }
コード例 #2
0
        public static void Init()
        {
            CurrentActiveCurses = new List <CurseData>();
            CursePrefabs        = new List <CurseData>();
            FloorAndGenerationToolbox.OnFloorEntered += LevelLoaded;
            FloorAndGenerationToolbox.OnNewGame      += OnNewRun;
            VFXScapegoat = new GameObject("CurseVFXScapegoat");
            VFXScapegoat.gameObject.SetActive(false);
            UnityEngine.Object.DontDestroyOnLoad(VFXScapegoat);
            CurseIconCollection = SpriteBuilder.ConstructCollection(VFXScapegoat, "CurseIcon_Collection");
            UnityEngine.Object.DontDestroyOnLoad(CurseIconCollection);

            //ETGModConsole.Log("Hook Passed");

            #region SetUpCurses
            CurseData curseOfInfestation = new CurseData();
            curseOfInfestation.curseName     = "Curse of Infestation";
            curseOfInfestation.curseSubtitle = "They crawl beneath the surface";
            curseOfInfestation.curseIconId   = SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/CurseIcons/infestation_icon", CurseIconCollection);
            CursePrefabs.Add(curseOfInfestation);

            CurseData curseOfSludge = new CurseData();
            curseOfSludge.curseName     = "Curse of Sludge";
            curseOfSludge.curseSubtitle = "You. Will. Love. My... Toxic love";
            curseOfSludge.curseIconId   = SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/CurseIcons/sludge_icon", CurseIconCollection);
            CursePrefabs.Add(curseOfSludge);

            CurseData curseOfTheHive = new CurseData();
            curseOfTheHive.curseName     = "Curse of The Hive";
            curseOfTheHive.curseSubtitle = "You hear a faint buzzing";
            curseOfTheHive.curseIconId   = SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/CurseIcons/hive_icon", CurseIconCollection);
            CursePrefabs.Add(curseOfTheHive);

            CurseData curseOfTheFlames = new CurseData();
            curseOfTheFlames.curseName     = "Curse of The Flames";
            curseOfTheFlames.curseSubtitle = "Cannot live with me.";
            curseOfTheFlames.curseIconId   = SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/CurseIcons/flames_icon", CurseIconCollection);
            CursePrefabs.Add(curseOfTheFlames);

            CurseData curseOfButterfingers = new CurseData();
            curseOfButterfingers.curseName     = "Curse of Butterfingers";
            curseOfButterfingers.curseSubtitle = "Be careful not to slip up";
            curseOfButterfingers.curseIconId   = SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/CurseIcons/butterfingers_icon", CurseIconCollection);
            CursePrefabs.Add(curseOfButterfingers);

            CurseData curseOfDarkness = new CurseData();
            curseOfDarkness.curseName     = "Curse of Darkness";
            curseOfDarkness.curseSubtitle = "Spirit of the Night";
            curseOfDarkness.curseIconId   = SpriteBuilder.AddSpriteToCollection("NevernamedsItems/Resources/CurseIcons/darkness_icon", CurseIconCollection);
            CursePrefabs.Add(curseOfDarkness);
            #endregion
        }
コード例 #3
0
        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();
        }