internal static void Prepare(Panel_PickWater panel) { labelNoCapacityWarning = NGUITools.AddChild <UILabel>(panel.gameObject); labelNoCapacityWarning.depth = 2000; labelNoCapacityWarning.bitmapFont = panel.m_Label_Description.bitmapFont; labelNoCapacityWarning.fontSize = 12; labelNoCapacityWarning.alignment = NGUIText.Alignment.Center; labelNoCapacityWarning.pivot = UIWidget.Pivot.Center; labelNoCapacityWarning.width = 400; labelNoCapacityWarning.height = 12; labelNoCapacityWarning.capsLock = true; labelNoCapacityWarning.transform.position = new Vector3(0, -0.908f, 0); labelNoCapacityWarning.text = Localization.Get("GAMEPLAY_NoCapacityAvailable"); labelNoCapacityWarning.gameObject.SetActive(false); labelCapacityInfo = NGUITools.AddChild <UILabel>(panel.gameObject); labelCapacityInfo.depth = 2000; labelNoCapacityWarning.color = new Color(0.640f, 0.202f, 0.231f); labelCapacityInfo.bitmapFont = panel.m_Label_Description.bitmapFont; labelCapacityInfo.fontSize = 14; labelCapacityInfo.alignment = NGUIText.Alignment.Center; labelCapacityInfo.pivot = UIWidget.Pivot.Center; labelCapacityInfo.width = 400; labelCapacityInfo.height = 14; labelCapacityInfo.capsLock = true; labelCapacityInfo.transform.position = new Vector3(0, -0.858f, 0); }
internal static void UpdateDrinking(Panel_PickWater panel) { InterfaceManager.m_Panel_HUD.m_InspectMode_Equip.gameObject.SetActive(panel.IsEnabled()); InterfaceManager.m_Panel_HUD.m_InspectMode_Equip.text = Localization.Get("GAMEPLAY_DrinkIt"); InterfaceManager.m_Panel_HUD.m_InspectMode_Equip.enabled = true; //test //InterfaceManager.m_Panel_HUD.m_InspectMode_Equip. }
internal static void UpdateButtons(Panel_PickWater panel) { WaterSource waterSource = GetWaterSource(panel); if (!waterSource) { Debug.LogError("Could not find WaterSource"); return; } float limit = Water.GetRemainingCapacity(waterSource.GetQuality()) + Water.GetRemainingCapacityEmpty(); panel.m_ButtonIncrease.SetActive(panel.m_numLiters < limit); }
internal static void ClampAmount(Panel_PickWater panel) { WaterSource waterSource = GetWaterSource(panel); if (!waterSource) { Debug.LogError("Could not find WaterSupply to transfer to"); return; } float limit = Water.GetRemainingCapacity(waterSource.GetQuality()) + Water.GetRemainingCapacityEmpty(); panel.m_numLiters = Mathf.Min(panel.m_numLiters, limit); }
internal static void UpdateCapacityInfo(Panel_PickWater panel) { WaterSource waterSource = GetWaterSource(panel); if (!waterSource) { Debug.LogError("UpdateCapacityInfo: Could not find WaterSource"); return; } labelCapacityInfo.text = GetWaterInfo(LiquidQuality.Potable) + " " + GetWaterInfo(LiquidQuality.NonPotable) + " " + Localization.Get("GAMEPLAY_Empty") + ": " + WaterUtils.FormatWaterAmount(0) + "/" + WaterUtils.FormatWaterAmount(Water.GetRemainingCapacityEmpty()); labelNoCapacityWarning.gameObject.SetActive(Water.GetRemainingCapacityEmpty() == 0 && Water.GetRemainingCapacity(waterSource.GetQuality()) == 0); }
public static void ClampAmount(Panel_PickWater panel) { WaterSupply waterSupply = AccessTools.Field(panel.GetType(), "m_WaterSupplyInventory").GetValue(panel) as WaterSupply; if (!waterSupply) { Debug.LogError("Could not find WaterSupply to transfer to"); return; } float limit = Water.GetRemainingCapacity(waterSupply.m_WaterQuality) + Water.GetRemainingCapacityEmpty(); panel.m_numLiters = Mathf.Clamp(panel.m_numLiters, 0, limit); panel.m_maxLiters = Mathf.Clamp(panel.m_maxLiters, 0, limit); AccessTools.Method(panel.GetType(), "Refresh").Invoke(panel, null); labelNoCapacityWarning.gameObject.SetActive(limit == 0); }
internal static void Postfix(Panel_PickWater __instance) { if (InputManager.GetEquipPressed(__instance)) { var waterSource = __instance.m_WaterSource; if (!waterSource) { Implementation.LogError("UpdateCapacityInfo: Could not find WaterSource"); return; } if (Water.IsNone(waterSource.m_CurrentLiters)) { HUDMessage.AddMessage(Localization.Get("GAMEPLAY_BWM_Empty")); GameAudioManager.PlayGUIError(); return; } float waterVolumeToDrink = GameManager.GetPlayerManagerComponent().CalculateWaterVolumeToDrink(waterSource.m_CurrentLiters); if (Water.IsNone(waterVolumeToDrink)) { GameAudioManager.PlayGUIError(); HUDMessage.AddMessage(Localization.Get("GAMEPLAY_Youarenotthirsty")); return; } GameAudioManager.PlayGuiConfirm(); WaterSupply waterSupply; if (waterSource.GetQuality() == LiquidQuality.Potable) { waterSupply = __instance.InstantiateWaterSupply(__instance.m_WaterSupply_Potable).m_WaterSupply; } else { waterSupply = __instance.InstantiateWaterSupply(__instance.m_WaterSupply_NonPotable).m_WaterSupply; } waterSupply.m_VolumeInLiters = waterSource.m_CurrentLiters; waterSource.RemoveLiters(waterVolumeToDrink); GameManager.GetPlayerManagerComponent().DrinkFromWaterSupply(waterSupply, waterSupply.m_VolumeInLiters); UnityEngine.Object.Destroy(waterSupply.gameObject); __instance.ExitInterface(); } }
internal static void Postfix(Panel_PickWater __instance) { if (InputManager.GetEquipPressed(GameManager.Instance())) { Traverse traverse = Traverse.Create(__instance); GameObject gameObject = new GameObject(); GearItem gearItem = gameObject.AddComponent <GearItem>(); gearItem.m_LocalizedDisplayName = new LocalizedString { m_LocalizationID = "" }; WaterSourceSupply waterSourceSupply = gameObject.AddComponent <WaterSourceSupply>(); waterSourceSupply.SetWaterSource(traverse.Field("m_WaterSource").GetValue <WaterSource>()); gearItem.Awake(); traverse.Method("ExitInterface").GetValue(); GameManager.GetPlayerManagerComponent().UseInventoryItem(gearItem); } }
internal static void Postfix(Panel_PickWater __instance) { PickWater.Prepare(__instance); }
internal static void Postfix(Panel_PickWater __instance) { PickWater.UpdateCapacityInfo(__instance); }
internal static void Postfix(Panel_PickWater __instance) { PickWater.UpdateButtons(__instance); }
internal static void Prefix(Panel_PickWater __instance) { PickWater.ClampAmount(__instance); }
internal static void Postfix(Panel_PickWater __instance) { PickWater.UpdateDrinking(__instance); }
private static WaterSource GetWaterSource(Panel_PickWater panel) { return(Traverse.Create(panel).Field("m_WaterSource").GetValue <WaterSource>()); }
private static void Refresh(Panel_PickWater panel) { Traverse.Create(panel).Method("Refresh").GetValue(); }
public static void Prefix(Panel_PickWater __instance) { Debug.LogFormat("Panel_PickWater::TakeWater"); lastAction = FasterGenericAction.PICK_WATER; }
public static void Postfix(Panel_PickWater __instance) { PickWater.ClampAmount(__instance); }