Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CMB Riot Control Unit #6649

Open
wants to merge 60 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
925d8bf
initial
Blundir Jul 7, 2024
be909da
Update cmb.dm
Blundir Jul 7, 2024
7ff040b
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into c…
Blundir Jul 7, 2024
c8b3086
sidearm tweak
Blundir Jul 7, 2024
87ba03e
survivors tweak
Blundir Jul 7, 2024
c2b37f3
upd
Blundir Jul 7, 2024
8d7ed3a
Update Desert_Dam.dmm
Blundir Jul 7, 2024
273a8cd
upd
Blundir Jul 8, 2024
afbb25f
surv tweaks
Blundir Jul 8, 2024
7444e84
Update corpses.dm
Blundir Jul 8, 2024
9101349
Update preset_fiorina_sciannex.dm
Blundir Jul 8, 2024
64bcb73
upd
Blundir Jul 9, 2024
6fcfc57
Merge branch 'master' into cmb_riot
Blundir Jul 10, 2024
8415cfb
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into c…
Blundir Jul 11, 2024
619260a
fix
Blundir Jul 13, 2024
f7f5e70
fix2
Blundir Jul 13, 2024
795ee43
Merge branch 'master' into cmb_riot
Blundir Jul 13, 2024
2ac3fbd
Update Desert_Dam.dmm
Blundir Jul 13, 2024
7193f5e
Merge branch 'cmb_riot' of https://github.com/Blundir/cmss13 into cmb…
Blundir Jul 13, 2024
66d8581
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into c…
Blundir Jul 16, 2024
74b715a
Update smgs.dm
Blundir Jul 17, 2024
bdffe58
upd + spec wip
Blundir Jul 18, 2024
cc1f8e4
Merge branch 'master' into cmb_riot
Blundir Jul 19, 2024
3d5d857
upd
Blundir Jul 19, 2024
b1a9d06
Merge branch 'master' into cmb_riot
Blundir Jul 19, 2024
2be701f
Update grenade_launcher.dm
Blundir Jul 20, 2024
bbc6430
spec update
Blundir Jul 20, 2024
8928958
upd
Blundir Jul 20, 2024
3a696e6
Update cmb.dm
Blundir Jul 20, 2024
b2e7ff8
Update cmb.dm
Blundir Jul 20, 2024
b4bab33
upd
Blundir Jul 20, 2024
f00092c
upd
Blundir Jul 20, 2024
cc160da
upd
Blundir Jul 20, 2024
458f57b
Update rifles.dm
Blundir Jul 20, 2024
8348bf7
mp5a5+car15a3+m16a5
Blundir Jul 22, 2024
5a2a7f2
fix
Blundir Jul 22, 2024
d3cd6e3
Update title.dmi
Blundir Jul 22, 2024
93cf655
Merge branch 'master' into cmb_riot
Blundir Jul 22, 2024
e12414a
Update gun_attachables.dm
Blundir Jul 23, 2024
6e7907a
upd
Blundir Jul 23, 2024
43ec812
fix backpack
Blundir Jul 23, 2024
1030a20
Update shields.dm
Blundir Jul 23, 2024
c41b225
block update
Blundir Jul 23, 2024
341931e
Update suit_slot.dmi
Blundir Jul 23, 2024
146a396
Update rifles.dm
Blundir Jul 23, 2024
9832f55
upd
Blundir Jul 24, 2024
343ef9c
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into c…
Blundir Jul 25, 2024
3616d14
upd
Blundir Jul 25, 2024
5a4d685
Update rifles.dm
Blundir Jul 25, 2024
64d37ba
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into c…
Blundir Jul 31, 2024
cf9993d
fix
Blundir Jul 31, 2024
c5157db
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into c…
Blundir Aug 6, 2024
c6aae23
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into c…
Blundir Aug 12, 2024
ce37cbb
Update cmb.dm
Blundir Aug 14, 2024
e268833
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into c…
Blundir Aug 16, 2024
258db5e
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into c…
Blundir Aug 18, 2024
78fcc88
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into c…
Blundir Aug 21, 2024
9eb718a
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into c…
Blundir Aug 22, 2024
cfe75fd
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into c…
Blundir Aug 23, 2024
7699086
Update lineart.dmi
Blundir Aug 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -245,8 +245,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 Down Expand Up @@ -402,4 +408,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)
7 changes: 4 additions & 3 deletions code/__DEFINES/mob_hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,10 @@
#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_FACTION_CMB 16
#define MOB_HUD_HUNTER 17
#define MOB_HUD_HUNTER_CLAN 18
#define MOB_HUD_EXECUTE 19

