diff --git a/code/defines/procs/helpers.dm b/code/defines/procs/helpers.dm
index 57cbc35a8a1..371d7c88ecb 100644
--- a/code/defines/procs/helpers.dm
+++ b/code/defines/procs/helpers.dm
@@ -574,7 +574,7 @@
ais[name] = A
if (ais.len)
- select = input("AI signals detected:", "AI selection", null, null) as null|anything in ais
+ select = input("AI signals detected:", "AI selection") in ais
return ais[select]
/proc/getmobs()
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index 002ef6ac581..b061e4fc265 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -158,11 +158,26 @@
if(!(cult_mind in cult) && !(cult_mind in uncons))
cult += cult_mind
update_cult_icons_added(cult_mind)
+ for(var/obj_count = 1,obj_count <= objectives.len,obj_count++)
+ var/explanation
+ switch(objectives[obj_count])
+ if("survive")
+ explanation = "Our knowledge must live on. Make sure at least [acolytes_needed] acolytes escape on the shuttle to spread their work on an another station."
+ if("sacrifice")
+ if(sacrifice_target)
+ explanation = "Sacrifice [sacrifice_target.current.real_name], the [sacrifice_target.assigned_role]. You will need the sacrifice rune (Hell join blood) and three acolytes to do so."
+ else
+ explanation = "Free objective."
+ if("eldergod")
+ explanation = "Summon Nar-Sie via the use of an appropriate rune. It will only work if nine cultists stand on and around it."
+ cult_mind.current << "Objective #[obj_count]: [explanation]"
+ cult_mind.memory += "Objective #[obj_count]: [explanation]
"
/datum/game_mode/cult/proc/remove_cultist(datum/mind/cult_mind)
if(cult_mind in cult)
cult -= cult_mind
cult_mind.current << "\red You have been brainwashed! You are no longer a cultist!"
+ cult_mind.memory = ""
update_cult_icons_removed(cult_mind)
for(var/mob/living/M in view(cult_mind.current))
M << "[cult_mind.current] looks like they just reverted to their old faith!"
diff --git a/code/game/objects/items/robot_parts.dm b/code/game/objects/items/robot_parts.dm
index 98b7ef4a5a9..8fe9d88f450 100644
--- a/code/game/objects/items/robot_parts.dm
+++ b/code/game/objects/items/robot_parts.dm
@@ -119,12 +119,16 @@
if(istype(W, /obj/item/brain))
if(src.check_completion())
+ if(!istype(src.loc,/turf))
+ user << "\red You can't put the brain in, it has to be standing on the ground to be perfectly precise."
+ return
user.drop_item()
W.loc = src
src.brain = W
var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(src.loc))
if (src.brain.owner)
O.gender = src.brain.owner.gender
+ O.midis = src.brain.owner.midis
//O.start = 1
O.invisibility = 0
O.name = "Cyborg"
diff --git a/code/game/objects/storage/bible.dm b/code/game/objects/storage/bible.dm
index c71e657d1aa..5ef051aaaab 100644
--- a/code/game/objects/storage/bible.dm
+++ b/code/game/objects/storage/bible.dm
@@ -45,7 +45,10 @@
if (M.stat !=2)
if (ticker.mode.name == "cult" && prob(10))
- ticker.mode:remove_cultist(M.mind)
+ if(ticker.mode:cult.Find(M.mind))
+ ticker.mode:remove_cultist(M.mind)
+ if (cultists.Find(M) && prob(10))
+ cultists -= M
if ((istype(M, /mob/living/carbon/human) && prob(60)))
bless(M)
for(var/mob/O in viewers(M, null))
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 6e6d7a777ef..b465cdeb244 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -704,6 +704,11 @@ var/showadminmessages = 1
if(M.mind in current_mode:syndicates)
alert("Is a Syndicate operative!", "[M.key]")
return
+ if(istype(M,/mob/living/silicon/robot))
+ var/mob/living/silicon/robot/R = M
+ if(R.emagged)
+ alert("Is emagged!\n0th law: [R.laws.zeroth]", "[R.key]")
+ return
// traitor, or other modes where traitors/counteroperatives would be.
if(M.mind in current_mode.traitors)
var/datum/mind/antagonist = M.mind
@@ -2000,6 +2005,10 @@ var/showadminmessages = 1
if("changeling")
if(M.mind in ticker.mode:changelings)
return 1
+ if(istype(M,/mob/living/silicon/robot))
+ var/mob/living/silicon/robot/R = M
+ if(R.emagged)
+ return 1
if(M.mind in ticker.mode.traitors)
return 1
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 2a1f0e02ec4..f7be096c84e 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -825,6 +825,8 @@
M << "\red You remembered one thing from the glimpse... [wordsee] is see..."
cultists.Add(M)
src << "Made [M] a cultist."
+ if(ticker.mode.name == "cult")
+ ticker.mode:cult += M.mind
/client/proc/check_words() // -- Urist
set category = "Special Verbs"
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index cf106d33380..b641c36c907 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -10,6 +10,7 @@
src.loc = get_turf(corpse.loc)
src.real_name = corpse.real_name
src.name = corpse.real_name
+ src.midis = corpse.midis
src.verbs += /mob/dead/observer/proc/reenter_corpse
/mob/proc/ghostize()