Exemplo n.º 1
0
 private static bool Prefix(Bed __instance, GUIHand hand)
 {
     if (hand.player.GetComponent <Survival>().food <= 25 || Player.main.GetComponent <Survival>().water <= 25)
     {
         if (hand.player.GetComponent <Survival>().food <= 25 &&
             hand.player.GetComponent <Survival>().water <= 25)
         {
             ErrorMessage.AddWarning("You can't sleep now because you are too hungry and thirsty! Drink and eat something before you go to bed.");
         }
         else if (hand.player.GetComponent <Survival>().food <= 25 ||
                  !(hand.player.GetComponent <Survival>().water <= 25))
         {
             ErrorMessage.AddWarning("You can't sleep now because you are too hungry! Go eat something before you go to bed.");
         }
         else if (!(hand.player.GetComponent <Survival>().food <= 25) ||
                  hand.player.GetComponent <Survival>().water <= 25)
         {
             ErrorMessage.AddWarning("You can't sleep now because you are too thirsty! Drink something before you go to bed.");
         }
         else
         {
             ErrorMessage.AddWarning("You can't sleep now! Try to drink and eat something and try again!");
         }
         return(false);
     }
     return(true);
 }
Exemplo n.º 2
0
        public static bool ConsumeResources(TechType techType)
        {
            if (!IsCraftRecipeFulfilled(techType))
            {
                ErrorMessage.AddWarning(Language.main.Get("DontHaveNeededIngredients"));
                return(false);
            }

            var       itemsContainers = FindAllItemsContainersInRange();
            ITechData techData        = CraftData.Get(techType, false);

            if (techData == null)
            {
                return(false);
            }
            int i = 0;
            int ingredientCount = techData.ingredientCount;

            while (i < ingredientCount)
            {
                IIngredient ingredient = techData.GetIngredient(i);
                TechType    techType2  = ingredient.techType;
                int         j          = 0;
                int         amount     = ingredient.amount;
                while (j < amount)
                {
                    DestroyItemInContainers(techType2, itemsContainers);
                    uGUI_IconNotifier.main.Play(techType2, uGUI_IconNotifier.AnimationType.To, null);
                    j++;
                }
                i++;
            }
            return(true);
        }
Exemplo n.º 3
0
        private static void Warn(string msg, bool showOnScreen = false, string callingAssembly = null)
        {
            Console.WriteLine($"[{callingAssembly ?? GetCallingAssemblyName()}:WARN] {msg}");

            if (showOnScreen)
            {
                ErrorMessage.AddWarning(msg);
            }
        }
Exemplo n.º 4
0
        public static void Patch_Player_Health()
        {
            Inventory pInventory = Inventory.main;

            IList <InventoryItem> medKit = pInventory.container.GetItems(TechType.FirstAidKit);

            if (!MainPatch.EditNameCheck)
            {
                if (Input.GetKeyDown(MainPatch.MedHotKey))
                {
                    if (MainPatch.ToggleMedHotKey)
                    {
                        if (Player.main.GetComponent <LiveMixin>().health <= MainPatch.HealthPercentage)
                        {
                            if (medKit != null)
                            {
                                pInventory.ExecuteItemAction(ItemAction.Use, medKit.First());
                            }
                            else
                            {
                                if (MainPatch.TextValue == "Standard")
                                {
                                    ErrorMessage.AddWarning("You Do Not Have Any MedKits In your Inventory");
                                }
                                else if (MainPatch.TextValue == "Subtitles")
                                {
                                    Subtitles.Add("You Do Not Have Any MedKits In your Inventory");
                                }
                            }
                        }
                        else
                        {
                            if (MainPatch.TextValue == "Standard")
                            {
                                ErrorMessage.AddWarning($"You Do not need to use a FirstAidKit Your health is already above {MainPatch.HealthPercentage}");
                            }
                            else if (MainPatch.TextValue == "Subtitles")
                            {
                                Subtitles.Add($"You Do not need to use a FirstAidKit Your health is already above {MainPatch.HealthPercentage }");
                            }
                        }
                    }
                    else
                    {
                        if (MainPatch.TextValue == "Standard")
                        {
                            ErrorMessage.AddWarning("You have Disabled The MedKit Hotkey");
                        }
                        else if (MainPatch.TextValue == "Subtitles")
                        {
                            Subtitles.Add("You Have Disabled The MedKit Hotkey");
                        }
                    }
                }
            }
        }
Exemplo n.º 5
0
        public static bool Prefix(Fabricator __instance)
        {
            var ghostModel = __instance.ghost.GetAllComponentsInChildren <CrafterGhostModel>();

            foreach (var model in ghostModel)
            {
                ErrorMessage.AddWarning($"ghostModel is {model.ghostMaterials}");
            }
            return(true);
        }
