Skip to content

Commit

Permalink
FirstCommit
Browse files Browse the repository at this point in the history
  • Loading branch information
Steelpoint committed Jun 2, 2024
1 parent a521b0f commit 7cbfcd3
Show file tree
Hide file tree
Showing 11 changed files with 363 additions and 1 deletion.
1 change: 1 addition & 0 deletions code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#define SQUAD_MARINE_INTEL "Intel"
#define SQUAD_SOF "SOF"
#define SQUAD_CBRN "CBRN"
#define SQUAD_FORECON "FORECON"

// Job name defines
#define JOB_SQUAD_MARINE "Rifleman"
Expand Down
3 changes: 3 additions & 0 deletions code/controllers/subsystem/communications.dm
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ Radiochat range: 1441 to 1489 (most devices refuse to be tune to other frequency
#define SOF_FREQ 1472
#define PVST_FREQ 1473
#define CBRN_FREQ 1474
#define FORECON_FREQ 1475

//Ship department channels
#define SENTRY_FREQ 1480
Expand Down Expand Up @@ -171,6 +172,7 @@ GLOBAL_LIST_INIT(radiochannels, list(
SQUAD_MARINE_CRYO = CRYO_FREQ,
SQUAD_SOF = SOF_FREQ,
SQUAD_CBRN = CBRN_FREQ,
SQUAD_FORECON = FORECON_FREQ,

RADIO_CHANNEL_ALAMO = DS1_FREQ,
RADIO_CHANNEL_NORMANDY = DS2_FREQ,
Expand Down Expand Up @@ -278,6 +280,7 @@ SUBSYSTEM_DEF(radio)
"[ECHO_FREQ]" = "echoradio",
"[CRYO_FREQ]" = "cryoradio",
"[CBRN_FREQ]" = "hcradio",
"[FORECON_FREQ]" = "hcradio",
"[SOF_FREQ]" = "hcradio",
"[HC_FREQ]" = "hcradio",
"[PVST_FREQ]" = "pvstradio",
Expand Down
60 changes: 60 additions & 0 deletions code/datums/emergency_calls/forecon.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/datum/emergency_call/forecon
name = "FORECON (Squad)"
arrival_message = "A Force Reconnaissance squad has been dispatched to your ship. Stand by."
objectives = "Handle whatever threat is present. Further orders may be provided."
home_base = /datum/lazy_template/ert/weyland_station
probability = 0
mob_max = 6

max_heavies = 1
max_medics = 1
max_smartgunners = 1

/datum/emergency_call/forecon/create_member(datum/mind/new_mind, 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)
new_mind.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
arm_equipment(mob, /datum/equipment_preset/uscm/forecon/squad_leader, TRUE, TRUE)
to_chat(mob, SPAN_ROLE_HEADER("You are the FORECON Squad Leader!"))

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++
arm_equipment(mob, /datum/equipment_preset/uscm/forecon/tech, TRUE, TRUE)
to_chat(mob, SPAN_ROLE_HEADER("You are the FORECON Support Technician!"))

else if(smartgunners < max_smartgunners && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SMARTGUNNER) && check_timelock(mob.client, JOB_SQUAD_SMARTGUN))
smartgunners++
to_chat(mob, SPAN_ROLE_HEADER("You are a FORECON Smartgunner!"))
arm_equipment(mob, /datum/equipment_preset/uscm/forecon/smartgunner, 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 FORECON Designated Marskman!"))
arm_equipment(mob, /datum/equipment_preset/uscm/forecon/marksman, TRUE, TRUE)

else
arm_equipment(mob, /datum/equipment_preset/uscm/forecon/standard, TRUE, TRUE)
to_chat(mob, SPAN_ROLE_HEADER("You are a FORECON Rifleman!"))

to_chat(mob, SPAN_ROLE_BODY("You are a member of the USCM's Force Reconnisance. FORECON is a force that specializes in special operations behind enemy lines, or conducting reconnisance in situations regular Marines are not expected to handle."))
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives:</b> [objectives]")), 1 SECONDS)

/datum/emergency_call/forecon/platoon
name = "FORECON (Platoon)"
mob_max = 30
probability = 0
max_medics = 6
max_heavies = 1
max_smartgunners = 2

/datum/emergency_call/forecon/platoon/New()
..()
arrival_message = "A Force Reconnaissance squad has been dispatched to your ship. Stand by."
objectives = "Handle whatever threat is present. Further orders may be provided."
12 changes: 12 additions & 0 deletions code/game/jobs/job/marine/squads.dm
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,18 @@
roundstart = FALSE
locked = TRUE

/datum/squad/marine/forecon
name = SQUAD_FORECON
equipment_color = "#32CD32"
chat_color = "#32CD32"
radio_freq = FORECON_FREQ
minimap_color = "#32CD32"

active = FALSE
roundstart = FALSE
locked = TRUE


//############################### UPP Squads
/datum/squad/upp
name = "Root"
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/telecomms/presets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,7 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers)
id = "CentComm Receiver"
network = "tcommsat"
autolinkers = list("receiverCent")
freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ)
freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ, FORECON_FREQ)

//Buses

Expand Down
8 changes: 8 additions & 0 deletions code/game/objects/items/devices/radio/headset.dm
Original file line number Diff line number Diff line change
Expand Up @@ -876,6 +876,14 @@
ignore_z = TRUE
has_hud = TRUE

/obj/item/device/radio/headset/distress/forecon
name = "\improper Force Recon headset"
desc = "A headset given to FORECON marines. Channels are as follows: :g - public, :v - marine command, :a - alpha squad, :b - bravo squad, :c - charlie squad, :d - delta squad, :n - engineering, :m - medbay, :u - requisitions, :j - JTAC, :t - intel"
frequency = FORECON_FREQ
initial_keys = list(/obj/item/device/encryptionkey/public, /obj/item/device/encryptionkey/mcom)
ignore_z = TRUE
has_hud = TRUE

/obj/item/device/radio/headset/distress/pmc/hvh
desc = "A special headset used by corporate personnel. Channels are as follows: :o - colony."
initial_keys = list(/obj/item/device/encryptionkey/colony, /obj/item/device/encryptionkey/WY)
Expand Down
13 changes: 13 additions & 0 deletions code/modules/clothing/suits/marine_armor/_marine_armor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -521,6 +521,19 @@
icon_state = "c_VL_syn_camo"
flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE

/obj/item/clothing/suit/storage/marine/light/recon
name = "M3-R pattern light armor"
desc = "Special issue light armor for forward econnaissance Marines. Offers similar protection as M3 armor but none of the slowdown."
armor_melee = CLOTHING_ARMOR_MEDIUM
armor_bullet = CLOTHING_ARMOR_MEDIUM
armor_laser = CLOTHING_ARMOR_MEDIUMLOW
armor_energy = CLOTHING_ARMOR_NONE
armor_bomb = CLOTHING_ARMOR_MEDIUMLOW
armor_bio = CLOTHING_ARMOR_MEDIUM
armor_rad = CLOTHING_ARMOR_MEDIUMLOW
armor_internaldamage = CLOTHING_ARMOR_MEDIUM
movement_compensation = SLOWDOWN_ARMOR_LIGHT

// M3-EOD pattern heavy armor
/obj/item/clothing/suit/storage/marine/heavy
name = "\improper M3-EOD pattern heavy armor"
Expand Down
Loading

0 comments on commit 7cbfcd3

Please sign in to comment.