* Changes gun flipping to use attack self secondary, moves it to base gun level (#75680)
## About The Pull Request
- Gun flipping is now done via attack self secondary (right click it
when it's in your active hand) rather than attack self ("use" hotkey or
left clicking it when in active hand)
- Moves gun flipping to `/gun` level
## Why It's Good For The Game
- Gun flipping has historically had very bad UX, as most ballistic guns
used attack self for some function - loading the gun, ejecting spent
rounds, racking the gun, etc. By putting it on attack self secondary, it
makes it a bit more of a deliberate thing and keeps it out of the way of
expected behavior
- TLDR: Makes it much less likely you end up spinning your shotgun like
a dingus in the middle of a firefight instead of racking the thing.
- Also makes it less likely you dump your entire mag trying to show off.
- Putting it on the base level lets me spin lasguns and disablers around
which I've always wanted to. It also means you can spin stuff like wands
and bows but I'm not too plussed about that. It's just funny
## Changelog
🆑 Melbert
qol: Gun Flipping is now done by right clicking the gun when it's in
your active hand ("use secondary"), meaning you should be less likely to
accidentally spin your gun instead of ejecting rounds / racking / etc.
qol: You can gun flip all guns, instead of just ballistics. This
includes stuff like wands.
/🆑
* Changes gun flipping to use attack self secondary, moves it to base gun level
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Weapon magazine ejection sound implementation (#75672)
## About The Pull Request
Implements (possibly re-implements if it was used some time ago)
magazine ejection sounds for firearms.
## Why It's Good For The Game
Better weapon feedback as you can distinguish whether you've inserted a
mag or not.
## Changelog
🆑 Stalkeros
fix: Adds or possibly re-adds firearm magazine ejection sounds.
/🆑
* Weapon magazine ejection sound implementation
---------
Co-authored-by: Stalkeros2 <42087567+Stalkeros2@users.noreply.github.com>
* Fix SHOULD_NOT_SLEEP hit in borg adjustable tracer bolts (#75512)
See #75232
* Fix SHOULD_NOT_SLEEP hit in borg adjustable tracer bolts
---------
Co-authored-by: Jordan Dominion <Cyberboss@users.noreply.github.com>
* Some Bolt-Action Fixes (sniper rifle mag manip independent of bolt, among other things) (#75079)
- because pipeguns can no longer misfire, removes the code relevant to
cleaning them with a cloth
- the above makes it so that you can insert/remove a sniper rifle's
magazine regardless of bolt open/close status, which is neat
- also nudges some code around so that affixing a bayonet or whacking
your gun with any item no longer spams it with "can't jam!" or "bolt
closed!"
## Why It's Good For The Game
less random irrelevant popups, and also the magazine on sniper rifles
thing just kind of irked me
* Some Bolt-Action Fixes (sniper rifle mag manip independent of bolt, among other things)
---------
Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
* Prevents desert eagles from loading sniper rounds (and vice versa) (#75382)
## About The Pull Request
This splits CALIBER_50 into CALIBER_50BMG and CALIBER_50AE, setting the
sniper rifle to use the former and the deagle to use the latter.
## Why It's Good For The Game
Prevents each of these weapons from loading calibers that they are not
intended to.
Recorded from yogs:

## Changelog
🆑
fix: Desert Eagles can no longer load .50 BMG sniper rifle rounds and
vice versa.
/🆑
* Prevents desert eagles from loading sniper rounds (and vice versa)
* Update projectiles.dm
* Update guns.dm
---------
Co-authored-by: ynot01 <ynot000001@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Fixes runtime when qdel'ing self-recharging guns with bayonets attached (#75406)
```
[00:29:34] Runtime in energy.dm, line 161: cannot read from list
proc name: can shoot (/obj/item/gun/energy/can_shoot)
src: the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator)
src.loc: the plating (81,77,2) (/turf/open/floor/plating)
call stack:
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): can shoot()
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): update overlays(16777215)
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): update icon(16777215)
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): update appearance(16777215)
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): clear bayonet()
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): handle atom del(the survival knife (/obj/item/knife/combat/survival))
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): handle atom del(the survival knife (/obj/item/knife/combat/survival))
the survival knife (/obj/item/knife/combat/survival): Destroy(0)
the survival knife (/obj/item/knife/combat/survival): Destroy(0)
the survival knife (/obj/item/knife/combat/survival): Destroy(0)
...
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): deconstruct(0)
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): atom destruction("melee")
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): blob act(the normal blob (/obj/structure/blob/normal))
the normal blob (/obj/structure/blob/normal): ConsumeTile()
the normal blob (/obj/structure/blob/normal): Be Pulsed()
the blobola (/obj/structure/blob/special/core): pulse area(the blobola overmind (/mob/camera/blob), 12, 4, 3)
Objects (/datum/controller/subsystem/processing/obj): fire(1)
Objects (/datum/controller/subsystem/processing/obj): ignite(1)
Master (/datum/controller/master): Loop(2)
Master (/datum/controller/master): StartProcessing(0)
```
🆑 ShizCalev
fix: Fixed a runtime which occured when a self-recharging gun (ie
proto-kinetic accelerator) with a bayonet attached was deleted.
/🆑
* Fixes runtime when qdel'ing self-recharging guns with bayonets attached
* Update microfusion_gun_attachments.dm
---------
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* FIXES RUNTIME CAUSING GUNS WITHOUT A MAGAZINE INSERTED TO NOT FIRE (#75407)
Caused by #75058🆑 ShizCalev
fix: Guns without magazines inserted can now fire again!
/🆑
* FIXES RUNTIME CAUSING GUNS WITHOUT A MAGAZINE INSERTED TO NOT FIRE
---------
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Buffs Lasers (#75329)
## About The Pull Request
This increases laser wound chance, increases the damage and also makes
them use less energy.
## Why It's Good For The Game
Lasers cannot reload so they're not as convenient as a gun, so this will
maybe make them more cool, honestly I just want to try this to see what
happens.
## Changelog
🆑 oranges
balance: increased laser damage, decreased energy cost and increased
wound chance
/🆑
* Buffs Lasers
---------
Co-authored-by: oranges <email@oranges.net.nz>
* Makes the divine bow renamable (#75180)
## About The Pull Request
Adds the UNIQUE_RENAME flag to the divine bow to allow the
name/description to be modified.
## Why It's Good For The Game
Consistency with every other null rod option (all of which inherit the
flag from `/obj/item/nullrod`
## Changelog
🆑
fix: The chaplain's divine bow can now be renamed like all other null
rod variants.
/🆑
* Makes the divine bow renamable
---------
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
* [NO GBP] Style meter fixes (#75090)
## About The Pull Request
Fixes:
- Crusher mark score applying to attacked corpses
- Parrying not working, in 2 different forms
- The style bar not being accurate with >= 600 style points
## Why It's Good For The Game
Bugs bad
## Changelog
🆑
fix: Style meter parrying works again
fix: Style meter bar now works correctly with very high style point
count
/🆑
* [NO GBP] Style meter fixes
---------
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
* Gunpoints now take half a second to activate, make gasp sounds, and briefly immobilize the shooter and target, other small balance changes (#74036)
## About The Pull Request
This PR messes around with gunpoints a bit, with the purpose of making
them more viable in certain scenarios without making them obnoxious. The
biggest change is that gunpoints now require a 0.5 second do_after()
where neither the shooter nor the target moves, and immobilizes both of
them for 0.75 seconds if point blank, or half that if you're 2 tiles
away. Originally you were supposed to only be able to initiate a
gunpoint from point-blank, but #56601 seems to have removed that
requirement, so we'll run with it and just leave it as advantageous to
gunpoint closer up. The do_after() reinforces that it should be used as
an ambush tactic, and so you can't use it on someone who's actively
fleeing or fighting you.
Getting held up will now make you emit a shocked gasp sound, a la Metal
Gear Solid, which combined with the short immobilize will hopefully make
it more noticeable that someone's pointing a gun at you.
Holdups will now immediately give a 25% bonus to damage and wounds,
instead of having to wait 2.5 seconds to hit the double damage stage.
Finally, right clicking someone that you're holding up will no longer
shoot them. That just feels like good consistency.
## Why It's Good For The Game
Hopefully makes gunpoints a little more viable for when you want to
stick someone who's not expecting it up without them immediately jetting
off. In the future I'd like to ape Baycode and let the gunman have an
action that toggles whether the victim is allowed to move, so you can
order them to move to a second location without instantly shooting them,
but that'll come later.
## Changelog
🆑 Ryll/Shaps
balance: Holding someone at gunpoint now requires both the shooter and
the victim to hold still for half a second before activating, so you
can't hold-up people fleeing or fighting you. After that, it will
briefly immobilize the both of you, 0.75 seconds if adjacent, or half
that if you're two tiles away. Nuke ops are immune to the
immobilization, since they're ready to die anyways.
balance: Holding someone up will immediately apply a 1.25x damage and
wound multiplier, rather than waiting 2.5 seconds to hit 2x.
soundadd: Being held up will now make the victim play a sharp gasp
sound, a la Metal Gear Solid.
qol: Trying to hold someone up that you're already holding up will no
longer shoot them.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Gunpoints now take half a second to activate, make gasp sounds, and briefly immobilize the shooter and target, other small balance changes
---------
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* Miner Style Points 2: Style on Everyone (#74690)
## About The Pull Request
A re-open of https://github.com/tgstation/tgstation/pull/66326 with
Fikou's permission
Adds the style meter, it can be bought from the mining vendor for 1500
points, it is an attachment to your glasses.
The style meter creates a display on your hud, with your recent actions,
like attacking enemies, killing them, mining ore etc. Actions like
spinning or flipping increase your score multiplier, making you get more
points.
Your style meter affects how much ore you get from mining rocks. By
default with the meter, you get 20% less ore, but at the highest, you
can get 1.2x the ore from mining. In addition, on B-tier or above, you
can "hotswap" items, by attacking an item in your backpack with one in
your hand (should it fit and all that). Also features a leaderboard for
highest style point count!
New streamable: https://streamable.com/eewi6l
The following are sources of points:
- Killing things
- Killing big things
- Killing small things
- Punching things
- Melee'ing things
- Mining rocks and ores
- Having matrix traps detonate
- Hit, defuse, and detonate gibtonite
- Detonate crusher marks
- Scan geysers
- Parry projectiles (others or your own)
Oh, right. While wearing the style meter, you're able to parry any
lavaland-based projectile by clicking on it or the tile it is on, which
reflects it back in a 7 degree arc, making it 20% faster and 15% more
damaging. Usually not very easy.
Maybe-plan in the future for some syndicate variant of this (with bullet
parrying and appropriate style sources, etc.), but not for this PR
Thanks to Arcane, multitooling the style meter will make it play some
sounds on rank-up.

https://streamable.com/nheaky
Parrying in action
## Why It's Good For The Game
Makes miners bring more ore in a fun way.
## Changelog
🆑 Fikou, Zonespace, Arcane for voicing
add: The mining vendor now has a style meter. This meter gauges your
style points and uses them to improve your ore yield.
/🆑
---------
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Miner Style Points 2: Style on Everyone
---------
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* adds spent subtypes for some ammo and adds them to the waystation and the faceoff space ruins. (#74950)
## About The Pull Request
Adds spent subtypes for .357, .45 acp and buckshot.
Replaces live ammo with the spent subtype on the waystation and the
faceoff space ruins.
## Why It's Good For The Game
I talked with a map maker and he didn't intend for 60+ live .357 rounds
on his map.
I assumed its the same for the waystation.
## Changelog
🆑
fix: Replaced live ammo found that was unintended on the waystation and
the faceoff with spent subtypes.
/🆑
* adds spent subtypes for some ammo and adds them to the waystation and the faceoff space ruins.
---------
Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com>
* Adds support for ammunition 'bands' and differentiates between detective speedloaders. (#74494)
## About The Pull Request
Adds support for ammunition 'bands', basically intended to be used
rather than wholly new sprites for new ammotypes. Additionally, they're
(meant to be) greyscale, which allows one overlay to be used for many
ammo types. Only implemented on the detective revolver.
From left to right
Default
Tracking (Purple)
Match (Silvery Blue)
Rubber (Blue)
DumDum (Yellow)
Hotshot (Red)
Iceblox (Light Blue)

These sprites are damn bad, as I'm not a spriter. I would appreciate it
if someone could improve them.
I am also not attached to the specific colors, any alternatives would be
appreciated.
## Why It's Good For The Game
Tired of all speedloaders being identical.
## Changelog
🆑
code: Adds support for ammunition 'bands', basically intended to be used
rather than wholly new sprites for new ammotypes. Additionally, they're
(meant to be) greyscale, which allows one overlay to be used for many
ammo types. Only implemented on the detective revolver.
/🆑
* Adds support for ammunition 'bands' and differentiates between detective speedloaders.
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
* Buffs the Bulldog (#74781)
## About The Pull Request
Buffs the Bulldog via giving it a damage modifier of 1.2.
## Why It's Good For The Game
Assuming default ammo, the C-20r is 30 damage a shot. The M-90gl is 35
damage, and has grenades as a side dish. The Saw is 30 and is fully
automatic. The Sniper is 70 alongside having incredible range, stunning,
and delimbing.
The Bulldog when loaded with buckshot does a grand total of 45 damage
point blank.
That's a pretty rough comparison, and once you take into account the
other types of ammo nukie guns can use, it doesn't get much better. As
is the only real usecase for the Bulldog is meteor slugs, and you're not
really using those for murder anyways.
## Changelog
🆑
balance: Bulldogs now hit 20% harder with their projectiles!
/🆑
* Buffs the Bulldog
---------
Co-authored-by: Borisvanmemes <39802339+Borisvanmemes@users.noreply.github.com>
* Makes the blowgun not need to windup before shooting (#74641)
## About The Pull Request
Removes the windup before shooting a blowgun
## Why It's Good For The Game
The blowgun already has 25 oxygen damage, and stamina drain when you
fire it, which puts it way below a syringe gun. This also gets rid of
the "one viable option" of ranged syringe gun that people rush, because
maybe if somebody steals the syringe gun, you can still make some
(worse, but viable) syringe gun.
## Changelog
🆑 Vect0r
balance: The blowgun no longer takes time to windup before you can shoot
it.
/🆑
* Makes the blowgun not need to windup before shooting
---------
Co-authored-by: vect0r <71346830+Vect0r2@users.noreply.github.com>
* Piercing rounds won't infinitely recurse when fired at piggyback players (#74586)
## About The Pull Request
I noticed in a round that someone fired a honkmother staff at a guy
riding a cyborg and it reported hitting them 374 times (with no effect).
Running it on local it seems like this proc was infinitely recursing
because after validating its targets it would return the mob the target
was buckled to, rather than the mob we actually validated, and then just
do that over and over again.
I made it not do that.
Now if you shoot someone riding a cyborg with a honk staff they will
fall of, as god intended.
Also now if you shoot a pair of people who are riding piggyback with
penetrator rounds, it will do what the name says and shoot both of them.
## Why It's Good For The Game
Rutimes bad. Throwing people around with bananas good. Shooting a hole
through two guys at a time, also good.
## Changelog
🆑
fix: You can no longer escape the wrath of the honkmother by climbing
onto a cyborg.
fix: Shooting a pair of piggybacked players with a penetrator round will
penetrate both players.
/🆑
* Piercing rounds won't infinitely recurse when fired at piggyback players
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* You can rename/change the description of thermal pistols (#74337)
## About The Pull Request
As the title, you can change the name and description of thermal
pistols.
Also changes the description a bit so people don't think it's self
charging.
## Why It's Good For The Game
Someone asked me to do this. Also people were sometimes confused about
the description.
## Changelog
🆑
qol: You can rename and change the description of nanite/thermal
pistols.
/🆑
* You can rename/change the description of thermal pistols
---------
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Removes networks from the game (#74142)
## About The Pull Request
This is a continuation of
https://github.com/tgstation/tgstation/pull/74085 - I announced in the
comments there that this would be my next PR, and this is it.
Removes SSnetwork, ``/datum/ntnet``,
``/datum/component/ntnet_interface``, ``var/network_root_id``, the
network unit test, and a lot of other things related to networks.
- NTNet circuits now check for an Ntnet relay, and uses signals to
operate.
- Logs in Wirecarp is now only for PDA and Ntnet Relay things, so you
can no longer see what ruins exist using it (why should Wirecarp know
that Oldstation spawned? The flavor is that they dont know its there).
- Removed it from MULEbots entirely, I don't think it even did anything
for them? Botkeeper seems to work without it, so it's possibly there
from pre-tgui PDAs.
- Moves assigning random names to a base proc instead of being tied to
network, this is things like random-naming scrubbers/vents. The behavior
hasn't changed at all.
- Makes Ntos work for consoles when relays are down, as the comments
said they're supposed to (because they're wired). I think this was an
accidental change on my part, so this is a revert of that.
## Why It's Good For The Game
Ntnet is ancient code that hasn't given us much that we can't do with
already existing alternatives, we've been slowly moving away from it for
init times, and though a large portion of that was limited to airlocks,
I still don't think this is a system worth keeping around.
It's way too complex to expect feature coders to do anything with it,
and too old with better alternatives for anyone to want to improve any
of it.
## Changelog
🆑
fix: Computers are now properly connected to Ethernet, and can use Ntos
when Relays are down.
refactor: Removes Ntnet and Ntnet interfaces, which was only used by
Ntnet circuits (which now directly checks for a Relay to work) and
MULEbots, which did nothing with it.
balance: Wirecarp no longer tells you what ruins spawned in a round,
instead it's limited to PDA logs, and tells you the source too. This
means the RD can catch someone running illegal programs if they don't
make any attempt at hiding it.
qol: Wirecarp logs is now set to save 300 at once, instead of 100 and
being increased to 300 by the RD during the round. This is pretty
insignificant, since there's no reason to NOT want as many logs as
possible.
/🆑
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Removes networks from the game
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Allows any bullet class that doesn't override wound_bonus to cause wounds. (#73838)
Overrides wound_bonus for the bullet class to be 0 instead of
CANT_WOUND.
## About The Pull Request
The bullet class has wound_bonus 0 instead of CANT_WOUND. This allows
things such as 9mm and 10mm to wound, and probably other things.
## Why It's Good For The Game
Makarovs that used 9mm and some other things just didn't cause any
wounds, and that was sad. Bullets are physical things, so it doesn't
make sense to make them not cause any wounds unless they were overidden.
## Changelog
🆑
balance: 9mm, 10mm, and other stuff can cause wounds.
/🆑
* Allows any bullet class that doesn't override wound_bonus to cause wounds.
---------
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* New var on firing pins for admins to render them unremovable. Fixes firing pin swapping overlapping balloon alerts (#73837)
## About The Pull Request
A couple weeks ago I needed a gun that could not under any circumstances
have its firing pin removed for an event, there was a var for
"pin_removable" which didn't actually do this, I've reworked its purpose
to allow admins to edit as firing pin to make it unremovable and renamed
its old functionality to pin_hot_swappable to better clarify what the
var actually did.
Also I've changed the balloon alert for pin swapping to be a single
balloon alert stating the pins have been swapped rather than two, one
for removal and one for replacement.
None of existing firing pins has had to functionality implemented on
them so its admin only for the time being.
## Why It's Good For The Game
Better readability for pin swapping and admins/future coders can make
firing pins unremovable for events/code additions.
## Changelog
🆑
fix: Firing pin swapping's 2 balloon alerts have been replaced with a
single more readable one.
admin: Admins can now edit a pin_removable var on firing pins to render
them unremovable from the weapons they're installed in.
/🆑
* New var on firing pins for admins to render them unremovable. Fixes firing pin swapping overlapping balloon alerts
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>