Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into M…
Browse files Browse the repository at this point in the history
…ore-Marine-customization
  • Loading branch information
Zenith00000 committed Dec 16, 2024
2 parents e5df883 + 13bcd6f commit 8abf6ac
Show file tree
Hide file tree
Showing 183 changed files with 17,786 additions and 788 deletions.
10 changes: 10 additions & 0 deletions code/__DEFINES/__game.dm
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,14 @@
#define PLAY_SYNTH (1<<5)
#define PLAY_MISC (1<<6)

//toggles_hunting_grounds
#define PLAY_MERC (1<<0)
#define PLAY_TWE (1<<1)
#define PLAY_UPP (1<<2)
#define PLAY_CLF (1<<3)
#define PLAY_XENO_T2 (1<<4)
#define PLAY_XENO_T3 (1<<5)

//toggles_admin
/// Splits admin tabs in Statpanel
#define SPLIT_ADMIN_TABS (1<<0)
Expand All @@ -167,6 +175,8 @@

#define TOGGLES_ERT_DEFAULT (PLAY_LEADER|PLAY_MEDIC|PLAY_ENGINEER|PLAY_HEAVY|PLAY_SMARTGUNNER|PLAY_SYNTH|PLAY_MISC)

#define TOGGLES_ERT_GROUNDS (PLAY_MERC|PLAY_TWE|PLAY_UPP|PLAY_CLF|PLAY_XENO_T2|PLAY_XENO_T3)

#define TOGGLES_ADMIN_DEFAULT (ADMIN_AFK_SAFE)

// Game Intents
Expand Down
6 changes: 6 additions & 0 deletions code/__DEFINES/dcs/signals/signals_global.dm
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,12 @@
/// From
#define COMSIG_GLOB_YAUTJA_ARMORY_OPENED "!yautja_armory_opened"

/// For opening hunting grounds shutters
#define COMSIG_GLOB_YAUTJA_PRESERVE_OPENED "!yautja_preserve_opened"

/// For closing hunting grounds shutters
#define COMSIG_GLOB_YAUTJA_PRESERVE_CLOSED "!yautja_preserve_closed"

/// From /proc/biohazard_lockdown()
#define COMSIG_GLOB_RESEARCH_LOCKDOWN "!research_lockdown_closed"
#define COMSIG_GLOB_RESEARCH_LIFT "!research_lockdown_opened"
Expand Down
11 changes: 9 additions & 2 deletions code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -253,8 +253,14 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST)
#define JOB_CMB_SYN "CMB Investigative Synthetic"
#define JOB_CMB_ICC "Interstellar Commerce Commission Corporate Liaison"
#define JOB_CMB_OBS "Interstellar Human Rights Observer"
#define JOB_CMB_RIOT "CMB Riot Control Officer"
#define JOB_CMB_MED "CMB Medical Technician"
#define JOB_CMB_ENG "CMB Breaching Technician"
#define JOB_CMB_SWAT "CMB SWAT Specialist"
#define JOB_CMB_RSYN "CMB Riot Control Synthetic"

#define CMB_GRUNT_LIST list(JOB_CMB, JOB_CMB_TL)
#define CMB_RIOT_LIST list(JOB_CMB_TL, JOB_CMB_RIOT, JOB_CMB_MED, JOB_CMB_ENG, JOB_CMB_SWAT)

//-------- FORECON --------//

Expand All @@ -278,6 +284,7 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST)
#define JOB_UPP_LT_OFFICER "UPP Mladshiy Leytenant"
#define JOB_UPP_SUPPLY "UPP Logistics Technician"
#define JOB_UPP_LT_DOKTOR "UPP Leytenant Doktor"
#define JOB_UPP_PILOT "UPP Pilot"
#define JOB_UPP_SRLT_OFFICER "UPP Starshiy Leytenant"
#define JOB_UPP_KPT_OFFICER "UPP Kapitan"
#define JOB_UPP_CO_OFFICER "UPP Komandir"
Expand All @@ -297,7 +304,7 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST)
#define JOB_UPP_COMBAT_SYNTH "UPP Combat Synthetic"
#define JOB_UPP_SUPPORT_SYNTH "UPP Support Synthetic"

