## About The Pull Request
Port of https://github.com/shiptest-ss13/Shiptest/pull/3330
Partial port of https://github.com/shiptest-ss13/Shiptest/pull/1601
Makes two changes to how guns handle recoil.
- Changes recoil from an erratic shaking to a kicking of your screen
relative to your firing angle
- Adds a small cosmetic recoil to all ballistics (with an accompanying
pref option to tweak or disable it)
Primary recoil still is only used as a balance lever for a very small
handful of guns (and sawoff)
## Why It's Good For The Game
Cosmetic recoil makes guns feel a lot more punchier. People who think
its a competitive disadvantage (nerds/loosers) or people with a
legitimate sickness to screen shake or similar can just turn it off.
Old recoil was just reused explosion, while new recoil feels like its
actually recoil
## About The Pull Request
Before this if you started to execute someone (target mouth and left
click with gun) if the do after is cancelled or completed you would hit
them with the gun on top of shooting. Doesn't happen anymore. I checked
it in game and it doesn't seem like there's any bugs with guns from this
## About The Pull Request
Continues https://github.com/tgstation/tgstation/pull/81507
Adds a directional muzzle flash to all guns (excluding suppressors,
toys, e-bow, etc).
Changes color depending on the laser/projectile.
If anything is missed, let me know.
## Why It's Good For The Game
Realism
Cool visuals
Makes sense
## About The Pull Request
Converted `fire_delay` and `shot_delay` vars to use time defines
## Why It's Good For The Game
Code readability
## Changelog
🆑
code: Converted some gun related variables to use time defines, make an
issue report if anything shoots abnormally fast/slow.
/🆑
## About The Pull Request
Closes#93839
Also made them use item_interaction while I'm at it
## Changelog
🆑
fix: Luxury paywall lasers no longer drop their pins when spawned
/🆑
## About The Pull Request
Heretic has received a complete overhaul. This PR touches nearly every
aspect of the antagonist. For readability's sake, not every change is
going to be listed in this pull request.
For the full list of changes please refer to the design doc:
https://hackmd.io/@BiST8PJVRjiwVPY86U3bLQ/B11HyChz1g.
Code by Me, @Xander3359 and @Arturlang
TGUI by @Arturlang
Sprites by OrcaCora and GregorDM
Writing bits by @necromanceranne
### Core changes
- Cross-pathing has been removed. Main knowledge spells are now
exclusive to their path (for the most part).
- For every main knowledge unlocked (save for the robes and the blade
upgrade), Heretics can choose one option from a draft of 3 random side
knowledges (this is a free point).
- Heretics can now purchase side knowledges from a new tab, the
"Knowledge Shop". Side-knowledges have been divided by tier (Stealth,
Defense, Summons, Combat and Main). Tiers are unlocked as you progress
toward your main path.
- Heretics now gain the grasp and mark upgrade immediately, but their
main knowledge choices cost twice as much (except for the first spell,
the robes and the blade upgrade).
- Path specific robes have been introduced! They come with their own set
of quirks.
- Each Path has received a passive ability. This passive is upgraded
when you first create your robes, and again when you complete the Ritual
of Knowledge.
- Paths have been rebalanced as a result of the removal of cross-path
progression. Cosmic and Moon paths have received soft reworks.
- Upon unlocking the path 2nd level or reaching a total of 8 points
worth of knowledge, Heretics will lose the ability to blade break (and
the limit on blades all together).
- Ascension now automatically calls the shuttle with no possibility of a
recall.
- Late join Heretic has been removed.
### New UI
<img width="750" height="635" alt="moon path ui"
src="https://github.com/user-attachments/assets/184ef783-5c9c-48a1-a2f7-4807ca93e990"
/>
### Knowledge shop
<img width="787" height="669" alt="Knowledge shop"
src="https://github.com/user-attachments/assets/3dc89b84-8c70-4d47-b612-54396e3ea6e7"
/>
### Quality of life //General balance changes
- Heretics will now gain X-ray vision for a few seconds when nearby an
eldritch essence (this effect has a cooldown).
- Ritual of knowledge now requires 1 uncommon item instead of 2. You may
now use a stunprod instead of a baton to complete the ritual. Beartraps
have been removed from the list of possible reagents.
- The maximum number of possible sacrifices required to ascend has been
reduced from 6 to 5 while the minimum has been upped to 4.
- Codex Cicatrix no longer requires a special pen to be made.
### Passive abilities
- Heretics now start with a passive ability. You can find what it does
on the path info tab after a path has been selected, and what they gain
when upgraded.
- Crafting your first set of Eldritch robes will bump your passive to
level 2.
- Unlocking the 2nd level will subsequently unlock your "Ritual Of
Knowledge"
- Completing the ritual of knowledge or ascending will net you the final
level.
### Path Specific Robes
- Armorer's Ritual is no longer a side knowledge. Each path will have
their own unique version of the ritual. This is placed after the 2nd
spell in the tree.
- Robes can no longer be destroyed by fire and acid, grant t4 flash
protection (Moth Heretics stay winning) and protection against basic
syringes, to bring them on par with other antagonist's armor sets.
- The recipe to craft the robes is now a set of armor/vest, a mask (any
mask will do now, not just gas masks), plus the unique reagent required
for the blades (Plasma for Cosmic, Trash For Rust, match for Ash and so
on)
- Wearing the robes as a non-heretic may yield some unfortunate
side-effects.
### Moon Path Rework
Moon path rework.
Moon Heretics gain immunity to brain traumas and slowly regenerate brain
health. Equipping the moon amulette channels its effects through the
moon blade; making it unblockable and cause sanity damage instead of
brute. Ring leader's Rise now summons an army of harmless clones that
explode when attacked; the explosion briefly stuns non-heretics and
cause sanity and brain damage to them. Moon blade can also now be used
when pacified and Moon spells are no longer blocked by regular anti
magic, only mind magic protection.
**Cosmic Path Rework**
Cosmic path has received the biggest batch of changes alongside Moon.
The path has been dead last in ascension and pickrate (less than 5%) for
almost 2 years. It did gain some popularity over the last few months,
reaching the highest ascension rate in the game (12%) while mantaining a
relatively low pickrate.
Cosmic sits in a weird spot, where pretty much every knowledge
surrounding the path is either mediocre or, in the case of the
ascension, dysfunctional. Yet it has maintained a smidge of relevancy
due to how quickly Cosmic heretics can capture and sacrifice targets
thanks to Star Touch.
As a result, the best course of action would be to rebalance the
entirety of the kit; granting the heretic more tools to manipulate space
and dictate the flow of a fight, while lessening their ability to end a
confrontation by instantly sleeping their opponents.
lastly The Star Gazer is now ghost controlled ; And they shoot lazers!
<img width="636" height="451" alt="gazer gag 3"
src="https://github.com/user-attachments/assets/601d6881-c042-4e42-8ce6-ac90cd27848b"
/>
## Why It's Good For The Game
### Ok...but why do we want this?
Again, if you want my full reasoning, please check my doc
https://hackmd.io/@BiST8PJVRjiwVPY86U3bLQ/B11HyChz1g.
To keep it short and concise; Heretic is too complex and unintuitive for
its own good. Too impenetrable for new players and too abusable for
experienced players. This can be chalked up to a lot of poor design
decisions. But ultimately, what I believe being the biggest contributor
to the current status of Heretic is the ability to move into different
paths, also known as "Cross-Pathing".
### Cross Pathing my beloathed.
Cross-pathing, while cool in theory, overcomplicates the antagonist and
overloads them with power. Players dealing with the heretic are
incapable of working out what a given heretic can do. This also leads to
late game heretics having 3 rows Worth of action buttons and virtually
no weakness.
Over the last year, I've often received the understandable but also kind
of unfair accusations of making Heretic too powerful without a clear aim
or purpose.
My goal with the paths I've reworked over the last year (Rust,Void and
Blade) wasn't necessarily to just make them stronger (although that was
also part of the goal, as they were paths that were underperforming),
but for them to have more interactions with the sandbox and to better
live up to the fantasy presented to the player.
If an harbringer of frost gets countered by a cup of coffee, we probably
messed something up.
Unfortunately, the current incarnation of Heretic doesn't really allow
for surgical balance changes to specific paths. Every time a knowledge
gets buffed, we make every path that can easily tap onto that knowledge
stronger by default. It doesn't take a genius to understand why this
system is ultimately unsustainable.
### Blade Breaking
I feel that after a heretic has reached the near peak of their power,
they no longer need the ability to instantly escape any encounter. Check
my doc for my full reasoning.
## Less versatile, more specialized paths.
By removing cross-pathing, we remove a huge maintainability burden from
the antagonist. Paths can now be designed around clearer strengths and
weaknesses. They become easier to balance and less of an headache to
understand for everyone.
It also means we can give paths some needed quality of life quirks
without having to worry how such a change might have a knock-on effect
for other paths.
Ash heretics can finally let loose without dying by their own flames.
Cosmic Heretic can go to space without having to carry a modsuit. Moon
Heretic can use their abilities without fear of one random trauma
ruining their day, and so on.
### What a horrible night to have a curse...., wait how do I curse
people again?
As of right now the heretic tree has quite a hefty amount of trinkets
that pretty much never see use.
Partly because the tree itself is a nightmare to navigate. And partly
because why would anyone set up an elaborate plan or scheme when they
can unleash 2 rows of spell in the span of bunch of seconds.
Heretics mostly gravitate towards powers that push them towards greater,
more potent combat strength. If it doesn't contribute to killing people
quicker, it isn't worth doing for most. And given the opportunity cost
associated for taking those powers, they will remain that way so long as
there are better choices to be poached.
The new draft system encourages Heretics to play more with the tools at
their disposal. If you want to go for a specific combo from the side
path options, you may now do so by tapping into the knowledge shop.
Yes, the shop does include a few knowledges from the other paths. But
these are limited to 1 per path, are very expensive and can only be
unlocked very late into the shift.
## Drip Of the Mansus
The iconic heretic robe is actually sequestered to a side path that is
most easily access by only two paths at a time. Since heretic paths are
being made to be much more specialized, the most obvious way in which
this can be showcased is through an easily
identifiable outfit.
By using the robes, we can both telegraph WHAT heretic you are looking
at, and just how much power they've accumulated and when it is
reasonable to take the kid gloves off and treat them as a genuine
threat. If a heretic is in their
robes, that heretic is now a significantly more prominent danger to the
station.
It also serves as a useful means for gating some of the more powerful
effects of a heretic's path behind the robes, AND enable options for
disarming them of that power should they be captured without making it
something endemic to their mob.
A major problem with heretics is a lack of certainty as to how powerful
they have become. A heretics robes is one of the milestones to help
players dealing with heretics identify that.
### Will this be 100% fair and balanced?
This is a massive overhaul to a pretty complex and bloated antagonist.
I've done my best to show the changes to several maintainers and other
members of the community for their feedback. But at some point we'll
have to see how this behave in the environment to get a feel if
something is over or undertuned. (that's my way of saying, yes this is
likely gonna require a testmerge or two).
What I will say is that I'm not trying to change the core identity of
Heretic.
Heretics should have the upperhand in single encounters early on, be
able to joust a small group of players after they unlock their final
spell, and end the round when they ascend. They're a progression
antagonist. They should retain their payoff as well as pose a danger as
they grow stronger.
But if more players feel like they are more reliably able to play the
antagonist in more varied and interesting ways, rather than the
antagonist largely existing as a measuring stick for 'robustness' due to
its elitist design philosophy, then the rework has been a success. There
should be something for
everyone in the antagonist, as is true for all of our antagonist roles.
## About The Pull Request
Due to 'fire_delay = 8', when pump racking a riot shotgun (with a live
shotgun bullet in it) it will instead melee when you try to point blank
shoot at someone.
This PR fixes that by blocking melee, on the condition that you pump
racked the riot shotgun and it is about to be ready to fire.
You still melee with LMB if you have no ammo pump racked/didn't pump
rack the shotgun, and if you have ammo pump racked, you can use RMB as
intended.
tldr Melee combat functionality for riot shotgun remains unchanged, the
PR only fixes the unintentional melee attack.
## Why It's Good For The Game
The PR fixes unintentional tediousness when wanting to fire at someone
point blank with a riot shotgun - It will no longer melee, which is
good, because otherwise it makes arbitrarily make riot shotgun cooldown
longer due to an unintentional melee attack.
## Changelog
🆑 ArchBTW
fix: Fixes riot shotgun unintentional melee when point blank shooting
/🆑
## About The Pull Request
So, while working on #93275 I've noticed that suspiciously none of the
projectiles made impact messages, the only ones I could see in chat were
wounds, not hits. Turns out that because guns, for whatever ungodly
reason, have been storing their suppression state and their suppressor
in the same variable presumably since their inception, instead of
SUPPRESSED_NONE (0) projectiles were assigned null, or if suppressed by
an item the suppressor itself, both of which were treated as
SUPPRESSED_VERY by impact message logic and skipped actually sending any
messages to players' chats.
I've split the variables and put suppressor onto ballistics (which are
the only user of said mechanic), so now projectiles should actually
inform players that they/someone nearby have been hit with a bullet.
## About The Pull Request
moves all implementations (im aware of) for "Im a parent type dont spawn
me please" to the datum layer to standardized behavior
adds a standerized proc for filtering out "bad" items that we dont want
spawning. applies to it the subtype vendor, gifts, and a new spawner and
mystery box for a random gun (neither playerfacing)
"port" of https://github.com/shiptest-ss13/Shiptest/pull/4621https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa
small warning: I dont have EVERY abstract type defined right now but,
ive done a good enough job for now. Im tired of data entry rn
## Why It's Good For The Game
standardizing behavior. Might be a micro hit to performance however
having this lets us not rely on icon state to determine whether
something is a parent type and makes it much easier to tell something is
a parent type (could be applied further to things like admin spawning
menus and things like that).
need feedback on if this is actually good for the game.
## Changelog
🆑
add: Soda cans show up in the silver slime drink table.
add: Examine tag for items that are not mean to show up ingame.
refactor: Standardizes how gifts rule out abstract types.
fix: gifts no longer check if something has an inhand, massively
expanding the list of potential items.
/🆑
## About The Pull Request
Just shifts some logic around so that hold gunpoint being disabled on a
gun does not cause it to fire when pistol whipping.
## Why It's Good For The Game
Fixes an unintended interaction
## Changelog
🆑
fix: combat rmb will no longer fire the gun at the same time as pistol
whipping for certain guns
/🆑
## About The Pull Request
This PR will allow you to shoot guns pointblank in combat mode by
remaping melee only attack to RMB in combat mode. You still can hold
people on a gunpoint, just use non combat mode to do so.
## Why It's Good For The Game
I think it's much more convenient and intuitive to be able to shoot
pointblank in combat mode.
## Changelog
🆑
qol: Now you can shoot guns pointblank in combat mode! If you want to
attack melee only: use combat mode + right mouse button.
/🆑
---------
Co-authored-by: Sensum <121913313+SSensum@users.noreply.github.com>
## About The Pull Request
Title. Firing a weapon in burst now triggers fire delay based off the
fire cooldown variable, which was reused from the now-renamed `semicd`.
This shouldn't affect anything, but if this does, uh, my bad.
## Why It's Good For The Game
My previous PR, tgstation/tgstation#89634, separated fire delay and
burst delay for a possible avenue of balance for gun design (e.g. fast
burst gun with long delays between bursts). I didn't realize burst
didn't set the cooldown, though, so... now it's here. My bad.
## Changelog
🆑
fix: Burst-firing weapons now respect their fire delay, in the event
that their fire delay is longer than click cooldown. If your local
burst-fire weapon starts to feel weird because of this, please submit an
issue report.
/🆑
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
## About The Pull Request
This PR tackles our piss-poor item action handling. Currently in order
to make an item only have actions when its equipped to a certain slot
you need to override a proc, which I've changed by introducing an
action_slots variable. I've also cleaned up a ton of action code, and
most importantly moved a lot of Trigger effects on items to do_effect,
which allows actions to not call ui_action_click or attack_self on an
item without bypassing IsAvailible and comsigs that parent Trigger has.
This resolves issues like jump boots being usable from your hands, HUDs
being toggleable out of your pockets, etc. Also moved a few actions from
relying on attack_self to individual handling on their side.
This also stops welding masks/hardhats from showing their action while
you hold them, this part of the change is just something I thought
didn't make much sense - you can use their action by using them in-hand,
and flickering on your action bar can be annoying when reshuffling your
backpack.
Closes#89653
## Why It's Good For The Game
Makes action handling significantly less ass, allows us to avoid code
like this
```js
/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, action)
if(istype(action, /datum/action/item_action/halt))
halt()
else
adjust_visor(user)
```
Guns now have two variables affecting delay between shots;
`burst_delay`, which affects how fast projectiles are fired *in* a burst
(assuming the weapon is burst-capable) and `fire_delay`, which affects
how long a gun cannot fire after shooting.
Assuming that all fire delays for automatic weapons were actually meant
for controlling burst delays, variables have been changed accordingly.
Separating burst delay and fire delay means burst-firing weapons can now
be balanced both on "how fast can I throw bullets downrange" *and* "how
long do I have to wait between bursts" instead of having one variable
affecting both.
🆑
code: Guns now have burst delay and fire delay variables instead of fire
delay affecting both. If a weapon's burst feels off, please submit an
issue report.
/🆑
---------
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
The Liberator is a brand-new 3D printable gun, holding a single 10mm
shot in it's barrel. It has a damage multiplier of x0.5, dealing 20
damage per shot. However, shooting someone point blank gives it an x2
modifier, and shooting someone while holding them at gunpoint adds
additional x1.5 multiplier.
https://github.com/user-attachments/assets/b27adf1a-5b02-4817-90ad-2ba922cc6bf9
They can be printed for dirt cheap 3 sheets of plastic and 2 sheets of
iron from an autolathe. However, as a downside, whenever you're firing a
liberator you're risking it blowing up in your hands, potentially
wounding you! Reloading is also a bit tricky, since you need to unscrew
the barrel before placing the bullet in, and screwing it back on.
In order to print them, you'll need to find a (mildly rare) disk in
maintenance and upload the design to an autolathe. You also can find a
whole gun, albeit at a lower chance.
Funny gun that can be used for some gimmicks, not too overpowered but a
nifty tool for assistants. Can be countered by a well timed baton, or a
shove if your opponent is next to a wall.
🆑
add: Added a new 3D printable gun "The Liberator", you can find the gun
itself or its design disc in maintenance tunnels.
/🆑
## About The Pull Request
This PR tackles our piss-poor item action handling. Currently in order
to make an item only have actions when its equipped to a certain slot
you need to override a proc, which I've changed by introducing an
action_slots variable. I've also cleaned up a ton of action code, and
most importantly moved a lot of Trigger effects on items to do_effect,
which allows actions to not call ui_action_click or attack_self on an
item without bypassing IsAvailible and comsigs that parent Trigger has.
This resolves issues like jump boots being usable from your hands, HUDs
being toggleable out of your pockets, etc. Also moved a few actions from
relying on attack_self to individual handling on their side.
This also stops welding masks/hardhats from showing their action while
you hold them, this part of the change is just something I thought
didn't make much sense - you can use their action by using them in-hand,
and flickering on your action bar can be annoying when reshuffling your
backpack.
Closes#89653
## Why It's Good For The Game
Makes action handling significantly less ass, allows us to avoid code
like this
```js
/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, action)
if(istype(action, /datum/action/item_action/halt))
halt()
else
adjust_visor(user)
```
## About The Pull Request
Guns now have two variables affecting delay between shots;
`burst_delay`, which affects how fast projectiles are fired *in* a burst
(assuming the weapon is burst-capable) and `fire_delay`, which affects
how long a gun cannot fire after shooting.
Assuming that all fire delays for automatic weapons were actually meant
for controlling burst delays, variables have been changed accordingly.
## Why It's Good For The Game
Separating burst delay and fire delay means burst-firing weapons can now
be balanced both on "how fast can I throw bullets downrange" *and* "how
long do I have to wait between bursts" instead of having one variable
affecting both.
## Changelog
🆑
code: Guns now have burst delay and fire delay variables instead of fire
delay affecting both. If a weapon's burst feels off, please submit an
issue report.
/🆑
---------
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
## About The Pull Request
The Liberator is a brand-new 3D printable gun, holding a single 10mm
shot in it's barrel. It has a damage multiplier of x0.5, dealing 20
damage per shot. However, shooting someone point blank gives it an x2
modifier, and shooting someone while holding them at gunpoint adds
additional x1.5 multiplier.
https://github.com/user-attachments/assets/b27adf1a-5b02-4817-90ad-2ba922cc6bf9
They can be printed for dirt cheap 3 sheets of plastic and 2 sheets of
iron from an autolathe. However, as a downside, whenever you're firing a
liberator you're risking it blowing up in your hands, potentially
wounding you! Reloading is also a bit tricky, since you need to unscrew
the barrel before placing the bullet in, and screwing it back on.
In order to print them, you'll need to find a (mildly rare) disk in
maintenance and upload the design to an autolathe. You also can find a
whole gun, albeit at a lower chance.
## Why It's Good For The Game
Funny gun that can be used for some gimmicks, not too overpowered but a
nifty tool for assistants. Can be countered by a well timed baton, or a
shove if your opponent is next to a wall.
## Changelog
🆑
add: Added a new 3D printable gun "The Liberator", you can find the gun
itself or its design disc in maintenance tunnels.
/🆑
## About The Pull Request
fixes https://github.com/tgstation/tgstation/issues/89149
## Why It's Good For The Game
This trait not only no longer is needed, but functionally allows for an
exploit! Let's get rid of it.
## About The Pull Request
mimics are basicmobs now
the only change not carried over worth mentioning is that all mimics are
a consistent speed because i cant imagine a gun or object with aimbot
going at you mach 2 would be very fun
mimic crates had some stuff changed compared to their simple animal
variant
they open and close their lid when attacking (unless locked) to be like
menacing or something like animals flash colors to ward off people
attempting to open a nonsentient hostile crate mimic will make it lock
itself (if it contains anything) and attack you
mimics are a really stupid naming for these because like
mimic crates pretend to be crates
anything else inheriting from mimics are just used to make objects alive
https://github.com/user-attachments/assets/34a733a4-45a3-409e-8a6a-b2a8c7540898
ranged mimics now use viscontents (they also keep trying to pointblank
people for some reason i think thats ok though unless its a wand of
fireball)
ranged mimic (any ranged weapon animated by a bolt of animation)
https://github.com/user-attachments/assets/c3f1d2f5-cfb8-46a9-a58c-255c53a034db
## Why It's Good For The Game
fixes#85668
## Changelog
🆑
refactor: mimics (bolt of animation, malf ai Machine Override, etc) are
basicmobs
fix: crate mimics may now be opened
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
A repeat of the first half of
https://github.com/tgstation/tgstation/pull/86853
The NT BR-38 Battle Rifle is a semi-automatic
railgun...marksman...carbine...rifle...thingy that uses .38 ammunition
and is magazine fed from a 15 round magazine. It comes with a scope, and
is bulky.

