diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
index 86bb9c521f..09f9d81de5 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
@@ -255,11 +255,11 @@
antag_flag = ROLE_FAMILY_HEAD_ASPIRANT
antag_flag_override = ROLE_FAMILIES
protected_roles = list("Prisoner", "Head of Personnel")
- restricted_roles = list("Cyborg", "AI", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Research Director")
+ restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director")
required_candidates = 9
- weight = 2
- cost = 19
- requirements = list(101,101,40,40,30,20,10,10,10,10)
+ weight = 3
+ cost = 15
+ requirements = list(101,101,101,50,30,20,10,10,10,10)
flags = HIGH_IMPACT_RULESET
blocking_rules = list(/datum/dynamic_ruleset/roundstart/families)
/// A reference to the handler that is used to run pre_execute(), execute(), etc..
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
index ff6c217467..2ca63f1e3a 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
@@ -497,11 +497,11 @@
antag_datum = /datum/antagonist/gang
antag_flag = ROLE_FAMILIES
protected_roles = list("Prisoner", "Head of Personnel")
- restricted_roles = list("Cyborg", "AI", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Research Director")
+ restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director")
required_candidates = 9
- weight = 1
- cost = 19
- requirements = list(101,101,40,40,30,20,10,10,10,10)
+ weight = 3
+ cost = 15
+ requirements = list(101,101,101,50,30,20,10,10,10,10)
flags = HIGH_IMPACT_RULESET
/// A reference to the handler that is used to run pre_execute(), execute(), etc..
var/datum/gang_handler/handler
diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm
index ca1abe7b1f..43a7e561c0 100644
--- a/code/modules/antagonists/ert/ert.dm
+++ b/code/modules/antagonists/ert/ert.dm
@@ -174,6 +174,7 @@
name = "Space Police Responder"
antag_hud_type = ANTAG_HUD_SPACECOP
antag_hud_name = "hud_spacecop"
+ suicide_cry = "FOR THE SPACE POLICE!!"
/datum/antagonist/ert/families/apply_innate_effects(mob/living/mob_override)
..()
@@ -198,16 +199,23 @@
..()
/datum/antagonist/ert/families/greet()
- to_chat(owner, "You are the [name].")
-
- var/missiondesc = "After an uptick in gang violence on [station_name()], you are responding to emergency calls from the station for immediate SSC Police assistance!\n"
+ var/missiondesc = "You are the [name]."
+ missiondesc += "
You are NOT a Nanotrasen Employee. You work for the local government."
+ missiondesc += "
You are NOT a deathsquad. You are here to help innocents escape violence, criminal activity, and other dangerous things."
+ missiondesc += "
After an uptick in gang violence on [station_name()], you are responding to emergency calls from the station for immediate SSC Police assistance!\n"
missiondesc += "
Your Mission:"
- missiondesc += "
1. Secure the situation and crack down on any gang activity. You can view gangsters with your sunglasses."
- missiondesc += "
2. There is an undercover police officer on station. Secure him, receive his intel, and extract him safely."
- missiondesc += "
3. Minimize civilian casualties, but defend yourself and civilians from hostile gangsters."
- missiondesc += "
3. If Security is found to be violating the rights of citizens, detain them as per your authority as Spinward Stellar Coalition officers."
- missiondesc += "
4. If the situation demands it, evacuate the station. Otherwise, remain on station and keep the peace."
+ missiondesc += "
1. Serve the public trust."
+ missiondesc += "
2. Protect the innocent."
+ missiondesc += "
3. Uphold the law."
+ missiondesc += "
4. Find the Undercover Cops."
+ missiondesc += "
5. Detain Nanotrasen Security personnel if they harm any citizen."
+ missiondesc += "
You can see gangsters using your special sunglasses."
to_chat(owner,missiondesc)
+ var/policy = get_policy(ROLE_FAMILIES)
+ if(policy)
+ to_chat(owner, policy)
+ var/mob/living/M = owner.current
+ M.playsound_local(M, 'sound/effects/families_police.ogg', 100, FALSE, pressure_affected = FALSE)
/datum/antagonist/ert/families/undercover_cop
name = "Undercover Cop"
@@ -221,30 +229,31 @@
random_names = FALSE
/datum/antagonist/ert/families/undercover_cop/on_gain()
- for(var/C in free_clothes)
- var/obj/O = new C(owner.current)
- var/list/slots = list (
- "backpack" = ITEM_SLOT_BACKPACK,
- "left pocket" = SLOT_L_STORE,
- "right pocket" = SLOT_R_STORE
- )
- var/mob/living/carbon/human/H = owner.current
- var/equipped = H.equip_in_one_of_slots(O, slots)
- if(!equipped)
- to_chat(owner.current, "Unfortunately, you could not bring your [O] to this shift. You will need to find one.")
- qdel(O)
+ if(istype(owner.current, /mob/living/carbon/human))
+ for(var/C in free_clothes)
+ var/obj/O = new C(owner.current)
+ var/list/slots = list (
+ "backpack" = ITEM_SLOT_BACKPACK,
+ "left pocket" = SLOT_L_STORE,
+ "right pocket" = SLOT_R_STORE
+ )
+ var/mob/living/carbon/human/H = owner.current
+ var/equipped = H.equip_in_one_of_slots(O, slots)
+ if(!equipped)
+ to_chat(owner.current, "Unfortunately, you could not bring your [O] to this shift. You will need to find one.")
+ qdel(O)
. = ..()
/datum/antagonist/ert/families/undercover_cop/greet()
- to_chat(owner, "You are the [name].")
-
- var/missiondesc = "You are an undercover police officer on board [station_name()]. You've been sent here by the Spinward Stellar Coalition because of suspected abusive behavior by the security department, and to keep tabs on a potential criminal organization operation."
+ var/missiondesc = "You are the [name]."
+ missiondesc += "
You are NOT a Nanotrasen Employee. You work for the local government."
+ missiondesc += "
You are an undercover police officer on board [station_name()]. You've been sent here by the Spinward Stellar Coalition because of suspected abusive behavior by the security department, and to keep tabs on a potential criminal organization operation."
missiondesc += "
Your Mission:"
missiondesc += "
1. Keep a close eye on any gangsters you spot. You can view gangsters using your sunglasses in your backpack."
missiondesc += "
2. Keep an eye on how Security handles any gangsters, and watch for excessive security brutality."
missiondesc += "
3. Remain undercover and do not get found out by Security or any gangs. Nanotrasen does not take kindly to being spied on."
- missiondesc += "
4. When your backup arrives to extract you in 1 hour, inform them of everything you saw of note, and assist them in securing the situation."
+ missiondesc += "
4. When your backup arrives to extract you in 1 hour, inform them of everything you saw of note, and assist them in securing the situation."
to_chat(owner,missiondesc)
/datum/antagonist/ert/families/beatcop
@@ -275,3 +284,23 @@
/datum/antagonist/ert/families/beatcop/military/New()
. = ..()
name_source = GLOB.commando_names
+
+/datum/antagonist/ert/marine
+ name = "Marine Commander"
+ outfit = /datum/outfit/ert/commander/alert
+ role = "Commander"
+
+/datum/antagonist/ert/marine/security
+ name = "Marine Heavy"
+ outfit = /datum/outfit/ert/security/alert
+ role = "Trooper"
+
+/datum/antagonist/ert/marine/engineer
+ name = "Marine Engineer"
+ outfit = /datum/outfit/ert/engineer/alert
+ role = "Engineer"
+
+/datum/antagonist/ert/marine/medic
+ name = "Marine Medic"
+ outfit = /datum/outfit/ert/medic/alert
+ role = "Medical Officer"
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index af8c3eda2c..9df7dea1f1 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -762,8 +762,6 @@
client.prefs.scars_list["[cur_scar_index]"] = valid_scars
client.prefs.save_character()
- if(mind in GLOB.pre_setup_antags)
- var/is_antag = TRUE
client.prefs.copy_to(H, initial_spawn = TRUE)
H.dna.update_dna_identity()
diff --git a/config/dynamic.json b/config/dynamic.json
index bed7b4b387..b229658e3a 100644
--- a/config/dynamic.json
+++ b/config/dynamic.json
@@ -65,6 +65,10 @@
"Clock Cult": {
"weight": 3
+ },
+
+ "Families": {
+ "weight": 3
}
},
@@ -117,6 +121,10 @@
"weight": 4
},
+ "Family Head Aspirants": {
+ "weight": 3
+ },
+
"Spiders": {
"weight": 0
}