diff --git a/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs b/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs index 16a7277ad..0006eb558 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs @@ -436,7 +436,7 @@ namespace Barotrauma InfoFrame.FindChild("showlog").Visible = GameMain.Server != null; - campaignViewButton = new GUIButton(new Rectangle(0, 0, 130, 30), "Campaign view", Alignment.BottomRight, "", defaultModeContainer); + campaignViewButton = new GUIButton(new Rectangle(-80, 0, 120, 30), "Campaign view", Alignment.BottomRight, "", defaultModeContainer); campaignViewButton.OnClicked = (btn, obj) => { ToggleCampaignView(true); return true; }; campaignViewButton.Visible = false; diff --git a/Barotrauma/BarotraumaShared/BarotraumaShared.projitems b/Barotrauma/BarotraumaShared/BarotraumaShared.projitems index a8b61c502..e57545b78 100644 --- a/Barotrauma/BarotraumaShared/BarotraumaShared.projitems +++ b/Barotrauma/BarotraumaShared/BarotraumaShared.projitems @@ -743,7 +743,7 @@ PreserveNewest - PreserveNewest + Always PreserveNewest diff --git a/Barotrauma/BarotraumaShared/Data/clientpermissions.xml b/Barotrauma/BarotraumaShared/Data/clientpermissions.xml index e8edf48f8..ccc105b28 100644 --- a/Barotrauma/BarotraumaShared/Data/clientpermissions.xml +++ b/Barotrauma/BarotraumaShared/Data/clientpermissions.xml @@ -1,4 +1,3 @@ - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs index 0783bbdb6..0e7fff190 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs @@ -197,7 +197,7 @@ namespace Barotrauma { get { return !IsUnconscious && Stun <= 0.0f && !isDead; } } - + public bool CanInteract { get { return AllowInput && IsHumanoid && !LockHands; } @@ -303,11 +303,11 @@ namespace Barotrauma get { return needsAir; } set { needsAir = value; } } - + public float Oxygen { get { return oxygen; } - set + set { if (!MathUtils.IsValid(value)) return; oxygen = MathHelper.Clamp(value, -100.0f, 100.0f); @@ -331,7 +331,7 @@ namespace Barotrauma { if (GameMain.Client != null) return; - SetStun(value); + SetStun(value); } } @@ -358,7 +358,7 @@ namespace Barotrauma } } } - + public float MaxHealth { get { return maxHealth; } @@ -367,33 +367,33 @@ namespace Barotrauma public float Bleeding { get { return bleeding; } - set + set { if (!MathUtils.IsValid(value)) return; if (GameMain.Client != null) return; if (!DoesBleed) return; - float newBleeding = MathHelper.Clamp(value, 0.0f, 5.0f); + float newBleeding = MathHelper.Clamp(value, 0.0f, 5.0f); if (newBleeding == bleeding) return; bleeding = newBleeding; - + if (GameMain.Server != null) GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status }); } } - + public HuskInfection huskInfection; public float HuskInfectionState { - get - { - return huskInfection == null ? 0.0f : huskInfection.IncubationTimer; + get + { + return huskInfection == null ? 0.0f : huskInfection.IncubationTimer; } set { if (ConfigPath != humanConfigFile) return; - + if (value <= 0.0f) { if (huskInfection != null) @@ -449,7 +449,7 @@ namespace Barotrauma get; set; } - + public Item[] SelectedItems { get { return selectedItems; } @@ -466,6 +466,12 @@ namespace Barotrauma get { return focusedItem; } } + public Item PickingItem + { + get; + set; + } + public virtual AIController AIController { get { return null; } diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/Pickable.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/Pickable.cs index 69e06f783..482aee51f 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/Pickable.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/Pickable.cs @@ -13,7 +13,6 @@ namespace Barotrauma.Items.Components private float pickTimer; - public List AllowedSlots { get { return allowedSlots; } @@ -55,13 +54,15 @@ namespace Barotrauma.Items.Components public override bool Pick(Character picker) { //return if someone is already trying to pick the item - if (pickTimer>0.0f) return false; + if (pickTimer > 0.0f) return false; if (picker == null || picker.Inventory == null) return false; - if (PickingTime>0.0f) + if (PickingTime > 0.0f) { - CoroutineManager.StartCoroutine(WaitForPick(picker, PickingTime)); - + if (picker.PickingItem == null) + { + CoroutineManager.StartCoroutine(WaitForPick(picker, PickingTime)); + } return false; } else @@ -104,6 +105,8 @@ namespace Barotrauma.Items.Components private IEnumerable WaitForPick(Character picker, float requiredTime) { + picker.PickingItem = item; + var leftHand = picker.AnimController.GetLimb(LimbType.LeftHand); var rightHand = picker.AnimController.GetLimb(LimbType.RightHand); @@ -151,7 +154,8 @@ namespace Barotrauma.Items.Components private void StopPicking(Character picker) { picker.AnimController.Anim = AnimController.Animation.None; - pickTimer = 0.0f; + picker.PickingItem = null; + pickTimer = 0.0f; } protected void DropConnectedWires(Character character)