Fix misc cuffing issues (#12127)
This commit is contained in:
@@ -285,6 +285,8 @@ namespace Content.Client.Hands.Systems
|
||||
if (!Resolve(uid, ref handComp, ref sprite, false))
|
||||
return;
|
||||
|
||||
OnPlayerItemAdded?.Invoke(hand.Name, held);
|
||||
|
||||
if (!handComp.ShowInHands)
|
||||
return;
|
||||
|
||||
@@ -361,7 +363,6 @@ namespace Content.Client.Hands.Systems
|
||||
|
||||
private void HandlePlayerAttached(EntityUid uid, HandsComponent component, PlayerAttachedEvent args)
|
||||
{
|
||||
if (_playerManager.LocalPlayer?.ControlledEntity == uid)
|
||||
OnPlayerHandsAdded?.Invoke(component);
|
||||
}
|
||||
|
||||
|
||||
@@ -108,7 +108,17 @@ public sealed class HandsUIController : UIController, IOnStateEntered<GameplaySt
|
||||
foreach (var (name, hand) in handsComp.Hands)
|
||||
{
|
||||
var handButton = AddHand(name, hand.Location);
|
||||
|
||||
if (_entities.TryGetComponent(hand.HeldEntity, out HandVirtualItemComponent? virt))
|
||||
{
|
||||
handButton.SpriteView.Sprite = _entities.GetComponentOrNull<SpriteComponent>(virt.BlockingEntity);
|
||||
handButton.Blocked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
handButton.SpriteView.Sprite = _entities.GetComponentOrNull<SpriteComponent>(hand.HeldEntity);
|
||||
handButton.Blocked = false;
|
||||
}
|
||||
}
|
||||
|
||||
var activeHand = handsComp.ActiveHand;
|
||||
@@ -149,9 +159,16 @@ public sealed class HandsUIController : UIController, IOnStateEntered<GameplaySt
|
||||
var hand = GetHand(name);
|
||||
if (hand == null)
|
||||
return;
|
||||
if (_entities.TryGetComponent(entity, out ISpriteComponent? sprite))
|
||||
|
||||
if (_entities.TryGetComponent(entity, out HandVirtualItemComponent? virt))
|
||||
{
|
||||
hand.SpriteView.Sprite = sprite;
|
||||
hand.SpriteView.Sprite = _entities.GetComponentOrNull<SpriteComponent>(virt.BlockingEntity);
|
||||
hand.Blocked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
hand.SpriteView.Sprite = _entities.GetComponentOrNull<SpriteComponent>(entity);
|
||||
hand.Blocked = false;
|
||||
}
|
||||
|
||||
if (_playerHandsComponent?.ActiveHand?.Name == name)
|
||||
|
||||
@@ -235,7 +235,7 @@ namespace Content.Server.Cuffs.Components
|
||||
}
|
||||
|
||||
var uncuffTime = isOwner ? cuff.BreakoutTime : cuff.UncuffTime;
|
||||
var doAfterEventArgs = new DoAfterEventArgs(user, uncuffTime)
|
||||
var doAfterEventArgs = new DoAfterEventArgs(user, uncuffTime, target: Owner)
|
||||
{
|
||||
BreakOnUserMove = true,
|
||||
BreakOnTargetMove = true,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Threading;
|
||||
using System.Threading;
|
||||
using Content.Shared.FixedPoint;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Server.DoAfter
|
||||
{
|
||||
@@ -125,6 +126,7 @@ namespace Content.Server.DoAfter
|
||||
|
||||
if (Target == null)
|
||||
{
|
||||
DebugTools.Assert(!BreakOnTargetMove);
|
||||
BreakOnTargetMove = false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user