Sprites by OrcaCora.
### Some of its features
The gun shoots at a higher than normal velocity for .38. This means it
hits harder (30 damage compared to the standard 25), and flies faster
through the air.
The gun, however, suffers from degradation as it is used. It has a 10
shot buffer before suffering degradation. After the 10 shot buffer, it
has a 10% chance each shot to increase in degradation stage. From stage
1 to stage 5 (the maximum stage), it begins to lose fire rate and
projectile flight speed.
To recalibrate the gun, you can do one of two things;
A) Use a multitool on the gun. This completely resets the gun, but its
pretty slow.
B) Insert it into a weapon recharger to recharge its buffer and reduce
its degradation stages.
### Some of its downsides
The weapon is EMP vulnerable. If it gets EMP'd, it immediately degrades
and loses any buffer it has. While EMP'd, there is a 75% chance it
doesn't fire when you pull the trigger. This is also true if the gun has
hit maximum degradation. Keep your guns in good shape.
It can be emagged. While emagged, the gun has increased damage (40 for
standard ammunition), but once it hits maximum degradation, it
immediately begins to catastrophically fail. It also degrades
significantly faster while emagged. There is no way to reverse this
effect, and the explosion is extremely lethal.
### Where can I find it? What about ammo?
You can purchase the gun from cargo at a significant premium, as well as
some additional magazines of some basic ammo types.
There is exactly one of these in the armory, and you can print more
magazines from the security protolathe. As research progresses, you can
print different, specialized ammunition for the rifle. (and also the
detective .38 revolver, obviously)
### New .38 ammunition types
True Strike bounces accurately between targets, but deals significantly
less damage than other ammo types (15 base, 18 in this rifle).
It is printed once the station gets Exotic Ammo.
## Why It's Good For The Game
This is a followup on my previous PR, where I tested this weapon and
gathered a whole bunch of feedback on it. Most people quite liked it.
but had some concerns that I feel this addresses.
Much of the justifications given there apply here. Obviously ignoring
anything to do with the combat shotgun removal.
Some stuff obviously has not come back from the original test. Notably,
the TRAC changes were probably a little too powerful. As much as I liked
a default entirely nonlethal ammunition type, TRAC itself is better left
as a late research goal.
In addition, I moved the explosion part to an emag effect. It's funny,
and lends itself to the original intention of the weapon; a callback to
the WT-550 incident. But it isn't a standard part of the guns mechanics.
## About The Pull Request
Removes some /New overrides, replacing them either with nothing because
they're entirely redundant or with more intuitive/consistent interfaces
## Why It's Good For The Game
Code consistency/readability, fixes an obscure potential-bug that would
delete non-implanted cybernetic implants that are a part of a
loadout/outfit, I'm being haunted by code from 2015 send help
## Changelog
Hopefully not player facing. Except this random thing I saw while I was
here.
🆑
spellcheck: paywall firing pins no longer set the gun description to the
pin's description on removal
/🆑
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
This PR reverts Bubberstation/Bubberstation#1223 aka "RULE 1: Always
keep the muzzle pointed in a safe direction", which disabled gun
safeties on Bubberstation.
~~Does not add new content, solely re-enables gun safeties by reverting
the PR that disabled them.~~
EDIT: Reverts the removal of gun safeties, guns also now disable their
safety when you attempt to fire with an enabled safety.
~~Untested but it should work fine, as the original simply comments out
the line that adds safeties.~~
EDIT: Locally tested, works as intended, compiles with no errors or
warnings
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
<!-- Please make sure to actually test your PRs. If you have not tested
your PR mention it. -->
## Why It's Good For The Game
Gun safeties are a good feature for preventing accidental misclicks and
shooting a gun. On top of this, there is an RP aspect to disabling a
safety during an interaction when one or more people have a gun. It's
easy to ignore if you don't want to use it and quite helpful if you do
want to use it. Along with this, there's an 80% majority for re-adding
safeties on the #suggestions channel in the discord:

