1270 Commits
Author SHA1 Message Date
nevimer 00ccf0c6b5 Merge remote-tracking branch 'tgstation/master' into upstream-feb12-2026
# Conflicts:
#	.github/CODEOWNERS
#	.github/workflows/compile_changelogs.yml
#	.github/workflows/stale.yml
#	SQL/database_changelog.md
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/__DEFINES/atom_hud.dm
#	code/__DEFINES/inventory.dm
#	code/__DEFINES/mobs.dm
#	code/__DEFINES/species_clothing_paths.dm
#	code/__DEFINES/subsystems.dm
#	code/__DEFINES/surgery.dm
#	code/__HELPERS/global_lists.dm
#	code/_globalvars/lists/maintenance_loot.dm
#	code/_globalvars/traits/_traits.dm
#	code/controllers/subsystem/minor_mapping.dm
#	code/controllers/subsystem/processing/quirks.dm
#	code/controllers/subsystem/shuttle.dm
#	code/datums/components/palette.dm
#	code/datums/components/surgery_initiator.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/hud.dm
#	code/datums/mood.dm
#	code/datums/mutations/chameleon.dm
#	code/datums/quirks/negative_quirks/nyctophobia.dm
#	code/datums/status_effects/debuffs/debuffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/slime/slime_leech.dm
#	code/datums/weather/weather.dm
#	code/game/data_huds.dm
#	code/game/objects/items.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/frog_statue.dm
#	code/game/objects/items/rcd/RLD.dm
#	code/game/objects/items/robot/items/hypo.dm
#	code/game/objects/items/stacks/medical.dm
#	code/game/objects/items/stacks/wrap.dm
#	code/game/objects/items/storage/garment.dm
#	code/game/objects/items/tools/medical/defib.dm
#	code/game/objects/items/weaponry.dm
#	code/game/objects/items/weaponry/melee/misc.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/game/objects/structures/curtains.dm
#	code/game/objects/structures/dresser.dm
#	code/game/objects/structures/girders.dm
#	code/game/objects/structures/maintenance.dm
#	code/game/objects/structures/mirror.dm
#	code/modules/admin/greyscale_modify_menu.dm
#	code/modules/admin/verbs/light_debug.dm
#	code/modules/antagonists/ashwalker/ashwalker.dm
#	code/modules/antagonists/heretic/knowledge/starting_lore.dm
#	code/modules/antagonists/ninja/ninjaDrainAct.dm
#	code/modules/art/paintings.dm
#	code/modules/client/preferences.dm
#	code/modules/client/verbs/ooc.dm
#	code/modules/clothing/head/wig.dm
#	code/modules/events/disease_outbreak.dm
#	code/modules/holodeck/holo_effect.dm
#	code/modules/jobs/job_types/head_of_security.dm
#	code/modules/jobs/job_types/security_officer.dm
#	code/modules/library/skill_learning/generic_skillchips/point.dm
#	code/modules/mining/lavaland/ash_flora.dm
#	code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/basic/guardian/guardian.dm
#	code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm
#	code/modules/mob/living/carbon/carbon.dm
#	code/modules/mob/living/carbon/human/human.dm
#	code/modules/mob/living/carbon/human/human_defines.dm
#	code/modules/mob/living/carbon/life.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob/living/living_defines.dm
#	code/modules/mob/mob.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mod/mod_control.dm
#	code/modules/mod/modules/modules_general.dm
#	code/modules/modular_computers/computers/item/computer_ui.dm
#	code/modules/paperwork/paper.dm
#	code/modules/paperwork/paperbin.dm
#	code/modules/power/lighting/light.dm
#	code/modules/projectiles/guns/energy/kinetic_accelerator.dm
#	code/modules/projectiles/projectile.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/food_reagents.dm
#	code/modules/reagents/chemistry/reagents/other_reagents.dm
#	code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
#	code/modules/research/xenobiology/crossbreeding/_clothing.dm
#	code/modules/research/xenobiology/crossbreeding/prismatic.dm
#	code/modules/surgery/advanced/brainwashing.dm
#	code/modules/surgery/advanced/lobotomy.dm
#	code/modules/surgery/amputation.dm
#	code/modules/surgery/blood_filter.dm
#	code/modules/surgery/bodyparts/_bodyparts.dm
#	code/modules/surgery/brain_surgery.dm
#	code/modules/surgery/cavity_implant.dm
#	code/modules/surgery/coronary_bypass.dm
#	code/modules/surgery/gastrectomy.dm
#	code/modules/surgery/healing.dm
#	code/modules/surgery/limb_augmentation.dm
#	code/modules/surgery/organ_manipulation.dm
#	code/modules/surgery/revival.dm
#	code/modules/surgery/sleeper_protocol.dm
#	code/modules/surgery/surgery_helpers.dm
#	code/modules/surgery/surgery_step.dm
#	code/modules/unit_tests/_unit_tests.dm
#	code/modules/unit_tests/designs.dm
#	code/modules/unit_tests/icon_state_worn.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png
#	icons/map_icons/clothing/head/_head.dmi
#	icons/map_icons/clothing/shoes.dmi
#	icons/map_icons/items/_item.dmi
#	icons/mob/huds/hud.dmi
#	icons/mob/inhands/64x64_lefthand.dmi
#	icons/mob/inhands/64x64_righthand.dmi
#	icons/obj/machines/computer.dmi
#	tgui/packages/tgui/interfaces/OperatingComputer.jsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/types.ts
#	tgui/packages/tgui/interfaces/SurgeryInitiator.tsx
#	tools/icon_cutter/check.py
2026-02-12 23:50:09 -05:00
ArcaneMusicandGitHub ea883deda7 Decreases multitool credit cost, increases quantity from vending machines. (#95076)
## About The Pull Request

Based on feedback from #94903, this PR decreases the cost of multitools
from the youtool vendor, as well as increases the quantity available
from the premium section from 2 to 4. The cost has been adjusted from
300 credits -> 150 credits each.

This change is being atomized out of the linked PR above, but is
otherwise relatively simple.

## Why It's Good For The Game

To quote the previous PR this was atomized out of:

> Multitools are considered to be standard job equipment for about 1/3
of the jobs on station, and the jobs that don't have multitools,
assistants included, typically will make obtaining one part of their
roundstart routine. It was looking into this that led me to learn that
multitools are currently sitting at 300 credits, which, while expensive,
just means that roundstart players are more tempted to just break into
or ask cargo/engineering for a multitool instead of ever buying one, and
for good reason. It's too good to pass up, especially when it's only one
door or plastic flap away for most players.

> So, to try and incentivize people to buy them from vendors over the
alternative, I've decreased the price to be within the range for regular
crew, but expensive enough for assistants so that they're encouraged to
look for/make a few credits, or wait a moment or two before they jump
into them.

## Changelog

🆑
balance: Multitools cost has been decreased from youtool vendors, and
their stock increased (150 credits, 4 stock).
/🆑
2026-02-08 14:15:01 +11:00
JusticeandGitHub f4faf53519 Adds lemon juice box :D (#95060)
## About The Pull Request
Adds lemon juice box to the game
## Why It's Good For The Game
Lemon juice box joins the orange juice box and lime juice box gang
<img width="320" height="320" alt="lemonboxdisplay"
src="https://github.com/user-attachments/assets/daae0355-10c5-43bf-ae3c-08855d80e0f1"
/>
## Changelog
🆑
add: Added lemon juice box
/🆑
2026-02-01 18:55:33 -05:00
NickandGitHub 12fabce357 Katanas now have their own respective sheaths, adds leather crafting recipes for katana sheaths (#94939) 2026-01-28 13:09:44 +02:00
MrMelbertandGitHub 596b785ec5 More medical larp: Stasis bodybags and triage cards (#94709)
## About The Pull Request

1. Adds stasis bodybags, unlocked with cryogenics tech 

These bodybags are portable forms of stasis. However, they wear down
with use, only being able to keep someone in stasis for about 2, 3
minutes before falling apart.

Bodyparts and organs put in the bodybag are also frozen, allowing you to
maintain parts of gibbed people.

You can med scan through the walls of the stasis bag as well. Also you
can med scan through holographics bodybags.

2. Adds triage cards to the medical vendor

Triage cards are small pieces of paper you can write on and stick to
people. They're color coded according to severity, and are intended to
be used in mass casualty events for prioritizing patients.

3. You can pin paper to bodybags

You can pin a sheet of paper to bodybags that people can read, be it
autopsy or whatever.

4. Updates paper interaction code slightly

We have new procs for allowing interactions rather that snowflakes

5. Other forms of stasis apply tumor suppression

Oversight?

## Why It's Good For The Game

I made these a while back to just give medical doctors a few more tools
to play around with beyond the meta tools. Just to get more immersed
into the larp.

Otherwise, stasis bodybags gives Paramedics a tangible upgrade(if you
can call it that), offering a safer way to retrieve patients

## Changelog

🆑 Melbert
add: Adds stasis bodybags, unlocked with cryo tech. They put its
occupants (organ or mobs) in stasis, but wear down over time.
add: Adds triage cards to the medical vendor, a flavor item docs can use
during mass casualty events.
qol: You can pin papers to closed bodybags. Keep organized with your
autopsies.
qol: You can interact with papers in folders and on clipboards
qol: All forms of stasis stop brain tumors
/🆑
2026-01-17 10:37:49 -07:00
FalloutFalconandGitHub 69fac0225b Adds teto (outfit) (#94795)
## About The Pull Request
Adds a red preformer while respriting the old one at it had a ton of
minor issues we did not want to carry over.
Made with ALOT of help from @Major00
I did no re-sprite the yellow one as no body cares about them anymore
and I already sank a day into this

<img width="188" height="97" alt="image"
src="https://github.com/user-attachments/assets/fe4b5d30-df09-4dcf-8188-1334185f2223"
/>
<img width="512" height="264" alt="image"
src="https://github.com/user-attachments/assets/f0920acb-0f35-485c-9ca3-4dc96a4db525"
/>

## Why It's Good For The Game

Old sprite was old(or alteast looks old) and has design issues.
<img width="672" height="176" alt="image"
src="https://github.com/user-attachments/assets/49b1bc3d-3abd-4488-b59a-9eada433c01a"
/>

- a diffrent color for almost every pixel  
<img width="1187" height="666" alt="image"
src="https://github.com/user-attachments/assets/a7723ce8-67d1-4c18-bd17-2379c4aa0ba7"
/>

- pixel sticking out of boot 
<img width="480" height="400" alt="image"
src="https://github.com/user-attachments/assets/db0c3d97-0f0e-46d1-82ee-d84afe37cadc"
/>

- side sprite boots and therefore skirt were taller then north and south
- the little keyboard design on her sleeve was not consistently placed
- the sash thingy on her skirt is way too big compared to reference
images.
- her little name tag on her shirt does not read well on this tiny
sprite
- for some reason it has like, suspenders in the back

Teto is awesome and cool and epic and way more popular then the yellow
one i already forgot the name is. Why is it not in space as well.
<img width="47" height="49" alt="image"
src="https://github.com/user-attachments/assets/48e4078f-7767-4a3a-823f-986624619d45"
/>
<img width="72" height="79" alt="te_to"
src="https://github.com/user-attachments/assets/2a2f0601-6720-4c18-bda5-8de7ae4845d4"
/>


## Changelog
🆑 FalloutFalcon, Major00
add: Adds Teto (Outfit), found in the autodrobe
image: Resprited Miku outfit and fixed minor issues with it
/🆑
2026-01-10 18:33:04 -05:00
d5102b2030 Void stamp integration - the stampening (#94359)
## About The Pull Request

Void stamp added to bureaucracy loot spawners, a new box that contains a
granted, denied, and void stamp found in the lawdrobe, hop locker,
bureaucracy crate, mod stamper module, and the paperwork implant gets a
stamp that can cycle between 3 different ones like the mod stamp.

## Why It's Good For The Game

Finally the void stamp is obtainable

## Changelog

🆑
add: The void stamp is now obtainable
add: The lawdrobe now sells a box of stamps
add: The head of personnel's locker now contains a box of stamps
fix: The mod stamper module is now visible
/🆑

---------

Co-authored-by: Fghj240 <fakeemail@notrealemail.com>
2026-01-08 18:31:15 +00:00
Tad HardestyandGitHub 4d7b9be4a2 Fix a variety of grammar errors (#94707)
* Fix uncapitalized sentences, lack of "the", and singular/plural mixup
when inserting items into lathes
* Conform some job descriptions to the pattern used by the majority:
bitrunner, chemist, coroner, janitor, RD, shaft miner
* Remove extra colon from "Open Special Role Information" action buttons
* Uncapitalize "no alerts" / "systems nominal" messages in atmos and
station alert consoles
* Fix incorrect feedback when wrenching down a freezer/heater with its
panel open
* Fix "Thank you for restocking the station!" appearing in the wrong
place in the cargo export summary
* Fix "pizza boxs" on cargo manifests
* Fix mid-sentence capital "The" when:
  * Examining walls with mounted items
  * Inserting parts into machine frames
* Fix "Pete's the udder"
* Fix double-"the" and stringified datum typepath when scooping reagents
* Fix missing spaces in door remote descriptions
* Fix uncapitalized "Nanotrasen" in emergency respone drone ghost role
poll
* Fix double-space in canister opening admin log
* Fix missing "the" when casting bear-form spell
* Fix "auxiliry" in NebulaStation airlocks
* Add `check_grep.sh` rules against "maintainance", "maintainence", and
"maintenence"
* Fix "maintainance" in NebulaStation airlocks, TCG cards, and in
examines of netpod, byteforge, quantum server
* Fix "maintainence" in examines of autolathe, flatpacker, cryo cell,
ore silo, floodlight, power storage unit, turbine, chromatography
machine, ChemMaster, all-in-one grinder, smoke machine, R&D machines,
vending machines
  * Fix "maintenence" in Sulaco ruin terminal
* Add missing periods to:
  * "That's X." examine block header
  * steal objective explanation text
  * atmospheric shield generator examine
  * autolathe examine
  * telescreen examine
  * accidentally stepping on a mousetrap
  * netpod examine
  * byteforge examine
  * hat/mask visor toggling
  * bizza box stack examine
  * ChemMaster 3000 examine
  * floodlight examine
  * power storage unit examine
  * ChemMaster interact messages
  * disposal bin animal eject message
  * techfab examine
  * vending machine examine
  * flatpacker examine
* Fix name capitalization/propriety of:
  * big manipulator
  * DeForest first aid station
  * Christmas tree
  * Thunderdome plaque
  * commission plaque
  * chalkboard coffee menu
  * experimental destructive scanner
  * scanner array
  * prison cube
  * RaptorDex
  * atmospheric shield generator
  * high-performance liquid chromatography machine
  * all-in-one grinder
  * keycard authentication device
* Fix plurality of:
  * fake stairs
  * HUDs
  * restaurant and bar seating
* Fix misc grammar/typos in:
  * recharging station description
  * worm description
  * surgery tray description
  * access failure message of restaurant portal
  * mysterious pillar description
  * Pennywise painting description
  * floodlight examine
  * power storage unit examine
  * flatpacker examine
* Remove extra newline from "Debug Z-Levels" verb
2026-01-03 21:34:59 -07:00
3799968eb3 feat: new floppy disk sprites; most disks are now under the /item/disk type; adds disk stacking, uqinue styling and wrapping (#94112)
## About The Pull Request

Floppy disks received a sprite upgrade, as well as unique wraps:

<img width="364" height="150" alt="image"
src="https://github.com/user-attachments/assets/0ac433e3-7432-4c06-bec2-aeae00b6852f"
/>

<img width="786" height="527" alt="image"
src="https://github.com/user-attachments/assets/0f36bd0d-0362-4431-8131-49060a2fe348"
/>

You can now stack floppy disks! They also scatter around when thrown.
The video also showcases new styling options with a selection of
stickers! You can also write something on the disk instead of selecting
an icon:


https://github.com/user-attachments/assets/ff0a8542-9d79-4108-ae46-672ca5d620a2

MOST disks now inherit the `/item/disk` type to properly stack and do...
stuff. An updatepaths script included.

## Why It's Good For The Game

Old school is cool. Stacking disks makes them feel more authentic, while
styling allows for more crearivity!

## Changelog

🆑
add: New unique wraps for floppy disks
qol: Floppy disks can now be stacked
image: New sprites and stickers for floppy disks
map: Added and ran an updatepaths script
refactor: Most disks are now under the base disk item type
/🆑

---------

Co-authored-by: The-Tyrant <tyrantofgaming@gmail.com>
2026-01-04 08:52:18 +13:00
nevimer 6e9f2ccfc0 Merge remote-tracking branch 'tgstation/master' into upstream-12-15
# Conflicts:
#	.github/workflows/compile_all_maps.yml
#	.github/workflows/run_integration_tests.yml
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/_onclick/hud/credits.dm
#	code/controllers/subsystem/networks/id_access.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/game/machinery/doors/door.dm
#	code/game/objects/structures/crates_lockers/closets/secure/medical.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/modules/antagonists/malf_ai/malf_ai_modules.dm
#	code/modules/jobs/job_types/_job.dm
#	code/modules/loadout/categories/accessories.dm
#	code/modules/loadout/loadout_helpers.dm
#	code/modules/loadout/loadout_items.dm
#	code/modules/loadout/loadout_preference.dm
#	code/modules/mob/living/silicon/robot/robot_defense.dm
#	code/modules/mod/mod_theme.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/reagents/reagent_containers/cups/drinks.dm
#	code/modules/shuttle/mobile_port/variants/supply.dm
#	code/modules/surgery/organs/internal/eyes/_eyes.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_heretic.png
#	icons/hud/screen_full.dmi
2025-12-15 18:12:29 -05:00
shayoki 739a897e5f merging with current 2025-12-14 03:25:39 -06:00
FalloutFalconandGitHub d25c6201f4 Standerdizing currency symbols Part 2 (#94259)
## About The Pull Request
Converts almost all non-constant, non-tgui usages of all variantions of
"credit" and "cr"

Everything seems in order, tested most the currencies.
<img width="905" height="119" alt="image"
src="https://github.com/user-attachments/assets/3fa005a7-a114-426c-9646-b81f68bc2dec"
/>
<img width="255" height="128" alt="image"
src="https://github.com/user-attachments/assets/14c83b54-4fd9-4bee-838f-5b1c03939d9a"
/>


## Why It's Good For The Game
Same justification as https://github.com/tgstation/tgstation/pull/94128
Just easier to mantain/adjust the grammer/names of our money
## Changelog
🆑
spellcheck: minor cleanup on some usecases of "credits"
/🆑
2025-12-13 21:00:19 -05:00
AlexisandGitHub 1c3db82004 Removes the Imperial/Naval Hats and Jumpsuits (#4981)
## About The Pull Request
Does as the title suggests. I am pretty impartial to these existing, so
long as they get a resprite, and get proper digitigrade leg sprites
before they make a return. If anyone is super attached to the hats, let
me know in the comments, and I'll remove them from this PR. I only
included them with this due to it feeling silly to only have the hats
without the uniforms.
## Why It's Good For The Game
I am normally a firm believer in "Improve. Don't remove." but these
sprites lack digitigrade sprites and their own sprites have clearly not
been touched up in quite some time leads me to believe they are being
unmaintained and would best be removed for the time being.
## Proof Of Testing
It compiled. If CI passes it should work.
## Changelog
🆑
del: Removed the imperial/naval hats and jumpsuits.
/🆑
2025-12-09 11:10:50 -08:00
49d2f1f3c9 Adds the Modular Suit (Or Portable Suit) (#93776)
## About The Pull Request

First, boring stuff.
The "Modsuit equipment" techweb node has been split into two nodes, with
the additional node containing the more civilian MODules (And the new
plating), and costing 20 points.
A new "Perfumer" MODule has been added(not printable anywhere, but in
the new suit by default) that just cleans you.
The MODsuit being added has been added to the LawDrobe's premium
section, for 300 credits.

Now, the real addition.

This adds a MODsuit that is a modular suit, that is to say, a suit, tie,
shoes and glasses. The glasses aren't actually real flash-proof
sunglasses by default, but the welding protection module can be added.
The suit is obviously not space-proof, and offers no protection to
anything but biohazards. The suit has 10 complexity max, due to the fact
that most modules don't have a point on it. This is subject to change.

The pre-made one also has the stamp and paper dispenser MODules
pre-installed, which are both now activateable via the neck slot.

The suit control unit is the tie. 

## Why It's Good For The Game

Have you ever been called to court, but you didn't have a nice suit, so
the judge holds you in contempt and sends you to jail? Well, never
again. Gone are the days that you cause two innocent boys to almost be
executed for a crime they didn't commit simply because you don't have a
nice suit. With the Moonraker Conglomerate's newest export in your
hands, you'll never be the less formal one ever again. No matter the
occasion, you're never more than a few moments away from
self-representing.

Video of the fit:



https://github.com/user-attachments/assets/44d08ca8-9ae1-4887-81e6-cec11792132e

It's the same look as a suit jacket, white tie, sunglasses and laceup
shoes. You must get a matching jumpsuit of your own.

I think it's neat, and it's a damn shame that there's not a single
MODsuit that isn't just head gloves suit shoes. All these MODules which
are activateable from head, mask or glasses, and no suits that allow it.
Missed opportunity, I'd say.

Also, lawyer buff. Need I say more?

## Changelog
🆑

add: Added a modular SUIT, a deployable, one-piece three-piece suit.
Purchasable from the LawDrobe.
balance: The MODsuit equipment techweb node has been split in two, with
an offshoot for civilian MODules.

/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2025-12-02 17:42:15 -07:00
FalloutFalconandGitHub c04168e81f Standerdizing currency symbols (Part 1?) (#94128)
## About The Pull Request
Passes a standardized define into some of the tgui to parody behavior
with vending machines.
Adds a few defines for money symbols to make it easier to rework types
of money.

If yall are for this I can also go through and find and replace a ton of
strings and other tgui with these, but dont want to sink 2 much time
into it if not.

<img width="966" height="646" alt="image"
src="https://github.com/user-attachments/assets/2d4753be-7e5d-4733-acf8-05f354127a6a"
/>

Proof of concept if Nanotrasen was not an evil conglomerate and the
dollar never went out of style
<img width="1009" height="661" alt="image"
src="https://github.com/user-attachments/assets/e68bfcd3-4053-4641-9b28-f384f2cb049b"
/>

some broken shit here but 99% thats cause minimal runtime station does
not support the supply console
<img width="795" height="767" alt="image"
src="https://github.com/user-attachments/assets/30dbd625-5338-4dc3-80db-922ff045f0f0"
/>
2025-11-30 13:50:20 -06:00
nevimer baf3837ae8 Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
2025-11-29 22:49:21 -05:00
SyncIt21andGitHub db5e36e7b4 Fixes custom vendor not sanitizing item names (#94191)
## About The Pull Request
- Fixes
https://github.com/tgstation/tgstation/pull/91987#issuecomment-3573314355

Strings such as `\improper` and other non alphanumeric characters that
are stripped out when sent to the UI are now discarded so we don't end
up with malformed hashes

## Changelog
🆑
fix: items such as dna injectors and others that have strange characters
in their names can now be dispensed from custom vending machines
/🆑
2025-11-28 13:19:09 +01:00
Thunder12345andGitHub ae9183c32c Repaths green "captain" suits to not be real captain clothing (#94014)
## About The Pull Request

Repaths the green captain suit and its skirt version to be costumes
instead of real captain clothing, as this is in line with how they're
used and makes them not have the armour of real captain clothing.

Deleted an unused identical copy of the same suit.

Fixes #93972

## Why It's Good For The Game

These are costumes and it's inconsistent for them to have armour values.

## Changelog
🆑
fix: The captain suit costume (green suit) no longer has the same armour
as real captain outfits.
/🆑
2025-11-26 13:40:41 +11:00
371e9cb281 Gives the bartender a service plumbing constructor. (#93928)
## About The Pull Request

Puts one service plumbing constructor in bartender's wardrobe vendor
Lets plumbing constructors actually build the chemical teleporters
(before this only the sender could be made)

## Why It's Good For The Game

An alcohol factory isn't anything game changing. Not forcing the
bartender to wait for very niche research nobody will ever do to play
with it is a good thing

## Changelog
🆑 Cat
balance: Bartender's wardrobe vendor starts with a service plumbing
constructor
/🆑

---------

Co-authored-by: John Doe <markkavalerov87@gmail.com>
2025-11-24 09:47:14 -05:00
Roxy 71faa643bf Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-12 2025-11-12 16:44:13 -05:00
Matrix (Selena Rohrmann)andGitHub 79e6d18464 New recolorable cape in the ClothesMate (#93795)
## About The Pull Request

A new recolorable cape in the clothesmate, called the robe cape.
<img width="398" height="241" alt="cape"
src="https://github.com/user-attachments/assets/68d51edd-93b3-4038-a444-b187aa29dc9d"
/>

<img width="157" height="156" alt="detective"
src="https://github.com/user-attachments/assets/3200d77f-ee3d-472a-8432-74999d3fd3e0"
/>

## Why It's Good For The Game

Capes and cloaks look incredible and the only one we have right now is
an owl cloak. This cape exposes one arm and shows off more of your
suit/arms than other capes do, and it's also colorable so you can adjust
it to suit your style. It's the best one I've seen and if people like
it, I might port more capes and accessories.

It was tough to track down the original spriter, I believe the cape was
brought from Nova to Monke.

## Changelog

🆑
add: Added a recolorable cape to the ClothesMate accessories section
/🆑
2025-11-11 22:00:55 +01:00
necromanceranneandGitHub b489a46a0b Also makes sure vendors respect interaction blockers. (#93821) 2025-11-08 13:48:46 +01:00
Roxy e28e9fbdba Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 2025-10-23 17:38:23 -04:00
200d6b52d2 Commencing Virtuous Mission: MGS 3 Stealth Suits (#4747)
## About The Pull Request

<img width="195" height="177" alt="image"
src="https://github.com/user-attachments/assets/af6505b9-1036-41d0-98c7-04df08cb01ed"
/>

## Why It's Good For The Game

I love Metal Gear Solid 3. I'm not a very emotional person. But Metal
Gear Solid 3's ending, Snake's debriefing specifically brings me to
tears whenever I think about it.

With MGS Delta releasing, I thought about it again. So I commissioned
Crumpaloo, and took ~~another Doppler~~, (correction, the bandana is by
~~Alterist~~ Kuro020, how have I got credit wrong three times, of TGMC)
sprite to bring the legendary soldiers together. The Mother of Special
Forces and the Man Who Sold the World.

Armored varients are in the Syndi/Sec drobe while unarmored variants are
in the Autodrobe.

## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>

## Changelog
🆑 TheSelfish, Crumpaloo, Alterist and Hideo Kojima
add: Sing. Sing a song. Straight from Soviet Russia, don the iconic
gears of the Legendary Soldiers, Naked Snake and The Boss. Unarmored
variants in a Hacked Autodrobe, Armored in a hacked Security Drobe and
Syndidrobe respectively.
/🆑

---------

Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
2025-10-23 03:08:49 +03:00
CursorandGitHub 1f342e1a21 Shifts some stuff around in the Autodrobe (#4829)
## About The Pull Request

Title. I just moved the Clown stuff from the main part to the bit with
the rest of the Clown stuff.
## Why It's Good For The Game

Org.

## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>

## Changelog
🆑
code: Clown stuff is properly grouped in the Autodrobe.
/🆑
2025-10-22 03:06:53 +03:00
SyncIt21andGitHub b6faafdcb2 Fixes custom vendor item interaction (#93500)
## About The Pull Request
- Fixes #93498

## Changelog
🆑
fix: restores custom vendor item interaction behaviors
/🆑
2025-10-19 04:55:44 +02:00
L0pzandGitHub 0df0ef5b7b Adds purity seals (#93496)
## About The Pull Request

Adds purity seals for the chaplain's use. Calling them cheap stickers
may get you branded as a heretic.


## Why It's Good For The Game


Sometimes people need more than just your word that their lead pipe has
been blessed by you, the most holy chaplain. That's where the purity
seals come into play, as they are a visual indicator of your deity's
approval.
<img width="259" height="182" alt="image"
src="https://github.com/user-attachments/assets/5492bae8-175a-4387-9279-263fbb492510"
/>


## Changelog
🆑
add: Added purity seals, which may be found inside two boxes being sold
by the Deus-Vend
/🆑
2025-10-19 02:16:19 +03:00
Leland KembleandGitHub 348789fa8d The Renamening- upgrades UNIQUE_RENAME and moves a lot of renaming implementations under it (#93115)
## About The Pull Request

Moves a lot of the unique renaming implementations described in #82664
to the functions given by the `obj_flag` `UNIQUE_RENAME`.
`UNIQUE_RENAME` has been given new properties to account for
non-standard renaming, these being the `RENAME_NO_DESC` flag that
prevents changing the description, the `nameformat()` and `descformat()`
procs that, when modified, allow for applying naming formats(i.e. "Body
Bag - [input]"), as well as other post-renaming handling such as
changing the name of the output plant of a renamed seed, the
`rename_checks()` proc that allows for unique naming prevention(such as
a locked personal closet), and the `rename_reset()` proc to clean up
other possible renamed variables potentially changed in `nameformat()`
and `descformat()`.

This also adds `/datum/element/tool_renaming` to crayons, which will let
them rename anything that has `UNIQUE_RENAME`. I looked through
everything with that flag, and I didn't see anything that I don't think
should be renameable by a crayon(except things that shouldn't be
renamable with pens), so it shouldn't fuck anything up.

## Why It's Good For The Game

moves all of the non-honorable mentions in #82664 to the same renaming
system, and also moves all of the honorable mentions save for:

- plaques, as they only get renamed once and wouldn't benefit from
`UNIQUE_RENAME` imo
- books, because they're far more than just renaming, and are persistent
- paintings, because they're persistent
- photos, because they're not normal renaming and they're persistent
- endoskeletons, because they're done with a multitool in UI
- cardboard IDs, because they're far more than just renaming

Additionally, this fixes:

- Implanter renaming didn't work because a ! was missing
- Clown borg picket sign renaming didn't work because they didn't use
the correct arguments

This'll make it easier to make renameable objects in the future, as
well.

## Changelog
🆑

fix: fixes implanter renaming not working
fix: fixes clownborg picket sign renaming not working
code: brought most unique renaming implementations under UNIQUE_RENAME

/🆑
2025-10-17 01:56:09 +02:00
Roxy d14e538393 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 2025-10-15 19:34:41 -04:00
RoxyandGitHub 436f766c3b Modular vending machine code cleanup (#4791)
## About The Pull Request

This is a general clean up of some of our modular vending machine code,
highlights are:
- Merges the skyrat `modular_vending` folder into our own
- Eliminates the `skyrat_products`, `skyrat_product_categories`,
`skyrat_contraband`, and `skyrat_premium` vars, merge their stuff into
the bubber equivalents
- Changes the handling for modular autodrobe additions to just add them
to the global list because the autodrobe uses global lists for some
reason, this fixes #4758
- Change a `+=` to `|=` to prevent duplicate entries in vending machines
causing both to appear out of stock
- Fix a duplicate recolor button in the vending machine TGUI

## Why It's Good For The Game

Less duplicate code and bugs, the autodrobe one in particular was funny
because what was happening is the category lists of items were global
lists, and the modular code for adding our own stuff to categories just
`+=` adds it, and that runs every time an autodrobe is created on the
map, so each time the same stuff was being added to the same list and
bloating it to several hundred

## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

<img width="425" height="559" alt="image"
src="https://github.com/user-attachments/assets/e9ab16ed-3c7c-4061-90d5-dc27a7d8a40e"
/>

</details>

## Changelog
🆑
fix: fixed the autodrobe being mostly out of stock and broken
fix: fixed certain vending machines having duplicate items that broke
fix: fixed a bug with the recolor button in vending machines appearing
twice
code: merged modular skyrat vending machine code into our folder
/🆑
2025-10-08 14:28:49 -04:00
dieandGitHub 0204ab8fdd Canreach refactor (#93165)
## About The Pull Request
ports https://github.com/DaedalusDock/daedalusdock/pull/1144
ports https://github.com/DaedalusDock/daedalusdock/pull/1147

full credit to @Kapu1178 for the juice

instead of `reacher.CanReach(target)` we now do
`target.CanBeReachedBy(reacher)`, this allows us to give special
behavior to atoms which we want to reach, which is exactly what I need
for a feature I'm working on.
## Why It's Good For The Game
allows us to be more flexible with reachability
## Changelog
🆑
refactor: refactored how reaching items works, report any oddities with
being unable to reach something you should be able to!
/🆑
2025-10-07 20:28:59 +02:00
CursorandGitHub 677171718e Gives the Aerostatic Boots storage (#93306)
## About The Pull Request
Title.

## Why It's Good For The Game

Boots should be consistently storable.

## Changelog
🆑
qol: Aerostatic Boots now have storage, as they're boots actually.
/🆑
2025-10-06 02:53:14 +02:00
347c34bb15 Card Shoes! (and misc. card related bugfixes) (#93010)
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2025-10-05 12:51:29 +11:00
xPokee 8aa39b75f0 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-10-04 05:28:09 -04:00
KrysonismandGitHub def17fd90a Rare Earths! Advanced soils for botany. (#92513)
## About The Pull Request

This PR adds 4 new types of soil and a holder item; the soil sack, to
contain and transport said soils.

<img width="496" height="378" alt="bild"
src="https://github.com/user-attachments/assets/57f42a9c-c731-4195-91df-b4456ec45e7b"
/>

Two of the new soils + the regular old soil are available in the premium
section of the nutrimax.

All 5 soil types are available from cargo. 

It also adds two new plant traits; soil lover and semiaquatic, that
allows coders to confer maluses to plants growing in trays or soil
respectively.

Potatoes, sweet potatoes, carrots, parsnips, cahn'roots, white and red
beets currently have soil lover, reducing their produced yield by 30%
and their potency randomly between 20-80% if grown hydroponically.

Rice has semiaquatic which increases the amount of weeds gained by 50%
if grown in soil rather than hydroponically.

## Advanced soil types

### Vermaculite
  #### Stats
    Max Nutrients: 20u
    Max Water: 150u 
  
  #### Special Effects
Multigraft: Up to 3 grafts can be cut from a plant planted in
vermaculite.
Graft Medium: Graft cuttiongs can be directly placed into vermaculite to
create a new plant vegetatively.

### Hydrogel Beads
  #### Stats
    Max Nutrients: 15u
    Max Water: 300u
  
  #### Special Effects
Hydroponic + Soil: Both water loving and soil loving plants can grow
without maluses.
    Super Water: Water consumption rate is decreased by 50%

### Korta Coir
  #### Stats
    Max Nutrients: 20u
    Max Water: 100u
  
  #### Special Effects
Fast Mushrooms: Mushrooms mature(and age) 40% faster if planted in this
soil.

### Worm Castings 
  #### Stats
    Max Nutrients = 35u
    Max Water = 200u
  
  #### Special Effects
Slow Release: If the nutrients run out, 1u nitrogen will be
automatically added to the nutient pool.
Worm Habitat: Composting veggies in this soil has a chance to produce an
extra slimy worm.

### Soil Sacks

Use them on the floor to place a soil at that location. 

You can reverse this process by right clicking a soil with a shovel.

The sacks are huge items that deals stamina damage, but have slowdown
when carried.

They can be wielded to remove slowdown, double the damage output and
gain 25% block chance.

They have unique normal and wielded inhands for each sack type.

#### Price List

**Soil**
  Nutrimax: 50 cr
  Cargo: 400 cr /  5 sacks

**Vermaculite**
  Nutrimax: 100 cr
  Cargo: 400 cr / 3 sacks

**Hydrogel**
  Nutrimax: 100 cr
  Cargo: 400 cr / 3 sacks

**Coir**
  Nutrimax: N/A
  Cargo: 600 cr / 3 sacks

**Worm Castings**
  Nutrimax: N/A
  Cargo: 800 cr / 3 sacks

#### Misc Soil Changes

Soil now have a new armour type and are generally much harder to destroy
by shooting or bashing them.

Fixed a bug where weeds would instantly reduce yield to 3 instead of
lowering it by 1-2 per cycle.

## Why It's Good For The Game

I have long been a fan of using soils in botany, they are the cheapest
and easiest way to make new trays and enable many interesting
strategies.

The default soil is fine for what is but it kinda sucks, not only having
low stats but also missing autogrow, a feature botanist have grown
completely addicted and dependent on.

When self sustaining trays were removed and autogrow added, it was
intended as a way to keep a couple of plants alive while you ran out to
do errands or grab a drink.

However, the feature has devolved into basically a shift start self
sustaining for all your trays and standard practice is using it on every
single tray that currently is not trying to mutate.

This has resulted in certain core botany mechanics like water and pests
being made totally irrelevant, shrinking design space a lot.

Rather than just reaching for the stick, I thought it would be fun to
instead offer them a carrot in the form of an expanded toolset of soils
with unique effects that cannot be replicated by trays.

These new soils offer niche benefits that enable advanced botany
gameplay and provides a framwork for deepening plant / tray interactions
in the furture.

## Changelog

🆑
add: Added 4 new types of soil
add: Added soils sacks to the nutrimax
add: Added soil sack crates to cargo.
balance: Soil now has higher armor values.
balance: Rice now gets more weeds if grown in soil.
balance: Carrots, potatoes, beets and their mutations now get reduced
yield and potency if grown hydroponically.
fix: Weed overgrowth no longer instantly sets yield to 3.
/🆑
2025-10-04 05:01:26 +02:00
xPokee 5e629dff04 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-10-03 07:05:54 -04:00
KrysonismandGitHub 075de00420 Chekov's Canister! Adds missing resupply canisters, makes them constructable & spawn in maint,. (#93028)
## About The Pull Request

This is was created because I found several rare and exciting canisters
in game and then finding out there is no way to actually construct the
vendor they belong to!...

<img width="768" height="385" alt="image"
src="https://github.com/user-attachments/assets/70261cea-daaf-41df-a212-21cef6d6bd0c"
/>

### This PR:

* Makes all noteable vendors constructable, if you have the canister. 
* Adds canisters to syndismokes, syndiechem, liberation station,
magivend, shambler's juice and bombuddy
* Replaces the old tptally random canisters spawner, with a variety of
spawners weighted for power and split according to different themes.
* Adds the new main canister spawner to maint. 

### Spawner weights

The random canister spawner from maintenance has a:

* **93,5%** chance to spawn a common station vendor refill(with weights
for wardrobes being somewhat reduced.)
* **6%** chance to spawn a rare and special vendor refill.
* **0.5%** chance to spawn a oddity level., super powerful vendor
refill.

## Why It's Good For The Game

One must never place a filled canister in maint if it isn't going to be
constructed It's wrong to make promises you don't mean to keep.

## Changelog

🆑
add: Nearly all notable vendors are now constructable if you have the
canister.
add Added refill canisters for syndiesmokes, liberation station,
magivend, bombuddy 3000, shambler's juice and syndichem.
add: Random vending refill canisters now have a chance to spawn in
maint.
image: Robco Toolmaker and Centdrobe canisters have new sprites.
/🆑
2025-10-02 20:12:46 +02:00
59b5aa3fdd Fufills a promise I made to Aeri like a year ago by adding Cat Gloves [READY] (#4692)
## About The Pull Request
i also capitalised loadout stuff properly, moved unmodular stuff into
modular vendors and put the tojo suit into the clothing files instead of
it's own module
## Why It's Good For The Game
custo


<img width="126" height="137" alt="image"
src="https://github.com/user-attachments/assets/ed354204-67b1-4edd-bf44-5ab5d1e06ae7"
/>
(fixed the sprite later pinkie swear
<img width="108" height="130" alt="image"
src="https://github.com/user-attachments/assets/6d72c8ba-c486-4195-b472-5a8c96463575"
/>
)

## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>

## Changelog
🆑
add: nyaa nyaa, cat gloves are in the clothesmate
add: loadout items are properly in vendors
fix: reverted a unnedded unmodular change
spellcheck: loadout's properly capitalised again
/🆑

---------

Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
2025-09-20 23:18:12 -07:00
xPokee 9b282a850e Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-17 11:45:44 -04:00
CursorandGitHub 236982b1ec Ports GAGS Ushankas from Nova (#92981) 2025-09-17 08:44:11 +02:00
SyncIt21andGitHub 31b021559a [NO GBP] Restores old vending machine interaction behaviour (#92969)
## About The Pull Request
- Fixes
https://github.com/tgstation/tgstation/pull/91987#issuecomment-3287759198
and other behaviour that i forgot to put back

## Changelog
🆑
fix: vending machines now randomly shock if electrified & can be
untilted again by hand
/🆑
2025-09-15 16:40:11 -07:00
FalloutFalconandGitHub d2f34e33be moves abstract_type up to datum, spawners wont spawn them (#92909)
## 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/4621



https://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.
/🆑
2025-09-13 00:36:15 +02:00
xPokee 939f2fc9ac Merge branch 'master' of https://github.com/tgstation/tgstation into xpokee-test-upstream-sync 2025-09-10 14:12:16 -04:00
nikothedudeandnevimer ee99d0e5b0 Asthma quirk, inhalers - Electric Boogaloo (#92747)
## About The Pull Request

Revival of https://github.com/tgstation/tgstation/pull/79691

A while back, I made this PR, but lost motivation after diving too deep
into the code soup of can_breathe and related procs. Now, I have removed
those parts, and have simplified that part of the code to the point I
think it's ready for review.

Many reviews from the previous PR have been addressed in this PR.

<hr>

<details>
  <summary>Details</summary>

Asthma is a 4 point negative quirk that emulates real life asthma. It
works by slowly decreasing the amount of pressure each breath you take
receives, until your lungs completely seal, ensuring death if you dont
get oxyloss meds/windpipe surgery.

Inflammation (the tracker for intensity) increases whenever you breathe
smoke, use a cigarette, metabolize histimine, or suffer an asthma
attack.

Asthma attacks have a low chance of happening every second, starting 10
minutes after you spawn and with a 20-30 grace period between attacks.
They are "diseases" that cant be outright cured by albuterol, only put
into remission. They increase inflammation at varying rates depending on
their severity, with extreme asthma attacks being a immediate threat to
your life while mild ones might not even cause inflammation. The
response to these is always the same - use your inhaler before you start
choking.

Asthmatics start with a rescue inhaler, a low-capacity inhaler loaded
with albuterol, which I will get to later.

Albuterol is a new medicine thats a little tricky to make but still
doable. It can be efficiently created with inverse convermol, or
transmutated from salbutamol and convermol. The opposite is true, with
albuterol able to be turned into salbutamol. Two canisters are available
in chemvends.

Upon use, it increases the virtual pressure of all breaths taken by 40%.
This allows for you to breathe in lower pressure environments, as well
as enhancing the effects of things like healium.

It's OD causes your diaphram to spasm, causing sporadic losebreath and
forced breathing.

Inhalers are a fancy new reagent application apparatus that uses the
INHALE reagent bitflag.

Inhalers themselves are rather unremarkable, they are merely the method
of using inhaler canisters (they also have a rotary display
approximating the uses left in a canister - just like real life
inhalers).

Inhaler canisters are the reagent containers, and are generally low
capacity. They can only be used in a inhaler, and contain aerosolized
chemicals.

Inhaler canisters and inhalers are unlocked from chemical synthesis, and
are printable for cheap from a medlathe.

In order to use a inhaler, one must uncover the mouth of a carbon and
wait a few seconds (its faster if its a self-application) before a small
amount of the reagents are delivered via the INHALE bitflag. This only
works on things currently breathing - if theyre dead, have no lungs, or
just, arent breathing - it will fail. This includes asthmatics with 100%
inflammation.

</details>

<img width="181" height="74"
alt="282863233-77a7cd6b-44d2-458e-9966-06d485df1521"
src="https://github.com/user-attachments/assets/293b6659-0834-4e9a-b033-cc3b0cfde18e"
/>

<img width="1465" height="202"
alt="282863346-2a247736-0c3a-43b0-a60b-7cff10ce4963"
src="https://github.com/user-attachments/assets/5d9a13dc-b7b2-4de2-adda-8fbc8276e667"
/>

Sprites are not mine; they are from swanni and I can NOT sprite for the
life of me
## Why It's Good For The Game

1. Asthma is just cool. One of my favorite features on bay was the fact
lung damage required you to turn up the pressure on your O2 tank to
survive, and this does precisely that.
2. Its always fun to add new ways to interact with atmos as a player
that arent grossly broken, and I fail to see how a 40% increase of gas
intake will really affect balance too badly.
3. Inhalers are badass.
## Changelog
🆑
add: Asthma quirk, based on IRL asthma
add: Inhalers, a new reagent administering method that uses INHALE
add: Albuterol, a new reagent that increases the amount of gas you
inhale by 40%
balance: Inverse convermol now forms once the reaction is done, not on
metabolize
/🆑

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
# Conflicts:
#	code/datums/quirks/negative_quirks/allergic.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
2025-09-09 23:24:54 -04:00
fadbf16e1b Asthma quirk, inhalers - Electric Boogaloo (#92747)
## About The Pull Request

Revival of https://github.com/tgstation/tgstation/pull/79691

A while back, I made this PR, but lost motivation after diving too deep
into the code soup of can_breathe and related procs. Now, I have removed
those parts, and have simplified that part of the code to the point I
think it's ready for review.

Many reviews from the previous PR have been addressed in this PR.

<hr>

<details>
  <summary>Details</summary>
  
Asthma is a 4 point negative quirk that emulates real life asthma. It
works by slowly decreasing the amount of pressure each breath you take
receives, until your lungs completely seal, ensuring death if you dont
get oxyloss meds/windpipe surgery.

Inflammation (the tracker for intensity) increases whenever you breathe
smoke, use a cigarette, metabolize histimine, or suffer an asthma
attack.

Asthma attacks have a low chance of happening every second, starting 10
minutes after you spawn and with a 20-30 grace period between attacks.
They are "diseases" that cant be outright cured by albuterol, only put
into remission. They increase inflammation at varying rates depending on
their severity, with extreme asthma attacks being a immediate threat to
your life while mild ones might not even cause inflammation. The
response to these is always the same - use your inhaler before you start
choking.

Asthmatics start with a rescue inhaler, a low-capacity inhaler loaded
with albuterol, which I will get to later.

Albuterol is a new medicine thats a little tricky to make but still
doable. It can be efficiently created with inverse convermol, or
transmutated from salbutamol and convermol. The opposite is true, with
albuterol able to be turned into salbutamol. Two canisters are available
in chemvends.

Upon use, it increases the virtual pressure of all breaths taken by 40%.
This allows for you to breathe in lower pressure environments, as well
as enhancing the effects of things like healium.

It's OD causes your diaphram to spasm, causing sporadic losebreath and
forced breathing.

Inhalers are a fancy new reagent application apparatus that uses the
INHALE reagent bitflag.

Inhalers themselves are rather unremarkable, they are merely the method
of using inhaler canisters (they also have a rotary display
approximating the uses left in a canister - just like real life
inhalers).

Inhaler canisters are the reagent containers, and are generally low
capacity. They can only be used in a inhaler, and contain aerosolized
chemicals.

Inhaler canisters and inhalers are unlocked from chemical synthesis, and
are printable for cheap from a medlathe.

In order to use a inhaler, one must uncover the mouth of a carbon and
wait a few seconds (its faster if its a self-application) before a small
amount of the reagents are delivered via the INHALE bitflag. This only
works on things currently breathing - if theyre dead, have no lungs, or
just, arent breathing - it will fail. This includes asthmatics with 100%
inflammation.
  
</details>

<img width="181" height="74"
alt="282863233-77a7cd6b-44d2-458e-9966-06d485df1521"
src="https://github.com/user-attachments/assets/293b6659-0834-4e9a-b033-cc3b0cfde18e"
/>

<img width="1465" height="202"
alt="282863346-2a247736-0c3a-43b0-a60b-7cff10ce4963"
src="https://github.com/user-attachments/assets/5d9a13dc-b7b2-4de2-adda-8fbc8276e667"
/>


Sprites are not mine; they are from swanni and I can NOT sprite for the
life of me
## Why It's Good For The Game

1. Asthma is just cool. One of my favorite features on bay was the fact
lung damage required you to turn up the pressure on your O2 tank to
survive, and this does precisely that.
2. Its always fun to add new ways to interact with atmos as a player
that arent grossly broken, and I fail to see how a 40% increase of gas
intake will really affect balance too badly.
3. Inhalers are badass.
## Changelog
🆑
add: Asthma quirk, based on IRL asthma
add: Inhalers, a new reagent administering method that uses INHALE
add: Albuterol, a new reagent that increases the amount of gas you
inhale by 40%
balance: Inverse convermol now forms once the reaction is done, not on
metabolize
/🆑

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2025-09-08 13:31:21 +12:00
nikothedudeandGitHub 1d66c7c85c Readds medical sprays to the nanodrug plus (#92785)
## About The Pull Request

Reverts a bit of https://github.com/tgstation/tgstation/pull/92134 - the
change was not documented, and the creator expressed neutrality at it's
return in discord.
## Why It's Good For The Game

Diluted aiuri and libital sprays are good stopgaps for when chemists
aren't making chems, or at roundstart, when your options for chems are
the limited medkits. They're not exactly good at their job, they're
impure, limited, but they get the job done.

The change is also a bit out of scope for that PR (it wanted to change
emergency vendors and not the nanodrug) and - again - undocumented.

Feel free to close if this is actually bad for the game, I just really
like using these as a doctor when better chems aren't available.
## Changelog
🆑
add: 2 aiuri and 2 libital cans to nanodrug plus
/🆑
2025-09-07 20:55:49 -04:00
MrMelbertandGitHub e7bd1c0e02 [MDB Ignore] Replaces MOST Emergency NanoMed vendors with new First Aid Stations. (Also reverts advanced medkits in bridge and buffs back nanomeds) (#92677)
## About The Pull Request

### Main changes

Across all station maps, emergency shuttles, and arrivals shuttles, the
Emergency NanoMeds (wall mounted medical supply vendors) have been
replcaed with Deforest First Aid Stations.

<img width="303" height="410" alt="image"
src="https://github.com/user-attachments/assets/efc1133b-09d8-4a35-8690-d8b1ebae7cba"
/>


Deforest First Aid Station have an internal supply of healing which
recharges slowly over time (1/10th of the pool is recharged every 30
seconds).

To access this healing, users must insert their arm into the machine
with left click. (Or you can mouse drop other people into it.) Once
their arm is in place, some of the internal supply will be used up to
heal the user. The internal supply can heal brute, burn, tox, and blood
loss. This is straight, instant healing - so it doesn't trigger
allergies or nothing. However, if you insert a robotic arm, it will
refuse to heal you.

Users are charged every time healing is dispensed - 2.5 credits per unit
of damage healed. Payments go to the medical budget, same as kiosks.

You can also right click the machine to dispense gauze for 16 credits.

On **red alert** (or for medical staff, or on emergency shuttles), all
charges are waived. (It's free)

Also you can emag it so it causes damage instead. Funny.

### Other changes:

Buffs the contents of emergency nanomeds

Reverts bridge advanced medkits to normal medkits

## Why It's Good For The Game

Wall vending changes:

People want options to heal chip damage beyond visiting the bar but we
also don't really want people to load up on boat loads of medical
supplies. So here we are: A machine fully capable of healing minor
injuries that you can carry along with you.

If you're missing like 4-6 brute or toxin damage, you can visit a first
aid station and pay 15 credits to top yourself off. This is of course on
top of all the other options available to you, such as getting a hearty
meal, some variety of drink from the bar, sleeping in dorms, water
coolers, etc.

The limited pool + cost requirement prevents you from going 0-100, so
you still have to go to medbay if you are severely wounded or your ID
was stolen.

Nanomed changes:

Now that they are considerably less common once again, they can have a
decent stock.

Advanced medkit changes:

I don't really see the justification behind handing these out so freely,
and given the medical stations will have adequate extra healing for the
command staff, they don't need these.

## Changelog

🆑 Melber
balance: Advanced first aid kits in the bridge are back to being normal
first aid kids
balance: Emergency Nanomed vendors have larger stocks and better
supplies
add: Replaces a majority of Emergency Nanomeds on stations and shuttles
with Deforest First Aid Stations. Left clicking these stationary
machines will heal minor damage and blood loss over time - at a (small)
price. Right clicking them will provide gauze, also for a price. All
costs are waived on shuttles, during red alert, or for medical staff.
You can also click-drag to have other mobs use the machine. However,
robotic limbs need not apply.
/🆑
2025-09-07 20:06:29 +10:00
SyncIt21andGitHub 5a6fe316a2 [NO GBP] Fixes runtime for vendors using department cards (#92882)
## About The Pull Request
Cause the `account_job` is null so it run-timed

## Changelog
🆑
fix: no runtime for vendors using department cards
/🆑
2025-09-07 11:12:10 +02:00
nevimer b348b617a3 Merge branch 'master' of https://github.com/tgstation/tgstation into pupstream-2025-09-07
# Conflicts:
#	README.md
#	code/__DEFINES/admin.dm
#	code/__DEFINES/melee.dm
#	code/_globalvars/traits/_traits.dm
#	code/controllers/subsystem/economy.dm
#	code/datums/components/crafting/crafting.dm
#	code/datums/elements/crusher_loot.dm
#	code/modules/antagonists/pirate/pirate_shuttle_equipment.dm
#	code/modules/clothing/suits/_suits.dm
#	code/modules/escape_menu/leave_body.dm
#	code/modules/jobs/job_types/_job.dm
#	code/modules/mining/equipment/mineral_scanner.dm
#	code/modules/mob/living/living.dm
#	code/modules/plumbing/plumbers/pill_press.dm
#	tgui/packages/tgui/interfaces/Vending.tsx
2025-09-07 00:37:52 -04:00
SyncIt21andGitHub a4ac8312f3 More enhancements for vending (#92852)
## About The Pull Request
- Var `on_station` is no longer sent to the UI as it is redundant with
`all_products_free`. Saved bandwidth
- Dispensing free returned products no longer produces logs of 0 credits
into the economy
- Removed excess null checks for account stuff

## Changelog
🆑
code: improved code for vending machine payment process
fix: stop logging 0 credit purchases when vending machines are
dispensing returned products
/🆑
2025-09-05 10:57:07 -04:00