Skip to content

Commit

Permalink
InitalCommit
Browse files Browse the repository at this point in the history
  • Loading branch information
Steelpoint committed Jul 28, 2024
1 parent 524aa92 commit 9f7fe07
Show file tree
Hide file tree
Showing 12 changed files with 540 additions and 0 deletions.
3 changes: 3 additions & 0 deletions code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#define SQUAD_SOF "SOF"
#define SQUAD_CBRN "CBRN"
#define SQUAD_FORECON "FORECON"
#define SQUAD_SOLAR "Solar Devils"

// Job name defines
#define JOB_SQUAD_MARINE "Rifleman"
Expand Down Expand Up @@ -124,6 +125,8 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST)
#define JOB_GENERAL "USCM General"
#define JOB_ACMC "Assistant Commandant of the Marine Corps"
#define JOB_CMC "Commandant of the Marine Corps"
#define JOB_PLT_MED "Platoon Corpsman"
#define JOB_PLT_SL "Platoon Squad Leader"

// Used to add a timelock to a job. Will be passed onto derivatives
#define AddTimelock(Path, timelockList) \
Expand Down
1 change: 1 addition & 0 deletions code/controllers/subsystem/communications.dm
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ GLOBAL_LIST_INIT(radiochannels, list(
SQUAD_SOF = SOF_FREQ,
SQUAD_CBRN = CBRN_FREQ,
SQUAD_FORECON = FORECON_FREQ,
SQUAD_SOLAR = SOF_FREQ,

RADIO_CHANNEL_ALAMO = DS1_FREQ,
RADIO_CHANNEL_NORMANDY = DS2_FREQ,
Expand Down
91 changes: 91 additions & 0 deletions code/datums/emergency_calls/solar_devils.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
/datum/emergency_call/solar_devils
name = "USCM Solar Devils (Half Squad)"
arrival_message = "This is the USCM 2nd Division, 3rd Battalion, Solar Devils, responding to your distress beacon. Don't worry, the grown ups are here to clean up your mess."
objectives = "Assist local Marine forces in dealing with whatever issue they can't handle. Further orders may be forthcoming."
home_base = /datum/lazy_template/ert/uscm_station
probability = 0
mob_min = 3
mob_max = 5

max_medics = 1
max_smartgunners = 1

/datum/emergency_call/solar_devils/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/tl_pve, TRUE, TRUE)
to_chat(mob, SPAN_ROLE_HEADER("You are the Solar Devils Team 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/medic_pve, TRUE, TRUE)
to_chat(mob, SPAN_ROLE_HEADER("You are the Solar Devils Platoon Corpsman!"))

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 the Solar Devils Smartgunner!"))
arm_equipment(mob, /datum/equipment_preset/uscm/sg_pve, TRUE, TRUE)

else
arm_equipment(mob, /datum/equipment_preset/uscm/rifleman_pve, TRUE, TRUE)
to_chat(mob, SPAN_ROLE_HEADER("You are a Solar Devils Rifleman!"))

to_chat(mob, SPAN_ROLE_BODY("You are a member of the Solar Devils, part of the 2nd Div, 3rd Batt. Unlike the Marines of the USS Almayer, you are through and through professionals. Well trained and well equipped. Semper Fidelis Marine."))
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives:</b> [objectives]")), 1 SECONDS)

/datum/emergency_call/solar_devils_full
name = "USCM Solar Devils (Full Squad)"
arrival_message = "This is the USCM 2nd Division, 3rd Battalion, Solar Devils, responding to your distress beacon. Don't worry, the grown ups are here to clean up your mess."
objectives = "Assist local Marine forces in dealing with whatever issue they can't handle. Further orders may be forthcoming."
home_base = /datum/lazy_template/ert/uscm_station
probability = 0
mob_min = 3
mob_max = 10

max_engineers = 2
max_medics = 1
max_smartgunners = 2

/datum/emergency_call/solar_devils_full/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/sl_pve, TRUE, TRUE)
to_chat(mob, SPAN_ROLE_HEADER("You are the Solar Devils Platoon Leader!"))

else if(engineers < max_engineers && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_ENGINEER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job))
engineers++
arm_equipment(mob, /datum/equipment_preset/uscm/tl_pve, TRUE, TRUE)
to_chat(mob, SPAN_ROLE_HEADER("You are a Solar Devils Team 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/medic_pve, TRUE, TRUE)
to_chat(mob, SPAN_ROLE_HEADER("You are the Solar Devils Platoon Corpsman!"))

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 the Solar Devils Smartgunner!"))
arm_equipment(mob, /datum/equipment_preset/uscm/sg_pve, TRUE, TRUE)

else
arm_equipment(mob, /datum/equipment_preset/uscm/rifleman_pve, TRUE, TRUE)
to_chat(mob, SPAN_ROLE_HEADER("You are a Solar Devils Rifleman!"))

to_chat(mob, SPAN_ROLE_BODY("You are a member of the Solar Devils, part of the 2nd Div, 3rd Batt. Unlike the Marines of the USS Almayer, you are through and through professionals. Well trained and well equipped. Semper Fidelis Marine."))
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives:</b> [objectives]")), 1 SECONDS)
4 changes: 4 additions & 0 deletions code/datums/factions/uscm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@
if(JOB_GENERAL, JOB_COLONEL, JOB_ACMC, JOB_CMC)
marine_rk = "general"
border_rk = "command"
if(JOB_PLT_MED)
marine_rk = "med"
if(JOB_PLT_SL)
marine_rk = "leader"
if(JOB_INTEL)
marine_rk = "io"
if(JOB_CAS_PILOT)
Expand Down
80 changes: 80 additions & 0 deletions code/datums/skills/uscm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -426,3 +426,83 @@ COMMAND STAFF
SKILL_JTAC = SKILL_JTAC_EXPERT,
SKILL_INTEL = SKILL_INTEL_TRAINED,
)

/*
---------------------
SOLAR DEVILS (PvE Marines)
---------------------
*/

/datum/skills/rifleman_PvE
name = "Private"
skills = list(
SKILL_ENGINEER = SKILL_ENGINEER_ENGI,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_FIREMAN = SKILL_FIREMAN_EXPERT,
SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED,
SKILL_VEHICLE = SKILL_VEHICLE_SMALL,
SKILL_JTAC = SKILL_JTAC_BEGINNER,
SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED,
)

/datum/skills/combat_medic_PvE
name = "Combat Medic"
skills = list(
SKILL_ENGINEER = SKILL_ENGINEER_ENGI,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_FIREMAN = SKILL_FIREMAN_EXPERT,
SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED,
SKILL_VEHICLE = SKILL_VEHICLE_SMALL,
SKILL_JTAC = SKILL_JTAC_BEGINNER,
SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED,
SKILL_MEDICAL = SKILL_MEDICAL_MEDIC,
SKILL_SURGERY = SKILL_SURGERY_NOVICE,
)

/datum/skills/smartgunner_PvE
name = "Fireteam Leader"
skills = list(
SKILL_ENGINEER = SKILL_ENGINEER_ENGI,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_FIREMAN = SKILL_FIREMAN_EXPERT,
SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED,
SKILL_VEHICLE = SKILL_VEHICLE_SMALL,
SKILL_JTAC = SKILL_JTAC_BEGINNER,
SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED,
SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN,
)

/datum/skills/tl_PvE
name = "Fireteam Leader"
skills = list(
SKILL_ENGINEER = SKILL_ENGINEER_ENGI,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_FIREMAN = SKILL_FIREMAN_EXPERT,
SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED,
SKILL_VEHICLE = SKILL_VEHICLE_SMALL,
SKILL_JTAC = SKILL_JTAC_TRAINED,
SKILL_LEADERSHIP = SKILL_LEAD_TRAINED,
SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED,
SKILL_PILOT = SKILL_PILOT_TRAINED,
)

/datum/skills/sl_PvE
name = "Squad Leader"
skills = list(
SKILL_ENGINEER = SKILL_ENGINEER_ENGI,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_FIREMAN = SKILL_FIREMAN_EXPERT,
SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED,
SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER,
SKILL_CQC = SKILL_CQC_TRAINED,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_ENGINEER = SKILL_ENGINEER_ENGI,
SKILL_LEADERSHIP = SKILL_LEAD_EXPERT,
SKILL_MEDICAL = SKILL_MEDICAL_TRAINED,
SKILL_SURGERY = SKILL_SURGERY_NOVICE,
SKILL_VEHICLE = SKILL_VEHICLE_SMALL,
SKILL_JTAC = SKILL_JTAC_TRAINED,
SKILL_INTEL = SKILL_INTEL_TRAINED,
SKILL_PILOT = SKILL_PILOT_EXPERT,
SKILL_SPEC_WEAPONS = SKILL_SPEC_SCOUT,
)
11 changes: 11 additions & 0 deletions code/game/jobs/job/marine/squads.dm
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,17 @@
roundstart = FALSE
locked = TRUE

/datum/squad/marine/solardevils
name = SQUAD_SOLAR
equipment_color = "#5a2c2c"
chat_color = "#5a2c2c"
radio_freq = SOF_FREQ
minimap_color = "#5a2c2c"

active = FALSE
roundstart = FALSE
locked = TRUE


//############################### UPP Squads
/datum/squad/upp
Expand Down
10 changes: 10 additions & 0 deletions code/game/objects/items/storage/toolkit.dm
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,15 @@
else
icon_state = icon_full

/obj/item/storage/toolkit/full/fill_preset_inventory()
new /obj/item/stack/cable_coil/random(src)
new /obj/item/circuitboard/apc(src)
new /obj/item/circuitboard/apc(src)
new /obj/item/circuitboard/apc(src)
new /obj/item/cell/high(src)
new /obj/item/cell/high(src)
new /obj/item/clothing/glasses/welding(src)


/obj/item/storage/toolkit/empty/fill_preset_inventory()
return
6 changes: 6 additions & 0 deletions code/modules/clothing/gloves/marine_gloves.dm
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,12 @@
item_state = "insulated"
siemens_coefficient = 0

/obj/item/clothing/gloves/marine/insulated/black
name = "marine insulated black gloves"
desc = "These marine gloves will protect the wearer from electric shocks and shrapnal. Standard issue for well equipped Marine battalions."
icon_state = "black"
item_state = "black"

/obj/item/clothing/gloves/marine/black
name = "marine black combat gloves"
adopts_squad_color = FALSE
Expand Down
5 changes: 5 additions & 0 deletions code/modules/clothing/under/ties.dm
Original file line number Diff line number Diff line change
Expand Up @@ -375,6 +375,11 @@
desc = "A fire-resistant shoulder patch, worn by the men and women of the Falling Falcons, the 2nd battalion of the 4th brigade of the USCM."
icon_state = "fallingfalconspatch"

/obj/item/clothing/accessory/patch/devils
name = "USCM Solar Devils patch"
desc = "A fire-resistant shoulder patch, worn by the men and women of the Solar Devils, the 3rd battalion of the 2nd division of the USCM."
icon_state = "solardevilspatch"

/obj/item/clothing/accessory/patch/forecon
name = "USCM Force Reconnaissance patch"
desc = "A fire-resistant shoulder patch, worn by the men and women of the USS Hanyut, USCM FORECON."
Expand Down
Loading

0 comments on commit 9f7fe07

Please sign in to comment.