Ultimately I believe people want this to be re-added and for a mechanic
that is ultimately optional I don't see a reason to deny it.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Proof Of Testing
~~N/A, this revert shouldn't cause issues. I can locally test it to
ensure it works if you would like.~~
Locally tested, functions as expected.
<!-- Compile and run your code locally. Make sure it works. This is the
place to show off your changes! We are not responsible for testing your
features. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
add: Re-adds gun safeties
add: Guns with enabled safeties will disable their safeties if you
attempt to fire with it on.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
<!-- By opening a pull request. You have read and understood the
repository rules located on the main README.md on this project. -->
---------
Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
## About The Pull Request
<details>
- renamed ai folder to announcer
-- announcer --
- moved vox_fem to announcer
- moved approachingTG to announcer
- separated the ambience folder into ambience and instrumental
-- ambience --
- created holy folder moved all related sounds there
- created engineering folder and moved all related sounds there
- created security folder and moved ambidet there
- created general folder and moved ambigen there
- created icemoon folder and moved all icebox-related ambience there
- created medical folder and moved all medbay-related ambi there
- created ruin folder and moves all ruins ambi there
- created beach folder and moved seag and shore there
- created lavaland folder and moved related ambi there
- created aurora_caelus folder and placed its ambi there
- created misc folder and moved the rest of the files that don't have a
specific category into it
-- instrumental --
- moved traitor folder here
- created lobby_music folder and placed our songs there (title0 not used
anywhere? - server-side modification?)
-- items --
- moved secdeath to hailer
- moved surgery to handling
-- effects --
- moved chemistry into effects
- moved hallucinations into effects
- moved health into effects
- moved magic into effects
-- vehicles --
- moved mecha into vehicles
created mobs folder
-- mobs --
- moved creatures folder into mobs
- moved voice into mobs
renamed creatures to non-humanoids
renamed voice to humanoids
-- non-humanoids--
created cyborg folder
created hiss folder
moved harmalarm.ogg to cyborg
-- humanoids --
-- misc --
moved ghostwhisper to misc
moved insane_low_laugh to misc
I give up trying to document this.
</details>
- [X] ambience
- [x] announcer
- [x] effects
- [X] instrumental
- [x] items
- [x] machines
- [x] misc
- [X] mobs
- [X] runtime
- [X] vehicles
- [ ] attributions
## Why It's Good For The Game
This folder is so disorganized that it's vomit inducing, will make it
easier to find and add new sounds, providng a minor structure to the
sound folder.
## Changelog
🆑 grungussuss
refactor: the sound folder in the source code has been reorganized,
please report any oddities with sounds playing or not playing
server: lobby music has been repathed to sound/music/lobby_music
/🆑
## About The Pull Request
Fixes https://github.com/NovaSector/NovaSector/issues/4337https://github.com/tgstation/tgstation/pull/85470 added some checks in
`/obj/item/gun/ballistic/shoot_live_shot()` that were causing runtimes
in probably most of the ballistic gun types. To see for yourself just
take out a revolver and shoot it a few times, then check the runtimes
log.
The runtime was preventing the parent
`/obj/item/gun/ballistic/shoot_live_shot()` from being called, which is
where the firing sound gets played.
Fix is just acknowledging that `chambered` can be null at this point in
the call chain and adding a quick check in there for good measure. Also
fixes the runtime here, though that one didn't cause any functional bugs
apart from polluting the log since it occurs at the end of the proc.

