Exemple #1
0
    private void CreateHerb()
    {
        if (!this.m_Item)
        {
            return;
        }
        LiquidContainerInfo liquidContainerInfo    = (LiquidContainerInfo)this.m_Info;
        LiquidData          liquidDataByComponents = LiquidManager.Get().GetLiquidDataByComponents(liquidContainerInfo.m_LiquidType, this.m_Item.m_Info.m_ID);

        if (liquidDataByComponents != null)
        {
            liquidContainerInfo.m_LiquidType = liquidDataByComponents.m_LiquidType;
        }
        else
        {
            liquidContainerInfo.m_LiquidType = LiquidType.Default_Infusion;
        }
        ItemsManager.Get().OnLiquidBoiled(liquidContainerInfo.m_LiquidType);
        if (liquidContainerInfo.m_LiquidType == LiquidType.None)
        {
            DebugUtils.Assert("Can't set liquid type - " + this.m_Item.m_Info.m_ID.ToString(), true, DebugUtils.AssertType.Info);
        }
        UnityEngine.Object.Destroy(this.m_Item.gameObject);
        this.m_Item = null;
    }
Exemple #2
0
            public static LiquidData Read(Stream s, LiquidHeader header)
            {
                var r   = new BinaryReader(s);
                var ret = new LiquidData
                {
                    HeightMap   = new float[header.CountXVertices, header.CountYVertices],
                    RenderFlags = new byte[header.Width, header.Height]
                };

                for (int y = 0; y < header.CountYVertices; y++)
                {
                    for (int x = 0; x < header.CountXVertices; x++)
                    {
                        r.ReadUInt32();
                        ret.HeightMap[x, y] = r.ReadSingle();
                    }
                }

                for (int y = 0; y < header.Height; y++)
                {
                    for (int x = 0; x < header.Width; x++)
                    {
                        ret.RenderFlags[x, y] = r.ReadByte();
                    }
                }

                return(ret);
            }
Exemple #3
0
 public void OnDrink(LiquidData data)
 {
     for (int i = 0; i < this.m_Injuries.Count; i++)
     {
         this.m_Injuries[i].PoisonDebuff(data.m_PoisonDebuff);
     }
 }
    public void OnCooked()
    {
        LiquidData liquidData = LiquidManager.Get().GetLiquidData(this.m_LiquidType);

        if (liquidData.m_CookingResult != LiquidType.None)
        {
            this.m_LiquidType = liquidData.m_CookingResult;
        }
    }
Exemple #5
0
        private void ReadLiquid()
        {
            var chunk = SubData.GetChunkByName("MLIQ");
            if (chunk == null)
                return;

            HasLiquidData = true;
            var stream = chunk.GetStream();
            LiquidDataHeader = LiquidHeader.Read(stream);
            LiquidDataGeometry = LiquidData.Read(stream, LiquidDataHeader);
        }
Exemple #6
0
        public static LiquidData LuaCreateLiquid(int id, string name)
        {
            var newLiquid = new LiquidData(id, name);

            _luaManager.Proxy.CreateTable("liquid");
            AddLastObject(newLiquid);
            _dbManager.AddToRepository(newLiquid);

            _logManager.Boot("Liquid (id={0}, name={1}) created", id, name);
            return(newLiquid);
        }
Exemple #7
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);
    }
Exemple #8
0
        private void ReadLiquid()
        {
            var chunk = SubData.GetChunkByName("MLIQ");

            if (chunk == null)
            {
                return;
            }

            HasLiquidData = true;
            var stream = chunk.GetStream();

            LiquidDataHeader   = LiquidHeader.Read(stream);
            LiquidDataGeometry = LiquidData.Read(stream, LiquidDataHeader);
        }
Exemple #9
0
    public void OnDrink(LiquidType liquid_type)
    {
        LiquidData liquidData = LiquidManager.Get().GetLiquidData(liquid_type);

        for (int i = 0; i < liquidData.m_ConsumeEffects.Count; i++)
        {
            if (liquidData.m_ConsumeEffects[i].m_ConsumeEffect == this.m_Type)
            {
                this.m_Level += liquidData.m_ConsumeEffects[i].m_ConsumeEffectLevel;
            }
        }
        this.m_Level = Mathf.Clamp(this.m_Level, 0, this.m_MaxLevel);
        if (this.m_Level == 0)
        {
            this.Deactivate();
        }
    }
Exemple #10
0
 public Liquid(Coordinates coords, bool serverBlock, LiquidData data, float initialPressure) : base(coords, serverBlock, data)
 {
     pos = coords;
     if (initialPressure >= MIN_LEVEL)
     {
         setPressure(initialPressure);
     }
     else
     {
         Debug.LogError("Empty water");
         data.pressure = 0;
     }
     if (isServerBlock)
     {
         Debug.Log("On server created " + this);
         Chunk.addNeighbourChangeListener(this);
     }
 }
