143 Commits
Author SHA1 Message Date
BatrachophrenoandGitHub 5277251959 Tool behaviors port (#21663)
For a robust crafting system, I need a new materials framework.
For a new materials framework, I need to clean up reagents.
To clean up reagents, I need to pare down foods from reagent holders.
To pare down foods from reagent holders, I need to port edibility
components.
To port edibility components, I need to port processing components.
To port processing components, I need to port tool behaviors.

This is all back-end code, no new features or functionality from this.
2026-01-27 08:44:49 +00:00
VMSolidusandGitHub 13d736c9f7 Fix Mech Sleepers (#21742)
It turns out that Sleepers weren't accounting for the variable used by
Mech sleepers to indicate that they should work without a power network,
and it was impossible for the Mech sleepers to ever be "powered" in this
context. This meant that any attempt to use the Mech Mounted Sleeper or
Mounted Passenger Compartment would always fail.

This PR makes it so that if the sleeper has interact_offline set to TRUE
(as is the case with the mech sleepers, but not with the regular
machine), it will bypass its standard power requirements. Allowing mech
sleepers to actually work correctly.
2026-01-25 19:07:21 +00:00
nautandGitHub 2572494d6b Adds alcohol dialysis to sleepers + ethylredoxrazine buff (#21539)
Sleepers can now, albeit slowly, remove alcohol from the bloodstream via
Blood Dialysis, same as with reagents in the bloodstream. The action is
slow, decreasing BAC by about 0.05 per minute (0.1 per 2 minutes). Do
note this will consume a *lot* of blood and likely fill up the dialysis
beaker in the process.

The sleeper also now features a live BAC counter to monitor the alcohol
dialysis in real time.

<img width="444" height="492" alt="image"
src="https://github.com/user-attachments/assets/4359e217-92d6-4d8f-b632-31498c1a8dc2"
/>

To counteract this and make sure ethylredoxrazine (the anti-alcohol
drug) doesn't get completely made irrelevant due to this, it has been
buffed to work about twice as fast as the sleeper without requiring any
blood sacrifice. Exact numbers depend on metabolism but generally
speaking it decreases BAC by 0.1 every 1.2 minutes or so.

Of note: ethylredoxrazine in testing had rather shitty metabolism before
and might as well have done nothing at all - probably because it was
metabolizing at 30% the rate of other medicine. This PR aims to make it
actually useful, but the numbers might have made it too strong.
Feedback's appreciated.

Here's a comparison table for the TL;DR between the two things now:
<table>
<tr>
 <td> 
 <td> Sleeper
 <td> Ethylredoxrazine
<tr>
 <td> BAC decrease rate
 <td> ~0.05 / minute
 <td> ~0.08 / minute
<tr>
 <td> Drains blood
 <td> Yes
 <td> No
<tr>
 <td> Neutralizes alcohol effects while in bloodstream
 <td> No
 <td> Yes
</table>
2025-11-10 07:39:01 +00:00
BatrachophrenoandGitHub 387cee9243 Object Examine Text Overhaul (#20923)
Extends and reworks how various extended information text (desc_info,
desc_build, desc_upgrades) are handled to make object interactions and
mechanics A.) much more clearly documented in-game and B.) much easier
to support from the back-end.

Almost certainly a candidate for test merge.

Assembly/Disassembly instructions are noticeably sporadic, largely due
to our current lack of a unified framework. That's a future thing I'd
like to attack so that it can be handled programmatically, but for now I
only targeted the biggest culprits as I came across them.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-07-21 15:35:14 +00:00
27b5079066 Stock parts power usage and examine handling (#20892)
In preparation for future development, both A.) increased the power draw
of upgraded machines in more predictable ways and B.) reformated Examine
text output to handle displaying machines' upgradeable parts and what
they do in a more user-friendly way.

A.) is important because it opens the door to adding upgrade components
available for more machines.

B.) is important because not only do we need to communicate those sorts
of mechanics in a clean, clear, consistent way, but it also opens the
doors to being able to communicate more types of interaction mechanics
similarly well (such as assembly/disassembly tips).

