diff --git a/code/citadel/_cit_helpers.dm b/code/citadel/_cit_helpers.dm
index f20e59b0b6..9ac58122fe 100644
--- a/code/citadel/_cit_helpers.dm
+++ b/code/citadel/_cit_helpers.dm
@@ -93,6 +93,9 @@ GLOBAL_LIST_EMPTY(mentors)
GLOBAL_VAR_INIT(looc_allowed, 1)
GLOBAL_VAR_INIT(dlooc_allowed, 1)
+//Crew objective and miscreants stuff
+GLOBAL_VAR_INIT(miscreants_allowed, FALSE)
+
/client/proc/reload_mentors()
set name = "Reload Mentors"
set category = "Admin"
diff --git a/code/citadel/cit_crewobjectives.dm b/code/citadel/cit_crewobjectives.dm
index 849dcef544..7a4e68850b 100644
--- a/code/citadel/cit_crewobjectives.dm
+++ b/code/citadel/cit_crewobjectives.dm
@@ -8,6 +8,8 @@
return
/datum/controller/subsystem/ticker/proc/generate_individual_objectives(var/datum/mind/crewMind)
+ if(!config.allow_crew_objectives)
+ return
if(!crewMind)
return
if(!crewMind.current || !crewMind.objectives || crewMind.special_role)
@@ -27,7 +29,8 @@
return
newObjective.owner = crewMind
crewMind.objectives += newObjective
- crewMind.announce_objectives()
+ to_chat(crewMind, "Your objective: [newObjective.explanation_text]")
+ //crewMind.announce_objectives()
/datum/objective/crew/
explanation_text = "Yell on the development discussion channel on Citadels discord if this ever shows up. Something just broke here, dude"
diff --git a/code/citadel/cit_miscreants.dm b/code/citadel/cit_miscreants.dm
index 19e75047f5..cc5a3afa98 100644
--- a/code/citadel/cit_miscreants.dm
+++ b/code/citadel/cit_miscreants.dm
@@ -1,12 +1,14 @@
/datum/controller/subsystem/ticker/proc/generate_miscreant_objectives(var/datum/mind/crewMind)
- if(GLOB.master_mode == "extended")
- return //Thinking about it, extended's chaos whether or not mini-antags are present. But eh, whatever. Here's a sanity check.
+ if(!GLOB.miscreants_allowed)
+ return
if(!crewMind)
return
if(!crewMind.current || !crewMind.objectives || crewMind.special_role)
return
if(!crewMind.assigned_role)
return
+ if(jobban_isbanned(crewMind, "Syndicate"))
+ return
var/list/objectiveTypes = typesof(/datum/objective/miscreant) - /datum/objective/miscreant
if(!objectiveTypes.len)
return
@@ -18,8 +20,9 @@
crewMind.objectives += newObjective
crewMind.special_role = "miscreant"
to_chat(crewMind, "You are a Miscreant.")
- to_chat(crewMind, "Pursuing your objective is entirely optional, but it isn't tracked. Performing traitorous acts not directly related to your objective may result in permanent termination of your employment.")
- crewMind.announce_objectives()
+ to_chat(crewMind, "Pursuing your objective is entirely optional, but it isn't tracked. Performing traitorous acts not directly related to your objective may result in permanent termination of your employment.")
+ to_chat(crewMind, "Your objective: [newObjective.explanation_text]")
+ //crewMind.announce_objectives()
/datum/objective/miscreant
explanation_text = "Something broke. Horribly. Dear god, im so sorry. Yell about this in the development discussion channel of citadels discord."
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index 6d458cb0ee..cee83cb3b8 100755
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -211,6 +211,10 @@ SUBSYSTEM_DEF(ticker)
GLOB.start_landmarks_list = shuffle(GLOB.start_landmarks_list) //Shuffle the order of spawn points so they dont always predictably spawn bottom-up and right-to-left
create_characters() //Create player characters
collect_minds()
+ if(config.allow_extended_miscreants && GLOB.master_mode == "extended")
+ GLOB.miscreants_allowed = TRUE
+ if(config.allow_miscreants && GLOB.master_mode != "extended")
+ GLOB.miscreants_allowed = TRUE
generate_crew_objectives()
equip_characters()