This commit does a *lot*
Main points of shit changed:
- Breathing for carbons is now partially handled at a carbon/Life()
level; Humans still use their species bullshit and all.
- Most shit has been pushed up the chain to living/Life().
- Simple_animals no longer use the fucking stupid Die() proc, they use
death() like a consistant fucker.
- Human vision is now handled via species.
- Lots and lots of robot copypasta cleaned
- AI is still a terrifying mess, not even -tg- touches it
I have tested this, and everything I thought to test worked:
- Aliens breathing
- Humans breathing
- Human vision
- Robot HUD
- human HUD
- Simple animals automatic systems
- Simple animals dying properly
- Robot goggles working
This commit first and foremost ports the -tg- atom pooling system, and
removes the old experimental system entirely.
Secondly, this PR modifies the qdel system to use a -tg- lookalike
"destroy hint" system, which means that individual objects can tell qdel
what to do with them beyond taking care of things they need to delete.
This ties into the atom pooling system via a new hint define,
QDEL_HINT_PUTINPOOL, which will place the atom in the pool instead of
deleting it as per standard.
Emitter beams are now fully pooled.
Qdel now has semi-compatibility with all datum types, however it is not
the same as -tg-'s "Queue everything!" system. It simply passes it through
the GC immediately and adds it to the "hard del" lists. This means that
reagents can be qdel'ed, but there is no purpose as of yet, as it is more
or less the same as just deleting them, with the added effect of adding
logs of them being deleted to the garbage collector.
Blob will now eat items placed on it.
Blob does not produce light anymore (take that dionas)
Shield blobs now have same brute resist as normal blobs
Attempted to lower the CPU load of the "Pulse" proc.
Blob spores that pass over the dead will now couple with the corpses to create blob zombies that are stronger and more resiliant than the spore alone. Should the blob zombie fall the original corpse is recovered and just as cloneable as it was before infection. These are simple animals not under the control of anyone.
Blob zombies will occur automatically if a blob finds a corpse under it and it's not already a zombie. Blob zombies have a base 80 health (normal blobs have 40) and gain additional health if the host body is wearing armor. They don't however actually gain the normal benefits of wearing the armor.
Blob zombies attack for 10 to 15 damage per strike, as opposed to the paltry 2 to 4 a hostless spore does.
Why this is good for the overmind:
The overmind cannot directly command the creation of zombies but can rally spores to a corpse's location to largely assure it will happen by itself. Blob zombies still follow rally spore commands and still count towards a factory blobs spore limit. As previously shown they're far more robust than spores and also deny the crew the ability to clone the victim until the zombie is defeated.
Why this is good for the crew:
Remember when the warden kamakazied the blob at the start of the round only to be engulfed and killed with the entire armory in his backpack? You can get those guns back now, because the warden's corpse will soon be moving to a very recoverable location! This also promotes not letting people die pointlessly to the blob or at least dragging corpses away from the blob (and hopefully to genetics) so they can't be infected.
Conflicts:
code/game/gamemodes/blob/blobs/factory.dm
icons/mob/blob.dmi
Removed all critter code/replaced it with their simple animal paths where applicable.
Replaced the critters on the maps with simple_animal versions.
If I missed any vars/icons/etc when I ported them over, let me know.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5210 316c924e-a436-60f5-8080-3fe189b3f50e
All credits to the author for this handy little script.
I Committed the modified python script to tool directory. Although it needs to be in the root folder of your repo to work.
To notice the improved compile times, in dreammaker go to Build > Preferences > and untick "automatically set file_dir for subfolders"
If this commit inteferes with any large projects just revert it, do your thing, then rerun the script. Easy-peasy.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4488 316c924e-a436-60f5-8080-3fe189b3f50e