Skip to content

Commit

Permalink
checked
Browse files Browse the repository at this point in the history
  • Loading branch information
spartanbobby committed Aug 3, 2023
1 parent 2032dab commit cac5c32
Show file tree
Hide file tree
Showing 43 changed files with 2,520 additions and 1,820 deletions.
1 change: 1 addition & 0 deletions code/__DEFINES/shuttles.dm
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@
#define MOBILE_SHUTTLE_ID_ERT1 "ert_response_shuttle"
#define MOBILE_SHUTTLE_ID_ERT2 "ert_pmc_shuttle"
#define MOBILE_SHUTTLE_ID_ERT3 "ert_upp_shuttle"
#define MOBILE_SHUTTLE_ID_ERT4 "ert_twe_shuttle"
#define MOBILE_SHUTTLE_ID_ERT_SMALL "ert_rescue_shuttle"
#define MOBILE_SHUTTLE_ID_ERT_BIG "ert_boarding_shuttle"

Expand Down
75 changes: 39 additions & 36 deletions code/datums/emergency_calls/royal_marines.dm
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
/datum/emergency_call/royal_marines
name = "Military Contractors (Squad) (Friendly)"
name = "Royal Marines Commando (Squad) (Friendly)"
mob_max = 7
probability = 20

max_engineers = 1
max_medics = 1
max_heavies = 1
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_twe
item_spawn = /obj/effect/landmark/ert_spawns/distress_twe/item
max_engineers = 0
max_medics = 0
max_heavies = 3
var/max_synths = 1
var/synths = 1


/datum/emergency_call/royal_marines/New()
..()
arrival_message = "[MAIN_SHIP_NAME], this is USCSS Inheritor with Vanguard's Arrow Incorporated, Primary Operations; we are responding to your distress call and boarding in accordance with the Military Aid Act of 2177, authenticication code Lima-18153. "
arrival_message = "[MAIN_SHIP_NAME], this is [pick(50;"HMS Patna", 50;"HMS Thunderchild",)]; we are responding to your distress call and boarding in accordance with the Military Aid Act of 2177, authenticication code Lima-18153. "
objectives = "Ensure the survival of the [MAIN_SHIP_NAME], eliminate any hostiles, and assist the crew in any way possible."


