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()