Example #1
0
            private static void Postfix(string name)
            {
                string json = SaveGameSlots.LoadDataFromSlot(name, SAVE_SLOT_NAME);

                if (string.IsNullOrEmpty(json))
                {
                    return;
                }

                HungerRevamped hungerRevamped = HungerRevamped.Instance;

                JSON.Load(json).Populate(saveDataProxy);

                hungerRevamped.storedCalories     = saveDataProxy.storedCalories + Tuning.defaultStoredCalories;
                hungerRevamped.wellFedHungerScore = saveDataProxy.wellFedHungerScore;
                hungerRevamped.deferredFoodPoisonings.Clear();
                if (saveDataProxy.deferredFoodPoisonings != null)
                {
                    hungerRevamped.deferredFoodPoisonings.AddRange(saveDataProxy.deferredFoodPoisonings);
                }

                Hunger hunger = GameManager.GetHungerComponent();

                hunger.m_CurrentReserveCalories = Mathf.Min(hunger.m_CurrentReserveCalories, hunger.m_MaxReserveCalories);
            }
Example #2
0
            private static bool Prefix(StatusBar __instance, ref float __result)
            {
                if (__instance.m_StatusBarType != StatusBar.StatusBarType.Hunger)
                {
                    return(true);
                }

                HungerRevamped hungerRevamped = HungerRevamped.Instance;
                Hunger         hunger         = hungerRevamped.hunger;

                float hungerFraction = hunger.m_CurrentReserveCalories / hunger.m_MaxReserveCalories;

                if (hungerFraction < 0.005f || hungerFraction > 0.999f)
                {
                    __result = 0f;
                }
                else
                {
                    if (hunger.IsAddingCaloriesOverTime())
                    {
                        __result = -hunger.GetCaloriesToAddOverTime();
                    }
                    else
                    {
                        __result = 0.8f * (hunger.GetCurrentCalorieBurnPerHour() + hungerRevamped.GetStoredCaloriesChangePerHour());
                    }
                }

                return(false);
            }
Example #3
0
            private static void Postfix(SaveSlotType gameMode, string name)
            {
                HungerRevamped hungerRevamped = HungerRevamped.Instance;

                saveDataProxy.storedCalories         = hungerRevamped.storedCalories - Tuning.defaultStoredCalories;
                saveDataProxy.wellFedHungerScore     = hungerRevamped.wellFedHungerScore;
                saveDataProxy.deferredFoodPoisonings = hungerRevamped.deferredFoodPoisonings.ToArray();

                string json = JSON.Dump(saveDataProxy, EncodeOptions.NoTypeHints);

                SaveGameSlots.SaveDataToSlot(gameMode, SaveGameSystem.m_CurrentEpisode, SaveGameSystem.m_CurrentGameId, name, SAVE_SLOT_NAME, json);
            }