diff --git a/code/defines/area/Space Station 13 areas.dm b/code/defines/area/Space Station 13 areas.dm
index 77217d93aa..7fae9a887a 100644
--- a/code/defines/area/Space Station 13 areas.dm
+++ b/code/defines/area/Space Station 13 areas.dm
@@ -420,10 +420,14 @@
name = "Thunderdome (Team 2)"
icon_state = "yellow"
-/area/tdome/tdomea
+/area/tdome/tdomeadmin
name = "Thunderdome (Admin.)"
icon_state = "purple"
+/area/tdome/tdomeobserve
+ name = "Thunderdome (Observer.)"
+ icon_state = "purple"
+
/area/medical/medbay
name = "Medbay"
icon_state = "medbay"
diff --git a/code/defines/global.dm b/code/defines/global.dm
index d839b123f1..b3fccdae07 100644
--- a/code/defines/global.dm
+++ b/code/defines/global.dm
@@ -107,6 +107,8 @@ var
list/mazewarp = list()
list/tdome1 = list()
list/tdome2 = list()
+ list/tdomeobserve = list()
+ list/tdomeadmin = list()
list/prisonsecuritywarp = list() //prison security goes to these
list/prisonwarped = list() //list of players already warped
list/blobstart = list()
diff --git a/code/game/landmarks.dm b/code/game/landmarks.dm
index 7d2cfa1b30..20d3ad835b 100644
--- a/code/game/landmarks.dm
+++ b/code/game/landmarks.dm
@@ -42,6 +42,10 @@
tdome1 += src.loc
if (name == "tdome2")
tdome2 += src.loc
+ if (name == "tdomeadmin")
+ tdomeadmin += src.loc
+ if (name == "tdomeobserve")
+ tdomeobserve += src.loc
//not prisoners
if (name == "prisonsecuritywarp")
prisonsecuritywarp += src.loc
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 2da27d8ca3..80d4a59611 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -413,38 +413,99 @@ var/showadminmessages = 1
if (href_list["tdome1"])
if ((src.rank in list( "Administrator", "Secondary Administrator", "Primary Administrator", "Shit Guy", "Coder", "Host" )))
var/mob/M = locate(href_list["tdome1"])
- for(var/obj/item/W in M)
- if (istype(W,/obj/item))
- M.u_equip(W)
- if (M.client)
- M.client.screen -= W
- if (W)
- W.loc = M.loc
- W.dropped(M)
- W.layer = initial(W.layer)
- // M.revive()
- M.loc = pick(tdome1)
- log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 1)")
- message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 1)", 1)
- M << "\blue You have been sent to the Thunderdome."
+ if (ismob(M))
+ if(istype(M, /mob/living/silicon/ai))
+ alert("The AI can't be sent to the thunderdome you jerk!", null, null, null, null, null)
+ return
+ for(var/obj/item/W in M)
+ if (istype(W,/obj/item))
+ if(istype(W, /datum/organ/external))
+ continue
+ M.u_equip(W)
+ if (M.client)
+ M.client.screen -= W
+ if (W)
+ W.loc = M.loc
+ W.dropped(M)
+ W.layer = initial(W.layer)
+ M.paralysis += 5
+ sleep(5)
+ M.loc = pick(tdome1)
+ spawn(50)
+ M << "\blue You have been sent to the Thunderdome."
+ log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 1)")
+ message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 1)", 1)
if (href_list["tdome2"])
if ((src.rank in list( "Administrator", "Secondary Administrator", "Primary Administrator", "Shit Guy", "Coder", "Host" )))
var/mob/M = locate(href_list["tdome2"])
- for(var/obj/item/W in M)
- if (istype(W,/obj/item))
- M.u_equip(W)
- if (M.client)
- M.client.screen -= W
- if (W)
- W.loc = M.loc
- W.dropped(M)
- W.layer = initial(W.layer)
- // M.revive()
- M.loc = pick(tdome2)
- log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 2)")
- message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 2)", 1)
- M << "\blue You have been sent to the Thunderdome."
+ if (ismob(M))
+ if(istype(M, /mob/living/silicon/ai))
+ alert("The AI can't be sent to the thunderdome you jerk!", null, null, null, null, null)
+ return
+ for(var/obj/item/W in M)
+ if (istype(W,/obj/item))
+ if(istype(W, /datum/organ/external))
+ continue
+ M.u_equip(W)
+ if (M.client)
+ M.client.screen -= W
+ if (W)
+ W.loc = M.loc
+ W.dropped(M)
+ W.layer = initial(W.layer)
+ M.paralysis += 5
+ sleep(5)
+ M.loc = pick(tdome2)
+ spawn(50)
+ M << "\blue You have been sent to the Thunderdome."
+ log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 2)")
+ message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 2)", 1)
+
+ if (href_list["tdomeadmin"])
+ if ((src.rank in list( "Administrator", "Secondary Administrator", "Primary Administrator", "Shit Guy", "Coder", "Host" )))
+ var/mob/M = locate(href_list["tdomeadmin"])
+ if (ismob(M))
+ if(istype(M, /mob/living/silicon/ai))
+ alert("The AI can't be sent to the thunderdome you jerk!", null, null, null, null, null)
+ return
+ M.paralysis += 5
+ sleep(5)
+ M.loc = pick(tdomeadmin)
+ spawn(50)
+ M << "\blue You have been sent to the Thunderdome."
+ log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Admin.)")
+ message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Admin.)", 1)
+
+ if (href_list["tdomeobserve"])
+ if ((src.rank in list( "Administrator", "Secondary Administrator", "Primary Administrator", "Shit Guy", "Coder", "Host" )))
+ var/mob/M = locate(href_list["tdomeobserve"])
+ if (ismob(M))
+ if(istype(M, /mob/living/silicon/ai))
+ alert("The AI can't be sent to the thunderdome you jerk!", null, null, null, null, null)
+ return
+ for(var/obj/item/W in M)
+ if (istype(W,/obj/item))
+ if(istype(W, /datum/organ/external))
+ continue
+ M.u_equip(W)
+ if (M.client)
+ M.client.screen -= W
+ if (W)
+ W.loc = M.loc
+ W.dropped(M)
+ W.layer = initial(W.layer)
+ if(istype(M, /mob/living/carbon/human))
+ var/mob/living/carbon/human/observer = M
+ observer.equip_if_possible(new /obj/item/clothing/under/suit_jacket(observer), observer.slot_w_uniform)
+ observer.equip_if_possible(new /obj/item/clothing/shoes/black(observer), observer.slot_shoes)
+ M.paralysis += 5
+ sleep(5)
+ M.loc = pick(tdomeobserve)
+ spawn(50)
+ M << "\blue You have been sent to the Thunderdome."
+ log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Observer.)")
+ message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Observer.)", 1)
if (href_list["adminauth"])
if ((src.rank in list( "Administrator", "Secondary Administrator", "Primary Administrator", "Shit Guy", "Coder", "Host" )))
@@ -560,6 +621,8 @@ var/showadminmessages = 1
foo += text("Make AI | ")
foo += text("Thunderdome 1 | ")
foo += text("Thunderdome 2 | ")
+ foo += text("Thunderdome Admin | ")
+ foo += text("Thunderdome Observer | ")
foo += text("Prison | ")
foo += text("Maze | ")