Exemplo n.º 6
0
        internal static void Warning(string msg, bool showOnScreen = false)
        {
            string name = Assembly.GetCallingAssembly().GetName().Name;

            Console.WriteLine($"[{name}:WARN] {msg}");

            if (showOnScreen)
            {
                ErrorMessage.AddWarning(msg);
            }
        }
Exemplo n.º 7
0
        internal static bool NotifyGetCanSleep(Player player)
        {
            if (DayNightCycle.main.IsInSkipTimeMode())
            {
                return(false);
            }
            if (player.GetMode() != Player.Mode.Normal)
            {
                return(false);
            }
            if (player.isPiloting)
            {
                return(false);
            }
            if (player.movementSpeed != 0f)
            {
                return(false);
            }
            if (player.IsUnderwater() || player.IsSwimming() || player.IsUnderwaterForSwimming())
            {
                ErrorMessage.AddWarning("You can not sleep in the water."); return(false);
            }
            if (SurvivalHelper.IsSurvival() && (StatManager.sleep.RealValue >= 100 || StatManager.tiredness.RealValue < 25 || StatManager.coffee.RealValue >= 20))
            {
                if (StatManager.coffee.RealValue >= 20)
                {
                    ErrorMessage.AddWarning("You shouldn't drink coffee before going to sleep!");
                }
                else if (StatManager.sleep.RealValue >= 100 || StatManager.tiredness.RealValue < 25)
                {
                    ErrorMessage.AddWarning("You aren't tired enough!");
                }
                return(false);
            }
            Survival pSurvival = player.GetComponent <Survival>();

            if (SurvivalHelper.IsSurvival() && (pSurvival.food <= 20f || pSurvival.water <= 20f))
            {
                if (pSurvival.food <= 20f && pSurvival.water <= 20f)
                {
                    ErrorMessage.AddWarning("You need to eat and drink something before going to sleep!");
                }
                else if (pSurvival.food <= 20f)
                {
                    ErrorMessage.AddWarning("You need to eat something before going to sleep!");
                }
                else if (pSurvival.water <= 20f)
                {
                    ErrorMessage.AddWarning("You need to drink something before going to sleep!");
                }
                return(false);
            }
            return(true);
        }
        public static bool Prefix(CellManager __instance, IEntitySlot slot, ref EntitySlot.Filler __result)
        {
            int  num    = 0;
            bool flag   = __instance.spawner == null;
            bool result = true;

            if (flag)
            {
                __result = default;
                result   = false;
            }
            else if (!slot.IsCreatureSlot() && Config.ToggleValue)
            {
                while (string.IsNullOrEmpty(__result.classId) && num < Config.SliderValue)
                {
                    num++;
                    __result = __instance.spawner.GetPrefabForSlot(slot, true);
                    if (!string.IsNullOrEmpty(__result.classId))
                    {
                        WorldEntityInfo wei;
                        if (WorldEntityDatabase.TryGetInfo(__result.classId, out wei))
                        {
                            if (wei.techType == TechType.TimeCapsule)
                            {
                                ErrorMessage.AddWarning("!!!!!Time Capsule Spawned!!!!!");
                            }
                        }
                    }
                }
                ;
                result = false;
            }
            else if (slot.IsCreatureSlot() && Config.ToggleValue)
            {
                __result = __instance.spawner.GetPrefabForSlot(slot, true);
                WorldEntityInfo wei;
                if (!string.IsNullOrEmpty(__result.classId))
                {
                    if (WorldEntityDatabase.TryGetInfo(__result.classId, out wei))
                    {
                        if (wei.techType == TechType.ReaperLeviathan)
                        {
                            ErrorMessage.AddWarning("!!!!!WARNING Reaper Leviathan WARNING!!!!!");
                        }
                    }
                }
                result = false;
            }
            return(result);
        }
        public static bool OnHandClick_Prefix(Pickupable __instance, GUIHand hand)
        {
            if (__instance.gameObject != null)
            {
                // Get current item PID
                var pid = __instance.gameObject.GetComponent <PrefabIdentifier>();

                // If current item is one of our new flora
                if (pid != null && !string.IsNullOrEmpty(pid.ClassId) && CustomFlora.AllPlants.Contains(pid.ClassId))
                {
                    // If hand is free and item allowed to pickup
                    if (hand.IsFreeToInteract() && ((bool)allowedToPickUpMethod.Invoke(__instance, null) == true))
                    {
                        // Try pickup flora
                        if (Inventory.Get().Pickup(__instance, false))
                        {
                            // Show plant, hide seed and disable pickupable now that plant has been picked up
                            PrefabsHelper.ShowPlantAndHideSeed(__instance.gameObject.transform, pid.ClassId);
                            // Play grab animation
                            Player.main.PlayGrab();
                            // Refresh waterpark status
                            WaterParkItem component = __instance.GetComponent <WaterParkItem>();
                            if (component == null)
                            {
                                component = __instance.gameObject.GetComponent <WaterParkItem>();
                            }
                            if (component != null)
                            {
                                component.SetWaterPark(null);
                            }
                        }
                        else
                        {
                            ErrorMessage.AddWarning(Language.main.Get("InventoryFull"));
                        }
                    }
                    // Don't call origin function if current item is one of our new flora
                    return(false);
                }
            }
            // Give back execution to origin function
            return(true);
        }