Also adds a missing multiline list comma that I noticed cough.
## Why It's Good For The Game
Guns go boom again.
## Changelog
🆑
fix: due to a clerical error, all ballistic guns were shipping with
built-in silencers. this has been resolved-they will now make noise once
again when fired.
/🆑
## About The Pull Request
Fixes https://github.com/NovaSector/NovaSector/issues/4337https://github.com/tgstation/tgstation/pull/85470 added some checks in
`/obj/item/gun/ballistic/shoot_live_shot()` that were causing runtimes
in probably most of the ballistic gun types. To see for yourself just
take out a revolver and shoot it a few times, then check the runtimes
log.
The runtime was preventing the parent
`/obj/item/gun/ballistic/shoot_live_shot()` from being called, which is
where the firing sound gets played.
Fix is just acknowledging that `chambered` can be null at this point in
the call chain and adding a quick check in there for good measure. Also
fixes the runtime here, though that one didn't cause any functional bugs
apart from polluting the log since it occurs at the end of the proc.

Also adds a missing multiline list comma that I noticed cough.
## Why It's Good For The Game
Guns go boom again.
## Changelog
🆑
fix: due to a clerical error, all ballistic guns were shipping with
built-in silencers. this has been resolved-they will now make noise once
again when fired.
/🆑
* Jarvis, add buckshot to the blackmarket. (#85470)
## About The Pull Request

~discord light-theme big L.~
By the by, these are slightly nerfed buckshots, create big puffs of
powder smoke when fired, damage your gun, and MIGHT blow you up in the
same style of using a detective revolver loaded with .357 if you fire
too many.
Also, the integrity of the firearm now counts towards the damage of
bullets it's fired from.
## Why It's Good For The Game
The blackmarket is a place where you can find illegally illegal, evil
items, along with other trinkets. I thought it'd be a nice place to
reintroduce buckshot with a little downgrading twist after it has been
nerfed (it used to do 60 damage without falloff) AFTER it was removed
from the lathes and the station.
## Changelog
🆑
add: Buckshot is back on the menu, on the blackmarket.
balance: the integrity of firearms now counts toward projectile damage.
A gun that's on the very verge of breaking down will deal half as much
damage.
/🆑
* Jarvis, add buckshot to the blackmarket.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request

~discord light-theme big L.~
By the by, these are slightly nerfed buckshots, create big puffs of
powder smoke when fired, damage your gun, and MIGHT blow you up in the
same style of using a detective revolver loaded with .357 if you fire
too many.
Also, the integrity of the firearm now counts towards the damage of
bullets it's fired from.
## Why It's Good For The Game
The blackmarket is a place where you can find illegally illegal, evil
items, along with other trinkets. I thought it'd be a nice place to
reintroduce buckshot with a little downgrading twist after it has been
nerfed (it used to do 60 damage without falloff) AFTER it was removed
from the lathes and the station.
## Changelog
🆑
add: Buckshot is back on the menu, on the blackmarket.
balance: the integrity of firearms now counts toward projectile damage.
A gun that's on the very verge of breaking down will deal half as much
damage.
/🆑
* If you can't shoot a gun, then... JUST TOSS IT AT THEM (#84827)
## About The Pull Request
Adds a new trait TRAIT_TOSS_GUN_HARD (which currently comes from the
Sleeping Carp scroll, ninja MODsuit, berserk armor, being a medieval
pirate or highlander). The owner of this trait deals an additional
**10-20** (depending on the size of the weapon) damage to the enemy by
throwing a gun, and also knocks them for 0.5 seconds. If a ballistic
weapon **with a magazine** was thrown, then the magazine is removed and
the bolt is racked, and if **without a magazine**, then all cartridges
(revolvers) or chambered one is removed. Here's a preview of how it
works:
https://github.com/tgstation/tgstation/assets/126676387/2a56eb74-6d37-4343-a685-3bf7159ab628
## Why It's Good For The Game
It's classic

## Changelog
🆑
add: If you can't shoot a gun, then... JUST TOSS IT AT THEM (for 0.5
seconds of knockdown and 10-20 an additional brute damage)
/🆑
---------
Co-authored-by: paganiy <leunscrupuloustrolle@ gmail.com>
* If you can't shoot a gun, then... JUST TOSS IT AT THEM
---------
Co-authored-by: paganiy <126676387+paganiy@users.noreply.github.com>
Co-authored-by: paganiy <leunscrupuloustrolle@ gmail.com>
## About The Pull Request
Adds a new trait TRAIT_TOSS_GUN_HARD (which currently comes from the
Sleeping Carp scroll, ninja MODsuit, berserk armor, being a medieval
pirate or highlander). The owner of this trait deals an additional
**10-20** (depending on the size of the weapon) damage to the enemy by
throwing a gun, and also knocks them for 0.5 seconds. If a ballistic
weapon **with a magazine** was thrown, then the magazine is removed and
the bolt is racked, and if **without a magazine**, then all cartridges
(revolvers) or chambered one is removed. Here's a preview of how it
works:
https://github.com/tgstation/tgstation/assets/126676387/2a56eb74-6d37-4343-a685-3bf7159ab628
## Why It's Good For The Game
It's classic

## Changelog
🆑
add: If you can't shoot a gun, then... JUST TOSS IT AT THEM (for 0.5
seconds of knockdown and 10-20 an additional brute damage)
/🆑
---------
Co-authored-by: paganiy <leunscrupuloustrolle@gmail.com>
## About The Pull Request
The gun code is an absolute mess that seems to have been untouched for
the better part of the decade and finally gave way due to the attack
chain refactor. This PR is the first in my attempts to refactor this
mess by making bayonet attachment a component instead of /obj/item/gun
variables. Followup PRs may or may not be atomic changes or a monolith
due to how horribly the original code is structured.
## Why It's Good For The Game
Gun code is ancient, unmaintained, barely readable and started actively
breaking in the past weeks.
## Changelog
🆑
refactor: Bayonet attachment is now a component.
/🆑