private void OnChangeSanity(float diff, string text_id)
    {
        HUDMessages hudmessages = (HUDMessages)HUDManager.Get().GetHUD(typeof(HUDMessages));
        string      text        = GreenHellGame.Instance.GetLocalization().Get("HUD_Sanity") + ((diff <= 0f) ? string.Empty : "+") + diff.ToString();

        hudmessages.AddMessage(text, null, HUDMessageIcon.None, string.Empty);
        if (text_id != string.Empty)
        {
            text = GreenHellGame.Instance.GetLocalization().Get(text_id);
            hudmessages.AddMessage(text, null, HUDMessageIcon.None, string.Empty);
        }
        if (this.m_Sanity <= this.m_SanityLevelToPlaySounds)
        {
            PlayerAudioModule.Get().PlaySanityLossSound(1f);
        }
        HUDSanity.Get().OnChangeSanity(diff);
    }
Beispiel #2
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();
        }
    }
    private void CreateConstruction()
    {
        Item item = null;

        item = ItemsManager.Get().CreateItem(this.m_ResultItemID, true, base.transform.position, base.transform.rotation);
        if (this.m_PlacingCondition == ConstructionGhost.GhostPlacingCondition.NeedFirecamp)
        {
            IFirecampAttach[] components = item.gameObject.GetComponents <IFirecampAttach>();
            foreach (IFirecampAttach firecampAttach in components)
            {
                firecampAttach.SetFirecamp(this.m_Firecamp);
            }
        }
        if (this.m_FirecampRacks.Count > 0 && ItemInfo.IsFirecamp(item.GetInfoID()))
        {
            foreach (FirecampRack firecampRack in this.m_FirecampRacks)
            {
                IFirecampAttach[] components2 = firecampRack.gameObject.GetComponents <IFirecampAttach>();
                foreach (IFirecampAttach firecampAttach2 in components2)
                {
                    firecampAttach2.SetFirecamp((Firecamp)item);
                }
            }
        }
        if (this.m_Smoker && ItemInfo.IsFirecamp(item.GetInfoID()))
        {
            IFirecampAttach[] components3 = this.m_Smoker.gameObject.GetComponents <IFirecampAttach>();
            foreach (IFirecampAttach firecampAttach3 in components3)
            {
                firecampAttach3.SetFirecamp((Firecamp)item);
            }
        }
        if (this.m_ConstructionObjectName.Length > 0)
        {
            item.gameObject.name = this.m_ConstructionObjectName;
        }
        ScenarioAction.OnItemCreated(item.gameObject);
        ScenarioCndTF.OnItemCreated(item.gameObject);
        EventsManager.OnEvent(Enums.Event.Build, 1, (int)this.m_ResultItemID);
        HUDMessages hudmessages = (HUDMessages)HUDManager.Get().GetHUD(typeof(HUDMessages));

        hudmessages.AddMessage(GreenHellGame.Instance.GetLocalization().Get(this.m_ResultItemID.ToString()) + " " + GreenHellGame.Instance.GetLocalization().Get("HUDConstruction_Created"), null, HUDMessageIcon.None, string.Empty);
        PlayerAudioModule.Get().PlayBuildCompletedSound();
        ItemsManager.Get().OnCreateItem(this.m_ResultItemID);
        item.SetLayer(item.transform, LayerMask.NameToLayer("Item"));
        foreach (IGhostObserver ghostObserver in this.m_Observers)
        {
            ghostObserver.OnCreateConstruction(this, item);
        }
    }
Beispiel #4
0
 private void UpdateInputs()
 {
     if (Input.GetMouseButtonUp(0))
     {
         if (this.m_SelectionGet.enabled)
         {
             this.m_Container.Fill(this.m_LiquidSource);
         }
         this.m_Container.StaticPhxRequestRemove();
         this.m_Active = false;
         Inventory3DManager.Get().SetCarriedItem(this.m_Container);
         HUDMessages hudmessages = (HUDMessages)HUDManager.Get().GetHUD(typeof(HUDMessages));
         hudmessages.AddMessage("LiquidType_" + this.m_LiquidSource.m_LiquidType.ToString() + " " + GreenHellGame.Instance.GetLocalization().Get("HUD_Trigger_Taken"), new Color?(Color.white), HUDMessageIcon.None, string.Empty);
     }
 }