Exemplo n.º 10
0
        public override GameObject GetGameObject()
        {
            // Get the ElectricalDefense module prefab and instantiate it
            var path = "WorldEntities/Tools/Seaglide";
            //var path = $"./QMods/BetterSeaglide/Assets/PowerGlide";
            var prefab = Resources.Load <GameObject>(path);
            var obj    = GameObject.Instantiate(prefab);

            ErrorMessage.AddWarning($"Tree is {CraftTree.GetTree(CraftTree.Type.Fabricator)}");

            // Get the TechTags and PrefabIdentifiers
            var techTag          = obj.GetComponent <TechTag>();
            var prefabIdentifier = obj.GetComponent <PrefabIdentifier>();

            // Change them so they fit to our requirements.
            techTag.type             = TechType;
            prefabIdentifier.ClassId = ClassID;

            return(obj);
        }
Exemplo n.º 11
0
        public void ExecuteAutosave()
        {
            if (!this.isSaving)
            {
                try
                {
                    CoroutineHost.StartCoroutine(this.AutosaveCoroutine());
                }

                catch (Exception ex)
                {
                    Entry.LogMessage(ex.ToString());
                    Entry.LogMessage("Failed to execute save coroutine. Something went wrong.");
                }
            }

            else
            {
                ErrorMessage.AddWarning("AutosaveInProgress".Translate());
            }
        }
Exemplo n.º 12
0
        private static void Patch_uGUI_QuickSlots_HandleInput_Postfix()
        {
            if (!TextInputOpen && Input.GetKeyDown(FirstAidHotkey) && !IntroVignette.isIntroActive && Player.main.GetCanItemBeUsed())
            {
#if DEBUG
                Debug.Log($"[MedkitHotkey] :: Pressed '{FirstAidHotkey.ToString()}', looking for medkit.");
#endif

                Inventory playerInventory = Inventory.main;

                IList <InventoryItem> medkits = playerInventory?.container.GetItems(TechType.FirstAidKit);

                if (medkits != null)
                {
                    playerInventory.UseItem(medkits.First());
                }

                else
                {
                    ErrorMessage.AddWarning("MissingMedkit".Translate());
                }
            }
        }
Exemplo n.º 13
0
        private void Tick()
        {
            this.totalTicks++;

#if DEBUG
            if (this.totalTicks % 30 == 0)
            {
                Entry.LogMessage($"totalTicks reached {this.totalTicks} ticks");
            }
#endif

            if (this.totalTicks == this.nextSaveTriggerTick - PriorWarningTicks)
            {
#if DEBUG
                Entry.LogMessage("Warning ticks reached, should display an ErrorMessage.");
#endif

                ErrorMessage.AddWarning("AutosaveWarning".FormatTranslate(PriorWarningTicks.ToString()));
            }

            else if (this.totalTicks >= this.nextSaveTriggerTick && !this.isSaving)
            {
                if (this.IsSafeToSave())
                {
                    this.ExecuteAutosave();
                }

                else
                {
#if DEBUG
                    Entry.LogMessage("IsSafeToSave false. Delaying autosave.");
#endif

                    this.DelayAutosave();
                }
            }
        }
