hypospray update (and small reagent touchups) (and small clothing flags touchup) (#5562)

## About The Pull Request

replaces our hyposprays with.. well, better hyposprays
adds hypospray kits to medical

sprites courtesy of @granodd and aurora 😊 

furthermore, upgrades reagent system a bit (initial paths on recipes
instead of ids only) and buffs small beakers/bottles to be smaller to be
on par with large beakers, for volume efficiency.

## Why It's Good For The Game

syringes are boring and our hyposprays + their vials are shit, let's
make something cool and flashy to standardize on medical.
this is the future / sci fi, after all.

as for why to rebalance beakers/bottles:

we already have large beakers that store 2x. with the same space. it's
kind of silly to just lock this capability behind having an autolathe.

## Changelog

🆑
add: new hyposprays and hypospray vials
balance: beakers/bottles are now smaller.
add: injection port clothing flag
/🆑

---------

Co-authored-by: silicons <no@you.cat>
This commit is contained in:
silicons
2023-06-06 10:16:59 -04:00
committed by GitHub
co-authored by silicons
parent d9abff771d
commit 104cb8693b
86 changed files with 1018 additions and 293 deletions
@@ -30,21 +30,24 @@ PROCESSING_SUBSYSTEM_DEF(chemistry)
* - more than one chemical it will still only appear in only one of the sublists.
*/
/datum/controller/subsystem/processing/chemistry/proc/initialize_chemical_reactions()
var/paths = typesof(/datum/chemical_reaction) - /datum/chemical_reaction
var/paths = subtypesof(/datum/chemical_reaction)
chemical_reactions = list()
chemical_reactions_by_reagent = list()
for(var/path in paths)
var/datum/chemical_reaction/D = new path
chemical_reactions += D
if(D.required_reagents && D.required_reagents.len)
var/reagent_id = D.required_reagents[1]
LAZYINITLIST(chemical_reactions_by_reagent[reagent_id])
chemical_reactions_by_reagent[reagent_id] += D
tim_sort(chemical_reactions, /proc/cmp_chemical_reaction_priority)
for(var/datum/chemical_reaction/D as anything in chemical_reactions)
if(!length(D.required_reagents))
continue
var/reagent_id = D.required_reagents[1]
LAZYINITLIST(chemical_reactions_by_reagent[reagent_id])
chemical_reactions_by_reagent[reagent_id] += D
/// Chemical Reagents - Initialises all /datum/reagent into a list indexed by reagent id
/datum/controller/subsystem/processing/chemistry/proc/initialize_chemical_reagents()
var/paths = typesof(/datum/reagent) - /datum/reagent
var/paths = subtypesof(/datum/reagent)
reagent_lookup = list()
for(var/datum/reagent/path as anything in paths)
if(initial(path.abstract_type) == path)