From 40207ea3648f2986ded8a78f00f8edf023e2df17 Mon Sep 17 00:00:00 2001 From: morrowwolf Date: Mon, 11 Sep 2023 02:05:12 -0400 Subject: [PATCH] Cryo spec one time tech purchase (#4354) # About the pull request This PR puts cryo specialist in its own tech. It can be purchased once for eight points for a single specialist. Point cost may be changed. # Explain why it's good for the game Moving this to its own category gives commanders a choice between a few men and a specialist while also stopping tons of spec stacking. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: Morrow add: Added cryo specialist tech that can be purchased once for eight points /:cl: --- code/datums/emergency_calls/cryo_spec.dm | 43 +++++++++++++++++++ .../cm_tech/techs/marine/tier3/cryo_spec.dm | 24 +++++++++++ colonialmarines.dme | 2 + 3 files changed, 69 insertions(+) create mode 100644 code/datums/emergency_calls/cryo_spec.dm create mode 100644 code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm diff --git a/code/datums/emergency_calls/cryo_spec.dm b/code/datums/emergency_calls/cryo_spec.dm new file mode 100644 index 000000000000..6cc7c905efbc --- /dev/null +++ b/code/datums/emergency_calls/cryo_spec.dm @@ -0,0 +1,43 @@ +/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 = FALSE + 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..98736d105a83 --- /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/user) + . = ..() + if(!.) + return + if(!SSticker.mode) + to_chat(user, 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 883663f92026..5ac3a8e32d66 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" @@ -1585,6 +1586,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"