#define UPP_JOB_LIST list(JOB_UPP, JOB_UPP_ENGI, JOB_UPP_MEDIC, JOB_UPP_SPECIALIST, JOB_UPP_LEADER, JOB_UPP_POLICE, JOB_UPP_LT_OFFICER, JOB_UPP_LT_DOKTOR, JOB_UPP_SUPPLY, JOB_UPP_SRLT_OFFICER, JOB_UPP_KPT_OFFICER, JOB_UPP_CO_OFFICER, JOB_UPP_SUPPORT_SYNTH, JOB_UPP_COMMISSAR)
#define UPP_JOB_LIST list(JOB_UPP, JOB_UPP_ENGI, JOB_UPP_MEDIC, JOB_UPP_SPECIALIST, JOB_UPP_LEADER, JOB_UPP_POLICE, JOB_UPP_LT_OFFICER, JOB_UPP_LT_DOKTOR, JOB_UPP_PILOT, JOB_UPP_SUPPLY, JOB_UPP_SRLT_OFFICER, JOB_UPP_KPT_OFFICER, JOB_UPP_CO_OFFICER, JOB_UPP_SUPPORT_SYNTH, JOB_UPP_COMMISSAR)
#define UPP_JOB_GRUNT_LIST list(JOB_UPP, JOB_UPP_ENGI, JOB_UPP_MEDIC, JOB_UPP_SPECIALIST, JOB_UPP_LEADER, JOB_UPP_POLICE, JOB_UPP_CREWMAN)

#define JOB_UPP_COMMANDO "UPP Junior Kommando"
Expand Down Expand Up @@ -433,4 +440,4 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST)

///For denying certain traits being applied to people. ie. bad leg
///'Grunt' lists are for people who wouldn't logically get the bad leg trait, ie. UPP marine counterparts.
#define JOB_ERT_GRUNT_LIST list(DUTCH_JOB_LIST, RIOT_JOB_LIST, PROVOST_JOB_LIST, CMB_GRUNT_LIST, CLF_JOB_LIST, UPP_JOB_GRUNT_LIST, UPP_COMMANDO_JOB_LIST, CONTRACTOR_JOB_LIST, ROLES_WY_GOONS, ROLES_WY_PMC_ALL)
#define JOB_ERT_GRUNT_LIST list(DUTCH_JOB_LIST, RIOT_JOB_LIST, PROVOST_JOB_LIST, CMB_GRUNT_LIST, CLF_JOB_LIST, UPP_JOB_GRUNT_LIST, UPP_COMMANDO_JOB_LIST, CONTRACTOR_JOB_LIST, ROLES_WY_GOONS, ROLES_WY_PMC_ALL, CMB_RIOT_LIST)
9 changes: 5 additions & 4 deletions code/__DEFINES/mob_hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,11 @@
#define MOB_HUD_FACTION_TWE 13
#define MOB_HUD_FACTION_CLF 14
#define MOB_HUD_FACTION_PMC 15
#define MOB_HUD_HUNTER 16
#define MOB_HUD_HUNTER_CLAN 17
#define MOB_HUD_EXECUTE 18
#define MOB_HUD_NEW_PLAYER 19
#define MOB_HUD_FACTION_CMB 16
#define MOB_HUD_HUNTER 17
#define MOB_HUD_HUNTER_CLAN 18
#define MOB_HUD_EXECUTE 19
#define MOB_HUD_NEW_PLAYER 20

