示例#1
0
    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 void DecreaseHydration(float amount)
 {
     if (Cheats.m_GodMode || this.m_LossParametersBlocked)
     {
         return;
     }
     this.m_Hydration -= amount * ((!PlayerCocaineModule.Get().m_Active) ? 1f : PlayerCocaineModule.Get().m_HydrationConsumptionMul);
     this.m_Hydration  = Mathf.Clamp(this.m_Hydration, 0f, this.m_MaxHydration);
 }
 public void DecreaseNutritionProtein(float val)
 {
     if (Cheats.m_GodMode || this.m_LossParametersBlocked)
     {
         return;
     }
     this.m_NutritionProteins -= val * ((!PlayerCocaineModule.Get().m_Active) ? 1f : PlayerCocaineModule.Get().m_ProteinsConsumptionMul);
     this.m_NutritionProteins  = Mathf.Clamp(this.m_NutritionProteins, 0f, this.m_MaxNutritionProteins);
 }
 public void DecreaseStamina(float value)
 {
     if (Cheats.m_GodMode)
     {
         return;
     }
     this.m_Stamina -= value * ((!PlayerCocaineModule.Get().m_Active) ? 1f : PlayerCocaineModule.Get().m_StaminaConsumptionMul);
     this.m_Stamina  = Mathf.Clamp(this.m_Stamina, 0f, this.m_MaxStamina);
     if (value > 0f)
     {
         this.m_LastDecreaseStaminaTime = Time.time;
     }
 }
    private void UpdateStamina()
    {
        float         deltaTime     = Time.deltaTime;
        FPPController fppcontroller = this.m_Player.m_FPPController;

        if (!fppcontroller)
        {
            return;
        }
        if (Cheats.m_GodMode)
        {
            this.m_Stamina = this.m_MaxStamina;
            return;
        }
        float num = this.m_Stamina;

        if (fppcontroller.IsActive() && fppcontroller.IsWalking())
        {
            num -= this.m_StaminaConsumptionWalkPerSecond * deltaTime * ((!PlayerCocaineModule.Get().m_Active) ? 1f : PlayerCocaineModule.Get().m_StaminaConsumptionMul);
        }
        else if (fppcontroller.IsActive() && fppcontroller.IsRunning())
        {
            num -= this.m_StaminaConsumptionRunPerSecond * deltaTime * ((!PlayerCocaineModule.Get().m_Active) ? 1f : PlayerCocaineModule.Get().m_StaminaConsumptionMul);
        }
        else if (fppcontroller.IsActive() && fppcontroller.IsDepleted())
        {
            num -= this.m_StaminaConsumptionDepletedPerSecond * deltaTime * ((!PlayerCocaineModule.Get().m_Active) ? 1f : PlayerCocaineModule.Get().m_StaminaConsumptionMul);
        }
        else if (!MakeFireController.Get().IsActive())
        {
            num += this.m_StaminaRegenerationPerSecond * deltaTime;
        }
        if (num < this.m_Stamina || Time.time - this.m_LastDecreaseStaminaTime >= this.m_StaminaRenerationDelay)
        {
            this.m_Stamina = num;
        }
        float num2 = this.m_Stamina - this.m_PrevStamina;

        if (num2 < 0f)
        {
            this.m_LastDecreaseStaminaTime = Time.time;
        }
        this.m_Stamina     = Mathf.Clamp(this.m_Stamina, 0f, this.m_MaxStamina);
        this.m_PrevStamina = this.m_Stamina;
    }
    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);
    }