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.
This commit first adds a new helper proc labeled isAntag(), as well as
adding a check for antags for every instance of msg_admin_attack().
Goals of this commit:
- Make admin ATTACK: logs indicate if attacker is an antagonist.
Note; High probability of merge conflicts, 47 files changed.
- Adds ABSTRACT flag to relevant items, removes abstract var.
- Adds checks for ABSTRACT where relevant.
- Also removes extra define of golem gas mask.
- Adds NODROP to changeling mutations so I don't have to do that later.
- Also adds ABSTRACT and NODROP flags in preparation for removal of
canremove and abstract vars.
- Sorts some of the setup.dm flags so they're in order.
- Replaces 'flags & 2' in policetape.dm with pass_flags & PASSTABLE,
should have the same effect.
- All weapons now have a 'no_embed' var. If this var is set to 1 (It is
0 by default) the item will bypass checks to embed into people during
melee combat and when thrown. This is intended to be used for items such
as the esword, where it is physically impossible for it to be embedded
into someone, as opposed to something like the telebaton, where it's
simply improbably that would get embedded into anyone.
- All energy-based melee weapons have no_embed set to 1.
- All energy-based melee weapons now have a more appropriate hitsound
when active. See: blade1.ogg
Traitor item, cmo/doctor/virologist only. 3 TC cost, looks like a
health analyzer but is a delayed radiation + stun effect on attack. Has
recharge time and configurable settings.
Fox did most of the work, I just fixed it.
Both internal and external organs are a mess, which is making
maintaining and updating them nasty, so I'm cleaning them up, this is
the first stage
mechanical and assisted internal organs are now an object type rather
than a var in the organ which makes it much cleaner and easier to adjust
removed duplicate list of internal organs as there's no reason to have
the same objects in 2 separate lists
made New() a lot cleaner and more robust
External organs will be next
now uses a couple of new procs, allowing for per-suit tweaking of time.
You now cannot equip eva helms without first attaching them to the suit
(target head use helmet on suit)