public static void SetupObjects() { SaveGame.m_Objects.Clear(); SaveGame.m_Objects.Add(DifficultySettings.Get()); SaveGame.m_Objects.Add(DialogsManager.Get()); SaveGame.m_Objects.Add(AIManager.Get()); SaveGame.m_Objects.Add(EnemyAISpawnManager.Get()); SaveGame.m_Objects.Add(TriggersManager.Get()); SaveGame.m_Objects.Add(ItemsManager.Get()); SaveGame.m_Objects.Add(SensorManager.Get()); SaveGame.m_Objects.Add(ConstructionGhostManager.Get()); SaveGame.m_Objects.Add(StaticObjectsManager.Get()); SaveGame.m_Objects.Add(Player.Get()); SaveGame.m_Objects.Add(PlayerConditionModule.Get()); SaveGame.m_Objects.Add(PlayerInjuryModule.Get()); SaveGame.m_Objects.Add(PlayerDiseasesModule.Get()); SaveGame.m_Objects.Add(StatsManager.Get()); SaveGame.m_Objects.Add(HintsManager.Get()); SaveGame.m_Objects.Add(ObjectivesManager.Get()); SaveGame.m_Objects.Add(StoryObjectivesManager.Get()); SaveGame.m_Objects.Add(HUDObjectives.Get()); SaveGame.m_Objects.Add(MenuNotepad.Get()); SaveGame.m_Objects.Add(MapTab.Get()); SaveGame.m_Objects.Add(Music.Get()); SaveGame.m_Objects.Add(RainManager.Get()); SaveGame.m_Objects.Add(SleepController.Get()); SaveGame.m_Objects.Add(MainLevel.Instance); SaveGame.m_Objects.Add(ScenarioManager.Get()); SaveGame.m_Objects.Add(InventoryBackpack.Get()); SaveGame.m_Objects.Add(ReplicatedSessionState.Get()); }
private void OnEat(ConsumableInfo info) { if (info.m_ConsumeEffect != ConsumeEffect.None && UnityEngine.Random.Range(0f, 1f) <= info.m_ConsumeEffectChance && info.m_ConsumeEffectLevel >= 0) { PlayerDiseasesModule.Get().RequestDisease(info.m_ConsumeEffect, info.m_ConsumeEffectDelay, info.m_ConsumeEffectLevel); } PlayerDiseasesModule.Get().OnEat(info); PlayerInjuryModule.Get().OnEat(info); if (info.m_Disgusting) { PlayerAudioModule.Get().PlayEatingDisgustingSound(1f, false); } else { PlayerAudioModule.Get().PlayEatingSound(1f, false); } EventsManager.OnEvent(Enums.Event.Eat, 1, (int)info.m_ID); PlayerSanityModule.Get().OnEat(info.m_SanityChange); Localization localization = GreenHellGame.Instance.GetLocalization(); HUDMessages hudmessages = (HUDMessages)HUDManager.Get().GetHUD(typeof(HUDMessages)); string text = string.Empty; if (info.m_ConsumeEffect == ConsumeEffect.FoodPoisoning) { text = info.m_ConsumeEffectLevel.ToString("F0") + " " + localization.Get("HUD_FoodPoisoning"); hudmessages.AddMessage(text, null, HUDMessageIcon.FoodPoisoning, string.Empty); } if (info.m_AddEnergy > 0f) { text = info.m_AddEnergy.ToString("F0") + " " + localization.Get("HUD_Energy"); hudmessages.AddMessage(text, null, HUDMessageIcon.Energy, string.Empty); } if (info.m_Water > 0f) { text = info.m_Water.ToString("F0") + " " + localization.Get("HUD_Hydration"); hudmessages.AddMessage(text, null, HUDMessageIcon.Hydration, string.Empty); } if (info.m_Fat > 0f) { text = info.m_Fat.ToString("F0") + " " + localization.Get("HUD_Nutrition_Fat"); hudmessages.AddMessage(text, null, HUDMessageIcon.Fat, string.Empty); } if (info.m_Proteins > 0f) { text = info.m_Proteins.ToString("F0") + " " + localization.Get("HUD_Nutrition_Protein"); hudmessages.AddMessage(text, null, HUDMessageIcon.Proteins, string.Empty); } if (info.m_Carbohydrates > 0f) { text = info.m_Carbohydrates.ToString("F0") + " " + localization.Get("HUD_Nutrition_Carbo"); hudmessages.AddMessage(text, null, HUDMessageIcon.Carbo, string.Empty); } text = localization.Get(TriggerAction.GetTextPerfect(TriggerAction.TYPE.Eat)) + ": " + info.GetNameToDisplayLocalized(); hudmessages.AddMessage(text, null, HUDMessageIcon.Item, info.m_IconName); ItemsManager.Get().OnEat(info); if (info.m_ID == ItemID.coca_leafs) { PlayerCocaineModule.Get().OnEatCocaine(); } }
public static void SetupObjects() { SaveGame.m_Objects.Clear(); SaveGame.m_Objects.Add(MainLevel.Instance); SaveGame.m_Objects.Add(Scenario.Get()); SaveGame.m_Objects.Add(AIManager.Get()); SaveGame.m_Objects.Add(TriggersManager.Get()); SaveGame.m_Objects.Add(ItemsManager.Get()); SaveGame.m_Objects.Add(SensorManager.Get()); SaveGame.m_Objects.Add(ConstructionGhostManager.Get()); SaveGame.m_Objects.Add(StaticObjectsManager.Get()); SaveGame.m_Objects.Add(Player.Get()); SaveGame.m_Objects.Add(PlayerConditionModule.Get()); SaveGame.m_Objects.Add(PlayerInjuryModule.Get()); SaveGame.m_Objects.Add(PlayerDiseasesModule.Get()); SaveGame.m_Objects.Add(StatsManager.Get()); SaveGame.m_Objects.Add(HintsManager.Get()); SaveGame.m_Objects.Add(ObjectivesManager.Get()); SaveGame.m_Objects.Add(HUDObjectives.Get()); SaveGame.m_Objects.Add(MenuNotepad.Get()); SaveGame.m_Objects.Add(MapTab.Get()); SaveGame.m_Objects.Add(Music.Get()); SaveGame.m_Objects.Add(RainManager.Get()); SaveGame.m_Objects.Add(BalanceSystem.Get()); }
private void UpdateDebug() { if (!GreenHellGame.DEBUG) { return; } if (this.m_DebugSpawnID != ItemID.None && Input.GetKeyDown(KeyCode.I)) { this.CreateItem(this.m_DebugSpawnID, true, Player.Get().transform.position + Player.Get().transform.forward * 4f, Player.Get().transform.rotation); } if (Input.GetKey(KeyCode.U) && Input.GetKey(KeyCode.LeftControl)) { this.UnlockAllItemsInNotepad(); PlayerDiseasesModule.Get().UnlockAllDiseasesInNotepad(); PlayerDiseasesModule.Get().UnlockAllDiseasesTratmentInNotepad(); PlayerDiseasesModule.Get().UnlockAllSymptomsInNotepad(); PlayerDiseasesModule.Get().UnlockAllSymptomTreatmentsInNotepad(); PlayerInjuryModule.Get().UnlockAllInjuryState(); PlayerInjuryModule.Get().UnlockAllInjuryStateTreatment(); PlayerInjuryModule.Get().UnlockAllKnownInjuries(); this.UnloackAllConsumed(); this.UnlockAllCrafted(); this.UnlockAllBoiledData(); this.UnlockAllCollected(); this.UnlockAllItemInfos(); } }
private void UpdateFever() { if (Time.time - this.m_LastFeverSanityLossTime < 1f) { return; } int num = 2; Disease disease = PlayerDiseasesModule.Get().GetDisease(ConsumeEffect.Fever); if (disease.IsActive() && this.m_FeverSanityLoss < this.m_MaxFeverSanityLoss) { num = Mathf.Clamp(this.m_Sanity - num, 0, 100) - this.m_Sanity; this.m_FeverSanityLoss -= num; this.m_Sanity += num; this.OnChangeSanity((float)num, string.Empty, false); } else if (!disease.IsActive() && this.m_FeverSanityLoss > 0) { num = Mathf.Clamp(this.m_Sanity + num, 0, 100) - this.m_Sanity; this.m_FeverSanityLoss -= num; this.m_Sanity += num; this.OnChangeSanity((float)num, string.Empty, false); } this.m_LastFeverSanityLossTime = Time.time; }
public static void LoadPlayer(string save_name) { if (SaveGame.m_State != SaveGame.State.None) { Debug.LogWarning("Can't load player, state = " + SaveGame.m_State.ToString()); return; } if (!File.Exists(Application.persistentDataPath + "/" + save_name)) { return; } Debug.Log("LOAD_PLAYER - " + save_name); SaveGame.m_State = SaveGame.State.Load; SaveGame.SetupObjects(); SaveGame.m_IVals.Clear(); SaveGame.m_SVals.Clear(); SaveGame.m_FVals.Clear(); SaveGame.m_BVals.Clear(); BinaryFormatter binaryFormatter = new BinaryFormatter(); FileStream fileStream = File.Open(Application.persistentDataPath + "/" + save_name, FileMode.Open); GameVersion lhs = new GameVersion((GameVersion)binaryFormatter.Deserialize(fileStream)); GameMode gameMode = (GameMode)binaryFormatter.Deserialize(fileStream); long num = (long)binaryFormatter.Deserialize(fileStream); int num2 = (int)binaryFormatter.Deserialize(fileStream); int num3 = (int)binaryFormatter.Deserialize(fileStream); if (lhs >= GreenHellGame.s_GameVersionEarlyAccessUpdate8) { bool flag = (bool)binaryFormatter.Deserialize(fileStream); } if (lhs >= GreenHellGame.s_GameVersionEarlyAccessUpdate12 && lhs < GreenHellGame.s_GameVersionEarlyAccessUpdate13 && (bool)binaryFormatter.Deserialize(fileStream)) { DifficultySettings.SetActivePresetType(DifficultySettings.PresetType.PermaDeath); } if (lhs >= GreenHellGame.s_GameVersionEarlyAccessUpdate13) { bool flag2 = (bool)binaryFormatter.Deserialize(fileStream); } if (GreenHellGame.s_GameVersion >= GreenHellGame.s_GameVersionMasterShelters1_3) { BinaryFormatter binaryFormatter2 = binaryFormatter; Stream serializationStream = fileStream; P2PSession instance = P2PSession.Instance; binaryFormatter2.Serialize(serializationStream, ((instance != null) ? instance.GetSessionId() : null) ?? ""); } SaveGame.m_IVals = (Dictionary <string, int>)binaryFormatter.Deserialize(fileStream); SaveGame.m_SVals = (Dictionary <string, string>)binaryFormatter.Deserialize(fileStream); SaveGame.m_FVals = (Dictionary <string, float>)binaryFormatter.Deserialize(fileStream); SaveGame.m_BVals = (Dictionary <string, bool>)binaryFormatter.Deserialize(fileStream); fileStream.Close(); Player.Get().Load(); PlayerInjuryModule.Get().Load(); PlayerConditionModule.Get().Load(); PlayerDiseasesModule.Get().Load(); ItemsManager.Get().Load(); MainLevel.Instance.Load(); GreenHellGame.Instance.m_LoadGameState = LoadGameState.FullLoadCompleted; SaveGame.m_State = SaveGame.State.None; }
public override void Check() { base.Check(); this.UpdateLevel(); if (this.m_Level >= 1) { PlayerDiseasesModule.Get().RequestDisease(ConsumeEffect.DirtSickness, 0f, 0); } }
public void OnInsomniaHealButton() { Insomnia insomnia = (Insomnia)PlayerDiseasesModule.Get().GetDisease(ConsumeEffect.Insomnia); if (insomnia != null) { insomnia.m_InsomniaLevel = 0f; SleepController.Get().m_LastWakeUpTimeLogical = MainLevel.Instance.GetCurrentTimeMinutes(); } }
public void CheckInfectionFromDirt() { float num = UnityEngine.Random.Range(0f, 1f); Disease disease = PlayerDiseasesModule.Get().GetDisease(ConsumeEffect.DirtSickness); if (num < (float)disease.m_Level * 0.2f) { this.m_HealingResultInjuryState = InjuryState.Infected; } }
public override bool ShouldShow() { for (int i = 0; i < this.m_DiseaseType.Count; i++) { if (PlayerDiseasesModule.Get().IsDiseaseUnlocked(this.m_DiseaseType[i])) { return(true); } } return(false); }
public void Activate(DiseaseRequest request) { if (!this.m_Active) { this.m_Active = true; this.m_StartTime = MainLevel.Instance.GetCurrentTimeMinutes(); this.m_Level = request.m_Level; this.ActivateSymptoms(); PlayerSanityModule.Get().OnEvent(PlayerSanityModule.SanityEventType.Disease, 1); PlayerDiseasesModule.Get().UnlockKnownDisease(this.m_Type); this.m_Activated = true; } }
public void OnInsomniaButton() { Insomnia insomnia = (Insomnia)PlayerDiseasesModule.Get().GetDisease(ConsumeEffect.Insomnia); if (insomnia != null) { if (insomnia.m_InsomniaLevel <= 0f) { SleepController.Get().m_LastWakeUpTimeLogical -= insomnia.m_NoSleepTmeToActivate; return; } SleepController.Get().m_LastWakeUpTimeLogical -= insomnia.m_NoSleepTimeToIncreaseLevel; } }
private void OnDrink(LiquidData data, float hydration_amount, float fat_amount, float proteins_amount, float carbo_amount, float energy_amount) { if (data.m_ConsumeEffect != ConsumeEffect.None && UnityEngine.Random.Range(0f, 1f) <= data.m_ConsumeEffectChance && data.m_ConsumeEffectLevel >= 0) { PlayerDiseasesModule.Get().RequestDisease(data.m_ConsumeEffect, data.m_ConsumeEffectDelay, data.m_ConsumeEffectLevel); } PlayerDiseasesModule.Get().OnDrink(data.m_LiquidType, hydration_amount); PlayerInjuryModule.Get().OnDrink(data); if (data.m_Disgusting) { PlayerAudioModule.Get().PlayDrinkingDisgustingSound(1f, false); } else { PlayerAudioModule.Get().PlayDrinkingSound(1f, false); } Localization localization = GreenHellGame.Instance.GetLocalization(); HUDMessages hudmessages = (HUDMessages)HUDManager.Get().GetHUD(typeof(HUDMessages)); string text = string.Empty; if (energy_amount > 0f) { text = energy_amount.ToString("F0") + " " + localization.Get("HUD_Energy"); hudmessages.AddMessage(text, null, HUDMessageIcon.Energy, string.Empty); } if (hydration_amount > 0f) { text = hydration_amount.ToString("F0") + " " + localization.Get("HUD_Hydration"); hudmessages.AddMessage(text, null, HUDMessageIcon.Hydration, string.Empty); } if (fat_amount > 0f) { text = fat_amount.ToString("F0") + " " + localization.Get("HUD_Nutrition_Fat"); hudmessages.AddMessage(text, null, HUDMessageIcon.Fat, string.Empty); } if (proteins_amount > 0f) { text = proteins_amount.ToString("F0") + " " + localization.Get("HUD_Nutrition_Protein"); hudmessages.AddMessage(text, null, HUDMessageIcon.Proteins, string.Empty); } if (carbo_amount > 0f) { text = carbo_amount.ToString("F0") + " " + localization.Get("HUD_Nutrition_Carbo"); hudmessages.AddMessage(text, null, HUDMessageIcon.Carbo, string.Empty); } text = localization.Get(TriggerAction.GetTextPerfect(TriggerAction.TYPE.Drink)) + ": " + GreenHellGame.Instance.GetLocalization().Get(data.m_LiquidType.ToString()); hudmessages.AddMessage(text, null, HUDMessageIcon.None, string.Empty); EventsManager.OnEvent(Enums.Event.Drink, 1, (int)data.m_LiquidType); }
public void OnInsomniaDecreaseButton() { Insomnia insomnia = (Insomnia)PlayerDiseasesModule.Get().GetDisease(ConsumeEffect.Insomnia); if (insomnia != null) { if (insomnia.m_InsomniaLevel < 1f) { this.OnInsomniaHealButton(); return; } SleepController.Get().m_LastWakeUpTimeLogical += insomnia.m_NoSleepTimeToIncreaseLevel; SleepController.Get().m_LastWakeUpTimeLogical = System.Math.Min(MainLevel.Instance.GetCurrentTimeMinutes(), SleepController.Get().m_LastWakeUpTimeLogical); } }
private void ActivateSymptoms() { for (int i = 0; i < this.m_Symptoms.Count; i++) { global::DiseaseSymptom symptom = PlayerDiseasesModule.Get().GetSymptom(this.m_Symptoms[i]); if (symptom == null) { DebugUtils.Assert(DebugUtils.AssertType.Info); } else if (!symptom.IsActive()) { symptom.Activate(); } } }
public override bool ShouldShow() { for (int i = 0; i < this.m_DiseaseTreatmentType.Count; i++) { if (this.m_DiseaseTreatmentType[i] == NotepadKnownDiseaseTreatment.None) { return(true); } if (PlayerDiseasesModule.Get().IsDiseaseTreatmentUnlocked(this.m_DiseaseTreatmentType[i])) { return(true); } } return(false); }
private void UpdateHydration() { if (this.m_Player.m_DreamActive) { return; } FPPController fppcontroller = this.m_Player.m_FPPController; if (!fppcontroller) { return; } float num = 0f; float num2 = 1f; if (!Cheats.m_GodMode || this.m_LossParametersBlocked) { float deltaTime = Time.deltaTime; if (fppcontroller.IsRunning()) { num2 *= this.m_HydrationConsumptionRunMul; } num = this.m_HydrationConsumptionPerSecond * deltaTime * num2; if (PlayerDiseasesModule.Get().GetDisease(ConsumeEffect.Fever).IsActive()) { num += this.m_HydrationConsumptionDuringFeverPerSecond * deltaTime; } for (int i = 0; i < this.m_InjuryModule.m_Injuries.Count; i++) { Injury injury = this.m_InjuryModule.m_Injuries[i]; if (injury.m_Type == InjuryType.VenomBite || injury.m_Type == InjuryType.SnakeBite) { num += Injury.s_PoisonedWoundHydrationDecPerSec * deltaTime; } } } GameDifficulty gameDifficulty = GreenHellGame.Instance.m_GameDifficulty; if (gameDifficulty == GameDifficulty.Normal) { num *= GreenHellGame.s_NormalModeLossMul; } else if (gameDifficulty == GameDifficulty.Easy) { num *= GreenHellGame.s_EasyModeLossMul; } this.DecreaseHydration(num); }
public static void SetupObjectsCoop() { SaveGame.m_Objects.Clear(); SaveGame.m_Objects.Add(ItemsManager.Get()); SaveGame.m_Objects.Add(Player.Get()); SaveGame.m_Objects.Add(PlayerConditionModule.Get()); SaveGame.m_Objects.Add(PlayerInjuryModule.Get()); SaveGame.m_Objects.Add(PlayerDiseasesModule.Get()); SaveGame.m_Objects.Add(StatsManager.Get()); SaveGame.m_Objects.Add(HintsManager.Get()); SaveGame.m_Objects.Add(MenuNotepad.Get()); SaveGame.m_Objects.Add(MapTab.Get()); SaveGame.m_Objects.Add(SleepController.Get()); SaveGame.m_Objects.Add(DifficultySettings.Get()); SaveGame.m_Objects.Add(InventoryBackpack.Get()); }
private void UpdatePoisonPP() { float num = 0f; PlayerDiseasesModule playerDiseasesModule = PlayerDiseasesModule.Get(); int num2 = (!playerDiseasesModule.GetDisease(ConsumeEffect.FoodPoisoning).IsActive()) ? 0 : playerDiseasesModule.GetDisease(ConsumeEffect.FoodPoisoning).m_Level; if ((float)num2 > 0f) { num = CJTools.Math.GetProportionalClamp(0f, 1f, (float)num2, 0f, this.m_PoisonLevelToMaxEffect); } float weight = PostProcessManager.Get().GetWeight(PostProcessManager.Effect.Poison); if (weight != num) { PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Poison, weight + (num - weight) * Time.deltaTime * 2f); } }
public void OnDebug() { Player.Get().UnlockMap(); Player.Get().UnlockNotepad(); Player.Get().UnlockWatch(); ItemsManager.Get().UnlockAllItemsInNotepad(); PlayerDiseasesModule.Get().UnlockAllDiseasesInNotepad(); PlayerDiseasesModule.Get().UnlockAllDiseasesTratmentInNotepad(); PlayerDiseasesModule.Get().UnlockAllSymptomsInNotepad(); PlayerDiseasesModule.Get().UnlockAllSymptomTreatmentsInNotepad(); PlayerInjuryModule.Get().UnlockAllInjuryState(); PlayerInjuryModule.Get().UnlockAllInjuryStateTreatment(); MainLevel.Instance.m_GameMode = GameMode.Debug; GreenHellGame.Instance.m_GameMode = GameMode.None; MainLevel.Instance.Initialize(); MenuInGameManager.Get().HideMenu(); this.StartRainforestAmbienceMultisample(); }
public void Infect() { this.SetState(InjuryState.Infected); this.SetWoundMaterial(this.m_Slot.m_Wound.gameObject); this.m_HealingStartTime = float.MaxValue; this.UpdateHealthDecreasePerSec(); this.RemoveBandage(); Disease disease = PlayerDiseasesModule.Get().GetDisease(ConsumeEffect.Fever); if (disease != null && disease.IsActive()) { disease.IncreaseLevel(1); } else { PlayerDiseasesModule.Get().RequestDisease(ConsumeEffect.Fever, 0f, 1); } PlayerInjuryModule.Get().UnlockKnownInjuryState(InjuryState.Infected); }
public override void OnEat(ConsumableInfo info) { base.OnEat(info); float num = UnityEngine.Random.Range(0f, 1f); Disease disease = PlayerDiseasesModule.Get().GetDisease(ConsumeEffect.DirtSickness); if (num < (float)disease.m_Level * 0.1f) { ParasiteSickness parasiteSickness = (ParasiteSickness)PlayerDiseasesModule.Get().GetDisease(ConsumeEffect.ParasiteSickness); if (parasiteSickness.IsActive()) { parasiteSickness.IncreaseLevel(1); } else { PlayerDiseasesModule.Get().RequestDisease(ConsumeEffect.ParasiteSickness, 0f, 1); } HUDMessages.Get().AddMessage("+1 " + GreenHellGame.Instance.GetLocalization().Get("HUDMessage_ParasiteFromDirt", true), new Color?(Color.white), HUDMessageIcon.ParasiteSickness, string.Empty, this.m_IconIndexesTemp); } }
public override void Check() { float currentTimeMinutes = MainLevel.Instance.GetCurrentTimeMinutes(); if (SleepController.Get().m_LastWakeUpTime <= 0f) { SleepController.Get().m_LastWakeUpTime = currentTimeMinutes; } if (SleepController.Get().m_LastWakeUpTimeLogical <= 0f) { SleepController.Get().m_LastWakeUpTimeLogical = currentTimeMinutes; } if (SleepController.Get().IsActive() && HUDSleeping.Get().GetState() == HUDSleepingState.Progress && this.m_InsomniaLevel == 0f) { SleepController.Get().m_LastWakeUpTimeLogical = MainLevel.Instance.GetCurrentTimeMinutes(); } if (currentTimeMinutes > SleepController.Get().m_LastWakeUpTimeLogical + this.m_NoSleepTmeToActivate) { PlayerDiseasesModule.Get().RequestDisease(ConsumeEffect.Insomnia, 0f, 1); } }
public static void LoadPlayer(string save_name) { if (SaveGame.m_State != SaveGame.State.None) { Debug.LogWarning("Can't load player, state = " + SaveGame.m_State.ToString()); return; } if (!File.Exists(Application.persistentDataPath + "/" + save_name)) { return; } SaveGame.m_State = SaveGame.State.Load; SaveGame.SetupObjects(); SaveGame.m_IVals.Clear(); SaveGame.m_SVals.Clear(); SaveGame.m_FVals.Clear(); SaveGame.m_BVals.Clear(); BinaryFormatter binaryFormatter = new BinaryFormatter(); FileStream fileStream = File.Open(Application.persistentDataPath + "/" + save_name, FileMode.Open); GameVersion gameVersion = new GameVersion((GameVersion)binaryFormatter.Deserialize(fileStream)); GameMode gameMode = (GameMode)binaryFormatter.Deserialize(fileStream); long num = (long)binaryFormatter.Deserialize(fileStream); int num2 = (int)binaryFormatter.Deserialize(fileStream); int num3 = (int)binaryFormatter.Deserialize(fileStream); SaveGame.m_IVals = (Dictionary <string, int>)binaryFormatter.Deserialize(fileStream); SaveGame.m_SVals = (Dictionary <string, string>)binaryFormatter.Deserialize(fileStream); SaveGame.m_FVals = (Dictionary <string, float>)binaryFormatter.Deserialize(fileStream); SaveGame.m_BVals = (Dictionary <string, bool>)binaryFormatter.Deserialize(fileStream); fileStream.Close(); Player.Get().Load(); PlayerInjuryModule.Get().Load(); PlayerConditionModule.Get().Load(); PlayerDiseasesModule.Get().Load(); ItemsManager.Get().Load(); MainLevel.Instance.Load(); GreenHellGame.Instance.m_LoadGameState = LoadGameState.FullLoadCompleted; SaveGame.m_State = SaveGame.State.None; }
public override void OnTakeDamage(DamageInfo info) { base.OnTakeDamage(info); if (info.m_Blocked) { return; } float num = info.m_Damage; info.m_InjuryPlace = this.GetInjuryPlaceFromHit(info); if (!info.m_FromInjury) { Limb limb = EnumTools.ConvertInjuryPlaceToLimb(info.m_InjuryPlace); if (limb == Limb.None) { limb = Limb.LArm; } if (info.m_DamageType != DamageType.Fall && info.m_DamageType != DamageType.SnakePoison && info.m_DamageType != DamageType.VenomPoison && info.m_DamageType != DamageType.Insects && info.m_DamageType != DamageType.Infection) { num = info.m_Damage * (1f - PlayerArmorModule.Get().GetAbsorption(limb)); } PlayerArmorModule.Get().SetPhaseCompleted(ArmorTakeDamagePhase.InjuryModule); } float num2 = 5f; if ((num > num2 && PlayerArmorModule.Get().NoArmorAfterDamage(info)) || info.m_DamageType == DamageType.Insects || info.m_DamageType == DamageType.SnakePoison || info.m_DamageType == DamageType.VenomPoison || info.m_DamageType == DamageType.Fall || info.m_DamageType == DamageType.Infection) { BIWoundSlot biwoundSlot = null; DamageType damageType = info.m_DamageType; InjuryType injuryType; if (damageType <= DamageType.Claws) { if (damageType <= DamageType.Melee) { if (damageType - DamageType.Cut > 1) { if (damageType == DamageType.Melee) { injuryType = InjuryType.SmallWoundAbrassion; goto IL_17F; } } else { if (info.m_CriticalHit) { injuryType = InjuryType.Laceration; goto IL_17F; } injuryType = InjuryType.SmallWoundScratch; goto IL_17F; } } else { if (damageType == DamageType.VenomPoison) { injuryType = InjuryType.VenomBite; goto IL_17F; } if (damageType == DamageType.Claws) { injuryType = InjuryType.LacerationCat; goto IL_17F; } } } else if (damageType <= DamageType.Fall) { if (damageType == DamageType.Insects) { injuryType = InjuryType.Rash; goto IL_17F; } if (damageType == DamageType.Fall) { injuryType = InjuryType.SmallWoundAbrassion; goto IL_17F; } } else { if (damageType == DamageType.Critical) { injuryType = InjuryType.Laceration; goto IL_17F; } if (damageType == DamageType.SnakePoison) { injuryType = InjuryType.SnakeBite; goto IL_17F; } } injuryType = InjuryType.SmallWoundAbrassion; IL_17F: if (!info.m_FromInjury && (injuryType == InjuryType.VenomBite || injuryType == InjuryType.SnakeBite)) { Disease disease = PlayerDiseasesModule.Get().GetDisease(ConsumeEffect.Fever); if (disease != null && disease.IsActive()) { disease.IncreaseLevel(1); } else { PlayerDiseasesModule.Get().RequestDisease(ConsumeEffect.Fever, 0f, 1); } } if (info.m_DamageType == DamageType.Insects && GreenHellGame.TWITCH_DEMO) { biwoundSlot = this.m_BodyInspectionController.GetFreeWoundSlot(InjuryPlace.LHand, injuryType, true); } else if (info.m_InjuryPlace == InjuryPlace.LLeg) { biwoundSlot = this.m_BodyInspectionController.GetFreeWoundSlot(InjuryPlace.LLeg, injuryType, true); } else if (info.m_InjuryPlace == InjuryPlace.RLeg) { biwoundSlot = this.m_BodyInspectionController.GetFreeWoundSlot(InjuryPlace.RLeg, injuryType, true); } else if (info.m_InjuryPlace == InjuryPlace.LHand) { biwoundSlot = this.m_BodyInspectionController.GetFreeWoundSlot(InjuryPlace.LHand, injuryType, true); } else if (info.m_InjuryPlace == InjuryPlace.RHand) { biwoundSlot = this.m_BodyInspectionController.GetFreeWoundSlot(InjuryPlace.RHand, injuryType, true); } if (biwoundSlot != null) { InjuryState state = InjuryState.Open; if (injuryType == InjuryType.Laceration || injuryType == InjuryType.LacerationCat) { state = InjuryState.Bleeding; } else if (injuryType == InjuryType.WormHole) { state = InjuryState.WormInside; } this.AddInjury(injuryType, biwoundSlot.m_InjuryPlace, biwoundSlot, state, info.m_PoisonLevel, null, info); return; } if (info.m_DamageType == DamageType.VenomPoison) { for (int i = 0; i < this.m_Injuries.Count; i++) { if (this.m_Injuries[i].m_Type == InjuryType.VenomBite) { this.m_Injuries[i].m_PoisonLevel += info.m_PoisonLevel; return; } } return; } if (info.m_DamageType == DamageType.SnakePoison) { for (int j = 0; j < this.m_Injuries.Count; j++) { if (this.m_Injuries[j].m_Type == InjuryType.SnakeBite) { this.m_Injuries[j].m_PoisonLevel += info.m_PoisonLevel; return; } } } } }
public void OnFeverButton() { PlayerDiseasesModule.Get().RequestDisease(ConsumeEffect.Fever, 0f, 1); }
private void OnDrink(LiquidData data, float hydration_amount, float fat_amount, float proteins_amount, float carbo_amount, float energy_amount) { string text = string.Empty; Localization localization = GreenHellGame.Instance.GetLocalization(); HUDMessages hudmessages = (HUDMessages)HUDManager.Get().GetHUD(typeof(HUDMessages)); bool flag = false; bool flag2 = false; for (int i = 0; i < data.m_ConsumeEffects.Count; i++) { if (data.m_ConsumeEffects[i].m_ConsumeEffect != ConsumeEffect.None && UnityEngine.Random.Range(0f, 1f) <= data.m_ConsumeEffects[i].m_ConsumeEffectChance && data.m_ConsumeEffects[i].m_ConsumeEffectLevel != 0) { if (data.m_ConsumeEffects[i].m_ConsumeEffectLevel > 0) { PlayerDiseasesModule.Get().RequestDisease(data.m_ConsumeEffects[i].m_ConsumeEffect, data.m_ConsumeEffects[i].m_ConsumeEffectDelay, 0); flag = true; } if (data.m_ConsumeEffects[i].m_ConsumeEffectLevel < 0) { flag2 = true; } if (data.m_ConsumeEffects[i].m_ConsumeEffect == ConsumeEffect.FoodPoisoning) { text = data.m_ConsumeEffects[i].m_ConsumeEffectLevel.ToString("F0") + " " + localization.Get("HUD_FoodPoisoning", true); hudmessages.AddMessage(text, null, HUDMessageIcon.FoodPoisoning, "", null); } else if (data.m_ConsumeEffects[i].m_ConsumeEffect == ConsumeEffect.ParasiteSickness) { text = data.m_ConsumeEffects[i].m_ConsumeEffectLevel.ToString("F0") + " " + localization.Get("HUD_ParasiteSickness", true); hudmessages.AddMessage(text, null, HUDMessageIcon.ParasiteSickness, "", null); } } } if (flag || flag2) { PlayerDiseasesModule.Get().OnDrink(data.m_LiquidType, hydration_amount); } PlayerInjuryModule.Get().OnDrink(data); if (data.m_Disgusting) { PlayerAudioModule.Get().PlayDrinkingDisgustingSound(1f, false); } else { PlayerAudioModule.Get().PlayDrinkingSound(1f, false); } if (energy_amount > 0f) { text = energy_amount.ToString("F0") + " " + localization.Get("HUD_Energy", true); hudmessages.AddMessage(text, null, HUDMessageIcon.Energy, "", null); } if (hydration_amount > 0f) { text = hydration_amount.ToString("F0") + " " + localization.Get("HUD_Hydration", true); hudmessages.AddMessage(text, null, HUDMessageIcon.Hydration, "", null); } if (fat_amount > 0f) { text = fat_amount.ToString("F0") + " " + localization.Get("HUD_Nutrition_Fat", true); hudmessages.AddMessage(text, null, HUDMessageIcon.Fat, "", null); } if (proteins_amount > 0f) { text = proteins_amount.ToString("F0") + " " + localization.Get("HUD_Nutrition_Protein", true); hudmessages.AddMessage(text, null, HUDMessageIcon.Proteins, "", null); } if (carbo_amount > 0f) { text = carbo_amount.ToString("F0") + " " + localization.Get("HUD_Nutrition_Carbo", true); hudmessages.AddMessage(text, null, HUDMessageIcon.Carbo, "", null); } text = localization.Get(TriggerAction.GetTextPerfect(TriggerAction.TYPE.Drink), true) + ": " + GreenHellGame.Instance.GetLocalization().Get(data.m_LiquidType.ToString(), true); hudmessages.AddMessage(text, null, HUDMessageIcon.None, "", null); EventsManager.OnEvent(Enums.Event.Drink, 1, (int)data.m_LiquidType); InventoryBackpack.Get().CalculateCurrentWeight(); }
public void OnParasiteSicknesButton() { PlayerDiseasesModule.Get().RequestDisease(ConsumeEffect.ParasiteSickness, 0f, 1); }
private void UpdateNutrition() { if (this.m_ParasiteSickness == null) { this.m_ParasiteSickness = (ParasiteSickness)PlayerDiseasesModule.Get().GetDisease(ConsumeEffect.ParasiteSickness); } if (this.m_Player.m_DreamActive) { return; } if (Cheats.m_GodMode || this.m_LossParametersBlocked) { return; } FPPController fppcontroller = this.m_Player.m_FPPController; if (!fppcontroller) { return; } WeaponController weaponController = this.m_Player.m_WeaponController; bool flag = false; if (weaponController && weaponController.IsAttack()) { flag = true; } if (!flag && this.m_Player.GetCurrentItem(Hand.Right) && this.m_Player.GetCurrentItem(Hand.Right).m_Info.IsHeavyObject()) { flag = true; } float deltaTime = Time.deltaTime; float num = 1f; float num2 = 1f; float num3 = 1f; if (fppcontroller.IsRunning()) { num *= this.m_NutritionCarbohydratesConsumptionRunMul; num2 *= this.m_NutritionFatConsumptionRunMul; num3 *= this.m_NutritionProteinsConsumptionRunMul; } if (flag) { num *= this.m_NutritionCarbohydratesConsumptionActionMul; num2 *= this.m_NutritionFatConsumptionActionMul; num3 *= this.m_NutritionProteinsConsumptionActionMul; } if (this.IsNutritionCarboCriticalLevel()) { num2 *= this.m_NutritionFatConsumptionMulNoCarbs; num3 *= this.m_NutritionProteinsConsumptionMulNoCarbs; } if (InventoryBackpack.Get().IsCriticalOverload()) { num *= this.m_NutritionCarbohydratesConsumptionWeightCriticalMul; num2 *= this.m_NutritionFatConsumptionWeightCriticalMul; num3 *= this.m_NutritionProteinsConsumptionWeightCriticalMul; } else if (InventoryBackpack.Get().IsOverload()) { num *= this.m_NutritionCarbohydratesConsumptionWeightOverloadMul; num2 *= this.m_NutritionFatConsumptionWeightOverloadMul; num3 *= this.m_NutritionProteinsConsumptionWeightOverloadMul; } else { num *= this.m_NutritionCarbohydratesConsumptionWeightNormalMul; num2 *= this.m_NutritionFatConsumptionWeightNormalMul; num3 *= this.m_NutritionProteinsConsumptionWeightNormalMul; } if (this.m_ParasiteSickness.IsActive()) { num *= this.m_ParasiteSickness.m_MacroNutricientCarboLossMul * (float)this.m_ParasiteSickness.m_Level; num2 *= this.m_ParasiteSickness.m_MacroNutricientFatLossMul * (float)this.m_ParasiteSickness.m_Level; num3 *= this.m_ParasiteSickness.m_MacroNutricientProteinsLossMul * (float)this.m_ParasiteSickness.m_Level; } GameDifficulty gameDifficulty = GreenHellGame.Instance.m_GameDifficulty; if (gameDifficulty == GameDifficulty.Normal) { float s_NormalModeLossMul = GreenHellGame.s_NormalModeLossMul; num *= s_NormalModeLossMul; num2 *= s_NormalModeLossMul; num3 *= s_NormalModeLossMul; } else if (gameDifficulty == GameDifficulty.Easy) { float s_EasyModeLossMul = GreenHellGame.s_EasyModeLossMul; num *= s_EasyModeLossMul; num2 *= s_EasyModeLossMul; num3 *= s_EasyModeLossMul; } this.m_NutritionCarbo -= this.m_NutritionCarbohydratesConsumptionPerSecond * deltaTime * num * ((!PlayerCocaineModule.Get().m_Active) ? 1f : PlayerCocaineModule.Get().m_CarboConsumptionMul); this.m_NutritionCarbo = Mathf.Clamp(this.m_NutritionCarbo, 0f, this.m_MaxNutritionCarbo); this.m_NutritionFat -= this.m_NutritionFatConsumptionPerSecond * deltaTime * num2 * ((!PlayerCocaineModule.Get().m_Active) ? 1f : PlayerCocaineModule.Get().m_FatConsumptionMul); this.m_NutritionFat = Mathf.Clamp(this.m_NutritionFat, 0f, this.m_MaxNutritionFat); this.m_NutritionProteins -= this.m_NutritionProteinsConsumptionPerSecond * deltaTime * num3 * ((!PlayerCocaineModule.Get().m_Active) ? 1f : PlayerCocaineModule.Get().m_ProteinsConsumptionMul); this.m_NutritionProteins = Mathf.Clamp(this.m_NutritionProteins, 0f, this.m_MaxNutritionProteins); }
private void UpdateSleeping() { if (this.m_Animator.GetBool(this.m_StandUpHash)) { return; } if (HUDSleeping.Get().GetState() != HUDSleepingState.Progress) { this.m_Progress = 0f; this.m_StartSleepingTime = Time.time; this.m_PrevSleepingDateTime = this.m_Sky.Cycle.DateTime; this.m_StartSleepHour = this.m_Sky.Cycle.Hour; return; } this.m_LastProgress = this.m_Progress; bool flag = this.IsAllPlayersSleeping(); if (ReplTools.IsPlayingAlone()) { float num = Time.time - this.m_StartSleepingTime; this.m_Progress = num / (float)this.m_SleepDuration; this.m_Progress = Mathf.Clamp01(this.m_Progress); } else { this.m_Progress += Mathf.Clamp01((float)(this.m_Sky.Cycle.DateTime - this.m_PrevSleepingDateTime).TotalHours * (flag ? 1f : this.m_SleepDurationCoopMul) / (float)this.m_SleepDuration); } this.m_PrevSleepingDateTime = this.m_Sky.Cycle.DateTime; float num2 = this.m_Progress - this.m_PrevProgress; if (ReplTools.IsPlayingAlone() || (ReplTools.AmIMaster() && flag)) { this.m_TODTime.AddHours((float)this.m_SleepDuration * num2, true, false); } this.m_HoursDelta = (float)this.m_SleepDuration * num2; int num3 = (int)((float)this.m_SleepDuration * this.m_Progress); if (num3 > this.m_HourProgress) { this.CheckWorm(); } this.m_HourProgress = num3; float num4 = this.m_Progress - this.m_PrevProgress; foreach (SleepController.ConditionFParam conditionFParam in this.m_FParams) { if (!(conditionFParam.category == "nutrients") || DifficultySettings.ActivePreset.m_NutrientsDepletion != NutrientsDepletion.Off) { PropertyInfo property = this.m_ConditionModule.GetType().GetProperty(conditionFParam.field_name); float num5 = (float)property.GetValue(this.m_ConditionModule, null); float num6 = (conditionFParam.value > 0f) ? (conditionFParam.value * this.m_ParamsMul) : conditionFParam.value; if (PlayerInjuryModule.Get().GetNumWounds() <= 0 || !(conditionFParam.field_name == "m_HP")) { num5 += num6 * num4; } property.SetValue(this.m_ConditionModule, num5, null); } } this.m_ConditionModule.ClampParams(); Insomnia insomnia = (Insomnia)PlayerDiseasesModule.Get().GetDisease(ConsumeEffect.Insomnia); if (insomnia != null) { insomnia.UpdateSleeping(); } if (this.m_Progress >= 1f || Player.Get().IsDead()) { this.WakeUp(false, true); } this.SetupSurroundingConstructions(); this.m_PrevProgress = this.m_Progress; }