Nuclear Operatives can now order a Syndicate Borg for 20TC. After
spawned, a candidate from ghosts is chosen to control it.
It has a 25k cell and the following modules:
-Emag
-Esword
-Ebow
-Laser Rifle
-Jetpack
All weapons use 100 charge per shot.
2 borg rechargers have been added to the Syndicate Shuttle for the
Syndieborgs to use.
Changelog will be added in a separate commit.
*TABLEPASS was already totally obsolete.
FPRINT was used, but it was on virtually everything anyway.
Removes those flags from every instance where they were used. Also assigned and removed other flags where it made sense.
If it is desired, I can revive the flag as NOFPRINT, which would retain the original functionality, though inverted. That way it would be be used only where it was intentional (holodeck items could use this for example).
* Added sprites for the stacking machine going in the reverse direction, just set the dir to 1 instead of 2.
* Added prison intercoms which will not broadcast until someone hacks it. Added these intercoms in the gulag, the perma brig and the brig cells.
* When a prisoner has received enough points for freedom, if they try to move the shuttle, or open the middle door, while someone is on it they will get an error message. This way there is no way for a free'd prisoner to release their fellow prisoners once they have reached their point target. The shuttle will depart right away when you call the shuttle from the stacking console, to stop prisoners from getting on while it departs.
All the logging i have found in the code was changed to use the
proc(maybe i missed something)
Killed all runtimes found so far
Proc now handles all the checks, no need to add checks in the body of
object
Crossed() is a byond builtin which is called automatically when two movable atoms overlap (as a side effect of Move(), but not when loc or x/y/z is changed). Previously, turf/Entered() iterated through all objects in the turf in order to tell them an object had entered; with this change, HasEntered() becomes redundant and can be eliminated.
This may reduce lag when a large number of objects are moving in a small space (singularity, mining conveyors, etc) but should cause no changes to functionality at all.
When you construct a cyborg now, the endoskeleton is stored in the mob, where before it was deleted.
Cyborg deconstruction now checks if there is a stored endoskeleton. If there is, it deconstructs it. If there isn't, it spawns new parts like before.
Also, there is now a burn_out proc for flashes, since the feature was previously copypasta.
* Fixes the ( shaped cyan wire
* Fixes a luminosity bug with glowshrooms.
* Changes a ridiculous internal loop in intercoms to use the MC.
* Makes intercoms not be bloodied by bloody hands.
* Adds a "NOBLOODY" flag for atoms that don't want to be bloodied.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Adjusts the click code to not use client/Click(). The code is largely unchanged, except that it allows the compiler default behaviour of calling atom/Click(), and then forwards the call to mob/ClickOn(). I had some reports that melee combat mixed with movement was behaving oddly, and I believe it may be due to the use of client/Click; the byond documentation says that redefining client/Click() causes additional overhead, and it isn't strictly necessary.
Alters the way double clicks are handled, in an attempt to better handle clickspam, as often occurs during pitched combat. This may also be responsible for the above, but I don't know.
Inserts proximity (aka flag) checks in all afterattack() procs. The old assumption was that unless an item used the USEDELAY flag, afterattack() was only called when adjacent, but this is no longer true. This led to beakers, soap, crayons, etc, all being usable at all ranges.
Removes the NODELAY flag, which was unused. Removes all existing uses of the USEDELAY flag so that it can be readded to things that need extra delay.
Removes the hand_* procs, previously used by restrained actions. Instead, the mob helper mob/RestrainedClickOn() has abosrbed basically all the functionality they were used for, which is really only monkeys with jungle fever.
Adds a special case of the Adjacency() proc for doors. This fixes#136, airlocks being unreachable due to border fire doors. However, this only takes us back to the unpleasant position where you have to open-hand the door, switch to a crowbar, and pry open the firedoor; it still needs a better fix.
The voice analyser will listen to the keyword now even when not secured
(enabling it to be directly used on grenade casings and tank transfer
valves).
Adds missing related proc to tank transfer valve.