//for SL/FTL/LZ targeting on locator huds
#define TRACKER_SL "track_sl"
Expand Down
8 changes: 5 additions & 3 deletions code/__DEFINES/mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ GLOBAL_LIST_INIT(ROLES_COMMAND, list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFIC
GLOBAL_LIST_INIT(ROLES_CIC, list(JOB_CO, JOB_XO, JOB_SO, JOB_WO_CO, JOB_WO_XO))
GLOBAL_LIST_INIT(ROLES_CIC_ANTAG, list(JOB_UPP_SRLT_OFFICER, JOB_UPP_KPT_OFFICER, JOB_UPP_CO_OFFICER, JOB_UPP_COMMISSAR))
GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT, list(JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_TANK_CREW, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT))
GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT_ANTAG, list(JOB_UPP_CREWMAN))
GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT_ANTAG, list(JOB_UPP_CREWMAN, JOB_UPP_PILOT))
GLOBAL_LIST_INIT(ROLES_MISC, list(JOB_SYNTH, JOB_WORKING_JOE, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_MESS_SERGEANT, JOB_WO_CORPORATE_LIAISON, JOB_WO_SYNTH))
GLOBAL_LIST_INIT(ROLES_MISC_ANTAG, list(JOB_UPP_COMBAT_SYNTH, JOB_UPP_SUPPORT_SYNTH))
GLOBAL_LIST_INIT(ROLES_POLICE, list(JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE))
Expand Down Expand Up @@ -273,14 +273,15 @@ DEFINE_BITFIELD(whitelist_status, list(
#define FACTION_SOUTO "Souto Man"
#define FACTION_COLONIST "Colonist"
#define FACTION_YAUTJA "Yautja"
#define FACTION_HUNTED "Hunted"
#define FACTION_ZOMBIE "Zombie"
#define FACTION_MONKEY "Monkey" // Nanu
#define FACTION_FAX "Fax Responder"

#define FACTION_LIST_MARINE list(FACTION_MARINE)
#define FACTION_LIST_HUMANOID list(FACTION_MARINE, FACTION_PMC, FACTION_WY, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_MARSHAL, FACTION_UPP, FACTION_FREELANCER, FACTION_SURVIVOR, FACTION_NEUTRAL, FACTION_COLONIST, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_YAUTJA, FACTION_ZOMBIE, FACTION_TWE, FACTION_FAX)
#define FACTION_LIST_HUMANOID list(FACTION_MARINE, FACTION_PMC, FACTION_WY, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_MARSHAL, FACTION_UPP, FACTION_FREELANCER, FACTION_SURVIVOR, FACTION_NEUTRAL, FACTION_COLONIST, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_YAUTJA, FACTION_ZOMBIE, FACTION_TWE, FACTION_HUNTED, FACTION_FAX)
#define FACTION_LIST_ERT_OTHER list(FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO)
#define FACTION_LIST_ERT_ALL list(FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY, FACTION_CLF, FACTION_CONTRACTOR, FACTION_UPP, FACTION_FREELANCER, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_MARSHAL, FACTION_TWE)
#define FACTION_LIST_ERT_ALL list(FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY, FACTION_CLF, FACTION_CONTRACTOR, FACTION_UPP, FACTION_FREELANCER, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_MARSHAL, FACTION_TWE, FACTION_HUNTED)
#define FACTION_LIST_WY list(FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY)
#define FACTION_LIST_UPP list(FACTION_UPP)
#define FACTION_LIST_CLF list(FACTION_CLF)
Expand All @@ -295,6 +296,7 @@ DEFINE_BITFIELD(whitelist_status, list(
#define FACTION_LIST_MARINE_UPP list(FACTION_MARINE, FACTION_UPP)
#define FACTION_LIST_MARINE_TWE list(FACTION_MARINE, FACTION_TWE)
#define FACTION_LIST_YAUTJA list(FACTION_YAUTJA)
#define FACTION_LIST_HUNTED list(FACTION_HUNTED)

// Xenomorphs
#define FACTION_PREDALIEN "Predalien"
Expand Down
15 changes: 15 additions & 0 deletions code/__DEFINES/paygrade_defs/cmb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,20 @@
/// CMBD, CMB Deputy
#define PAY_SHORT_CMBD "CMBD"

/// CMBR, CMB Riot Control Officer
#define PAY_SHORT_CMBR "CMBR"

/// CMBMT, CMB Medical Technician
#define PAY_SHORT_CMBMT "CMBMT"

/// CMBBT, CMB Breaching Technician
#define PAY_SHORT_CMBBT "CMBBT"

/// CMBBT, CMB SWAT Specialist
#define PAY_SHORT_CMBSWS "CMBSWS"

/// CMBRS, CMB Riot Control Synthetic
#define PAY_SHORT_CMBRS "CMBRS"

/// CMBS, CMB Synthetic
#define PAY_SHORT_CMBS "CMBS"
4 changes: 2 additions & 2 deletions code/__HELPERS/unsorted.dm
Original file line number Diff line number Diff line change
Expand Up @@ -268,11 +268,11 @@
var/search_pda = 1

for(var/A in searching)
if( search_id && istype(A,/obj/item/card/id) )
if(search_id && istype(A, /obj/item/card/id))
var/obj/item/card/id/ID = A
if(ID.registered_name == oldname)
ID.registered_name = newname
ID.name = "[newname]'s ID Card ([ID.assignment])"
ID.name = "[newname]'s [ID.id_type] ([ID.assignment])"
if(!search_pda) break
search_id = 0
return 1
Expand Down
2 changes: 2 additions & 0 deletions code/controllers/subsystem/who.dm
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ SUBSYSTEM_DEF(who)
"yautja" = 0,
"infected_preds" = 0,
"humans" = 0,
"hunted" = 0,
"infected_humans" = 0,
"uscm" = 0,
"uscm_marines" = 0,
Expand Down Expand Up @@ -134,6 +135,7 @@ SUBSYSTEM_DEF(who)
factions_additional += list(list("content" = "Marines: [counted_additional["uscm_marines"]]", "color" = "#5442bd", "text" = "Players playing as Marines"))
factions_additional += list(list("content" = "Yautjas: [counted_additional["yautja"]]", "color" = "#7ABA19", "text" = "Players playing as Yautja"))
factions_additional += list(list("content" = "Infected Predators: [counted_additional["infected_preds"]]", "color" = "#7ABA19", "text" = "Players playing as Infected Yautja"))
factions_additional += list(list("content" = "Hunted In Preserve: [counted_additional["hunted"]]", "color" = "#476816", "text" = "Players playing as hunted in preserve"))

for(var/i in 1 to length(counted_factions))
if(!counted_factions[counted_factions[i]])
Expand Down
3 changes: 3 additions & 0 deletions code/datums/ammo/bullet/revolver.dm
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,9 @@

penetration = ARMOR_PENETRATION_TIER_3

/datum/ammo/bullet/revolver/small/cmb
damage = 60

/datum/ammo/bullet/revolver/small/hollowpoint
name = "small hollowpoint revolver bullet"
headshot_state = HEADSHOT_OVERLAY_MEDIUM
Expand Down
24 changes: 24 additions & 0 deletions code/datums/ammo/bullet/shotgun.dm
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,30 @@
scatter = SCATTER_AMOUNT_TIER_3
damage = 10

/datum/ammo/bullet/shotgun/light/rubber
name = "rubber buckshot shell"
icon_state = "buckshot"
handful_state = "rubbershot_shell"
multiple_handful_name = TRUE
bonus_projectiles_type = /datum/ammo/bullet/shotgun/light/rubber/spread
sound_override = 'sound/weapons/gun_shotgun_riot.ogg'
headshot_state = HEADSHOT_OVERLAY_LIGHT //It's not meant to kill people... but if you put it in your mouth, it will.
accuracy = HIT_ACCURACY_TIER_3
shell_speed = AMMO_SPEED_TIER_2
max_range = 5
shrapnel_chance = 0
damage = 0
stamina_damage = 35
bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3
penetration = ARMOR_PENETRATION_TIER_1

/datum/ammo/bullet/shotgun/light/rubber/spread
name = "additional rubber buckshot"
bonus_projectiles_amount = 0
scatter = SCATTER_AMOUNT_TIER_3
stamina_damage = 10


//Enormous shell for Van Bandolier's superheavy double-barreled hunting gun.
/datum/ammo/bullet/shotgun/twobore
name = "two bore bullet"
Expand Down
93 changes: 92 additions & 1 deletion code/datums/emergency_calls/cmb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@
to_chat(M, SPAN_BOLD("Following the lead of your Marshal, you have become renown for your steadfast commitment to justice, fighting against crime and corruption alike."))
to_chat(M, SPAN_BOLD("While enroute to an investigation you were diverted by your command at Anchorpoint Station to the [MAIN_SHIP_NAME] because of a distress beacon."))
to_chat(M, SPAN_BOLD("You have been stationed at Anchorpoint Station for [pick(80;"several months", 10;"only a week", 10;"years")] investigating henious crimes among the frontier."))
to_chat(M, SPAN_BOLD("The laws of arth stretch beyond the Sol. Where others fall to corruption, you stay steadfast in your morals."))
to_chat(M, SPAN_BOLD("The laws of Earth stretch beyond the Sol. Where others fall to corruption, you stay steadfast in your morals."))
to_chat(M, SPAN_BOLD("Corporate Officers chase after paychecks and promotions, but you are motivated to do your sworn duty and care for the population, no matter how far or isolated a colony may be."))
to_chat(M, SPAN_BOLD("Despite being stretched thin, the stalwart oath of the Marshals has continued to keep communities safe, with the CMB well respected by many. You are a representation of that oath, serve with distinction."))

Expand Down Expand Up @@ -209,3 +209,94 @@
to_chat(M, SPAN_BOLD("You were activated as a part of a Quick Reaction Force to reinforce Colonial Marshals in distress."))
to_chat(M, SPAN_BOLD("You weren't sure if it was a false alarm or not. Turns out it isn't..."))
to_chat(M, SPAN_BOLD("Now it looks like the time to be the cavalry is once more upon you."))

/datum/emergency_call/cmb/riot_control
name = "CMB - Colonial Marshals Riot Control Unit (Friendly)"
mob_max = 8
mob_min = 3
probability = 20
home_base = /datum/lazy_template/ert/weyland_station
max_heavies = 1
max_medics = 2
max_synths = 1
max_engineers = 1

/datum/emergency_call/cmb/riot_control/New()
..()
arrival_message = "Incoming Transmission: [MAIN_SHIP_NAME], this is Anchorpoint Station with the Colonial Marshal Bureau. We are receiving your distress signal and are dispatching a nearby riot control team to board with you now. Standby."

/datum/emergency_call/cmb/riot_control/create_member(datum/mind/M, turf/override_spawn_loc)
var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point()

if(!istype(spawn_loc))
return //Didn't find a useable spawn point.

var/mob/living/carbon/human/mob = new(spawn_loc)
M.transfer_to(mob, TRUE)

if(!leader && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job))
leader = mob
to_chat(mob, SPAN_ROLE_HEADER("You are the Colonial Marshal!"))
arm_equipment(mob, /datum/equipment_preset/cmb/leader/riot, TRUE, TRUE)
else if(medics < max_medics && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(mob.client, JOB_SQUAD_MEDIC, time_required_for_job))
medics++
to_chat(mob, SPAN_ROLE_HEADER("You are a CMB Medical Technician!"))
arm_equipment(mob, /datum/equipment_preset/cmb/med, TRUE, TRUE)
else if(engineers < max_engineers && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_ENGINEER) && check_timelock(mob.client, JOB_SQUAD_ENGI, time_required_for_job))
engineers++
to_chat(mob, SPAN_ROLE_HEADER("You are a CMB Breaching Technician!"))
arm_equipment(mob, /datum/equipment_preset/cmb/eng, TRUE, TRUE)
else if(heavies < max_heavies && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_HEAVY) && check_timelock(mob.client, JOB_SQUAD_SPECIALIST, time_required_for_job))
heavies++
to_chat(mob, SPAN_ROLE_HEADER("You are a CMB SWAT Specialist!"))
arm_equipment(mob, /datum/equipment_preset/cmb/spec, TRUE, TRUE)
else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && mob.client.check_whitelist_status(WHITELIST_SYNTHETIC))
synths++
to_chat(mob, SPAN_ROLE_HEADER("You are a CMB Riot Control Synthetic!"))
arm_equipment(mob, /datum/equipment_preset/cmb/synth/riot, TRUE, TRUE)
else
to_chat(mob, SPAN_ROLE_HEADER("You are a Riot Control Officer!"))
arm_equipment(mob, /datum/equipment_preset/cmb/riot, TRUE, TRUE)