Expand All @@ -27,55 +28,57 @@

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 a Contractor Team Leader of Vanguard's Arrow Incorporated!"))
arm_equipment(mob, /datum/equipment_preset/contractor/duty/leader, 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 Contractor Medical Specialist of Vanguard's Arrow Incorporated!"))
arm_equipment(mob, /datum/equipment_preset/contractor/duty/medic, TRUE, TRUE)
to_chat(mob, SPAN_ROLE_HEADER("You are an Officer in the Royal Marines Commando. Born in the three world empire."))
arm_equipment(mob, /datum/equipment_preset/royal_marine/lieuteant, TRUE, TRUE)
else if(heavies < max_heavies && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_HEAVY) && check_timelock(mob.client, JOB_SQUAD_SPECIALIST))
heavies++
to_chat(mob, SPAN_ROLE_HEADER("You are a Contractor Machinegunner of Vanguard's Arrow Incorporated!"))
arm_equipment(mob, /datum/equipment_preset/contractor/duty/heavy, TRUE, TRUE)
else if(engineers < max_engineers && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_ENGINEER) && check_timelock(mob.client, JOB_SQUAD_ENGI))
engineers++
to_chat(mob, SPAN_ROLE_HEADER("You are a Contractor Engineering Specialist of Vanguard's Arrow Incorporated!"))
arm_equipment(mob, /datum/equipment_preset/contractor/duty/engi, TRUE, TRUE)
to_chat(mob, SPAN_ROLE_HEADER("You are a skilled marksman in the Royal Marines Commando. Born in the three world empire."))
arm_equipment(mob, /datum/equipment_preset/royal_marine/spec, TRUE, TRUE)
else if(heavies < max_heavies && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_HEAVY) && check_timelock(mob.client, JOB_SQUAD_SPECIALIST))
heavies++
to_chat(mob, SPAN_ROLE_HEADER("You are a Smartgunner in the Royal Marines Commando. Born in the three world empire."))
arm_equipment(mob, /datum/equipment_preset/royal_marine/spec/machinegun, TRUE, TRUE)
else if(heavies < max_heavies && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_HEAVY) && check_timelock(mob.client, JOB_SQUAD_SPECIALIST))
heavies++
to_chat(mob, SPAN_ROLE_HEADER("You are a CQB Specialist in the Royal Marines Commando. Born in the three world empire."))
arm_equipment(mob, /datum/equipment_preset/royal_marine/spec/breacher, TRUE, TRUE)
else
to_chat(mob, SPAN_ROLE_HEADER("You are a Contractor of Vanguard's Arrow Incorporated!"))
arm_equipment(mob, /datum/equipment_preset/contractor/duty/standard, TRUE, TRUE)
arm_equipment(mob, /datum/equipment_preset/royal_marine/standard, 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/contractors/print_backstory(mob/living/carbon/human/M)
/datum/emergency_call/royal_marines/print_backstory(mob/living/carbon/human/M)
if(ishuman_strict(M))
to_chat(M, SPAN_BOLD("You were born [pick(60;"in the Three World Empire", 20;"on Earth", 20;"on a colony")] to a [pick(75;"average", 15;"poor", 10;"well-established")] family."))
to_chat(M, SPAN_BOLD("Joining the USCM gave you a lot of combat experience and useful skills but changed you."))
to_chat(M, SPAN_BOLD("After getting out, you couldn't hold a job with the things you saw and did, deciding to put your skills to use you joined a Military Contractor firm."))
to_chat(M, SPAN_BOLD("You are a skilled mercenary, making better pay than in the Corps."))
to_chat(M, SPAN_BOLD("You were born in the Three World Empire to a [pick(75;"average", 15;"poor", 10;"well-established")] family."))
to_chat(M, SPAN_BOLD("Joining the Royal Marines gave you a lot of combat experience and useful skills."))
else
to_chat(M, SPAN_BOLD("You were brought online in a civilian factory."))
to_chat(M, SPAN_BOLD("You were brought online in a Tokyo lab."))
to_chat(M, SPAN_BOLD("You were programmed with all of the medical and engineering knowledge a military fighting force support asset required."))
to_chat(M, SPAN_BOLD("You were soon after bought by Vanguard's Arrow Incorporated(VAI) to act as support personnel."))
to_chat(M, SPAN_BOLD("Some months after your purchase, you were assigned to the USCSS Inheritor, a VAI transport vessel."))
to_chat(M, SPAN_BOLD("You were soon after assigned to a royal marine base on mars to act as support personnel."))
to_chat(M, SPAN_BOLD("Some months after your assignment, you were reassigned to the USCSS Inheritor, a VAI transport vessel."))
to_chat(M, SPAN_BOLD("You are [pick(80;"unaware", 15;"faintly aware", 5;"knowledgeable")] of the xenomorph threat."))
to_chat(M, SPAN_BOLD("You are employed by Vanguard's Arrow Incorporated(VAI), as a member of VAI Primary Operations(VAIPO)"))
to_chat(M, SPAN_BOLD("You are stationed on-board the USCSS Inheritor, a part of VAIPO Task-Force Charlie."))
to_chat(M, SPAN_BOLD("Under the directive of the VAI executive board, you have been assist in riot control, military aid, and to assist USCMC forces wherever possible."))
to_chat(M, SPAN_BOLD("The USCSS Inheritor is staffed with crew of roughly three hundred military contractors, and fifty support personnel."))
to_chat(M, SPAN_BOLD("You are a citizen of the three world empire and joined the Royal Marines Commando"))
to_chat(M, SPAN_BOLD("You are apart of a jointed UA/TWE taskforce onboard the HMS Patna and Thunderchild."))
to_chat(M, SPAN_BOLD("Under the directive of the RMC high command, you have been assisting USCM forces with maintaining peace in the area."))
to_chat(M, SPAN_BOLD("Assist the USCMC Force of the [MAIN_SHIP_NAME] however you can."))
to_chat(M, SPAN_BOLD("As a side-objective, VAI has been hired by an unknown benefactor to engage in corporate espionage and sabotage against Weyland-Yutani, avoid direct conflict; you aren't VAISO; but attempt to recover Wey-Yu secrets and plans if possible."))


/datum/emergency_call/contractors/platoon
name = "Military Contractors (Platoon) (Friendly)"
name = "Royal Marines Commando (Platoon) (Friendly)"
mob_min = 7
mob_max = 28
probability = 0
max_medics = 3
max_heavies = 3
max_engineers = 2
max_medics = 0
max_heavies = 6
max_engineers = 0
max_synths = 2

/obj/effect/landmark/ert_spawns/distress_twe
name = "Distress_TWE"

/obj/effect/landmark/ert_spawns/distress_twe/item
name = "Distress_TWEItem"
20 changes: 10 additions & 10 deletions code/datums/paygrades/factions/twe/twe.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,33 +5,33 @@
//TWE RMC
/datum/paygrade/twe/rc1
paygrade = "TC1"
name = "Yonto"
prefix = "Yt."
name = "Marine"
prefix = "Mne"

/datum/paygrade/twe/rc2
paygrade = "TC2"
name = "Santo"
prefix = "St."
name = "Lance Corporal"
prefix = "LCpl"
pay_multiplier = 2.1

/datum/paygrade/twe/rc3
paygrade = "TC3"
name = "Nito"
prefix = "Nt."
name = "Corporal"
prefix = "Cpl"
pay_multiplier = 2.2

/datum/paygrade/twe/rc4
paygrade = "TC4"
name = "Itto"
prefix = "It."
name = "Sergeant"
prefix = "Sgt"
pay_multiplier = 2.3


//TWE Naval Officers
/datum/paygrade/twe/o1
paygrade = "TO1"
name = "Seaman"
prefix = "SN."
name = "Second Lieutenant"
prefix = "OF1"
pay_multiplier = 3

/datum/paygrade/twe/o2
Expand Down
57 changes: 57 additions & 0 deletions code/datums/skills.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1957,3 +1957,60 @@ MISCELLANEOUS
SKILL_EXECUTION = SKILL_EXECUTION_MAX,
SKILL_INTEL = SKILL_INTEL_MAX,
)

