## About The Pull Request
- Afterattack is a very simple proc now: All it does is this, and all
it's used for is for having a convenient place to put effects an item
does after a successful attack (IE, the attack was not blocked)

- An overwhelming majority of afterattack implementations have been
moved to `interact_with_atom` or the new `ranged_interact_with_atom`
I have manually tested many of the refactored procs but there was 200+
so it's kinda hard
## Why It's Good For The Game
Afterattack is one of the worst parts of the attack chain, as it
simultaneously serves as a way of doing random interactions NOT AT ALL
related to attacks (despite the name) while ALSO serving as the defacto
way to do a ranged interaction with an item
This means careless coders (most of them) may throw stuff in afterattack
without realizing how wide reaching it is, which causes bugs. By making
two well defined, separate procs for handing adjacent vs ranged
interactions, it becomes WAY WAY WAY more easy to develop for.
If you want to do something when you click on something else and you're
adjacent, use `interact_with_atom`
If you want to do something when you click on something else and you're
not adjacent, use 'ranged_interact_with_atom`
This does result in some instances of boilerplate as shown here:

But I think it's acceptable, feel free to oppose if you don't I'm sure
we can think of another solution
~~Additionally it makes it easier to implement swing combat. That's a
bonus I guess~~
## Changelog
🆑 Melbert
refactor: Over 200 item interactions have been refactored to use a
newer, easier-to-use system. Report any oddities with using items on
other objects you may see (such as surgery, reagent containers like cups
and spray bottles, or construction devices), especially using something
at range (such as guns or chisels)
refactor: Item-On-Modsuit interactions have changed slightly. While on
combat mode, you will attempt to "use" the item on the suit instead of
inserting it into the suit's storage. This means being on combat mode
while the suit's panel is open will block you from inserting items
entirely via click (but other methods such as hotkey, clicking on the
storage boxes, and mousedrop will still work).
refactor: The detective's scanner will now be inserted into storage
items if clicked normally, and will scan the storage item if on combat
mode
/🆑
## About The Pull Request
Ok so like, we recently had an issue where a genturf was not being
replaced, which fucked ALL of icemoon's atmosphere.
The fix was to not use a genturf with a conditionally generating area,
but that aside. (why is it CONDITIONAL TIME GREEEEEN)
Planetary turfs should act like immutable ones when roundstart
equalizing.
In addition, we should test to ensure none leaves genturfs floating
around post roundstart to avoid this sorta issue.
---------
Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
## About The Pull Request
This PR adds a new virtual domain for bitrunners! The new domain
includes the belowed pizzeria from FNAF and some bears (scary and
strong).
## Why It's Good For The Game
So there hasn't been any virtual domains being added and it can get
boring playing the same domains over and over again. In my own opinion
we need more maps or some of them changing with new ones! I also thinks
its a funny idea to have such a domain and people will enjoy it.
## Changelog
🆑
add: added a new virtual domain
🆑

## About The Pull Request
Removes one (1) white crayon from the coroner vendor.
## Why It's Good For The Game
Fixes crayon economy.
There's 2 entries of a white crayon in the Mortidrobe and the lower one
seems to overwrite the higher one in the list .
## Changelog
🆑
fix: there is now one more crayon in the Mortidrobe.
/🆑
## About The Pull Request
Removes `islava(newloc)` from BDM's move atom.
## Why It's Good For The Game
Megafauna have lava immunity and so won't take any damage from pathing
over lava. BDM would get stuck on his lava tile spawn due to this as
well.
fix#83615
## Changelog
🆑 Goat
fix: blood drunk miner can now path over lava
/🆑
## About The Pull Request
- moved where the warlord spawner is, should make warlord be the first
pirate to spawn
- added propulsors to the ship
- crude helmet doesn't hide your hair anymore (it didn't fully cover
your head so it made you bald)
- shortsword sprite has its original colours (i was pranked with the
whole -100 DM file and in a desperate attempt, made the shortsword have
the same colours as the claymore)
- the message to pay the pirates is different (i used the same one as
tider pirates as placeholder)
- their helmets have flash protection (borgs knock them down too easily,
flashbangs will still knock them down because no bowman)

