diff --git a/Content.Server/Cargo/Systems/PriceGunSystem.cs b/Content.Server/Cargo/Systems/PriceGunSystem.cs index d7d708821c9b..7bd49b857ae1 100644 --- a/Content.Server/Cargo/Systems/PriceGunSystem.cs +++ b/Content.Server/Cargo/Systems/PriceGunSystem.cs @@ -15,6 +15,7 @@ public sealed class PriceGunSystem : EntitySystem [Dependency] private readonly UseDelaySystem _useDelay = default!; [Dependency] private readonly PricingSystem _pricingSystem = default!; [Dependency] private readonly PopupSystem _popupSystem = default!; + [Dependency] private readonly CargoSystem _bountySystem = default!; /// public override void Initialize() @@ -55,9 +56,17 @@ private void OnAfterInteract(EntityUid uid, PriceGunComponent component, AfterIn if (!TryComp(uid, out UseDelayComponent? useDelay) || _useDelay.IsDelayed((uid, useDelay))) return; - var price = _pricingSystem.GetPrice(args.Target.Value); + // Check if we're scanning a bounty crate + if (_bountySystem.IsBountyComplete(args.Target.Value, (EntityUid?) null, out _)) + { + _popupSystem.PopupEntity(Loc.GetString("price-gun-bounty-complete"), args.User, args.User); + } + else // Otherwise appraise the price + { + double price = _pricingSystem.GetPrice(args.Target.Value); + _popupSystem.PopupEntity(Loc.GetString("price-gun-pricing-result", ("object", Identity.Entity(args.Target.Value, EntityManager)), ("price", $"{price:F2}")), args.User, args.User); + } - _popupSystem.PopupEntity(Loc.GetString("price-gun-pricing-result", ("object", Identity.Entity(args.Target.Value, EntityManager)), ("price", $"{price:F2}")), args.User, args.User); _useDelay.TryResetDelay((uid, useDelay)); args.Handled = true; } diff --git a/Resources/Locale/en-US/cargo/price-gun-component.ftl b/Resources/Locale/en-US/cargo/price-gun-component.ftl index e266078c5dfe..29a1482d19c0 100644 --- a/Resources/Locale/en-US/cargo/price-gun-component.ftl +++ b/Resources/Locale/en-US/cargo/price-gun-component.ftl @@ -1,3 +1,4 @@ price-gun-pricing-result = The device deems {THE($object)} to be worth {$price} spesos. price-gun-verb-text = Appraisal price-gun-verb-message = Appraise {THE($object)}. +price-gun-bounty-complete = The device confirms that the bounty contained within is completed. diff --git a/Resources/Prototypes/Entities/Objects/Tools/appraisal.yml b/Resources/Prototypes/Entities/Objects/Tools/appraisal.yml index 539e5a3dc5f8..4ec8d288573a 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/appraisal.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/appraisal.yml @@ -2,7 +2,7 @@ parent: BaseItem id: AppraisalTool name: appraisal tool - description: A beancounter's best friend, with a quantum connection to the galactic market and the ability to appraise even the toughest items. + description: A beancounter's best friend, with a quantum connection to the galactic market and the ability to appraise even the toughest items. It will also tell you if a crate contains a completed bounty. components: - type: Sprite sprite: Objects/Tools/appraisal-tool.rsi