mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-16 18:45:22 +01:00
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:
@@ -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."
|
||||
|
||||
|
||||
Reference in New Issue
Block a user