Polymorph retains name and equipment (where possible) (#18587)

Fixes bug where wabbajack statue's eyes didn't close

Removes indentation and tidies the wabbajack() proc

Corrected an inaccurate comment in mob.dm

Mass Polymorph no longer uses a spawn()

Adds syndicate medical borg, cak to possible forms

Polymorphed drones now have random appearances

GODMODE mobs are now immune to polymorph

Wabbajack altars now ghost their sleepers after 10 seconds, 
because they tend to just be abandoned and left there. It's 
all a dream to them, if and when they get pulled from the altar.
This commit is contained in:
coiax
2016-06-16 22:36:47 +01:00
committed by oranges
parent dfc6df579a
commit 598daee493
7 changed files with 202 additions and 163 deletions
+21 -4
View File
@@ -11,6 +11,7 @@
icon_state = "wabbajack_statue"
icon_state_on = "wabbajack_statue_on"
var/list/active_tables = list()
var/tables_required = 2
active = FALSE
/obj/machinery/power/emitter/energycannon/magical/New()
@@ -27,18 +28,17 @@
/obj/machinery/power/emitter/energycannon/magical/process()
. = ..()
if(active_tables.len >= 2)
if(active_tables.len >= tables_required)
if(!active)
visible_message("<span class='revenboldnotice'>\
[src] opens its eyes.</span>")
update_icon()
active = TRUE
else
if(active)
visible_message("<span class='revenboldnotice'>\
[src] closes its eyes.</span>")
update_icon()
active = FALSE
update_icon()
/obj/machinery/power/emitter/energycannon/magical/attack_hand(mob/user)
@@ -55,6 +55,8 @@
/obj/structure/table/abductor/wabbajack
name = "wabbajack altar"
desc = "Whether you're sleeping or waking, it's going to be \
quite chaotic."
health = 1000
verb_say = "chants"
var/obj/machinery/power/emitter/energycannon/magical/our_statue
@@ -77,6 +79,12 @@
our_statue = M
break
if(!our_statue)
name = "inert [name]"
return
else
name = initial(name)
var/turf/T = get_turf(src)
var/list/found = list()
for(var/mob/living/carbon/C in T)
@@ -90,7 +98,8 @@
L.visible_message("<span class='revennotice'>A strange purple glow \
wraps itself around [L] as they suddenly fall unconcious.</span>",
"<span class='revendanger'>[desc]</span>")
// Don't let them sit suround unconscious forever
addtimer(src, "sleeper_dreams", 100, FALSE, L)
// Existing sleepers
for(var/i in found)
@@ -103,6 +112,7 @@
L.color = initial(L.color)
L.visible_message("<span class='revennotice'>The glow from [L] fades \
away.</span>")
L.grab_ghost()
sleepers = found
@@ -114,6 +124,13 @@
else
our_statue.active_tables -= src
/obj/structure/table/abductor/wabbajack/proc/sleeper_dreams(mob/living/sleeper)
if(sleeper in sleepers)
sleeper << "<span class='revennotice'>While you slumber, you have \
the strangest dream, like you can see yourself from the outside.\
</span>"
sleeper.ghostize(TRUE)
/obj/structure/table/abductor/wabbajack/left
desc = "You sleep so it may wake."