Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions code/_globalvars/lists/flavor_misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ GLOBAL_LIST_EMPTY(caps_list)
GLOBAL_LIST_EMPTY(ipc_screens_list)
GLOBAL_LIST_EMPTY(ipc_antennas_list)
GLOBAL_LIST_EMPTY(ipc_chassis_list)
GLOBAL_LIST_INIT(plasmaman_helmet_list, list("None" = "", "Slit" = "S", "Nyan" = "N", "Gassy" = "G", "Bane" = "B", "Halo" = "H", "Wizard" = "W"))

GLOBAL_LIST_EMPTY(ethereal_mark_list) //ethereal face marks
GLOBAL_LIST_INIT(color_list_ethereal, list("F Class(Green)" = "97ee63", "F2 Class (Light Green)" = "00fa9a", "F3 Class (Dark Green)" = "37835b", "M Class (Red)" = "9c3030", "M1 Class (Purple)" = "ee82ee", "G Class (Yellow)" = "fbdf56", "O Class (Blue)" = "3399ff", "A Class (Cyan)" = "00ffff"))
Expand Down
19 changes: 18 additions & 1 deletion code/modules/client/preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/skin_tone = "caucasian1" //Skin color
var/eye_color = "000" //Eye color
var/datum/species/pref_species = new /datum/species/human() //Mutant race
var/list/features = list("mcolor" = "FFF", "gradientstyle" = "None", "gradientcolor" = "000", "ethcolor" = "9c3030", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "moth_wings" = "Plain", "tail_polysmorph" = "Polys", "teeth" = "None", "dome" = "None", "dorsal_tubes" = "No", "ethereal_mark" = "None", "pod_hair" = "Cabbage", "pod_flower" = "Cabbage", "ipc_screen" = "Blue", "ipc_antenna" = "None", "ipc_chassis" = "Morpheus Cyberkinetics(Greyscale)")
var/list/features = list("mcolor" = "FFF", "gradientstyle" = "None", "gradientcolor" = "000", "ethcolor" = "9c3030", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "moth_wings" = "Plain", "tail_polysmorph" = "Polys", "teeth" = "None", "dome" = "None", "dorsal_tubes" = "No", "ethereal_mark" = "None", "pod_hair" = "Cabbage", "pod_flower" = "Cabbage", "ipc_screen" = "Blue", "ipc_antenna" = "None", "ipc_chassis" = "Morpheus Cyberkinetics(Greyscale)","plasmaman_helmet" = "None")
var/list/genders = list(MALE, FEMALE, PLURAL)
var/list/friendlyGenders = list("Male" = "male", "Female" = "female", "Other" = "plural")

Expand Down Expand Up @@ -684,6 +684,15 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "</td>"
mutant_category = 0

if("plasmaman_helmet" in pref_species.default_features)
if(!mutant_category)
dat += APPEARANCE_CATEGORY_COLUMN

dat += "<h3>Helmet Style</h3>"

dat += "<a href='?_src_=prefs;preference=plasmaman_helmet;task=input'>[features["plasmaman_helmet"]]</a>"
dat += "<a href ='?_src_=prefs;preference=plasmaman_helmet;task=lock'>[random_locks["plasmaman_helmet"] ? "Unlock" : "Lock"]</a><BR>"

if(CONFIG_GET(flag/join_with_mutant_humans))

if("wings" in pref_species.default_features && GLOB.r_wings_list.len >1)
Expand Down Expand Up @@ -1862,6 +1871,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)

if(new_ipc_chassis)
features["ipc_chassis"] = new_ipc_chassis

if("plasmaman_helmet")
var/new_plasmaman_helmet

new_plasmaman_helmet = input(user, "Choose your character's plasmaman helmet style:", "Character Preference") as null|anything in GLOB.plasmaman_helmet_list
if(new_plasmaman_helmet)
features["plasmaman_helmet"] = new_plasmaman_helmet

if("s_tone")
var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in GLOB.skin_tones
if(new_s_tone)
Expand Down
24 changes: 23 additions & 1 deletion code/modules/clothing/spacesuits/plasmamen.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,12 @@
var/on = FALSE
actions_types = list(/datum/action/item_action/toggle_helmet_light)
flash_protect = 0
var/base_icon_state
var/pref_alteration = TRUE ///set to true if the item will be modified by player's "plasmaman helmet style pref"

/obj/item/clothing/head/helmet/space/plasmaman/Initialize()
. = ..()
base_icon_state = icon_state

/obj/item/clothing/head/helmet/space/plasmaman/attack_self(mob/user)
toggle_helmet_light(user)
Expand All @@ -59,19 +65,32 @@
else
set_light(0)

icon_state = "[initial(icon_state)][on ? "-light":""]"
icon_state = "[base_icon_state][on ? "-light":""]"
item_state = icon_state
user.update_inv_head()
for(var/X in actions)
var/datum/action/A=X
A.UpdateButtonIcon()

/obj/item/clothing/head/helmet/space/plasmaman/proc/set_design(mob/living/carbon/human/user)
if(!pref_alteration)
return
if(!ishuman(user))
return
var/style = user.dna?.features["plasmaman_helmet"]
if(style && (style in GLOB.plasmaman_helmet_list) && style != "None")
icon_state += "-[GLOB.plasmaman_helmet_list[style]]"
item_state += "-[GLOB.plasmaman_helmet_list[style]]"
base_icon_state = icon_state
user.update_inv_head()

/obj/item/clothing/head/helmet/space/plasmaman/security
name = "security envirosuit helmet"
desc = "A reinforced envirohelm designed for security personnel, reducing most traditional forms of injury."
icon_state = "deathcurity_envirohelm"
item_state = "deathcurity_envirohelm"
armor = list(MELEE = 35, BULLET = 30, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 100, RAD = 0, FIRE = 100, ACID = 75, WOUND = 10)
pref_alteration = FALSE

/obj/item/clothing/head/helmet/space/plasmaman/blue
name = "blue envirosuit helmet"
Expand All @@ -97,16 +116,19 @@
desc = "An ancient envirohelm from the second generation of Nanotrasen-plasmaman related equipment. Clunky, but still sees use due to its reliability."
icon_state = "curator_envirohelm"
item_state = "curator_envirohelm"
pref_alteration = FALSE

/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"
pref_alteration = FALSE

/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. <i>'HONK!'</i>"
icon_state = "clown_envirohelm"
item_state = "clown_envirohelm"
pref_alteration = FALSE

Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
// plasmemes get hard to wound since they only need a severe bone wound to dismember, but unlike skellies, they can't pop their bones back into place.
inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_NOHUNGER,TRAIT_CALCIUM_HEALER,TRAIT_ALWAYS_CLEAN,TRAIT_HARDLY_WOUNDED)
inherent_biotypes = list(MOB_INORGANIC, MOB_HUMANOID)
default_features = list("plasmaman_helmet")
mutantlungs = /obj/item/organ/lungs/plasmaman
mutanttongue = /obj/item/organ/tongue/bone/plasmaman
mutantliver = /obj/item/organ/liver/plasmaman
Expand Down Expand Up @@ -168,6 +169,10 @@
H.equipOutfit(O, visualsOnly)
H.internal = H.get_item_for_held_index(2)
H.update_internals_hud_icon(1)

var/obj/item/clothing/head/helmet/space/plasmaman/plasmeme_helmet = H.head
plasmeme_helmet.set_design(H)

return 0

/datum/species/plasmaman/random_name(gender,unique,lastname)
Expand Down
Binary file modified icons/mob/clothing/head/head.dmi
Binary file not shown.
Binary file modified icons/obj/clothing/hats.dmi
Binary file not shown.