appraisal verb (#11226)
Co-authored-by: CommieFlowers <rasmus.cedergren@hotmail.com>
This commit is contained in:
@@ -3,6 +3,7 @@ using Content.Server.Popups;
|
|||||||
using Content.Shared.IdentityManagement;
|
using Content.Shared.IdentityManagement;
|
||||||
using Content.Shared.Interaction;
|
using Content.Shared.Interaction;
|
||||||
using Content.Shared.Timing;
|
using Content.Shared.Timing;
|
||||||
|
using Content.Shared.Verbs;
|
||||||
using Robust.Shared.Player;
|
using Robust.Shared.Player;
|
||||||
|
|
||||||
namespace Content.Server.Cargo.Systems;
|
namespace Content.Server.Cargo.Systems;
|
||||||
@@ -20,8 +21,33 @@ public sealed class PriceGunSystem : EntitySystem
|
|||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
SubscribeLocalEvent<PriceGunComponent, AfterInteractEvent>(OnAfterInteract);
|
SubscribeLocalEvent<PriceGunComponent, AfterInteractEvent>(OnAfterInteract);
|
||||||
|
SubscribeLocalEvent<PriceGunComponent, GetVerbsEvent<UtilityVerb>>(OnUtilityVerb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnUtilityVerb(EntityUid uid, PriceGunComponent component, GetVerbsEvent<UtilityVerb> args)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!args.CanAccess || !args.CanInteract || args.Target == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (TryComp(args.Using, out UseDelayComponent? useDelay) && useDelay.ActiveDelay)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var price = _pricingSystem.GetPrice(args.Target);
|
||||||
|
|
||||||
|
var verb = new UtilityVerb()
|
||||||
|
{
|
||||||
|
Act = () =>
|
||||||
|
{
|
||||||
|
_popupSystem.PopupEntity(Loc.GetString("price-gun-pricing-result", ("object", Identity.Entity(args.Target, EntityManager)), ("price", $"{price:F2}")), args.User, Filter.Entities(args.User));
|
||||||
|
_useDelay.BeginDelay(uid, useDelay);
|
||||||
|
},
|
||||||
|
Text = Loc.GetString("price-gun-verb-text"),
|
||||||
|
Message = Loc.GetString("price-gun-verb-message", ("object", Identity.Entity(args.Target, EntityManager)))
|
||||||
|
};
|
||||||
|
|
||||||
|
args.Verbs.Add(verb);
|
||||||
|
}
|
||||||
private void OnAfterInteract(EntityUid uid, PriceGunComponent component, AfterInteractEvent args)
|
private void OnAfterInteract(EntityUid uid, PriceGunComponent component, AfterInteractEvent args)
|
||||||
{
|
{
|
||||||
if (!args.CanReach || args.Target == null)
|
if (!args.CanReach || args.Target == null)
|
||||||
|
|||||||
@@ -1 +1,3 @@
|
|||||||
price-gun-pricing-result = The device deems {THE($object)} to be worth {$price} credits.
|
price-gun-pricing-result = The device deems {THE($object)} to be worth {$price} credits.
|
||||||
|
price-gun-verb-text = Appraisal
|
||||||
|
price-gun-verb-message = Appraise {THE($object)}.
|
||||||
|
|||||||
Reference in New Issue
Block a user