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