print_backstory(mob)

addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives:</b> [objectives]")), 1 SECONDS)

/datum/emergency_call/cmb/riot_control/print_backstory(mob/living/carbon/human/M)
if(M == leader)
to_chat(M, SPAN_BOLD("You are the Colonial Marshal, originally from [pick(70;"The United Americas", 20;"Sol", 10;"a colony on the frontier")]."))
to_chat(M, SPAN_BOLD("You started in the Marshals through [pick(50; "pursuing a career during college", 40;"working for law enforcement", 10;"being recruited for your skills")]."))
to_chat(M, SPAN_BOLD("Rising through positions across the galaxy, you have become renown for your steadfast commitment to justice, fighting against crime and corruption alike."))
to_chat(M, SPAN_BOLD("Enroute to a [pick(20; "homicide", 20;"corporate corruption investigation", 10; "hostage situation", 10;"terrorist attack", 10;"prisoner transfer", 10;"drug raid", 10;"barricaded fugitive situation", 5;"suspected smuggling incident", 5;"human trafficking situation" )] you were diverted by your command at Anchorpoint Station to the [MAIN_SHIP_NAME] because of a distress beacon."))
to_chat(M, SPAN_BOLD("The laws of Earth stretch beyond the Sol. Where others are tempted and fall to corruption, you stay steadfast in your morals."))
to_chat(M, SPAN_BOLD("Corporate Officers chase after paychecks and promotions, but you are motivated to do your sworn duty and care for the population, no matter how far or isolated a colony may be."))
to_chat(M, SPAN_BOLD("You've seen a lot during your time in the Neroid Sector, but you're here because you're the best, doing the right thing to make the frontier a better place."))
to_chat(M, SPAN_BOLD("Despite being stretched thin, the stalwart oath of the Marshals has continued to keep communities safe, with the CMB well respected by many. You are the representation of that oath, serve with distinction."))
else if(issynth(M))
to_chat(M, SPAN_BOLD("Despite being an older model, you are well regarded among your peers for your keen senses and alertness."))
to_chat(M, SPAN_BOLD("You do not enforce or comply with Marine Law, however you have an understanding of it."))
to_chat(M, SPAN_BOLD("After receiving a software and law update in Sol, you were stationed at Anchorpoint Station to assist with CMB units on the frontier."))
to_chat(M, SPAN_BOLD("While enroute to your mission you were diverted by your command to the [MAIN_SHIP_NAME] because of a distress beacon."))
to_chat(M, SPAN_BOLD("Despite being stretched thin, the stalwart oath of the Marshals has continued to keep communities safe, with the CMB well respected by many. You are a representation of that oath, serve with distinction."))
else
to_chat(M, SPAN_BOLD("You are a CMB Riot Control Officer, originally from [pick(70;"The United Americas", 20;"Sol", 10;"a colony on the frontier")]."))
to_chat(M, SPAN_BOLD("You joined the Marshals through [pick(50; "pursuing a career during college", 40;"working for law enforcement", 10;"being recruited for your skills")]."))
to_chat(M, SPAN_BOLD("Following the lead of your Marshal, you have become renown for your steadfast commitment to justice, fighting against crime and corruption alike."))
to_chat(M, SPAN_BOLD("While enroute to your mission you were diverted by your command at Anchorpoint Station to the [MAIN_SHIP_NAME] because of a distress beacon."))
to_chat(M, SPAN_BOLD("You have been stationed at Anchorpoint Station for [pick(80;"several months", 10;"only a week", 10;"years")] keeping orden on the frontier."))
to_chat(M, SPAN_BOLD("The laws of Earth stretch beyond the Sol. Where others fall to corruption, you stay steadfast in your morals."))
to_chat(M, SPAN_BOLD("Corporate Officers chase after paychecks and promotions, but you are motivated to do your sworn duty and care for the population, no matter how far or isolated a colony may be."))
to_chat(M, SPAN_BOLD("Despite being stretched thin, the stalwart oath of the Marshals has continued to keep communities safe, with the CMB well respected by many. You are a representation of that oath, serve with distinction."))

// A Nearby Colonial Marshal riot control team responding to Marshals in Distress.
/datum/emergency_call/cmb/riot_control/alt
name = "CMB - Riot Control Unit - Marshals in Distress (Friendly)"
mob_max = 5
mob_min = 1
max_medics = 1
probability = 0

/datum/emergency_call/cmb/riot_control/alt/New()
..()
arrival_message = "CMB Team, this is Anchorpoint Station. We have confirmed you are in distress. Routing nearby units to assist!"
objectives = "Patrol Unit 5807, we have nearby Marshals in Distress! Locate and assist them immediately."
Loading

0 comments on commit 8abf6ac

Please sign in to comment.