Esempio n. 1
0
        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.
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 7
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);
 }
Esempio n. 14
0
 private static WaterSource GetWaterSource(Panel_PickWater panel)
 {
     return(Traverse.Create(panel).Field("m_WaterSource").GetValue <WaterSource>());
 }
Esempio n. 15
0
 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);
 }