tgstation/-tg-station — pull request #1812 by LaharlMontogmmery (2013-11-17 22:16:11+00:00)
Title: AI can now anchor/unanchor itself.

Add a Toggle Anchor Bolt verb to the AI that allows it to toggle his
'anchored' var and be dragged around. You cannot use the bolt verb in a
locker,disposal, pipe , on a mule or as a card.

Tested Interactions between AI and items :
-While the AI can be dragged, it cannot be pushed. You can however,
while dragging it, move it around on tiles(by clicking on said tile),if
you get stuck.
-Cannot be grabbed or click dropped into the gibber.
-Cannot be grabbed or click dropped into Cryo.
-Cannot be put in the DNA scanner.
-Cannot be put in the morgue, or the incinerator.
-CAN be grabbed or click dropped into a disposals bin, and flushed.
-CAN be put inside a locker. Once there's a locker below and you can
close it, you can drag the AI around - event if it's normally anchored.
If you open the closet while the AI is anchored, the Ai will still be in
a anchored state. Note that it's possible to do this trick without
needing to drag the Ai over a locker, PRIOR to this commit.
-Can drift in space, and can be mass-driver'd. Also Anchors don't work
in spess.Also Ai goes blind in spess. Honk.
-Can be pulled around on edges in space as normal, slip interaction
works normally.
-Can be telescience'd if unanchored.
-You can get on a mulebot!

Notable problem :
-Ai can be buckled/unbuckled to a chair, and when unbuckled it reverts
to an anchored state.Can be solved by using the verb again. Not a real
issue, but notable.
-Dragging an AI in open space can be a bit of a problem. If you take
sharp turns while jetpacking, the Ai will still drift in the previous
direction. You can stop the AI course by jumping by getting in front of
it. Dead AIs were however able to go through you, but Gia found a fix.

"Doesn't that defeat the purpose of the intellicard?"
No, because you only use the card for 3 cases :

1. In case of Rogue AIs, and it is unlikely it will let you drag it
around.
2. In case od dead AIs, in which case it will still need to be carded in
order to be resurected.
3. In order to steal the AI, and generally they don't like that as well.

So the intellicard will still show uses if this commit gets pulled.

Many thanks to Giacommand for babysitting me and helping me through the
coding and testing stages of this commit. Also, first baby commit, ho!
I've thought of this when Gia decided to change Telescience to not drag
anchored mobs, and realised that this create a lot of fun options for
the AI (rogue or not). Most of the interactions seems to be clear of
bugs, and I didn't get any runtimes when testing (except something about
NanoUI, but Gia and me assumed it was unrelated.)