Examples of new Examine boxes:
![Screenshot 2025-06-26
102050](https://github.com/user-attachments/assets/d7aa8b4c-b35f-4477-a1a2-b2846e92e06c)
![Screenshot 2025-06-26
102140](https://github.com/user-attachments/assets/0abb0a4c-a373-4427-af47-cadd192dfdc7)
![Screenshot 2025-06-26
102109](https://github.com/user-attachments/assets/886e4298-8a60-4cbb-be69-3de4cc8254d5)
![Screenshot 2025-06-26
102030](https://github.com/user-attachments/assets/5752da8c-b567-4337-94d4-b2ac2ca7ac36)

Note- while updating, made get_examine_text() also give Antagonism text
boxes to ghosts and storytellers, not just active Antags. This seemed
like a no-brainer thing but can be split into a separate PR if
requested.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2025-06-30 18:02:57 +00:00
Matt AtlasandGitHub 3837112bd1 Revert "Fix missing pixels in new hairstyle" (#20854)
bad merge
2025-06-17 02:33:31 +02:00
BatrachophrenoandGitHub 156620ad4f Fix missing pixels in new hairstyle (#20828)
See title- the new haircuts leave two pixels of the head uncovered, this
fixes that. My bad, know better testing now... :(
2025-06-16 22:16:59 +00:00
Cody BrittainandGitHub df344e752d Split body scanner and cryopod sprites (#20794)
Port of https://github.com/Baystation12/Baystation12/pull/34190, though
a recolor and touchup was done by CormallenField/Steviii.

I've been concerned for a while that the cryopod and body scanner shared
the same sprites. For the most part, this merely bugged me, as generally
these machines wouldn't be in the same place, so the likelihood of
confusing the two is low. The merging of #20772 changed this, as there
is now a cryopod in medical.

This splits the cryopod, sleeper, and body scanner into their own files.
The body scanner now has a different sprite with a slightly different
shape, and a completely different coloration as well. I also ported the
animated (and smaller!) console from Baystation while I was at it.

Compared to the one in baystation, this has been recolored purple by
CormallenField/Steviii to fit better with our color theming for medical
equipment.

![image](https://github.com/user-attachments/assets/82faa75c-aca6-4ded-a6c3-4c9d9cc00c05)
Note: Since this image was taken, a fix was done to fix the missing bits
on the broken state.

I noticed some incorrect states for sleeper panel icons, and an unused
sleeper working animation. I fixed up and implemented these during the
transition.

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/machinery/bodyscanner.dmi | Remission (Baystation12) |
CC-BY-SA 3.0 |
2025-06-11 09:52:33 +00:00
Wowzewow (Wezzy)andGitHub 2d4b7de686 New Cryogenics animations and sprites (#20413)
Title.


![dreamseeker_ql89bz8lQY](https://github.com/user-attachments/assets/96ef8e5b-889c-423d-8842-85de18bfbb2f)
2025-02-05 13:08:50 +00:00
FluffyandGitHub df014f9bc0 Mouse drop refactor (#20256)
Refactored mousedrag procs, added signals, some safeguards, did some
cleanups around, renamed them to make a little more sense. Mostly put in
line with TG's code.
Fast clicking and releasing with a drag, depending on the grace period
and how fast it is done, can be counted as clicks, to aid in combat
scenarios where you spamclick.
2024-12-26 14:26:32 +00:00
FluffyandGitHub e6917d84e5 Fixed relaymove blocking you in place (#19595)
Fixed relaymove blocking you in place

Should fix #19569 and #19507
2024-07-09 15:41:23 +00:00
FluffyandGitHub 67030cf90e Relaymove tweaks (#19489)
Made relaymoves uniform in function header and non sleepable.
Improved IPC/borg recharger, made it time constant.
Tweaked client/Move() to avoid a range(), moved a relaymove around to
fix a bug, some minor tweaks.
Fixed IPC/borg recharge station not taking the IPC/Borg in on bump.
2024-06-22 15:13:29 +00:00
FluffyandGitHub 3dc4cce9c2 Minor span refactoring (#19177)
Minor span refactoring
2024-05-19 16:37:29 +00:00
9983fca311 Update SSOverlays (ported from Baystation) (#19051)
Our SSOverlays system is outdated, and is likely the cause of many of
the issues seen in #18895. It has also been linked to a massive server
performance decrease.

This brings an updated system from Baystation, hopefully with speed
increases.

Should be testmerged, ideally with #18895.

---------

Co-authored-by: Cody Brittain <cbrittain10@live.com>
2024-05-01 07:46:27 +00:00
FluffyandGitHub 9fc52575dd Refactored MouseDrop_T (#18549)
* sdafas

* sdaf
2024-02-29 21:58:23 +00:00
FluffyandGitHub 9afe761db3 Some refactors, DMDoc and UT (#18365)
* dsfa

* accessories fix

* fixed "has been hit by" message with intent check

* sdfa
2024-02-12 15:32:23 +00:00
FluffyandGitHub d8d063edc6 EMP Refactor & Multi Z-level EMPs (#17781)
* sdfasf

* sdfas

* dsf
2023-12-04 19:37:49 +00:00
Wowzewow (Wezzy)andGitHub ea1101ec5c Better Bodyscanners and Surgery Stuff (#17520)
* Better Bodyscanners and Surgery Stuff

* ope

* i can't believe that worked

* adv

* bodyscanner fixes
2023-10-07 21:36:13 +00:00
Cody BrittainandGitHub 0a3dac31e0 Refactored do_after to use a flag-based system for options (#17127)
* Refactored do_after to use a flag-based system for options

* More flags

* Ditto

* Use the HAS_FLAG macro

* do_after pass

* Fix burning paper code

* Resolve issues from Fluffy's code reviews

* .
2023-09-27 12:17:14 +00:00
5cca4e9cc9 Body scanner bugfixes and alt clicking (#17062)
* Temperature readout fix

* More bugfixing

* wording

* alt click eject too cus why not

* CHANGELOG

* Apply suggestions from code review

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>

* use_check_and_message

* Apply suggestions from code review

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>

---------

Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2023-08-14 15:50:23 +00:00
DoxxmedearlyandGitHub fefc98a4a8 Fixes sleeper eject button sometimes disappearing (#16832)
* Fixes sleeper eject button sometimes disappearing

* Cleans up and clarifies variable
2023-07-22 20:58:08 +00:00
FluffyandGitHub 5e1332d60f OpenDream linting (#16468)
* I wanna set the universe on fire

* dfsaaf

* setup

* dir issue?

* dsf

* Perhaps the script

* saf

* cry

* pain

* sdfas

* Try reintroduction of tag-matcher

* Failed

* Tries to suppress dotnet compile warnings

* Like this maybe?

* woopsie

* Damn pathings

* Hate

* Pragmas

* unlint?

* Maybe?

* GDI

* Redundant ifdef removed and changelog

* Did I forgot the tag matcher, or it was still broken?

* Yea no that script is still broken

* Removed tag-matcher as requested

* *sigh*

* test

* bro what?

* hope

* just fixing the input

* Let's see if we catch it...
2023-06-26 17:05:38 +02:00
31956c7eb0 Rock the UI Away - Removes VueUI and adds TGUI (#16509)
* tgui the beginning

* binaries and the like

* Bring in the last of it

* Example radio UI

* delete example

* NTOS Main Menu, start on manifest, tgui states

* tasks.json

* gunnery ui pt 1

* okay

* fix everything

* scss update

* oops

* manifest gigablast

* downloader part 1

* download prt 2

* NTOSDownloader final

* mfw committing to_worlds

* gunnery console pt2

* i cooked

* targeting (finished)

* one vueui down

* voting ui almost done

* MY MIND FEELS LIKE AN ARCH ENEMYYYY

* voting ui down

* photocopier

* ntos config + download fixes

* photocopier 2

* refactor define

* NTOS client manager + fixes

* fax machine final (it also uses toner now)

* marching forwards... left behind...

* ntnrc part 1

* canister

* add quotes

* portable pumps pt1 + more backgrounds

* oops

* finish the portable pump

* freezers

so I'll keep on pushing forward... you haven't seen the last of me... oooooooh...

* doors ui pt1

* finish doors UI (forgive me wildkins it's a bit of shitcode)

* vitals monitor, make things use labeled lists, new backgrounds

* mais j'envoyé aucun mayday...

* maglock pt1

* pour ça je me suis perdu...

* infrared

* fix that

* prox sensor pt1

* prox sensor

* signaler (this was actually pretty hard)

* atmos control pt1

* atmos control pt1.1

* atmos pt 2

* fuel injector

* multitool UI

* jammer

* list viewer

* APC

* portgen

* targeting console updates + SMES ui

* new themes, shield generator

* supermatter

* Add ore detector and (shitty) NTNet Relay

* orderterminal pt1

* orderterminal pt2

* smartfridge

* Add (air-)tank GUI update ore detector size

* Adds Transfer Valves

* Add AtmoScrubber

* analyzer pt1

* weapons analyzer pt2

* bodyscanner pt1

* bodyscanner pt2

* fix this shitcode

* seed storage

* appearance changer

* appearance changer final

* sleeper pt1

* sleeper

* gps

* vehicles

* chem dispenser

* lily request

* holopad

* tgui modules pt1

* ppanel

* damage menu

* fixes

* im here too now

* follow menu, search bars

* quikpay

* quikpay fixes

* circuit printer

* ppanel

* ppanel updates

* pai

* turret controls (i want to kill myself)

* tweak

* remove the boardgame

* guntracker

* implant tracker

* penal mechs

come close to me, come close to me

* chem codex

* pai radio

* doorjack

* pai directives

* signaler removal, sensors

* ghost spawner

* spawnpoint

* fixes

* teleporter

* one more to the chopping block

* account database

* remove divider

* scanner, atmos

* latejoin ui pt1

* latejoin

* records pt1

* RECORDS UI DONE

* delete interpreter & records

* CHAT FUCKING CLIENT

* data updates

* fix some things

* final UI, log

* basic nanoui fix

* antag panel

* remove vueui

* atm update

* vending update

* warrants, cameras

* ntmonitor

* time comes for all

* preserve this legacy

* bring that back (oops)

* rcon, ui auto update for computer UIs, remove rcon computers

* alarm monitoring (a bit broke and also todo: add custom alarm monitoring programs to a few consoles)

* A LIKE SUPREME

* a

* power monitor

* lights on

* fuck this code, fuck nanoui modules, and fuck nanoui

* LEAVE IT OH SO FAR BEHIND

* fix alarm monitoring for synths

* I SAW IN YOU WHAT LIFE WAS MISSING

* comms console

* idcard and record updates

* turn the light on

* arcade

* pt2

* news browser

* static

* crusher

* f

* COULD I JUST SLEIGH THE GOLD FROM THE BALLS? I'M SO FRUSTRATED OH COULD YOU TELL? IF I HEAR ONE MORE VUEUI OR ONE NANOUI I'M GONNA LOSE IT SO LET ME GOOOOOOOOOOOOOOOOO

* codeowners & suit sensors

* html ui style removal

* make lint happy

* resist and disorder

* i slowly get up and turn off the noise, already fed up...

* pleaseeeeeeeeeeeeeee

* THE CREDIT LARP IS NECESSARY

* i hold the keys

* RISE UP

* fix that?

* harry's suggestions xoxo

* runtime fix pt2

* You are the only thing that I still care about

* adds build workflow

* Update update_tgui.yml

* adds some needed steps

* ATM

* misc fixes and tweaks

* fixes 2

* make newscasters usable and fix use power on freezers

* turret control is clearer

---------

Co-authored-by: John Wildkins <john.wildkins@gmail.com>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: harryob <55142896+harryob@users.noreply.github.com>
Co-authored-by: Werner <Arrow768@users.noreply.github.com>
Co-authored-by: Geeves <ggrobler447@gmail.com>
Co-authored-by: harryob <me@harryob.live>
2023-06-25 19:03:33 +02:00
anconfuzedrockandGitHub 343e9ee5db Lets sleepers dose peeps with tricord (#15562) 2023-01-15 14:30:18 +01:00
FluffyandGitHub 04d89f212a Singletons + refactor of /datum/observ + refactor of /decl/ into /singleton/ (#15519) 2023-01-10 19:22:14 +01:00
Matt AtlasandGitHub b1869884c1 Revert "Singletons + refactor of /datum/observ (#15487)" (#15515) 2023-01-05 19:21:22 +01:00
FluffyandGitHub 0ddcf0817a Singletons + refactor of /datum/observ (#15487) 2023-01-05 18:41:40 +01:00
WildkinsandGitHub a4461a17af Implement Bay's SSmachinery and power usage updates, further unclogging the toilet (#13910) 2022-05-16 18:50:16 +02:00
VisVirificandGitHub ecc606b6b2 Machines Buckle Checks and IV Interactions Fixes (#13661) 2022-04-27 17:43:27 +02:00
mikomyazakiandGitHub e59589ec8a Gripper attackby fixes (#13571)
This cannot go wrong, can it?
2022-04-20 22:15:15 +02:00
SparkyandGitHub bd4b88b045 You see me rollin' - Roller Bed Tweaks (#11150) 2021-02-16 19:41:55 +01:00
MarinaGryphonandGitHub c720e947ed /decl/chem (#10538) 2021-01-17 00:11:28 +02:00
GeevesandGitHub b3891901ea Radiojammer Stationbound Blocking (#10246)
* AI Firedoor Rebalance

* Update geeves-because-the-question-is-incorrect.yml

* improve the implementation considerably

* Update geeves-because-the-question-is-incorrect.yml

* put this back

* jammer UI
2020-11-14 12:10:35 +01:00
GeevesandGitHub aff14775b5 Sleeper UI and Stuff (#10113) 2020-10-01 19:48:35 +02:00
Matt AtlasandGitHub d4666caaac Ports Goonchat from Baystation. (#9635)
changes:

    rscadd: "Ported a new chat system, Goonchat, that allows for cool things like changing font style, size, spacing, highlighting up to 5 strings in the chat, and DARK MODE."
    rscadd: "Repeated chat messages can now get compacted. You can disable this in goonchat settings."
    rscadd: "You can change icon style to any font on your system."
    tweak: "The game window has been altered a bit to adjust for this."
    rscdel: "Removed skin style prefs as they are no longer used."
2020-09-24 23:06:04 +03:00
Chada-1andGitHub d7e680a575 Full rename of all real chems to bone apple tea'd versions. (#9400)
As a continuation of #9389
As a bonus, any drugs that mentioned their IRL counterpart in their description now describe their predecessor as ancient, and the new ones as modern. The biggest difference here is just the Antihistamine which was given a full new name. They're similar enough that they'll be recognized (most of them) but different enough for us to call our own and not care what the real medicines are/do since these are our sci-fantasy versions just inspired by them.
2020-07-26 13:19:41 +03:00
mikomyazakiandGitHub 4dfcd2b455 Sleepers properly inject chemicals again. (#9434) 2020-07-23 21:06:51 -03:00
JoshieandGitHub fb8af14858 Renames all instances of "Norepinephrine" to "Inaprovaline" (#9389)
It was a mistake to use real life chemicals on the grounds of "realism", especially when the chemical doesn't actually act realistically to how it does in real life. With the removal of the Inaprovaline medication as well, we can return the name to Norepinephrine, which was originally called Inaprovaline anyway.
2020-07-21 17:57:44 +03:00
MarinaGryphonandGitHub 37c80988ce Converts Reagents to Typepaths and Centralises Reagent Spawning (#9140)
Converts reagents to use typepaths instead of IDs.
    Centralises reagent spawning in a lot of places to use reagents_to_add instead of a variety of custom methods or initialise overrides.
2020-07-05 20:47:48 +03:00
GeevesandGitHub 1f213e48c0 Description Consolidation (#9038)
I moved the desc_info to their parent thingies, because alt clicking the type and being sent to the description.dm was infuriating.
2020-06-10 09:03:44 +03:00
Wowzewow (Wezzy)andGitHub 6c3fbbfa76 Adds button and switch sounds when using machinery (#8195) 2020-02-07 14:33:30 +01:00
Geeves c6f95258db passenger compartments 2020-01-02 20:17:18 +02:00
CrosariusandErki e4d3993876 Forensics QOL Changes (#7758)
Makes it so that using the forensics item on certain machinery such as airlocks, alarms, APCs, buttons, windoors etc doesn't apply fingerprints/fibers. This is necessary because these machines will call add_fingerprint BEFORE the forensic kit is used, thus polluting the sample with your own fibers, which is extremely annoying

Also made it so that using a forensics item on a fire alarm or button doesn't make you trigger them, because that's also really annoying.

This is take 2 because the first time I messed up my branches/forks because my brain is smooth.
2020-01-02 11:49:51 +02:00
WernerandGitHub cb4a712851 Enforces Lineendings and adds Editorconfig (#7657) 2019-12-21 16:19:24 +01:00
Matt AtlasandErki df0cd6189a Brainmed Update (#7502)
gamer time.
2019-12-10 20:41:15 +02:00
Matt AtlasandWerner 88a319a574 Splitting human life into organs + removes the advanced operating table (#7473) 2019-11-25 07:23:16 +01:00
WernerandGitHub af16a489a6 Removes Weapons (#7415)
* Adds icon and hitsound where needed.

* Moves alt_attack to /obj/item and deletes weapons.dm

* Replaced /obj/item/weapon with /obj/item

* Fixes merge issues.

* Fix merge issues.
2019-11-16 18:36:13 +01:00
Lady FowlandErki d6ff38ef96 The Epic Construction Update (#5976)
How to build machine blueprints!

Use steel sheets like normal, then rotate the frame how you like it using the directional arrow. From here use a Multitool to finalize it and then wire it up like you would before.
2019-09-10 22:07:46 +03:00
alsoandanswerandWerner 53c5ff67a5 Fixes #6567, tidying up glass code and #6575, #6577 (#6576) 2019-06-25 17:39:04 +02:00
alsoandanswerandWerner e004413c18 adds cool animations (#6533) 2019-06-14 17:53:58 +02:00