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.
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>
This PR does the following changes:
It changes the name of the 'Smoking' tab in the loadout to 'Drugs and
Medicines'
It moves the psychiatric medicines from the Utility tab to this newly
renamed Drugs and Medicines tab
It adds a few basic OTC medicines, the same ones found in the OTC vendor
in the medical lobby (except for dexalin and dylovene)
It adds some legal recreational drugs that can be selected in the
loadout.
IMPORTANT: You will have to re-select items that you previously had in
the Smoking tab, and re-select your psychiatric medication.
Given that the pharmacist is given inhalers and autoinhalers to fill
every round with pneumalin, pulmo, dexalin, and whatever, I figured this
might've been an oversight.
Super helpful for Odyssey rounds when all the crew are going down and
medical wants to bring the entire fridge (8 autoinhalers + 2 inhalers +
4-6 small inhaler cartridges AND the bottles)
EDIT: Changed to only inhaler cartridges, not autoinhalers nor inhaler
bases.
Refactored the attack proc signature.
Added signals and components for the attack proc.
Added signals and components for the attackby proc.
Adjusted some leftover attackby procs signatures.
Added grep test to ensure people don't keep adding attack/attackby procs
with the wrong signature.
Refactored hitby to be in line with TG's version.
Refactored item weight defines to a more clear naming scheme, also in
line with TG's version.
Refactored how the movement bumps are handled, ported signals to handle
them, in preparation for the movement update.
Fixed disposal hit bouncing the hitting atom on the wall.
Items do not push other items anymore if they are tiny.
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>
* 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
* .
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.
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.
This pr adds the is_clumsy check, that checks if the mob has the mutation or if they are drunk enough. This fixes a bug where mobs would still have the clumsy mutation due to drinking.
Remapped Chemistry a bit to include more missing equipment, as well as to make it more spacious and less compact. AutoInhalers and autoinjectors were added to the chemistry locker. Most of stuff found in chemistry was added to the chemistry locker for space reasons. Medical belts can now store inhalers and inhaler cartridges. Same with the smartfridge.
Overview
This is the github WIP PR for the reagent system project. This is for other developers and users to track progress of the code if they're curious about it, as well as to show that it actually works.
Fixes#5162
Fixes food unable to be placed specifically. Applied the specific placing code to all reagent containers, except for syringes, hypospray, and inhalers.
Fixes missing Kelotane reagent for borg hypospray.
Fixes various runtime bugs caused due to not testing the requested changes, such as the inhalers not playing sounds or the breath analyzer not analyzing breath.
Also improves some things due to feedback, such as the breath analyzer doing too much damage when thrown, and the garden being weird.
The less controversial tweaks
Tweaked the metabolism rate of mental medication to reflect their intended values. Reduced the dosage threshold to suppress traumas to reflect their intended values.
Syringe (drugs) now contains truth serum.
Cardox is now slightly poisonous, and can directly remove phoron from blood when consumed. Cardox can now remove phoron in the air when applied to turfs.
A secure box of loyalty implants, hextrasenil pills, and cardox grenades are now located in the vault.
The vault now contains some misc emergency gear that a head of staff can access in case of a dire situation. Current gear are loyalty implants, expensive cardox grenades, and Hextrasenil pills.