diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerMagazineBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerMagazineBarrelComponent.cs index 36fd3a5909..6fc4efeb96 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerMagazineBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerMagazineBarrelComponent.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition; +using Content.Server.GameObjects.EntitySystems.Click; using Content.Shared.GameObjects; using Content.Shared.GameObjects.Components.Weapons.Ranged; using Content.Shared.GameObjects.Components.Weapons.Ranged.Barrels; @@ -19,12 +20,13 @@ using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Localization; using Robust.Shared.Map; using Robust.Shared.Serialization; +using Robust.Shared.Utility; using Robust.Shared.ViewVariables; namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels { [RegisterComponent] - public sealed class ServerMagazineBarrelComponent : ServerRangedBarrelComponent + public sealed class ServerMagazineBarrelComponent : ServerRangedBarrelComponent, IExamine { public override string Name => "MagazineBarrel"; public override uint? NetID => ContentNetIDs.MAGAZINE_BARREL; @@ -412,6 +414,14 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels return false; } + public override void Examine(FormattedMessage message, bool inDetailsRange) + { + base.Examine(message, inDetailsRange); + + var text = Loc.GetString("\nIt uses {0} ammo.", Caliber); + message.AddText(text); + } + [Verb] private sealed class EjectMagazineVerb : Verb { diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs index 6f7f76cf62..024a4af52c 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs @@ -4,6 +4,7 @@ using System.Linq; using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Projectiles; using Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition; +using Content.Server.GameObjects.EntitySystems.Click; using Content.Shared.Audio; using Content.Shared.GameObjects.Components.Weapons.Ranged; using Content.Shared.Interfaces.GameObjects.Components; @@ -18,6 +19,7 @@ using Robust.Shared.Interfaces.Physics; using Robust.Shared.Interfaces.Random; using Robust.Shared.Interfaces.Timing; using Robust.Shared.IoC; +using Robust.Shared.Localization; using Robust.Shared.Log; using Robust.Shared.Map; using Robust.Shared.Maths; @@ -32,7 +34,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels /// All of the ranged weapon components inherit from this to share mechanics like shooting etc. /// Only difference between them is how they retrieve a projectile to shoot (battery, magazine, etc.) /// - public abstract class ServerRangedBarrelComponent : SharedRangedBarrelComponent, IUse, IInteractUsing + public abstract class ServerRangedBarrelComponent : SharedRangedBarrelComponent, IUse, IInteractUsing, IExamine { // There's still some of py01 and PJB's work left over, especially in underlying shooting logic, // it's just when I re-organised it changed me as the contributor @@ -441,5 +443,18 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels } } #endregion + + public virtual void Examine(FormattedMessage message, bool inDetailsRange) + { + var fireRateMessage = Loc.GetString(FireRateSelector switch + { + FireRateSelector.Safety => "Its safety is enabled.", + FireRateSelector.Single => "It's in single fire mode.", + FireRateSelector.Automatic => "It's in automatic fire mode.", + _ => throw new IndexOutOfRangeException() + }); + + message.AddText(fireRateMessage); + } } }