* Removes language encryption keys (#76309)
## About The Pull Request
We want languages to be special to species, these devalue that and make
them far too common.
The listen only thing does this especially badly. I'm sorry arcane I
know it's good for cargo but this vibes horrible and we shouldn't have
it
## Why It's Good For The Game
You should be able to talk privately via language with minimal snoopage
## Changelog
🆑
del: Removed language encryption keys from cargo, s bad for species
talking among each other, a thing we want them to do
/🆑
* Removes language encryption keys
* Removes our own translation keys too.
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Simple suit storage fixes (#76267)
## About The Pull Request
Makes toys, stamps, and spacecash invisible in suit storage, fixing some
missing textures
adds stamps to the allowed suit storage items for hop, qm, and cargo
wintercoats
## Why It's Good For The Game
The /datum/unit_test/suit_storage_icons failure list is awfully long,
and while some of them require more thoughtful fixes, just these couple
of lines clears more than 100 lines from the failure list.
While I was here I added the stamps to the allowed suit storage for hop,
qm, and cargo wintercoats cause that seems fair
## Changelog
🆑 Seven
fix: toys, stamps, and spacecash no longer has a missing texture when
put into suit storage
qol: stamps are now allowed suit storage items in the hop, qm, and cargo
wintercoats
/🆑
* Simple suit storage fixes
* Fixes the issue with tennis balls not showing up properly
---------
Co-authored-by: Lufferly <40921881+Lufferly@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Improves jousting and gives it to more weapons (#76321)
## About The Pull Request
I was reading over components and saw one called jousting, I vividly
remember it being mentioned every so often but I've never seen it
in-game. Turns out the SINGLE case for it is when you are using a spear
on a borg. The code itself was also very over the place, making it a
little confusing to figure out what it did.
I tried cleaning the file up as much as I could, and since I wanted to
see this in-game more often, I made some player-facing changes too:
- You can now joust from any vehicle, not just borgs (Secway, ATV,
scooter, Charger holoparasite)
- Added jousting to the broom, pitchfork, captain's sabre, and energy
sword while active (ONLY esword, NOT desword).
- Added examine text to indicate this feature exists.
Extra notes:
Esword gains half the damage increase and half the knockdown chance than
other ways of jousting
Broom only gets 25% damage increase from jousting, since the broom is
already pretty strong I thought it would be better off as something used
mostly to knockdown.
Spears have to travel a longer distance than other weapons to get their
jousting benefits (since it's supposed to be a ghetto weapon)
Jousting now takes the minimum distance needed into account when
handling knockdown chance & damage dealt, so travelling 5 tiles will no
longer be 100% chance of knockdown if you need a minimum distance of 3
tiles to joust (it will instead be 40%, since you've only traveled 2
tiles in 'jousting' mode).
## Why It's Good For The Game
This is an underused component and I thought it would bring some pretty
cool interactions, especially for Holoparasite & Janitors, as a new way
to use vehicles to your advantage when it's otherwise seen as just a
slowdown.
## Changelog
🆑
balance: Jousting now works on anything you're buckled to, not just
Cyborgs.
balance: Brooms, Pitchforks, the Captain's Sabre, and Energy swords can
now be used for jousting.
balance: Spears need to travel a longer distance to joust now.
balance: Jousting's knockdown and damage now only gets stronger after
you've traveled the minimum tiles needed to joust.
/🆑
* Improves jousting and gives it to more weapons
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Increases throwing weapons box storage to fit reinforced bolas and stuff it spawns with. (#76482)
## About The Pull Request
- Increased box with throwing weapons storage to fit the things it
spawns with, such as reinforced bolas.
- Increased debug boxes to fit other boxes and the items it spawns with
too.
## Why It's Good For The Game
Less bluespace magic.
## Changelog
🆑
qol: Box with throwing weapons now can hold the items it spawns with.
Incredible!
admin: Boxex of materials, debugtools and stabilized extracts now 99 of
total storage because they are meant to be debug.
/🆑
* Increases throwing weapons box storage to fit reinforced bolas and stuff it spawns with.
---------
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
* Some crayons fixes and minor changes. (#76468)
## About The Pull Request
- Defined crayon colors because why not.
- Fixed suicide with crayons not coloring you.
- Made it properly? edible.
- "empty" balloon alert now only appears on empty spraycans.
- Remade attackby restrictions for mime's and rainbow crayons to
`set_holdable` but without balloon alerts sadly. I don't quite know how
to make it.
## Why It's Good For The Game
Crayon burgers.
## Changelog
🆑
fix: Crayon suicide now properly colors you.
fix: You can't put spraycans in crayon box via opening it and putting
directly in slot as intended, but balloon alerts for mime's and rainbow
crayons are gone.
qol: "empty" balloon alert no longer appears on crayons.
qol: You can make crayon burgers now.
/🆑
* Some crayons fixes and minor changes.
---------
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
* Useful Stethoscopes and Penlights (#75800)
## About The Pull Request
This PR overhauls and adds functionality to Stethoscopes and Flashlight
examinations (i.e. shining a penlight into someone's eyes/mouth).
Stethoscope Changes
- Dynamic results based on targeted body part.
- Chest: Assess whether the heart is beating, whether it is damaged
(above 10 dmg), and whether or not the player has suffered severe blood
loss. Assess whether the player is breathing, has lung damage (above
10dmg), and whether or not they have suffocation damage (above 10dmg).
- Head/Extremities: Assess heart function as above, and blood level
(nominal/low/critical).
- Groin: Assess whether or not the liver or the appendix have suffered
damage (above 10dmg). (The latter is only detectable if the patient is
conscious)
Flashlight Changes
- Eyes: Assess whether the patient is dead, has sustained brain damage
(above 20dmg), or has an X-Ray mutation.
- Mouth: Assess mouth organs, dental implants, suffocation damage (above
20dmg), and blood volume (nominal/low/critical)
## Why It's Good For The Game
Adds some proper functionality to two very rarely used tools.
Loosens up medical players' dependence on health analyzers to assess
their patients Provides an alternative, if manual and less accurate,
means of assessment.
For players interested in a more hands-on, RP focused approach to medbay
(or those in areas without power to recharge analyzers); I think this
will be a welcome addition.
## Proof of Testing
<details>
<summary>Screenshots/Videos</summary>
https://github.com/tgstation/tgstation/assets/107971606/43e87774-6db5-4db1-b7fa-92c3565c1009https://github.com/tgstation/tgstation/assets/107971606/9ec42cc4-a996-4d60-a6f1-1aecf24b9bc8
</details>
## Changelog
🆑
add: Stethoscopes may be used on the chest, groin, or extremities to
assess organ damage, blood level, and/or suffocation damage depending on
the targeted area.
add: Shining flashlights into the mouth or eyes of other players will
additionally assess brain health, suffocation damage, and/or blood level
depending on the targeted area.
balance: Halves the duration of the flash effect from shining lights
into players' eyes (2s -> 1s). Use combat mode to get the full duration.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Useful Stethoscopes and Penlights
---------
Co-authored-by: LovliestPlant <107971606+LovliestPlant@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Fixes some stupid airlock sleeps
* Fixes the conflicts before checking the merge conflicts
* Converts another wires = to set_wires() and removes another issue
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* RPD mouse wheel layer change checks for actually holding the RPD (#76319)
## About The Pull Request
Fixes mousewheel changing the selected piping layer when the RCD is
in-hands, but not in the active hand.
Also dmdocs, changes some var names, grammar checks some stuff and adds
balloon alerts when installing the wrench upgrade and reprogramming a
pipe.
Removes `activate()` proc that was just a `playsound()`, makes the sound
used for that a define here so it's obvious why's the sound being played
## Why It's Good For The Game
Closes#54844 (it was fixed at some point actually so you couldn't
mousewheel to change layers on an RPD on your belt slot, but the in-hand
inconsistency remained)
Code's a little cleaner
Installing an upgrade's a little more obvious
## Changelog
🆑
fix: fixed RPD switching layers on mousescroll when not in active hand
qol: installing an RPD wrench upgrade & reprogramming a pipe via RMB
produces a balloon alert
/🆑
* RPD mouse wheel layer change checks for actually holding the RPD
---------
Co-authored-by: Sealed101 <cool.bullseye@yandex.ru>
* Fixes an edge case runtime with the snatcherprod (#76386)
## About The Pull Request
Adds a user check to a line and makes it early return now.
## Why It's Good For The Game
Thrown items don't always have a mob throwing them.
## Changelog
🆑
fix: Fixed snatcherprods potentially giving held objects a one-way
ticket to nullspace if thrown at someone by something that's not a mob.
/🆑
* Fixes an edge case runtime with the snatcherprod
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* [BUTTER] You can now slice butter into 3 easier to handle slices. Mixing butter now requires 25 milk. Butter resprite (#76338)
## About The Pull Request
On top of removing soul, this changes almost all recipes to use butter
slices instead of a whole stick of butter, said stick of butter now
takes 25 units of milk to be mixed. The whole equation results in
8.333... milk per butter slice, making butter in general more efficient.
Butter also has 3 times as much nutriment.

## Why It's Good For The Game
Butter takes a lot of milk for not a lot of results, and using a whole
stick of butter on certain recipes is just silly. Now, you will spend
MORE milk to make butter, but you will slice it to make butter slices,
which are what will be used on recipes instead. Except butter on a
stick, that still uses the OG butter.
## Changelog
🆑
add: Added butter slices, which you can make by cutting butter into 3.
qol: Recipes that once required butter now only require a slice of it.
With the exception of the butter on a stick, of course.
balance: Butter now requires 25 milk to mix and has 3 times as much
nutriment.
image: Resprited butter and butter on a stick using bluespace
technology, managing to compress more butter into a smaller space
/🆑
* [BUTTER] You can now slice butter into 3 easier to handle slices. Mixing butter now requires 25 milk. Butter resprite
---------
Co-authored-by: DATAxPUNGED <44149906+DATA-xPUNGED@users.noreply.github.com>
* HMS, once again. (#75654)
## About The Pull Request
Bug reports seem to come in after the last fix gets merged. It makes me
sad.
## Why It's Good For The Game
The EHMS injector no longer continues to inject no matter what.
Fixes#75776
## Changelog
🆑 Chadley
fix: fixes the EHMS injector's do_after()
code: Improves the code for the disease scan proc (thank you fikou)
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* HMS, once again.
---------
Co-authored-by: Charlotte <98856144+orthography@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Lavaproof tracks fix (#76258)
## About The Pull Request
There is an upgrade for mining borgs called lavaproof tracks. As the
name implies, it allows them to safely traverse lava. This PR makes the
tracks also protect from liquid plasma. Fixes#76107.
## Why It's Good For The Game
Liquid plasma is the Icebox equivalent of lava, it stands to reason that
something that protects against lava should also protect against liquid
plasma.
## Changelog
🆑
fix: The lavaproof tracks cyborg upgrade now protects against liquid
plasma, the Icebox equivalent of lava.
/🆑
* Lavaproof tracks fix
---------
Co-authored-by: GPeckman <gpeckman1@gmail.com>
* Fixes stacks incorrectly stacking with subtypes (#76166)
Makes the type check to determine if two items will stack more strict,
so that subtypes that shouldn't stack don't. Fixed#76157
* Fixes stacks incorrectly stacking with subtypes
---------
Co-authored-by: Nick <42454181+Momo8289@users.noreply.github.com>
* Optimizes timer insertion by 80% (W QDEL_IN micro) (#76214)
<!-- 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
[Reduces timer insertion cost by
80%](c9e5b285ed)
Timer name generation involved a LOT of string shit, some in ways where
the string only existed for a moment.
This costs a good bit of time, and can be reduced with only minimal
impacts on the end product, so let's do that. Includes a compile flag to
flip it back if we ever have trouble in future.
This is about 0.1s off init, since we do a lot of timer stuff then too
[Removes STOPPABLE flag from QDEL_IN, moves it to a bespoke
macro](e7a5d7f2a7)
Its a waste most of the time, tho I would LOVE to analyze at compile
time to work out if we care
## Why It's Good For The Game
I like it when we don't spend all of our cpu time just setting the name
var on timers. that's good and not bad.
This saves time fucking everywhere. 15% off explosions, 0.1 seconds off
init, bunch of time off foam. it's just good.
Cherry picked out of #76104 since that was too cluttered (sannnnnn)
<!-- 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. -->
<!-- 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. -->
* Optimizes timer insertion by 80% (W QDEL_IN micro)
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Explosive implant documentation and cleanup (#76173)
## About The Pull Request
just scratching an itch that's been present since #72377
as a minor thing, delayed explosion beeps get louder with each iteration
## Why It's Good For The Game
dmdocing vars, cleaner var names, what have you
reinforce the equation of 1 macrobomb = 10 stacked microbombs
## Changelog
🆑
sound: explosive implant's beeps get louder as it gets closer to
exploding
/🆑
* Explosive implant documentation and cleanup
---------
Co-authored-by: Sealed101 <cool.bullseye@yandex.ru>
* Fixes iron duplication bug (#76203)
## About The Pull Request
Each regular floor tile was worth 50 before, fixed to be 25 instead
## Why It's Good For The Game
fixes#76191
Prevents turning 5000 iron into 10000 iron in less than 10 seconds
## Changelog
🆑
fix: changed station floor tiles to be worth 25 instead of 50, one
quarter of an iron sheet.
/🆑
* Fixes iron duplication bug
---------
Co-authored-by: Oreo <20830349+Peliex@users.noreply.github.com>
* Air Sensor are Craftable, Removed from RPD UI, Have New Linking System (#75869)
## About The Pull Request
**1. Craftable & Removed from RPD UI**
1. Air sensor's are now craftable
2. You can turn them on/off with hand. Even though turning off the
sensor will change it to a diffrent type[from `obj/machinery/air_sensor`
-> `obj/item/air_sensor`] it's I/O port's are sill preserved when
turning them on although you have to assign it a new name again which is
usefull if you want to change the sensor's purpose in game.
3. They can now only be deconstructed by a welding tool and should be
wrenched in place to turn them on.
4. Turned off air sensor's once unwrenched can be picked up like any
regular item
5. Air sensor's are removed from the RPD UI because they don't go with
pipes so it logically doesn't make sense to group them with pipe related
device's
Removed unused code in the process
https://github.com/tgstation/tgstation/assets/110812394/3439a0f3-9c48-43ac-8f4b-98135435ec13
**2. New ID System**
The problem with air sensor's is that each sensor is assigned a unique
ID which is then stored in `GLOB.objects_by_id_tag` list. Each sensor
name it's assigned based on the gas it's trying to sense(for naming only
even though it can detect other gases) So if 2 sensor's having the same
ID are made they will overwrite each other in this list leaving one
sensor orphaned in the world which cannot be referenced because it's
value was overwritten by a new sensor having the same ID in this list.
The Solution? Rather than having all atmos computer's look up sensor's
from this 1 global list make each computer keep track of all sensor's
it's responsible for in it's own local list[which i called
`connected_sensor's`] this way 2 sensor's can have randomly generated
names in the global `GLOB.objects_by_id_tag` list but the computer will
know what sensor to look up in this list based on the stored sensor ID's
in the `connected_sensor's` list
Basically what i am getting at is now you can make as many air sensor's
as you wish but you will know have to connect that sensor to the
computer using a multitool.
Notice in the video how i made 2 sensor's called `Supermatter Chamber
Sensor's`] and every time you try to connect an sensor which has the
same name[`Supermatter Chamber Sensor's` in this case] they will
ovewrite the old sensor in it's list as shown in the video
https://github.com/tgstation/tgstation/assets/110812394/b5283c3b-c8a1-4b94-a6a8-8ba7a0007615
**Why it's good for the game**

I agree. Also air sensor's taking up a full Tab/Section in the RPD UI
wasted a lot of UI space so that's removed now. Also making the air
sensor's wrenchable and pickable item's was also requested in
https://github.com/tgstation/tgstation/pull/72019#issuecomment-1355499873
so you relate them to device's like meter's
Another huge issue was that the number of air sensor's you can make in
the world was limited because each sensor in the world must have a
unique ID but that's finally fixed now so yeah make as many sensor's as
you want.
## Changelog
🆑
add: air sensor's are craftable
refactor: air sensor's can now be turned off by hand and can only be
deconstructed by a welding tool
refactor: removed `Params()` proc
qol: unwrenched air sensors can be picked up & recycled like regular
item's
del: air sensor are removed from the RPD UI
qol: air sensor's are no longer restricted by their unique ID's which
mean you can craft as many air sensors as you want.
/🆑
---------
Co-authored-by: Time-Green <timkoster1@ hotmail.com>
* Air Sensor are Craftable, Removed from RPD UI, Have New Linking System
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Time-Green <timkoster1@ hotmail.com>
* can't answer calls 'cause i'm baseballin - adds a baseball recipe to leather (#76135)
## About The Pull Request
baseballs can now be crafted with 3 leather
## Why It's Good For The Game
throwing interactions (correct me if i'm wrong but you literally can't
get these out of mail goodies, outside of having the throwing arm quirk
or the holodeck)
## Changelog
🆑
add: Baseballs can now be crafted with 3 leather.
/🆑
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
* can't answer calls 'cause i'm baseballin - adds a baseball recipe to leather
---------
Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
* New Wizard spell "branch": Vendormancy (#75679)
## About The Pull Request
New item for wizards, ~~the Staff~~ Scepter of Runic Vendormancy.
With it, you can summon Runic Vending machines to block your enemies,
push them 2 tiles back around the summoning tile, throw the vendors 4
tiles away to squash them or simple detonate the vendors for direct
damage against enemies within a 2 tile range.
The scepter has 3 charges that can be recharged after a "long" channel
so while powerful, it is a tactical weapon and wizards can't directly
steamroll the crew with endless vendors. (Unless they buy multiple
scepters, but that is just funny.)
Also, there is a bug with the throw... I copied how baseball bats deal
with knockback, but they consistently don't push the vendors back, just
spin them on the same tile... I appreciate if anyone has any idea on how
to fix or change that to a better system.
## New changes I made
The vendor has a random set of REAL wizard robes and hat, sandals and a
foam vendor scepter as products to sell now.
This gives the crew some real armor, and if it is considered too much, I
can swap it for the fake versions.
IMO the real clothes work as the perfect bait for the crew to approach
the vendors and get exploded in the process, and while a random
assistant might get real wizard armor to go valid hunt the wizard, the
crew might just mistake them for the real wizard and beat them to death,
which is too funny.
## Why It's Good For The Game

About a year ago I played Stoneshard, and it has such an amazing
Geomancy Wizard that I wanted to port some of its gameplay to SS13 as
our wizards, while funny and destructive, are kinda simple to play...
Summoning and blowing up rocks was nice, but I randomly had the idea of
summoning Vendors while at work and vendors squashing people has become
such an iconic SS13 thing to me that I had to stop being lazy and start
working on this.
Something, something, enviromental combat wizard.
## Changelog
Gonna polish the changelog later too...
🆑 Guillaume Prata
add: New Wizard spell branch: Vendormacy! Summon runic vending machines
with your Vending Scepter, force push them on your enemies to squish
them or blow them up while they are busy buying from the machines.
/🆑
---------
Co-authored-by: Time-Green <7501474+Time-Green@ users.noreply.github.com>
* New Wizard spell "branch": Vendormancy
---------
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@ users.noreply.github.com>
* Removes actually concerning religious references (#76228)
## About The Pull Request
Someone said something stupid in a comment so I'm removing it
## Why It's Good For The Game
Not every religious reference is concerning, but the "allahu ackbar"
meme died out in the 2010s and was always kind of racist.
## Changelog
Doesn't need one.
* Removes actually concerning religious references
---------
Co-authored-by: TheVekter <TheVekter@users.noreply.github.com>
* New Null Rod Sprites (#76061)
## About The Pull Request
Updates a few Null Rod sprites, and few non null rod sprites, including
the Supermatter sword.

## Why It's Good For The Game
Old sprites give me a headache, so does doing inhands, which I will get
around to, but at least the icon sprites look better.
## Changelog
🆑
image: Updated several Null Rod Graphics. Also updated: the supermatter
sword.
/🆑
* New Null Rod Sprites
---------
Co-authored-by: Mey-Ha-Zah <tomboxallghss@gmail.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
* Hairless hides are created from the entire stack of hides instead of only one item from stack (#75974)
Tanning is barely used because biogens are available everywhere and are
a default source of leather.
This PR makes one of the steps - hairless hide creation - easier, as
before to process 5 hides you had to either click on the stack 5 times
in sequence, or manually separate 1 hide from the stack, throw around
you avoiding their merging, click on each of them and then merge them
back.
Maybe people will use this way of leather creation more often.
* Hairless hides are created from the entire stack of hides instead of only one item from stack
---------
Co-authored-by: Andrew <mt.forspam@gmail.com>
* [MDB IGNORE] Subtypes out kirbyplants, also changes them to said subtypes (#76050)
* [MDB IGNORE] Subtypes out kirbyplants, also changes them to said subtypes
* woow
---------
Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
* Standardize Welder Fuel Usage (#76021)
Remove welder fuel usage from all actions except attacking and leaving
it on
most welder tasks require a minimum of 1u of fuel, some longer tasks
require a minimum of 2 or 3u welders now drain 1u every 5 seconds
they're active
## About The Pull Request
Prior to this PR welder fuel usage was random, a lot of tasks didn't use
any welder fuel and welders were basically near infinite so long as you
didn't use them for combat, it took 26 seconds of activity to drain 1u
of fuel, that means an emergency welder alone could run for 5 minutes
straight before needing a refuel
After this PR all welders will drain 1u every 5 seconds instead of every
26 seconds, but welding objects won't require extra fuel anymore, making
the fuel usage much more consistent.
resolves#55018
## Why It's Good For The Game
Actually makes fuel tanks useful and relevant without making it
obnoxious to do repetitive quick tasks like turn rods into plates,
there's actually a reason to upgrade off the emergency welder now since
it lasts 50 seconds rather than 5 minutes
## Changelog
🆑
qol: Welders now have a more consistent fuel usage
/🆑
* Standardize Welder Fuel Usage
---------
Co-authored-by: Couls <coul422@gmail.com>
* Tablet apps are now deleted when necessary & removes console preset. (#75863)
## About The Pull Request
Apps now properly delete themselves when removed, so they don't exist in
nullspace anymore.
Chat client now actually updates the uid, because its New() didn't call
parent.
Deletes the 'console' subtype of modular computer
Updates how downloading and transferring files are handled
Fixes being able to infinitely upload apps to a disk
## Why It's Good For The Game
Fixes some more bugs I found with apps and prevents spamming apps in a
disk.
## Changelog
🆑
fix: Maintenance data disks now properly transfer from PC to disk
fix: Disks can no longer be flooded with the same app repeatedly.
/🆑
* Tablet apps are now deleted when necessary & removes console preset.
* updatepaths
* feex
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
* mediborg beaker apparatuses can now hold test tubes (#76118)
## About The Pull Request
In addition to the beakers and bottles they could already hold, mediborg
beaker apparatuses can now hold test tubes.
The descriptions of beaker and drink apparatuses have been updated to
more accurately reflect what they can and can't hold.
## Why It's Good For The Game
Fixes https://github.com/tgstation/tgstation/issues/76111.
This seems to just be an oversight from the PR that added test tubes,
especially since service borg drink apparatuses can hold condiment
packets.
## Changelog
🆑
fix: In addition to the beakers and bottles they could already hold,
mediborg beaker apparatuses can now hold test tubes.
spellcheck: The descriptions of beaker and drink apparatuses have been
updated to more accurately reflect what they can and can't hold.
/🆑
---------
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
* mediborg beaker apparatuses can now hold test tubes
---------
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
* You can no longer abuse aicard shitcode to return to lobby as an AI (#75964)
See title.
* You can no longer abuse aicard shitcode to return to lobby as an AI
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
* Refactors the worst list ever, Stun Absorptions, into status effects + makes status flags more accurate (making certain mobs more vulnerable to incapacitations?) (#76000)
## About The Pull Request
- Refactors the stun absorption list into a status effect
- Does a fair bit of cleanup around stun code
Weird thing involved in this.
Check out this define.
`IS_STUN_IMMUNE(source, ignore_canstun) ((source.status_flags & GODMODE)
|| (!ignore_canstun && (!(source.status_flags & CANKNOCKDOWN) ||
HAS_TRAIT(source, TRAIT_STUNIMMUNE))))`
Notice anything odd about it?
It only checks for `CANKNOCKDOWN`.
What does this mean?
Well, *every single* one of the stun procs used this macro for checking
stun immunity. Which means every method of stun checked the
`CANKNOCKDOWN`.
This means that, say you have a mob which has `CANSTUN` but not
`CANKNOCKDOWN`.
Intuitively this means that the mob cannot be knocked down, but can be
stunned.
But instead, this means the mob can't be stunned either.
This doesn't affect humans, they have all the status flags, but it does
affect some other mobs.
Alien adults (not queens) have `CANUNCONSCIOUS|CANPUSH`. Before, they
didn't have `CANKNOCKDOWN`, so they were fully immune to stuns and
sleeps. But now, they can be knocked unconscious.
However, overall it doesn't change much, as most mobs that flipped off
`CANKNOCKDOWN` flipped off the others too.
For consistency though it makes sense for these flags to work as they
imply.
- `incapacitate` didn't have a signal, now it does
## Why It's Good For The Game
More consistent, better code? I may use this in the future.
## Changelog
🆑 Melbert
refactor: Refactored Stun Absorptions (Bastard Sword, His Grace)
refactor: Refactored Stun Immunity. Note this means that some mobs
which, prior, were immune to all forms of incapacitation are now
vulnerable to some. Notably, adult non-queen xenomorphs are now
vulnerable to falling unconscious.
/🆑
* Refactors the worst list ever, Stun Absorptions, into status effects + makes status flags more accurate (making certain mobs more vulnerable to incapacitations?)
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Deadchat Announcement Variety Pack 2 and also some fixes to other popups (#76053)
## About The Pull Request
This adds ghost orbit popups for the following:
- Macrobombs (or stacked microbombs) being triggered.
- HFR Meltdowns.
- Living players about to be gored by an emagged organ harvester.
- Nuclear devices being armed.
- Doomsday devices.
- Blob hosts bursting.
This also modifies the following ghost orbit popups:
- Toy hot potatoes will no longer cause a popup when armed.
- Normal spider eggs will not flash the byond window, only special egg
types.
## Why It's Good For The Game
Gives more gathering spots/information to deadchat. Let no entertaining
moment in this game go unobserved.
Spider eggs flashing your window for every single egg produced makes
alt-tabbing suck. I saw some guy on the forums complaining about it and
thought "huh yeah I guess he's got a point that pisses me off too" so
here we are.
## Changelog
🆑 Rhials
qol: Basic spider eggs no longer flash the byond window when ready to
hatch.
qol: Toy hot potatoes no longer give a ghost notification.
qol: Deadchat will be notified in the event of an imminent macrobomb
detonation, HFR meltdown, organ harvesting,
qol: Deadchat will be notified when a nuclear/doomsday device is
activated, as well as when a blob-infection bursts.
/🆑
* Deadchat Announcement Variety Pack 2 and also some fixes to other popups
---------
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
* Fixes stowing suit storage jetpacks when retracting modsuit chestplates (#75844)
## About The Pull Request
This is a bizare bug I discovered while trying to develop another
feature, so let's just get into the reproduction steps:
- Wear a modsuit and extend it's parts
- Put a jetpack in the suit storage slot and turn it on. Currently, the
only jetpack that fits in the storage slot on TG is the captain's
jetpack.
- While the jetpack is activated, deactivate your modsuit using the UI,
which stows the jetpack into your storage module automatically.
- This fails to unregister some signal thing because it can't find the
user.
My fix *could* be shitcode, so any feedback would be appreciated.
Jetpack activation and deactivation signals now pass a user.
`/datum/component/jetpack/proc/activate(datum/source, mob/user)`
`/datum/component/jetpack/proc/deactivate(datum/source, mob/user)`
Some jetpack `pre_move_react` thing now has a check to see if it's
argument is null.
```
if(!trail)
return FALSE
```
## Why It's Good For The Game
Stops a crash/runtime.
## Changelog
🆑 stonetear
fix: jetpack signals now pass a user argument. This fixes an error when
automatically stowing a captain jetpack into your modsuit.
/🆑
* Fixes stowing suit storage jetpacks when retracting modsuit chestplates
---------
Co-authored-by: Stonetear <89315023+Stonetear@users.noreply.github.com>
* Improves some confusing aspects of the Library (#75781)
## About The Pull Request
The barcode scanner now uses balloon alerts and only has 2 modes: check
in and add to inventory. It used to have 4, 2 of which were useless.
Added a title and author to chuuni granter so it's not broken to the
Curator's console. Moves inventory ui data stuff to ui static data so we
can reference it in checkout, which now uses a dropdown list of all
books in checkout, instead of having you fill out the name of the book
yourself.
Removes sending things to a computer by scanning a book then connecting
it to a computer. Just connect it to a computer first, there's no need
for this copy and paste stuff.
Finally, lets the book bag hold posters, since the Curator prints them
and it would be nice if they can also carry them without filling a bag.
Video was taken before the balloon alert stuff so just ignore that part
https://github.com/tgstation/tgstation/assets/53777086/e78011af-fb23-4553-a92d-f3dcc8bb5601
## Why It's Good For The Game
The library is currently very confusing for new people to figure out, I
thought this might be able to help with that.
The dropdown in the UI now means it's easier to give out books in
inventory, and you can no longer just type whatever the hell you wanted.
## Changelog
🆑
qol: The Curator's barcode scanner has been simplified into 2 modes:
check-in and add to inventory.
qol: The Book bag can now hold posters.
ui: The library console can now lend books out easier with a dropdown
menu to all inventory books.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Improves some confusing aspects of the Library
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Ejecting ink cartridge from airlock painter now requires proximity (#76092)
## About The Pull Request
Fixes#76073
## Changelog
🆑
fix: you need to be in proximity of the airlock painter to eject its
cartridge.
/🆑
* Ejecting ink cartridge from airlock painter now requires proximity
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Autopopulate bank account ID when linking (#75975)
## About The Pull Request
I have no idea how many times I've had to open memories to link my bank
account to my ID.
## Why It's Good For The Game
Your mob has a memory, use it and fill in the dialog box!
## Changelog
🆑 LT3
qol: ID card linking now preloads your bank account number
/🆑
* Autopopulate bank account ID when linking
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Changes the base amount of bone gel. (#75851)
## About The Pull Request
Changed the amount from 1 to 5 for original `bone_gel` so it's easier
for mappers to add the right bone gel.
Deleted subtype `/four` and added subtype `/one` specifically for bone
gel creating.
Increased from 4 to 5 because surgical tape has 5.
## Why It's Good For The Game
Having 1 bone gel near 5 surgical tapes always seemed off.
## Changelog
🆑
balance: Bone gel standart amount has been increased to 5.
/🆑
* Changes the base amount of bone gel.
* i am NOT a coder do NOT ask me what i did
---------
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
* Experimental Mineral Balance PR. (#75437)
Good morning fokes, this PR is going to attempt to tweak around some of
the values of mineral costs in-game in the hopes of making the mineral
economy more engaging to the base gameplay loop, in the hopes that by
making it more self-realized, it would allow for better integration with
the rest of the gameplay loop as well as so that it doesn't completely
overshadow the credit economy. That said, **this pr only makes changes
to mined and station minerals**.
So, the base change is as follows: items with designated costs of
minerals below 1000 minerals, as designated in #75052 as
`SMALL_MATERIAL_AMOUNT`, have been left alone. Any item above 1000 or
2000, from `HALF_SHEET_MATERIAL_AMOUNT` and `SHEET_MATERIAL_AMOUNT` have
been adjusted, as sheets will now contain **100 minerals each**.
For example, if an object costed 4000 iron, 1000 glass, and 500 diamond
with the old numbers, with the changes to these defines, that item would
cost 2000 iron, 500 glass, and 500 diamond.
* Experimental Mineral Balance PR.
* materials
* more mats
* more mats
* Update medical_designs.dm
---------
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Light replacer & item patches (#75960)
## About The Pull Request
Somehow this code break's every week, hopefully this should be the last
1. Fixes#75951
It wasn't just a problem with Jani Borg light replacer but the normal
one's too. Now they all accept glass sheet's & light tubes (including
broken one's) when you attack them with a light replacer and not just
when you pick them up with hand (which Borg's can't do obviously) and
then clicking them on the light replacer.
2. Glass sheet's & shard can be put inside backpack's or other storage
item's and now they will all be consumed from the storage and not just
light tubes & bulbs
3. Make's feedback message's more informative and display them for all
insert event. they weren't displayed when a broken light tube was put in
the light replacer
4. Only glass shards are accepted by the light replacer and not plasma,
titanium shards etc. we should not use `istype()` for this purpose
5. Removed redundant` Initialize()` proc from `obj/item/light`
6. VV editing var's works properly
7. Blue beam for bluespace light replacer last's just 0.5 seconds so it
doesn't look awkward
## Changelog
🆑
fix: light replacer accepts glass sheets & light tubes when you attack
them with a light replacer
fix: only glass shards can fill the light replacer not other shard types
qol: glass sheet's & shards inside storage items like backpacks are also
consumed when you attack the light replacer with it
qol: feedback messages when inserting lights, glass sheet's, shards into
the light replacer are more descriptive and displayed for all insert
event's
qol: blue beam for bluespace light replacer last's just 0.5 seconds so
it doesn't look awkward
refactor: renamed `add_shards()` to just `add_shard()` for adding 1
shard at a time
refactor: removed redundant` Initialize()` proc from `obj/item/light`
refactor: VV editing var's works properly
/🆑
---------
Co-authored-by: Time-Green <timkoster1@ hotmail.com>
* Light replacer & item patches
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Time-Green <timkoster1@ hotmail.com>
* Assistants get a liver trait + Officer's sabre banes against them (#75933)
## About The Pull Request
Assistants get a new liver trait, maintenance metabolism. This trait
only lets them process maintenance drugs, grey bull, and pump-up for 20%
more time and gives them a probably-positive 2 minute moodlet when
ingesting these.
The officer's sabre has gained a small amount of bloodthrist for
assistants!
Fixed liver masters being unable to inspect the liver of scientists.
## Why It's Good For The Game
> Assistants get a new liver trait, maintenance metabolism. This trait
only lets them process maintenance drugs, grey bull, and pump-up for 20%
more time and gives them a probably-positive 2 minute moodlet when
ingesting these.
This trait is pretty much entirely here for the actual
liver-identification of assistants the sabre uses, though I didn't want
to just add an empty trait so I gave it the above effects as pretty damn
harmless effects. I'm sure the maints will dislike even this so I'm open
to anything.
> The officer's sabre has gained a small amount of bloodthirst for
assistants! Or at least their livers.
I find the concept of the sabre having a bane against assistants
amusing, and it wouldn't hurt to give them something that may help
against tiders. As a smidgen of fairness, the detection is tied to the
liver - if they want to take less damage they can have it replaced,
though the captain can also help with that by disemboweling organs. The
liver being used for something that isn't reagents processing might be a
bit controversial, but like I said, I'd rather have that than have it
permanently, intrinsically tied to a job.
> Fixed liver masters being unable to inspect the liver of scientists.
Ballmer metabolism quacks like a duck, traits like a duck, and thus
should be able to be duck inspected by the duck master, since there is
no practical difference between it and other 'official' metabolisms.
## Changelog
🆑
add: Assistants get a new liver trait, maintenance metabolism. This
trait only lets them process maintenance drugs, grey bull, and pump-up
for 20% more time and gives them a probably-positive 2 minute moodlet
when ingesting these.
add: The officer's sabre has gained a small amount of bloodthrist for
assistants!
fix: Fixed liver masters being unable to inspect the liver of
scientists.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Assistants get a liver trait + Officer's sabre banes against them
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>