Exemple #11
0
    public void Drink(LiquidType type, float amount)
    {
        LiquidData liquidData = LiquidManager.Get().GetLiquidData(type);
        float      num        = amount / 100f * liquidData.m_Water;

        PlayerConditionModule.Get().IncreaseHydration(num);
        float fat = liquidData.m_Fat;

        PlayerConditionModule.Get().IncreaseNutritionFat(fat);
        float proteins = liquidData.m_Proteins;

        PlayerConditionModule.Get().IncreaseNutritionProteins(proteins);
        float carbohydrates = liquidData.m_Carbohydrates;

        PlayerConditionModule.Get().IncreaseNutritionCarbo(carbohydrates);
        float energy = liquidData.m_Energy;

        PlayerConditionModule.Get().IncreaseEnergy(energy);
        this.OnDrink(liquidData, num, fat, proteins, carbohydrates, energy);
    }
Exemple #12
0
        public void Read(byte[] data)
        {
            using BinaryReader reader = new(new MemoryStream(data));
            for (var x = 0; x < SharedConst.ADT_CELL_SIZE + 1; ++x)
            {
                Liquid[x] = new LiquidData[SharedConst.ADT_CELL_SIZE + 1];

                for (var y = 0; y < SharedConst.ADT_CELL_SIZE + 1; ++y)
                {
                    Liquid[x][y] = reader.Read <LiquidData>();
                }
            }

            for (var x = 0; x < SharedConst.ADT_CELL_SIZE; ++x)
            {
                Flags[x] = new byte[SharedConst.ADT_CELL_SIZE];

                for (var y = 0; y < SharedConst.ADT_CELL_SIZE; ++y)
                {
                    Flags[x][y] = reader.ReadByte();
                }
            }
        }
Exemple #13
0
        private static void DrinkFromFountain(CharacterInstance ch, ObjectInstance obj)
        {
            if (obj.Values.Quantity <= 0)
            {
                obj.Values.QUantity = GetMaximumCondition();
            }

            LiquidData liquid = RepositoryManager.Instance.LIQUIDS.Get(obj.Values.LiquidID) ??
                                RepositoryManager.Instance.LIQUIDS.Get(0);

            if (!ch.IsNpc())
            {
                var pch = (PlayerInstance)ch;
                if (obj.Values.LiquidID != 0)
                {
                    pch.GainCondition(ConditionTypes.Thirsty, liquid.GetMod(ConditionTypes.Thirsty));
                    pch.GainCondition(ConditionTypes.Full, liquid.GetMod(ConditionTypes.Full));
                    pch.GainCondition(ConditionTypes.Drunk, liquid.GetMod(ConditionTypes.Drunk));

                    if (ch.IsVampire())
                    {
                        pch.GainCondition(ConditionTypes.Bloodthirsty, liquid.GetMod(ConditionTypes.Bloodthirsty));
                    }
                }
                else if (obj.Values.LiquidID == 0)
                {
                    pch.PlayerData.ConditionTable[ConditionTypes.Thirsty] = GetMaximumCondition();
                }
            }

            if (!MudProgHandler.ExecuteObjectProg(MudProgTypes.Use, ch, obj, null, null))
            {
                comm.act(ATTypes.AT_ACTION, "$n drinks from the fountain.", ch, null, null, ToTypes.Room);
                ch.SendTo("You take a long thirst quenching drink.");
            }
        }
    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();
    }
Exemple #15
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("Default_Pickup", 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 (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 > 0f)
                {
                    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);
                }
                if (liquidData.m_ConsumeEffect == ConsumeEffect.FoodPoisoning)
                {
                    this.SetupEffect("Vomit_icon_H", Color.white, (float)liquidData.m_ConsumeEffectLevel, "HUD_FoodPoisoning", ref num, -1f);
                }
            }
            this.m_UnknownEffect.SetActive(num == 0);
        }
        for (int i = num; i < this.m_EffectsData.Count; i++)
        {
            this.m_EffectsData[i].m_Parent.SetActive(false);
        }
        this.m_ConsumableEffects.gameObject.SetActive(true);
    }
