Пример #1
0
    private void SetupConsumableEffects()
    {
        if (!this.m_ConsumableEffects)
        {
            return;
        }
        if (!Inventory3DManager.Get().gameObject.activeSelf || this.IsExpanded())
        {
            this.m_ConsumableEffects.gameObject.SetActive(false);
            return;
        }
        Trigger trigger = this.GetTrigger();

        if (trigger == null || !trigger.IsItem())
        {
            this.m_ConsumableEffects.gameObject.SetActive(false);
            return;
        }
        Item item = (Item)trigger;

        if (!item.m_Info.IsConsumable() && !item.m_Info.IsLiquidContainer())
        {
            this.m_ConsumableEffects.gameObject.SetActive(false);
            return;
        }
        int num = 0;

        if (item.m_Info.IsConsumable())
        {
            if (!ItemsManager.Get().WasConsumed(item.m_Info.m_ID))
            {
                this.m_UnknownEffect.SetActive(true);
            }
            else
            {
                this.m_UnknownEffect.SetActive(false);
                ConsumableInfo consumableInfo = (ConsumableInfo)item.m_Info;
                if (consumableInfo.m_Proteins > 0f)
                {
                    this.SetupEffect("Watch_protein_icon", IconColors.GetColor(IconColors.Icon.Proteins), consumableInfo.m_Proteins, "HUD_Nutrition_Protein", ref num, -1f);
                }
                if (consumableInfo.m_Fat > 0f)
                {
                    this.SetupEffect("Watch_fat_icon", IconColors.GetColor(IconColors.Icon.Fat), consumableInfo.m_Fat, "HUD_Nutrition_Fat", ref num, -1f);
                }
                if (consumableInfo.m_Carbohydrates > 0f)
                {
                    this.SetupEffect("Watch_carbo_icon", IconColors.GetColor(IconColors.Icon.Carbo), consumableInfo.m_Carbohydrates, "HUD_Nutrition_Carbo", ref num, -1f);
                }
                if (consumableInfo.m_Water > 0f)
                {
                    this.SetupEffect("Watch_water_icon", IconColors.GetColor(IconColors.Icon.Hydration), consumableInfo.m_Water, "HUD_Hydration", ref num, -1f);
                }
                if (consumableInfo.m_AddEnergy > 0f)
                {
                    this.SetupEffect("Energy_icon", Color.white, consumableInfo.m_AddEnergy, "HUD_Energy", ref num, -1f);
                }
                if ((float)consumableInfo.m_SanityChange != 0f)
                {
                    this.SetupEffect("", Color.white, (float)consumableInfo.m_SanityChange, "HUD_Sanity", ref num, -1f);
                }
                if (consumableInfo.m_ConsumeEffect == ConsumeEffect.FoodPoisoning)
                {
                    this.SetupEffect("Vomit_icon_H", Color.white, (float)consumableInfo.m_ConsumeEffectLevel, "HUD_FoodPoisoning", ref num, -1f);
                }
                else if (consumableInfo.m_ConsumeEffect == ConsumeEffect.ParasiteSickness)
                {
                    this.SetupEffect("ParasiteSichness_icon_H", Color.white, (float)consumableInfo.m_ConsumeEffectLevel, "HUD_ParasiteSickness", ref num, -1f);
                }
            }
        }
        else if (item.m_Info.IsLiquidContainer())
        {
            LiquidContainerInfo liquidContainerInfo = (LiquidContainerInfo)item.m_Info;
            if (liquidContainerInfo.m_Amount > 0f)
            {
                LiquidData liquidData = LiquidManager.Get().GetLiquidData(liquidContainerInfo.m_LiquidType);
                if (liquidContainerInfo.m_Amount >= 1f)
                {
                    this.SetupEffect("Watch_water_icon", IconColors.GetColor(IconColors.Icon.Hydration), liquidContainerInfo.m_Amount, "HUD_Hydration", ref num, liquidContainerInfo.m_Capacity);
                }
                if (liquidData.m_Energy > 0f)
                {
                    this.SetupEffect("Energy_icon", Color.white, liquidData.m_Energy, "HUD_Energy", ref num, -1f);
                }
                for (int i = 0; i < liquidData.m_ConsumeEffects.Count; i++)
                {
                    if (liquidData.m_ConsumeEffects[i].m_ConsumeEffect == ConsumeEffect.FoodPoisoning)
                    {
                        this.SetupEffect("Vomit_icon_H", Color.white, (float)liquidData.m_ConsumeEffects[i].m_ConsumeEffectLevel, "HUD_FoodPoisoning", ref num, -1f);
                    }
                }
                if (liquidContainerInfo.IsBowl())
                {
                    if (liquidData.m_Proteins > 0f)
                    {
                        this.SetupEffect("Watch_protein_icon", IconColors.GetColor(IconColors.Icon.Proteins), liquidData.m_Proteins, "HUD_Nutrition_Protein", ref num, -1f);
                    }
                    if (liquidData.m_Fat > 0f)
                    {
                        this.SetupEffect("Watch_fat_icon", IconColors.GetColor(IconColors.Icon.Fat), liquidData.m_Fat, "HUD_Nutrition_Fat", ref num, -1f);
                    }
                    if (liquidData.m_Carbohydrates > 0f)
                    {
                        this.SetupEffect("Watch_carbo_icon", IconColors.GetColor(IconColors.Icon.Carbo), liquidData.m_Carbohydrates, "HUD_Nutrition_Carbo", ref num, -1f);
                    }
                }
            }
            this.m_UnknownEffect.SetActive(num == 0);
        }
        for (int j = num; j < this.m_EffectsData.Count; j++)
        {
            this.m_EffectsData[j].m_Parent.SetActive(false);
        }
        this.m_ConsumableEffects.gameObject.SetActive(true);
    }
