diff --git a/code/datums/action.dm b/code/datums/action.dm
index fd33ef79..8e57ee84 100644
--- a/code/datums/action.dm
+++ b/code/datums/action.dm
@@ -245,6 +245,14 @@
/datum/action/item_action/toggle_helmet_light
name = "Toggle Helmet Light"
+/datum/action/item_action/toggle_welding_screen/plasmaman
+ name = "Toggle Welding Screen"
+
+/datum/action/item_action/toggle_welding_screen/plasmaman/Trigger()
+ var/obj/item/clothing/head/helmet/space/plasmaman/H = target
+ if(istype(H))
+ H.toggle_welding_screen(owner)
+
/datum/action/item_action/toggle_headphones
name = "Toggle Headphones"
desc = "UNTZ UNTZ UNTZ"
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 18d48f93..08adb8e5 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -332,6 +332,15 @@ BLIND // can't see anything
if(visor_vars_to_toggle & VISOR_TINT)
tint ^= initial(tint)
+/obj/item/clothing/head/helmet/space/plasmaman/visor_toggling() //handles all the actual toggling of flags
+ up = !up
+ clothing_flags ^= visor_flags
+ flags_inv ^= visor_flags_inv
+ icon_state = "[initial(icon_state)]"
+ if(visor_vars_to_toggle & VISOR_FLASHPROTECT)
+ flash_protect ^= initial(flash_protect)
+ if(visor_vars_to_toggle & VISOR_TINT)
+ tint ^= initial(tint)
/obj/item/clothing/proc/can_use(mob/user)
if(user && ismob(user))
diff --git a/code/modules/clothing/outfits/plasmaman.dm b/code/modules/clothing/outfits/plasmaman.dm
new file mode 100644
index 00000000..9d7b0dd3
--- /dev/null
+++ b/code/modules/clothing/outfits/plasmaman.dm
@@ -0,0 +1,128 @@
+/datum/outfit/plasmaman/bar
+ name = "Bartender Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/white
+ uniform = /obj/item/clothing/under/plasmaman/enviroslacks
+
+/datum/outfit/plasmaman/chef
+ name = "Chef Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/white
+ uniform = /obj/item/clothing/under/plasmaman/chef
+
+/datum/outfit/plasmaman/botany
+ name = "Botany Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/botany
+ uniform = /obj/item/clothing/under/plasmaman/botany
+
+/datum/outfit/plasmaman/curator
+ name = "Curator Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/curator
+ uniform = /obj/item/clothing/under/plasmaman/curator
+
+/datum/outfit/plasmaman/chaplain
+ name = "Chaplain Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/chaplain
+ uniform = /obj/item/clothing/under/plasmaman/chaplain
+
+/datum/outfit/plasmaman/janitor
+ name = "Janitor Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/janitor
+ uniform = /obj/item/clothing/under/plasmaman/janitor
+
+/datum/outfit/plasmaman/security
+ name = "Security Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/security
+ uniform = /obj/item/clothing/under/plasmaman/security
+
+/datum/outfit/plasmaman/detective
+ name = "Detective Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/white
+ uniform = /obj/item/clothing/under/plasmaman/enviroslacks
+ ears = /obj/item/radio/headset/headset_sec
+
+/datum/outfit/plasmaman/warden
+ name = "Warden Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/security/warden
+ uniform = /obj/item/clothing/under/plasmaman/security/warden
+
+/datum/outfit/plasmaman/cargo
+ name = "Cargo Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/cargo
+ uniform = /obj/item/clothing/under/plasmaman/cargo
+
+/datum/outfit/plasmaman/mining
+ name = "Mining Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/mining
+ uniform = /obj/item/clothing/under/plasmaman/mining
+
+/datum/outfit/plasmaman/medical
+ name = "Medical Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/medical
+ uniform = /obj/item/clothing/under/plasmaman/medical
+
+/datum/outfit/plasmaman/viro
+ name = "Virology Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/viro
+ uniform = /obj/item/clothing/under/plasmaman/viro
+
+/datum/outfit/plasmaman/chemist
+ name = "Chemist Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/chemist
+ uniform = /obj/item/clothing/under/plasmaman/chemist
+
+/datum/outfit/plasmaman/genetics
+ name = "Genetics Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/genetics
+ uniform = /obj/item/clothing/under/plasmaman/genetics
+
+/datum/outfit/plasmaman/science
+ name = "Science Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/science
+ uniform = /obj/item/clothing/under/plasmaman/science
+
+/datum/outfit/plasmaman/robotics
+ name = "Robotics Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/robotics
+ uniform = /obj/item/clothing/under/plasmaman/robotics
+
+/datum/outfit/plasmaman/engineering
+ name = "Engineering Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/engineering
+ uniform = /obj/item/clothing/under/plasmaman/engineering
+
+/datum/outfit/plasmaman/atmospherics
+ name = "Atmospherics Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/atmospherics
+ uniform = /obj/item/clothing/under/plasmaman/atmospherics
+
+/datum/outfit/plasmaman/mime
+ name = "Plasmamime"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/mime
+ uniform = /obj/item/clothing/under/plasmaman/mime
+ mask = /obj/item/clothing/mask/gas/mime
+
+/datum/outfit/plasmaman/clown
+ name = "Plasmaclown"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/clown
+ uniform = /obj/item/clothing/under/plasmaman/clown
+ mask = /obj/item/clothing/mask/gas/clown_hat
diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm
index d1ee88d5..e4ba758d 100644
--- a/code/modules/clothing/spacesuits/plasmamen.dm
+++ b/code/modules/clothing/spacesuits/plasmamen.dm
@@ -15,8 +15,8 @@
/obj/item/clothing/suit/space/eva/plasmaman/examine(mob/user)
- ..()
- to_chat(user, "There [extinguishes_left == 1 ? "is" : "are"] [extinguishes_left] extinguisher charge\s left in this suit.")
+ . = ..()
+ . += "There [extinguishes_left == 1 ? "is" : "are"] [extinguishes_left] extinguisher charge\s left in this suit."
/obj/item/clothing/suit/space/eva/plasmaman/proc/Extinguish(mob/living/carbon/human/H)
@@ -41,12 +41,92 @@
icon_state = "plasmaman-helm"
item_state = "plasmaman-helm"
strip_delay = 80
+ flash_protect = 2
+ tint = 2
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 100, "acid" = 75)
resistance_flags = FIRE_PROOF
var/brightness_on = 4 //luminosity when the light is on
var/on = FALSE
+ var/smile = FALSE
+ var/smile_color = "#FF0000"
+ var/visor_icon = "envisor"
+ var/smile_state = "envirohelm_smile"
+ actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_welding_screen/plasmaman)
+ visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT
+ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
+ flags_cover = HEADCOVERSMOUTH|HEADCOVERSEYES
+ visor_flags_inv = HIDEEYES|HIDEFACE|HIDEFACIALHAIR
+
+/obj/item/clothing/head/helmet/space/plasmaman/Initialize()
+ . = ..()
+ visor_toggling()
+ update_icon()
+ cut_overlays()
+
+/obj/item/clothing/head/helmet/space/plasmaman/AltClick(mob/user)
+ if(user.canUseTopic(src, BE_CLOSE))
+ toggle_welding_screen(user)
+
+/obj/item/clothing/head/helmet/space/plasmaman/proc/toggle_welding_screen(mob/living/user)
+ if(weldingvisortoggle(user))
+ if(on)
+ to_chat(user, "Your helmet's torch can't pass through your welding visor!")
+ on = FALSE
+ playsound(src, 'sound/mecha/mechmove03.ogg', 50, 1) //Visors don't just come from nothing
+ update_icon()
+ else
+ playsound(src, 'sound/mecha/mechmove03.ogg', 50, 1) //Visors don't just come from nothing
+ update_icon()
+
+/obj/item/clothing/head/helmet/space/plasmaman/worn_overlays(isinhands)
+ . = ..()
+ if(!isinhands && !up)
+ . += mutable_appearance('icons/mob/head.dmi', visor_icon)
+ else
+ cut_overlays()
+
+/obj/item/clothing/head/helmet/space/plasmaman/update_icon()
+ cut_overlays()
+ add_overlay(visor_icon)
+ ..()
actions_types = list(/datum/action/item_action/toggle_helmet_light)
+/obj/item/clothing/head/helmet/space/plasmaman/attackby(obj/item/C, mob/living/user)
+ . = ..()
+ if(istype(C, /obj/item/toy/crayon))
+ if(smile == FALSE)
+ var/obj/item/toy/crayon/CR = C
+ to_chat(user, "You start drawing a smiley face on the helmet's visor..")
+ if(do_after(user, 25, target = src))
+ smile = TRUE
+ smile_color = CR.paint_color
+ to_chat(user, "You draw a smiley on the helmet visor.")
+ update_icon()
+ return
+ if(smile == TRUE)
+ to_chat(user, "Seems like someone already drew something on this helmet's visor.")
+
+/obj/item/clothing/head/helmet/space/plasmaman/worn_overlays(isinhands)
+ . = ..()
+ if(!isinhands && smile)
+ var/mutable_appearance/M = mutable_appearance('icons/mob/head.dmi', smile_state)
+ M.color = smile_color
+ . += M
+ if(!isinhands && !up)
+ . += mutable_appearance('icons/mob/head.dmi', visor_icon)
+ else
+ cut_overlays()
+
+/obj/item/clothing/head/helmet/space/plasmaman/ComponentInitialize()
+ . = ..()
+ RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, .proc/wipe_that_smile_off_your_face)
+
+///gets called when receiving the CLEAN_ACT signal from something, i.e soap or a shower. exists to remove any smiley faces drawn on the helmet.
+/obj/item/clothing/head/helmet/space/plasmaman/proc/wipe_that_smile_off_your_face()
+ if(smile)
+ smile = FALSE
+ cut_overlays()
+
/obj/item/clothing/head/helmet/space/plasmaman/attack_self(mob/user)
on = !on
icon_state = "[initial(icon_state)][on ? "-light":""]"
@@ -54,10 +134,137 @@
user.update_inv_head() //So the mob overlay updates
if(on)
- set_light(brightness_on, 0.8, "#FFCC66")
+ if(!up)
+ to_chat(user, "Your helmet's torch can't pass through your welding visor!")
+ set_light(0)
+ else
+ set_light(brightness_on)
else
set_light(0)
for(var/X in actions)
var/datum/action/A=X
A.UpdateButtonIcon()
+
+/obj/item/clothing/head/helmet/space/plasmaman/security
+ name = "security plasma envirosuit helmet"
+ desc = "A plasmaman containment helmet designed for security officers, protecting them from being flashed and burning alive, along-side other undesirables."
+ icon_state = "security_envirohelm"
+ item_state = "security_envirohelm"
+ armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 100, "acid" = 75)
+
+/obj/item/clothing/head/helmet/space/plasmaman/security/warden
+ name = "warden's plasma envirosuit helmet"
+ desc = "A plasmaman containment helmet designed for the warden, a pair of white stripes being added to differeciate them from other members of security."
+ icon_state = "warden_envirohelm"
+ item_state = "warden_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/medical
+ name = "medical's plasma envirosuit helmet"
+ desc = "An envriohelmet designed for plasmaman medical doctors, having two stripes down it's length to denote as much"
+ icon_state = "doctor_envirohelm"
+ item_state = "doctor_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/genetics
+ name = "geneticist's plasma envirosuit helmet"
+ desc = "A plasmaman envirohelmet designed for geneticists."
+ icon_state = "geneticist_envirohelm"
+ item_state = "geneticist_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/viro
+ name = "virology plasma envirosuit helmet"
+ desc = "The helmet worn by the safest people on the station, those who are completely immune to the monstrosities they create."
+ icon_state = "virologist_envirohelm"
+ item_state = "virologist_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/chemist
+ name = "chemistry plasma envirosuit helmet"
+ desc = "A plasmaman envirosuit designed for chemists, two orange stripes going down it's face."
+ icon_state = "chemist_envirohelm"
+ item_state = "chemist_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/science
+ name = "science plasma envirosuit helmet"
+ desc = "A plasmaman envirohelmet designed for scientists."
+ icon_state = "scientist_envirohelm"
+ item_state = "scientist_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/robotics
+ name = "robotics plasma envirosuit helmet"
+ desc = "A plasmaman envirohelmet designed for roboticists."
+ icon_state = "roboticist_envirohelm"
+ item_state = "roboticist_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/engineering
+ name = "engineering plasma envirosuit helmet"
+ desc = "A space-worthy helmet specially designed for engineer plasmamen, the usual purple stripes being replaced by engineering's orange."
+ icon_state = "engineer_envirohelm"
+ item_state = "engineer_envirohelm"
+ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 10, "fire" = 100, "acid" = 75)
+
+/obj/item/clothing/head/helmet/space/plasmaman/atmospherics
+ name = "atmospherics plasma envirosuit helmet"
+ desc = "A space-worthy helmet specially designed for atmos technician plasmamen, the usual purple stripes being replaced by engineering's blue."
+ icon_state = "atmos_envirohelm"
+ item_state = "atmos_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/cargo
+ name = "cargo plasma envirosuit helmet"
+ desc = "An plasmaman envirohelmet designed for cargo techs and quartermasters."
+ icon_state = "cargo_envirohelm"
+ item_state = "cargo_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/mining
+ name = "mining plasma envirosuit helmet"
+ desc = "A khaki helmet given to plasmamen miners operating on lavaland."
+ icon_state = "explorer_envirohelm"
+ item_state = "explorer_envirohelm"
+ visor_icon = "explorer_envisor"
+
+/obj/item/clothing/head/helmet/space/plasmaman/chaplain
+ name = "chaplain's plasma envirosuit helmet"
+ desc = "An envirohelmet specially designed for only the most pious of plasmamen."
+ icon_state = "chap_envirohelm"
+ item_state = "chap_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/white
+ name = "white plasma envirosuit helmet"
+ desc = "A generic white envirohelm."
+ icon_state = "white_envirohelm"
+ item_state = "white_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/curator
+ name = "curator's plasma envirosuit helmet"
+ desc = "A slight modification on a tradiational voidsuit helmet, this helmet was Nano-Trasen's first solution to the *logistical problems* that come with employing plasmamen. Despite their limitations, these helmets still see use by historian and old-styled plasmamen alike."
+ icon_state = "prototype_envirohelm"
+ item_state = "prototype_envirohelm"
+ actions_types = list(/datum/action/item_action/toggle_welding_screen/plasmaman)
+ smile_state = "prototype_smile"
+ visor_icon = "prototype_envisor"
+
+/obj/item/clothing/head/helmet/space/plasmaman/botany
+ name = "botany plasma envirosuit helmet"
+ desc = "A green and blue envirohelmet designating it's wearer as a botanist. While not specially designed for it, it would protect against minor planet-related injuries."
+ icon_state = "botany_envirohelm"
+ item_state = "botany_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/janitor
+ name = "janitor's plasma envirosuit helmet"
+ desc = "A grey helmet bearing a pair of purple stripes, designating the wearer as a janitor."
+ icon_state = "janitor_envirohelm"
+ item_state = "janitor_envirohelm"
+
+/obj/item/clothing/head/helmet/space/plasmaman/mime
+ name = "mime envirosuit helmet"
+ desc = "The make-up is painted on, it's a miracle it doesn't chip. It's not very colourful."
+ icon_state = "mime_envirohelm"
+ item_state = "mime_envirohelm"
+ visor_icon = "mime_envisor"
+
+/obj/item/clothing/head/helmet/space/plasmaman/clown
+ name = "clown envirosuit helmet"
+ desc = "The make-up is painted on, it's a miracle it doesn't chip. 'HONK!'"
+ icon_state = "clown_envirohelm"
+ item_state = "clown_envirohelm"
+ visor_icon = "clown_envisor"
+ smile_state = "clown_smile"
\ No newline at end of file
diff --git a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
new file mode 100644
index 00000000..35aa316f
--- /dev/null
+++ b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
@@ -0,0 +1,86 @@
+/obj/item/clothing/under/plasmaman/cargo
+ name = "cargo plasma envirosuit"
+ desc = "A joint envirosuit used by plasmamen quartermasters and cargo techs alike, due to the logistical problems of differenciating the two with the length of their pant legs."
+ icon_state = "cargo_envirosuit"
+ item_state = "cargo_envirosuit"
+ item_color = "cargo_envirosuit"
+
+/obj/item/clothing/under/plasmaman/mining
+ name = "mining plasma envirosuit"
+ desc = "An air-tight khaki suit designed for operations on lavaland by plasmamen."
+ icon_state = "explorer_envirosuit"
+ item_state = "explorer_envirosuit"
+ item_color = "explorer_envirosuit"
+
+
+/obj/item/clothing/under/plasmaman/chef
+ name = "chef's plasma envirosuit"
+ desc = "A white plasmaman envirosuit designed for cullinary practices. One might question why a member of a species that doesn't need to eat would become a chef."
+ icon_state = "chef_envirosuit"
+ item_state = "chef_envirosuit"
+ item_color = "chef_envirosuit"
+
+/obj/item/clothing/under/plasmaman/enviroslacks
+ name = "enviroslacks"
+ desc = "The pet project of a particularly posh plasmaman, this custom suit was quickly appropriated by Nano-Trasen for it's detectives, lawyers, and bar-tenders alike."
+ icon_state = "enviroslacks"
+ item_state = "enviroslacks"
+ item_color = "enviroslacks"
+
+/obj/item/clothing/under/plasmaman/chaplain
+ name = "chaplain's plasma envirosuit"
+ desc = "An envirosuit specially designed for only the most pious of plasmamen."
+ icon_state = "chap_envirosuit"
+ item_state = "chap_envirosuit"
+ item_color = "chap_envirosuit"
+
+/obj/item/clothing/under/plasmaman/curator
+ name = "curator's plasma envirosuit"
+ desc = "Made out of a modified voidsuit, this suit was Nano-Trasen's first solution to the *logistical problems* that come with employing plasmamen. Due to the modifications, the suit is no longer space-worthy. Despite their limitations, these suits are still in used by historian and old-styled plasmamen alike."
+ icon_state = "prototype_envirosuit"
+ item_state = "prototype_envirosuit"
+ item_color = "prototype_envirosuit"
+
+/obj/item/clothing/under/plasmaman/janitor
+ name = "janitor's plasma envirosuit"
+ desc = "A grey and purple envirosuit designated for plasmamen janitors."
+ icon_state = "janitor_envirosuit"
+ item_state = "janitor_envirosuit"
+ item_color = "janitor_envirosuit"
+
+/obj/item/clothing/under/plasmaman/botany
+ name = "botany envirosuit"
+ desc = "A green and blue envirosuit designed to protect plasmamen from minor plant-related injuries."
+ icon_state = "botany_envirosuit"
+ item_state = "botany_envirosuit"
+ item_color = "botany_envirosuit"
+
+
+/obj/item/clothing/under/plasmaman/mime
+ name = "mime envirosuit"
+ desc = "It's not very colourful."
+ icon_state = "mime_envirosuit"
+ item_state = "mime_envirosuit"
+ item_color = "mime_envirosuit"
+
+/obj/item/clothing/under/plasmaman/clown
+ name = "clown envirosuit"
+ desc = "'HONK!'"
+ icon_state = "clown_envirosuit"
+ item_state = "clown_envirosuit"
+ item_color = "clown_envirosuit"
+
+/obj/item/clothing/under/plasmaman/clown/Extinguish(mob/living/carbon/human/H)
+ if(!istype(H))
+ return
+
+ if(H.on_fire)
+ if(extinguishes_left)
+ if(next_extinguish > world.time)
+ return
+ next_extinguish = world.time + extinguish_cooldown
+ extinguishes_left--
+ H.visible_message("[H]'s suit spews out a tonne of space lube!","Your suit spews out a tonne of space lube!")
+ H.ExtinguishMob()
+ new /obj/effect/particle_effect/foam(loc) //Truely terrifying.
+ return 0
diff --git a/code/modules/clothing/under/jobs/Plasmaman/engineering.dm b/code/modules/clothing/under/jobs/Plasmaman/engineering.dm
new file mode 100644
index 00000000..8ed33e6a
--- /dev/null
+++ b/code/modules/clothing/under/jobs/Plasmaman/engineering.dm
@@ -0,0 +1,15 @@
+/obj/item/clothing/under/plasmaman/engineering
+ name = "engineering plasma envirosuit"
+ desc = "An air-tight suit designed to be used by plasmamen exployed as engineers, the usual purple stripes being replaced by engineer's orange. It protects the user from fire and acid damage."
+ icon_state = "engineer_envirosuit"
+ item_state = "engineer_envirosuit"
+ item_color = "engineer_envirosuit"
+ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 10, "fire" = 95, "acid" = 95)
+
+/obj/item/clothing/under/plasmaman/atmospherics
+ name = "atmospherics plasma envirosuit"
+ desc = "An air-tight suit designed to be used by plasmamen exployed as atmos technicians, the usual purple stripes being replaced by atmos's blue."
+ icon_state = "atmos_envirosuit"
+ item_state = "atmos_envirosuit"
+ item_color = "atmos_envirosuit"
+
diff --git a/code/modules/clothing/under/jobs/Plasmaman/medsci.dm b/code/modules/clothing/under/jobs/Plasmaman/medsci.dm
new file mode 100644
index 00000000..5aa61e7f
--- /dev/null
+++ b/code/modules/clothing/under/jobs/Plasmaman/medsci.dm
@@ -0,0 +1,41 @@
+/obj/item/clothing/under/plasmaman/medical
+ name = "medical plasma envirosuit"
+ desc = "A suit designed for the station's more plasma-based doctors."
+ icon_state = "doctor_envirosuit"
+ item_state = "doctor_envirosuit"
+ item_color = "doctor_envirosuit"
+
+/obj/item/clothing/under/plasmaman/science
+ name = "science plasma envirosuit"
+ desc = "A plasmaman envirosuit designed for scientists."
+ icon_state = "scientist_envirosuit"
+ item_state = "scientist_envirosuit"
+ item_color = "scientist_envirosuit"
+
+/obj/item/clothing/under/plasmaman/robotics
+ name = "robotics plasma envirosuit"
+ desc = "A plasmaman envirosuit designed for roboticists."
+ icon_state = "roboticist_envirosuit"
+ item_state = "roboticist_envirosuit"
+ item_color = "roboticist_envirosuit"
+
+/obj/item/clothing/under/plasmaman/viro
+ name = "virology plasma envirosuit"
+ desc = "The suit worn by the safest people on the station, those who are completely immune to the monstrosities they create."
+ icon_state = "virologist_envirosuit"
+ item_state = "virologist_envirosuit"
+ item_color = "virologist_envirosuit"
+
+/obj/item/clothing/under/plasmaman/genetics
+ name = "genetics plasma envirosuit"
+ desc = "A plasmaman envirosuit designed for geneticists."
+ icon_state = "geneticist_envirosuit"
+ item_state = "geneticist_envirosuit"
+ item_color = "geneticist_envirosuit"
+
+/obj/item/clothing/under/plasmaman/chemist
+ name = "chemistry plasma envirosuit"
+ desc = "A plasmaman envirosuit designed for chemists."
+ icon_state = "chemist_envirosuit"
+ item_state = "chemist_envirosuit"
+ item_color = "chemist_envirosuit"
diff --git a/code/modules/clothing/under/jobs/Plasmaman/security.dm b/code/modules/clothing/under/jobs/Plasmaman/security.dm
new file mode 100644
index 00000000..36c16e9c
--- /dev/null
+++ b/code/modules/clothing/under/jobs/Plasmaman/security.dm
@@ -0,0 +1,14 @@
+/obj/item/clothing/under/plasmaman/security
+ name = "security plasma envirosuit"
+ desc = "A plasmaman containment suit designed for security officers, offering a limited amount of extra protection."
+ icon_state = "security_envirosuit"
+ item_state = "security_envirosuit"
+ item_color = "security_envirosuit"
+ armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95)
+
+/obj/item/clothing/under/plasmaman/security/warden
+ name = "warden plasma envirosuit"
+ desc = "A plasmaman containment suit designed for the warden, white stripes being added to differeciate them from other members of security."
+ icon_state = "warden_envirosuit"
+ item_state = "warden_envirosuit"
+ item_color = "warden_envirosuit"
diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm
index e938ee33..82238701 100644
--- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm
+++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm
@@ -5,14 +5,12 @@
sexes = 0
meat = /obj/item/stack/sheet/mineral/plasma
species_traits = list(NOBLOOD,NOTRANSSTING,NOGENITALS)
- inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_RADIMMUNE,TRAIT_NOHUNGER,TRAIT_CALCIUM_HEALER)
+ inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_RADIMMUNE,TRAIT_NOHUNGER)
inherent_biotypes = list(MOB_INORGANIC, MOB_HUMANOID)
mutantlungs = /obj/item/organ/lungs/plasmaman
mutanttongue = /obj/item/organ/tongue/bone/plasmaman
mutantliver = /obj/item/organ/liver/plasmaman
mutantstomach = /obj/item/organ/stomach/plasmaman
- dangerous_existence = 1 //So so much
- blacklisted = 1 //See above
burnmod = 1.5
heatmod = 1.5
breathid = "tox"
@@ -52,22 +50,80 @@
/datum/species/plasmaman/handle_fire(mob/living/carbon/human/H, no_protection)
if(internal_fire)
no_protection = TRUE
- ..()
+ . = ..()
/datum/species/plasmaman/before_equip_job(datum/job/J, mob/living/carbon/human/H, visualsOnly = FALSE)
+ var/current_job = J.title
var/datum/outfit/plasmaman/O = new /datum/outfit/plasmaman
+ switch(current_job)
+ if("Chaplain")
+ O = new /datum/outfit/plasmaman/chaplain
+
+ if("Curator")
+ O = new /datum/outfit/plasmaman/curator
+
+ if("Janitor")
+ O = new /datum/outfit/plasmaman/janitor
+
+ if("Botanist")
+ O = new /datum/outfit/plasmaman/botany
+
+ if("Bartender", "Lawyer")
+ O = new /datum/outfit/plasmaman/bar
+
+ if("Cook")
+ O = new /datum/outfit/plasmaman/chef
+
+ if("Security Officer")
+ O = new /datum/outfit/plasmaman/security
+
+ if("Detective")
+ O = new /datum/outfit/plasmaman/detective
+
+ if("Warden")
+ O = new /datum/outfit/plasmaman/warden
+
+ if("Cargo Technician", "Quartermaster")
+ O = new /datum/outfit/plasmaman/cargo
+
+ if("Shaft Miner")
+ O = new /datum/outfit/plasmaman/mining
+
+ if("Medical Doctor")
+ O = new /datum/outfit/plasmaman/medical
+
+ if("Chemist")
+ O = new /datum/outfit/plasmaman/chemist
+
+ if("Geneticist")
+ O = new /datum/outfit/plasmaman/genetics
+
+ if("Roboticist")
+ O = new /datum/outfit/plasmaman/robotics
+
+ if("Virologist")
+ O = new /datum/outfit/plasmaman/viro
+
+ if("Scientist")
+ O = new /datum/outfit/plasmaman/science
+
+ if("Station Engineer")
+ O = new /datum/outfit/plasmaman/engineering
+
+ if("Atmospheric Technician")
+ O = new /datum/outfit/plasmaman/atmospherics
+
+ if("Mime")
+ O = new /datum/outfit/plasmaman/mime
+
+ if("Clown")
+ O = new /datum/outfit/plasmaman/clown
+
H.equipOutfit(O, visualsOnly)
H.internal = H.get_item_for_held_index(2)
H.update_internals_hud_icon(1)
return 0
-/datum/species/plasmaman/qualifies_for_rank(rank, list/features)
- if(rank in GLOB.security_positions)
- return 0
- if(rank == "Clown" || rank == "Mime")//No funny bussiness
- return 0
- return ..()
-
/datum/species/plasmaman/random_name(gender,unique,lastname)
if(unique)
return random_unique_plasmaman_name()
@@ -78,3 +134,18 @@
randname += " [lastname]"
return randname
+
+/datum/species/plasmaman/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
+ . = ..()
+ if(chem.type == /datum/reagent/consumable/milk)
+ if(chem.volume >= 6)
+ H.reagents.remove_reagent(chem.type, chem.volume - 5)
+ to_chat(H, "The excess milk is dripping off your bones!")
+ H.heal_bodypart_damage(1.5,0, 0)
+ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
+ return TRUE
+
+ if(chem.type == /datum/reagent/toxin/bonehurtingjuice)
+ H.adjustBruteLoss(0.5, 0)
+ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
+ return TRUE
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index db7a7f20..bf34cb61 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index 43d35d5d..d2215610 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index c2097310..bb0d5bbb 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
index 25c9b0eb..f4204380 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