Exemple #16
0
            public static LiquidData Read(Stream s, LiquidHeader header)
            {
                var r = new BinaryReader(s);
                var ret = new LiquidData
                              {
                                  HeightMap = new float[header.CountXVertices,header.CountYVertices],
                                  RenderFlags = new byte[header.Width,header.Height]
                              };

                for (int y = 0; y < header.CountYVertices; y++)
                {
                    for (int x = 0; x < header.CountXVertices; x++)
                    {
                        r.ReadUInt32();
                        ret.HeightMap[x, y] = r.ReadSingle();
                    }
                }

                for (int y = 0; y < header.Height; y++)
                {
                    for (int x = 0; x < header.Width; x++)
                    {
                        ret.RenderFlags[x, y] = r.ReadByte();
                    }
                }

                return ret;
            }
Exemple #17
0
        private static void DrinkFromContainer(CharacterInstance ch, ObjectInstance obj)
        {
            if (CheckFunctions.CheckIfTrue(ch, obj.Values.Quantity <= 0, "It is already empty."))
            {
                return;
            }

            if (!ch.IsNpc())
            {
                var pch = (PlayerInstance)ch;
                if (CheckFunctions.CheckIfTrue(ch, pch.GetCondition(ConditionTypes.Full) == GetMaximumCondition() ||
                                               pch.GetCondition(ConditionTypes.Thirsty) == GetMaximumCondition(),
                                               "Your stomach is too full to drink more!"))
                {
                    return;
                }
            }

            LiquidData liquid = RepositoryManager.Instance.LIQUIDS.Get(obj.Values.LiquidID) ??
                                RepositoryManager.Instance.LIQUIDS.Get(0);

            if (!MudProgHandler.ExecuteObjectProg(MudProgTypes.Use, ch, obj, null, null))
            {
                comm.act(ATTypes.AT_ACTION, "$n drinks $T from $p.", ch, obj, liquid.ShortDescription, ToTypes.Room);
                comm.act(ATTypes.AT_ACTION, "You drink $T from $p.", ch, obj, liquid.ShortDescription, ToTypes.Character);
            }

            if (!ch.IsNpc())
            {
                var pch = (PlayerInstance)ch;
                pch.GainCondition(ConditionTypes.Thirsty, liquid.GetMod(ConditionTypes.Thirsty));
                pch.GainCondition(ConditionTypes.Full, liquid.GetMod(ConditionTypes.Full));
                pch.GainCondition(ConditionTypes.Drunk, liquid.GetMod(ConditionTypes.Drunk));
                if (ch.IsVampire())
                {
                    pch.GainCondition(ConditionTypes.Bloodthirsty, liquid.GetMod(ConditionTypes.Bloodthirsty));
                }
            }

            if (liquid.Type == LiquidTypes.Poison)
            {
                DrinkPoison(ch, obj);
            }

            if (!ch.IsNpc())
            {
                var pch = (PlayerInstance)ch;

                EvaluateDrunkCondition(pch);
                EvaluateThirstCondition(pch);

                if (ch.IsVampire())
                {
                    EvaluateBloodthirstCondition(pch);
                }
                else if (!ch.IsVampire() && pch.GetCondition(ConditionTypes.Bloodthirsty) >= GetMaximumCondition())
                {
                    pch.PlayerData.ConditionTable[ConditionTypes.Bloodthirsty] = GetMaximumCondition();
                }
            }

            obj.Values.Quantity -= 1;
            if (CheckFunctions.CheckIfTrue(ch, obj.Values.Quantity <= 0, "You drink the last drop from your container."))
            {
                obj.Values.Quantity = 0;
            }
        }
Exemple #18
0
    private void OnEnterState()
    {
        if (this.m_DefaultVis)
        {
            this.m_DefaultVis.SetActive(false);
        }
        this.m_UnsafeWaterVis.SetActive(false);
        this.m_WaterVis.SetActive(false);
        foreach (string key in this.m_HerbVisualisations.Keys)
        {
            this.m_HerbVisualisations[key].SetActive(false);
        }
        this.m_HerbVis.SetActive(false);
        if (this.m_ItemVis)
        {
            this.m_ItemVis.SetActive(false);
        }
        if (this.m_State != Bowl.State.None)
        {
            this.InitializeAudio();
        }
        LiquidContainerInfo liquidContainerInfo = (LiquidContainerInfo)this.m_Info;

        LiquidManager.Get().GetLiquidData(liquidContainerInfo.m_LiquidType);
        switch (this.m_State)
        {
        case Bowl.State.None:
            this.m_ItemSlot.gameObject.SetActive(false);
            if (this.m_ItemVis)
            {
                this.m_ItemVis.gameObject.SetActive(false);
                this.m_ItemVis = null;
                return;
            }
            break;

        case Bowl.State.UnsafeWater:
        case Bowl.State.UnsafeWaterCooking:
            this.m_CookingDuration = 0f;
            this.m_UnsafeWaterVis.SetActive(true);
            return;

        case Bowl.State.WaterCooked:
            liquidContainerInfo.OnCooked();
            this.m_WaterVis.SetActive(true);
            return;

        case Bowl.State.Herb:
            if (this.m_ItemVis)
            {
                this.m_ItemVis.SetActive(true);
                return;
            }
            break;

        case Bowl.State.HerbCooking:
            this.m_CookingDuration = 0f;
            if (this.m_ItemVis)
            {
                this.m_ItemVis.SetActive(true);
                return;
            }
            break;

        case Bowl.State.HerbCooked:
        {
            this.m_HerbVis.SetActive(true);
            LiquidData liquidData = LiquidManager.Get().GetLiquidData(this.m_LCInfo.m_LiquidType);
            bool       flag       = false;
            foreach (string text in this.m_HerbVisualisations.Keys)
            {
                bool flag2 = liquidData != null && text == liquidData.m_ItemComponent.ToString();
                this.m_HerbVisualisations[text].SetActive(flag2);
                if (!flag && flag2)
                {
                    flag = true;
                }
            }
            if (!flag && this.m_DefaultVis)
            {
                this.m_DefaultVis.SetActive(true);
            }
            break;
        }

        default:
            return;
        }
    }
