diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 567072e02f0..60d65ed7931 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -1716,4 +1716,39 @@ var/mob/dview/dview_mob = new
return isnull(B.gcDestroyed)
if(istype(A, /client))
return 1
- return 0
\ No newline at end of file
+ return 0
+
+//ORBITS
+/atom/movable/var/atom/orbiting = null
+//This is just so you can stop an orbit.
+//orbit() can run without it (swap orbiting for A)
+//but then you can never stop it and that's just silly.
+
+/atom/movable/proc/orbit(atom/A, radius = 10, clockwise = 1, angle_increment = 15)
+ if(!istype(A))
+ return
+ orbiting = A
+ var/angle = 0
+ var/matrix/initial_transform = matrix(transform)
+ spawn
+ while(orbiting)
+ loc = orbiting.loc
+
+ angle += angle_increment
+
+ var/matrix/shift = matrix(initial_transform)
+ shift.Translate(radius,0)
+ if(clockwise)
+ shift.Turn(angle)
+ else
+ shift.Turn(-angle)
+ animate(src,transform = shift,2)
+
+ sleep(0.6) //the effect breaks above 0.6 delay
+ animate(src,transform = initial_transform,2)
+
+
+/atom/movable/proc/stop_orbit()
+ if(orbiting)
+ loc = get_turf(orbiting)
+ orbiting = null
diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm
index 4f4d23b739d..49149671f56 100644
--- a/code/game/objects/items/weapons/handcuffs.dm
+++ b/code/game/objects/items/weapons/handcuffs.dm
@@ -91,34 +91,34 @@ var/last_chew = 0
/obj/item/weapon/restraints/handcuffs/cable
name = "cable restraints"
desc = "Looks like some cables tied together. Could be used to tie something up."
- icon_state = "cuff_red"
+ icon_state = "cuff_white"
item_state = "coil_red"
breakouttime = 300 //Deciseconds = 30s
cuffsound = 'sound/weapons/cablecuff.ogg'
/obj/item/weapon/restraints/handcuffs/cable/red
- icon_state = "cuff_red"
+ color = COLOR_RED
/obj/item/weapon/restraints/handcuffs/cable/yellow
- icon_state = "cuff_yellow"
+ color = COLOR_YELLOW
/obj/item/weapon/restraints/handcuffs/cable/blue
- icon_state = "cuff_blue"
+ color = COLOR_BLUE
/obj/item/weapon/restraints/handcuffs/cable/green
- icon_state = "cuff_green"
+ color = COLOR_GREEN
/obj/item/weapon/restraints/handcuffs/cable/pink
- icon_state = "cuff_pink"
+ color = COLOR_PINK
/obj/item/weapon/restraints/handcuffs/cable/orange
- icon_state = "cuff_orange"
+ color = COLOR_ORANGE
/obj/item/weapon/restraints/handcuffs/cable/cyan
- icon_state = "cuff_cyan"
+ color = COLOR_CYAN
/obj/item/weapon/restraints/handcuffs/cable/white
- icon_state = "cuff_white"
+ color = COLOR_WHITE
/obj/item/weapon/restraints/handcuffs/pinkcuffs
name = "fluffy pink handcuffs"
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index 574a3445ce0..38a1c5e927e 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -560,14 +560,14 @@ obj/structure/cable/proc/cableColor(var/colorC)
if(ishuman(M) && !M.restrained() && !M.stat && !M.paralysis && ! M.stunned)
if(!istype(usr.loc,/turf)) return
if(src.amount <= 14)
- usr << "\red You need at least 15 lengths to make restraints!"
+ usr << "You need at least 15 lengths to make restraints!"
return
var/obj/item/weapon/restraints/handcuffs/cable/B = new /obj/item/weapon/restraints/handcuffs/cable(usr.loc)
- B.icon_state = "cuff_[color]"
- usr << "\blue You wind some cable together to make some restraints."
+ B.color = color
+ usr << "You wind some cable together to make some restraints."
src.use(15)
else
- usr << "\blue You cannot do that."
+ usr << "You cannot do that."
..()
// Items usable on a cable coil :
diff --git a/paradise.dme b/paradise.dme
index f0ae528ffd2..0dfa37de316 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -21,7 +21,6 @@
#include "code\__DEFINES\clothing.dm"
#include "code\__DEFINES\combat.dm"
#include "code\__DEFINES\flags.dm"
-#include "code\__DEFINES\game.dm"
#include "code\__DEFINES\genetics.dm"
#include "code\__DEFINES\hud.dm"
#include "code\__DEFINES\language.dm"
@@ -223,7 +222,6 @@
#include "code\datums\wires\particle_accelerator.dm"
#include "code\datums\wires\radio.dm"
#include "code\datums\wires\robot.dm"
-#include "code\datums\wires\smartfridge.dm"
#include "code\datums\wires\syndicatebomb.dm"
#include "code\datums\wires\taperecorder.dm"
#include "code\datums\wires\vending.dm"
@@ -1391,7 +1389,6 @@
#include "code\modules\mob\living\silicon\robot\drone\drone_damage.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone_items.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm"
-#include "code\modules\mob\living\simple_animal\ascendant_shadowling.dm"
#include "code\modules\mob\living\simple_animal\bees.dm"
#include "code\modules\mob\living\simple_animal\borer.dm"
#include "code\modules\mob\living\simple_animal\constructs.dm"
@@ -1517,7 +1514,6 @@
#include "code\modules\power\lighting.dm"
#include "code\modules\power\port_gen.dm"
#include "code\modules\power\power.dm"
-#include "code\modules\power\powernet.dm"
#include "code\modules\power\smes.dm"
#include "code\modules\power\solar.dm"
#include "code\modules\power\switch.dm"