## About The Pull Request
This PR moves most of the code for using an item to commit suicide from
`human` to `living`, so that anything with hands can use what it is
holding to commit suicide.
This was surprisingly painless, as most `suicide_act` procs were already
written without the assumption that the person killing themselves was a
human even though they couldn't be anything else.
This might occasionally mean that in some cases (like drones) it may
reference anatomy that they don't have (like necks) but I think that's
not a big deal and don't worry about it.
## Why It's Good For The Game
It's funny.
## Changelog
🆑
balance: Anything with hands can now use the things it is holding to
commit suicide
/🆑
## About The Pull Request
In similar fashion to what was done with crafting recipes last year,
this year it's time for techweb designs and printed items to be audited.
This is mostly just about consistency, we've a lot of items that can be
printed by protolathes, autolathes, circuit printers and techfab etc.
However they almost all (except most stacks, mainly) have custom
materials that do not match in one way or another with the materials
used by the design, which is what this PR is for.
"But items printed from lathes etc. already get the mats used to make
them." Yes, they do, however that isn't the case for items of the same
type that were spawned in some other way (cargo shuttle, space/maints
loot, mapped, admins), this create a subtle discrepancy. It isn't a huge
deal (in spite of the size of this PR, ton of designs), but given that I
have done something similar with crafting recipes before, I may as well
give it a second arc of some sort and bring things to completion. And
fix a few possible oversights.
TL;DR consistency and stuff
## Why It's Good For The Game
Consistency, unit test checks to make it harder not to be consistent in
the future. Still has a few TODOs like:
- [x] Fixed newly printed, fully charged RCDs costing less than the RCD
cartridges required to fully charge one. EDIT: I had to tweak the newly
added RDD as well because it suffered from the same fundamental issue.
- [x] Fixed plates being made of iron and yet shattering like ceramic
ones. A new subtype for metallic ones has been made.
## Changelog
🆑
refactor: Refactored a few things with techweb designs (the ones for
autolathes, protolathes, circuit printers, mechfabs etc.) to make sure
that the materials of items that can be made from these designs more
closely match the materials used to make them.
fix: Lizard fries no longer need a plate to be made, like all other
treats that used to require plates in a distant past.
balance: Tweaked the materials cost of RCD, RDD and RCD cartridges.
image: Oven trays now have a more metallic hue.
balance: Plates printed printed from lathes won't shatter like ceramic
ones, in virtue of them being made out of iron instead.
/🆑
## About The Pull Request
People had been noting that it was taking longer to pay off a 1000 point
gulag sentence than expected, because we made some changes to mining and
forgot to update it
So now:
- There are ores in the walls again (iron, plasma, silver, and gold)
- Materials are now worth a variable amount of points (iron = plasma <
silver < gold)
- Boulders mined from the walls pop into a large amount of the kinds of
ores you can mine
- Boulders dragged out of the infinite use "work pit" contain a
guaranteed large amount of iron
The upshot of these changes are:
- You can pull 14 boulders out of the hole for a guaranteed time spent
of about 6 and a half quite boring minutes to guarantee finishing your
sentence (if you know exactly what you are doing and optimise it,
probably a bit longer for many people)
- You can mine the walls for ore at the mercy of RNG, you will _likely_
be done in about 5 minutes of mining if you're an early sentence and
obviously it gets harder the more people have already mined out the ores
I aimed for about 5 and 6 minutes as a target because of a combination
of travel time, the fact that you need to actively do something, and
because of the weather.
Remember that's only 5 or 6 minutes actually doing _mining_ (or...
watching progress bars and repeatedly falling over), doesn't include
variations in skill or luck, being hustled into the teleporter, suiting
up, processing the ores, summoning the shuttle, taking the ores to the
shuttle, and an ash storm if you're unlucky. So all around, probably
adds up to be reasonably close to a 10 minute brig timer.
We all know most people given a 1 point sentence are just going to kill
themselves anyway.
Also I moved some lightbulbs in the mining station work camp area
because you couldn't see some of the important tiles and it was annoying
me
## Why It's Good For The Game
We advise players that 1000 points in the work camp is work about a 10
minute brig sentence and this is basically ban-baiting from our policy
page if it's not actually true
## Changelog
🆑
balance: Adjusted the values of ores from the work camp to make a 1000
point sentence closer to a 10 minute brig timer
map: Moved some lightbulbs around in the work camp so you can see the
bars getting printed
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
## About The Pull Request
50 files. Sorry about that, I was faster today. Just merge without
looking, it'll be fine.
This is the end of `/machinery/` & `/stack/` `attackby()`s(that aren't
actually meant for being attacked) when these are all merged.
Like, 200 left? I think?
Also, this one will make light replacer reloading slightly more
difficult until whichever one converted the light replacer is merged.
If, for some ungodly reason, this one gets merged first.
Changes beyond conversion:
if a `/porta_turret_construct` somehow became anchored out of sync with
its construction steps, it's no longer softlocked
you can no longer place an infinite amount of blackboxes into the
blackbox recorder
a TTV will no longer keep its ghost on your back when you cut its wires
while wearing it
RCLs will properly update their appearance when initially given their
first coil
The creator of `robot_suit/attackby()` has been cursed to spend a
thousand years in the lake of fire
## Why It's Good For The Game
Now that all of these are remade, you can find bugs in them and then get
GBP for fixing them(not that my code would ever have bugs).
## Changelog
🆑
fix: It's no longer possible to softlock building a turret(if it ever
was)
fix: you can no longer stuff the blackbox recorder full with as many
blackboxes as you've somehow collected
fix: TTVs will no longer remain on your back as a ghost when you cut
their wire straps
fix: RCLs will now properly update their appearance when given their
first coil of cleaners
code: 50 files have been converted from attackby() to item_interaction()
/🆑
## About The Pull Request
flips do_after that was succeeding on do after failure
fixes#96688
## Why It's Good For The Game
fix bug
## Changelog
🆑
fix: Crafting shivs no longer inverts the do_after check
/🆑
## About The Pull Request
What title says, shards would runtime when cutting cloth due to calling
the wrong proc (which wasn't needed in the first place, qdel already
drops the item)
## Changelog
🆑
fix: Fixed a runtime when cutting cloth with glass shards
refactor: Refactored glass shards to item_interaction
/🆑
## About The Pull Request
``get_temperature()`` returns a value in kelvins, not a boolean. Trying
to treat it as such will result in ***any*** item with a thermal value,
like condensers, being treated as a lighter.
## Why It's Good For The Game
Consistency, allows us to have actually functioning cooling items that
don't act like lighters all the time.
## Changelog
🆑
fix: Condensers can no longer be used to ignite things
/🆑
## About The Pull Request
1. Refactors gauze
Removes gauze var from `/stack`, adds a shared parent between tape and
gauze.
Behavior of "sticking thing on limb" is now a bit more generic, with
there being a component to facilitate it and a framework on `/bodypart`
Closes#92990
2. Adds Tourniquets
A first aid item, when attached to a limb it reduces blood loss from
that limb by 90%.
However while attached you walk slower (if on a leg), interact slower
(if on a arm), and yes, you rapidly die if you put it on your head
Paramedic belts have their starting equipment changed again for the
500th time.
Surgical tape -> Tourniquet
Bone gel -> Bonesetter
<img width="604" height="224" alt="image"
src="https://github.com/user-attachments/assets/443dd5c0-44a3-4ccb-9f6a-c561bbf2fba9"
/>
## Why It's Good For The Game
Adds some more variety for field treatment of bleeding wounds, and in
the future we can add things like "improvised tourniquets" or
"improvised splints" with wooden planks.
## Changelog
🆑 Melbert
add: Adds Tourniquets. While attached to a limb, reduces blood loss from
that limb by 90%, but makes you walk / interact slower. (Or if you put
it on your head, you die.)
add: You can purchase Tourniquets from the premium section of the
medical vendor
add: Paramedic belt setup has changed yet again: Surgical tape replaced
with Tourniquet, Bone gel replaced with Bonesetter.
add: You can use all forms of tape as splint - like Gauze. Will secure a
fracture but won't stop your blood from exiting.
refactor: Refactored gauze entirely, report any strangeness with it (or
tape, or tourniquets)
/🆑
## About The Pull Request
1. Adds doppler radar towers to Lavaland and the Icemoon
Weather radios now need a doppler radar on the target z-level to get an
accurate reading. Without a radar tower, the expected timing of incoming
storms will be off by a random factor.
Lavaland and the Icemoon both have a few towers mapped into them.
The towers themselves can be constructed with plasteel if they some how
get destroyed. They also have an in built GPS.
Each tower requires a cable connection to function. They need a pretty
small amount of power to function.
2. Adds anomalous radar towers
Attaching a weather anomaly core to a radar tower results in an
anomalous radar tower.
<img width="260" height="409" alt="image"
src="https://github.com/user-attachments/assets/3430b0aa-0bbc-44df-ae75-67c2c3cca5a6"
/>
This allows you to cancel ongoing storms **or summon storms yourself**.
Each cancellation and summon uses a percentage of the core's charge.
After the charge runs dry, the core is destroyed, and the tower goes
back to being normal.
Yes, you can construct a radar tower on the station to summon storms on
the station, *including* rad storms.
All storms summoned abide by radstorm rules, meaning maint is safe.
Summoning onto the station uses significantly more charge.
3. Limits weather anomaly cores to 5
Because they are charge based and spamming weather events all round
would be annoying, slightly lowers the max core count.
## Why It's Good For The Game
Weather manipulation seems super appropriate for weather anomaly cores.
Initially it was just going to be the machine, but then I thought "what
if I want the frame of the machine to be available roundstart on
Lavaland to encourage cooperation with miners" and then I thought "what
if it tied into the weather radios, which opens up rare sabotage
methods"
So that's how we got here. The towers exist to facilitate the anomaly
use while also allowing enterprising traitors to sabotage, potentially
leaving their target unaware in a storm.
## Changelog
🆑 Melbert
add: Adds doppler radar towers to Lavaland and the Icemoon. These towers
ensure weather radios have accurate readings.
add: Adding a weather anomaly core to a radar tower upgrades it, giving
you control of weather - allowing you to cancel storms or even spawn a
weather event of your choice. However, the core will expire after use,
requiring replacement.
add: You can construct radar towers with plasteel. Even on the station.
Yes, you can summon weather onto the station.
balance: Limits weather anomaly cores to 5.
/🆑
## About The Pull Request
As title says, skin butchered from humans (currently only applies to
lizardskin) now inherits their owner's skin color, and so do items
(lizardskin boots and hats) made from it.
Also this PR gagsifies lizardskin hats and boots for this very reason.
## Why It's Good For The Game
Consistency, when you butcher a purple lizard you should get purple
lizard boots.
## Changelog
🆑
add: Made lizard skin and lizardskin items inherit their "donor's" skin
color
/🆑
## About The Pull Request
Inspired by #94233. `grind_results`(list) & `juice_typepath`(typepath)
are only used when grinding & juicing after which the atom is deleted.
This means if that object is not processed these vars occupy memory &
don't do anything.
Now these values are only generated on demand by calling their
respective procs. Considering how these vars are on the obj level the
memory savings are quite significant
## Changelog
🆑
refactor: grinding & juicing have been refactored to occupy low memory.
Report bugs on github
code: improved grinding & juicing code
/🆑
## About The Pull Request
Title.
You can now spawn in/map in/exist in sandbags in a stack of fifty.
<img width="1004" height="338" alt="изображение"
src="https://github.com/user-attachments/assets/3a0bf21c-20b3-4773-b5be-52ca3aca130b"
/>
<img width="566" height="549" alt="изображение"
src="https://github.com/user-attachments/assets/403fa312-1643-4223-b3c6-57e9cb3e8d7c"
/>
## Why It's Good For The Game
This should prove useful for mappers and admins who'll require sandbags
at one or another point.
~~See I needed sandbags for a map I'm making and varediting a stack into
a fifty-stack felt wrong.~~
## Changelog
🆑 Stalkeros
add: Stack of fifty sandbags
/🆑
## About The Pull Request
The "old ratty sofa" can now be crafted! Crafted version is called the
"retro sofa." Also grouped all craftable sofas under one dropdown menu
to reduce UI clutter.
<img width="702" height="439" alt="retro sofa coded"
src="https://github.com/user-attachments/assets/18a6f462-ffaf-4c8e-a64a-8247e9222578"
/>
## Why It's Good For The Game
The brown sofa looks right at home in cozy places like maints, library,
bar, even the command quarters. We had the model as a map spawn, so I
thought it'd be nice to give players the option to craft them too. Goes
well with wood! Also, reduced UI clutter by putting all sofas into one
drop-down menu.
## About The Pull Request
Empy lists. There are a lot of 'em.
<img width="981" height="512" alt="image"
src="https://github.com/user-attachments/assets/b94b041a-2904-466b-ab89-54bd1de11b4e"
/>
Going through ways to reduce memory I found a few easy ones here. Wires,
the edible component, the seethrough component. None of these are really
a concern when it comes to needing lists in memory for performance
reasons. Wires aren't going to be cut most of the time for each door. A
lot of food does not have any junkiness. Seethrough component lies
dormant most of the round. Etc.
Making lists lazy in these cases should be a no brainer.
Everything I tested still seems to work exactly the same.
## Why It's Good For The Game
Frees memory that is just taking up space a lot of the time.
## Changelog
Not player-facing, this is all under-the-hood stuff.
## About The Pull Request
Extends the part of the crafting unit test that ensures consistency
between the total mats of the components of a recipe (or rather, the
result of said recipe) and a generic instance of the same type as its
result, previously only implemented on food recipes.
## Why It's Good For The Game
This ensures a degree of consistency with the material composition of
various objects in the game. I couldn't do it in the original PR as that
one was too big already and it took months to get it merged, and have
the relative bugs fixed.
Currently a WIP as I slowly deal with the unit test reports.
## Changelog
🆑
refactor: Follow-up to the crafting/material refactor from months ago.
All objects crafted with stacks now inherit their mat composition (not
necessarily the effects and color) by default, while previously only a
few things like chair, sinks and toilets did. Report any object looking
or behaving weirdly as a result.
fix: The material composition of ammo boxes is no longer a 1/10 of what
it's supposed to be. It was a shitty hack to make it harder to recycle
empty ammo boxes. Instead, they lose materials as they're emptied now.
/🆑
## About The Pull Request
This 1st has to be PR'd so the integration tests can point out all
wallmounts that could not find a support structure to mount on. I then
will do many map edits to align them onto the closest atom
Yes we no longer use wall mount but atom mounted component. All objects
that are mounted on windows/tables & fences now also fall off when
destroyed
It'll probably be a WHILE before I can fix all wall mounts. Long day.
Expect me to misalign many stuff to fix failing CI so make sure to
provide suggestions when possible
Improved wallmount code overall
- Fixes#93793
## Changelog
🆑
fix: fixes all incorrectly maploded wall mounts that aren't actually
hanging on any support structure
fix: objects mounted on tables, windows & fences also fall off now when
destoryed
qol: lights can be mounted on windows
qol: cameras can be mounted on windows
qol: buttons can be mounted on tables
refactor: improved how wall mounts interact with objects as a whole
report bugs on github
/🆑
## About The Pull Request
Apparently wall construction code is snowflaked and indented as fuck
(and the same goes for door assemblies). I'm not bothering refactoring
everything with them, only to reduce the indentation, changing a couple
vars and overall making it easier to work with them later. This includes
wall construction not being hardcoded to sheets but include the
possibility to use other kind of stacks as well (if you don't count the
snowflake interaction with iron rods). In layman's terms, this means you
can make walls made out of sand (distinct from sandstone) again.
Also I've done some small changes to the materials storage, so that it
can eject ores too if the material doesn't have a sheet type.
Also, I've been told there may be issues with broken, uninteractable
(probably not properly initialized) glass sheets beside the ORM. I'm not
100% sure about the deets, but it may have something to do with spawning
the glass on the same turf the ORM is listening to, when smelting sand,
causing some race conditions, so let's spawn it in nullspace
## Why It's Good For The Game
While I'm sure there may be more elegant solutions (just take a look at
the wall and door construction code, they both use text2path oh god!),
I'm just here to make things a lil' cleaner and be done with issues with
the fact that sand is made of sand.
## Changelog
🆑
fix: You can once again make sand walls.
fix: Deconstructing an autolathe with sand in it should now drop sand.
/🆑
## About The Pull Request
Complete rework of the metal hydrogen armor for atmos. Rebalancing the
stats, crafting recipe, and most importantly new sprites for planti and
digi. EDIT: Teshari sprites now included.
## Why It's Good For The Game
The metal hydrogen armor has been a direct downgrade to nearly every
single other atmospherics tool, modsuits, firesuits, etc. Despite being
the hardest piece of atmospherics equipment to make. Taking around 45-60
minutes depending on skill level. Plus it was just extremely ugly. Its
now gotten an immense buff, with significantly better resistances before
and guess what... ITS ACTUALLY FIREPROOF NOW, among that its been made
into a "firesuit upgrade" requiring an atmospherics firesuit/helmet +
metal hydrogen to craft. specific stats will be listed in changelog.
it was also highly voted as seen below.
https://discord.com/channels/1059199070016655462/1071095123145924679/1374831845337993367
## Proof Of Testing
I've tested this extensively and made sure 0 errors occurred during the
process.
<img width="474" height="511" alt="image"
src="https://github.com/user-attachments/assets/6b38c4d4-dbf0-4a19-9f1d-7d67943777a4"
/>
<img width="84" height="78" alt="image"
src="https://github.com/user-attachments/assets/9b01e970-ed65-4cce-bc5f-402e9174d34d"
/>
<img width="88" height="81" alt="image"
src="https://github.com/user-attachments/assets/10a218eb-9ee9-432f-b346-092440a28ca8"
/>
## Changelog
🆑
add: Added Elder Atmos crafting recipes
del: Removed metal H2 Armor stack craft
image: Resprited Metal H2 Armor, digitigrade and plantigrade
spellcheck: Fixed a typo with the Metal H2 Axe
code: Changed metal H2 armor stack crafting
balance: Metal H2 Fireaxe force_wielded from 15 > 20
Metal H2 Fireaxe wound_bonus from -15 > -10
balance: Elder Atmosian Armor Set Buffs
Stat buffs across the board, including several flag changes to better
fit the armor.
/🆑
## About The Pull Request
moves all implementations (im aware of) for "Im a parent type dont spawn
me please" to the datum layer to standardized behavior
adds a standerized proc for filtering out "bad" items that we dont want
spawning. applies to it the subtype vendor, gifts, and a new spawner and
mystery box for a random gun (neither playerfacing)
"port" of https://github.com/shiptest-ss13/Shiptest/pull/4621https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa
small warning: I dont have EVERY abstract type defined right now but,
ive done a good enough job for now. Im tired of data entry rn
## Why It's Good For The Game
standardizing behavior. Might be a micro hit to performance however
having this lets us not rely on icon state to determine whether
something is a parent type and makes it much easier to tell something is
a parent type (could be applied further to things like admin spawning
menus and things like that).
need feedback on if this is actually good for the game.
## Changelog
🆑
add: Soda cans show up in the silver slime drink table.
add: Examine tag for items that are not mean to show up ingame.
refactor: Standardizes how gifts rule out abstract types.
fix: gifts no longer check if something has an inhand, massively
expanding the list of potential items.
/🆑
## About The Pull Request
sand blocks existed for the only purpose of making sand available as a
material. However, the only method to get them was pretty whimsical and
the existence of the feature wasn't really conveyed to the player, which
involves rinsing regular sand in a sink... and before you ask, we also
have sandstone, which can be crafted just by using the sand in hands, no
water involved. In fact, the sand blocks use the same sprites for
regular sandstone, except they have no recipes associated to them,
nothing! Nada!
Let's address the elephant in the room: We already have sand, however
said sand already has the glass material attached to it even before
being smelted, so if you put sand into the Autolathe, you get glass,
yay. Sand blocks really only existed to make up for the shortcoming of
whoever coded the sand material at the time.
But enough ranting. As the title says, sand is now made of sand, sand
blocks are kill. I've been careful enough to give the ORM the ability to
smelt gathered sand into glass beforehand, so miners won't curse me for
making them _actually_ use the smelter for once, "I will rather die to a
goliath than have anything to do with that". However, this still means
you cannot shove sand directly into lathes and expect glass out of it.
Get a welder.
## Why It's Good For The Game
## Changelog
🆑
balance: sand is now made of sand and not glass. Get a welder if you
plan to shove it into a protolathe.
del: Removed now useless sand blocks.
/🆑
## About The Pull Request
Blood beam, while supposed to be quite costly can be used after slicing
the throat of a single monkey.
You could then, put as many iron sheets on the floor as you wanted, aim
your blood beam at it (aiming away from the center of the station
recommended) and convert potentially multiple full stacks of it 1:1 into
cult metal.
## Why It's Good For The Game
Cultists already have a dedicated spell for creating cult metal
requiring plasteel instead, which is usually harder to gather in bulk
especially early on. That interaction completely overshadows it. As a
fun fact, it's also older than the change that moved the construct spell
from iron to plasteel so it's likely somebody just forgot.
## About The Pull Request
It should be invulnerable to damage, not completely indestructible by
all means
Closes#92540
## Changelog
🆑
fix: Fixed metal hydrogen being blocked from all material storages
/🆑
## About The Pull Request
This overhauls Water Coolers (now referred to as "liquid coolers"
internally and in most external cases). They'll feel less like a useless
prop now.
(sprites may look off because of the gif software I use)
**Important Thing # 1:** The reagents are now handled by cooler jugs.
You can pop the jug off of a cooler, fill it with whatever the hell you
want, and put it back on. Fill it with drugs. Fill it with acid. I don't
care, I'm not your mom.
<img width="41" height="56" alt="image"
src="https://github.com/user-attachments/assets/4c618cab-99b4-4a72-ae7b-7b900d7f5eaf"
/>
The sprite now uses an overlay to change colors based on the mix. Water,
when present in the cooler, is magically turned blue to keep that
classic water cooler look.
<img width="280" height="333" alt="image"
src="https://github.com/user-attachments/assets/8a6a905c-bef4-4f5f-9393-5ce5dcca0620"
/>
The jugs are 200 reagents, and are mechanically comparable to the jerry
can. No 200 unit acid splashes or anything.
Y'know, unless you put the jug in a cooler and knock it over...