Exemple #19
0
    private void LoadScript()
    {
        TextAssetParser textAssetParser = new TextAssetParser(Resources.Load(LiquidManager.s_ScriptName) as TextAsset);

        for (int i = 0; i < textAssetParser.GetKeysCount(); i++)
        {
            Key key = textAssetParser.GetKey(i);
            if (key.GetName() == "Liquid")
            {
                LiquidData liquidData = new LiquidData();
                liquidData.m_LiquidType = (LiquidType)Enum.Parse(typeof(LiquidType), key.GetVariable(0).SValue);
                for (int j = 0; j < key.GetKeysCount(); j++)
                {
                    Key key2 = key.GetKey(j);
                    if (key2.GetName() == "Components")
                    {
                        liquidData.m_LiquidComponent = (LiquidType)Enum.Parse(typeof(LiquidType), key2.GetVariable(0).SValue);
                        liquidData.m_ItemComponent   = (ItemID)Enum.Parse(typeof(ItemID), key2.GetVariable(1).SValue);
                    }
                    else if (key2.GetName() == "Fat")
                    {
                        liquidData.m_Fat = key2.GetVariable(0).FValue;
                    }
                    else if (key2.GetName() == "Carbohydrates")
                    {
                        liquidData.m_Carbohydrates = key2.GetVariable(0).FValue;
                    }
                    else if (key2.GetName() == "Proteins")
                    {
                        liquidData.m_Proteins = key2.GetVariable(0).FValue;
                    }
                    else if (key2.GetName() == "Water")
                    {
                        liquidData.m_Water = key2.GetVariable(0).FValue;
                    }
                    else if (key2.GetName() == "SanityChange")
                    {
                        liquidData.m_SanityChange = key2.GetVariable(0).IValue;
                    }
                    else if (key2.GetName() == "CookingResult")
                    {
                        liquidData.m_CookingResult = (LiquidType)Enum.Parse(typeof(LiquidType), key2.GetVariable(0).SValue);
                    }
                    else if (key2.GetName() == "DrinkEffect")
                    {
                        LiquidConsumeEffectData liquidConsumeEffectData = new LiquidConsumeEffectData();
                        liquidConsumeEffectData.m_ConsumeEffect       = (ConsumeEffect)Enum.Parse(typeof(ConsumeEffect), key2.GetVariable(0).SValue);
                        liquidConsumeEffectData.m_ConsumeEffectChance = key2.GetVariable(1).FValue;
                        liquidConsumeEffectData.m_ConsumeEffectDelay  = key2.GetVariable(2).FValue;
                        liquidConsumeEffectData.m_ConsumeEffectLevel  = key2.GetVariable(3).IValue;
                        liquidData.m_ConsumeEffects.Add(liquidConsumeEffectData);
                    }
                    else if (key2.GetName() == "Energy")
                    {
                        liquidData.m_Energy = key2.GetVariable(0).FValue;
                    }
                    else if (key2.GetName() == "PoisonDebuff")
                    {
                        liquidData.m_PoisonDebuff = key2.GetVariable(0).IValue;
                    }
                    else if (key2.GetName() == "Disgusting")
                    {
                        liquidData.m_Disgusting = (key2.GetVariable(0).IValue != 0);
                    }
                }
                this.m_LiquidDatas.Add(liquidData);
            }
        }
    }
Exemple #20
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);
                    }
                }
            }
        }