Thieving component and Thieving Gloves (#9158)

* Thieving component and gloves

* Fixes popup issue

* Forgot to add it for hands

* Adds a bool datafield

* Comments

* Requested changes
This commit is contained in:
keronshb
2022-06-27 20:14:51 -04:00
committed by GitHub
parent 1af61c5041
commit 206513c31b
7 changed files with 101 additions and 4 deletions

View File

@@ -410,11 +410,15 @@ namespace Content.Server.Strip
if (!_inventorySystem.TryGetSlot(component.Owner, slot, out var slotDef))
{
Logger.Error($"{ToPrettyString(user)} attempted to place an item in a non-existent inventory slot ({slot}) on {ToPrettyString(component.Owner)}");
Logger.Error($"{ToPrettyString(user)} attempted to take an item from a non-existent inventory slot ({slot}) on {ToPrettyString(component.Owner)}");
return;
}
var doAfterArgs = new DoAfterEventArgs(user, slotDef.StripTime, CancellationToken.None, component.Owner)
var ev = new BeforeStripEvent(slotDef.StripTime);
RaiseLocalEvent(user, ev);
var finalStripTime = ev.Time + ev.Additive;
var doAfterArgs = new DoAfterEventArgs(user, finalStripTime, CancellationToken.None, component.Owner)
{
ExtraCheck = Check,
BreakOnStun = true,
@@ -425,7 +429,7 @@ namespace Content.Server.Strip
if (Check())
{
if (slotDef.StripHidden)
if (slotDef.StripHidden && !ev.Stealth)
_popupSystem.PopupEntity(Loc.GetString("strippable-component-alert-owner-hidden", ("slot", slot)), component.Owner, Filter.Entities(component.Owner));
else
{
@@ -476,7 +480,11 @@ namespace Content.Server.Strip
return true;
}
var doAfterArgs = new DoAfterEventArgs(user, component.HandStripDelay, CancellationToken.None, component.Owner)
var ev = new BeforeStripEvent(component.HandStripDelay);
RaiseLocalEvent(user, ev);
var finalStripTime = ev.Time + ev.Additive;
var doAfterArgs = new DoAfterEventArgs(user, finalStripTime, CancellationToken.None, component.Owner)
{
ExtraCheck = Check,
BreakOnStun = true,