From 4cd731ce11cbc358fdbb7b2bcbeaf27063d66019 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Sun, 16 Aug 2020 19:06:57 -0700
Subject: [PATCH] Revert "cease your shitcode: cum edition"
---
code/__DEFINES/pool.dm | 2 +-
code/__HELPERS/global_lists.dm | 8 +-
code/__HELPERS/mobs.dm | 14 +-
code/_globalvars/lists/flavor_misc.dm | 35 ----
.../diseases/advance/symptoms/species.dm | 1 +
code/datums/dna.dm | 4 +-
code/modules/arousal/organs/womb.dm | 2 +-
code/modules/client/preferences.dm | 12 +-
code/modules/jobs/job_types/_job.dm | 1 -
.../jobs/job_types/atmospheric_technician.dm | 1 -
code/modules/jobs/job_types/bartender.dm | 1 -
code/modules/jobs/job_types/botanist.dm | 1 -
code/modules/jobs/job_types/captain.dm | 1 -
.../jobs/job_types/cargo_technician.dm | 1 -
code/modules/jobs/job_types/chaplain.dm | 1 -
code/modules/jobs/job_types/chemist.dm | 1 -
code/modules/jobs/job_types/chief_engineer.dm | 1 -
.../jobs/job_types/chief_medical_officer.dm | 1 -
code/modules/jobs/job_types/clown.dm | 1 -
code/modules/jobs/job_types/cook.dm | 1 -
code/modules/jobs/job_types/curator.dm | 1 -
code/modules/jobs/job_types/detective.dm | 1 -
code/modules/jobs/job_types/geneticist.dm | 1 -
.../jobs/job_types/head_of_personnel.dm | 1 -
.../jobs/job_types/head_of_security.dm | 2 -
code/modules/jobs/job_types/janitor.dm | 1 -
code/modules/jobs/job_types/lawyer.dm | 1 -
code/modules/jobs/job_types/medical_doctor.dm | 1 -
code/modules/jobs/job_types/mime.dm | 1 -
.../jobs/job_types/research_director.dm | 1 -
code/modules/jobs/job_types/roboticist.dm | 1 -
code/modules/jobs/job_types/scientist.dm | 1 -
.../jobs/job_types/security_officer.dm | 1 -
code/modules/jobs/job_types/shaft_miner.dm | 1 -
.../jobs/job_types/station_engineer.dm | 1 -
code/modules/jobs/job_types/virologist.dm | 1 -
code/modules/jobs/job_types/warden.dm | 1 -
.../sprite_accessories/Citadel_Snowflake.dm | 16 +-
.../sprite_accessories/_sprite_accessories.dm | 3 -
.../sprite_accessories/alienpeople.dm | 10 -
.../sprite_accessories/body_markings.dm | 3 -
.../new_player/sprite_accessories/ears.dm | 74 +++----
.../new_player/sprite_accessories/frills.dm | 4 -
.../new_player/sprite_accessories/horns.dm | 4 -
.../sprite_accessories/legs_and_taurs.dm | 3 -
.../new_player/sprite_accessories/snouts.dm | 110 +++++-----
.../new_player/sprite_accessories/spines.dm | 5 -
.../new_player/sprite_accessories/synthliz.dm | 12 +-
.../new_player/sprite_accessories/tails.dm | 188 ++++++++---------
.../new_player/sprite_accessories/wings.dm | 6 -
.../mob/living/carbon/human/species.dm | 194 ++++++++++++++++--
.../carbon/human/species_types/jellypeople.dm | 6 +-
.../carbon/human/species_types/plasmamen.dm | 85 +++++++-
.../human/species_types/shadowpeople.dm | 2 +
.../carbon/human/species_types/skeletons.dm | 2 +-
.../carbon/human/species_types/synthliz.dm | 2 +-
.../carbon/human/species_types/synths.dm | 2 +
.../mob/living/simple_animal/bot/cleanbot.dm | 2 +-
.../chemistry/reagents/other_reagents.dm | 40 +++-
59 files changed, 512 insertions(+), 369 deletions(-)
diff --git a/code/__DEFINES/pool.dm b/code/__DEFINES/pool.dm
index 1bf39dcb1d..64bbd20b19 100644
--- a/code/__DEFINES/pool.dm
+++ b/code/__DEFINES/pool.dm
@@ -8,5 +8,5 @@
GLOBAL_LIST_INIT(blacklisted_pool_reagents, list(
/datum/reagent/toxin/plasma, /datum/reagent/oxygen, /datum/reagent/nitrous_oxide, /datum/reagent/nitrogen, //gases
/datum/reagent/fermi, //blanket fermichem ban sorry. this also covers mkultra, genital enlargers, etc etc.
- /datum/reagent/consumable/semen //NO.
+ /datum/reagent/consumable/femcum, /datum/reagent/consumable/semen //NO.
))
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index 1119ef44ed..d66e83d651 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -37,10 +37,10 @@
//CIT CHANGES START HERE, ADDS SNOWFLAKE BODYPARTS AND MORE
//mammal bodyparts (fucking furries)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, GLOB.mam_body_markings_list)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/mam_tails, GLOB.mam_tails_list)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/ears/mam_ears, GLOB.mam_ears_list)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts/mam_snouts, GLOB.mam_snouts_list)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/mam_tails_animated, GLOB.mam_tails_animated_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, GLOB.mam_tails_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_ears, GLOB.mam_ears_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_snouts, GLOB.mam_snouts_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails_animated, GLOB.mam_tails_animated_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/taur, GLOB.taur_list)
//xeno parts (hiss?)
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_head, GLOB.xeno_head_list)
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 52e26b67e7..c4964022e5 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -93,16 +93,16 @@
if(!GLOB.mam_body_markings_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, GLOB.mam_body_markings_list)
if(!GLOB.mam_tails_list.len)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/mam_tails, GLOB.mam_tails_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, GLOB.mam_tails_list)
if(!GLOB.mam_ears_list.len)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/ears/mam_ears, GLOB.mam_ears_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_ears, GLOB.mam_ears_list)
if(!GLOB.mam_snouts_list.len)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts/mam_snouts, GLOB.mam_snouts_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_snouts, GLOB.mam_snouts_list)
//snowflake check so people's ckey features don't get randomly put on unmonkeys/spawns
var/list/snowflake_mam_tails_list = list()
for(var/mtpath in GLOB.mam_tails_list)
- var/datum/sprite_accessory/tails/mam_tails/instance = GLOB.mam_tails_list[mtpath]
+ var/datum/sprite_accessory/mam_tails/instance = GLOB.mam_tails_list[mtpath]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
@@ -120,7 +120,7 @@
snowflake_markings_list[S.name] = mmpath
var/list/snowflake_ears_list = list()
for(var/mepath in GLOB.mam_ears_list)
- var/datum/sprite_accessory/ears/mam_ears/instance = GLOB.mam_ears_list[mepath]
+ var/datum/sprite_accessory/mam_ears/instance = GLOB.mam_ears_list[mepath]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
@@ -129,7 +129,7 @@
snowflake_ears_list[S.name] = mepath
var/list/snowflake_mam_snouts_list = list()
for(var/mspath in GLOB.mam_snouts_list)
- var/datum/sprite_accessory/snouts/mam_snouts/instance = GLOB.mam_snouts_list[mspath]
+ var/datum/sprite_accessory/mam_snouts/instance = GLOB.mam_snouts_list[mspath]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
@@ -138,7 +138,7 @@
snowflake_mam_snouts_list[S.name] = mspath
var/list/snowflake_ipc_antenna_list = list()
for(var/mspath in GLOB.ipc_antennas_list)
- var/datum/sprite_accessory/snouts/mam_snouts/instance = GLOB.ipc_antennas_list[mspath]
+ var/datum/sprite_accessory/mam_snouts/instance = GLOB.ipc_antennas_list[mspath]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index 1a0afc2c2a..7c2ebc5f0c 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -40,41 +40,6 @@ GLOBAL_LIST_EMPTY(insect_fluffs_list)
GLOBAL_LIST_EMPTY(insect_markings_list)
GLOBAL_LIST_EMPTY(caps_list)
-//a way to index the right bodypart list given the type of bodypart
-GLOBAL_LIST_INIT(mutant_reference_list, list(
- "tail_lizard" = GLOB.tails_list_lizard,
- "waggingtail_lizard" = GLOB.animated_tails_list_lizard,
- "tail_human" = GLOB.tails_list_human,
- "waggingtail_human" = GLOB.animated_tails_list_human,
- "spines" = GLOB.spines_list,
- "waggingspines" = GLOB.animated_spines_list,
- "snout" = GLOB.snouts_list,
- "frills" = GLOB.frills_list,
- "horns" = GLOB.horns_list,
- "ears" = GLOB.ears_list,
- "body_markings" = GLOB.body_markings_list,
- "wings" = GLOB.wings_list,
- "wingsopen" = GLOB.wings_open_list,
- "deco_wings" = GLOB.deco_wings_list,
- "legs" = GLOB.legs_list,
- "insect_wings" = GLOB.insect_wings_list,
- "insect_fluff" = GLOB.insect_fluffs_list,
- "insect_markings" = GLOB.insect_markings_list,
- "caps" = GLOB.caps_list,
- "ipc_screen" = GLOB.ipc_screens_list,
- "ipc_antenna" = GLOB.ipc_antennas_list,
- "mam_tail" = GLOB.mam_tails_list,
- "mam_waggingtail" = GLOB.mam_tails_animated_list,
- "mam_body_markings" = GLOB.mam_body_markings_list,
- "mam_ears" = GLOB.mam_ears_list,
- "mam_snouts" = GLOB.mam_snouts_list,
- "taur" = GLOB.taur_list,
- "xenodorsal" = GLOB.xeno_dorsal_list,
- "xenohead" = GLOB.xeno_head_list,
- "xenotail" = GLOB.xeno_tail_list))
-
-
-
GLOBAL_LIST_INIT(ghost_forms_with_directions_list, list("ghost")) //stores the ghost forms that support directional sprites
GLOBAL_LIST_INIT(ghost_forms_with_accessories_list, list("ghost")) //stores the ghost forms that support hair and other such things
diff --git a/code/datums/diseases/advance/symptoms/species.dm b/code/datums/diseases/advance/symptoms/species.dm
index 2d5255842b..49a3cf8d07 100644
--- a/code/datums/diseases/advance/symptoms/species.dm
+++ b/code/datums/diseases/advance/symptoms/species.dm
@@ -31,3 +31,4 @@
/datum/symptom/inorganic_adaptation/OnRemove(datum/disease/advance/A)
A.infectable_biotypes &= ~MOB_MINERAL
+
diff --git a/code/datums/dna.dm b/code/datums/dna.dm
index 9486029fdd..de5c1ece91 100644
--- a/code/datums/dna.dm
+++ b/code/datums/dna.dm
@@ -137,10 +137,10 @@
L[DNA_COLOR_TWO_BLOCK] = sanitize_hexcolor(features["mcolor2"], 6)
L[DNA_COLOR_THREE_BLOCK] = sanitize_hexcolor(features["mcolor3"], 6)
if(!GLOB.mam_tails_list.len)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/mam_tails, GLOB.mam_tails_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, GLOB.mam_tails_list)
L[DNA_MUTANTTAIL_BLOCK] = construct_block(GLOB.mam_tails_list.Find(features["mam_tail"]), GLOB.mam_tails_list.len)
if(!GLOB.mam_ears_list.len)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/ears/mam_ears, GLOB.mam_ears_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_ears, GLOB.mam_ears_list)
L[DNA_MUTANTEAR_BLOCK] = construct_block(GLOB.mam_ears_list.Find(features["mam_ears"]), GLOB.mam_ears_list.len)
if(!GLOB.mam_body_markings_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, GLOB.mam_body_markings_list)
diff --git a/code/modules/arousal/organs/womb.dm b/code/modules/arousal/organs/womb.dm
index e89d4329aa..386f407a26 100644
--- a/code/modules/arousal/organs/womb.dm
+++ b/code/modules/arousal/organs/womb.dm
@@ -6,5 +6,5 @@
zone = BODY_ZONE_PRECISE_GROIN
slot = ORGAN_SLOT_WOMB
genital_flags = GENITAL_INTERNAL|GENITAL_FUID_PRODUCTION
- fluid_id = /datum/reagent/consumable/semen/femcum
+ fluid_id = /datum/reagent/consumable/femcum
linked_organ_slot = ORGAN_SLOT_VAGINA
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 480ebda4f8..017a25db34 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -791,9 +791,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += ""
dat += "
| "
-
+
if(!length(GLOB.loadout_categories[gear_category]))
dat += "No subcategories detected. Something is horribly wrong!"
else
@@ -1636,7 +1636,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("mam_tail")
var/list/snowflake_tails_list = list()
for(var/path in GLOB.mam_tails_list)
- var/datum/sprite_accessory/tails/mam_tails/instance = GLOB.mam_tails_list[path]
+ var/datum/sprite_accessory/mam_tails/instance = GLOB.mam_tails_list[path]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id))
@@ -1661,7 +1661,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("snout")
var/list/snowflake_snouts_list = list()
for(var/path in GLOB.snouts_list)
- var/datum/sprite_accessory/snouts/mam_snouts/instance = GLOB.snouts_list[path]
+ var/datum/sprite_accessory/mam_snouts/instance = GLOB.snouts_list[path]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id))
@@ -1678,7 +1678,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("mam_snouts")
var/list/snowflake_mam_snouts_list = list()
for(var/path in GLOB.mam_snouts_list)
- var/datum/sprite_accessory/snouts/mam_snouts/instance = GLOB.mam_snouts_list[path]
+ var/datum/sprite_accessory/mam_snouts/instance = GLOB.mam_snouts_list[path]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id))
@@ -1827,7 +1827,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("mam_ears")
var/list/snowflake_ears_list = list()
for(var/path in GLOB.mam_ears_list)
- var/datum/sprite_accessory/ears/mam_ears/instance = GLOB.mam_ears_list[path]
+ var/datum/sprite_accessory/mam_ears/instance = GLOB.mam_ears_list[path]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id))
diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm
index 1238b37919..bd36218211 100644
--- a/code/modules/jobs/job_types/_job.dm
+++ b/code/modules/jobs/job_types/_job.dm
@@ -46,7 +46,6 @@
var/minimal_player_age = 0
var/outfit = null
- var/plasma_outfit = null //the outfit given to plasmamen
var/exp_requirements = 0
diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm
index bff56d1d16..1962b8e8a9 100644
--- a/code/modules/jobs/job_types/atmospheric_technician.dm
+++ b/code/modules/jobs/job_types/atmospheric_technician.dm
@@ -12,7 +12,6 @@
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/atmos
- plasma_outfit = /datum/outfit/plasmaman/atmospherics
access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS,
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/bartender.dm b/code/modules/jobs/job_types/bartender.dm
index 8290adbbd7..e5cd015460 100644
--- a/code/modules/jobs/job_types/bartender.dm
+++ b/code/modules/jobs/job_types/bartender.dm
@@ -11,7 +11,6 @@
exp_type_department = EXP_TYPE_SERVICE // This is so the jobs menu can work properly
outfit = /datum/outfit/job/bartender
- plasma_outfit = /datum/outfit/plasmaman/bar
access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_BAR, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/botanist.dm b/code/modules/jobs/job_types/botanist.dm
index 4c91f87791..65f3e7ca48 100644
--- a/code/modules/jobs/job_types/botanist.dm
+++ b/code/modules/jobs/job_types/botanist.dm
@@ -10,7 +10,6 @@
selection_color = "#bbe291"
outfit = /datum/outfit/job/botanist
- plasma_outfit = /datum/outfit/plasmaman/botany
access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_HYDROPONICS, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm
index 047a07062d..3733658c33 100644
--- a/code/modules/jobs/job_types/captain.dm
+++ b/code/modules/jobs/job_types/captain.dm
@@ -17,7 +17,6 @@
outfit = /datum/outfit/job/captain
- plasma_outfit = /datum/outfit/plasmaman/captain
access = list() //See get_access()
minimal_access = list() //See get_access()
diff --git a/code/modules/jobs/job_types/cargo_technician.dm b/code/modules/jobs/job_types/cargo_technician.dm
index 1f87a5265d..840af56a0e 100644
--- a/code/modules/jobs/job_types/cargo_technician.dm
+++ b/code/modules/jobs/job_types/cargo_technician.dm
@@ -10,7 +10,6 @@
selection_color = "#ca8f55"
outfit = /datum/outfit/job/cargo_tech
- plasma_outfit = /datum/outfit/plasmaman/cargo
access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_MINING,
ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm
index a9e891a303..5f66519365 100644
--- a/code/modules/jobs/job_types/chaplain.dm
+++ b/code/modules/jobs/job_types/chaplain.dm
@@ -10,7 +10,6 @@
selection_color = "#dddddd"
outfit = /datum/outfit/job/chaplain
- plasma_outfit = /datum/outfit/plasmaman/chaplain
access = list(ACCESS_MORGUE, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_THEATRE)
minimal_access = list(ACCESS_MORGUE, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_THEATRE)
diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm
index 6d4204d041..b2699071e3 100644
--- a/code/modules/jobs/job_types/chemist.dm
+++ b/code/modules/jobs/job_types/chemist.dm
@@ -12,7 +12,6 @@
exp_requirements = 60
outfit = /datum/outfit/job/chemist
- plasma_outfit = /datum/outfit/plasmaman/chemist
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm
index 18be8c9835..d8df767a9f 100644
--- a/code/modules/jobs/job_types/chief_engineer.dm
+++ b/code/modules/jobs/job_types/chief_engineer.dm
@@ -17,7 +17,6 @@
exp_type_department = EXP_TYPE_ENGINEERING
outfit = /datum/outfit/job/ce
- plasma_outfit = /datum/outfit/plasmaman/ce
access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS,
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ATMOSPHERICS, ACCESS_EVA,
diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm
index 627a7a2ca1..9cbc15ca28 100644
--- a/code/modules/jobs/job_types/chief_medical_officer.dm
+++ b/code/modules/jobs/job_types/chief_medical_officer.dm
@@ -17,7 +17,6 @@
exp_type_department = EXP_TYPE_MEDICAL
outfit = /datum/outfit/job/cmo
- plasma_outfit = /datum/outfit/plasmaman/cmo
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_HEADS, ACCESS_MINERAL_STOREROOM,
ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE,
diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm
index dc2f60434c..7ad7148614 100644
--- a/code/modules/jobs/job_types/clown.dm
+++ b/code/modules/jobs/job_types/clown.dm
@@ -10,7 +10,6 @@
selection_color = "#dddddd"
outfit = /datum/outfit/job/clown
- plasma_outfit = /datum/outfit/plasmaman/clown
access = list(ACCESS_THEATRE)
minimal_access = list(ACCESS_THEATRE)
diff --git a/code/modules/jobs/job_types/cook.dm b/code/modules/jobs/job_types/cook.dm
index 666ee8f036..5a5916cb7e 100644
--- a/code/modules/jobs/job_types/cook.dm
+++ b/code/modules/jobs/job_types/cook.dm
@@ -11,7 +11,6 @@
var/cooks = 0 //Counts cooks amount
outfit = /datum/outfit/job/cook
- plasma_outfit = /datum/outfit/plasmaman/chef
access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/curator.dm b/code/modules/jobs/job_types/curator.dm
index 254fc15bd4..47bfd4914a 100644
--- a/code/modules/jobs/job_types/curator.dm
+++ b/code/modules/jobs/job_types/curator.dm
@@ -10,7 +10,6 @@
selection_color = "#dddddd"
outfit = /datum/outfit/job/curator
- plasma_outfit = /datum/outfit/plasmaman/curator
access = list(ACCESS_LIBRARY)
minimal_access = list(ACCESS_LIBRARY, ACCESS_CONSTRUCTION, ACCESS_MINING_STATION)
diff --git a/code/modules/jobs/job_types/detective.dm b/code/modules/jobs/job_types/detective.dm
index 65724765e1..463113f14c 100644
--- a/code/modules/jobs/job_types/detective.dm
+++ b/code/modules/jobs/job_types/detective.dm
@@ -14,7 +14,6 @@
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/detective
- plasma_outfit = /datum/outfit/plasmaman/detective
access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm
index 5ff1bebfbf..a40ca0fca3 100644
--- a/code/modules/jobs/job_types/geneticist.dm
+++ b/code/modules/jobs/job_types/geneticist.dm
@@ -12,7 +12,6 @@
exp_requirements = 60
outfit = /datum/outfit/job/geneticist
- plasma_outfit = /datum/outfit/plasmaman/genetics
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_ROBOTICS, ACCESS_MINERAL_STOREROOM, ACCESS_TECH_STORAGE)
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm
index 41fb4b99da..8015c19c36 100644
--- a/code/modules/jobs/job_types/head_of_personnel.dm
+++ b/code/modules/jobs/job_types/head_of_personnel.dm
@@ -17,7 +17,6 @@
exp_type_department = EXP_TYPE_SERVICE
outfit = /datum/outfit/job/hop
- plasma_outfit = /datum/outfit/plasmaman/hop
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_WEAPONS,
ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS,
diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm
index cfd8d7f6c0..3d7d07d894 100644
--- a/code/modules/jobs/job_types/head_of_security.dm
+++ b/code/modules/jobs/job_types/head_of_security.dm
@@ -17,8 +17,6 @@
exp_type_department = EXP_TYPE_SECURITY
outfit = /datum/outfit/job/hos
- plasma_outfit = /datum/outfit/plasmaman/hos
-
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP,
diff --git a/code/modules/jobs/job_types/janitor.dm b/code/modules/jobs/job_types/janitor.dm
index c62c2e5b26..2f6d6f0e32 100644
--- a/code/modules/jobs/job_types/janitor.dm
+++ b/code/modules/jobs/job_types/janitor.dm
@@ -10,7 +10,6 @@
selection_color = "#bbe291"
outfit = /datum/outfit/job/janitor
- plasma_outfit = /datum/outfit/plasmaman/janitor
access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/lawyer.dm b/code/modules/jobs/job_types/lawyer.dm
index 17c376a5de..1a7499800b 100644
--- a/code/modules/jobs/job_types/lawyer.dm
+++ b/code/modules/jobs/job_types/lawyer.dm
@@ -11,7 +11,6 @@
var/lawyers = 0 //Counts lawyer amount
outfit = /datum/outfit/job/lawyer
- plasma_outfit = /datum/outfit/plasmaman/bar //yes, this is correct, there's no 'lawyer' plasmeme outfit
access = list(ACCESS_LAWYER, ACCESS_COURT, ACCESS_SEC_DOORS)
minimal_access = list(ACCESS_LAWYER, ACCESS_COURT, ACCESS_SEC_DOORS)
diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm
index d6a763acfe..5ec4b83b2f 100644
--- a/code/modules/jobs/job_types/medical_doctor.dm
+++ b/code/modules/jobs/job_types/medical_doctor.dm
@@ -10,7 +10,6 @@
selection_color = "#74b5e0"
outfit = /datum/outfit/job/doctor
- plasma_outfit = /datum/outfit/plasmaman/medical
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_VIROLOGY, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/mime.dm b/code/modules/jobs/job_types/mime.dm
index e00b3a1e29..4ba2489ab2 100644
--- a/code/modules/jobs/job_types/mime.dm
+++ b/code/modules/jobs/job_types/mime.dm
@@ -10,7 +10,6 @@
selection_color = "#dddddd"
outfit = /datum/outfit/job/mime
- plasma_outfit = /datum/outfit/plasmaman/mime
access = list(ACCESS_THEATRE)
minimal_access = list(ACCESS_THEATRE)
diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm
index 33f7df8260..7128fbe2c7 100644
--- a/code/modules/jobs/job_types/research_director.dm
+++ b/code/modules/jobs/job_types/research_director.dm
@@ -17,7 +17,6 @@
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/rd
- plasma_outfit = /datum/outfit/plasmaman/rd
access = list(ACCESS_RD, ACCESS_HEADS, ACCESS_TOX, ACCESS_GENETICS, ACCESS_MORGUE,
ACCESS_TOX_STORAGE, ACCESS_TELEPORTER, ACCESS_SEC_DOORS,
diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm
index aa52b353df..f5ae93bb6a 100644
--- a/code/modules/jobs/job_types/roboticist.dm
+++ b/code/modules/jobs/job_types/roboticist.dm
@@ -12,7 +12,6 @@
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/roboticist
- plasma_outfit = /datum/outfit/plasmaman/robotics
access = list(ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM, ACCESS_XENOBIOLOGY, ACCESS_GENETICS)
minimal_access = list(ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/scientist.dm b/code/modules/jobs/job_types/scientist.dm
index a851b333fe..476f740b9d 100644
--- a/code/modules/jobs/job_types/scientist.dm
+++ b/code/modules/jobs/job_types/scientist.dm
@@ -12,7 +12,6 @@
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/scientist
- plasma_outfit = /datum/outfit/plasmaman/science
access = list(ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_MINERAL_STOREROOM, ACCESS_TECH_STORAGE, ACCESS_GENETICS)
minimal_access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm
index bc83eb752d..7e71b2d1f4 100644
--- a/code/modules/jobs/job_types/security_officer.dm
+++ b/code/modules/jobs/job_types/security_officer.dm
@@ -14,7 +14,6 @@
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/security
- plasma_outfit = /datum/outfit/plasmaman/security
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_MINERAL_STOREROOM) // See /datum/job/officer/get_access()
diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm
index 04d3fb53b8..ebf7ba0f1f 100644
--- a/code/modules/jobs/job_types/shaft_miner.dm
+++ b/code/modules/jobs/job_types/shaft_miner.dm
@@ -12,7 +12,6 @@
outfit = /datum/outfit/job/miner
- plasma_outfit = /datum/outfit/plasmaman/mining
access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_MINING,
ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm
index 2396728ad8..d3f5db7dbb 100644
--- a/code/modules/jobs/job_types/station_engineer.dm
+++ b/code/modules/jobs/job_types/station_engineer.dm
@@ -12,7 +12,6 @@
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/engineer
- plasma_outfit = /datum/outfit/plasmaman/engineering
access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS,
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm
index 3e9b3ba06c..790e828931 100644
--- a/code/modules/jobs/job_types/virologist.dm
+++ b/code/modules/jobs/job_types/virologist.dm
@@ -12,7 +12,6 @@
exp_requirements = 60
outfit = /datum/outfit/job/virologist
- plasma_outfit = /datum/outfit/plasmaman/viro
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_MEDICAL, ACCESS_VIROLOGY, ACCESS_MINERAL_STOREROOM)
diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm
index c909342d6f..22e3f9b0f1 100644
--- a/code/modules/jobs/job_types/warden.dm
+++ b/code/modules/jobs/job_types/warden.dm
@@ -14,7 +14,6 @@
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/warden
- plasma_outfit = /datum/outfit/plasmaman/warden
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_MINERAL_STOREROOM) // See /datum/job/warden/get_access()
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/Citadel_Snowflake.dm b/code/modules/mob/dead/new_player/sprite_accessories/Citadel_Snowflake.dm
index 3c2c850e3c..020776a75f 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/Citadel_Snowflake.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/Citadel_Snowflake.dm
@@ -1,9 +1,9 @@
-/datum/sprite_accessory/tails/mam_tails/shark/datashark
+/datum/sprite_accessory/mam_tails/shark/datashark
name = "DataShark"
icon_state = "datashark"
ckeys_allowed = list("rubyflamewing")
-/datum/sprite_accessory/tails_animated/mam_tails_animated/shark/datashark
+/datum/sprite_accessory/mam_tails_animated/shark/datashark
name = "DataShark"
icon_state = "datashark"
ckeys_allowed = list("rubyflamewing")
@@ -14,19 +14,19 @@
ckeys_allowed = list("rubyflamewing")
//Sabresune
-/datum/sprite_accessory/ears/mam_ears/sabresune
+/datum/sprite_accessory/mam_ears/sabresune
name = "Sabresune"
icon_state = "sabresune"
ckeys_allowed = list("poojawa")
extra = TRUE
extra_color_src = MUTCOLORS3
-/datum/sprite_accessory/tails/mam_tails/sabresune
+/datum/sprite_accessory/mam_tails/sabresune
name = "Sabresune"
icon_state = "sabresune"
ckeys_allowed = list("poojawa")
-/datum/sprite_accessory/tails_animated/mam_tails_animated/sabresune
+/datum/sprite_accessory/mam_tails_animated/sabresune
name = "Sabresune"
icon_state = "sabresune"
ckeys_allowed = list("poojawa")
@@ -37,17 +37,17 @@
ckeys_allowed = list("poojawa")
//Lunasune
-/datum/sprite_accessory/ears/mam_ears/lunasune
+/datum/sprite_accessory/mam_ears/lunasune
name = "lunasune"
icon_state = "lunasune"
ckeys_allowed = list("invader4352")
-/datum/sprite_accessory/tails/mam_tails/lunasune
+/datum/sprite_accessory/mam_tails/lunasune
name = "lunasune"
icon_state = "lunasune"
ckeys_allowed = list("invader4352")
-/datum/sprite_accessory/tails_animated/mam_tails_animated/lunasune
+/datum/sprite_accessory/mam_tails_animated/lunasune
name = "lunasune"
icon_state = "lunasune"
ckeys_allowed = list("invader4352")
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm
index 4cb8d080ff..6514cb4f80 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm
@@ -76,9 +76,6 @@
//For soft-restricting markings to species IDs
var/list/recommended_species
-/datum/sprite_accessory/proc/is_not_visible(var/mob/living/carbon/human/H, var/tauric) //return if the accessory shouldn't be shown
- return FALSE
-
/datum/sprite_accessory/underwear
icon = 'icons/mob/clothing/underwear.dmi'
var/has_color = FALSE
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm b/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm
index 899bf91081..c8e7aca26d 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm
@@ -7,9 +7,6 @@
mutant_part_string = "xenodorsal"
relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
-/datum/sprite_accessory/xeno_dorsal/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- return (!H.dna.features["xenodorsal"] || H.dna.features["xenodorsal"] == "None" || (H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)))
-
/datum/sprite_accessory/xeno_dorsal/standard
name = "Standard"
icon_state = "standard"
@@ -30,9 +27,6 @@
mutant_part_string = "tail"
relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
-/datum/sprite_accessory/xeno_tail/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- return (!H.dna.features["xenotail"] || H.dna.features["xenotail"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
-
/datum/sprite_accessory/xeno_tail/none
name = "None"
relevant_layers = null
@@ -49,10 +43,6 @@
mutant_part_string = "xhead"
relevant_layers = list(BODY_ADJ_LAYER)
-/datum/sprite_accessory/xeno_head/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
- return (!H.dna.features["xenohead"] || H.dna.features["xenohead"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC)
-
/datum/sprite_accessory/xeno_head/standard
name = "Standard"
icon_state = "standard"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm
index a04838a360..9950f0d76a 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm
@@ -224,9 +224,6 @@
color_src = 0
relevant_layers = list(BODY_FRONT_LAYER)
-/datum/sprite_accessory/insect_fluff/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- return (!H.dna.features["insect_fluff"] || H.dna.features["insect_fluff"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
-
/datum/sprite_accessory/insect_fluff/none
name = "None"
icon_state = "none"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm
index 1e6c797364..bc269ccf62 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm
@@ -3,10 +3,6 @@
mutant_part_string = "ears"
relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
-/datum/sprite_accessory/ears/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
- return (!H.dna.features["ears"] || H.dna.features["ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || HD.status == BODYPART_ROBOTIC)
-
/datum/sprite_accessory/ears/none
name = "None"
icon_state = "none"
@@ -179,54 +175,50 @@
*************** Furry Ears ****************
*******************************************/
-/datum/sprite_accessory/ears/mam_ears
+/datum/sprite_accessory/mam_ears
icon = 'modular_citadel/icons/mob/mam_ears.dmi'
color_src = MATRIXED
mutant_part_string = "ears"
relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
-/datum/sprite_accessory/ears/mam_ears/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
- return (!H.dna.features["mam_ears"] || H.dna.features["mam_ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || HD.status == BODYPART_ROBOTIC)
-
-/datum/sprite_accessory/ears/mam_ears/none
+/datum/sprite_accessory/mam_ears/none
name = "None"
icon_state = "none"
relevant_layers = null
-/datum/sprite_accessory/ears/mam_ears/axolotl
+/datum/sprite_accessory/mam_ears/axolotl
name = "Axolotl"
icon_state = "axolotl"
-/datum/sprite_accessory/ears/mam_ears/bat
+/datum/sprite_accessory/mam_ears/bat
name = "Bat"
icon_state = "bat"
-/datum/sprite_accessory/ears/mam_ears/bear
+/datum/sprite_accessory/mam_ears/bear
name = "Bear"
icon_state = "bear"
-/datum/sprite_accessory/ears/mam_ears/bigwolf
+/datum/sprite_accessory/mam_ears/bigwolf
name = "Big Wolf"
icon_state = "bigwolf"
-/datum/sprite_accessory/ears/mam_ears/bigwolfinner
+/datum/sprite_accessory/mam_ears/bigwolfinner
name = "Big Wolf (ALT)"
icon_state = "bigwolfinner"
extra = TRUE
extra_color_src = NONE
-/datum/sprite_accessory/ears/mam_ears/bigwolfdark
+/datum/sprite_accessory/mam_ears/bigwolfdark
name = "Dark Big Wolf"
icon_state = "bigwolfdark"
-/datum/sprite_accessory/ears/mam_ears/bigwolfinnerdark
+/datum/sprite_accessory/mam_ears/bigwolfinnerdark
name = "Dark Big Wolf (ALT)"
icon_state = "bigwolfinnerdark"
extra = TRUE
extra_color_src = NONE
-/datum/sprite_accessory/ears/mam_ears/cat
+/datum/sprite_accessory/mam_ears/cat
name = "Cat"
icon_state = "cat"
icon = 'icons/mob/mutant_bodyparts.dmi'
@@ -234,100 +226,100 @@
extra = TRUE
extra_color_src = NONE
-/datum/sprite_accessory/ears/mam_ears/catbig
+/datum/sprite_accessory/mam_ears/catbig
name = "Cat, Big"
icon_state = "catbig"
-/datum/sprite_accessory/ears/mam_ears/cow
+/datum/sprite_accessory/mam_ears/cow
name = "Cow"
icon_state = "cow"
-/datum/sprite_accessory/ears/mam_ears/curled
+/datum/sprite_accessory/mam_ears/curled
name = "Curled Horn"
icon_state = "horn1"
color_src = MUTCOLORS3
-/datum/sprite_accessory/ears/mam_ears/deer
+/datum/sprite_accessory/mam_ears/deer
name = "Deer"
icon_state = "deer"
color_src = MUTCOLORS3
-/datum/sprite_accessory/ears/mam_ears/eevee
+/datum/sprite_accessory/mam_ears/eevee
name = "Eevee"
icon_state = "eevee"
-/datum/sprite_accessory/ears/mam_ears/elf
+/datum/sprite_accessory/mam_ears/elf
name = "Elf"
icon_state = "elf"
color_src = MUTCOLORS3
-/datum/sprite_accessory/ears/mam_ears/elephant
+/datum/sprite_accessory/mam_ears/elephant
name = "Elephant"
icon_state = "elephant"
-/datum/sprite_accessory/ears/mam_ears/fennec
+/datum/sprite_accessory/mam_ears/fennec
name = "Fennec"
icon_state = "fennec"
-/datum/sprite_accessory/ears/mam_ears/fish
+/datum/sprite_accessory/mam_ears/fish
name = "Fish"
icon_state = "fish"
-/datum/sprite_accessory/ears/mam_ears/fox
+/datum/sprite_accessory/mam_ears/fox
name = "Fox"
icon_state = "fox"
-/datum/sprite_accessory/ears/mam_ears/husky
+/datum/sprite_accessory/mam_ears/husky
name = "Husky"
icon_state = "wolf"
-/datum/sprite_accessory/ears/mam_ears/kangaroo
+/datum/sprite_accessory/mam_ears/kangaroo
name = "kangaroo"
icon_state = "kangaroo"
-/datum/sprite_accessory/ears/mam_ears/jellyfish
+/datum/sprite_accessory/mam_ears/jellyfish
name = "Jellyfish"
icon_state = "jellyfish"
color_src = HAIR
-/datum/sprite_accessory/ears/mam_ears/lab
+/datum/sprite_accessory/mam_ears/lab
name = "Dog, Long"
icon_state = "lab"
-/datum/sprite_accessory/ears/mam_ears/murid
+/datum/sprite_accessory/mam_ears/murid
name = "Murid"
icon_state = "murid"
-/datum/sprite_accessory/ears/mam_ears/otie
+/datum/sprite_accessory/mam_ears/otie
name = "Otusian"
icon_state = "otie"
-/datum/sprite_accessory/ears/mam_ears/squirrel
+/datum/sprite_accessory/mam_ears/squirrel
name = "Squirrel"
icon_state = "squirrel"
-/datum/sprite_accessory/ears/mam_ears/pede
+/datum/sprite_accessory/mam_ears/pede
name = "Scolipede"
icon_state = "pede"
-/datum/sprite_accessory/ears/mam_ears/rabbit
+/datum/sprite_accessory/mam_ears/rabbit
name = "Rabbit"
icon_state = "rabbit"
-/datum/sprite_accessory/ears/mam_ears/sergal
+/datum/sprite_accessory/mam_ears/sergal
name = "Sergal"
icon_state = "sergal"
-/datum/sprite_accessory/ears/mam_ears/skunk
+/datum/sprite_accessory/mam_ears/skunk
name = "skunk"
icon_state = "skunk"
-/datum/sprite_accessory/ears/mam_ears/wolf
+/datum/sprite_accessory/mam_ears/wolf
name = "Wolf"
icon_state = "wolf"
-/datum/sprite_accessory/ears/mam_ears/bunny
+/datum/sprite_accessory/mam_ears/bunny
name = "Bunny"
icon_state = "bunny"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/frills.dm b/code/modules/mob/dead/new_player/sprite_accessories/frills.dm
index 18a76df116..0aaec309a4 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/frills.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/frills.dm
@@ -2,10 +2,6 @@
icon = 'icons/mob/mutant_bodyparts.dmi'
relevant_layers = list(BODY_ADJ_LAYER)
-/datum/sprite_accessory/frills/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
- return (!H.dna.features["frills"] || H.dna.features["frills"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || !HD || HD.status == BODYPART_ROBOTIC)
-
/datum/sprite_accessory/frills/none
name = "None"
icon_state = "none"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/horns.dm b/code/modules/mob/dead/new_player/sprite_accessories/horns.dm
index 3a65eaebfa..b39f48f858 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/horns.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/horns.dm
@@ -3,10 +3,6 @@
color_src = HORNCOLOR
relevant_layers = list(HORNS_LAYER)
-/datum/sprite_accessory/horns/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
- return (!H.dna.features["horns"] || H.dna.features["horns"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC)
-
/datum/sprite_accessory/horns/none
name = "None"
icon_state = "none"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm
index d41f5ace22..2ec6da2da8 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm
@@ -30,9 +30,6 @@
var/alt_taur_mode = NONE //Same as above.
var/hide_legs = USE_QUADRUPED_CLIP_MASK
-/datum/sprite_accessory/taur/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- return (!tauric || (H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)))
-
/datum/sprite_accessory/taur/New()
switch(hide_legs)
if(USE_QUADRUPED_CLIP_MASK)
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm b/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm
index 2e14a88f29..2c0db56ce4 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm
@@ -3,10 +3,6 @@
mutant_part_string = "snout"
relevant_layers = list(BODY_ADJ_LAYER, BODY_FRONT_LAYER)
-/datum/sprite_accessory/snouts/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
- return ((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || HD.status == BODYPART_ROBOTIC)
-
/datum/sprite_accessory/snouts/sharp
name = "Sharp"
icon_state = "sharp"
@@ -154,39 +150,35 @@
************** Mammal Snouts **************
*******************************************/
-/datum/sprite_accessory/snouts/mam_snouts
+/datum/sprite_accessory/mam_snouts
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_snouts.dmi'
recommended_species = list("mammal", "slimeperson", "insect", "podweak")
mutant_part_string = "snout"
relevant_layers = list(BODY_ADJ_LAYER, BODY_FRONT_LAYER)
-/datum/sprite_accessory/snouts/mam_snouts/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
- return ((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || HD.status == BODYPART_ROBOTIC)
-
-/datum/sprite_accessory/snouts/mam_snouts/none
+/datum/sprite_accessory/mam_snouts/none
name = "None"
icon_state = "none"
recommended_species = null
relevant_layers = null
-/datum/sprite_accessory/snouts/mam_snouts/bird
+/datum/sprite_accessory/mam_snouts/bird
name = "Beak"
icon_state = "bird"
-/datum/sprite_accessory/snouts/mam_snouts/bigbeak
+/datum/sprite_accessory/mam_snouts/bigbeak
name = "Big Beak"
icon_state = "bigbeak"
-/datum/sprite_accessory/snouts/mam_snouts/bug
+/datum/sprite_accessory/mam_snouts/bug
name = "Bug"
icon_state = "bug"
color_src = MUTCOLORS
extra2 = TRUE
extra2_color_src = MUTCOLORS3
-/datum/sprite_accessory/snouts/mam_snouts/elephant
+/datum/sprite_accessory/mam_snouts/elephant
name = "Elephant"
icon_state = "elephant"
extra = TRUE
@@ -202,92 +194,92 @@
name = "Mammal, Long"
icon_state = "lcanid"
-/datum/sprite_accessory/snouts/mam_snouts/lcanidalt
+/datum/sprite_accessory/mam_snouts/lcanidalt
name = "Mammal, Long ALT"
icon_state = "lcanidalt"
-/datum/sprite_accessory/snouts/mam_snouts/scanid
+/datum/sprite_accessory/mam_snouts/scanid
name = "Mammal, Short"
icon_state = "scanid"
-/datum/sprite_accessory/snouts/mam_snouts/scanidalt
+/datum/sprite_accessory/mam_snouts/scanidalt
name = "Mammal, Short ALT"
icon_state = "scanidalt"
-/datum/sprite_accessory/snouts/mam_snouts/scanidalt2
+/datum/sprite_accessory/mam_snouts/scanidalt2
name = "Mammal, Short ALT 2"
icon_state = "scanidalt2"
-/datum/sprite_accessory/snouts/mam_snouts/wolf
+/datum/sprite_accessory/mam_snouts/wolf
name = "Mammal, Thick"
icon_state = "wolf"
-/datum/sprite_accessory/snouts/mam_snouts/wolfalt
+/datum/sprite_accessory/mam_snouts/wolfalt
name = "Mammal, Thick ALT"
icon_state = "wolfalt"
-/datum/sprite_accessory/snouts/mam_snouts/redpanda
+/datum/sprite_accessory/mam_snouts/redpanda
name = "WahCoon"
icon_state = "wah"
-/datum/sprite_accessory/snouts/mam_snouts/redpandaalt
+/datum/sprite_accessory/mam_snouts/redpandaalt
name = "WahCoon ALT"
icon_state = "wahalt"
-/datum/sprite_accessory/snouts/mam_snouts/rhino
+/datum/sprite_accessory/mam_snouts/rhino
name = "Horn"
icon_state = "rhino"
extra = TRUE
extra = MUTCOLORS3
-/datum/sprite_accessory/snouts/mam_snouts/rodent
+/datum/sprite_accessory/mam_snouts/rodent
name = "Rodent"
icon_state = "rodent"
-/datum/sprite_accessory/snouts/mam_snouts/husky
+/datum/sprite_accessory/mam_snouts/husky
name = "Husky"
icon_state = "husky"
-/datum/sprite_accessory/snouts/mam_snouts/otie
+/datum/sprite_accessory/mam_snouts/otie
name = "Otie"
icon_state = "otie"
-/datum/sprite_accessory/snouts/mam_snouts/pede
+/datum/sprite_accessory/mam_snouts/pede
name = "Scolipede"
icon_state = "pede"
-/datum/sprite_accessory/snouts/mam_snouts/sergal
+/datum/sprite_accessory/mam_snouts/sergal
name = "Sergal"
icon_state = "sergal"
-/datum/sprite_accessory/snouts/mam_snouts/shark
+/datum/sprite_accessory/mam_snouts/shark
name = "Shark"
icon_state = "shark"
-/datum/sprite_accessory/snouts/mam_snouts/hshark
+/datum/sprite_accessory/mam_snouts/hshark
name = "hShark"
icon_state = "hshark"
-/datum/sprite_accessory/snouts/mam_snouts/toucan
+/datum/sprite_accessory/mam_snouts/toucan
name = "Toucan"
icon_state = "toucan"
-/datum/sprite_accessory/snouts/mam_snouts/sharp
+/datum/sprite_accessory/mam_snouts/sharp
name = "Sharp"
icon_state = "sharp"
color_src = MUTCOLORS
-/datum/sprite_accessory/snouts/mam_snouts/round
+/datum/sprite_accessory/mam_snouts/round
name = "Round"
icon_state = "round"
color_src = MUTCOLORS
-/datum/sprite_accessory/snouts/mam_snouts/sharplight
+/datum/sprite_accessory/mam_snouts/sharplight
name = "Sharp + Light"
icon_state = "sharplight"
color_src = MUTCOLORS
-/datum/sprite_accessory/snouts/mam_snouts/roundlight
+/datum/sprite_accessory/mam_snouts/roundlight
name = "Round + Light"
icon_state = "roundlight"
color_src = MUTCOLORS
@@ -297,109 +289,109 @@
**************** Snouts *******************
*************but higher up*****************/
-/datum/sprite_accessory/snouts/mam_snouts/fbird
+/datum/sprite_accessory/mam_snouts/fbird
name = "Beak (Top)"
icon_state = "fbird"
-/datum/sprite_accessory/snouts/mam_snouts/fbigbeak
+/datum/sprite_accessory/mam_snouts/fbigbeak
name = "Big Beak (Top)"
icon_state = "fbigbeak"
-/datum/sprite_accessory/snouts/mam_snouts/fbug
+/datum/sprite_accessory/mam_snouts/fbug
name = "Bug (Top)"
icon_state = "fbug"
color_src = MUTCOLORS
extra2 = TRUE
extra2_color_src = MUTCOLORS3
-/datum/sprite_accessory/snouts/mam_snouts/felephant
+/datum/sprite_accessory/mam_snouts/felephant
name = "Elephant (Top)"
icon_state = "felephant"
extra = TRUE
extra_color_src = MUTCOLORS3
-/datum/sprite_accessory/snouts/mam_snouts/flcanid
+/datum/sprite_accessory/mam_snouts/flcanid
name = "Mammal, Long (Top)"
icon_state = "flcanid"
-/datum/sprite_accessory/snouts/mam_snouts/flcanidalt
+/datum/sprite_accessory/mam_snouts/flcanidalt
name = "Mammal, Long ALT (Top)"
icon_state = "flcanidalt"
-/datum/sprite_accessory/snouts/mam_snouts/fscanid
+/datum/sprite_accessory/mam_snouts/fscanid
name = "Mammal, Short (Top)"
icon_state = "fscanid"
-/datum/sprite_accessory/snouts/mam_snouts/fscanidalt
+/datum/sprite_accessory/mam_snouts/fscanidalt
name = "Mammal, Short ALT (Top)"
icon_state = "fscanidalt"
-/datum/sprite_accessory/snouts/mam_snouts/fscanidalt2
+/datum/sprite_accessory/mam_snouts/fscanidalt2
name = "Mammal, Short ALT 2 (Top)"
icon_state = "fscanidalt2"
-/datum/sprite_accessory/snouts/mam_snouts/fwolf
+/datum/sprite_accessory/mam_snouts/fwolf
name = "Mammal, Thick (Top)"
icon_state = "fwolf"
-/datum/sprite_accessory/snouts/mam_snouts/fwolfalt
+/datum/sprite_accessory/mam_snouts/fwolfalt
name = "Mammal, Thick ALT (Top)"
icon_state = "fwolfalt"
-/datum/sprite_accessory/snouts/mam_snouts/fredpanda
+/datum/sprite_accessory/mam_snouts/fredpanda
name = "WahCoon (Top)"
icon_state = "fwah"
-/datum/sprite_accessory/snouts/mam_snouts/frhino
+/datum/sprite_accessory/mam_snouts/frhino
name = "Horn (Top)"
icon_state = "frhino"
extra = TRUE
extra = MUTCOLORS3
-/datum/sprite_accessory/snouts/mam_snouts/frodent
+/datum/sprite_accessory/mam_snouts/frodent
name = "Rodent (Top)"
icon_state = "frodent"
-/datum/sprite_accessory/snouts/mam_snouts/fhusky
+/datum/sprite_accessory/mam_snouts/fhusky
name = "Husky (Top)"
icon_state = "fhusky"
-/datum/sprite_accessory/snouts/mam_snouts/fotie
+/datum/sprite_accessory/mam_snouts/fotie
name = "Otie (Top)"
icon_state = "fotie"
-/datum/sprite_accessory/snouts/mam_snouts/fpede
+/datum/sprite_accessory/mam_snouts/fpede
name = "Scolipede (Top)"
icon_state = "fpede"
-/datum/sprite_accessory/snouts/mam_snouts/fsergal
+/datum/sprite_accessory/mam_snouts/fsergal
name = "Sergal (Top)"
icon_state = "fsergal"
-/datum/sprite_accessory/snouts/mam_snouts/fshark
+/datum/sprite_accessory/mam_snouts/fshark
name = "Shark (Top)"
icon_state = "fshark"
-/datum/sprite_accessory/snouts/mam_snouts/ftoucan
+/datum/sprite_accessory/mam_snouts/ftoucan
name = "Toucan (Top)"
icon_state = "ftoucan"
-/datum/sprite_accessory/snouts/mam_snouts/fsharp
+/datum/sprite_accessory/mam_snouts/fsharp
name = "Sharp (Top)"
icon_state = "fsharp"
color_src = MUTCOLORS
-/datum/sprite_accessory/snouts/mam_snouts/fround
+/datum/sprite_accessory/mam_snouts/fround
name = "Round (Top)"
icon_state = "fround"
color_src = MUTCOLORS
-/datum/sprite_accessory/snouts/mam_snouts/fsharplight
+/datum/sprite_accessory/mam_snouts/fsharplight
name = "Sharp + Light (Top)"
icon_state = "fsharplight"
color_src = MUTCOLORS
-/datum/sprite_accessory/snouts/mam_snouts/froundlight
+/datum/sprite_accessory/mam_snouts/froundlight
name = "Round + Light (Top)"
icon_state = "froundlight"
color_src = MUTCOLORS
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/spines.dm b/code/modules/mob/dead/new_player/sprite_accessories/spines.dm
index 53a5650a05..54749d5ea9 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/spines.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/spines.dm
@@ -2,15 +2,10 @@
icon = 'icons/mob/mutant_bodyparts.dmi'
relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER)
-/datum/sprite_accessory/spines/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- return (!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR))
-
/datum/sprite_accessory/spines_animated
icon = 'icons/mob/mutant_bodyparts.dmi'
relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER)
-/datum/sprite_accessory/spines_animated/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- return (!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR) || H.dna.species.mutant_bodyparts["tail"])
/datum/sprite_accessory/spines/none
name = "None"
icon_state = "none"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm b/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm
index 16531d8f06..a2884ab944 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm
@@ -1,24 +1,24 @@
//Synth snouts (This is the most important part)
-/datum/sprite_accessory/snouts/mam_snouts/synthliz
+/datum/sprite_accessory/mam_snouts/synthliz
recommended_species = list("synthliz")
icon = 'modular_citadel/icons/mob/synthliz_snouts.dmi'
color_src = MUTCOLORS
name = "Synthetic Lizard - Snout"
icon_state = "synthliz_basic"
-/datum/sprite_accessory/snouts/mam_snouts/synthliz/synthliz_under
+/datum/sprite_accessory/mam_snouts/synthliz/synthliz_under
icon = 'modular_citadel/icons/mob/synthliz_snouts.dmi'
color_src = MATRIXED
name = "Synthetic Lizard - Snout Under"
icon_state = "synthliz_under"
-/datum/sprite_accessory/snouts/mam_snouts/synthliz/synthliz_tert
+/datum/sprite_accessory/mam_snouts/synthliz/synthliz_tert
icon = 'modular_citadel/icons/mob/synthliz_snouts.dmi'
color_src = MATRIXED
name = "Synthetic Lizard - Snout Tertiary"
icon_state = "synthliz_tert"
-/datum/sprite_accessory/snouts/mam_snouts/synthliz/synthliz_tertunder
+/datum/sprite_accessory/mam_snouts/synthliz/synthliz_tertunder
icon = 'modular_citadel/icons/mob/synthliz_snouts.dmi'
color_src = MATRIXED
name = "Synthetic Lizard - Snout Tertiary Under"
@@ -42,14 +42,14 @@
icon_state = "synthlizpecslight"
//Synth tails
-/datum/sprite_accessory/tails/mam_tails/synthliz
+/datum/sprite_accessory/mam_tails/synthliz
recommended_species = list("synthliz")
icon = 'modular_citadel/icons/mob/synthliz_tails.dmi'
color_src = MUTCOLORS
name = "Synthetic Lizard"
icon_state = "synthliz"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/synthliz
+/datum/sprite_accessory/mam_tails_animated/synthliz
recommended_species = list("synthliz")
icon = 'modular_citadel/icons/mob/synthliz_tails.dmi'
color_src = MUTCOLORS
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm
index 0afbeaf070..33dbd7059f 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm
@@ -3,9 +3,6 @@
mutant_part_string = "tail"
relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
-/datum/sprite_accessory/tails/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- return ((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric)
-
/datum/sprite_accessory/tails_animated
icon = 'icons/mob/mutant_bodyparts.dmi'
mutant_part_string = "tailwag"
@@ -15,9 +12,6 @@
************* Lizard Tails ****************
*******************************************/
-/datum/sprite_accessory/tails_animated/lizard/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- return ((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric || H.dna.species.mutant_bodyparts["tail_lizard"])
-
/datum/sprite_accessory/tails/lizard/smooth
name = "Smooth"
icon_state = "smooth"
@@ -104,9 +98,6 @@
icon_state = "none"
relevant_layers = null
-/datum/sprite_accessory/tails_animated/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- return ((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric || H.dna.species.mutant_bodyparts["tail_human"])
-
/datum/sprite_accessory/tails/human/ailurus
name = "Red Panda"
icon_state = "wah"
@@ -131,22 +122,22 @@
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
-/datum/sprite_accessory/tails/mam_tails/batl
+/datum/sprite_accessory/mam_tails/batl
name = "Bat (Long)"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
icon_state = "batl"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/batl
+/datum/sprite_accessory/mam_tails_animated/batl
name = "Bat (Long)"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
icon_state = "batl"
-/datum/sprite_accessory/tails/mam_tails/bats
+/datum/sprite_accessory/mam_tails/bats
name = "Bat (Short)"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
icon_state = "bats"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/bats
+/datum/sprite_accessory/mam_tails_animated/bats
name = "Bat (Short)"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
icon_state = "bats"
@@ -527,371 +518,368 @@
************** Furry Tails ****************
*******************************************/
-/datum/sprite_accessory/tails/mam_tails
+/datum/sprite_accessory/mam_tails
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
recommended_species = list("mammal", "slimeperson", "podweak", "felinid", "insect")
mutant_part_string = "tail"
relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
-/datum/sprite_accessory/tails/mam_tails/none
+/datum/sprite_accessory/mam_tails/none
name = "None"
icon_state = "none"
recommended_species = null
relevant_layers = null
-/datum/sprite_accessory/tails_animated/mam_tails_animated
+/datum/sprite_accessory/mam_tails_animated
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
mutant_part_string = "tailwag"
relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER)
-/datum/sprite_accessory/tails_animated/mam_tails_animated/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- return ((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric || H.dna.species.mutant_bodyparts["mam_tail"])
-
-/datum/sprite_accessory/tails_animated/mam_tails_animated/none
+/datum/sprite_accessory/mam_tails_animated/none
name = "None"
icon_state = "none"
relevant_layers = null
-/datum/sprite_accessory/tails/mam_tails/ailurus
+/datum/sprite_accessory/mam_tails/ailurus
name = "Red Panda"
icon_state = "wah"
extra = TRUE
-/datum/sprite_accessory/tails_animated/mam_tails_animated/ailurus
+/datum/sprite_accessory/mam_tails_animated/ailurus
name = "Red Panda"
icon_state = "wah"
extra = TRUE
-/datum/sprite_accessory/tails/mam_tails/axolotl
+/datum/sprite_accessory/mam_tails/axolotl
name = "Axolotl"
icon_state = "axolotl"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/axolotl
+/datum/sprite_accessory/mam_tails_animated/axolotl
name = "Axolotl"
icon_state = "axolotl"
-/datum/sprite_accessory/tails/mam_tails/batl
+/datum/sprite_accessory/mam_tails/batl
name = "Bat (Long)"
icon_state = "batl"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/batl
+/datum/sprite_accessory/mam_tails_animated/batl
name = "Bat (Long)"
icon_state = "batl"
-/datum/sprite_accessory/tails/mam_tails/bats
+/datum/sprite_accessory/mam_tails/bats
name = "Bat (Short)"
icon_state = "bats"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/bats
+/datum/sprite_accessory/mam_tails_animated/bats
name = "Bat (Short)"
icon_state = "bats"
-/datum/sprite_accessory/tails/mam_tails/bee
+/datum/sprite_accessory/mam_tails/bee
name = "Bee"
icon_state = "bee"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/bee
+/datum/sprite_accessory/mam_tails_animated/bee
name = "Bee"
icon_state = "bee"
-/datum/sprite_accessory/tails/mam_tails/cat
+/datum/sprite_accessory/mam_tails/cat
name = "Cat"
icon_state = "cat"
color_src = HAIR
-/datum/sprite_accessory/tails_animated/mam_tails_animated/cat
+/datum/sprite_accessory/mam_tails_animated/cat
name = "Cat"
icon_state = "cat"
color_src = HAIR
-/datum/sprite_accessory/tails/mam_tails/catbig
+/datum/sprite_accessory/mam_tails/catbig
name = "Cat, Big"
icon_state = "catbig"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/catbig
+/datum/sprite_accessory/mam_tails_animated/catbig
name = "Cat, Big"
icon_state = "catbig"
-/datum/sprite_accessory/tails/mam_tails/twocat
+/datum/sprite_accessory/mam_tails/twocat
name = "Cat, Double"
icon_state = "twocat"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/twocat
+/datum/sprite_accessory/mam_tails_animated/twocat
name = "Cat, Double"
icon_state = "twocat"
-/datum/sprite_accessory/tails/mam_tails/corvid
+/datum/sprite_accessory/mam_tails/corvid
name = "Corvid"
icon_state = "crow"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/corvid
+/datum/sprite_accessory/mam_tails_animated/corvid
name = "Corvid"
icon_state = "crow"
-/datum/sprite_accessory/tails/mam_tail/cow
+/datum/sprite_accessory/mam_tail/cow
name = "Cow"
icon_state = "cow"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/cow
+/datum/sprite_accessory/mam_tails_animated/cow
name = "Cow"
icon_state = "cow"
-/datum/sprite_accessory/tails/mam_tails/eevee
+/datum/sprite_accessory/mam_tails/eevee
name = "Eevee"
icon_state = "eevee"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/eevee
+/datum/sprite_accessory/mam_tails_animated/eevee
name = "Eevee"
icon_state = "eevee"
-/datum/sprite_accessory/tails/mam_tails/fennec
+/datum/sprite_accessory/mam_tails/fennec
name = "Fennec"
icon_state = "fennec"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/fennec
+/datum/sprite_accessory/mam_tails_animated/fennec
name = "Fennec"
icon_state = "fennec"
-/datum/sprite_accessory/tails/mam_tails/human/fish
+/datum/sprite_accessory/mam_tails/human/fish
name = "Fish"
icon_state = "fish"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/human/fish
+/datum/sprite_accessory/mam_tails_animated/human/fish
name = "Fish"
icon_state = "fish"
-/datum/sprite_accessory/tails/mam_tails/fox
+/datum/sprite_accessory/mam_tails/fox
name = "Fox"
icon_state = "fox"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/fox
+/datum/sprite_accessory/mam_tails_animated/fox
name = "Fox"
icon_state = "fox"
-/datum/sprite_accessory/tails/mam_tails/hawk
+/datum/sprite_accessory/mam_tails/hawk
name = "Hawk"
icon_state = "hawk"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/hawk
+/datum/sprite_accessory/mam_tails_animated/hawk
name = "Hawk"
icon_state = "hawk"
-/datum/sprite_accessory/tails/mam_tails/horse
+/datum/sprite_accessory/mam_tails/horse
name = "Horse"
icon_state = "horse"
color_src = HAIR
-/datum/sprite_accessory/tails_animated/mam_tails_animated/horse
+/datum/sprite_accessory/mam_tails_animated/horse
name = "Horse"
icon_state = "horse"
color_src = HAIR
-/datum/sprite_accessory/tails/mam_tails/husky
+/datum/sprite_accessory/mam_tails/husky
name = "Husky"
icon_state = "husky"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/husky
+/datum/sprite_accessory/mam_tails_animated/husky
name = "Husky"
icon_state = "husky"
-datum/sprite_accessory/tails/mam_tails/insect
+datum/sprite_accessory/mam_tails/insect
name = "Insect"
icon_state = "insect"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/insect
+/datum/sprite_accessory/mam_tails_animated/insect
name = "Insect"
icon_state = "insect"
-/datum/sprite_accessory/tails/mam_tails/kangaroo
+/datum/sprite_accessory/mam_tails/kangaroo
name = "kangaroo"
icon_state = "kangaroo"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/kangaroo
+/datum/sprite_accessory/mam_tails_animated/kangaroo
name = "kangaroo"
icon_state = "kangaroo"
-/datum/sprite_accessory/tails/mam_tails/kitsune
+/datum/sprite_accessory/mam_tails/kitsune
name = "Kitsune"
icon_state = "kitsune"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/kitsune
+/datum/sprite_accessory/mam_tails_animated/kitsune
name = "Kitsune"
icon_state = "kitsune"
-/datum/sprite_accessory/tails/mam_tails/lab
+/datum/sprite_accessory/mam_tails/lab
name = "Lab"
icon_state = "lab"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/lab
+/datum/sprite_accessory/mam_tails_animated/lab
name = "Lab"
icon_state = "lab"
-/datum/sprite_accessory/tails/mam_tails/murid
+/datum/sprite_accessory/mam_tails/murid
name = "Murid"
icon_state = "murid"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/murid
+/datum/sprite_accessory/mam_tails_animated/murid
name = "Murid"
icon_state = "murid"
-/datum/sprite_accessory/tails/mam_tails/otie
+/datum/sprite_accessory/mam_tails/otie
name = "Otusian"
icon_state = "otie"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/otie
+/datum/sprite_accessory/mam_tails_animated/otie
name = "Otusian"
icon_state = "otie"
-/datum/sprite_accessory/tails/mam_tails/orca
+/datum/sprite_accessory/mam_tails/orca
name = "Orca"
icon_state = "orca"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/orca
+/datum/sprite_accessory/mam_tails_animated/orca
name = "Orca"
icon_state = "orca"
-/datum/sprite_accessory/tails/mam_tails/pede
+/datum/sprite_accessory/mam_tails/pede
name = "Scolipede"
icon_state = "pede"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/pede
+/datum/sprite_accessory/mam_tails_animated/pede
name = "Scolipede"
icon_state = "pede"
-/datum/sprite_accessory/tails/mam_tails/rabbit
+/datum/sprite_accessory/mam_tails/rabbit
name = "Rabbit"
icon_state = "rabbit"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/rabbit
+/datum/sprite_accessory/mam_tails_animated/rabbit
name = "Rabbit"
icon_state = "rabbit"
-/datum/sprite_accessory/tails/mam_tails/sergal
+/datum/sprite_accessory/mam_tails/sergal
name = "Sergal"
icon_state = "sergal"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/sergal
+/datum/sprite_accessory/mam_tails_animated/sergal
name = "Sergal"
icon_state = "sergal"
-/datum/sprite_accessory/tails/mam_tails/skunk
+/datum/sprite_accessory/mam_tails/skunk
name = "Skunk"
icon_state = "skunk"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/skunk
+/datum/sprite_accessory/mam_tails_animated/skunk
name = "Skunk"
icon_state = "skunk"
-/datum/sprite_accessory/tails/mam_tails/smooth
+/datum/sprite_accessory/mam_tails/smooth
name = "Smooth"
icon_state = "smooth"
color_src = MUTCOLORS
icon = 'icons/mob/mutant_bodyparts.dmi'
-/datum/sprite_accessory/tails_animated/mam_tails_animated/smooth
+/datum/sprite_accessory/mam_tails_animated/smooth
name = "Smooth"
icon_state = "smooth"
color_src = MUTCOLORS
icon = 'icons/mob/mutant_bodyparts.dmi'
-/datum/sprite_accessory/tails_animated/mam_tails_animated/spikes
+/datum/sprite_accessory/mam_tails_animated/spikes
name = "Spikes"
icon_state = "spikes"
color_src = MUTCOLORS
icon = 'icons/mob/mutant_bodyparts.dmi'
-/datum/sprite_accessory/tails/mam_tails/spikes
+/datum/sprite_accessory/mam_tails/spikes
name = "Spikes"
icon_state = "spikes"
color_src = MUTCOLORS
icon = 'icons/mob/mutant_bodyparts.dmi'
-/datum/sprite_accessory/tails/mam_tails/shark
+/datum/sprite_accessory/mam_tails/shark
name = "Shark"
icon_state = "shark"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/shark
+/datum/sprite_accessory/mam_tails_animated/shark
name = "Shark"
icon_state = "shark"
-/datum/sprite_accessory/tails/mam_tails/shepherd
+/datum/sprite_accessory/mam_tails/shepherd
name = "Shepherd"
icon_state = "shepherd"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/shepherd
+/datum/sprite_accessory/mam_tails_animated/shepherd
name = "Shepherd"
icon_state = "shepherd"
-/datum/sprite_accessory/tails/mam_tails/straighttail
+/datum/sprite_accessory/mam_tails/straighttail
name = "Straight Tail"
icon_state = "straighttail"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/straighttail
+/datum/sprite_accessory/mam_tails_animated/straighttail
name = "Straight Tail"
icon_state = "straighttail"
-/datum/sprite_accessory/tails/mam_tails/squirrel
+/datum/sprite_accessory/mam_tails/squirrel
name = "Squirrel"
icon_state = "squirrel"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/squirrel
+/datum/sprite_accessory/mam_tails_animated/squirrel
name = "Squirrel"
icon_state = "squirrel"
-/datum/sprite_accessory/tails/mam_tails/tamamo_kitsune
+/datum/sprite_accessory/mam_tails/tamamo_kitsune
name = "Tamamo Kitsune Tails"
icon_state = "9sune"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/tamamo_kitsune
+/datum/sprite_accessory/mam_tails_animated/tamamo_kitsune
name = "Tamamo Kitsune Tails"
icon_state = "9sune"
-/datum/sprite_accessory/tails/mam_tails/tentacle
+/datum/sprite_accessory/mam_tails/tentacle
name = "Tentacle"
icon_state = "tentacle"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/tentacle
+/datum/sprite_accessory/mam_tails_animated/tentacle
name = "Tentacle"
icon_state = "tentacle"
-/datum/sprite_accessory/tails/mam_tails/tiger
+/datum/sprite_accessory/mam_tails/tiger
name = "Tiger"
icon_state = "tiger"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/tiger
+/datum/sprite_accessory/mam_tails_animated/tiger
name = "Tiger"
icon_state = "tiger"
-/datum/sprite_accessory/tails/mam_tails/dtiger
+/datum/sprite_accessory/mam_tails/dtiger
name = "Dark Tiger"
icon_state = "dtiger"
color_src = MUTCOLORS
icon = 'icons/mob/mutant_bodyparts.dmi'
-/datum/sprite_accessory/tails_animated/mam_tails_animated/dtiger
+/datum/sprite_accessory/mam_tails_animated/dtiger
name = "Dark Tiger"
icon_state = "dtiger"
color_src = MUTCOLORS
icon = 'icons/mob/mutant_bodyparts.dmi'
-/datum/sprite_accessory/tails/mam_tails/ltiger
+/datum/sprite_accessory/mam_tails/ltiger
name = "Light Tiger"
icon_state = "ltiger"
color_src = MUTCOLORS
icon = 'icons/mob/mutant_bodyparts.dmi'
-/datum/sprite_accessory/tails_animated/mam_tails_animated/ltiger
+/datum/sprite_accessory/mam_tails_animated/ltiger
name = "Light Tiger"
icon_state = "ltiger"
color_src = MUTCOLORS
icon = 'icons/mob/mutant_bodyparts.dmi'
-/datum/sprite_accessory/tails/mam_tails/wolf
+/datum/sprite_accessory/mam_tails/wolf
name = "Wolf"
icon_state = "wolf"
-/datum/sprite_accessory/tails_animated/mam_tails_animated/wolf
+/datum/sprite_accessory/mam_tails_animated/wolf
name = "Wolf"
icon_state = "wolf"
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm
index fb03df88a1..34767a10f1 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm
@@ -5,16 +5,10 @@
icon_state = "none"
relevant_layers = null
-/datum/sprite_accessory/wings/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- return (!H.dna.features["wings"] || H.dna.features["wings"] == "None" || (H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception))))
-
/datum/sprite_accessory/wings_open
icon = 'icons/mob/wings.dmi'
relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
-/datum/sprite_accessory/wings_open/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
- return (H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception)) || H.dna.species.mutant_bodyparts["wings"])
-
/datum/sprite_accessory/wings_open/angel
name = "Angel"
icon_state = "angel"
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index ee1ebe4506..df049f672d 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -642,15 +642,106 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(!mutant_bodyparts)
return
+ var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
var/tauric = mutant_bodyparts["taur"] && H.dna.features["taur"] && H.dna.features["taur"] != "None"
- for(var/mutant_part in mutant_bodyparts)
- var/reference_list = GLOB.mutant_reference_list[mutant_part]
- if(reference_list)
- var/datum/sprite_accessory/S
- S = reference_list[H.dna.features[mutant_part]]
- if(!S || S.is_not_visible(H, tauric))
- bodyparts_to_add -= mutant_part
+ if(mutant_bodyparts["tail_lizard"])
+ if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric)
+ bodyparts_to_add -= "tail_lizard"
+
+ if(mutant_bodyparts["waggingtail_lizard"])
+ if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric)
+ bodyparts_to_add -= "waggingtail_lizard"
+ else if (mutant_bodyparts["tail_lizard"])
+ bodyparts_to_add -= "waggingtail_lizard"
+
+ if(mutant_bodyparts["tail_human"])
+ if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric)
+ bodyparts_to_add -= "tail_human"
+
+ if(mutant_bodyparts["waggingtail_human"])
+ if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric)
+ bodyparts_to_add -= "waggingtail_human"
+ else if (mutant_bodyparts["tail_human"])
+ bodyparts_to_add -= "waggingtail_human"
+
+ if(mutant_bodyparts["spines"])
+ if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR))
+ bodyparts_to_add -= "spines"
+
+ if(mutant_bodyparts["waggingspines"])
+ if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR))
+ bodyparts_to_add -= "waggingspines"
+ else if (mutant_bodyparts["tail"])
+ bodyparts_to_add -= "waggingspines"
+
+ if(mutant_bodyparts["snout"]) //Take a closer look at that snout!
+ if((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || HD.status == BODYPART_ROBOTIC)
+ bodyparts_to_add -= "snout"
+
+ if(mutant_bodyparts["frills"])
+ if(!H.dna.features["frills"] || H.dna.features["frills"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || !HD || HD.status == BODYPART_ROBOTIC)
+ bodyparts_to_add -= "frills"
+
+ if(mutant_bodyparts["horns"])
+ if(!H.dna.features["horns"] || H.dna.features["horns"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC)
+ bodyparts_to_add -= "horns"
+
+ if(mutant_bodyparts["ears"])
+ if(!H.dna.features["ears"] || H.dna.features["ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || HD.status == BODYPART_ROBOTIC)
+ bodyparts_to_add -= "ears"
+
+ if(mutant_bodyparts["wings"])
+ if(!H.dna.features["wings"] || H.dna.features["wings"] == "None" || (H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception))))
+ bodyparts_to_add -= "wings"
+
+ if(mutant_bodyparts["wings_open"])
+ if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception)))
+ bodyparts_to_add -= "wings_open"
+ else if (mutant_bodyparts["wings"])
+ bodyparts_to_add -= "wings_open"
+
+ if(mutant_bodyparts["insect_fluff"])
+ if(!H.dna.features["insect_fluff"] || H.dna.features["insect_fluff"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
+ bodyparts_to_add -= "insect_fluff"
+
+//CITADEL EDIT
+ //Race specific bodyparts:
+ //Xenos
+ if(mutant_bodyparts["xenodorsal"])
+ if(!H.dna.features["xenodorsal"] || H.dna.features["xenodorsal"] == "None" || (H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)))
+ bodyparts_to_add -= "xenodorsal"
+ if(mutant_bodyparts["xenohead"])//This is an overlay for different castes using different head crests
+ if(!H.dna.features["xenohead"] || H.dna.features["xenohead"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC)
+ bodyparts_to_add -= "xenohead"
+ if(mutant_bodyparts["xenotail"])
+ if(!H.dna.features["xenotail"] || H.dna.features["xenotail"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
+ bodyparts_to_add -= "xenotail"
+
+ //Other Races
+ if(mutant_bodyparts["mam_tail"])
+ if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric)
+ bodyparts_to_add -= "mam_tail"
+
+ if(mutant_bodyparts["mam_waggingtail"])
+ if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric)
+ bodyparts_to_add -= "mam_waggingtail"
+ else if (mutant_bodyparts["mam_tail"])
+ bodyparts_to_add -= "mam_waggingtail"
+
+ if(mutant_bodyparts["mam_ears"])
+ if(!H.dna.features["mam_ears"] || H.dna.features["mam_ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || HD.status == BODYPART_ROBOTIC)
+ bodyparts_to_add -= "mam_ears"
+
+ if(mutant_bodyparts["mam_snouts"]) //Take a closer look at that snout!
+ if((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || HD.status == BODYPART_ROBOTIC)
+ bodyparts_to_add -= "mam_snouts"
+
+ if(mutant_bodyparts["taur"])
+ if(!tauric || (H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)))
+ bodyparts_to_add -= "taur"
+
+//END EDIT
//Digitigrade legs are stuck in the phantom zone between true limbs and mutant bodyparts. Mainly it just needs more agressive updating than most limbs.
var/update_needed = FALSE
@@ -687,18 +778,76 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
var/list/dna_feature_as_text_string = list()
for(var/bodypart in bodyparts_to_add)
- var/reference_list = GLOB.mutant_reference_list[bodypart]
- if(reference_list)
- var/datum/sprite_accessory/S
- S = reference_list[H.dna.features[bodypart]]
+ var/datum/sprite_accessory/S
+ switch(bodypart)
+ if("tail_lizard")
+ S = GLOB.tails_list_lizard[H.dna.features["tail_lizard"]]
+ if("waggingtail_lizard")
+ S = GLOB.animated_tails_list_lizard[H.dna.features["tail_lizard"]]
+ if("tail_human")
+ S = GLOB.tails_list_human[H.dna.features["tail_human"]]
+ if("waggingtail_human")
+ S = GLOB.animated_tails_list_human[H.dna.features["tail_human"]]
+ if("spines")
+ S = GLOB.spines_list[H.dna.features["spines"]]
+ if("waggingspines")
+ S = GLOB.animated_spines_list[H.dna.features["spines"]]
+ if("snout")
+ S = GLOB.snouts_list[H.dna.features["snout"]]
+ if("frills")
+ S = GLOB.frills_list[H.dna.features["frills"]]
+ if("horns")
+ S = GLOB.horns_list[H.dna.features["horns"]]
+ if("ears")
+ S = GLOB.ears_list[H.dna.features["ears"]]
+ if("body_markings")
+ S = GLOB.body_markings_list[H.dna.features["body_markings"]]
+ if("wings")
+ S = GLOB.wings_list[H.dna.features["wings"]]
+ if("wingsopen")
+ S = GLOB.wings_open_list[H.dna.features["wings"]]
+ if("deco_wings")
+ S = GLOB.deco_wings_list[H.dna.features["deco_wings"]]
+ if("legs")
+ S = GLOB.legs_list[H.dna.features["legs"]]
+ if("insect_wings")
+ S = GLOB.insect_wings_list[H.dna.features["insect_wings"]]
+ if("insect_fluff")
+ S = GLOB.insect_fluffs_list[H.dna.features["insect_fluff"]]
+ if("insect_markings")
+ S = GLOB.insect_markings_list[H.dna.features["insect_markings"]]
+ if("caps")
+ S = GLOB.caps_list[H.dna.features["caps"]]
+ if("ipc_screen")
+ S = GLOB.ipc_screens_list[H.dna.features["ipc_screen"]]
+ if("ipc_antenna")
+ S = GLOB.ipc_antennas_list[H.dna.features["ipc_antenna"]]
+ if("mam_tail")
+ S = GLOB.mam_tails_list[H.dna.features["mam_tail"]]
+ if("mam_waggingtail")
+ S = GLOB.mam_tails_animated_list[H.dna.features["mam_tail"]]
+ if("mam_body_markings")
+ S = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]]
+ if("mam_ears")
+ S = GLOB.mam_ears_list[H.dna.features["mam_ears"]]
+ if("mam_snouts")
+ S = GLOB.mam_snouts_list[H.dna.features["mam_snouts"]]
+ if("taur")
+ S = GLOB.taur_list[H.dna.features["taur"]]
+ if("xenodorsal")
+ S = GLOB.xeno_dorsal_list[H.dna.features["xenodorsal"]]
+ if("xenohead")
+ S = GLOB.xeno_head_list[H.dna.features["xenohead"]]
+ if("xenotail")
+ S = GLOB.xeno_tail_list[H.dna.features["xenotail"]]
- if(!S || S.icon_state == "none")
- continue
+ if(!S || S.icon_state == "none")
+ continue
- for(var/L in S.relevant_layers)
- LAZYADD(relevant_layers["[L]"], S)
- if(!S.mutant_part_string)
- dna_feature_as_text_string[S] = bodypart
+ for(var/L in S.relevant_layers)
+ LAZYADD(relevant_layers["[L]"], S)
+ if(!S.mutant_part_string)
+ dna_feature_as_text_string[S] = bodypart
var/static/list/layer_text = list(
"[BODY_BEHIND_LAYER]" = "BEHIND",
@@ -1897,8 +2046,17 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
return
/**
+
+
+
* The human species version of [/mob/living/carbon/proc/get_biological_state]. Depends on the HAS_FLESH and HAS_BONE species traits, having bones lets you have bone wounds, having flesh lets you have burn, slash, and piercing wounds
+
+
+
*/
+
+
+
/datum/species/proc/get_biological_state(mob/living/carbon/human/H)
. = BIO_INORGANIC
if(HAS_FLESH in species_traits)
@@ -1914,6 +2072,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(HAS_TRAIT(H, TRAIT_NOBREATH))
return TRUE
+
/datum/species/proc/handle_environment(datum/gas_mixture/environment, mob/living/carbon/human/H)
if(!environment)
return
@@ -2105,6 +2264,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
/datum/species/proc/spec_stun(mob/living/carbon/human/H,amount)
if(H)
stop_wagging_tail(H)
+
. = stunmod * H.physiology.stun_mod * amount
//////////////
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index 49c55f70b3..c762a52ffc 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -504,7 +504,7 @@
else if (select_alteration == "Ears")
var/list/snowflake_ears_list = list("Normal" = null)
for(var/path in GLOB.mam_ears_list)
- var/datum/sprite_accessory/ears/mam_ears/instance = GLOB.mam_ears_list[path]
+ var/datum/sprite_accessory/mam_ears/instance = GLOB.mam_ears_list[path]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(H.client.ckey)))
@@ -518,7 +518,7 @@
else if (select_alteration == "Snout")
var/list/snowflake_snouts_list = list("Normal" = null)
for(var/path in GLOB.mam_snouts_list)
- var/datum/sprite_accessory/snouts/mam_snouts/instance = GLOB.mam_snouts_list[path]
+ var/datum/sprite_accessory/mam_snouts/instance = GLOB.mam_snouts_list[path]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(H.client.ckey)))
@@ -549,7 +549,7 @@
else if (select_alteration == "Tail")
var/list/snowflake_tails_list = list("Normal" = null)
for(var/path in GLOB.mam_tails_list)
- var/datum/sprite_accessory/tails/mam_tails/instance = GLOB.mam_tails_list[path]
+ var/datum/sprite_accessory/mam_tails/instance = GLOB.mam_tails_list[path]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(H.client.ckey)))
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 8c30adb8f9..b61e29b685 100644
--- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm
+++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm
@@ -57,10 +57,89 @@
..()
/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
- if(J)
- if(J.plasma_outfit)
- O = new J.plasma_outfit
+ 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("Captain")
+ O = new /datum/outfit/plasmaman/captain
+
+ if("Head of Personnel")
+ O = new /datum/outfit/plasmaman/hop
+
+ if("Head of Security")
+ O = new /datum/outfit/plasmaman/hos
+
+ if("Chief Engineer")
+ O = new /datum/outfit/plasmaman/ce
+
+ if("Chief Medical Officer")
+ O = new /datum/outfit/plasmaman/cmo
+
+ if("Research Director")
+ O = new /datum/outfit/plasmaman/rd
+
+ 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)
diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
index 228a69c30f..b760af9850 100644
--- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
@@ -82,11 +82,13 @@
M.AddSpell(SW)
shadowwalk = SW
+
/obj/item/organ/brain/nightmare/Remove(special = FALSE)
if(shadowwalk && owner)
owner.RemoveSpell(shadowwalk)
return ..()
+
/obj/item/organ/heart/nightmare
name = "heart of darkness"
desc = "An alien organ that twists and writhes when exposed to light."
diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm
index 1b6bef9dc6..c504e5ccd3 100644
--- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm
+++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm
@@ -24,7 +24,7 @@
burnmod = 1
..()
-/datum/species/skeleton/check_roundstart_eligible()
+/datum/species/skeleton/greater/check_roundstart_eligible()
if(SSevents.holidays && SSevents.holidays[HALLOWEEN])
return TRUE
return ..()
diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm
index 173411eaa1..5ed806b302 100644
--- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm
+++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm
@@ -22,4 +22,4 @@
tail_type = "mam_tail"
wagging_type = "mam_waggingtail"
- species_type = "robotic"
+ species_type = "robotic"
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm
index c10521dfd9..a1a2a33c54 100644
--- a/code/modules/mob/living/carbon/human/species_types/synths.dm
+++ b/code/modules/mob/living/carbon/human/species_types/synths.dm
@@ -100,12 +100,14 @@
else
return ..()
+
/datum/species/synth/handle_body(mob/living/carbon/human/H)
if(fake_species)
fake_species.handle_body(H)
else
return ..()
+
/datum/species/synth/handle_mutant_bodyparts(mob/living/carbon/human/H, forced_colour)
if(fake_species)
fake_species.handle_body(H,forced_colour)
diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
index e7c5644e26..5c83482bde 100644
--- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
@@ -313,7 +313,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/insectguts,
/obj/effect/decal/cleanable/semen,
- /obj/effect/decal/cleanable/semen/femcum,
+ /obj/effect/decal/cleanable/femcum,
/obj/effect/decal/cleanable/generic,
/obj/effect/decal/cleanable/glass,,
/obj/effect/decal/cleanable/cobweb,
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 3433824282..b60ee8d108 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -2218,7 +2218,6 @@
color = "#FFFFFF" // rgb: 255, 255, 255
can_synth = FALSE
nutriment_factor = 0.5 * REAGENTS_METABOLISM
- var/decal_path = /obj/effect/decal/cleanable/semen
/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume)
if(!istype(T))
@@ -2228,7 +2227,7 @@
var/obj/effect/decal/cleanable/semen/S = locate() in T
if(!S)
- S = new decal_path(T)
+ S = new(T)
if(data["blood_DNA"])
S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
@@ -2252,20 +2251,51 @@
blood_DNA |= S.blood_DNA
return ..()
-/datum/reagent/consumable/semen/femcum
+/datum/reagent/consumable/femcum
name = "Female Ejaculate"
description = "Vaginal lubricant found in most mammals and other animals of similar nature. Where you found this is your own business."
taste_description = "something with a tang" // wew coders who haven't eaten out a girl.
+ taste_mult = 2
+ data = list("donor"=null,"viruses"=null,"donor_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null)
+ reagent_state = LIQUID
color = "#AAAAAA77"
- decal_path = /obj/effect/decal/cleanable/semen/femcum
+ can_synth = FALSE
+ nutriment_factor = 0.5 * REAGENTS_METABOLISM
-/obj/effect/decal/cleanable/semen/femcum
+/obj/effect/decal/cleanable/femcum
name = "female ejaculate"
+ desc = null
+ gender = PLURAL
+ density = 0
+ layer = ABOVE_NORMAL_TURF_LAYER
+ icon = 'icons/obj/genitals/effects.dmi'
icon_state = "fem1"
random_icon_states = list("fem1", "fem2", "fem3", "fem4")
blood_state = null
bloodiness = null
+/obj/effect/decal/cleanable/femcum/Initialize(mapload)
+ . = ..()
+ dir = GLOB.cardinals
+ add_blood_DNA(list("Non-human DNA" = "A+"))
+
+/obj/effect/decal/cleanable/femcum/replace_decal(obj/effect/decal/cleanable/femcum/F)
+ if(F.blood_DNA)
+ blood_DNA |= F.blood_DNA
+ return ..()
+
+/datum/reagent/consumable/femcum/reaction_turf(turf/T, reac_volume)
+ if(!istype(T))
+ return
+ if(reac_volume < 10)
+ return
+
+ var/obj/effect/decal/cleanable/femcum/S = locate() in T
+ if(!S)
+ S = new(T)
+ if(data["blood_DNA"])
+ S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
+
/datum/reagent/determination
name = "Determination"
description = "For when you need to push on a little more. Do NOT allow near plants."
|