This check in Move() is not needed anymore, as orbit code handles all of that on it's own.
Removing it allows a ghost to move while orbiting itself without breaking the orbit.
Removes spawn from orbit proc, This allows atoms to override their orbit and use ..() to have code run before and after the orbit. Things that needed the spawn can spawn on their own.
Tweaks orbit's pre-orbit sleep to take into account the animation of the inital transform.
Ghost orbits have been given less checks, You can now re-orbit something and orbit yourself; Because why the fuck not.
Ghost orbits now change the orbit radius based on the icon size of the thing they are orbiting.(for orbiting the singulo) There is a few bugs with this, but they are byond bugs, and only come out at higher fpses.
The current code for runes is god-awful. Like, seriously terrible. This PR aims to fix that. Rather than having every rune effect defined in a single attack_hand proc, this PR will separate the runes into subtypes, which supports for more modular runes as well as cleans up the code.
It also separates invocation into a two different procs. The first of these will determine if the rune can be invoked; if that passes, the second will cause the rune's effects. There is also a third proc that will cause effects if the rune fails to invoke.
Research words have been removed, and all runes are now available from the start of the round. This is highly subject to change once some feedback is in from actual cult rounds.
Miscellaneous tweaks:
Blood boil runes now explode when used
Convert runes can now work solo, but take time
Armor runes now only provide the basic armor set
Tomes now do a static 15 burn damage and play a sound
If the Escape objective is rolled, the amount of people that must escape will scale with the round population to a factor of 5 (i.e. 50 players = 10 cultists)
This caused issues with mobs like borgs and simple mobs where they would be unable to move if admins put another ckey in the mob after they ghosted but there would be no clear indication as to why they couldn't move and in some cases, no way to un-rest without further admin intervention.
This functions the same way as editing the ckey in vv, and has the same permission checks
It requires the admin also be a ghost to avoid conflicts with other drag drop code.
Thanks @Ricotez
Also tweaks the wording of related verbs, procs, and variables to match
Moves the scope of the ghostimages (now ghost darkness images) var and updatedateallghostimages proc to the global space so other things can access them
Abuses client.images to get around the issue with flat see_invisible scaling not allowing for both being able to see ghosts while not seeing darkness layers.
Fixes the blobbernaut death animation looping.
Fixes armchair layer being above ghost layer.
Fixes chloral hydrate metabolization rate (and 2 other reagents)
Fixes a typo in closet/attack_self() .