//for SL/FTL/LZ targeting on locator huds
#define TRACKER_SL "track_sl"
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"
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 @@ -337,6 +337,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/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."
34 changes: 33 additions & 1 deletion code/datums/factions/cmb.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
/datum/faction/cmb
name = "Colonial Marshal Bureau"
faction_tag = FACTION_MARINE
faction_tag = FACTION_MARSHAL

/datum/faction/cmb/modify_hud_holder(image/holder, mob/living/carbon/human/H)
var/hud_icon_state
var/obj/item/card/id/ID = H.get_idcard()
var/_role
if(H.mind)
_role = H.job
else if(ID)
_role = ID.rank
switch(_role)
if(JOB_CMB)
hud_icon_state = "dep"
if(JOB_CMB_ENG)
hud_icon_state = "brch"
if(JOB_CMB_ICC)
hud_icon_state = "icc"
if(JOB_CMB_MED)
hud_icon_state = "medt"
if(JOB_CMB_RSYN)
hud_icon_state = "rsyn"
if(JOB_CMB_OBS)
hud_icon_state = "obs"
if(JOB_CMB_RIOT)
hud_icon_state = "rco"
if(JOB_CMB_SYN)
hud_icon_state = "syn"
if(JOB_CMB_TL)
hud_icon_state = "mar"
if(JOB_CMB_SWAT)
hud_icon_state = "spec"
if(hud_icon_state)
holder.overlays += image('icons/mob/hud/marine_hud.dmi', H, "cmb_[hud_icon_state]")
16 changes: 0 additions & 16 deletions code/datums/factions/uscm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -197,22 +197,6 @@
marine_rk = "wo_ro"
if(JOB_WO_PILOT)
marine_rk = "wo_mcrew"
// Colonial Marshals
if(JOB_CMB_TL)
marine_rk = "mar"
icon_prefix = "cmb_"
if(JOB_CMB)
marine_rk = "dep"
icon_prefix = "cmb_"
if(JOB_CMB_SYN)
marine_rk = "syn"
icon_prefix = "cmb_"
if(JOB_CMB_ICC)
marine_rk = "icc"
icon_prefix = "cmb_"
if(JOB_CMB_OBS)
marine_rk = "obs"
icon_prefix = "cmb_"
// Check squad marines here too, for the unique ones
if(JOB_SQUAD_ENGI)
marine_rk = "engi"
Expand Down
4 changes: 4 additions & 0 deletions code/datums/mob_hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list(
MOB_HUD_FACTION_TWE = new /datum/mob_hud/faction/twe(),
MOB_HUD_FACTION_CLF = new /datum/mob_hud/faction/clf(),
MOB_HUD_FACTION_PMC = new /datum/mob_hud/faction/pmc(),
MOB_HUD_FACTION_CMB = new /datum/mob_hud/faction/cmb(),
MOB_HUD_HUNTER = new /datum/mob_hud/hunter_hud(),
MOB_HUD_HUNTER_CLAN = new /datum/mob_hud/hunter_clan(),
MOB_HUD_EXECUTE = new /datum/mob_hud/execute_hud(),
Expand Down Expand Up @@ -212,6 +213,9 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list(
/datum/mob_hud/faction/pmc
faction_to_check = FACTION_PMC

/datum/mob_hud/faction/cmb
faction_to_check = FACTION_MARSHAL

/datum/mob_hud/faction/observer
hud_icons = list(FACTION_HUD, ORDER_HUD, HUNTER_CLAN, HOLOCARD_HUD)

Expand Down
26 changes: 26 additions & 0 deletions code/datums/paygrades/factions/other/cmb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,32 @@
/datum/paygrade/cmb/syn
paygrade = PAY_SHORT_CMBS
name = "CMB Investigative Synthetic"
prefix = "Syn."

/datum/paygrade/cmb/syn/riot
paygrade = PAY_SHORT_CMBRS
name = "CMB Riot Control Synthetic"
prefix = "Syn."

/datum/paygrade/cmb/riot
paygrade = PAY_SHORT_CMBR
name = "CMB Riot Control Officer"
prefix = "Off."

/datum/paygrade/cmb/med
paygrade = PAY_SHORT_CMBMT
name = "CMB Medical Technician"
prefix = "Med."

/datum/paygrade/cmb/eng
paygrade = PAY_SHORT_CMBBT
name = "CMB Breaching Technician"
prefix = "Brech."

/datum/paygrade/cmb/spec
paygrade = PAY_SHORT_CMBSWS
name = "CMB SWAT Specialist"
prefix = "Spec."

/datum/paygrade/cmb/icc
paygrade = PAY_SHORT_ICCA
Expand Down
46 changes: 45 additions & 1 deletion code/datums/skills/cmb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,50 @@ COLONIAL MARSHALS
SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER,
)

/datum/skills/cmb/medic
name = "CMB Medical Technician"
skills = list(
SKILL_POLICE = SKILL_POLICE_SKILLED,
SKILL_CQC = SKILL_CQC_EXPERT,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT,
SKILL_FIREARMS = SKILL_FIREARMS_TRAINED,
SKILL_FIREMAN = SKILL_FIREMAN_EXPERT,
SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR,
SKILL_SURGERY = SKILL_SURGERY_TRAINED,
SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED,
SKILL_JTAC = SKILL_JTAC_BEGINNER,
SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER,
)

/datum/skills/cmb/engi
name = "CMB Breaching Technician"
skills = list(
SKILL_POLICE = SKILL_POLICE_SKILLED,
SKILL_CQC = SKILL_CQC_EXPERT,
SKILL_FIREARMS = SKILL_FIREARMS_TRAINED,
SKILL_FIREMAN = SKILL_FIREMAN_SKILLED,
SKILL_MEDICAL = SKILL_MEDICAL_TRAINED,
SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_ENGINEER = SKILL_ENGINEER_ENGI,
SKILL_JTAC = SKILL_JTAC_BEGINNER,
SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER,
)

/datum/skills/cmb/spec
name = "CMB SWAT Specialist"
skills = list(
SKILL_POLICE = SKILL_POLICE_SKILLED,
SKILL_CQC = SKILL_CQC_MASTER,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT,
SKILL_FIREARMS = SKILL_FIREARMS_EXPERT,
SKILL_FIREMAN = SKILL_FIREMAN_EXPERT,
SKILL_MEDICAL = SKILL_MEDICAL_TRAINED,
SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED,
SKILL_JTAC = SKILL_JTAC_BEGINNER,
SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER,
)

/datum/skills/cmb/leader
name = "CMB Marshal"
skills = list(
Expand All @@ -31,7 +75,7 @@ COLONIAL MARSHALS
SKILL_FIREARMS = SKILL_FIREARMS_MAX,
SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED,
SKILL_VEHICLE = SKILL_VEHICLE_SMALL,
SKILL_ENDURANCE = SKILL_ENDURANCE_EXPERT,
SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER,
SKILL_JTAC = SKILL_JTAC_EXPERT,
)

Expand Down
Loading
Loading