diff --git a/code/defines/area/Space Station 13 areas.dm b/code/defines/area/Space Station 13 areas.dm
index a8a20360e87..ad162688327 100644
--- a/code/defines/area/Space Station 13 areas.dm
+++ b/code/defines/area/Space Station 13 areas.dm
@@ -142,12 +142,15 @@ proc/process_ghost_teleport_locs()
music = "music/escape.ogg"
/area/shuttle/escape/station
+ name = "Emergency Shuttle Station"
icon_state = "shuttle2"
/area/shuttle/escape/centcom
+ name = "Emergency Shuttle Centcom"
icon_state = "shuttle"
/area/shuttle/escape/transit // the area to pass through for 3 minute transit
+ name = "Emergency Shuttle Transit"
icon_state = "shuttle"
/area/shuttle/escape_pod1
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 9fa33a2efef..e31e6897500 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -65,6 +65,75 @@ var/global/BSACooldown = 0
alert("You cannot perform this action. You must be of a higher administrative rank!")
return
+
+ if(href_list["simplemake"])
+
+ if(!href_list["mob"])
+ usr << "Invalid mob"
+ return
+
+ var/mob/M = locate(href_list["mob"])
+
+ if(!M || !ismob(M))
+ usr << "Cannot find mob"
+ return
+
+ var/delmob = 0
+ var/option = alert("Delete old mob?","Message","Yes","No","Cancel")
+ if(option == "Cancel")
+ return
+ if(option == "Yes")
+ delmob = 1
+
+ switch(href_list["simplemake"])
+ if("observer")
+ M.change_mob_type( /mob/dead/observer , null, null, delmob)
+ if("drone")
+ M.change_mob_type( /mob/living/carbon/alien/humanoid/drone , null, null, delmob)
+ if("hunter")
+ M.change_mob_type( /mob/living/carbon/alien/humanoid/hunter , null, null, delmob)
+ if("queen")
+ M.change_mob_type( /mob/living/carbon/alien/humanoid/queen , null, null, delmob)
+ if("sentinel")
+ M.change_mob_type( /mob/living/carbon/alien/humanoid/sentinel , null, null, delmob)
+ if("larva")
+ M.change_mob_type( /mob/living/carbon/alien/larva , null, null, delmob)
+ if("human")
+ M.change_mob_type( /mob/living/carbon/human , null, null, delmob)
+ if("metroid")
+ M.change_mob_type( /mob/living/carbon/metroid , null, null, delmob)
+ if("adultmetroid")
+ M.change_mob_type( /mob/living/carbon/metroid/adult , null, null, delmob)
+ if("monkey")
+ M.change_mob_type( /mob/living/carbon/monkey , null, null, delmob)
+ if("robot")
+ M.change_mob_type( /mob/living/silicon/robot , null, null, delmob)
+ if("cat")
+ M.change_mob_type( /mob/living/simple_animal/cat , null, null, delmob)
+ if("runtime")
+ M.change_mob_type( /mob/living/simple_animal/cat/Runtime , null, null, delmob)
+ if("corgi")
+ M.change_mob_type( /mob/living/simple_animal/corgi , null, null, delmob)
+ if("ian")
+ M.change_mob_type( /mob/living/simple_animal/corgi/Ian , null, null, delmob)
+ if("crab")
+ M.change_mob_type( /mob/living/simple_animal/crab , null, null, delmob)
+ if("coffee")
+ M.change_mob_type( /mob/living/simple_animal/crab/Coffee , null, null, delmob)
+ if("parrot")
+ M.change_mob_type( /mob/living/simple_animal/parrot , null, null, delmob)
+ if("drprofessor")
+ M.change_mob_type( /mob/living/simple_animal/parrot/DrProfessor , null, null, delmob)
+ if("constructarmoured")
+ M.change_mob_type( /mob/living/simple_animal/constructarmoured , null, null, delmob)
+ if("constructbuilder")
+ M.change_mob_type( /mob/living/simple_animal/constructbuilder , null, null, delmob)
+ if("constructwraith")
+ M.change_mob_type( /mob/living/simple_animal/constructwraith , null, null, delmob)
+ if("shade")
+ M.change_mob_type( /mob/living/simple_animal/shade , null, null, delmob)
+
+
/////////////////////////////////////new ban stuff
if(href_list["unbanf"])
var/banfolder = href_list["unbanf"]
@@ -795,6 +864,11 @@ var/global/BSACooldown = 0
if (href_list["sendtoprison"])
if ((src.rank in list( "Moderator", "Admin Candidate", "Temporary Admin", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
+
+ var/confirm = alert(usr, "Send to admin prison for the round?", "Message", "Yes", "No")
+ if(confirm != "Yes")
+ return
+
var/mob/M = locate(href_list["sendtoprison"])
if (ismob(M))
if(istype(M, /mob/living/silicon/ai))
@@ -864,6 +938,11 @@ var/global/BSACooldown = 0
if (href_list["tdome1"])
if ((src.rank in list( "Admin Candidate", "Temporary Admin", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
+
+ var/confirm = alert(usr, "Confirm?", "Message", "Yes", "No")
+ if(confirm != "Yes")
+ return
+
var/mob/M = locate(href_list["tdome1"])
if (ismob(M))
if(istype(M, /mob/living/silicon/ai))
@@ -890,6 +969,11 @@ var/global/BSACooldown = 0
if (href_list["tdome2"])
if ((src.rank in list( "Admin Candidate", "Temporary Admin", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
+
+ var/confirm = alert(usr, "Confirm?", "Message", "Yes", "No")
+ if(confirm != "Yes")
+ return
+
var/mob/M = locate(href_list["tdome2"])
if (ismob(M))
if(istype(M, /mob/living/silicon/ai))
@@ -916,6 +1000,11 @@ var/global/BSACooldown = 0
if (href_list["tdomeadmin"])
if ((src.rank in list( "Admin Candidate", "Temporary Admin", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
+
+ var/confirm = alert(usr, "Confirm?", "Message", "Yes", "No")
+ if(confirm != "Yes")
+ return
+
var/mob/M = locate(href_list["tdomeadmin"])
if (ismob(M))
if(istype(M, /mob/living/silicon/ai))
@@ -931,6 +1020,11 @@ var/global/BSACooldown = 0
if (href_list["tdomeobserve"])
if ((src.rank in list( "Admin Candidate", "Temporary Admin", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
+
+ var/confirm = alert(usr, "Confirm?", "Message", "Yes", "No")
+ if(confirm != "Yes")
+ return
+
var/mob/M = locate(href_list["tdomeobserve"])
if (ismob(M))
if(istype(M, /mob/living/silicon/ai))
@@ -1231,6 +1325,11 @@ var/global/BSACooldown = 0
if (href_list["getmob"])
if(rank in list( "Trial Admin", "Badmin", "Game Admin", "Game Master"))
+
+ var/confirm = alert(usr, "Confirm?", "Message", "Yes", "No")
+ if(confirm != "Yes")
+ return
+
var/mob/M = locate(href_list["getmob"])
usr.client.Getmob(M)
else
@@ -2143,7 +2242,7 @@ var/global/BSACooldown = 0
if (M.client)
if(!istype(M, /mob/new_player))
body += "
"
- body += "Transformations:"
+ body += "Transformation:"
body += "
"
//Monkey
@@ -2167,6 +2266,33 @@ var/global/BSACooldown = 0
body += "Make Alien | "
body += "Make Metroid "
+ body += "
"
+ body += "Rudimentary transformation:
These transformations only create a new mob type and copy stuff over. They do not take into account MMIs and similar mob-specific things. The buttons in 'Transformations' are preferred, when possible.
"
+ body += "Observer | "
+ body += "\[ Alien: Drone, "
+ body += "Hunter, "
+ body += "Queen, "
+ body += "Sentinel, "
+ body += "Larva \] "
+ body += "Human "
+ body += "\[ Metroid: Baby, "
+ body += "Adult \] "
+ body += "Monkey | "
+ body += "Cyborg | "
+ body += "Cat | "
+ body += "Runtime | "
+ body += "Corgi | "
+ body += "Ian | "
+ body += "Crab | "
+ body += "Coffee | "
+ //body += "Parrot | "
+ //body += "DrProfessor | "
+ body += "\[ Construct: Armoured , "
+ body += "Builder , "
+ body += "Wraith \] "
+ body += "Shade"
+ body += "
"
+
if (M.client)
body += "
"
body += "Other actions:"
@@ -2180,7 +2306,7 @@ var/global/BSACooldown = 0
body += "
"
body += "