Beispiel #5
0
    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);
    }
Beispiel #6
0
 public virtual void OnEat(ConsumableInfo info)
 {
     if (info.m_ConsumeEffect == this.m_Type && this.CanApplyConsumeEffect(info))
     {
         this.m_Level += info.m_ConsumeEffectLevel;
         Localization localization = GreenHellGame.Instance.GetLocalization();
         HUDMessages  hudmessages  = (HUDMessages)HUDManager.Get().GetHUD(typeof(HUDMessages));
         string       text         = string.Empty;
         if (info.m_ConsumeEffect == ConsumeEffect.ParasiteSickness)
         {
             text = info.m_ConsumeEffectLevel.ToString("F0") + " " + localization.Get("HUD_ParasiteSickness", true);
             hudmessages.AddMessage(text, null, HUDMessageIcon.ParasiteSickness, "", null);
         }
     }
     this.m_Level = Mathf.Clamp(this.m_Level, 0, this.m_MaxLevel);
     if (this.m_Level == 0)
     {
         this.Deactivate();
     }
 }
    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();
    }
Beispiel #8
0
    public InventoryBackpack.InsertResult InsertItem(Item item, ItemSlot slot = null, InventoryCellsGroup group = null, bool can_stack = true, bool drop_if_cant = true, bool notify_if_cant = true, bool can_auto_select_group = true, bool set_pocket = true)
    {
        if (!item.m_Info.m_CanBeAddedToInventory)
        {
            Inventory3DManager.Get().DropItem(item);
            return(InventoryBackpack.InsertResult.CantInsert);
        }
        if (this.m_Items.Contains(item))
        {
            return(InventoryBackpack.InsertResult.AllreadyInInventory);
        }
        bool isStatic = item.gameObject.isStatic;

        item.gameObject.isStatic = false;
        item.transform.parent    = null;
        this.SetBackpackTransform(item.m_Info.m_BackpackPocket);
        if (set_pocket && Inventory3DManager.Get().gameObject.activeSelf)
        {
            Inventory3DManager.Get().SetupPocket(item.m_Info.m_BackpackPocket);
        }
        InventoryBackpack.InsertResult insertResult = InventoryBackpack.InsertResult.None;
        if (item.m_Info.m_BackpackPocket == BackpackPocket.Top)
        {
            insertResult = this.InsertItemTop(item, slot);
        }
        else if (item.m_Info.m_BackpackPocket == BackpackPocket.Left)
        {
            insertResult = this.InsertItemLeft(item, slot);
        }
        else if (item.m_Info.m_BackpackPocket == BackpackPocket.Right)
        {
            insertResult = this.InsertItemRight(item, slot);
        }
        else if (item.m_Info.m_BackpackPocket == BackpackPocket.Main)
        {
            insertResult = this.InsertItemMain(item, slot, group, can_stack, can_auto_select_group);
        }
        else if (item.m_Info.m_BackpackPocket == BackpackPocket.Front)
        {
            insertResult = this.InsertItemFront(item, slot, group, can_stack, can_auto_select_group);
        }
        if (insertResult == InventoryBackpack.InsertResult.Ok)
        {
            this.m_Items.Add(item);
            if (!item.m_CurrentSlot)
            {
                item.transform.parent = base.transform;
            }
            else if (item.m_CurrentSlot == this.m_EquippedItemSlot)
            {
                this.m_EquippedItem = item;
            }
            item.OnAddToInventory();
            item.gameObject.SetActive(Inventory3DManager.Get().gameObject.activeSelf&& item.m_Info.m_BackpackPocket == Inventory3DManager.Get().m_ActivePocket);
            this.OnInventoryChanged();
        }
        else
        {
            item.gameObject.isStatic = isStatic;
            if (notify_if_cant)
            {
                HUDMessages hudmessages = (HUDMessages)HUDManager.Get().GetHUD(typeof(HUDMessages));
                hudmessages.AddMessage(GreenHellGame.Instance.GetLocalization().Get("HUD_NoSpaceInBackpack"), new Color?(Color.red), HUDMessageIcon.None, string.Empty);
                HUDManager.Get().PlaySound("Sounds/HUD/GH_Inventory_Full");
                if (!drop_if_cant)
                {
                    item.ApplyImpulse(new Vector3(0f, 100f, 0f), new Vector3(0f, 0f, UnityEngine.Random.Range(-100f, 100f)));
                }
            }
            if (drop_if_cant)
            {
                Inventory3DManager.Get().DropItem(item);
            }
        }
        this.SetBackpackTransform(Inventory3DManager.Get().m_ActivePocket);
        return(insertResult);
    }