/*
----------------------------
Royal Marines Commando
----------------------------
*/

//NOTE: Skills take heavy from PMCs

/datum/skills/rmc/rifleman
name = "Royal Marines Commando Rifleman"
skills = list(
SKILL_CQC = SKILL_CQC_TRAINED,
SKILL_FIREARMS = SKILL_FIREARMS_EXPERT,
SKILL_POLICE = SKILL_POLICE_SKILLED,
SKILL_FIREMAN = SKILL_FIREMAN_SKILLED,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_ENGINEER = SKILL_ENGINEER_ENGI,
SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER,
SKILL_MEDICAL = SKILL_MEDICAL_MEDIC,
SKILL_SURGERY = SKILL_SURGERY_NOVICE,
)

/datum/skills/rmc/specialist
name = "Royal Marines Commando Specialist"
skills = list(
SKILL_CQC = SKILL_CQC_TRAINED,
SKILL_FIREARMS = SKILL_FIREARMS_EXPERT,
SKILL_POLICE = SKILL_POLICE_SKILLED,
SKILL_FIREMAN = SKILL_FIREMAN_SKILLED,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_ENGINEER = SKILL_ENGINEER_ENGI,
SKILL_CQC = SKILL_CQC_TRAINED,
SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN,
SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED,
SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER,
SKILL_JTAC = SKILL_JTAC_BEGINNER,
SKILL_MEDICAL = SKILL_MEDICAL_MEDIC,
SKILL_SURGERY = SKILL_SURGERY_NOVICE,
)

/datum/skills/rmc/leader
name = "Royal Marines Commando Leader"
skills = list(
SKILL_FIREARMS = SKILL_FIREARMS_EXPERT,
SKILL_POLICE = SKILL_POLICE_SKILLED,
SKILL_FIREMAN = SKILL_FIREMAN_SKILLED,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_ENGINEER = SKILL_ENGINEER_ENGI,
SKILL_CQC = SKILL_CQC_SKILLED,
SKILL_LEADERSHIP = SKILL_LEAD_TRAINED,
SKILL_MEDICAL = SKILL_MEDICAL_TRAINED,
SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER,
SKILL_JTAC = SKILL_JTAC_TRAINED,
SKILL_MEDICAL = SKILL_MEDICAL_MEDIC,
SKILL_SURGERY = SKILL_SURGERY_NOVICE,
)
2 changes: 1 addition & 1 deletion code/game/objects/items/devices/radio/encryptionkey.dm
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@
/obj/item/device/encryptionkey/royal_marine
name = "\improper Royal Marine Radio Encryption Key"
icon_state = "sl_key"
channels = list("Command" = TRUE, "Almayer" = TRUE, "Royal Marine" = TRUE)
channels = list("Command" = TRUE, "Almayer" = TRUE,)
/obj/item/device/encryptionkey/cmb
name = "\improper Colonial Marshal Bureau Radio Encryption Key"
icon_state = "cmb_key"
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/devices/radio/headset.dm
Original file line number Diff line number Diff line change
Expand Up @@ -966,10 +966,10 @@

