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; }
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); }
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; } }
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); }
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); }
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); }
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); }
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(); } }
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); } }
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); }
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(); } } }
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(); }
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); }
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; }
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; } }
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; } }
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); } } }
// 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); } } } }