diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index a7a0c63261e..d8eb4c74576 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -37,6 +37,7 @@
var/del_new_on_log = 1 // del's new players if they log before they spawn in
var/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard
var/traitor_scaling = 0 //if amount of traitors scales based on amount of players
+ var/objectives_disabled = 0 //if objectives are disabled or not
var/protect_roles_from_antagonist = 0// If security and such can be tratior/cult/other
var/continous_rounds = 1 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke.
var/allow_Metadata = 0 // Metadata is supported.
@@ -340,6 +341,9 @@
if ("traitor_scaling")
config.traitor_scaling = 1
+ if ("objectives_disabled")
+ config.objectives_disabled = 1
+
if("protect_roles_from_antagonist")
config.protect_roles_from_antagonist = 1
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 3060d7b1a80..8d2a926c8ea 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -74,7 +74,7 @@ datum/mind
current.mind = null
if(new_character.mind) //remove any mind currently in our new body's mind variable
new_character.mind.current = null
-
+
nanomanager.user_transferred(current, new_character) // transfer active NanoUI instances to new user
current = new_character //link ourself to our new body
@@ -129,7 +129,7 @@ datum/mind
if (istype(current, /mob/living/carbon/human) || istype(current, /mob/living/carbon/monkey))
/** Impanted**/
if(istype(current, /mob/living/carbon/human))
- if(H.is_loyalty_implanted(H))
+ if(H.is_loyalty_implanted(H))
text = "Loyalty Implant:Remove|Implanted"
else
text = "Loyalty Implant:No Implant|Implant him!"
@@ -562,6 +562,7 @@ datum/mind
current << "\red Revolution has been disappointed of your leader traits! You are a regular revolutionary now!"
else if(!(src in ticker.mode.revolutionaries))
current << "\red You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!"
+ current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
else
return
ticker.mode.revolutionaries += src
@@ -574,6 +575,7 @@ datum/mind
ticker.mode.revolutionaries -= src
ticker.mode.update_rev_icons_removed(src)
current << "\red You have proved your devotion to revoltion! You are a head revolutionary now!"
+ current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
else if(!(src in ticker.mode.head_revolutionaries))
current << "\blue You are a member of the revolutionaries' leadership now!"
else
@@ -639,7 +641,8 @@ datum/mind
special_role = null
var/datum/game_mode/cult/cult = ticker.mode
if (istype(cult))
- cult.memoize_cult_objectives(src)
+ if(!config.objectives_disabled)
+ cult.memoize_cult_objectives(src)
current << "\red You have been brainwashed! You are no longer a cultist!"
memory = ""
log_admin("[key_name_admin(usr)] has de-cult'ed [current].")
@@ -650,9 +653,11 @@ datum/mind
special_role = "Cultist"
current << "You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie."
current << "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back."
+ current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
var/datum/game_mode/cult/cult = ticker.mode
if (istype(cult))
- cult.memoize_cult_objectives(src)
+ if(!config.objectives_disabled)
+ cult.memoize_cult_objectives(src)
log_admin("[key_name_admin(usr)] has cult'ed [current].")
if("tome")
var/mob/living/carbon/human/H = current
@@ -691,6 +696,7 @@ datum/mind
special_role = "Wizard"
//ticker.mode.learn_basic_spells(current)
current << "\red You are the Space Wizard!"
+ current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
log_admin("[key_name_admin(usr)] has wizard'ed [current].")
if("lair")
current.loc = pick(wizardstart)
@@ -699,8 +705,9 @@ datum/mind
if("name")
ticker.mode.name_wizard(current)
if("autoobjectives")
- ticker.mode.forge_wizard_objectives(src)
- usr << "\blue The objectives for wizard [key] have been generated. You can edit them and anounce manually."
+ if(!config.objectives_disabled)
+ ticker.mode.forge_wizard_objectives(src)
+ usr << "\blue The objectives for wizard [key] have been generated. You can edit them and anounce manually."
else if (href_list["changeling"])
switch(href_list["changeling"])
@@ -719,9 +726,12 @@ datum/mind
ticker.mode.grant_changeling_powers(current)
special_role = "Changeling"
current << "Your powers are awoken. A flash of memory returns to us...we are a changeling!"
+ if(config.objectives_disabled)
+ current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
log_admin("[key_name_admin(usr)] has changeling'ed [current].")
if("autoobjectives")
- ticker.mode.forge_changeling_objectives(src)
+ if(!config.objectives_disabled)
+ ticker.mode.forge_changeling_objectives(src)
usr << "\blue The objectives for changeling [key] have been generated. You can edit them and anounce manually."
if("initialdna")
@@ -754,7 +764,10 @@ datum/mind
current.real_name = "[syndicate_name()] Operative #[ticker.mode.syndicates.len-1]"
special_role = "Syndicate"
current << "\blue You are a [syndicate_name()] agent!"
- ticker.mode.forge_syndicate_objectives(src)
+ if(config.objectives_disabled)
+ current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
+ else
+ ticker.mode.forge_syndicate_objectives(src)
ticker.mode.greet_syndicate(src)
log_admin("[key_name_admin(usr)] has nuke op'ed [current].")
if("lair")
@@ -806,14 +819,17 @@ datum/mind
special_role = "traitor"
current << "\red You are a traitor!"
log_admin("[key_name_admin(usr)] has traitor'ed [current].")
+ if (config.objectives_disabled)
+ current << "You have been turned into an antagonist- Within the rules, try to act as an opposing force to the crew- This can be via corporate payoff, personal motives, or maybe just being a dick. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonist."
if(istype(current, /mob/living/silicon))
var/mob/living/silicon/A = current
call(/datum/game_mode/proc/add_law_zero)(A)
A.show_laws()
if("autoobjectives")
- ticker.mode.forge_traitor_objectives(src)
- usr << "\blue The objectives for traitor [key] have been generated. You can edit them and anounce manually."
+ if (!config.objectives_disabled)
+ ticker.mode.forge_traitor_objectives(src)
+ usr << "\blue The objectives for traitor [key] have been generated. You can edit them and anounce manually."
else if (href_list["monkey"])
var/mob/living/L = current
@@ -1023,7 +1039,8 @@ datum/mind
if(!(src in ticker.mode.traitors))
ticker.mode.traitors += src
special_role = "traitor"
- ticker.mode.forge_traitor_objectives(src)
+ if (!config.objectives_disabled)
+ ticker.mode.forge_traitor_objectives(src)
ticker.mode.finalize_traitor(src)
ticker.mode.greet_traitor(src)
@@ -1062,7 +1079,8 @@ datum/mind
ticker.mode.changelings += src
ticker.mode.grant_changeling_powers(current)
special_role = "Changeling"
- ticker.mode.forge_changeling_objectives(src)
+ if(!config.objectives_disabled)
+ ticker.mode.forge_changeling_objectives(src)
ticker.mode.greet_changeling(src)
proc/make_Wizard()
diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm
index a6da766b4e7..5df7f0581e1 100644
--- a/code/game/gamemodes/autotraitor/autotraitor.dm
+++ b/code/game/gamemodes/autotraitor/autotraitor.dm
@@ -123,7 +123,8 @@
var/mob/living/newtraitor = pick(possible_traitors)
//message_admins("[newtraitor.real_name] is the new Traitor.")
- forge_traitor_objectives(newtraitor.mind)
+ if (!config.objectives_disabled)
+ forge_traitor_objectives(newtraitor.mind)
if(istype(newtraitor, /mob/living/silicon))
add_law_zero(newtraitor)
@@ -188,11 +189,14 @@
traitors += character.mind
character << "\red You are the traitor."
character.mind.special_role = "traitor"
- var/obj_count = 1
- character << "\blue Your current objectives:"
- for(var/datum/objective/objective in character.mind.objectives)
- character << "Objective #[obj_count]: [objective.explanation_text]"
- obj_count++
+ if (config.objectives_disabled)
+ character << "You have been selected this round as an antagonist- Within the rules, try to act as an opposing force to the crew- This can be via corporate payoff, personal motives, or maybe just being a dick. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonist."
+ else
+ var/obj_count = 1
+ character << "\blue Your current objectives:"
+ for(var/datum/objective/objective in character.mind.objectives)
+ character << "Objective #[obj_count]: [objective.explanation_text]"
+ obj_count++
//else
//message_admins("New traitor roll failed. No new traitor.")
//else
diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm
index 6a3bbd19c82..1978df1ae44 100644
--- a/code/game/gamemodes/changeling/changeling.dm
+++ b/code/game/gamemodes/changeling/changeling.dm
@@ -72,7 +72,8 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
for(var/datum/mind/changeling in changelings)
grant_changeling_powers(changeling.current)
changeling.special_role = "Changeling"
- forge_changeling_objectives(changeling)
+ if(!config.objectives_disabled)
+ forge_changeling_objectives(changeling)
greet_changeling(changeling)
spawn (rand(waittime_l, waittime_h))
@@ -120,18 +121,24 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
if (you_are)
changeling.current << "\red You are a changeling!"
changeling.current << "\red Use say \":g message\" to communicate with your fellow changelings. Remember: you get all of their absorbed DNA if you absorb them."
- changeling.current << "You must complete the following tasks:"
+
+ if(config.objectives_disabled)
+ changeling.current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
+
+ if (!config.objectives_disabled)
+ changeling.current << "You must complete the following tasks:"
if (changeling.current.mind)
if (changeling.current.mind.assigned_role == "Clown")
changeling.current << "You have evolved beyond your clownish nature, allowing you to wield weapons without harming yourself."
changeling.current.mutations.Remove(CLUMSY)
- var/obj_count = 1
- for(var/datum/objective/objective in changeling.objectives)
- changeling.current << "Objective #[obj_count]: [objective.explanation_text]"
- obj_count++
- return
+ if (!config.objectives_disabled)
+ var/obj_count = 1
+ for(var/datum/objective/objective in changeling.objectives)
+ changeling.current << "Objective #[obj_count]: [objective.explanation_text]"
+ obj_count++
+ return
/*/datum/game_mode/changeling/check_finished()
var/changelings_alive = 0
@@ -181,25 +188,25 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
//Removed sanity if(changeling) because we -want- a runtime to inform us that the changelings list is incorrect and needs to be fixed.
text += "
Changeling ID: [changeling.changeling.changelingID]."
text += "
Genomes Absorbed: [changeling.changeling.absorbedcount]"
-
- if(changeling.objectives.len)
- var/count = 1
- for(var/datum/objective/objective in changeling.objectives)
- if(objective.check_completion())
- text += "
Objective #[count]: [objective.explanation_text] Success!"
- feedback_add_details("changeling_objective","[objective.type]|SUCCESS")
+ if(!config.objectives_disabled)
+ if(changeling.objectives.len)
+ var/count = 1
+ for(var/datum/objective/objective in changeling.objectives)
+ if(objective.check_completion())
+ text += "
Objective #[count]: [objective.explanation_text] Success!"
+ feedback_add_details("changeling_objective","[objective.type]|SUCCESS")
+ else
+ text += "
Objective #[count]: [objective.explanation_text] Fail."
+ feedback_add_details("changeling_objective","[objective.type]|FAIL")
+ changelingwin = 0
+ count++
+ if(!config.objectives_disabled)
+ if(changelingwin)
+ text += "
The changeling was successful!"
+ feedback_add_details("changeling_success","SUCCESS")
else
- text += "
Objective #[count]: [objective.explanation_text] Fail."
- feedback_add_details("changeling_objective","[objective.type]|FAIL")
- changelingwin = 0
- count++
-
- if(changelingwin)
- text += "
The changeling was successful!"
- feedback_add_details("changeling_success","SUCCESS")
- else
- text += "
The changeling has failed."
- feedback_add_details("changeling_success","FAIL")
+ text += "
The changeling has failed."
+ feedback_add_details("changeling_success","FAIL")
world << text
diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm
index 12a5525428e..2dbec4fa60c 100644
--- a/code/game/gamemodes/changeling/traitor_chan.dm
+++ b/code/game/gamemodes/changeling/traitor_chan.dm
@@ -37,7 +37,8 @@
for(var/datum/mind/changeling in changelings)
grant_changeling_powers(changeling.current)
changeling.special_role = "Changeling"
- forge_changeling_objectives(changeling)
+ if(!config.objectives_disabled)
+ forge_changeling_objectives(changeling)
greet_changeling(changeling)
..()
return
\ No newline at end of file
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index ee16e21a771..45452a95e1c 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -53,12 +53,13 @@
/datum/game_mode/cult/pre_setup()
- if(prob(50))
- objectives += "survive"
- objectives += "sacrifice"
- else
- objectives += "eldergod"
- objectives += "sacrifice"
+ if(!config.objectives_disabled)
+ if(prob(50))
+ objectives += "survive"
+ objectives += "sacrifice"
+ else
+ objectives += "eldergod"
+ objectives += "sacrifice"
if(config.protect_roles_from_antagonist)
restricted_jobs += protected_jobs
@@ -97,7 +98,10 @@
grant_runeword(cult_mind.current)
update_cult_icons_added(cult_mind)
cult_mind.current << "\blue You are a member of the cult!"
- memoize_cult_objectives(cult_mind)
+ if(!config.objectives_disabled)
+ memoize_cult_objectives(cult_mind)
+ else
+ cult_mind.current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
cult_mind.special_role = "Cultist"
spawn (rand(waittime_l, waittime_h))
@@ -181,7 +185,8 @@
/datum/game_mode/cult/add_cultist(datum/mind/cult_mind) //INHERIT
if (!..(cult_mind))
return
- memoize_cult_objectives(cult_mind)
+ if (!config.objectives_disabled)
+ memoize_cult_objectives(cult_mind)
/datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, show_message = 1)
@@ -276,7 +281,8 @@
/datum/game_mode/cult/declare_completion()
-
+ if(config.objectives_disabled)
+ return 1
if(!check_cult_victory())
feedback_set_details("round_end_result","win - cult win")
feedback_set("round_end_result",acolytes_survived)
@@ -287,38 +293,38 @@
world << "\red The staff managed to stop the cult!"
var/text = "Cultists escaped: [acolytes_survived]"
-
- if(objectives.len)
- text += "
The cultists' objectives were:"
- for(var/obj_count=1, obj_count <= objectives.len, obj_count++)
- var/explanation
- switch(objectives[obj_count])
- if("survive")
- if(!check_survive())
- explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. Success!"
- feedback_add_details("cult_objective","cult_survive|SUCCESS|[acolytes_needed]")
- else
- explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. Fail."
- feedback_add_details("cult_objective","cult_survive|FAIL|[acolytes_needed]")
- if("sacrifice")
- if(sacrifice_target)
- if(sacrifice_target in sacrificed)
- explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Success!"
- feedback_add_details("cult_objective","cult_sacrifice|SUCCESS")
- else if(sacrifice_target && sacrifice_target.current)
- explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Fail."
- feedback_add_details("cult_objective","cult_sacrifice|FAIL")
+ if(!config.objectives_disabled)
+ if(objectives.len)
+ text += "
The cultists' objectives were:"
+ for(var/obj_count=1, obj_count <= objectives.len, obj_count++)
+ var/explanation
+ switch(objectives[obj_count])
+ if("survive")
+ if(!check_survive())
+ explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. Success!"
+ feedback_add_details("cult_objective","cult_survive|SUCCESS|[acolytes_needed]")
+ else
+ explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. Fail."
+ feedback_add_details("cult_objective","cult_survive|FAIL|[acolytes_needed]")
+ if("sacrifice")
+ if(sacrifice_target)
+ if(sacrifice_target in sacrificed)
+ explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Success!"
+ feedback_add_details("cult_objective","cult_sacrifice|SUCCESS")
+ else if(sacrifice_target && sacrifice_target.current)
+ explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Fail."
+ feedback_add_details("cult_objective","cult_sacrifice|FAIL")
else
explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Fail (Gibbed)."
feedback_add_details("cult_objective","cult_sacrifice|FAIL|GIBBED")
- if("eldergod")
- if(!eldergod)
- explanation = "Summon Nar-Sie. Success!"
- feedback_add_details("cult_objective","cult_narsie|SUCCESS")
- else
- explanation = "Summon Nar-Sie. Fail."
+ if("eldergod")
+ if(!eldergod)
+ explanation = "Summon Nar-Sie. Success!"
+ feedback_add_details("cult_objective","cult_narsie|SUCCESS")
+ else
+ explanation = "Summon Nar-Sie. Fail."
feedback_add_details("cult_objective","cult_narsie|FAIL")
- text += "
Objective #[obj_count]: [explanation]"
+ text += "
Objective #[obj_count]: [explanation]"
world << text
..()
diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm
index fd2cdf88ade..f556f43b4a7 100644
--- a/code/game/gamemodes/heist/heist.dm
+++ b/code/game/gamemodes/heist/heist.dm
@@ -69,7 +69,8 @@ VOX HEIST ROUNDTYPE
continue
//Generate objectives for the group.
- raid_objectives = forge_vox_objectives()
+ if(!config.objectives_disabled)
+ raid_objectives = forge_vox_objectives()
var/index = 1
@@ -167,9 +168,12 @@ VOX HEIST ROUNDTYPE
raider.current << "\blue Use :V to voxtalk, :H to talk on your encrypted channel, and don't forget to turn on your nitrogen internals!"
raider.current << "\red IF YOU HAVE NOT PLAYED A VOX BEFORE, REVIEW THIS THREAD: http://baystation12.net/forums/viewtopic.php?f=6&t=8657."
var/obj_count = 1
- for(var/datum/objective/objective in raider.objectives)
- raider.current << "Objective #[obj_count]: [objective.explanation_text]"
- obj_count++
+ if(!config.objectives_disabled)
+ for(var/datum/objective/objective in raider.objectives)
+ raider.current << "Objective #[obj_count]: [objective.explanation_text]"
+ obj_count++
+ else
+ raider.current << "Within the rules, try to act as an opposing force to the crew or come up with other fun ideas. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
/datum/game_mode/heist/declare_completion()
diff --git a/code/game/gamemodes/ninja/ninja.dm b/code/game/gamemodes/ninja/ninja.dm
index ac2ab258bf3..42f5b69d7f8 100644
--- a/code/game/gamemodes/ninja/ninja.dm
+++ b/code/game/gamemodes/ninja/ninja.dm
@@ -54,7 +54,10 @@
/datum/game_mode/ninja/post_setup()
for(var/datum/mind/ninja in ninjas)
if(ninja.current && !(istype(ninja.current,/mob/living/carbon/human))) return 0
- forge_ninja_objectives(ninja)
+ if(!config.objectives_disabled)
+ forge_ninja_objectives(ninja)
+ else
+ ninja.current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
var/mob/living/carbon/human/N = ninja.current
N.internal = N.s_store
N.internals.icon_state = "internal1"
@@ -176,12 +179,13 @@
else
special_role_text = "antagonist"
- if(ninjawin)
- text += "
The [special_role_text] was successful!"
- feedback_add_details("traitor_success","SUCCESS")
- else
- text += "
The [special_role_text] has failed!"
- feedback_add_details("traitor_success","FAIL")
+ if(!config.objectives_disabled)
+ if(ninjawin)
+ text += "
The [special_role_text] was successful!"
+ feedback_add_details("traitor_success","SUCCESS")
+ else
+ text += "
The [special_role_text] has failed!"
+ feedback_add_details("traitor_success","FAIL")
world << text
return 1
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 595dfe02264..5674ea90987 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -139,8 +139,8 @@
synd_mind.current.real_name = "[syndicate_name()] Operative" // placeholder while we get their actual name
spawn(0)
NukeNameAssign(synd_mind)
-
- forge_syndicate_objectives(synd_mind)
+ if(!config.objectives_disabled)
+ forge_syndicate_objectives(synd_mind)
greet_syndicate(synd_mind)
equip_syndicate(synd_mind.current)
@@ -195,9 +195,12 @@
if (you_are)
syndicate.current << "\blue You are a [syndicate_name()] agent!"
var/obj_count = 1
- for(var/datum/objective/objective in syndicate.objectives)
- syndicate.current << "Objective #[obj_count]: [objective.explanation_text]"
- obj_count++
+ if(!config.objectives_disabled)
+ for(var/datum/objective/objective in syndicate.objectives)
+ syndicate.current << "Objective #[obj_count]: [objective.explanation_text]"
+ obj_count++
+ else
+ syndicate.current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
return
@@ -267,6 +270,8 @@
/datum/game_mode/nuclear/declare_completion()
+ if(config.objectives_disabled)
+ return
var/disk_rescued = 1
for(var/obj/item/weapon/disk/nuclear/D in world)
var/disk_area = get_area(D)
diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm
index e94baa3ede0..3211c496429 100644
--- a/code/game/gamemodes/revolution/revolution.dm
+++ b/code/game/gamemodes/revolution/revolution.dm
@@ -21,7 +21,7 @@
recommended_enemies = 3
- uplink_welcome = "Revolutionary Uplink Console:"
+ uplink_welcome = "AntagCorp Uplink Console:"
uplink_uses = 10
var/finished = 0
@@ -73,14 +73,14 @@
/datum/game_mode/revolution/post_setup()
var/list/heads = get_living_heads()
-
for(var/datum/mind/rev_mind in head_revolutionaries)
- for(var/datum/mind/head_mind in heads)
- var/datum/objective/mutiny/rev_obj = new
- rev_obj.owner = rev_mind
- rev_obj.target = head_mind
- rev_obj.explanation_text = "Assassinate [head_mind.name], the [head_mind.assigned_role]."
- rev_mind.objectives += rev_obj
+ if(!config.objectives_disabled)
+ for(var/datum/mind/head_mind in heads)
+ var/datum/objective/mutiny/rev_obj = new
+ rev_obj.owner = rev_mind
+ rev_obj.target = head_mind
+ rev_obj.explanation_text = "Assassinate [head_mind.name], the [head_mind.assigned_role]."
+ rev_mind.objectives += rev_obj
// equip_traitor(rev_mind.current, 1) //changing how revs get assigned their uplink so they can get PDA uplinks. --NEO
// Removing revolutionary uplinks. -Pete
@@ -107,22 +107,26 @@
/datum/game_mode/proc/forge_revolutionary_objectives(var/datum/mind/rev_mind)
- var/list/heads = get_living_heads()
- for(var/datum/mind/head_mind in heads)
- var/datum/objective/mutiny/rev_obj = new
- rev_obj.owner = rev_mind
- rev_obj.target = head_mind
- rev_obj.explanation_text = "Assassinate [head_mind.name], the [head_mind.assigned_role]."
- rev_mind.objectives += rev_obj
+ if(!config.objectives_disabled)
+ var/list/heads = get_living_heads()
+ for(var/datum/mind/head_mind in heads)
+ var/datum/objective/mutiny/rev_obj = new
+ rev_obj.owner = rev_mind
+ rev_obj.target = head_mind
+ rev_obj.explanation_text = "Assassinate [head_mind.name], the [head_mind.assigned_role]."
+ rev_mind.objectives += rev_obj
/datum/game_mode/proc/greet_revolutionary(var/datum/mind/rev_mind, var/you_are=1)
var/obj_count = 1
if (you_are)
rev_mind.current << "\blue You are a member of the revolutionaries' leadership!"
- for(var/datum/objective/objective in rev_mind.objectives)
- rev_mind.current << "Objective #[obj_count]: [objective.explanation_text]"
- rev_mind.special_role = "Head Revolutionary"
- obj_count++
+ if(!config.objectives_disabled)
+ for(var/datum/objective/objective in rev_mind.objectives)
+ rev_mind.current << "Objective #[obj_count]: [objective.explanation_text]"
+ rev_mind.special_role = "Head Revolutionary"
+ obj_count++
+ else
+ rev_mind.current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
/////////////////////////////////////////////////////////////////////////////////
//This are equips the rev heads with their gear, and makes the clown not clumsy//
@@ -193,6 +197,8 @@
revolutionaries += rev_mind
rev_mind.current << "\red You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!"
rev_mind.special_role = "Revolutionary"
+ if(config.objectives_disabled)
+ rev_mind.current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
update_rev_icons_added(rev_mind)
return 1
//////////////////////////////////////////////////////////////////////////////
@@ -342,13 +348,14 @@
//Announces the end of the game with all relavent information stated//
//////////////////////////////////////////////////////////////////////
/datum/game_mode/revolution/declare_completion()
- if(finished == 1)
- feedback_set_details("round_end_result","win - heads killed")
- world << "\red The heads of staff were killed or abandoned the station! The revolutionaries win!"
- else if(finished == 2)
- feedback_set_details("round_end_result","loss - rev heads killed")
- world << "\red The heads of staff managed to stop the revolution!"
- ..()
+ if(!config.objectives_disabled)
+ if(finished == 1)
+ feedback_set_details("round_end_result","win - heads killed")
+ world << "\red The heads of staff were killed or abandoned the station! The revolutionaries win!"
+ else if(finished == 2)
+ feedback_set_details("round_end_result","loss - rev heads killed")
+ world << "\red The heads of staff managed to stop the revolution!"
+ ..()
return 1
/datum/game_mode/proc/auto_declare_completion_revolution()
diff --git a/code/game/gamemodes/revolution/rp_revolution.dm b/code/game/gamemodes/revolution/rp_revolution.dm
index 98f97cf4600..4df4329baf6 100644
--- a/code/game/gamemodes/revolution/rp_revolution.dm
+++ b/code/game/gamemodes/revolution/rp_revolution.dm
@@ -8,7 +8,7 @@
required_enemies = 3
recommended_enemies = 3
- uplink_welcome = "Revolutionary Uplink Console:"
+ uplink_welcome = "AntagCorp Uplink Console:"
uplink_uses = 5
newscaster_announcements = /datum/news_announcement/revolution_inciting_event
@@ -57,14 +57,14 @@
/datum/game_mode/revolution/rp_revolution/post_setup()
heads = get_living_heads()
-
for(var/datum/mind/rev_mind in head_revolutionaries)
- for(var/datum/mind/head_mind in heads)
- var/datum/objective/mutiny/rp/rev_obj = new
- rev_obj.owner = rev_mind
- rev_obj.target = head_mind
- rev_obj.explanation_text = "Assassinate, convert or capture [head_mind.name], the [head_mind.assigned_role]."
- rev_mind.objectives += rev_obj
+ if(!config.objectives_disabled)
+ for(var/datum/mind/head_mind in heads)
+ var/datum/objective/mutiny/rp/rev_obj = new
+ rev_obj.owner = rev_mind
+ rev_obj.target = head_mind
+ rev_obj.explanation_text = "Assassinate, convert or capture [head_mind.name], the [head_mind.assigned_role]."
+ rev_mind.objectives += rev_obj
update_rev_icons_added(rev_mind)
@@ -81,10 +81,13 @@
var/obj_count = 1
if (you_are)
rev_mind.current << "\blue You are a member of the revolutionaries' leadership!"
- for(var/datum/objective/objective in rev_mind.objectives)
- rev_mind.current << "Objective #[obj_count]: [objective.explanation_text]"
- rev_mind.special_role = "Head Revolutionary"
- obj_count++
+ if(!config.objectives_disabled)
+ for(var/datum/objective/objective in rev_mind.objectives)
+ rev_mind.current << "Objective #[obj_count]: [objective.explanation_text]"
+ rev_mind.special_role = "Head Revolutionary"
+ obj_count++
+ else
+ rev_mind.current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
// Show each head revolutionary up to 3 candidates
var/list/already_considered = list()
@@ -110,6 +113,8 @@
revolutionaries += rev_mind
rev_mind.current << "\red You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill, capture or convert the heads to win the revolution!"
rev_mind.special_role = "Revolutionary"
+ if(config.objectives_disabled)
+ rev_mind.current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
update_rev_icons_added(rev_mind)
return 1
@@ -140,13 +145,14 @@
//Announces the end of the game with all relavent information stated//
//////////////////////////////////////////////////////////////////////
/datum/game_mode/revolution/rp_revolution/declare_completion()
- if(finished == 1)
- feedback_set_details("round_end_result","win - heads overthrown")
- world << "\red The heads of staff were overthrown! The revolutionaries win!"
- else if(finished == 2)
- feedback_set_details("round_end_result","loss - revolution stopped")
- world << "\red The heads of staff managed to stop the revolution!"
- ..()
+ if(!config.objectives_disabled)
+ if(finished == 1)
+ feedback_set_details("round_end_result","win - heads overthrown")
+ world << "\red The heads of staff were overthrown! The revolutionaries win!"
+ else if(finished == 2)
+ feedback_set_details("round_end_result","loss - revolution stopped")
+ world << "\red The heads of staff managed to stop the revolution!"
+ ..()
return 1
/datum/game_mode/revolution/proc/is_convertible(mob/M)
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index f7894a9f69d..f4015d7ad59 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -12,7 +12,7 @@
recommended_enemies = 4
- uplink_welcome = "Syndicate Uplink Console:"
+ uplink_welcome = "AntagCorp Portable Teleportation Relay:"
uplink_uses = 10
var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds)
@@ -65,7 +65,8 @@
/datum/game_mode/traitor/post_setup()
for(var/datum/mind/traitor in traitors)
- forge_traitor_objectives(traitor)
+ if (!config.objectives_disabled)
+ forge_traitor_objectives(traitor)
spawn(rand(10,100))
finalize_traitor(traitor)
greet_traitor(traitor)
@@ -131,10 +132,13 @@
/datum/game_mode/proc/greet_traitor(var/datum/mind/traitor)
traitor.current << "You are the traitor."
- var/obj_count = 1
- for(var/datum/objective/objective in traitor.objectives)
- traitor.current << "Objective #[obj_count]: [objective.explanation_text]"
- obj_count++
+ if (!config.objectives_disabled)
+ var/obj_count = 1
+ for(var/datum/objective/objective in traitor.objectives)
+ traitor.current << "Objective #[obj_count]: [objective.explanation_text]"
+ obj_count++
+ else
+ traitor.current << "You have been selected this round as an antagonist- Within the rules, try to act as an opposing force to the crew- This can be via corporate payoff, personal motives, or maybe just being a dick. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonist."
return
@@ -216,19 +220,20 @@
special_role_text = lowertext(traitor.special_role)
else
special_role_text = "antagonist"
-
- if(traitorwin)
- text += "
The [special_role_text] was successful!"
- feedback_add_details("traitor_success","SUCCESS")
- else
- text += "
The [special_role_text] has failed!"
- feedback_add_details("traitor_success","FAIL")
+ if(!config.objectives_disabled)
+ if(traitorwin)
+ text += "
The [special_role_text] was successful!"
+ feedback_add_details("traitor_success","SUCCESS")
+ else
+ text += "
The [special_role_text] has failed!"
+ feedback_add_details("traitor_success","FAIL")
world << text
return 1
/datum/game_mode/proc/equip_traitor(mob/living/carbon/human/traitor_mob, var/safety = 0)
+
if (!istype(traitor_mob))
return
. = 1
@@ -239,12 +244,29 @@
// find a radio! toolbox(es), backpack, belt, headset
var/loc = ""
- var/obj/item/R = locate(/obj/item/device/pda) in traitor_mob.contents //Hide the uplink in a PDA if available, otherwise radio
- if(!R)
+ var/obj/item/R = locate() //Hide the uplink in a PDA if available, otherwise radio
+
+ if(traitor_mob.client.prefs.uplinklocation == "Headset")
R = locate(/obj/item/device/radio) in traitor_mob.contents
+ if(!R)
+ R = locate(/obj/item/device/pda) in traitor_mob.contents
+ traitor_mob << "Could not locate a Radio, installing in PDA instead!"
+ if (!R)
+ traitor_mob << "Unfortunately, neither a radio or a PDA relay could be installed."
+
+ if(traitor_mob.client.prefs.uplinklocation == "PDA")
+ R = locate(/obj/item/device/pda) in traitor_mob.contents
+ if(!R)
+ R = locate(/obj/item/device/radio) in traitor_mob.contents
+ traitor_mob << "Could not locate a PDA, installing into a Radio instead!"
+ if (!R)
+ traitor_mob << "Unfortunately, neither a radio or a PDA relay could be installed."
+
+ if(traitor_mob.client.prefs.uplinklocation == "None")
+ traitor_mob << "You have elected to not have an AntagCorp portable teleportation relay installed!"
+ R = null
if (!R)
- traitor_mob << "Unfortunately, the Syndicate wasn't able to get you a radio."
. = 0
else
if (istype(R, /obj/item/device/radio))
@@ -263,7 +285,7 @@
var/obj/item/device/uplink/hidden/T = new(R)
target_radio.hidden_uplink = T
target_radio.traitor_frequency = freq
- traitor_mob << "The Syndicate have cunningly disguised a Syndicate Uplink as your [R.name] [loc]. Simply dial the frequency [format_frequency(freq)] to unlock its hidden features."
+ traitor_mob << "A portable object teleportation relay has been installed in your [R.name] [loc]. Simply dial the frequency [format_frequency(freq)] to unlock its hidden features."
traitor_mob.mind.store_memory("Radio Freq: [format_frequency(freq)] ([R.name] [loc]).")
else if (istype(R, /obj/item/device/pda))
// generate a passcode if the uplink is hidden in a PDA
@@ -274,7 +296,7 @@
var/obj/item/device/pda/P = R
P.lock_code = pda_pass
- traitor_mob << "The Syndicate have cunningly disguised a Syndicate Uplink as your [R.name] [loc]. Simply enter the code \"[pda_pass]\" into the ringtone select to unlock its hidden features."
+ traitor_mob << "A portable object teleportation relay has been installed in your [R.name] [loc]. Simply enter the code \"[pda_pass]\" into the ringtone select to unlock its hidden features."
traitor_mob.mind.store_memory("Uplink Passcode: [pda_pass] ([R.name] [loc]).")
//Begin code phrase.
if(!safety)//If they are not a rev. Can be added on to.
diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm
index add8ee00a66..751092f3888 100644
--- a/code/game/gamemodes/wizard/wizard.dm
+++ b/code/game/gamemodes/wizard/wizard.dm
@@ -50,7 +50,8 @@
/datum/game_mode/wizard/post_setup()
for(var/datum/mind/wizard in wizards)
- forge_wizard_objectives(wizard)
+ if(!config.objectives_disabled)
+ forge_wizard_objectives(wizard)
//learn_basic_spells(wizard.current)
equip_wizard(wizard.current)
name_wizard(wizard.current)
@@ -132,11 +133,13 @@
if (you_are)
wizard.current << "\red You are the Space Wizard!"
wizard.current << "The Space Wizards Federation has given you the following tasks:"
-
- var/obj_count = 1
- for(var/datum/objective/objective in wizard.objectives)
- wizard.current << "Objective #[obj_count]: [objective.explanation_text]"
- obj_count++
+ if(!config.objectives_disabled)
+ var/obj_count = 1
+ for(var/datum/objective/objective in wizard.objectives)
+ wizard.current << "Objective #[obj_count]: [objective.explanation_text]"
+ obj_count++
+ else
+ wizard.current << "Within the rules, try to act as an opposing force to the crew. Further RP and try to make sure other players have fun! If you are confused or at a loss, always adminhelp, and before taking extreme actions, please try to also contact the administration! Think through your actions and make the roleplay immersive! Please remember all rules aside from those without explicit exceptions apply to antagonists."
return
@@ -231,22 +234,23 @@
var/count = 1
var/wizardwin = 1
- for(var/datum/objective/objective in wizard.objectives)
- if(objective.check_completion())
- text += "
Objective #[count]: [objective.explanation_text] Success!"
- feedback_add_details("wizard_objective","[objective.type]|SUCCESS")
- else
- text += "
Objective #[count]: [objective.explanation_text] Fail."
- feedback_add_details("wizard_objective","[objective.type]|FAIL")
- wizardwin = 0
- count++
+ if(!config.objectives_disabled)
+ for(var/datum/objective/objective in wizard.objectives)
+ if(objective.check_completion())
+ text += "
Objective #[count]: [objective.explanation_text] Success!"
+ feedback_add_details("wizard_objective","[objective.type]|SUCCESS")
+ else
+ text += "
Objective #[count]: [objective.explanation_text] Fail."
+ feedback_add_details("wizard_objective","[objective.type]|FAIL")
+ wizardwin = 0
+ count++
- if(wizard.current && wizard.current.stat!=2 && wizardwin)
- text += "
The wizard was successful!"
- feedback_add_details("wizard_success","SUCCESS")
- else
- text += "
The wizard has failed!"
- feedback_add_details("wizard_success","FAIL")
+ if(wizard.current && wizard.current.stat!=2 && wizardwin)
+ text += "
The wizard was successful!"
+ feedback_add_details("wizard_success","SUCCESS")
+ else
+ text += "
The wizard has failed!"
+ feedback_add_details("wizard_success","FAIL")
world << text
return 1
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index ab55f29f50e..e1b0d29b2a8 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -109,6 +109,8 @@ datum/preferences
var/nanotrasen_relation = "Neutral"
+ var/uplinklocation = "PDA"
+
// OOC Metadata:
var/metadata = ""
var/slot_name = ""
@@ -349,6 +351,8 @@ datum/preferences
else
dat += "Character Records
"
+ dat += "Set Antag Options
"
+
dat += "\tSet Skills ([GetSkillClass(used_skillpoints)][used_skillpoints > 0 ? " [used_skillpoints]" : "0"])
"
dat += "Set Flavor Text
"
@@ -547,6 +551,24 @@ datum/preferences
user << browse(HTML, "window=records;size=350x300")
return
+ proc/SetAntagoptions(mob/user)
+ var/HTML = "