/obj/item/device/radio/headset/distress/royal_marine
name = "Royal Marine Headset"
desc = "..."
desc = "A sleek headset used by the Royal Marines Commando. Low profile enough to fit under their unique helmets."
frequency = RMC_FREQ
icon_state = "vai_headset"
initial_keys = list(/obj/item/device/encryptionkey/royal_marine, /obj/item/device/encryptionkey/public,)
initial_keys = list(/obj/item/device/encryptionkey/public, /obj/item/device/encryptionkey/royal_marine)
has_hud = TRUE

//CMB Headsets
Expand Down
56 changes: 56 additions & 0 deletions code/game/objects/items/storage/backpack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1089,3 +1089,59 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r

max_storage_space = 21
camo_alpha = 10

//----------TWE SECTION----------
/obj/item/storage/backpack/rmc
has_gamemode_skin = FALSE

/obj/item/storage/backpack/rmc/heavy
name = "\improper heavyweight RMC backpack"
desc = "The heavy-carry pack of the RMC forces. Designed to lug the most amount of gear into the battlefield."
icon_state = "backpack_large"
item_state = "backpack_large"
max_storage_space = 26

/obj/item/storage/backpack/rmc/heavy/black
icon_state = "black_backpack_large"
item_state = "black_backpack_large"

/obj/item/storage/backpack/rmc/medium
name = "\improper standard RMC backpack"
desc = "A TWE military standard-carry RMC combat pack MK3."
icon_state = "backpack_medium"
item_state = "backpack_medium"
worn_accessible = TRUE
max_storage_space = 20

/obj/item/storage/backpack/rmc/medium/black
icon_state = "black_backpack_medium"
item_state = "black_backpack_medium"

/obj/item/storage/backpack/rmc/light
name = "\improper lightweight RMC backpack"
desc = "A TWE military light-carry RMC combat pack MK3."
icon_state = "backpack_small"
item_state = "backpack_small"
worn_accessible = TRUE
max_storage_space = 15

/obj/item/storage/backpack/rmc/light/black
icon_state = "black_backpack_small"
item_state = "black_backpack_small"

/obj/item/storage/backpack/rmc/frame
name = "\improper RMC carry-frame"
desc = "A backpack specifically designed to hold RMC weapons and shields."
icon_state = "backpack_frame"
item_state = "backpack_frame"
max_w_class = SIZE_HUGE
storage_slots = 1
can_hold = list(/obj/item/mortar_shell) // PLACEHOLDER PLEASE REPLACE

/obj/item/storage/backpack/general_belt/rmc
name = "\improper RMC general utility belt"
desc = "A small, lightweight pouch that can be clipped onto armor to provide additional storage. This new RMC model, while uncomfortable, can also be clipped around the waist."
icon_state = "rmc_general"
item_state = "rmc_general"
has_gamemode_skin = FALSE
max_storage_space = 12
71 changes: 58 additions & 13 deletions code/game/objects/items/storage/belt.dm
Original file line number Diff line number Diff line change
Expand Up @@ -496,19 +496,6 @@
for(var/i = 1 to storage_slots)
new /obj/item/ammo_magazine/handful/shotgun/buckshot(src)


/obj/item/storage/belt/marine/royal_marine/
name = "ammo load rig"
desc = "Good for carrying around extra ammo in the heat of the jungle. Made of special rot-resistant fabric."

/obj/item/storage/belt/marine/royal_marine/rmc_f90_ammo/fill_preset_inventory()
for(var/i = 1 to storage_slots)
new /obj/item/ammo_magazine/rifle/rmc_f90(src)