Пример #2
0
        // While hovering over a food, show food's consumable effects
        // Code below is mostly copy&pasted from original implementation
        protected override void SetupConsumableEffects()
        {
            if (!m_ConsumableEffects)
            {
                return;
            }

            if (IsExpanded())
            {
                m_ConsumableEffects.gameObject.SetActive(false);
            }
            else
            {
                Trigger  trigger = GetTrigger();
                ItemInfo m_Info  = null;
                if (trigger)
                {
                    if (trigger.IsItem())
                    {
                        m_Info = ((Item)trigger).m_Info;
                    }
                    else if (trigger is PlantFruit)
                    {
                        m_Info = ((PlantFruit)trigger).m_ItemInfo;
                    }
                    else if (trigger is ItemReplacer)
                    {
                        m_Info = ((ItemReplacer)trigger).m_ReplaceInfo;
                    }
                }

                if (m_Info == null)
                {
                    m_ConsumableEffects.gameObject.SetActive(false);
                }
                else
                {
                    if (!m_Info.IsConsumable() && !m_Info.IsLiquidContainer())
                    {
                        m_ConsumableEffects.gameObject.SetActive(false);
                    }
                    else
                    {
                        int index1 = 0;
                        if (m_Info.IsConsumable())
                        {
                            if (!ItemsManager.Get().WasConsumed(m_Info.m_ID))
                            {
                                m_UnknownEffect.SetActive(true);
                            }
                            else
                            {
                                m_UnknownEffect.SetActive(false);
                                ConsumableInfo info = (ConsumableInfo)m_Info;
                                if (info.m_Proteins > 0.0)
                                {
                                    SetupEffect("Watch_protein_icon", IconColors.GetColor(IconColors.Icon.Proteins), info.m_Proteins, "HUD_Nutrition_Protein", ref index1, -1f);
                                }
                                if (info.m_Fat > 0.0)
                                {
                                    SetupEffect("Watch_fat_icon", IconColors.GetColor(IconColors.Icon.Fat), info.m_Fat, "HUD_Nutrition_Fat", ref index1, -1f);
                                }
                                if (info.m_Carbohydrates > 0.0)
                                {
                                    SetupEffect("Watch_carbo_icon", IconColors.GetColor(IconColors.Icon.Carbo), info.m_Carbohydrates, "HUD_Nutrition_Carbo", ref index1, -1f);
                                }
                                if (info.m_Water > 0.0)
                                {
                                    SetupEffect("Watch_water_icon", IconColors.GetColor(IconColors.Icon.Hydration), info.m_Water, "HUD_Hydration", ref index1, -1f);
                                }
                                if (info.m_Dehydration > 0.0)
                                {
                                    SetupEffect("Watch_water_icon", IconColors.GetColor(IconColors.Icon.Hydration), -1f * info.m_Dehydration, "HUD_Hydration", ref index1, -1f);
                                }
                                if (info.m_AddEnergy > 0.0)
                                {
                                    SetupEffect("Energy_icon", Color.white, info.m_AddEnergy, "HUD_Energy", ref index1, -1f);
                                }
                                if (info.m_SanityChange != 0.0)
                                {
                                    SetupEffect("sanity_icon_H", Color.white, info.m_SanityChange, "HUD_Sanity", ref index1, -1f);
                                }
                                if (info.m_ConsumeEffect == ConsumeEffect.Fever)
                                {
                                    SetupEffect("Fever_icon_T", Color.white, info.m_ConsumeEffectLevel, "Fever", ref index1, -1f);
                                }
                                if (info.m_ConsumeEffect == ConsumeEffect.FoodPoisoning)
                                {
                                    SetupEffect("Vomit_icon_H", Color.white, info.m_ConsumeEffectLevel, "HUD_FoodPoisoning", ref index1, -1f);
                                }
                                else if (info.m_ConsumeEffect == ConsumeEffect.ParasiteSickness)
                                {
                                    SetupEffect("ParasiteSichness_icon_H", Color.white, info.m_ConsumeEffectLevel, "HUD_ParasiteSickness", ref index1, -1f);
                                }
                            }
                        }
                        else if (m_Info.IsLiquidContainer())
                        {
                            LiquidContainerInfo info = (LiquidContainerInfo)m_Info;
                            if (info.m_Amount > 0.0)
                            {
                                LiquidData liquidData = LiquidManager.Get().GetLiquidData(info.m_LiquidType);
                                if (info.m_Amount >= 1.0)
                                {
                                    SetupEffect("Watch_water_icon", IconColors.GetColor(IconColors.Icon.Hydration), info.m_Amount, "HUD_Hydration", ref index1, info.m_Capacity);
                                }
                                if (liquidData.m_Energy > 0.0)
                                {
                                    SetupEffect("Energy_icon", Color.white, liquidData.m_Energy, "HUD_Energy", ref index1, -1f);
                                }
                                for (int index2 = 0; index2 < liquidData.m_ConsumeEffects.Count; ++index2)
                                {
                                    if (liquidData.m_ConsumeEffects[index2].m_ConsumeEffect == ConsumeEffect.FoodPoisoning)
                                    {
                                        SetupEffect("Vomit_icon_H", Color.white, liquidData.m_ConsumeEffects[index2].m_ConsumeEffectLevel, "HUD_FoodPoisoning", ref index1, -1f);
                                    }
                                    else if (liquidData.m_ConsumeEffects[index2].m_ConsumeEffect == ConsumeEffect.Fever)
                                    {
                                        SetupEffect("Fever_icon_T", Color.white, liquidData.m_ConsumeEffects[index2].m_ConsumeEffectLevel, "Fever", ref index1, -1f);
                                    }
                                    else if (liquidData.m_ConsumeEffects[index2].m_ConsumeEffect == ConsumeEffect.ParasiteSickness)
                                    {
                                        SetupEffect("ParasiteSichness_icon_H", Color.white, liquidData.m_ConsumeEffects[index2].m_ConsumeEffectLevel, "Parasite Sickness", ref index1, -1f);
                                    }
                                }
                                if (info.IsBowl())
                                {
                                    if (liquidData.m_Proteins > 0.0)
                                    {
                                        SetupEffect("Watch_protein_icon", IconColors.GetColor(IconColors.Icon.Proteins), liquidData.m_Proteins, "HUD_Nutrition_Protein", ref index1, -1f);
                                    }
                                    if (liquidData.m_Fat > 0.0)
                                    {
                                        SetupEffect("Watch_fat_icon", IconColors.GetColor(IconColors.Icon.Fat), liquidData.m_Fat, "HUD_Nutrition_Fat", ref index1, -1f);
                                    }
                                    if (liquidData.m_Carbohydrates > 0.0)
                                    {
                                        SetupEffect("Watch_carbo_icon", IconColors.GetColor(IconColors.Icon.Carbo), liquidData.m_Carbohydrates, "HUD_Nutrition_Carbo", ref index1, -1f);
                                    }
                                    if (liquidData.m_Dehydration > 0.0)
                                    {
                                        SetupEffect("Watch_water_icon", IconColors.GetColor(IconColors.Icon.Hydration), -1f * liquidData.m_Dehydration, "HUD_Hydration", ref index1, -1f);
                                    }
                                    if (liquidData.m_SanityChange != 0)
                                    {
                                        SetupEffect("sanity_icon_H", Color.white, liquidData.m_SanityChange, "HUD_Sanity", ref index1, -1f);
                                    }
                                }
                            }
                            m_UnknownEffect.SetActive(index1 == 0);
                        }
                        for (int index2 = index1; index2 < m_EffectsData.Count; ++index2)
                        {
                            m_EffectsData[index2].m_Parent.SetActive(false);
                        }
                        m_ConsumableEffects.gameObject.SetActive(true);
                    }
                }
            }
        }