**Important Thing # 2:** They can be anchored, tipped, and crafted.
Tipping them requires the cooler be unanchored. If you want to use one
of these tactically, unwrench it beforehand.

**Important Thing # 3:** They can be bought from cargo now!
<img width="501" height="605" alt="image"
src="https://github.com/user-attachments/assets/6f261aab-f11a-4126-98ce-d9278d01d0a0"
/>
**Important Thing # 4**
Fruit punch.
<img width="175" height="127" alt="image"
src="https://github.com/user-attachments/assets/ac81e48c-47ff-461f-85f8-3e77a6a6ca55"
/>
Fruit punch is a drink with impressive (slightly faster than omnizine)
healing qualities. Unfortunately, it's so unbearably sweet that it can
only be safely consumed near a liquid cooler! Drinking this stuff is a
commitment, since if you stray from the cooler while digesting it, you
will be hurt and disoriented. You should avoid drinking too much at
once, in case an emergency comes up!
For this reason, we encourage drinkers to _take small sips from your
paper cooler cup, hang around the cooler, and maybe chat with other
people who are healing too._
(Mapload) water coolers have a 1% chance to start full of punch instead
of water. Maybe you'll get lucky and start with a healing station in
your department, or maybe a hopeless space explorer will find one in a
ruin and be saved.
You can also buy one from cargo but it's priceyyyyy. It's also the only
source of punch.
## Why It's Good For The Game
Realizing how little functionality water coolers have was super
disappointing. They do hardly anything but take up space and look
pretty. And now, they're getting mapped into all of the new stations! We
can't have a bunch of inert, sandbox-shunning furniture just sitting
around, the other codebases would laugh at us!
Now, coolers are more congruent with how most people would expect one to
behave in the game environment. Even minor changes like making them
unanchorable or refillable helps them fit in with most players'
intuitive understanding of how atoms typically behave.
The reagent storage change gives coolers their own unique niche in the
sandbox. Tipping them over can also give you an edge in escaping
someone, so even the untouched roundstart coolers can serve a purpose to
savvy players.
For the punch cooler, I figured "why not make a reagent that rewards
players for treating the water cooler like a water cooler?" The punch
encourages players to stand around it, slowly sip from the cooler, and
chat with their co-workers. Just like people do in offices! It's
thematically sound!
## Changelog
🆑 Rhials
add: You may now remove water cooler jugs and put whatever you want in
them. Go nuts.
add: Water coolers are now craftable (with plastic), orderable from
cargo, and tippable when unanchored.
add: Rarely, water coolers will spawn full of healing fruit punch
instead of water! Be careful not to stray from the cooler while
digesting this stuff.
add: You can also just buy the punch cooler from cargo if you feel like
it.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
# Conflicts:
# code/modules/reagents/reagent_dispenser.dm
## About The Pull Request
This overhauls Water Coolers (now referred to as "liquid coolers"
internally and in most external cases). They'll feel less like a useless
prop now.
(sprites may look off because of the gif software I use)
**Important Thing # 1:** The reagents are now handled by cooler jugs.
You can pop the jug off of a cooler, fill it with whatever the hell you
want, and put it back on. Fill it with drugs. Fill it with acid. I don't
care, I'm not your mom.
<img width="41" height="56" alt="image"
src="https://github.com/user-attachments/assets/4c618cab-99b4-4a72-ae7b-7b900d7f5eaf"
/>
The sprite now uses an overlay to change colors based on the mix. Water,
when present in the cooler, is magically turned blue to keep that
classic water cooler look.
<img width="280" height="333" alt="image"
src="https://github.com/user-attachments/assets/8a6a905c-bef4-4f5f-9393-5ce5dcca0620"
/>
The jugs are 200 reagents, and are mechanically comparable to the jerry
can. No 200 unit acid splashes or anything.
Y'know, unless you put the jug in a cooler and knock it over...