Exemplo n.º 14
0
        // Modified IngameMenu.SaveGameAsync
        private IEnumerator AutosaveCoroutine()
        {
            this.isSaving = true;
            bool hardcoreMode = Entry.GetConfig.HardcoreMode;

#if DEBUG
            // Close ingame menu if open, used for testing
            IngameMenu.main.Close();
#endif

            ErrorMessage.AddWarning("AutosaveStarting".Translate());
            string cachedSaveSlot = !hardcoreMode?Path.Combine(GetSavePath(), SaveLoadManager.main.GetCurrentSlot()) : string.Empty;

#if DEBUG
            Entry.LogMessage($"Cached save slot == {cachedSaveSlot}");
#endif

            yield return(null);

            string autosaveSlot = !hardcoreMode?this.NextAutosaveSlotName() : string.Empty;

            if (!hardcoreMode)
            {
                SaveLoadManager.main.SetCurrentSlot(autosaveSlot);
            }

#if DEBUG
            Entry.LogMessage($"Set custom slot as {autosaveSlot}");
#endif

            yield return(null);

            IEnumerator saveGameAsync = (IEnumerator)typeof(IngameMenu).GetMethod("SaveGameAsync", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(IngameMenu.main, null);

            yield return(saveGameAsync);

#if DEBUG
            Entry.LogMessage("Executed _SaveGameAsync");
#endif

            if (!hardcoreMode)
            {
                this.CopyScreenshotFiles(cachedSaveSlot, autosaveSlot);

#if DEBUG
                Entry.LogMessage($"Copied screenshots from {cachedSaveSlot} to {autosaveSlot}");
#endif

                SaveLoadManager.main.SetCurrentSlot(cachedSaveSlot);
                this.lastUsedAutosaveName = autosaveSlot;
            }

            int autosaveInterval = Entry.GetConfig.SecondsBetweenAutosaves;
            this.nextSaveTriggerTick += autosaveInterval;

#if DEBUG
            Entry.LogMessage("Updated save slot and trigger tick");
#endif

            yield return(null);

            ErrorMessage.AddWarning("AutosaveEnding".FormatTranslate(autosaveInterval.ToString()));
            this.isSaving = false;

#if DEBUG
            Entry.LogMessage("Autosave sequence complete");
#endif

            yield break;
        }
Exemplo n.º 15
0
        // Modified IngameMenu.SaveGameAsync
        private IEnumerator AutosaveCoroutine()
        {
            this.isSaving = true;
            bool hardcoreMode = Entry.GetConfig.HardcoreMode;

#if DEBUG
            // Close ingame menu if open, used for testing
            IngameMenu.main.Close();
#endif

            ErrorMessage.AddWarning("AutosaveStarting".Translate());
            string cachedSaveSlot = string.Empty;

            if (!hardcoreMode)
            {
                if (!Directory.Exists(GetSavePath()))
                {
                    Entry.LogMessage(string.Format(
                                         "Fatal! Unable to find save directory, the expected '{0}' does not exist.",
                                         cachedSaveSlot));
                    ErrorMessage.AddError("FATAL SubnauticaAutosave could not find your SavedGames, see log for details!");

                    this.isSaving = false;
                    throw new FileNotFoundException(savePath);
                }

                cachedSaveSlot = Path.Combine(GetSavePath(), SaveLoadManager.main.GetCurrentSlot());
            }


#if DEBUG
            Entry.LogMessage($"Cached save slot == {cachedSaveSlot}");
#endif

            yield return(null);

            string autosaveSlot = !hardcoreMode?this.NextAutosaveSlotName() : string.Empty;

            if (!hardcoreMode)
            {
                SaveLoadManager.main.SetCurrentSlot(autosaveSlot, SaveLoadManager.StoryVersion.Reboot);
            }

#if DEBUG
            Entry.LogMessage($"Set custom slot as {autosaveSlot}");
#endif

            yield return(null);

            IEnumerator saveGameAsync = (IEnumerator)typeof(IngameMenu).GetMethod("SaveGameAsync", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(IngameMenu.main, null);

            yield return(saveGameAsync);

#if DEBUG
            Entry.LogMessage("Executed _SaveGameAsync");
#endif

            if (!hardcoreMode)
            {
                this.CopyScreenshotFiles(cachedSaveSlot, autosaveSlot);

#if DEBUG
                Entry.LogMessage($"Copied screenshots from {cachedSaveSlot} to {autosaveSlot}");
#endif

                SaveLoadManager.main.SetCurrentSlot(cachedSaveSlot, SaveLoadManager.StoryVersion.Reboot);
                this.lastUsedAutosaveName = autosaveSlot;
            }

            int autosaveInterval = Entry.GetConfig.SecondsBetweenAutosaves;
            this.nextSaveTriggerTick += autosaveInterval;

#if DEBUG
            Entry.LogMessage("Updated save slot and trigger tick");
#endif

            yield return(null);

            ErrorMessage.AddWarning("AutosaveEnding".FormatTranslate(autosaveInterval.ToString()));
            this.isSaving = false;

#if DEBUG
            Entry.LogMessage("Autosave sequence complete");
#endif

            yield break;
        }
Exemplo n.º 16
0
        public static void Patch_Player_Water()
        {
            //int[] TechTypes = new int[] { 4500, 808, 4501, 4516 };

            /*bool consoleOpened = (bool)typeof(DevConsole).GetField("state", BindingFlags.NonPublic |
             * BindingFlags.Instance).GetValue(typeof(DevConsole).GetField("instance", BindingFlags.NonPublic |
             * BindingFlags.Static).GetValue(null));*/

            Inventory pInventory = Inventory.main;

            IList <InventoryItem> filteredWater    = pInventory.container.GetItems(TechType.FilteredWater);
            IList <InventoryItem> stillSuitWater   = pInventory.container.GetItems(TechType.StillsuitWater);
            IList <InventoryItem> disinfectedWater = pInventory.container.GetItems(TechType.DisinfectedWater);
            IList <InventoryItem> bigfilteredWater = pInventory.container.GetItems(TechType.BigFilteredWater);
            IList <InventoryItem> cOffee           = pInventory.container.GetItems(TechType.Coffee);

            if (Input.GetKeyDown(Config.WaterHotKey) && Config.ToggleWaterHotKey == false && !MainPatch.EditNameCheck)
            {
                if (Config.TextValue == 0)
                {
                    ErrorMessage.AddWarning("You have Disabled The Water Hotkey");
                }
                else if (Config.TextValue == 1)
                {
                    Subtitles.Add("You Have Disabled The Water Hotkey");
                }
            }
            else if (Input.GetKeyDown(Config.WaterHotKey) && Config.ToggleWaterHotKey == true && !MainPatch.EditNameCheck)
            {
                if (Player.main.GetComponent <Survival>().water <= Config.WaterPercentage)
                {
                    if (filteredWater != null)
                    {
                        pInventory.ExecuteItemAction(ItemAction.Eat, filteredWater.First());
                    }
                    else if (stillSuitWater != null)
                    {
                        pInventory.ExecuteItemAction(ItemAction.Eat, stillSuitWater.First());
                    }
                    else if (disinfectedWater != null)
                    {
                        pInventory.ExecuteItemAction(ItemAction.Eat, disinfectedWater.First());
                    }
                    else if (bigfilteredWater != null)
                    {
                        pInventory.ExecuteItemAction(ItemAction.Eat, bigfilteredWater.First());
                    }
                    else if (cOffee != null)
                    {
                        pInventory.ExecuteItemAction(ItemAction.Eat, cOffee.First());
                    }
                    else
                    {
                        if (Config.TextValue == 0)
                        {
                            ErrorMessage.AddWarning("You Do Not Have Any Drinkable Items In your Inventory");
                        }
                        else if (Config.TextValue == 1)
                        {
                            Subtitles.Add("You Do Not Have Any Drinkable Items In your Inventory");
                        }
                    }
                }
                else
                {
                    if (Config.TextValue == 0)
                    {
                        ErrorMessage.AddWarning("You Do Not Need A Drink, You're Not Thirsty");
                    }
                    else if (Config.TextValue == 1)
                    {
                        Subtitles.Add("You Do Not Need A Drink, You're Not Thirsty");
                    }
                }
            }
        }
 public void ShowWarning(string message) => ErrorMessage.AddWarning(message);
        public static void Patch_Player_Health()
        {
            /*bool consoleOpened = (bool)typeof(DevConsole).GetField("state", BindingFlags.NonPublic |
             * BindingFlags.Instance).GetValue(typeof(DevConsole).GetField("instance", BindingFlags.NonPublic |
             * BindingFlags.Static).GetValue(null));*/

            Inventory pInventory = Inventory.main;

            IList <InventoryItem> medKit = pInventory.container.GetItems(TechType.FirstAidKit);

            if (Input.GetKeyDown(Config.MedHotKey) && Config.ToggleMedHotKey == false && !MainPatch.EditNameCheck)
            {
                if (Config.TextValue == 0)
                {
                    ErrorMessage.AddWarning("You have Disabled The MedKit Hotkey");
                }
                else if (Config.TextValue == 1)
                {
                    Subtitles.Add("You Have Disabled The MedKit Hotkey");
                }
            }
            else if (Input.GetKeyDown(Config.MedHotKey) && Config.ToggleMedHotKey == true && !MainPatch.EditNameCheck)
            {
#if DEBUG
                Debug.Log($"[WaterDrinkHotkey] :: PlayerHealth is {Player.main.GetComponent<LiveMixin>().health}");
                Debug.Log($"[WaterDrinkHotkey] :: Player Creative Gamemode is {GameModeUtils.IsOptionActive(GameModeOption.Creative)}");
                Debug.Log($"[WaterDrinkHotkey] :: Player NoSurvival Gamemode is {GameModeUtils.IsOptionActive(GameModeOption.NoSurvival)}");
                Debug.Log($"[WaterDrinkHotkey] :: Player Freedom Gamemode is {GameModeUtils.IsOptionActive(GameModeOption.Freedom)}");
                Debug.Log($"[WaterDrinkHotkey] :: Player Survival Gamemode is {GameModeUtils.IsOptionActive(GameModeOption.Survival)}");
#endif
                if (Player.main.GetComponent <LiveMixin>().health <= Config.HealthPercentage)
                {
                    if (medKit != null)
                    {
                        pInventory.ExecuteItemAction(ItemAction.Use, medKit.First());
                    }
                    else
                    {
                        if (Config.TextValue == 0)
                        {
                            ErrorMessage.AddWarning("You Do Not Have Any MedKits In your Inventory");
                        }
                        else if (Config.TextValue == 1)
                        {
                            Subtitles.Add("You Do Not Have Any MedKits In your Inventory");
                        }
                    }
                }
                else
                {
                    if (Config.TextValue == 0)
                    {
                        ErrorMessage.AddWarning($"You Do not need to use a FirstAidKit Your health is already above {Config.HealthPercentage}");
                    }
                    else if (Config.TextValue == 1)
                    {
                        Subtitles.Add($"You Do not need to use a FirstAidKit Your health is already above {Config.HealthPercentage }");
                    }
                }
            }
        }
Exemplo n.º 19
0
        public static void Patch_Player_Food_Drink()
        {
            Inventory            pInventory = Inventory.main;
            List <InventoryItem> foodDrink  = new List <InventoryItem>();

            if (pInventory.container.itemsMap != null)
            {
                foreach (var test in pInventory.container.itemsMap)
                {
                    var itemAction = pInventory.GetAllItemActions(test);
                    if (test != null)
                    {
                        if (itemAction == ItemAction.Eat)
                        {
                            if (!test.item.GetComponent <Thermos>())
                            {
                                foodDrink.Add(test);
                            }
                        }
                    }
                }
            }
            if (!MainPatch.EditNameCheck)
            {
                if (Input.GetKeyDown(MainPatch.FoodDrinkHotKey))
                {
                    if (MainPatch.ToggleFoodDrink)
                    {
                        if (Player.main.GetComponent <Survival>().food <= MainPatch.FoodDrinkPercentage || Player.main.GetComponent <Survival>().water <= MainPatch.FoodDrinkPercentage)
                        {
                            if (foodDrink.Count > 0)
                            {
                                pInventory.ExecuteItemAction(ItemAction.Eat, foodDrink.First());
                            }
                            else
                            {
                                if (MainPatch.TextValue == "Standard")
                                {
                                    ErrorMessage.AddWarning("You Do Not Have Any Eatable/Drinkable Items In your Inventory");
                                }
                                else if (MainPatch.TextValue == "Subtitles")
                                {
                                    Subtitles.Add("You Do Not Have Any Eatable/Drinkable Items In your Inventory");
                                }
                            }
                        }
                        else
                        {
                            if (MainPatch.TextValue == "Standard")
                            {
                                ErrorMessage.AddWarning($"You Do Not Need To Eat Or Drink, Your Food And Drink is Already Above {MainPatch.FoodDrinkPercentage}");
                            }
                            else if (MainPatch.TextValue == "Subtitles")
                            {
                                Subtitles.Add($"You Do Not Need To Eat Or Drink, Your Food And Drink is Already Above {MainPatch.FoodDrinkPercentage}");
                            }
                        }
                    }
                    else
                    {
                        if (MainPatch.TextValue == "Standard")
                        {
                            ErrorMessage.AddWarning("You have Disabled The Food/Drink Hotkey");
                        }
                        else if (MainPatch.TextValue == "Subtitles")
                        {
                            Subtitles.Add("You Have Disabled The Food/Drink Hotkey");
                        }
                    }
                }
            }
        }
Exemplo n.º 20
0
        public static void Patch_Player_Food()
        {
            /*bool consoleOpened = (bool)typeof(DevConsole).GetField("state", BindingFlags.NonPublic |
             * BindingFlags.Instance).GetValue(typeof(DevConsole).GetField("instance", BindingFlags.NonPublic |
             * BindingFlags.Static).GetValue(null));*/

            Inventory pInventory = Inventory.main;

            IList <InventoryItem> cookedBladderFish   = pInventory.container.GetItems(TechType.CookedBladderfish);
            IList <InventoryItem> cookedBoomerang     = pInventory.container.GetItems(TechType.CookedBoomerang);
            IList <InventoryItem> cookedEyeeye        = pInventory.container.GetItems(TechType.CookedEyeye);
            IList <InventoryItem> cookedGarryFish     = pInventory.container.GetItems(TechType.CookedGarryFish);
            IList <InventoryItem> cookedHoleFish      = pInventory.container.GetItems(TechType.CookedHoleFish);
            IList <InventoryItem> cookedHoopFish      = pInventory.container.GetItems(TechType.CookedHoopfish);
            IList <InventoryItem> cookedHoverFish     = pInventory.container.GetItems(TechType.CookedHoverfish);
            IList <InventoryItem> cookedLavaBoomerang = pInventory.container.GetItems(TechType.CookedLavaBoomerang);
            IList <InventoryItem> cookedLavaEyeeye    = pInventory.container.GetItems(TechType.CookedLavaEyeye);
            IList <InventoryItem> cookedOculus        = pInventory.container.GetItems(TechType.CookedOculus);
            IList <InventoryItem> cookedPeeper        = pInventory.container.GetItems(TechType.CookedPeeper);
            IList <InventoryItem> cookedReginald      = pInventory.container.GetItems(TechType.CookedReginald);
            IList <InventoryItem> cookedSpadeFish     = pInventory.container.GetItems(TechType.CookedSpadefish);
            IList <InventoryItem> cookedSpineFish     = pInventory.container.GetItems(TechType.CookedSpinefish);
            IList <InventoryItem> curedBladderFish    = pInventory.container.GetItems(TechType.CuredBladderfish);
            IList <InventoryItem> curedBoomerang      = pInventory.container.GetItems(TechType.CuredBoomerang);
            IList <InventoryItem> curedEyeeye         = pInventory.container.GetItems(TechType.CuredEyeye);
            IList <InventoryItem> curedGarryFish      = pInventory.container.GetItems(TechType.CuredGarryFish);
            IList <InventoryItem> curedHoleFish       = pInventory.container.GetItems(TechType.CuredHoleFish);
            IList <InventoryItem> curedHoopFish       = pInventory.container.GetItems(TechType.CuredHoopfish);
            IList <InventoryItem> curedHoverFish      = pInventory.container.GetItems(TechType.CuredHoverfish);
            IList <InventoryItem> curedLavaBoomerang  = pInventory.container.GetItems(TechType.CuredLavaBoomerang);
            IList <InventoryItem> curedLavaEyeeye     = pInventory.container.GetItems(TechType.CuredLavaEyeye);
            IList <InventoryItem> curedOculus         = pInventory.container.GetItems(TechType.CuredOculus);
            IList <InventoryItem> curedPeeper         = pInventory.container.GetItems(TechType.CuredPeeper);
            IList <InventoryItem> curedReginald       = pInventory.container.GetItems(TechType.CuredReginald);
            IList <InventoryItem> curedSpadeFish      = pInventory.container.GetItems(TechType.CuredSpadefish);
            IList <InventoryItem> curedSpineFish      = pInventory.container.GetItems(TechType.CuredSpinefish);
            IList <InventoryItem> bulboTreeFruit      = pInventory.container.GetItems(TechType.BulboTreePiece);
            IList <InventoryItem> chinaPotato         = pInventory.container.GetItems(TechType.PurpleVegetable);
            IList <InventoryItem> laternFruit         = pInventory.container.GetItems(TechType.HangingFruit);
            IList <InventoryItem> marbleMelon         = pInventory.container.GetItems(TechType.Melon);
            IList <InventoryItem> nutBlock            = pInventory.container.GetItems(TechType.NutrientBlock);
            IList <InventoryItem> snacks1             = pInventory.container.GetItems(TechType.Snack1);
            IList <InventoryItem> snacks2             = pInventory.container.GetItems(TechType.Snack2);
            IList <InventoryItem> snacks3             = pInventory.container.GetItems(TechType.Snack3);

            if (Input.GetKeyDown(Config.FoodHotKey) && Config.ToggleFoodHotKey == false && !MainPatch.EditNameCheck)
            {
                if (Config.TextValue == 0)
                {
                    ErrorMessage.AddWarning("You have Disabled The Food Hotkey");
                }
                else if (Config.TextValue == 1)
                {
                    Subtitles.main.Add("You Have Disabled The Food Hotkey");
                }
            }
            else if (Input.GetKeyDown(Config.FoodHotKey) && Config.ToggleFoodHotKey)
            {
                if (Player.main.GetComponent <Survival>().food <= Config.FoodPercentage)
                {
                    if (cookedBladderFish != null)
                    {
                        pInventory.UseItem(cookedBladderFish.First());
                    }
                    else if (cookedBoomerang != null)
                    {
                        pInventory.UseItem(cookedBoomerang.First());
                    }
                    else if (cookedEyeeye != null)
                    {
                        pInventory.UseItem(cookedEyeeye.First());
                    }
                    else if (cookedGarryFish != null)
                    {
                        pInventory.UseItem(cookedGarryFish.First());
                    }
                    else if (cookedHoleFish != null)
                    {
                        pInventory.UseItem(cookedHoleFish.First());
                    }
                    else if (cookedHoopFish != null)
                    {
                        pInventory.UseItem(cookedHoopFish.First());
                    }
                    else if (cookedHoverFish != null)
                    {
                        pInventory.UseItem(cookedHoverFish.First());
                    }
                    else if (cookedLavaBoomerang != null)
                    {
                        pInventory.UseItem(cookedLavaBoomerang.First());
                    }
                    else if (cookedLavaEyeeye != null)
                    {
                        pInventory.UseItem(cookedLavaEyeeye.First());
                    }
                    else if (cookedOculus != null)
                    {
                        pInventory.UseItem(cookedOculus.First());
                    }
                    else if (cookedPeeper != null)
                    {
                        pInventory.UseItem(cookedPeeper.First());
                    }
                    else if (cookedReginald != null)
                    {
                        pInventory.UseItem(cookedReginald.First());
                    }
                    else if (cookedSpadeFish != null)
                    {
                        pInventory.UseItem(cookedSpadeFish.First());
                    }
                    else if (cookedSpineFish != null)
                    {
                        pInventory.UseItem(cookedSpineFish.First());
                    }
                    else if (curedBladderFish != null)
                    {
                        pInventory.UseItem(curedBladderFish.First());
                    }
                    else if (curedBoomerang != null)
                    {
                        pInventory.UseItem(curedBoomerang.First());
                    }
                    else if (curedEyeeye != null)
                    {
                        pInventory.UseItem(curedEyeeye.First());
                    }
                    else if (curedGarryFish != null)
                    {
                        pInventory.UseItem(curedGarryFish.First());
                    }
                    else if (curedHoleFish != null)
                    {
                        pInventory.UseItem(curedHoleFish.First());
                    }
                    else if (curedHoopFish != null)
                    {
                        pInventory.UseItem(curedHoopFish.First());
                    }
                    else if (curedHoverFish != null)
                    {
                        pInventory.UseItem(curedHoverFish.First());
                    }
                    else if (curedLavaBoomerang != null)
                    {
                        pInventory.UseItem(curedLavaBoomerang.First());
                    }
                    else if (curedLavaEyeeye != null)
                    {
                        pInventory.UseItem(curedLavaEyeeye.First());
                    }
                    else if (curedOculus != null)
                    {
                        pInventory.UseItem(curedOculus.First());
                    }
                    else if (curedPeeper != null)
                    {
                        pInventory.UseItem(curedPeeper.First());
                    }
                    else if (curedReginald != null)
                    {
                        pInventory.UseItem(curedReginald.First());
                    }
                    else if (curedSpadeFish != null)
                    {
                        pInventory.UseItem(curedSpadeFish.First());
                    }
                    else if (curedSpineFish != null)
                    {
                        pInventory.UseItem(curedSpineFish.First());
                    }
                    else if (bulboTreeFruit != null)
                    {
                        pInventory.UseItem(bulboTreeFruit.First());
                    }
                    else if (chinaPotato != null)
                    {
                        pInventory.UseItem(chinaPotato.First());
                    }
                    else if (laternFruit != null)
                    {
                        pInventory.UseItem(laternFruit.First());
                    }
                    else if (marbleMelon != null)
                    {
                        pInventory.UseItem(marbleMelon.First());
                    }
                    else if (nutBlock != null)
                    {
                        pInventory.UseItem(nutBlock.First());
                    }
                    else if (snacks1 != null)
                    {
                        pInventory.UseItem(snacks1.First());
                    }
                    else if (snacks2 != null)
                    {
                        pInventory.UseItem(snacks2.First());
                    }
                    else if (snacks3 != null)
                    {
                        pInventory.UseItem(snacks3.First());
                    }
                    else
                    {
                        if (Config.TextValue == 0)
                        {
                            ErrorMessage.AddWarning("You Do Not Have Any Eatable Items In your Inventory");
                        }
                        else if (Config.TextValue == 1)
                        {
                            Subtitles.main.Add("You Do Not Have Any Eatable Items In your Inventory");
                        }
                    }
                }
                else
                {
                    if (Config.TextValue == 0)
                    {
                        ErrorMessage.AddWarning("You Do Not Need Too Eat, You're Not Hungry");
                    }
                    else if (Config.TextValue == 1)
                    {
                        Subtitles.main.Add("You Do Not Need Too Eat, You're Not Hungry");
                    }
                }
            }
        }
Exemplo n.º 21
0
        public static void Patch_Player_Heat()
        {
            Inventory            pInventory = Inventory.main;
            List <InventoryItem> heatItems  = new List <InventoryItem>();

            if (pInventory.container.itemsMap != null)
            {
                foreach (var test in pInventory.container.itemsMap)
                {
                    if (test != null)
                    {
                        if (test.item.GetComponent <Thermos>())
                        {
                            heatItems.Add(test);
                        }
                    }
                }
            }
            if (!MainPatch.EditNameCheck)
            {
                if (Input.GetKeyDown(MainPatch.HeatHotkey))
                {
                    if (MainPatch.ToggleHeatHotKey)
                    {
                        if (Player.main.GetComponent <Survival>().bodyTemperature.currentBodyHeatValue <= MainPatch.HeatPercentage)
                        {
                            if (heatItems.Count > 0)
                            {
                                pInventory.ExecuteItemAction(ItemAction.Eat, heatItems.First());
                            }
                            else
                            {
                                if (MainPatch.TextValue == "Standard")
                                {
                                    ErrorMessage.AddWarning("You Do Not Have Any Thermos In your Inventory");
                                }
                                else if (MainPatch.TextValue == "Subtitles")
                                {
                                    Subtitles.Add("You Do Not Have Any Thermos In your Inventory");
                                }
                            }
                        }
                        else
                        {
                            if (MainPatch.TextValue == "Standard")
                            {
                                ErrorMessage.AddWarning($"You Do Not Need To Use a Thermos Your Heat is Already Above {MainPatch.HeatPercentage}");
                            }
                            else if (MainPatch.TextValue == "Subtitles")
                            {
                                Subtitles.Add($"You Do Not Need To Use a Thermos Your Heat is Already Above {MainPatch.HeatPercentage}");
                            }
                        }
                    }
                    else
                    {
                        if (MainPatch.TextValue == "Standard")
                        {
                            ErrorMessage.AddWarning("You Have Disabled The Thermos Hotkey");
                        }
                        else if (MainPatch.TextValue == "Subtitles")
                        {
                            Subtitles.Add("You Have Disabled The Thermos Hotkey");
                        }
                    }
                }
            }
        }