Beispiel #9
0
 public void ExecuteTrigger(Trigger trigger, TriggerAction.TYPE action)
 {
     if (this.IsGrabInProgress())
     {
         return;
     }
     if (Time.time - this.m_LastTrigerExecutionTime < 0.1f)
     {
         return;
     }
     if (!trigger)
     {
         return;
     }
     if (this.m_TriggerToExecute)
     {
         if (Time.time - this.m_TriggerToExecuteTime > 2f)
         {
             this.m_TriggerToExecute       = null;
             this.m_TriggerActionToExecute = TriggerAction.TYPE.None;
         }
         return;
     }
     if (trigger.PlayGrabAnimOnExecute(action))
     {
         this.m_TriggerToExecute       = trigger;
         this.m_TriggerActionToExecute = action;
         this.m_TriggerToExecuteTime   = Time.time;
     }
     else
     {
         trigger.OnExecute(action);
         this.m_LastTrigerExecutionTime = Time.time;
     }
     if (action == TriggerAction.TYPE.Use)
     {
         HUDMessages hudmessages = (HUDMessages)HUDManager.Get().GetHUD(typeof(HUDMessages));
         string      text        = GreenHellGame.Instance.GetLocalization().Get(TriggerAction.GetTextPerfect(action)) + ": " + GreenHellGame.Instance.GetLocalization().Get(trigger.GetName());
         if (action == TriggerAction.TYPE.Drink && trigger.IsItem() && ((Item)trigger).m_Info.IsLiquidContainer())
         {
             Localization        localization        = GreenHellGame.Instance.GetLocalization();
             LiquidContainerInfo liquidContainerInfo = (LiquidContainerInfo)((Item)trigger).m_Info;
             text += liquidContainerInfo.m_Amount.ToString("F1");
             text += localization.Get("HUD_Hydration");
         }
         hudmessages.AddMessage(text, null, (action != TriggerAction.TYPE.Drink) ? HUDMessageIcon.None : HUDMessageIcon.Hydration, string.Empty);
     }
     else if (action != TriggerAction.TYPE.Eat)
     {
         if (action == TriggerAction.TYPE.Take || action == TriggerAction.TYPE.TakeHold || action == TriggerAction.TYPE.PickUp)
         {
             Item currentItem = this.m_Player.GetCurrentItem(Hand.Left);
             if (currentItem != null && currentItem.m_Info.m_ID == ItemID.Bow)
             {
                 this.m_Animator.SetBool(TriggerController.s_BGrabItemBow, true);
             }
             else if (currentItem != null && currentItem.m_Info.m_ID == ItemID.Bamboo_Bow)
             {
                 this.m_Animator.SetBool(TriggerController.s_BGrabItemBambooBow, true);
             }
             else if (currentItem && currentItem.m_Info.IsBow())
             {
                 this.m_Animator.SetBool(TriggerController.s_BGrabItemBow, true);
             }
             else if (trigger.PlayGrabAnimOnExecute(action))
             {
                 this.m_Animator.SetBool(TriggerController.s_BGrabItem, true);
             }
         }
         else if (action == TriggerAction.TYPE.DrinkHold)
         {
             this.m_Animator.SetBool(this.m_BDrinkWater, true);
             this.m_TriggerInAction = true;
         }
     }
 }