/obj/item/storage/belt/marine/royal_marine/rmc_f90_ammo/marksman/fill_preset_inventory()
for(var/i = 1 to storage_slots)
new /obj/item/ammo_magazine/rifle/rmc_f90/marksman(src)

/obj/item/storage/belt/marine/smartgunner
name = "\improper M280 pattern smartgunner drum belt"
desc = "Despite the fact that 1. drum magazines are incredibly non-ergonomical, and 2. require incredibly precise machining in order to fit universally (spoiler, they don't, adding further to the myth of 'Smartgun Personalities'), the USCM decided to issue a modified marine belt (more formally known by the designation M280) with hooks and dust covers (overly complex for the average jarhead) for the M56B system's drum munitions. When the carry catch on the drum isn't getting stuck in the oiled up velcro, the rig actually does do a decent job at holding a plentiful amount of drums. But at the end of the day, compared to standard rigs... it sucks, but isn't that what being a Marine is all about?"
Expand Down Expand Up @@ -1145,6 +1132,15 @@
for(var/i = 1 to storage_slots - 1)
new /obj/item/ammo_magazine/pistol/highpower/black(src)

/obj/item/storage/belt/gun/m4a3/vp78/fill_preset_inventory()
handle_item_insertion(new /obj/item/weapon/gun/pistol/vp78())
new /obj/item/ammo_magazine/pistol/vp78(src)
new /obj/item/ammo_magazine/pistol/vp78(src)
new /obj/item/ammo_magazine/pistol/vp78(src)
new /obj/item/ammo_magazine/pistol/vp78(src)
new /obj/item/ammo_magazine/pistol/vp78(src)
new /obj/item/ammo_magazine/pistol/vp78(src)

/obj/item/storage/belt/gun/m44
name = "\improper M276 pattern M44 holster rig"
desc = "The M276 is the standard load-bearing equipment of the USCM. It consists of a modular belt with various clips. This version is for the M44 magnum revolver, along with six small pouches for speedloaders. It smells faintly of hay."
Expand Down Expand Up @@ -1714,3 +1710,52 @@
item_state = "souto_man[length(contents)]"
if(istype(user))
user.update_inv_belt() //Makes sure the onmob updates.



//ROYAL MARINES COMMNADO

/obj/item/storage/belt/marine/rmc
name = "\improper L70 pattern ammo load rig"
desc = "Good for carrying around extra ammo in the heat of the jungle. Made of special rot-resistant fabric."
icon_state = "rmc_ammo"
item_state = "rmc_ammo"
flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE
has_gamemode_skin = FALSE

/obj/item/storage/belt/marine/rmc/rmc_f90_ammo/fill_preset_inventory()
for(var/i = 1 to storage_slots)
new /obj/item/ammo_magazine/rifle/rmc_f90(src)

/obj/item/storage/belt/marine/rmc/rmc_f90_ammo/marksman/fill_preset_inventory()
for(var/i = 1 to storage_slots)
new /obj/item/ammo_magazine/rifle/rmc_f90/marksman(src)

/obj/item/storage/belt/medical/rmc
name = "\improper L75 pattern medical storage rig"
desc = "The L75 is the standard load-bearing equipment of the RMC. It consists of a modular belt with various clips. This version is designed to transport medical supplies and pistol ammunition. \nRight click its sprite and click \"toggle belt mode\" to take pills out of bottles by simply clicking them."
icon_state = "rmc_medical"
item_state = "rmc_medical"
flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE

/obj/item/storage/belt/gun/l905
name = "\improper L905 gunbelt"
desc = "Finely-tooled leather, a L905, and six magazines. More than enough for the standard RMC commando."
icon_state = "rmc_pistol"
item_state = "rmc_pistol"
flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE
storage_slots = 7
can_hold = list(
/obj/item/weapon/gun/pistol/vp78,
/obj/item/ammo_magazine/pistol/vp78,
)
has_gamemode_skin = FALSE
holster_slots = list( // PLACEHOLDER PLEASE REPLACE
"1" = list(
"icon_x" = -1,
"icon_y" = -3))

/obj/item/storage/belt/gun/l905/full/fill_preset_inventory()
handle_item_insertion(new /obj/item/weapon/gun/pistol/vp78())
for(var/i in 1 to storage_slots - 1)
new /obj/item/ammo_magazine/pistol/vp78(src)
Loading

0 comments on commit cac5c32

Please sign in to comment.