**Important Thing # 2:** They can be anchored, tipped, and crafted.
Tipping them requires the cooler be unanchored. If you want to use one
of these tactically, unwrench it beforehand.

**Important Thing # 3:** They can be bought from cargo now!
<img width="501" height="605" alt="image"
src="https://github.com/user-attachments/assets/6f261aab-f11a-4126-98ce-d9278d01d0a0"
/>
**Important Thing # 4**
Fruit punch.
<img width="175" height="127" alt="image"
src="https://github.com/user-attachments/assets/ac81e48c-47ff-461f-85f8-3e77a6a6ca55"
/>
Fruit punch is a drink with impressive (slightly faster than omnizine)
healing qualities. Unfortunately, it's so unbearably sweet that it can
only be safely consumed near a liquid cooler! Drinking this stuff is a
commitment, since if you stray from the cooler while digesting it, you
will be hurt and disoriented. You should avoid drinking too much at
once, in case an emergency comes up!
For this reason, we encourage drinkers to _take small sips from your
paper cooler cup, hang around the cooler, and maybe chat with other
people who are healing too._
(Mapload) water coolers have a 1% chance to start full of punch instead
of water. Maybe you'll get lucky and start with a healing station in
your department, or maybe a hopeless space explorer will find one in a
ruin and be saved.
You can also buy one from cargo but it's priceyyyyy. It's also the only
source of punch.
## Why It's Good For The Game
Realizing how little functionality water coolers have was super
disappointing. They do hardly anything but take up space and look
pretty. And now, they're getting mapped into all of the new stations! We
can't have a bunch of inert, sandbox-shunning furniture just sitting
around, the other codebases would laugh at us!
Now, coolers are more congruent with how most people would expect one to
behave in the game environment. Even minor changes like making them
unanchorable or refillable helps them fit in with most players'
intuitive understanding of how atoms typically behave.
The reagent storage change gives coolers their own unique niche in the
sandbox. Tipping them over can also give you an edge in escaping
someone, so even the untouched roundstart coolers can serve a purpose to
savvy players.
For the punch cooler, I figured "why not make a reagent that rewards
players for treating the water cooler like a water cooler?" The punch
encourages players to stand around it, slowly sip from the cooler, and
chat with their co-workers. Just like people do in offices! It's
thematically sound!
## Changelog
🆑 Rhials
add: You may now remove water cooler jugs and put whatever you want in
them. Go nuts.
add: Water coolers are now craftable (with plastic), orderable from
cargo, and tippable when unanchored.
add: Rarely, water coolers will spawn full of healing fruit punch
instead of water! Be careful not to stray from the cooler while
digesting this stuff.
add: You can also just buy the punch cooler from cargo if you feel like
it.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>