* Rework flaregun and add security shell gun * Make flare gun twice as likely to appear in emergency lockers * Security shell gun can now fire lethal shells like the flare gun used to be able to. * Rebalance the sec shell gun material cost to primarily be steel instead of plastic * Define the ShellShotgunLight tag in tags.yml * Leave the no lethal shells for normal flareguns to a different PR. * Move a comment to re-run checks. * Bye bye lethal shells from plastic guns. * Fix weird whitespace issue. * Make the sec shell gun inherit the normal flare gun. * Remove the rack verb and update the sec shell gun description * Remove the ability to fire lethals from flare guns, pending blowing up the gun --------- Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
40 lines
1.7 KiB
C#
40 lines
1.7 KiB
C#
using Content.Shared.Weapons.Ranged.Systems;
|
|
using Robust.Shared.Audio;
|
|
|
|
namespace Content.Shared.Weapons.Ranged.Components;
|
|
|
|
/// <summary>
|
|
/// Chamber + mags in one package. If you need just magazine then use <see cref="MagazineAmmoProviderComponent"/>
|
|
/// </summary>
|
|
[RegisterComponent, AutoGenerateComponentState]
|
|
[Access(typeof(SharedGunSystem))]
|
|
public sealed partial class ChamberMagazineAmmoProviderComponent : MagazineAmmoProviderComponent
|
|
{
|
|
/// <summary>
|
|
/// If the gun has a bolt and whether that bolt is closed. Firing is impossible
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite), DataField("boltClosed"), AutoNetworkedField]
|
|
public bool? BoltClosed = false;
|
|
|
|
/// <summary>
|
|
/// Does the gun automatically open and close the bolt upon shooting.
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite), DataField("autoCycle"), AutoNetworkedField]
|
|
public bool AutoCycle = true;
|
|
|
|
/// <summary>
|
|
/// Can the gun be racked, which opens and then instantly closes the bolt to cycle a round.
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite), DataField("canRack"), AutoNetworkedField]
|
|
public bool CanRack = true;
|
|
|
|
[ViewVariables(VVAccess.ReadWrite), DataField("soundBoltClosed"), AutoNetworkedField]
|
|
public SoundSpecifier? BoltClosedSound = new SoundPathSpecifier("/Audio/Weapons/Guns/Bolt/rifle_bolt_closed.ogg");
|
|
|
|
[ViewVariables(VVAccess.ReadWrite), DataField("soundBoltOpened"), AutoNetworkedField]
|
|
public SoundSpecifier? BoltOpenedSound = new SoundPathSpecifier("/Audio/Weapons/Guns/Bolt/rifle_bolt_open.ogg");
|
|
|
|
[ViewVariables(VVAccess.ReadWrite), DataField("soundRack"), AutoNetworkedField]
|
|
public SoundSpecifier? RackSound = new SoundPathSpecifier("/Audio/Weapons/Guns/Cock/ltrifle_cock.ogg");
|
|
}
|