## Why It's Good For The Game
some things that i missed, plus the pirates are knocked over too easily
by borgs
## Changelog
🆑
qol: the first Medieval pirate to spawn will be the Warlord, warlord and
crude helmet have flash protection
fix: Medieval shuttle has actual engines now
fix: Shortsword has its original colours
fix: Crude helmet no longer makes you bald
/🆑
## About The Pull Request
Adds a new Module preinstalled into the nukie suits, and purchasable in
the uplink, grants resistance to batons knockdown.
## Why It's Good For The Game
At the last coderbus meeting, i personally asked to Fikou and Mothblocks
for more baton counters to be introduced, they seemed to be ok with the
idea, so here we are.
Introduces an unremovable module which grants to the wearer resistance
to baton knockdown, it comes preinstalled in all syndicate modsuits.
With the fix of "rest to prevent disarm", stun batons have gotten even
more powerful than they once were, and while i do agree secret kinda
abusable tech is bad for the health of the game, the end result is that
the stun meta is even more prominent than ever, so it's a good time
introduce a small counter to it.
From a thematic perspective, Syndie suits should at least make people
feel afraid, which is hard to do when a single prod from a stun stick
will make you drop like a sack of potatoes, lose your desword and get
slashed to bits.
On the gameplay side, wearing one of these will make you a target for
the entire station, if a traitor is willing to expose themselves, or in
the case of nukies, forced to; they should probably have a small edge on
what's the most common tool used to stop them.
Keep in mind that this only prevents the knockdown, it does nothing for
the stamina damage, you'll still get stamcritted in a couple of hits,
nothing changes on that front.
This is merely to prevent a scenario where a single baton hit will
immediately lose you a fight.
## Changelog
🆑
add: adds the MOD shock-absorption module, into the game.
add: The MOD shock-absorption module into the the uplinks, costs 4 TC.
balance: Nukie modsuits come with the shock_absorption module
preinstalled.
/🆑
## About The Pull Request
- Fixes the emergency open spamming infinitely on bump open
- Tram doors have an associated assembly, can be repaired, rebuilt, and
constructed
- Adjusted door timings to better match the animation, no longer getting
briefly stuck on an invisible, open door
## Why It's Good For The Game
Fixing little issues that have surfaced
## Changelog
🆑 LT3
fix: Tram doors can now be constructed and assemblies built
fix: Emergency opening tram doors no longer spam balloon alerts
fix: Tram doors open faster on arrival
fix: Tram doors correctly force close on attempt 3
/🆑
## About The Pull Request
https://github.com/tgstation/tgstation/assets/4081722/684da396-fb28-4022-9f46-0fc4feb34b7a
Changelings now do not like fire, as is tradition.
If they are on fire, they no longer generate chemicals until they put
the fire out.
If they are on fire, they no longer can use any changeling powers until
they put the fire out.
All changeling equippable items like armblades, shields, armor,
spacesuits, etc. are now flammable and super-duper vulnerable to flames.
The Armblade now costs 30 chemicals to equip, and has a DNA cost of 3,
compared to the previous 20 chemicals and 2 DNA cost.
The Armblade now shatters after enough uses in exactly the same way as
the Shield; extract genomes with Absorb to maximize your Armblade's
efficiency. for its' chemical cost.
Fixes items you're holding not catching on fire alongside the rest of
you when you light on fire.
Fixes the Changeling Shield having one more hit than it was supposed to.
## Why It's Good For The Game
Changeling has been in a relatively incredibly rough state ever since
someone walked up to this predominatly stealth and intrigue based
antagonist and went "lets turn it into a carbon copy of an early 2000s
action game I just played".

Since then, just about every changeling has been a loud changeling. The
stats speak for themselves; Changelings are no longer a stealth antag
and they're defined by having an undroppable e-sword, armor, and HP
regen they can use mid-fight. They're just loud beatsticks now instead
of the scary stealth antagonist they were years ago.
I'm expecting a lot of pushback from the adrenaline addicts who dislike
the concept of stealth, to which I say: too bad.
Giving Changelings a weak point in the form of fire is not only
thematically appropriate for the original inspiration for Changeling,
but also provides the crew a way to actually scare off changelings back
into hiding, and encourages more usage of fire-causing weapons. This is
going to shake up changelings, and
Nerfing the hell out of the Armblade is going to encourage changelings
to take stealthier approaches to combat, and utilize the rest of their
power assortment that isn't just focused around being a gigantic
unstoppable beatstick.
## Changelog
🆑
balance: Changelings now do not like fire, as is tradition.
balance: If they are on fire, they no longer generate chemicals until
they put the fire out.
balance: If they are on fire, they no longer can use any changeling
powers until they put the fire out.
balance: All changeling equippable items like armblades, shields, armor,
spacesuits, etc. are now flammable and super-duper vulnerable to flames.
balance: The Armblade now costs 30 chemicals to equip, and has a DNA
cost of 3, compared to the previous 20 chemicals and 2 DNA cost.
add: The Armblade now shatters after enough uses in exactly the same way
as the Shield; extract genomes with Absorb to maximize your Armblade's
efficiency. for its' chemical cost.
fix: Fixes items you're holding not catching on fire alongside the rest
of you when you light on fire.
fix: Fixes the Changeling Shield having one more hit than it was
supposed to.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
Adds a new positronic brain variant to bepis tech
To save materials we took the corners off but now they can roll
It can roll around, knock items over and push other posibrains away
You can also kick it across the room and it's a lot cheaper because you
cut the corners off
https://github.com/tgstation/tgstation/assets/7501474/e4f913e8-cf2f-455a-b2eb-1654468df708
## Why It's Good For The Game
A chorus of whining posibrains is like heroine to the ears, now they can
aggresively shit around the robotics lab while whining for their DURAND
or cyborg shell, but the robo can also punt them into the disposal bin
## Changelog
🆑
add: Adds a positronic sphere to bepis tech and roboticist mail goodies.
It can now wreack havoc across the robotics lab while whining for a
DURAND body, but you can also punt it!
/🆑
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
Adjusts tram malfunction and the tram malfunction event to be more
straightforward and similar to other telecoms machinery.
- Tram malfunction now requires engineering, borg, or AI to visit either
the tram or the tram controller in telecoms to press 'reset'
(previously: open the tram panel and find the appropriate tool to repair
it)
- Tram malfunction event only stops the tram once per event roll
- Adjust announcement to include message that engineers need to reset
the tram
- Removed loud priority_announce when the tram is fixed. Players know
the tram is fixed because they are using it again
- Tram doors no longer force crush during malfunction, since engineers
have no method to fix this
- EMP/communications blackout event will temporarily degrade crossing
signals, otherwise the tram continues to function normally
- Loss of telecoms power will degrade crossing signals, otherwise the
tram continues to function normally
Frequency of tram malfunction event is reduced to be in line with
communications blackout and grav gen blackout, and a maximum of 3
occurrences per round
Signal failure:
Previously: Signals fail until reset has physically been done on the
controller
New: Signal failure is moved to be part of the Communications Blackout
event, lasting the duration of EMP blast that hits telecoms
Communication loss:
Previously: For the duration of the Tram Malfunction event there is a 5%
chance the tram does a degraded stop, ending when the controller is
repaired or the timer ends
New: A guaranteed 1 degraded stop per event roll. To balance the
increase in occurrences it's been made easier to reset on the
controller. If the tram is not reset by the end of the timer, it is done
automatically
New telecoms room tram controller:

## Why It's Good For The Game
Making the tram friendlier for engineering to pick up/understand, it
will function more predictably in the tram malfunction and
communications blackout event.
## Changelog
🆑 LT3
add: Telecoms now has a central tram controller
add: Tram controller is now included in communications blackout event
qol: Tram malfunction event only stops tram once, requiring engineering
to reset (no tools required)
qol: Tram malfunction event no longer sends a Central Command
announcement when fixed
del: Tram doors no longer force crush you during tram malfunction event
del: Silicons can no longer control the tram when communication is lost
/🆑
## About The Pull Request
So this PR comes in two basic parts: the new ammo types and the minor
balance changes. I'll go over each separately.
**--- NEW AMMO TYPES ---**

-- Metallic Hydrogen Ammo: Made from Metallic Hydrogen, obviously. Has
middling damage and no dismemberment chance, but pierces through armor
and enemies like they weren't even there.
-- Zaukerite Slivers: Made from a zaukerite crystal. Does high toxic
damage, and has excellent wounding and embed chances, but lacking in
armor penetration. Also gives 1 second of blurry vision if it hits you!
-- Paper balls: Crafted from a sheet of paper. Mostly just a throwing
joke item, and 99% nonlethal like donksoft. Can be fired from a
crossbow, but also could be used if you wanted to have a snowball fight
on metastation.
-- Healium Crystal Bolts! Crafted (using menu) from the healium grenade
item. Heals 30 of brute/tox/burn, but puts who is hit by it to sleep for
three seconds, limiting its use in actual combat.
-- Supermatter Bolts: Dusts whoever you shoot it at! Absurdly
overpowered! Admin only!
-- A makeshift quiver, made from cutting a o2 tank in half, to store all
the ammo in.
**MINOR BALANCE CHANGES**
-- For some reason I thought the 357, which the traitor crossbow is a
direct competitor to, did 40 damage when making the first version of the
PR, instead of the reality of it doing 60. It's been buffed to 55
damage. (The basic engi one still does 35.)
-- I've been informed that generally, the stressed rebar crossbow isn't
ever used, as the misfire chance isnt worth the extra shot. As such, I
felt it was thematic to say that the stressing procedure involves
messing with the draw system in the fluff, and the stressed one now
takes half as long to rack.
**OTHER CRAP**
-- The rods now drop themselves if you shoot them at a wall. Hopefully.
-- Fixed the the non-bare wound chance on the traitor crossbow not being
increased from the base version.
-- Has a nice electronic discharge noise on firing.
## Why It's Good For The Game
I'm very happy with the reception of the rebar crossbow, and felt that
given it was an engi weapon at heart, giving it some engi-related
ammunition would fit it very well (and also have a good reason for
making zaukerite besides selling it.) The paper balls were more just so
the crew could able to shoot their buddies with it and not maim them.
As for the balance, I feel the tot crossbow being department restricted
is already a strong factor in it being infrequently seen, and if someone
is lucky enough to roll traitor in a job slot, it's a shame if their
job's items aren't worth it. The stressed variant is a similar case, and
I hope it's enough of a buff to encourage its use.
## Changelog
🆑 WebcomicArtist
add: Added zaukerite (high damage/embed, low AP) and metallic hydrogen
(High AP and piercing, but low embed) crossbow ammo for the rebar
crossbows
add: Added healium crystal ammo for the crossbow as well, which heals
whomever you shoot it at.
add: Added admin-only supermatter crossbow bolts that dust you, because
why the hell not.
add: Added non-harmful paper balls. Can be shot from a crossbow, or
thrown at co-workers.
add: Added a quiver made from cutting an o2 tank in half, to hold it
all.
image: added sprites for all the above.
balance: Traitor Engineer Crossbow ammo now does 55 damage instead of
45, to make it compete with revolver.
balance: Stressed Rebar Crossbow now has a shorter delay required to
rack it, but can shoot you in the face on misfire.
fix: fixed rebar crossbow shots not dropping items on hitting walls
fix: fixed traitor crossbow having worse wound chance than the base one
sound: added new crossbow firing sound effect
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
_[even better than I was the last time, baby, ooh, ooh, ooh - I'm
good](https://www.youtube.com/watch?v=ftSUchAdVTE)_
#83192 was a nerf to aiuri, libital, and seiver with a whole bunch of
nasty side-effects including weaponization and accidental kills.
Instead, what if we just made the other cat2 chems not suck as much?
That's what this PR proposes to do.
Helbital: always heals a minimum of 3 brute. Scales much more heavily
with high damage when the person is in soft-crit or crit. You get to
play rock-paper-scissors with the reaper ~~very rarely if you use it
while conscious/not near death's door~~ *edit: in softcrit now too -
which is fun - but should still be rare.
*edit because I'm dumb and forgor: ~~also increased the O2 damage a
touch. 3 regularly, 2 in softcrit, so it's got a limit on its mischief
you can offset with other drugs. keep in mind if you're immediately
thinking "budget lexorin" - it doesn't inflict losebreath, so you're
constantly healing O2 damage on every breath as well.~~ undid this
*edit: helbital now gives you 1-3 omen incidents after it ends
metabolizing if you go through 10u or more in your system.
Probital: also now heals 3 brute stock. Tradeoff is stamina damage but
you can couple it with food for even better brute+burn heals.
Lenturi: now heals up to 5 burn per tick pure and 3.75 stock. Stomach
damage is negligible.
Hercuri: 3 burn/tick on people with more than 50 burn damage, up to 4
pure, otherwise 2.25. Better than aiuri for significant burns.
Syriniver: can now trigger its direct tox removal effect when injected
on doses above .4u instead of .6. Lets you do a .5u drip which feels
better on the eyes than .6. Removes up to 6 toxin damage per tick this
way - nice augmentation if you don't mind the liver damage. Also heals 2
tox per tick instead of 1 on its own while metabolizing and making
musiver. Still has its low OD.
Musiver: the slow and safe byproduct of syriniver removes 1.5 tox per
tick instead of 1.
Calomel, the toxic chem-purger, is now available in two bottles in the
chem vendor. It isn't really good for killing anyone outside of slimes
(15u does about 65 damage ingested,) but it is a backup (with a
downside) in the absence of pent that you can get a little bit of
without having to bother/tide chem.
*tirimol now does a base of 4.5 oxy healing, 6 pure. the tradeoff is it
makes you randomly eepy, lose stamina, and knocks you out cold after it
leaves if you take too much. don't take too much!
**tirimol now also uses 1u oxygen as a catalyst, requires below 25%
impurity to make Super Melatonin, and has a narrower pH range which
starts at 5 pH for purity.
## Why It's Good For The Game
one of the problems I wanted to address in the last PR was to do with
the way chem stands in balance with other healing methods - finite
sutures/meshes, surgery, etc. - and lessen the ability to go for miles
off of the base chems with few-to-no drawbacks or necessary windows to
use those other methods. the base chems I focused on are the main ones
in public vendors and medikits: aiuri and libital; the third was one
that just dominates in the tox healing world, seiver.
doing this, and doing this through organ damage in particular, has a lot
of problems. it slows gameplay and demands more interdependence. it
penalizes people who cannot access that interdependence unduly (antags,
miners, but really just anyone.) it makes the chems dangerous to use
whether you intend to or not.
so rather than deal with that problem, but recognizing that people
generally don't give a shit to use the other cat2 chems for a reason
(why would you?) I decided to instead try to make them more appealing -
since they each have drawbacks already - to make the choice between them
less about the damage #s and more about the desired mix of drawbacks -
all of which you might have to account for in making a god-chem mix that
you did not have to when libital/salicylic acid and aiuri/oxandrolone
previously existed.
hopefully now these other chems are good enough to be worth considering
against those.
~~oxy meds basically never get used as-is so i left them alone.~~ edit:
i buffed tirimol. convermol + helbital works great though.
should give chemists and anyone interacting with our chem options more
interesting choices while not penalizing people using what they do now.
## Changelog
🆑
balance: buffed healing values of helbital, probital, lenturi, hercuri,
syriniver, musiver, and tirimol for their respective damage types.
balance: Tirimol now uses oxygen as a catalyst rather than consuming it
over time making it easier to make without babysitting. Tirimol now
requires much more careful management of impurity in order to make Super
Melatonin.
add: medical chem vendors now sell bottles of calomel, a potent
full-range chemical purger.
/🆑
## About The Pull Request
This pr lowers the volume for roundstart mutadone pills from 50 to 5
## Why It's Good For The Game
Realisticly you only need a single unit of mutadone and it will wipe all
your mutations 50 units in roundstart bottles were overkill it would
mean genetics would start with 250 units of mutadone which would have
upto 250 uses lowering the amount will also be more player friendly that
uses a pill to change a mutation or something quick and not have 50
units run trough their system and unable to add powers to themselves for
the next 10 minutes
## Changelog
🆑
balance: Roundstart mutadone pills now have less chems in them from 50
to 5
/🆑
## About The Pull Request
stacking machine consoles check in area instead of a tiny view range on
init
## Why It's Good For The Game
turns out there are areas where you cant cram the console directly next
to a stacker
## Changelog
🆑
code: stacking machine consoles check in area instead of a tiny view
range on init
/🆑
turret faction got removed by accident.
fixes#83747🆑 ShizCalev
fix: Basic bots are now in the proper faction and will no longer be
targeted by turrets.
/🆑
## About The Pull Request
Title, warns you if you have anormal hook and gives you a heads up it
might work otherwise.
## Why It's Good For The Game
Everyone knows 'fish in chasm to get body', but not many people know
'you can ONLY use the rescue hook to get body'. This clarifies that! It
reduces misinformation and confusion.
## Changelog
🆑
qol: Adds a chat message for fishing in a chasm with a normal and rescue
hook, to clarify that only rescue hooks can drag up corpses.
/🆑
## About The Pull Request
Anxiety, As implied by the code, causes any fish with it to die if it is
within the same loc as 3 other fish.
Anxiety, As it currently works, causes any fish with it to die if its
within the same loc as _**ANY**_ 3 /obj/items, meaning if you are a well
mannered fisherman wearing your fishermans hat, your good ol' overall,
some good ol' wading boots, and you caught an anxious zipzap, A rare
fish that can only be caught in the ocean or any ocean portal
thingymajig, It would *instantly* die, even if every other fish was dead
and on the barbeque already
For video evidence: Here's how it's currently coded. (For the sake of
explanation, i've used game panel instead of fished.)
https://github.com/tgstation/tgstation/assets/28457065/951c82e4-2d4b-44df-8323-2e3bbc54b368
As you can see, The first fish spawned on the ground (Because i was dumb
and didn't spawn it in my hand.). But the moment i spawned one in my
hand, it _**INSTANTLY**_ died. (Or, well, not instantly but before many
could react to put it into a fish tank/generator system)
Now, With the fish being patched:
https://github.com/tgstation/tgstation/assets/28457065/cd36e315-bc17-4b09-829e-504f33e3fbae
As advertised. You can hold one fish. Two fish. _even three_. but the
moment a fourth was in the same loc, they all triggered their anxiety
## Why It's Good For The Game
I shouldn't have to be ass naked to go fishing for some anxious thing
that'd tazer me.
## Changelog
🆑
fix: fish with the Anxiety gene wont die when in the same loc as any 3
items
/🆑
## About The Pull Request
A simple fix to meat drops on lobstrosities, so that they aren't
pre-cooked.
## Why It's Good For The Game
Chefs have a limited access to crab meat unless miners are generous
enough to bring it back, but because it is cooked it can't be used in
crab rangoon or other recipes that call for the meat raw.. miners on the
other hand usually aren't pressured for food anyways, due to how
lavaland and icebox are. Furthermore, this is a sanity check of sorts:
Why are lobstrosities, especially Arctic lobstrosities, dropping cooked
meat? If they're able to survive in lava, it should probably come out
raw.
## Changelog
🆑
fix: Lobstrosities are no longer pre-cooked through bluespace
shenanigans.
/🆑
## About The Pull Request
Corrects some grammar in the raptor code. (This time it should be
correct!)
## Why It's Good For The Game
Good grammar is best grammar
## Changelog
🆑
spellcheck: fixes bad raptor grammar
/🆑
Implements an unused mood event found in #83741🆑 ShizCalev
fix: Getting surgically cut open while conscious will now give you the
"THEY'RE CUTTING ME OPEN!!" surgical mood event.
/🆑
## About The Pull Request
This PR introduces a limited set of camera components that can be used
by surveillance security consoles and the PDA/laptop camera app.
<img width="366" alt="components"
src="https://github.com/tgstation/tgstation/assets/80724828/0e628863-9998-46d6-8822-e0a44543b4c2">
There is four camera components, each limited to a specified shell
circuit type.
Additionally, drone circuit shells can now use the recharge stations
too, much like how mobs with BCIs can recharge.
### New Components
<img width="136" alt="drone camera"
src="https://github.com/tgstation/tgstation/assets/80724828/fd045871-56bf-44a6-bb4f-ebe895d56d3d">
* Drone Camera
This camera component captures the surrounding area. It has an option to
set the camera range (near 5x5/far 14x14).
<img width="136" alt="bci camera"
src="https://github.com/tgstation/tgstation/assets/80724828/16bf2dd1-823b-4d66-8249-5d0f1bb1b779">
* BCI Camera
This camera component uses the active user's eyes as a camera function.
If the user's sights are damaged, the range will be forced to the near
setting. If the user is unconscious/dead/blinded or has no eyes, the
stream will be cut off.
It has an option to set the camera range (near 5x5/far 14x14).
<img width="136" alt="polaroid camera"
src="https://github.com/tgstation/tgstation/assets/80724828/7c4d53df-b4af-4f7c-8942-a63842510720">
* Polaroid Camera Add-On
This camera component streams to a camera network. The camera range is
hardcoded to the near setting (5x5).
<img width="136" alt="airlock camera"
src="https://github.com/tgstation/tgstation/assets/80724828/5d9e9d55-49fc-45a7-99c8-aaf1ae08f6d1">
* Airlock Camera
This camera component streams to a camera network. The camera range is
hardcoded to the near setting (5x5).
### Features
* The cameras can be EMP'd and will be disabled for 90 seconds if
successful
* When the cameras are active, they will actively drain the cell's power
per second (near range uses 3kJ & far range uses 8kJ)
* Advance camera console/AIs can use these cameras, however the camera
light is disabled (they will be useless in dark areas)
### Screenshots In Action
<details>
This is the drone camera viewed on a security camera console<br>
<img width="425" alt="near"
src="https://github.com/tgstation/tgstation/assets/80724828/e5247828-0fee-4552-9e70-5e5ee897c117"><br>
This is the same drone, now set to the far range setting<br>
<img width="425" alt="far"
src="https://github.com/tgstation/tgstation/assets/80724828/e58e3e85-aa90-4f1a-9dff-957c65764b77"><br>
</details>
## Why It's Good For The Game
This promotes emergent gameplay and improves the overall usefulness for
drones as they can be 100% used remotely.
## Changelog
🆑
add: Added new circuit camera components
qol: Circuit drones can now recharge at recharge stations
/🆑
---------
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
## About The Pull Request
What it says on the tin.
Closes#80865
## Why It's Good For The Game
Fix good.
## Changelog
🆑
fix: Fixed Silicons not being able to (un)lock Air Alarms.
/🆑
## About The Pull Request
It makes the automute use bigger, redder text and also balloon alert
I know ppl dont like punctuation in balloon alerts so I can remove the
exclamation mark if u want, i like it tho
I guess if u support darwinism u could leave it as is but in the era of
runetext and TTS ppl cant pay attention to the chat window they're too
busy watching subway surfers on their second monitor and scrolling
tiktok on their phone
Doesnt change the text so it stays deliberately vague like the comment
says it should
Before:
<img src="https://i.ibb.co/3hDnpQm/Automute-Before.png">
After:
<img src="https://i.ibb.co/0qSwJFB/Automute-After.png">
<img src="https://i.ibb.co/n3ch9fg/Automute-Balloon-Alert.png">
## Why It's Good For The Game
Being automuted when there's no admins on cuz u got a bit carried away
isnt cool and then u have to urgent ahelp it, which is understandable
cuz it's making the round unplayable for you but you did kinda bring it
on yourself and the admin might not be too happy with you about it.
## Changelog
🆑
admin: The auto-mute system yells at you harder when you send a bunch of
identical messages.
/🆑
## About The Pull Request
All instances of reactive armor are now reactive armor, instead of some
being "armour"
## Why It's Good For The Game
Consistency
## Changelog
🆑 grungussuss
spellcheck: all instances of reactive armor are now spelt the same
/🆑
## About The Pull Request
Fixes the admin borg panel's upgrade functionality. Caused by not
registering the signals for deletion and also by the upgrade code
checking the robot's contents instead of upgrades list (since the borg
panel spawns the item in the borg, it appears in the borg's contents,
making the check think the borg already has it installed.)
## Why It's Good For The Game
Easier testing new borg modules
## Changelog
🆑
fix: Fixes admin borg panel upgrade functions
/🆑
## About The Pull Request
So crew records weren't actually showing the right quirks for
latejoiners, and in at least one instance (heterochromatic eyes) even
the fingerprint was wrong. The latter seemed to be caused by a recent
fix pr making the quirk actually update your dna, for the sake of
paradox clones/changelings.
Looking into it, this seemed to be because we assign quirks to
latejoiners _after_ injecting them into the manifest:
https://github.com/tgstation/tgstation/blob/b7225d8486476fc4971ef32ed3c83fd778e7e46d/code/modules/mob/dead/new_player/new_player.dm#L218-L244
See line 219 and 244.
So we move manifest injection to be _after_ quirk assignment:
```dm
(line 242-246)
if((job.job_flags & JOB_ASSIGN_QUIRKS) && humanc && CONFIG_GET(flag/roundstart_traits))
SSquirks.AssignQuirks(humanc, humanc.client)
if(humanc) // Quirks may change manifest datapoints, so inject only after assigning quirks
GLOB.manifest.inject(humanc)
```
This fixes it.
## Why It's Good For The Game
Makes quirks actually show in the medical records for latejoiners.
Makes latejoiners with heterochromatic eyes not have the wrong
fingerprint in the security records.
_Probably_ fixes#83681.
Fixes#56469.
## Changelog
🆑
fix: Latejoiners with heterochromatic eyes no longer have the wrong
fingerprint in the security records.
fix: Latejoiners actually have their quirks visible in the medical
records.
/🆑
<!-- 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
Adds a comms agent to icemoon, similar to the one that can spawn in
space
<details>
<summary>Image (spoilers, kind of)</summary>

</details>
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
Icemoon is sorely lacking on ghost roles, this should help with that
somewhat.
<!-- 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. -->
## 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 it's 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: NT reports indicate that the Syndicate have increased listening
activities on Icemoon, crew is advised to watch out for possible
communication interference.
/🆑
<!-- 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. -->
## About The Pull Request
- Adds in checks for the borg consumables resupplying to stop drawing
power once supplies are full. Specifically, the `respawn_consumables()`
proc will run attempting to stock everything it can, and will return
TRUE if any item required stocking.
## Why It's Good For The Game
Certain borg tools are still supplied by the borg chargers directly at a
power cost because material costs just don't make sense. These did not
have a check in place for if the various resources were full, meaning
every process cycle a bit of the borg's cell would be used attempting to
restock things. Since it's a percentage of the cell's current charge, a
filled bluespace cell could have a surprising power leak.
Now that borg chargers pull directly from the SMES units, borgs don't
recharge if the powernet is empty (regardless of local APC charge). But
borg consumables restocking carries on, which causes borgs to slowly
drain. So I have added some checks to stop the drain if nothing was
actually done.
## Changelog
🆑
fix: Fixed borg chargers (especially unpowered ones) constantly draining
a borg's cell.
/🆑
## About The Pull Request
Title.
Uses pickweight, to ensure rare martial arts stay rare.
Common:
* Carp
* CQC
Uncommon:
* EVIL boxing
LEGENDARY:
* Wrestling
* UNNERFED PLASMA FIST
* Psychotic brawling (bath salts, rare because its a meme)
Does not work on meat tower.
## Why It's Good For The Game
Variety is good! Also, theres only one way to get martial arts in DM and
thats meat tower. There is ALSO very little way to get evil boxing,
mushpunch, plasmafist, etc. This allows people to go absolutely nuts in
death match, and I think thats a good thing.
## Changelog
🆑
add: New deathmatch modifier: "Random martial arts"
/🆑
mime borg is hilarious
## About The Pull Request
remove human requirement for invisible_wall
## Why It's Good For The Game
mime borg is hilarious
## Changelog
🆑
balance: remove human requirement for invisible wall
/🆑
## About The Pull Request
Only the "filled" subtype of graves will provide a mood debuff (buff if
you're a coroner).
This means that graves that spawn with loot/remains, such as the two
featured on the icebox coroner graveyard or the ones in the Elephant
Graveyard Lavaland ruin, will impact your mood. The unfilled graves at
the icebox chapel/morgue will not affect mood, nor will recently created
ones.

## Why It's Good For The Game
It makes a bit more sense. You shouldn't be beating yourself up over
graverobbing when you aren't actually disturbing anyone's grave,
especially when it lines up with what the actual mood event text says.
Closes#83704.
## Changelog
🆑 Rhials
fix: Only filled graves will impact your mood.
/🆑
## About The Pull Request
Reworks sneezing. Instead of a range check that checks if you're facing
someone, it is now a skill check
https://github.com/tgstation/tgstation/assets/7501474/c11ffa16-9bd2-4ed1-8022-2094360657bc
All sneezes shoot projectiles, but depends on the virus if they're
infectious. Using the sneeze emote is the only method that doesn't shoot
a sneeze
## Why It's Good For The Game
I think the invisible infection mechanics are unfun. A lot of station
dangers challenge your knowledge and mechanical skill, while viruses are
gotten by being around people in a roleplay game. You can get a round
seriously ruined if you walk past someone with a sneezing virus and
don't immediately rush spaceillin or chemistry, which I don't think is
mechanically interesting.
Now if you get infected, it's a skill issue. Get good and dodge the
sneeze
Note that this is just one method of infection. I didn't touch coughing
and airborne viruses, which do constant area checks and infect everyone
around. I plan to, but not now. I'll probably make coughing do a cone or
something, and ignore the airborne viruses since they can't be modified
and are generally less broken
## Changelog
🆑
balance: You can now dodge sneezes
balance: Infectious simple diseases that use sneezes now infect with
sneezes and have lowered airborn transmission
balance: Damageless attacks, projectiles, hugs etc no longer drain
shields
/🆑
- [x] Make sneezes shoot to your cursor so you can either intentionally
sneeze on people or sneeze away from people if you react fast
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
https://github.com/tgstation/tgstation/pull/82929
I spent hours working on this; mapping, setting classes, testing,
balancing. It feels like shit to see pr closed. This is the same map but
without the removal of mech madness in the pr

nuke op has a bulldog instead
## Why It's Good For The Game
its a deathmatch map; there are many like it but this one is mine. The
classes represent a variety of characters you'd find aboard space
station 13, albeit cartoonishly powerful and with more gear than you
could reasonably use. Have some honourable showdowns at peak performance
or a chaotic loot fest; no gear is restricted.
## Changelog
🆑
add: final destination deathmatch map, loadouts
fix: indestructible light tile emits light
/🆑
Co-authored-by: sylvia <sylvia-from-fulp-station@users.noreply.github.com>
## About The Pull Request
Fixes antimagic, not preventing the disgust builtup from standing on
rusted tiles, makes rust walkers more expensive to summon.
## Why It's Good For The Game
I'm very happy with the end result of my Rust heretic rework; but they
came up a tad stronger than i wanted them to be.
Carlac already changed the Vomit stun to knockdown, but i wanted to add
a couple of things myself.
Having anti magic now makes you fully immune to the effects of rusted
tiles, not just the spells.
Rust walkers summoning ritual now requires titanium instead of iron
sheets.
As of right now, they are way too easy to spam, Titanium is a bit harder
to come by than iron so that'll do for now.
I was planning to set a limit to how many you can summon at the time,
but i'd rather wait a few months to see how rust behaves before i add
more nerfs.
## Changelog
🆑
balance: Rust walkers' summoning ritual now requires 5 sheets of
Titanium instead of Iron.
fix: Magic resistance grants complete immunity from the passive disgust
buildup from standing on Rusted turfs.
/🆑
## About The Pull Request
Same problem for techfabs as mentioned in #83587
## Changelog
🆑
fix: techfabs don't runtime & hang when printing in no apc areas
/🆑
## About The Pull Request
This PR changes the pAI's face display selection from a tgui input list,
to a radial menu, with the actual faces displayed on the radial.

This PR also removes part of the comment for
`/mob/living/silicon/pai/proc/change_image()` that is no longer
applicable.
## Why It's Good For The Game
The radial menu makes pAI face display selection clearer, because
players now see what the face looks like, rather than having to guess
what a face might look like from the... frankly, very vague names given.
Seriously, what is `Null` supposed to be? What is `Face` supposed to
be?!
## Changelog
🆑 MichiRecRoom
qol: Personal AI's face display selection is now a radial menu. As a
bonus, now you can see what the faces look like before selecting them.
/🆑
## About The Pull Request
Checks that held modules exist in new module list after rebuilding
modules before putting them back in held modules.
Fixes emag modules stuck in inventory/screen after losing emag status
Also fixes jank fail to install piercing hypospray upgrade
## Why It's Good For The Game
Fixes buges
## Changelog
🆑
fix: Borg emag module jank when no longer emagged
fix: Borg piercing hypospray fail message
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
#78124 added an init arg to these which 99% of actionspeed modifiers
don't pass, so it's passed as null, so it sets id = null, so any preset
ids get nulled out, meaning actionspeed modifiers intended on overriding
each other don't.
## Changelog
🆑 Melbert
fix: Fix some modifiers to do after speed (sanity, midas gun) stacking
when they shouldn't
/🆑
## About The Pull Request
When selecting the Blindness quirk, you now have the option to choose a
specific color for the blindfold much like how the tagger quirk handles
spray can color preference. The blindfolds used to always take a blend
RGB of both eye colors and apply it to the blindfold, now it _should_
only do that if you have the blind-personnel blindfold directly spawned
on your eyes. If not, then it just handles it like how it did before
this PR was submitted, and mobs generally shouldn't have the
blind-personnel blindfold if they aren't blind anyways.

## Why It's Good For The Game
While it isn't a big deal if your eye color matches the blindfold, some
players (like a certain someone I know) would rather have their eye
color be distinct, as such if you have a blue eye color on both eyes but
want a purple or red blindfold, you don't have to go out of your way to
paint it, which generally wouldn't work the way you'd want it to.
In other words, it allows you to customize your character with more
freedom, but only applies to those who willingly choose to suffer in the
game. Being blind is fun! =)
## Changelog
🆑
add: You may choose a color preference for your blindfold with the
blindness quirk.
/🆑
## About The Pull Request
QoL for antag mechs: no longer are you expected to sit around station
Robotics with a [materials] [inducer] [experiment scanner] to upgrade
your antag mechs, they are now appropriately armoured out of the box!
Unfortunately, this high end armour cannot accept third party upgrade
modules.
Also good because of incoming (hopefully) sprite upgrades, maulers
should become more attractive to buy.
Inspired by maplestation..
NOTE: WEB-EDITED! NOT TESTED!
## Why It's Good For The Game
Antags like Centcom or Syndicates don't have no time to sit around in
the station robotics bay trying to upgrade their mechs - and it's insane
to expect them to do so. This is especially poor for newer players who
aren't aware of mech mechanics - such as a basic chainsaw or fireaxe
dealing 15 or over damage to their mech when a upgraded Durand isn't
affected by this.
Makes antag/centcom mechs good 'against most threats' out of the box, so
better for newbies and less stressful for experienced players who won't
have to literally _do station jobs_ to get a good mech. Did you know:
mech mechanics aren't even explained at all in-game?
Balance wise, it's "good against everything" and loses the ability to be
super-specialized against a single thing, while retaining
higher-then-normal grades on everything else. Station mechs still have
the ability to specialize in one armor, say, melee, but have much worse
grades on bullet/laser/EMP, and often have less health. Previously, a
trip to Robotics could get a D-GYGAX up to 85% melee while still
retaining 40%/50% of bullet/laser which imo is a biit *too* good. The
difference between say - 70% and 85% is fairly significant - 9 damage /
13.5 damage for 70% melee vs 4.5 / 6.7 damage for 85%, so twice as good.
NOTE: Some of the mechs receive better bomb/energy armors, which weren't
affected by armor upgrades.
## Changelog
🆑
balance: Antag/Centcom mechs now have top notch un-upgradeable armor out
of the box. You can't add armor to centcom or nukie mechs anymore, but
their default armor rating is a lot higher.
/🆑
## About The Pull Request
Minor fixes to the tram crossing signal logic.
Reverts an earlier change I made to the subsystem, which resulted in the
signals being wildly off in their timings on a regular basis. Adjusted
the red length corresponding to the properly timed signals. Removed
define for degraded yellow, as that's now simplified into a check at
signal activation time.
## Why It's Good For The Game
Tram crossing lights better reflect tram status, staying green when the
tram is broken therefore safe to walk. Consistently turn red when tram
approaching.
## Changelog
🆑 LT3
fix: Fixed timing issue where tram crossing signals would be out of sync
with the moving tram
fix: Tram crossing signals consistently show green when safe, blue when
broken
fix: Tram crossing signals show red instead of yellow when degraded
/🆑