diff --git a/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs b/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs index e9d156413648..624566c06c21 100644 --- a/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs +++ b/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs @@ -625,7 +625,31 @@ public bool TryStartPull(EntityUid pullerUid, EntityUid pullableUid, return false; if (!TryStopPull(pullableUid, pullableComp, pullableComp.Puller)) + { + _popup.PopupEntity(Loc.GetString("popup-grab-retake-fail", + ("puller", Identity.Entity(pullableComp.Puller.Value, EntityManager)), + ("pulled", Identity.Entity(pullableUid, EntityManager))), + pullerUid, pullerUid, PopupType.MediumCaution); + _popup.PopupEntity(Loc.GetString("popup-grab-retake-fail-puller", + ("puller", Identity.Entity(pullerUid, EntityManager)), + ("pulled", Identity.Entity(pullableUid, EntityManager))), + pullableComp.Puller.Value, pullableComp.Puller.Value, PopupType.MediumCaution); + return false; + } + + else if (pullableComp.GrabStage != GrabStage.No) + { + _popup.PopupEntity(Loc.GetString("popup-grab-retake-success", + ("puller", Identity.Entity(pullableComp.Puller.Value, EntityManager)), + ("pulled", Identity.Entity(pullableUid, EntityManager))), + pullerUid, pullerUid, PopupType.MediumCaution); + _popup.PopupEntity(Loc.GetString("popup-grab-retake-success-puller", + ("puller", Identity.Entity(pullerUid, EntityManager)), + ("pulled", Identity.Entity(pullableUid, EntityManager))), + pullableComp.Puller.Value, pullableComp.Puller.Value, PopupType.MediumCaution); + } + } var pullAttempt = new PullAttemptEvent(pullerUid, pullableUid); diff --git a/Resources/Locale/en-US/pulling/popups.ftl b/Resources/Locale/en-US/pulling/popups.ftl index 9a30f748b525..a9286aab771a 100644 --- a/Resources/Locale/en-US/pulling/popups.ftl +++ b/Resources/Locale/en-US/pulling/popups.ftl @@ -16,6 +16,10 @@ popup-grab-no-others = {CAPITALIZE($puller)} stopped grabbing {CAPITALIZE($targe popup-grab-release-fail-self = You are trying to escape. popup-grab-release-success-self = You escaped from grab! popup-grab-release-success-puller = {CAPITALIZE($target)} escaped! +popup-grab-retake-fail = {CAPITALIZE($puller)} is not letting you to pull {CAPITALIZE($pulled)}! +popup-grab-retake-fail = {CAPITALIZE($puller)} is trying to release {CAPITALIZE($pulled)}! +popup-grab-retake-success = You released {CAPITALIZE($pulled)} from {CAPITALIZE($puller)}'s grab! +popup-grab-retake-success-puller = {CAPITALIZE($puller)} released {CAPITALIZE($pulled)} from your grab! popup-grabbed-cant-speak = You can't breathe!