This adds throw_alert() and /obj/screen/alert, a system that allows you
to do custom hud alerts for any variety of things from "You're too
cold!" to mecha status indicators for the pilot.
There's quite a few things that actually got replaced; the
fire/oxy/tox/co2 alerts are all now just alerts, as is nutrition. The
xenochimera feral indicator would probably be a good candidate for
conversion, but I didn't touch it in this PR. There's also a number of
new alerts, such as blindness, highness, legcuffed, buckled, handcuffed,
and probably some more I missed; read code/_onclick/hud/alert.dm and see
for yourself!
Additionally, a number of tweaks have been done to resisting code, to
make it so that there's an indicator when you're buckled or handcuffed,
and can just click the alert to start resisting. This includes a
refactor that combines the logic for lockers, holders, micros
escaping from shoes, and struggling in a gut all into one proc, called
container_resist(). This means that vore bellies actually no longer need
the resist override, but it's been left in place just in case someone
finds something else they want to use it for.
Also, the health and internals indicator got moved down one tile each.
Needed room for the alerts. If we add the oxygen tank action buttons
from /tg/ and remove the internals indicator, the health indicator can
go back where it was originally.
- Add additional can_atmos_pass value ATMOS_PASS_PROC which indicates custom behavior requiring calling the CanZASPass proc.
- The benefit being for the other three values we DON'T need to call CanZASPass at all! We already know the behavior without the overhead of a proc call.
- Obviously any atom with can_atmos_pass = ATMOS_PASS_PROC cannot now call ..() in CanZASPass() since the default behavior would be to (recursively) call CanZASPass()
- This required re-numbering the constants, so I also fixed all code that assumed particular values for the constants.
- Switched all types which overrode CanZASPass with custom logic to be can_atmos_pass = ATMOS_PASS_PROC
- Changed /turf/c_airblock() to skip calling /atom/movable/c_airblock() for the three can_atmos_pass values that don't require calling the proc.
- CanZASPass is supposed to return boolean. Nobody noticed this bug because ATMOS_PASS_YES and ATMOS_PASS_NO happen to be defined as 1 and 0. But thats not a good assumption to make, so lets fix it!
- Refactors First aid kits to be mostly autoinjector and pill based. No syringes, just autoinjectors and pills. Health analyzers are also removed.
Regular First Aid Kit: 3x Gauze, 2x Ointment, 1x Paracetamol pill bottle, 1x Inaprovaline pill bottle
Toxin First Aid Kit: 1x Dylovene Pill Bottle, 6x Dylovene Autoinjectors
Burn First Aid Kit: 1x Kelotane pill bottle, 6x Dermaline autoinjectors.
Oxy First Aid Kit: 5x Dexalin Plus autoinjectors, 1x Iron pill bottle, 1x Dexalin Pill Bottle
Adv First Aid Kit: Replaces Autoinjector with Assorted Pill bottle (3 Inaprov, 3 Dylovene, 2 Iron, 2 Tramadol, 3 Hyronalin, 1 Spaceacillin pills)
- Buffs default pill bottle contents. This narrows the effectiveness between autogenerated pills and pill bottles, and those brewed up by players.
- Splits Miner autoinjector into four seperate autoinjectors, one for each damage type. Reduces the price in the mining/exploration vendors.
- Tweaks Pill contents for a bit better consistency. Biggest change is that dexalin pills are 7.5u each.
- Changes Vermicetol chemical color to something more reddish.
- Overhauls Internals closet, removed O2 kits from them, adds more emergency spacesuits.
- Removes Organ Kits, Combat First Aid Kits now have a pill bottle with assorted organ repair pills.
- Surgical kits now have a regular health analyzer, and can hold health analyzers.