This commit fixes a number of bugs with mob grabbing code.
Primary things fixed:
- Aliens grabbing people will no longer break horribly, they call
grabbedby like everything else now.
- Any nulls that do manage to find their way into a grab list will be
cleaned up by the next grab on that person.
- Fixed a number of odd behaviours when grabbing xenomorphs, see
bbcc19c764 for more details.
- Fixed grabs having a tendency to shift someone's pixel_xy and not reset
it when being deleted. This was simply because it previously relied on
del() to stop all procs instantly.
This commit adds a number of new hallucinations and increases the
modularness of the hallucination system. Included hallucinations:
- Alien Hunter
- Alien hunter comes out of the nearest vent, leaps and stuns you, then
crawls back into the vent.
- Plasma flood
- Singularity
- Stage 4 singularity appears and chases you.
- Fight sounds
- Series of sounds that sound like a fight.
- Clown-visions
- Delusion, which makes an image of a mob standing still.
- Fake bolted doors
- A number of doors will appear to become bolted, via overlay.
- Fake speech/radio messages.
- This makes it appear as if someone has said something, either via
speech or radio, using one language from their avalible languages.
Radio messages will only happen if there are no people in view to say
something.
Admin freezing is now based on mob procs, instead of a lengthy else-if
change.
Other changes:
- No longer depends on paralysis, instead uses sleeping.
- No more frozen mobs setting off bombs.
- Simple animals and slimes override the default proc to make freezing
affect them as one would expect.
- Frozen var has been moved from human defines to living defines, no use
yet.
- Mobs frozen are added to a global 'admin_frozen_mobs' list.
- List is used to determine if the freeze verb should freeze or unfreze.
- Moved mob freeze-related vars to freeze file.