Posibrain talking without a language, give speech bubbles to things inside things, especially posibrains, give gibberish a chance instead of using null languages
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.
* Fixes chairs/beds/etc acting as handcuffs.
It's been at least 7 years without anyone noticing a broken feature with a false comment so the unintentional "balancing" caused by this may have ingrained a standard some folks would rather keep in, but that kind of nerfs have proper ways of implementing at their own appropriate places in the code.
Basically this just lets folks use hands when buckled. May also have a side effect of allowing self-surgery if it never had a proper prevention method implemented. Keeps an exception for xeno nests tho. Any other seat has no reason to be handcuffs.
* Fixes another thing causing chairs to incapacitate
"Are you seated" and "Are you incapacitated" should not be used as the same thing yet here we are.
I should probably also do a refactor to remove all the inappropriate use of canmove var. Seriously, even the specifically cartridge exclusive PDA menu buttons are using that for what???
* Laser pointers
Adds laser pointers, ported from tg/oldaurora (but heavily modified). They can be found in the loadout, as well as made by science. Science can also upgrade them, which makes them occasionally useful for blinding people, too.
The bugfixes which make several of the features work properly will come in a separate commit.
* Three fixes
Cats now have resting sprites for all 4 directions, instead of just east. This was needed to make cats look like they're pouncing on the laser dot.
Cameras can now be EMPed more than once, and EMPs actually are able to disable them now. This was needed for the shining lasers into cameras feature.
Flash_eyes() now actually displays a flashing animation on your screen when you get flashed (except for silicons, who for some reason are excluded from this unless EMPed). This was needed for laser pointers to have a temporary "blinding" effect when shone into someone's eyes.
(removes errant debug message too, whoops)
* Nerf
Reduced chances of laser pointers doing anything useful on silicons.
Also, fixes a duplicated proc, oops.
* Requested changes
Minor changes as requested - 'cell' to 'diode', view() to viewers(), range() to viewers().
Stops buckled or dead cats from reacting to laser pointers. Zombie cats are fun, but no.
Also, does another small nerf to the effects on silicons.
Adds a HUD when controlling a simple animal. Allows intents, mostly harm and help if they don't have hands. Disarm and grab if they do. Gives them a generic hud, and adds a var to decide if they have hands or not. Adds a var printed to any client that joins into a mob to explain how to play them, or lore stuff, or whatever you feel like.
* Fixes#4632.
* 1:27 am coding best coding
* fixes a warning
* Removes the last of the gender macros. Gender is dead.
* gender II: the travis-ing
* linebreaks are dead too.
* oops i accidentally the gender, also ambiguous gender is now taken into account for get_visible_gender
* Polaris initial plane upstream merge
* POLARIS: Fix RIG visors with new plane system, and material scanner VIS_FULLBRIGHT
* POLARIS: Fix GetFlatIcon so that cameras and id pictures don't show the HUD overlays.
* POLARIS: Adds a 'alter values' proc for plane master ease of tweaking
Setting stuff like colorblindness variety and things.
* Remove NIF reference, fix lighting layer define
* Handle effects above lighting plane
* Moved all layer defines to planes+layers.dm
* Fixed overlays that are supposed to be above lighting to use the PLANE_LIGHTING_ABOVE
* Merge: 3000% human/update_icons() speed improvement
* Merge: Avoid ghosts pointing at things