From 5dc2905be5264c2468a8b7b80d1ad8eb8f52ae4a Mon Sep 17 00:00:00 2001 From: DragonTrance Date: Sun, 9 May 2021 18:16:15 -0700 Subject: [PATCH] ERT Nuclear Waste Cleanser --- code/modules/jobs/access.dm | 2 +- .../code/datums/ert_hazard_cleanup.dm | 96 +++++++++++++++++++ .../modules/clothing/spacesuits/hardsuit.dm | 9 ++ tgstation.dme | 1 + 4 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 hyperstation/code/datums/ert_hazard_cleanup.dm diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index c0fba370..60ba5695 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -366,7 +366,7 @@ return get_all_jobs() + list("Prisoner") /proc/get_all_centcom_jobs() - return list("VIP Guest","Custodian","Thunderdome Overseer","CentCom Official","Medical Officer","Death Commando","Research Officer","Special Ops Officer","Admiral","CentCom Commander","Emergency Response Team Commander","Security Response Officer","Engineer Response Officer", "Medical Response Officer","CentCom Bartender") + return list("VIP Guest","Custodian","Thunderdome Overseer","CentCom Official","Medical Officer","Death Commando","Research Officer","Special Ops Officer","Admiral","CentCom Commander","Emergency Response Team Commander","Security Response Officer","Engineer Response Officer", "Medical Response Officer","CentCom Bartender","Nuclear Waste Expert") /obj/item/proc/GetJobName() //Used in secHUD icon generation var/obj/item/card/id/I = GetID() diff --git a/hyperstation/code/datums/ert_hazard_cleanup.dm b/hyperstation/code/datums/ert_hazard_cleanup.dm new file mode 100644 index 00000000..f2f05ab7 --- /dev/null +++ b/hyperstation/code/datums/ert_hazard_cleanup.dm @@ -0,0 +1,96 @@ +//This file contains everything to spawn ERT for cleaning up a nuclear reactor meltdown, if those things could actually explode + +//ERT +/datum/ert/cleanup + rename_team = "Emergency Cleanup Crew" + code = "Blue" //CC probably wouldn't know if it was sabotage or not, but nuclear waste is a hazard to personnel + mission = "Remove all nuclear residue from X station" + enforce_human = FALSE + opendoors = FALSE + polldesc = "a Sanitation Expert in nuclear waste" + teamsize = 3 //2 is not enough for such a big area, 4 is too much + leader_role = /datum/antagonist/ert/cleanup + roles = list(/datum/antagonist/ert/cleanup) + +/datum/ert/cleanup/New() + mission = "Remove all nuclear waste on [station_name()]." + +//Antag mind & team (for objectives on what to do) +/datum/antagonist/ert/cleanup + name = "Nuclear Waste Expert" + role = "Nuclear Waste Expert" + ert_team = /datum/team/ert/cleanup + outfit = /datum/outfit/ert/cleanup + +/datum/antagonist/ert/cleanup/greet() + //\an [name] because modularization is nice + to_chat(owner, "You are \an [name].\n\ + Your job is to remove all nuclear waste and residue contaminants from [station_name()], \ + under orders of Kinaris's Crew Health and Safety Division, as formerly as possible.\n\ + You are not required to repair any construction damages, as you are not equipped for such.") + +/datum/team/ert/cleanup + mission = "Remove all nuclear waste aboard the station." + objectives = list("Remove all nuclear waste aboard the station.") + +//Outfit +/datum/outfit/ert/cleanup + name = "Emergency Cleanup Technician" + id = /obj/item/card/id/ert/Engineer/cleanup + uniform = /obj/item/clothing/under/rank/chief_engineer + suit = /obj/item/clothing/suit/space/hardsuit/rd/hev/no_sound/nuclear_sanitation + glasses = /obj/item/clothing/glasses/meson/engine + back = /obj/item/storage/backpack/industrial + gloves = /obj/item/clothing/gloves/color/yellow/nuclear_sanitation + shoes = /obj/item/clothing/shoes/jackboots/nuclear_sanitation + suit_store = /obj/item/tank/internals/emergency_oxygen/engi + belt = /obj/item/gun/energy/e_gun/advtaser + backpack_contents = list(/obj/item/storage/firstaid/radbgone=2, + /obj/item/storage/firstaid/toxin=1, + /obj/item/crowbar/power=1, + /obj/item/shovel=1, + /obj/item/geiger_counter=1) + +/datum/outfit/ert/cleanup/New() + if(prob(30)) + l_hand = /obj/item/inducer/sci/combat //A whole engine gets destroyed, so add a nice inducer to help charge areas back up + . = ..() + +//Clothes +/obj/item/radio/headset/headset_cent/cleanup + icon_state = "rob_headset" //cause it looks fancy + keyslot = new /obj/item/encryptionkey/headset_eng + +/obj/item/card/id/ert/Engineer/cleanup + registered_name = "Waste Expert" + assignment = "Emergency Cleanup Technician" + +/obj/item/card/id/ert/Engineer/cleanup/Initialize() + access = get_ert_access("eng")+get_region_accesses(1)+get_region_accesses(5)+get_region_accesses(7) //CC eng, general, engineering, and command + +/obj/item/clothing/gloves/color/yellow/nuclear_sanitation + name = "thick gloves" + desc = "A pair of yellow gloves. They help protect from radiation." + siemens_coefficient = 0.85 + permeability_coefficient = 0.7 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 20, "rad" = 100, "fire" = 0, "acid" = 50) + item_color = "chief" + +/obj/item/clothing/shoes/jackboots/nuclear_sanitation + desc = "A pair of jackboots, sewn with special material to help protect from radiation." + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 5, "bomb" = 5, "bio" = 0, "rad" = 100, "fire" = 10, "acid" = 70) + item_color = "chief" + +/obj/item/clothing/suit/space/hardsuit/rd/hev/no_sound/nuclear_sanitation + name = "improved radiation suit" + desc = "A radiation suit that's been manufactured for being a hardsuit. It provides complete protection from radiation and bio contaminants." + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd/hev/no_scanner/nuclear_sanitation + slowdown = 0.7 //removes 30% of the slowness. This is actually a considerable amount + +/obj/item/clothing/head/helmet/space/hardsuit/rd/hev/no_scanner/nuclear_sanitation + name = "improved radiation hood" + desc = "It protects from radiation and bio contaminants." diff --git a/hyperstation/code/modules/clothing/spacesuits/hardsuit.dm b/hyperstation/code/modules/clothing/spacesuits/hardsuit.dm index ad682696..ebfee0ef 100644 --- a/hyperstation/code/modules/clothing/spacesuits/hardsuit.dm +++ b/hyperstation/code/modules/clothing/spacesuits/hardsuit.dm @@ -9,6 +9,9 @@ armor = list("melee" = 30, "bullet" = 10, "laser" = 10, "energy" = 5, "bomb" = 80, "bio" = 100, "rad" = 100, "fire" = 60, "acid" = 60) actions_types = list(/datum/action/item_action/toggle_research_scanner) +/obj/item/clothing/head/helmet/space/hardsuit/rd/hev/no_scanner + actions_types = list() + /obj/item/clothing/suit/space/hardsuit/rd/hev name = "HEV Suit" desc = "The hazard suit. It was designed to protect scientists from the blunt trauma, radiation, energy discharge that hazardous materials might produce or entail. Fits you like a glove. The automatic medical system seems broken... They're waiting for you, Gordon. In the test chamberrrrrr." @@ -24,9 +27,15 @@ tauric = FALSE //Citadel Add for tauric hardsuits taurmode = NOT_TAURIC var/firstpickup = TRUE + var/pickupsound = TRUE + +/obj/item/clothing/suit/space/hardsuit/rd/hev/no_sound + pickup_sound = FALSE /obj/item/clothing/suit/space/hardsuit/rd/hev/equipped(mob/user, slot) . = ..() + if(!pickup_sound) + return if(!ishuman(user)) return if(slot == SLOT_WEAR_SUIT) diff --git a/tgstation.dme b/tgstation.dme index 8cb367fb..a91ac21e 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3040,6 +3040,7 @@ #include "hyperstation\code\__DEFINES\economy.dm" #include "hyperstation\code\__DEFINES\wendigo.dm" #include "hyperstation\code\controllers\subsystem\economy.dm" +#include "hyperstation\code\datums\ert_hazard_cleanup.dm" #include "hyperstation\code\datums\elements\holder_micro.dm" #include "hyperstation\code\datums\mood_events\events.dm" #include "hyperstation\code\datums\ruins\lavaland.dm"