diff --git a/code/datums/emergency_calls/cryo_spec.dm b/code/datums/emergency_calls/cryo_spec.dm new file mode 100644 index 000000000000..ad6315781c8a --- /dev/null +++ b/code/datums/emergency_calls/cryo_spec.dm @@ -0,0 +1,42 @@ +/datum/emergency_call/cryo_spec + name = "Marine Cryo Reinforcement (Spec)" + mob_max = 1 + mob_min = 1 + probability = 0 + objectives = "Assist the USCM forces" + name_of_spawn = /obj/effect/landmark/ert_spawns/distress_cryo + shuttle_id = "" + spawn_max_amount = TRUE + +/datum/emergency_call/cryo_spec/create_member(datum/mind/mind, turf/override_spawn_loc) + set waitfor = 0 + if(SSmapping.configs[GROUND_MAP].map_name == MAP_WHISKEY_OUTPOST) + name_of_spawn = /obj/effect/landmark/ert_spawns/distress_wo + 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/human = new(spawn_loc) + + if(mind) + mind.transfer_to(human, TRUE) + else + human.create_hud() + + if(!mind) + for(var/obj/structure/machinery/cryopod/pod in view(7,human)) + if(pod && !pod.occupant) + pod.go_in_cryopod(human, silent = TRUE) + break + + sleep(5) + human.client?.prefs.copy_all_to(human, JOB_SQUAD_SPECIALIST, TRUE, TRUE) + arm_equipment(human, /datum/equipment_preset/uscm/spec/cryo, mind == null, TRUE) + to_chat(human, SPAN_ROLE_HEADER("You are a Weapons Specialist in the USCM")) + to_chat(human, SPAN_ROLE_BODY("Your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) + to_chat(human, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced.")) + + sleep(10) + if(!mind) + human.free_for_ghosts() + to_chat(human, SPAN_BOLD("Objectives: [objectives]")) diff --git a/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm b/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm new file mode 100644 index 000000000000..2a7fb65bc578 --- /dev/null +++ b/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm @@ -0,0 +1,24 @@ +/datum/tech/cryomarine + name = "Wake Up Additional Specialist" + desc = "Wakes up an additional specialist to fight against any threats." + icon_state = "overshield" + + announce_name = "ALMAYER SPECIAL ASSETS AUTHORIZED" + announce_message = "An additional specialist is being taken out of cryo." + + required_points = 8 + + flags = TREE_FLAG_MARINE + tier = /datum/tier/three + +/datum/tech/cryomarine/can_unlock(mob/M) + . = ..() + if(!.) + return + if(!SSticker.mode) + to_chat(M, SPAN_WARNING("You can't do this right now!")) + return + +/datum/tech/cryomarine/on_unlock() + . = ..() + SSticker.mode.get_specific_call("Marine Cryo Reinforcement (Spec)", FALSE, FALSE, announce_dispatch_message = FALSE) diff --git a/colonialmarines.dme b/colonialmarines.dme index 20a7e0e752c5..a7f45824e75f 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -463,6 +463,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\emergency_calls\contractor.dm" #include "code\datums\emergency_calls\cryo_marines.dm" #include "code\datums\emergency_calls\cryo_marines_heavy.dm" +#include "code\datums\emergency_calls\cryo_spec.dm" #include "code\datums\emergency_calls\custom.dm" #include "code\datums\emergency_calls\deathsquad.dm" #include "code\datums\emergency_calls\deus_vult.dm" @@ -1583,6 +1584,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\cm_tech\techs\abstract\transitory.dm" #include "code\modules\cm_tech\techs\marine\tier1\points.dm" #include "code\modules\cm_tech\techs\marine\tier2\orbital_ammo.dm" +#include "code\modules\cm_tech\techs\marine\tier3\cryo_spec.dm" #include "code\modules\cm_tech\techs\marine\tier3\cryorine.dm" #include "code\modules\cm_tech\techs\marine\tier4\nuke.dm" #include "code\modules\cm_tech\trees\marine.dm"