Skip to content

Commit

Permalink
upd + spec wip
Browse files Browse the repository at this point in the history
  • Loading branch information
Blundir committed Jul 18, 2024
1 parent 74b715a commit bdffe58
Show file tree
Hide file tree
Showing 15 changed files with 114 additions and 15 deletions.
3 changes: 2 additions & 1 deletion code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -244,10 +244,11 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST)
#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)
#define CMB_RIOT_LIST list(JOB_CMB_TL, JOB_CMB_RIOT, JOB_CMB_MED, JOB_CMB_ENG, JOB_CMB_SWAT)

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

Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/paygrade_defs/cmb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@
/// 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"

Expand Down
15 changes: 10 additions & 5 deletions 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 @@ -212,11 +212,12 @@

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

Expand Down Expand Up @@ -245,6 +246,10 @@
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!"))
Expand Down Expand Up @@ -279,6 +284,6 @@
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 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."))
2 changes: 2 additions & 0 deletions code/datums/factions/cmb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,7 @@
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]")
4 changes: 4 additions & 0 deletions code/datums/paygrades/factions/other/cmb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
paygrade = PAY_SHORT_CMBBT
name = "CMB Breaching Technician"

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

/datum/paygrade/cmb/icc
paygrade = PAY_SHORT_ICCA
name = "Interstellar Commerce Commission Agent"
Expand Down
16 changes: 15 additions & 1 deletion code/datums/skills/cmb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,20 @@ COLONIAL MARSHALS
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 @@ -61,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
4 changes: 4 additions & 0 deletions code/game/jobs/job/special/cmb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@
/datum/job/special/cmb/engi
title = JOB_CMB_ENG

// CMB SWAT Specialist
/datum/job/special/cmb/spec
title = JOB_CMB_SWAT

// CMB Investigative Synthetic
/datum/job/special/cmb/synthetic
title = JOB_CMB_SYN
Expand Down
4 changes: 4 additions & 0 deletions code/game/objects/items/storage/belt.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1178,6 +1178,10 @@
new /obj/item/ammo_magazine/pistol/m1911(src)
new /obj/item/ammo_magazine/pistol/m1911(src)

/obj/item/storage/belt/gun/m4a3/m1911/socom/black
icon_state = "s_m4a3_holster"
has_gamemode_skin = FALSE

/obj/item/storage/belt/gun/m4a3/heavy/fill_preset_inventory()
handle_item_insertion(new /obj/item/weapon/gun/pistol/heavy())
new /obj/item/ammo_magazine/pistol/heavy(src)
Expand Down
61 changes: 54 additions & 7 deletions code/modules/gear_presets/cmb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@
new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/stack/medical/advanced/bruise_pack, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/radio, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_BACK)


/datum/equipment_preset/cmb/riot
Expand Down Expand Up @@ -277,18 +277,16 @@
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/radio, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/box/flashbangs, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_BACK)

switch(choice)
if(1 to 4)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/cmb, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, WEAR_J_STORE)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb/swat, WEAR_J_STORE)
new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/attachable/gyro, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/attachable/magnetic_harness, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/box/packet/smoke, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/shotgun/black, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/weapon/shield/riot/metal, WEAR_R_HAND)
Expand Down Expand Up @@ -403,7 +401,7 @@
new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_BACK)

/datum/equipment_preset/cmb/eng
name = "CMB - Breaching Technician"
Expand Down Expand Up @@ -451,11 +449,60 @@
new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/m15/rubber, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/radio, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/weapon/baton, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/plasteel/large_stack, WEAR_IN_BACK)
//*****************************************************************************************************/

/datum/equipment_preset/cmb/spec
name = "CMB - SWAT Specialist"
paygrade = PAY_SHORT_CMBSWS
idtype = /obj/item/card/id/deputy/riot
role_comm_title = "CMB Spec"
flags = EQUIPMENT_PRESET_EXTRA

assignment = "CMB SWAT Specialist"
rank = JOB_CMB_SWAT
skills = /datum/skills/cmb/spec

/datum/equipment_preset/cmb/spec/load_gear(mob/living/carbon/human/new_human)
//clothes
new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/cmb, WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/webbing, WEAR_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m16, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m16, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m16, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/holobadge/cord, WEAR_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/cmb/light, WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE, WEAR_IN_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m16, WEAR_IN_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m16, WEAR_IN_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/swat, WEAR_FACE)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/xm177/tactical, WEAR_J_STORE)
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/cmb/engi, WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/helmet_nvg, WEAR_IN_HELMET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/tactical, WEAR_EYES)
//belt
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/m1911/socom/black, WEAR_WAIST)
//pouches
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert, WEAR_L_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical/sec/full, WEAR_R_STORE)
//backpack
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/m15/rubber, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/radio, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/binoculars, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/m717, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge/rubber, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m16, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m16, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m16, WEAR_IN_BACK)


//*****************************************************************************************************/
/datum/equipment_preset/cmb/synth
Expand Down
4 changes: 3 additions & 1 deletion code/modules/gear_presets/corpses.dm
Original file line number Diff line number Diff line change
Expand Up @@ -253,11 +253,13 @@
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/cmb(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/swat, WEAR_FACE)
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/swat(new_human), WEAR_FACE)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/CMB/full(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/cmb(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/mgoggles/cmb_riot_shield, WEAR_IN_HELMET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/tactical(new_human), WEAR_EYES)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/cmb(new_human), WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb(new_human), WEAR_J_STORE)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
. = ..()

Expand Down
10 changes: 10 additions & 0 deletions code/modules/projectiles/guns/rifles.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1087,6 +1087,16 @@
damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_6
recoil_unwielded = RECOIL_AMOUNT_TIER_2

/obj/item/weapon/gun/rifle/xm177/tactical
random_spawn_chance = 100
random_spawn_rail = list(
/obj/item/attachable/reflex,
)
random_spawn_under = list(
/obj/item/attachable/lasersight,
)


//-------------------------------------------------------
//AR10 rifle
//basically an early M16
Expand Down
3 changes: 3 additions & 0 deletions code/modules/projectiles/guns/shotguns.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1276,6 +1276,9 @@ can cause issues with ammo types getting mixed up during the burst.
recoil = RECOIL_AMOUNT_TIER_4
recoil_unwielded = RECOIL_AMOUNT_TIER_2

/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb/swat
starting_attachment_types = list(/obj/item/attachable/stock/hg3712, /obj/item/attachable/magnetic_harness, /obj/item/attachable/gyro)

/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb/m3717
name = "\improper M37-17 pump shotgun"
desc = "A military version of the iconic HG 37-12, this design can fit one extra shell in each of its dual-tube internal magazines, and fires shells with increased velocity, resulting in more damage. Issued to select USCM vessels and stations in the outer veil. A button on the side toggles the internal tubes."
Expand Down
Binary file modified icons/mob/hud/marine_hud.dmi
Binary file not shown.
Binary file modified icons/mob/hud/sec_hud.dmi
Binary file not shown.
Binary file modified icons/mob/humans/onmob/suit_slot.dmi
Binary file not shown.

0 comments on commit bdffe58

Please sign in to comment.