From 9c3fcaa53cf1f64745ffbe5a8675d0ae52a81621 Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Tue, 17 Jul 2018 02:13:52 -0400 Subject: [PATCH] AGHHHHHHHHHHHHH --- code/datums/datacore.dm | 8 ++--- code/game/dna/dna2.dm | 11 +++---- code/game/dna/genes/vg_powers.dm | 4 +-- code/game/gamemodes/changeling/changeling.dm | 2 +- .../gamemodes/changeling/powers/humanform.dm | 2 +- .../gamemodes/changeling/powers/tiny_prick.dm | 3 +- .../gamemodes/changeling/powers/transform.dm | 2 +- code/game/gamemodes/nuclear/nuclear.dm | 4 +-- code/game/machinery/cloning.dm | 2 +- code/game/machinery/computer/cloning.dm | 8 ++--- code/game/machinery/transformer.dm | 2 +- code/game/objects/items/weapons/cosmetics.dm | 4 +-- code/game/objects/items/weapons/scissors.dm | 16 +++++----- code/game/response_team.dm | 4 +-- .../mob/living/carbon/human/appearance.dm | 20 ++++++------ code/modules/mob/living/carbon/human/emote.dm | 4 +-- code/modules/mob/living/carbon/human/human.dm | 10 +++--- .../living/carbon/human/species/station.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 20 ++++++------ .../mob/new_player/preferences_setup.dm | 2 +- code/modules/nano/modules/human_appearance.dm | 6 ++-- .../reagents/chemistry/reagents/misc.dm | 12 +++---- code/modules/surgery/organs/augments_eyes.dm | 2 +- code/modules/surgery/organs/lungs.dm | 3 -- code/modules/surgery/organs/organ.dm | 8 ++--- code/modules/surgery/organs/organ_external.dm | 4 +-- code/modules/surgery/organs/organ_icon.dm | 32 +++++++++---------- .../surgery/organs/subtypes/abductor.dm | 3 +- code/modules/surgery/organs/subtypes/diona.dm | 29 +---------------- code/modules/surgery/organs/subtypes/drask.dm | 7 +--- code/modules/surgery/organs/subtypes/grey.dm | 5 +-- code/modules/surgery/organs/subtypes/kidan.dm | 1 - .../surgery/organs/subtypes/machine.dm | 13 -------- .../surgery/organs/subtypes/nucleation.dm | 7 +--- .../modules/surgery/organs/subtypes/shadow.dm | 3 +- .../modules/surgery/organs/subtypes/skrell.dm | 2 -- .../surgery/organs/subtypes/tajaran.dm | 3 -- .../modules/surgery/organs/subtypes/unathi.dm | 4 +-- code/modules/surgery/organs/subtypes/vox.dm | 1 - .../surgery/organs/subtypes/vulpkanin.dm | 6 +--- code/modules/surgery/organs/subtypes/wryn.dm | 4 +-- 41 files changed, 101 insertions(+), 184 deletions(-) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 1a22131d55f..0f76efb6d55 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -357,7 +357,7 @@ var/record_id_num = 1001 temp = new /icon(icobase, "groin_[g]") preview_icon.Blend(temp, ICON_OVERLAY) var/head = "head" - if(head_organ.alt_head && head_organ.species.bodyflags & HAS_ALT_HEADS) + if(head_organ.alt_head && head_organ.dna.species2.bodyflags & HAS_ALT_HEADS) var/datum/sprite_accessory/alt_heads/alternate_head = alt_heads_list[head_organ.alt_head] if(alternate_head.icon_state) head = alternate_head.icon_state @@ -410,7 +410,7 @@ var/record_id_num = 1001 var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") // I'll want to make a species-specific proc for this sooner or later // But this'll do for now - if(head_organ.species.name == "Slime People") + if(istype(head_organ.dna.species2, /datum/species/slime)) hair_s.Blend("[H.skin_colour]A0", ICON_AND) //A0 = 160 alpha. else hair_s.Blend(head_organ.hair_colour, ICON_ADD) @@ -424,7 +424,7 @@ var/record_id_num = 1001 face_s.Blend(hair_s, ICON_OVERLAY) //Head Accessory - if(head_organ.species.bodyflags & HAS_HEAD_ACCESSORY) + if(head_organ.dna.species2.bodyflags & HAS_HEAD_ACCESSORY) var/datum/sprite_accessory/head_accessory_style = head_accessory_styles_list[head_organ.ha_style] if(head_accessory_style && head_accessory_style.species_allowed) var/icon/head_accessory_s = new/icon("icon" = head_accessory_style.icon, "icon_state" = "[head_accessory_style.icon_state]_s") @@ -434,7 +434,7 @@ var/record_id_num = 1001 var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[head_organ.f_style] if(facial_hair_style && facial_hair_style.species_allowed) var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") - if(head_organ.species.name == "Slime People") + if(istype(head_organ.dna.species2, /datum/species/slime)) facial_s.Blend("[H.skin_colour]A0", ICON_ADD) //A0 = 160 alpha. else facial_s.Blend(head_organ.facial_colour, ICON_ADD) diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index f21c2948b01..2d3fee8d4e9 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -99,8 +99,7 @@ var/global/list/bad_blocks[0] var/b_type = "A+" // Should probably change to an integer => string map but I'm lazy. var/real_name // Stores the real name of the person who originally got this dna datum. Used primarily for changelings, - // New stuff - var/species = "Human" + var/datum/species/species2 = new /datum/species/human //The type of mutant race the player is if applicable (i.e. potato-man) // Make a copy of this strand. // USE THIS WHEN COPYING STUFF OR YOU'LL GET CORRUPTION! @@ -110,7 +109,7 @@ var/global/list/bad_blocks[0] new_dna.struc_enzymes_original=struc_enzymes_original // will make clone's SE the same as the original, do we want this? new_dna.b_type=b_type new_dna.real_name=real_name - new_dna.species=species + new_dna.species2 = new species2.type for(var/b=1;b<=DNA_SE_LENGTH;b++) new_dna.SE[b]=SE[b] if(b<=DNA_UI_LENGTH) @@ -421,7 +420,7 @@ var/global/list/bad_blocks[0] data["UE"] = unique_enzymes data["SE"] = SE.Copy() // This is probably too lazy for my own good data["UI"] = UI.Copy() - data["species"] = species // This works because `species` is a string, not a datum + data["species"] = species2.type // This works because `species` is a string, not a datum // Because old DNA coders were insane or something data["b_type"] = b_type data["real_name"] = real_name @@ -434,10 +433,10 @@ var/global/list/bad_blocks[0] UI = data["UI"] UpdateUI() UpdateSE() - species = data["species"] + species2 = new data["species"] b_type = data["b_type"] real_name = data["real_name"] // a nice hook for if/when we refactor species on dna /datum/dna/proc/get_species_name() - return species + return species2.name diff --git a/code/game/dna/genes/vg_powers.dm b/code/game/dna/genes/vg_powers.dm index 3e709560a45..afb918fe72b 100644 --- a/code/game/dna/genes/vg_powers.dm +++ b/code/game/dna/genes/vg_powers.dm @@ -50,7 +50,7 @@ M.change_eye_color(new_eyes) //Alt heads. - if(head_organ.species.bodyflags & HAS_ALT_HEADS) + if(head_organ.dna.species2.bodyflags & HAS_ALT_HEADS) var/list/valid_alt_heads = M.generate_valid_alt_heads() var/new_alt_head = input("Please select alternate head", "Character Generation", head_organ.alt_head) as null|anything in valid_alt_heads if(new_alt_head) @@ -92,7 +92,7 @@ M.change_facial_hair_color(new_facial, 1) //Head accessory. - if(head_organ.species.bodyflags & HAS_HEAD_ACCESSORY) + if(head_organ.dna.species2.bodyflags & HAS_HEAD_ACCESSORY) var/list/valid_head_accessories = M.generate_valid_head_accessories() var/new_head_accessory = input("Please select head accessory style", "Character Generation", head_organ.ha_style) as null|anything in valid_head_accessories if(new_head_accessory) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 329408bffce..bab5594b572 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -273,7 +273,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" /datum/changeling/proc/find_dna(datum/dna/tDNA) for(var/datum/dna/D in (absorbed_dna + protected_dna)) - if(tDNA.unique_enzymes == D.unique_enzymes && tDNA.uni_identity == D.uni_identity && tDNA.species == D.species) + if(tDNA.unique_enzymes == D.unique_enzymes && tDNA.uni_identity == D.uni_identity && tDNA.species2.type == D.species2.type) return D return null diff --git a/code/game/gamemodes/changeling/powers/humanform.dm b/code/game/gamemodes/changeling/powers/humanform.dm index fb3012cd274..429954ce539 100644 --- a/code/game/gamemodes/changeling/powers/humanform.dm +++ b/code/game/gamemodes/changeling/powers/humanform.dm @@ -29,7 +29,7 @@ user.dna = chosen_dna.Clone() user.real_name = chosen_dna.real_name if(istype(user)) - user.set_species(chosen_dna.species) + user.set_species(chosen_dna.species2) domutcheck(user,null,MUTCHK_FORCED) user.flavor_text = "" user.dna.UpdateSE() diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index c344897c624..cbbac28dbcb 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -80,8 +80,7 @@ selected_dna = changeling.select_dna("Select the target DNA: ", "Target DNA") if(!selected_dna) return - var/datum/species/newspecies = all_species[selected_dna.species] - if((NOTRANSSTING in newspecies.species_traits) || newspecies.is_small) + if((NOTRANSSTING in selected_dna.species2.species_traits) || selected_dna.species2.is_small) to_chat(user, "The selected DNA is incompatible with our sting.") return ..() diff --git a/code/game/gamemodes/changeling/powers/transform.dm b/code/game/gamemodes/changeling/powers/transform.dm index b7c8abefd1d..7e89a08c690 100644 --- a/code/game/gamemodes/changeling/powers/transform.dm +++ b/code/game/gamemodes/changeling/powers/transform.dm @@ -17,7 +17,7 @@ user.dna = chosen_dna.Clone() user.real_name = chosen_dna.real_name if(ishuman(user)) - user.set_species(chosen_dna.species) + user.set_species(chosen_dna.species2) domutcheck(user, null, MUTCHK_FORCED) //Ensures species that get powers by the species proc handle_dna keep them user.flavor_text = "" user.dna.UpdateSE() diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index feffadcf9ab..b745e822993 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -159,8 +159,8 @@ proc/issyndicate(mob/living/M as mob) head_organ.sec_hair_colour = hair_c M.change_eye_color(eye_c) M.s_tone = skin_tone - head_organ.h_style = random_hair_style(M.gender, head_organ.species.name) - head_organ.f_style = random_facial_hair_style(M.gender, head_organ.species.name) + head_organ.h_style = random_hair_style(M.gender, head_organ.dna.species2.name) + head_organ.f_style = random_facial_hair_style(M.gender, head_organ.dna.species2.name) M.body_accessory = null M.regenerate_icons() M.update_body() diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 881136dbd58..60d280cf32f 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -231,7 +231,7 @@ R.dna = new /datum/dna() var/mob/living/carbon/human/H = new /mob/living/carbon/human(src) - H.set_species(R.dna.species) + H.set_species(R.dna.species2) occupant = H if(!R.dna.real_name) //to prevent null names diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 95aee7cb9fe..64beeb17513 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -363,8 +363,7 @@ if(subject.get_int_organ(/obj/item/organ/internal/brain)) var/obj/item/organ/internal/brain/Brn = subject.get_int_organ(/obj/item/organ/internal/brain) if(istype(Brn)) - var/datum/species/S = all_species[Brn.dna.species] // stepladder code wooooo - if(NO_SCAN in S.species_traits) + if(NO_SCAN in Brn.dna.species2.species_traits) scantemp = "Error: Subject's brain is incompatible." SSnanoui.update_uis(src) return @@ -402,10 +401,9 @@ var/obj/item/organ/B = subject.get_int_organ(/obj/item/organ/internal/brain) B.dna.check_integrity() R.dna=B.dna.Clone() - var/datum/species/S = all_species[R.dna.species] - if(NO_SCAN in S.species_traits) + if(NO_SCAN in R.dna.species2.species_traits) extra_info = "Proper genetic interface not found, defaulting to genetic data of the body." - R.dna.species = subject.species.name + R.dna.species2 = new subject.dna.species2.type R.id= copytext(md5(B.dna.real_name), 2, 6) R.name=B.dna.real_name else diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index 09385fa3a3e..b68076f5c35 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -336,7 +336,7 @@ to_chat(H, "No genetic template configured!") return var/prev_ue = H.dna.unique_enzymes - H.set_species(template.species) + H.set_species(template.species2) H.dna = template.Clone() H.real_name = template.real_name H.sync_organ_dna(assimilate = 0, old_ue = prev_ue) diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm index ec8a2a5e325..76d61f5ea44 100644 --- a/code/game/objects/items/weapons/cosmetics.dm +++ b/code/game/objects/items/weapons/cosmetics.dm @@ -99,7 +99,7 @@ if(!get_location_accessible(H, "mouth")) to_chat(user, "The mask is in the way.") return - if((C.species.bodyflags & ALL_RPARTS) && robohead.is_monitor) //If the target is of a species that can have prosthetic heads, but the head doesn't support human hair 'wigs'... + if((C.dna.species2.bodyflags & ALL_RPARTS) && robohead.is_monitor) //If the target is of a species that can have prosthetic heads, but the head doesn't support human hair 'wigs'... to_chat(user, "You find yourself disappointed at the appalling lack of facial hair.") return if(C.f_style == "Shaved") @@ -130,7 +130,7 @@ if(!get_location_accessible(H, "head")) to_chat(user, "The headgear is in the way.") return - if((C.species.bodyflags & ALL_RPARTS) && robohead.is_monitor) //If the target is of a species that can have prosthetic heads, but the head doesn't support human hair 'wigs'... + if((C.dna.species2.bodyflags & ALL_RPARTS) && robohead.is_monitor) //If the target is of a species that can have prosthetic heads, but the head doesn't support human hair 'wigs'... to_chat(user, "You find yourself disappointed at the appalling lack of hair.") return if(C.h_style == "Bald" || C.h_style == "Balding Hair" || C.h_style == "Skinhead") diff --git a/code/game/objects/items/weapons/scissors.dm b/code/game/objects/items/weapons/scissors.dm index 6ff1fbe95b0..b5d616a9a51 100644 --- a/code/game/objects/items/weapons/scissors.dm +++ b/code/game/objects/items/weapons/scissors.dm @@ -34,18 +34,18 @@ var/obj/item/organ/external/head/C = H.get_organ("head") var/datum/robolimb/robohead = all_robolimbs[C.model] if(H.gender == MALE || H.get_species() == "Vulpkanin") - if(C.species) + if(C.dna.species2) for(var/i in facial_hair_styles_list) var/datum/sprite_accessory/facial_hair/tmp_facial = facial_hair_styles_list[i] - if(C.species.name in tmp_facial.species_allowed) //If the species is allowed to have the style, add the style to the list. Or, if the character has a prosthetic head, give them the human hair styles. - if(C.species.bodyflags & ALL_RPARTS) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list. + if(C.dna.species2.name in tmp_facial.species_allowed) //If the species is allowed to have the style, add the style to the list. Or, if the character has a prosthetic head, give them the human hair styles. + if(C.dna.species2.bodyflags & ALL_RPARTS) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list. if(robohead.is_monitor) to_chat(user, "You are unable to find anything on [H]'s face worth cutting. How disappointing.") return continue //If the head DOES support human hair wigs, make sure they don't get monitor-oriented styles. species_facial_hair += i else - if(C.species.bodyflags & ALL_RPARTS) //If the target is of a species that can have prosthetic heads, and the head supports human hair 'wigs' AND the hair-style is human-suitable, add it to the list. + if(C.dna.species2.bodyflags & ALL_RPARTS) //If the target is of a species that can have prosthetic heads, and the head supports human hair 'wigs' AND the hair-style is human-suitable, add it to the list. if(!robohead.is_monitor) if("Human" in tmp_facial.species_allowed) species_facial_hair += i @@ -57,18 +57,18 @@ var/f_new_style = input(user, "Select a facial hair style", "Grooming") as null|anything in species_facial_hair //handle normal hair var/list/species_hair = list() - if(C.species) + if(C.dna.species2) for(var/i in hair_styles_public_list) var/datum/sprite_accessory/hair/tmp_hair = hair_styles_public_list[i] - if(C.species.name in tmp_hair.species_allowed) //If the species is allowed to have the style, add the style to the list. Or, if the character has a prosthetic head, give them the human facial hair styles. - if(C.species.bodyflags & ALL_RPARTS) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list. + if(C.dna.species2.name in tmp_hair.species_allowed) //If the species is allowed to have the style, add the style to the list. Or, if the character has a prosthetic head, give them the human facial hair styles. + if(C.dna.species2.bodyflags & ALL_RPARTS) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list. if(robohead.is_monitor) to_chat(user, "You are unable to find anything on [H]'s head worth cutting. How disappointing.") return continue //If the head DOES support human hair wigs, make sure they don't get monitor-oriented styles. species_hair += i else - if(C.species.bodyflags & ALL_RPARTS) //If the target is of a species that can have prosthetic heads, and the head supports human hair 'wigs' AND the hair-style is human-suitable, add it to the list. + if(C.dna.species2.bodyflags & ALL_RPARTS) //If the target is of a species that can have prosthetic heads, and the head supports human hair 'wigs' AND the hair-style is human-suitable, add it to the list. if(!robohead.is_monitor) if("Human" in tmp_hair.species_allowed) species_hair += i diff --git a/code/game/response_team.dm b/code/game/response_team.dm index c59dd7bd78f..1e866e22faf 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -158,8 +158,8 @@ var/ert_request_answered = 0 head_organ.sec_hair_colour = hair_c M.change_eye_color(eye_c) M.s_tone = skin_tone - head_organ.h_style = random_hair_style(M.gender, head_organ.species.name) - head_organ.f_style = random_facial_hair_style(M.gender, head_organ.species.name) + head_organ.h_style = random_hair_style(M.gender, head_organ.dna.species2.name) + head_organ.f_style = random_facial_hair_style(M.gender, head_organ.dna.species2.name) M.rename_character(null, "[pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant First Class", "Master Sergeant", "Sergeant Major")] [pick(last_names)]") M.age = rand(23,35) diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index 152262b69ea..de8cb28eb47 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -350,16 +350,16 @@ continue if((H.gender == MALE && S.gender == FEMALE) || (H.gender == FEMALE && S.gender == MALE)) continue - if(H.species.bodyflags & ALL_RPARTS) //If the user is a species who can have a robotic head... + if(H.dna.species2.bodyflags & ALL_RPARTS) //If the user is a species who can have a robotic head... var/datum/robolimb/robohead = all_robolimbs[H.model] - if((H.species.name in S.species_allowed) && robohead.is_monitor && ((S.models_allowed && (robohead.company in S.models_allowed)) || !S.models_allowed)) //If this is a hair style native to the user's species, check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list. + if((H.dna.species2.name in S.species_allowed) && robohead.is_monitor && ((S.models_allowed && (robohead.company in S.models_allowed)) || !S.models_allowed)) //If this is a hair style native to the user's species, check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list. valid_hairstyles += hairstyle //Give them their hairstyles if they do. else if(!robohead.is_monitor && ("Human" in S.species_allowed)) /*If the hairstyle is not native to the user's species and they're using a head with an ipc-style screen, don't let them access it. But if the user has a robotic humanoid head and the hairstyle can fit humans, let them use it as a wig. */ valid_hairstyles += hairstyle else //If the user is not a species who can have robotic heads, use the default handling. - if(H.species.name in S.species_allowed) //If the user's head is of a species the hairstyle allows, add it to the list. + if(H.dna.species2.name in S.species_allowed) //If the user's head is of a species the hairstyle allows, add it to the list. valid_hairstyles += hairstyle return valid_hairstyles @@ -378,17 +378,17 @@ continue if((H.gender == MALE && S.gender == FEMALE) || (H.gender == FEMALE && S.gender == MALE)) continue - if(H.species.bodyflags & ALL_RPARTS) //If the user is a species who can have a robotic head... + if(H.dna.species2.bodyflags & ALL_RPARTS) //If the user is a species who can have a robotic head... var/datum/robolimb/robohead = all_robolimbs[H.model] - if(H.species.name in S.species_allowed) //If this is a facial hair style native to the user's species... - if((H.species.name in S.species_allowed) && robohead.is_monitor && ((S.models_allowed && (robohead.company in S.models_allowed)) || !S.models_allowed)) //If this is a facial hair style native to the user's species, check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list. + if(H.dna.species2.name in S.species_allowed) //If this is a facial hair style native to the user's species... + if((H.dna.species2.name in S.species_allowed) && robohead.is_monitor && ((S.models_allowed && (robohead.company in S.models_allowed)) || !S.models_allowed)) //If this is a facial hair style native to the user's species, check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list. valid_facial_hairstyles += facialhairstyle //Give them their facial hairstyles if they do. else if(!robohead.is_monitor && ("Human" in S.species_allowed)) /*If the facial hairstyle is not native to the user's species and they're using a head with an ipc-style screen, don't let them access it. But if the user has a robotic humanoid head and the facial hairstyle can fit humans, let them use it as a wig. */ valid_facial_hairstyles += facialhairstyle else //If the user is not a species who can have robotic heads, use the default handling. - if(H.species.name in S.species_allowed) //If the user's head is of a species the facial hair style allows, add it to the list. + if(H.dna.species2.name in S.species_allowed) //If the user's head is of a species the facial hair style allows, add it to the list. valid_facial_hairstyles += facialhairstyle return valid_facial_hairstyles @@ -402,7 +402,7 @@ for(var/head_accessory in head_accessory_styles_list) var/datum/sprite_accessory/S = head_accessory_styles_list[head_accessory] - if(!(H.species.name in S.species_allowed)) //If the user's head is not of a species the head accessory style allows, skip it. Otherwise, add it to the list. + if(!(H.dna.species2.name in S.species_allowed)) //If the user's head is not of a species the head accessory style allows, skip it. Otherwise, add it to the list. continue valid_head_accessories += head_accessory @@ -432,7 +432,7 @@ continue if(location == "head") var/datum/sprite_accessory/body_markings/head/M = marking_styles_list[S.name] - if(H.species.bodyflags & ALL_RPARTS)//If the user is a species that can have a robotic head... + if(H.dna.species2.bodyflags & ALL_RPARTS) //If the user is a species that can have a robotic head... var/datum/robolimb/robohead = all_robolimbs[H.model] if(!(S.models_allowed && (robohead.company in S.models_allowed))) //Make sure they don't get markings incompatible with their head. continue @@ -469,7 +469,7 @@ valid_alt_heads["None"] = alt_heads_list["None"] //The only null entry should be the "None" option, and there should always be a "None" option. for(var/alternate_head in alt_heads_list) var/datum/sprite_accessory/alt_heads/head = alt_heads_list[alternate_head] - if(!(H.species.name in head.species_allowed)) + if(!(H.dna.species2.name in head.species_allowed)) continue valid_alt_heads += alternate_head diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index be46cc9fa7d..3df5a6843d1 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -56,7 +56,7 @@ found_slime_bodypart = 1 else for(var/obj/item/organ/external/L in bodyparts) // if your limbs are squishy you can squish too! - if(L.dna.species in list("Slime People")) + if(istype(L.dna.species2, /datum/species/slime)) on_CD = handle_emote_CD() found_slime_bodypart = 1 break @@ -910,7 +910,7 @@ emotelist += "\nSlime people specific emotes :- squish(es)-(none)/mob" else for(var/obj/item/organ/external/L in bodyparts) // if your limbs are squishy you can squish too! - if(L.dna.species in list("Slime People")) + if(istype(L.dna.species2, /datum/species/slime)) emotelist += "\nSlime people body part specific emotes :- squish(es)-(none)/mob" break diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index dbc788cd0bb..88e3d854658 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1297,9 +1297,9 @@ new_species = "Human" else if(!new_species) - new_species = dna.species + new_species = dna.species2 else - dna.species = new_species + dna.species2 = new_species if(species) if(species.name && species.name == new_species) @@ -1380,7 +1380,7 @@ if(!dna) dna = new /datum/dna(null) - dna.species = species.name + dna.species2 = species.name dna.real_name = real_name species.handle_post_spawn(src) @@ -1497,7 +1497,7 @@ var/list/hair = list() for(var/i in hair_styles_public_list) var/datum/sprite_accessory/hair/tmp_hair = hair_styles_public_list[i] - if((head_organ.species.name in tmp_hair.species_allowed) && (robohead.company in tmp_hair.models_allowed)) //Populate the list of available monitor styles only with styles that the monitor-head is allowed to use. + if((head_organ.dna.species2.name in tmp_hair.species_allowed) && (robohead.company in tmp_hair.models_allowed)) //Populate the list of available monitor styles only with styles that the monitor-head is allowed to use. hair += i var/new_style = input(src, "Select a monitor display", "Monitor Display", head_organ.h_style) as null|anything in hair @@ -1964,7 +1964,7 @@ Eyes need to have significantly high darksight to shine unless the mob has the X dna.deserialize(data["dna"]) real_name = dna.real_name name = real_name - set_species(dna.species) + set_species(dna.species2) age = data["age"] undershirt = data["ushirt"] underwear = data["uwear"] diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index 6b692601226..c93d11d9a2b 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -617,7 +617,7 @@ if(world.time % SLIMEPERSON_ICON_UPDATE_PERIOD > SLIMEPERSON_ICON_UPDATE_PERIOD - 20) // The 20 is because this gets called every 2 seconds, from the mob controller for(var/organname in H.bodyparts_by_name) var/obj/item/organ/external/E = H.bodyparts_by_name[organname] - if(istype(E) && E.dna.species == "Slime People") + if(istype(E) && E.dna && istype(E.dna.species2, /datum/species/slime)) E.sync_colour_to_human(H) H.update_hair(0) H.update_body() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 3a1ac4d3a83..4f84cf1f821 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -249,7 +249,7 @@ var/global/list/damage_icon_parts = list() icon_key += "1" if(part) - icon_key += "[part.species.race_key]" + icon_key += "[part.dna.species2.race_key]" icon_key += "[part.dna.GetUIState(DNA_UI_GENDER)]" icon_key += "[part.dna.GetUIValue(DNA_UI_SKIN_TONE)]" if(part.s_col) @@ -379,7 +379,7 @@ var/global/list/damage_icon_parts = list() if(head_organ && m_styles["head"]) //If the head is destroyed, forget the head markings. This prevents floating optical markings on decapitated IPCs, for example. var/head_marking = m_styles["head"] var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking] - if(head_marking_style && head_marking_style.species_allowed && (head_organ.species.name in head_marking_style.species_allowed)) + if(head_marking_style && head_marking_style.species_allowed && (head_organ.dna.species2.name in head_marking_style.species_allowed)) var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s") if(head_marking_style.do_colouration) h_marking_s.Blend(m_colours["head"], ICON_ADD) @@ -407,10 +407,10 @@ var/global/list/damage_icon_parts = list() //base icons var/icon/head_accessory_standing = new /icon('icons/mob/body_accessory.dmi',"accessory_none_s") - if(head_organ.ha_style && (head_organ.species.bodyflags & HAS_HEAD_ACCESSORY)) + if(head_organ.ha_style && (head_organ.dna.species2.bodyflags & HAS_HEAD_ACCESSORY)) var/datum/sprite_accessory/head_accessory/head_accessory_style = head_accessory_styles_list[head_organ.ha_style] if(head_accessory_style && head_accessory_style.species_allowed) - if(head_organ.species.name in head_accessory_style.species_allowed) + if(head_organ.dna.species2.name in head_accessory_style.species_allowed) var/icon/head_accessory_s = new/icon("icon" = head_accessory_style.icon, "icon_state" = "[head_accessory_style.icon_state]_s") if(head_accessory_style.do_colouration) head_accessory_s.Blend(head_organ.headacc_colour, ICON_ADD) @@ -451,9 +451,9 @@ var/global/list/damage_icon_parts = list() //if(!src.get_int_organ(/obj/item/organ/internal/brain) && src.get_species() != "Machine" )//make it obvious we have NO BRAIN // hair_standing.Blend(debrained_s, ICON_OVERLAY) if(hair_style && hair_style.species_allowed) - if((head_organ.species.name in hair_style.species_allowed) || (head_organ.species.bodyflags & ALL_RPARTS)) //If the head's species is in the list of allowed species for the hairstyle, or the head's species is one flagged to have bodies comprised wholly of cybernetics... + if((head_organ.dna.species2.name in hair_style.species_allowed) || (head_organ.dna.species2.bodyflags & ALL_RPARTS)) //If the head's species is in the list of allowed species for the hairstyle, or the head's species is one flagged to have bodies comprised wholly of cybernetics... var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") - if(head_organ.species.name == "Slime People") // I am el worstos + if(istype(head_organ.dna.species2, /datum/species/slime)) // I am el worstos hair_s.Blend("[skin_colour]A0", ICON_AND) else if(hair_style.do_colouration) hair_s.Blend(head_organ.hair_colour, ICON_ADD) @@ -497,9 +497,9 @@ var/global/list/damage_icon_parts = list() if(head_organ.f_style) var/datum/sprite_accessory/facial_hair/facial_hair_style = facial_hair_styles_list[head_organ.f_style] if(facial_hair_style && facial_hair_style.species_allowed) - if((head_organ.species.name in facial_hair_style.species_allowed) || (head_organ.species.bodyflags & ALL_RPARTS)) //If the head's species is in the list of allowed species for the hairstyle, or the head's species is one flagged to have bodies comprised wholly of cybernetics... + if((head_organ.dna.species2.name in facial_hair_style.species_allowed) || (head_organ.dna.species2.bodyflags & ALL_RPARTS)) //If the head's species is in the list of allowed species for the hairstyle, or the head's species is one flagged to have bodies comprised wholly of cybernetics... var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") - if(head_organ.species.name == "Slime People") // I am el worstos + if(istype(head_organ.dna.species2, /datum/species/slime)) // I am el worstos facial_s.Blend("[skin_colour]A0", ICON_AND) else if(facial_hair_style.do_colouration) facial_s.Blend(head_organ.facial_colour, ICON_ADD) @@ -759,8 +759,8 @@ var/global/list/damage_icon_parts = list() if(glasses.icon_override) new_glasses = image("icon" = glasses.icon_override, "icon_state" = "[glasses.icon_state]") - else if(glasses.sprite_sheets && glasses.sprite_sheets[head_organ.species.name]) - new_glasses = image("icon" = glasses.sprite_sheets[head_organ.species.name], "icon_state" = "[glasses.icon_state]") + else if(glasses.sprite_sheets && glasses.sprite_sheets[head_organ.dna.species2.name]) + new_glasses = image("icon" = glasses.sprite_sheets[head_organ.dna.species2.name], "icon_state" = "[glasses.icon_state]") else new_glasses = image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]") diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index d57c46e513c..86abdffd48b 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -227,7 +227,7 @@ H.s_tone = s_tone H.species.updatespeciescolor(H, 0) //The mob's species wasn't set, so it's almost certainly different than the character's species at the moment. Thus, we need to be owner-insensitive. var/obj/item/organ/external/chest/C = H.get_organ("chest") - icobase = C.icobase ? C.icobase : C.species.icobase + icobase = C.icobase ? C.icobase : C.dna.species2.icobase if(H.species.bodyflags & HAS_TAIL) coloured_tail = H.tail ? H.tail : H.species.tail diff --git a/code/modules/nano/modules/human_appearance.dm b/code/modules/nano/modules/human_appearance.dm index ad7a8f5cff6..dc41b75e733 100644 --- a/code/modules/nano/modules/human_appearance.dm +++ b/code/modules/nano/modules/human_appearance.dm @@ -292,7 +292,7 @@ if(!head_organ) log_runtime(EXCEPTION("Missing head!"), owner) return 0 - return owner && (flags & APPEARANCE_HEAD_ACCESSORY) && (head_organ.species.bodyflags & HAS_HEAD_ACCESSORY) + return owner && (flags & APPEARANCE_HEAD_ACCESSORY) && (head_organ.dna.species2.bodyflags & HAS_HEAD_ACCESSORY) /datum/nano_module/appearance_changer/proc/can_change_markings(var/location = "body") var/marking_flag = HAS_BODY_MARKINGS @@ -301,7 +301,7 @@ if(!head_organ) log_debug("Missing head!") return 0 - body_flags = head_organ.species.bodyflags + body_flags = head_organ.dna.species2.bodyflags marking_flag = HAS_HEAD_MARKINGS if(location == "body") marking_flag = HAS_BODY_MARKINGS @@ -317,7 +317,7 @@ if(!head_organ) log_debug("Missing head!") return 0 - return owner && (flags & APPEARANCE_ALT_HEAD) && (head_organ.species.bodyflags & HAS_ALT_HEADS) + return owner && (flags & APPEARANCE_ALT_HEAD) && (head_organ.dna.species2.bodyflags & HAS_ALT_HEADS) /datum/nano_module/appearance_changer/proc/cut_and_generate_data() // Making the assumption that the available species remain constant diff --git a/code/modules/reagents/chemistry/reagents/misc.dm b/code/modules/reagents/chemistry/reagents/misc.dm index a67fcd0f751..7e6ffaead46 100644 --- a/code/modules/reagents/chemistry/reagents/misc.dm +++ b/code/modules/reagents/chemistry/reagents/misc.dm @@ -313,8 +313,8 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M var/obj/item/organ/external/head/head_organ = H.get_organ("head") - head_organ.h_style = random_hair_style(H.gender, head_organ.species.name) - head_organ.f_style = random_facial_hair_style(H.gender, head_organ.species.name) + head_organ.h_style = random_hair_style(H.gender, head_organ.dna.species2.name) + head_organ.f_style = random_facial_hair_style(H.gender, head_organ.dna.species2.name) H.update_hair() H.update_fhair() ..() @@ -335,14 +335,14 @@ var/datum/sprite_accessory/tmp_hair_style = hair_styles_full_list["Very Long Hair"] var/datum/sprite_accessory/tmp_facial_hair_style = facial_hair_styles_list["Very Long Beard"] - if(head_organ.species.name in tmp_hair_style.species_allowed) //If 'Very Long Hair' is a style the person's species can have, give it to them. + if(head_organ.dna.species2.name in tmp_hair_style.species_allowed) //If 'Very Long Hair' is a style the person's species can have, give it to them. head_organ.h_style = "Very Long Hair" else //Otherwise, give them a random hair style. - head_organ.h_style = random_hair_style(H.gender, head_organ.species.name) - if(head_organ.species.name in tmp_facial_hair_style.species_allowed) //If 'Very Long Beard' is a style the person's species can have, give it to them. + head_organ.h_style = random_hair_style(H.gender, head_organ.dna.species2.name) + if(head_organ.dna.species2.name in tmp_facial_hair_style.species_allowed) //If 'Very Long Beard' is a style the person's species can have, give it to them. head_organ.f_style = "Very Long Beard" else //Otherwise, give them a random facial hair style. - head_organ.f_style = random_facial_hair_style(H.gender, head_organ.species.name) + head_organ.f_style = random_facial_hair_style(H.gender, head_organ.dna.species2.name) H.update_hair() H.update_fhair() if(!H.wear_mask || H.wear_mask && !istype(H.wear_mask, /obj/item/clothing/mask/fakemoustache)) diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index 305bbb2c603..fb02fd83a78 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -33,7 +33,7 @@ var/mob/living/carbon/human/H = HA if(!istype(H)) H = owner - var/icon/cybereyes_icon = new /icon('icons/mob/human_face.dmi', H.species.eyes) + var/icon/cybereyes_icon = new /icon('icons/mob/human_face.dmi', H.dna.species2.eyes) cybereyes_icon.Blend(eye_colour, ICON_ADD) // Eye implants override native DNA eye color return cybereyes_icon diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 99bc996dce2..187e2cd44ca 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -315,7 +315,6 @@ name = "plasma filter" desc = "A spongy rib-shaped mass for filtering plasma from the air." icon_state = "lungs-plasma" - species = "Plasmaman" safe_oxygen_min = 0 //We don't breath this safe_toxins_min = 16 //We breathe THIS! @@ -324,7 +323,6 @@ /obj/item/organ/internal/lungs/vox name = "Vox lungs" desc = "They're filled with dust....wow." - species = "Vox" safe_oxygen_min = 0 //We don't breathe this safe_oxygen_max = 1 //This is toxic to us @@ -333,7 +331,6 @@ /obj/item/organ/internal/lungs/drask icon = 'icons/obj/surgery_drask.dmi' - species = "Drask" cold_message = "an invigorating coldness" cold_level_3_threshold = 60 diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index c2487503bfa..5f159390460 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -19,7 +19,6 @@ // links chemical IDs to number of ticks for which they'll stay in the blood germ_level = 0 var/datum/dna/dna - var/datum/species/species = "Human" // Stuff for tracking if this is on a tile with an open freezer or not var/last_freezer_update_time = 0 @@ -44,15 +43,13 @@ /obj/item/organ/proc/update_health() return -/obj/item/organ/New(var/mob/living/carbon/holder) +/obj/item/organ/New(mob/living/carbon/holder) ..(holder) if(!max_damage) max_damage = min_broken_damage * 2 if(istype(holder)) - species = all_species["Human"] if(holder.dna) dna = holder.dna.Clone() - species = all_species[dna.species] else log_runtime(EXCEPTION("[holder] spawned without a proper DNA."), holder) var/mob/living/carbon/human/H = holder @@ -62,8 +59,7 @@ blood_DNA = list() blood_DNA[dna.unique_enzymes] = dna.b_type else - if(istext(species)) - species = all_species[species] + dna = new /datum/dna(null) /obj/item/organ/proc/set_dna(var/datum/dna/new_dna) if(new_dna) diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index bd064a7d062..44e1f3dedb6 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -105,8 +105,8 @@ /obj/item/organ/external/New(var/mob/living/carbon/holder) ..() var/mob/living/carbon/human/H = holder - icobase = species.icobase - deform = species.deform + icobase = dna.species2.icobase + deform = dna.species2.deform if(istype(H)) replaced(H) sync_colour_to_human(H) diff --git a/code/modules/surgery/organs/organ_icon.dm b/code/modules/surgery/organs/organ_icon.dm index d1c1070b19d..344c1d1f0c4 100644 --- a/code/modules/surgery/organs/organ_icon.dm +++ b/code/modules/surgery/organs/organ_icon.dm @@ -16,7 +16,7 @@ var/global/list/limb_icon_cache = list() /obj/item/organ/external/proc/change_organ_icobase(var/new_icobase, var/new_deform, var/owner_sensitive) //Change the icobase/deform of this organ. If owner_sensitive is set, that means the proc won't mess with frankenstein limbs. if(owner_sensitive) //This and the below statements mean that the icobase/deform will only get updated if the limb is the same species as and is owned by the mob it's attached to. - if(species && owner.species && species.name != owner.species.name) + if(dna.species2 && owner.dna.species2 && dna.species2.name != owner.dna.species2.name) return if(dna.unique_enzymes != owner.dna.unique_enzymes) // This isn't MY arm return @@ -25,9 +25,9 @@ var/global/list/limb_icon_cache = list() deform = new_deform ? new_deform : deform /obj/item/organ/external/proc/sync_colour_to_human(var/mob/living/carbon/human/H) - if(is_robotic() && !(species && species.name == "Machine")) //machine people get skin color + if(is_robotic() && !istype(dna.species2, /datum/species/machine)) //machine people get skin color return - if(species && H.species && species.name != H.species.name) + if(dna.species2 && H.dna.species2 && dna.species2.name != H.dna.species2.name) return if(dna.unique_enzymes != H.dna.unique_enzymes) // This isn't MY arm if(!(H.species.bodyflags & HAS_ICON_SKIN_TONE)) @@ -46,10 +46,10 @@ var/global/list/limb_icon_cache = list() /obj/item/organ/external/proc/sync_colour_to_dna() if(is_robotic()) return - if(!isnull(dna.GetUIValue(DNA_UI_SKIN_TONE)) && ((species.bodyflags & HAS_SKIN_TONE) || (species.bodyflags & HAS_ICON_SKIN_TONE))) + if(!isnull(dna.GetUIValue(DNA_UI_SKIN_TONE)) && ((dna.species2.bodyflags & HAS_SKIN_TONE) || (dna.species2.bodyflags & HAS_ICON_SKIN_TONE))) s_col = null s_tone = dna.GetUIValue(DNA_UI_SKIN_TONE) - if(species.bodyflags & HAS_SKIN_COLOR) + if(dna.species2.bodyflags & HAS_SKIN_COLOR) s_tone = null s_col = rgb(dna.GetUIValue(DNA_UI_SKIN_R), dna.GetUIValue(DNA_UI_SKIN_G), dna.GetUIValue(DNA_UI_SKIN_B)) @@ -64,11 +64,9 @@ var/global/list/limb_icon_cache = list() /obj/item/organ/external/proc/get_icon(skeletal, fat) // Kasparrov, you monster - if(istext(species)) - species = all_species[species] if(force_icon) mob_icon = new /icon(force_icon, "[icon_name]") - if(species && species.name == "Machine") //snowflake for IPC's, sorry. + if(istype(dna.species2, /datum/species/machine)) //snowflake for IPC's, sorry. if(s_col) mob_icon.Blend(s_col, ICON_ADD) else @@ -101,13 +99,13 @@ var/global/list/limb_icon_cache = list() if(!owner) return - if(species.has_organ["eyes"]) + if(dna.species2.has_organ["eyes"]) var/icon/eyes_icon = owner.get_eyecon() if(eyes_icon) mob_icon.Blend(eyes_icon, ICON_OVERLAY) overlays |= eyes_icon - if(owner.lip_style && (LIPS in species.species_traits)) + if(owner.lip_style && (LIPS in dna.species2.species_traits)) var/icon/lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s") overlays |= lip_icon mob_icon.Blend(lip_icon, ICON_OVERLAY) @@ -115,7 +113,7 @@ var/global/list/limb_icon_cache = list() var/head_marking = owner.m_styles["head"] if(head_marking && head_marking != "None") var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking] - if(head_marking_style && head_marking_style.species_allowed && (species.name in head_marking_style.species_allowed) && head_marking_style.marking_location == "head") + if(head_marking_style && head_marking_style.species_allowed && (dna.species2.name in head_marking_style.species_allowed) && head_marking_style.marking_location == "head") var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s") if(head_marking_style.do_colouration) h_marking_s.Blend(owner.m_colours["head"], ICON_ADD) @@ -123,7 +121,7 @@ var/global/list/limb_icon_cache = list() if(ha_style) var/datum/sprite_accessory/head_accessory_style = head_accessory_styles_list[ha_style] - if(head_accessory_style && head_accessory_style.species_allowed && (species.name in head_accessory_style.species_allowed)) + if(head_accessory_style && head_accessory_style.species_allowed && (dna.species2.name in head_accessory_style.species_allowed)) var/icon/head_accessory_s = new/icon("icon" = head_accessory_style.icon, "icon_state" = "[head_accessory_style.icon_state]_s") if(head_accessory_style.do_colouration) head_accessory_s.Blend(headacc_colour, ICON_ADD) @@ -131,9 +129,9 @@ var/global/list/limb_icon_cache = list() if(f_style) var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style] - if(facial_hair_style && ((facial_hair_style.species_allowed && (species.name in facial_hair_style.species_allowed)) || (src.species.bodyflags & ALL_RPARTS))) + if(facial_hair_style && ((facial_hair_style.species_allowed && (dna.species2.name in facial_hair_style.species_allowed)) || (dna.species2.bodyflags & ALL_RPARTS))) var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") - if(species.name == "Slime People") // I am el worstos + if(istype(dna.species2, /datum/species/slime)) // I am el worstos facial_s.Blend("[owner.skin_colour]A0", ICON_AND) //A0 = 160 alpha. else if(facial_hair_style.do_colouration) facial_s.Blend(facial_colour, ICON_ADD) @@ -141,9 +139,9 @@ var/global/list/limb_icon_cache = list() if(h_style && !(owner.head && (owner.head.flags & BLOCKHEADHAIR))) var/datum/sprite_accessory/hair_style = hair_styles_full_list[h_style] - if(hair_style && ((species.name in hair_style.species_allowed) || (src.species.bodyflags & ALL_RPARTS))) + if(hair_style && ((dna.species2.name in hair_style.species_allowed) || (dna.species2.bodyflags & ALL_RPARTS))) var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") - if(species.name == "Slime People") // I am el worstos + if(istype(dna.species2, /datum/species/slime)) // I am el worstos hair_s.Blend("[owner.skin_colour]A0", ICON_AND) //A0 = 160 alpha. else if(hair_style.do_colouration) hair_s.Blend(hair_colour, ICON_ADD) @@ -184,7 +182,7 @@ var/global/list/limb_icon_cache = list() /obj/item/organ/external/chest/get_icon_state(skeletal) var/result = ..() - if(fat && !skeletal && !is_robotic() && (CAN_BE_FAT in species.species_traits)) + if(fat && !skeletal && !is_robotic() && (CAN_BE_FAT in dna.species2.species_traits)) result[2] += "_fat" return result diff --git a/code/modules/surgery/organs/subtypes/abductor.dm b/code/modules/surgery/organs/subtypes/abductor.dm index 6fd234bc501..58efd0094ed 100644 --- a/code/modules/surgery/organs/subtypes/abductor.dm +++ b/code/modules/surgery/organs/subtypes/abductor.dm @@ -1,4 +1,3 @@ /obj/item/organ/internal/eyes/abductor name = "abductor eyeballs" - dark_view = 3 - species = "Abductor" + dark_view = 3 \ No newline at end of file diff --git a/code/modules/surgery/organs/subtypes/diona.dm b/code/modules/surgery/organs/subtypes/diona.dm index 951ca862317..173e3fd7977 100644 --- a/code/modules/surgery/organs/subtypes/diona.dm +++ b/code/modules/surgery/organs/subtypes/diona.dm @@ -6,7 +6,6 @@ amputation_point = "trunk" encased = null gendered_icon = 0 - species = "Diona" /obj/item/organ/external/groin/diona name = "fork" @@ -14,7 +13,6 @@ cannot_break = 1 amputation_point = "lower trunk" gendered_icon = 0 - species = "Diona" /obj/item/organ/external/arm/diona name = "left upper tendril" @@ -22,7 +20,6 @@ min_broken_damage = 20 cannot_break = 1 amputation_point = "upper left trunk" - species = "Diona" /obj/item/organ/external/arm/right/diona name = "right upper tendril" @@ -30,7 +27,6 @@ min_broken_damage = 20 cannot_break = 1 amputation_point = "upper right trunk" - species = "Diona" /obj/item/organ/external/leg/diona name = "left lower tendril" @@ -38,7 +34,6 @@ min_broken_damage = 20 cannot_break = 1 amputation_point = "lower left fork" - species = "Diona" /obj/item/organ/external/leg/right/diona name = "right lower tendril" @@ -46,7 +41,6 @@ min_broken_damage = 20 cannot_break = 1 amputation_point = "lower right fork" - species = "Diona" /obj/item/organ/external/foot/diona name = "left foot" @@ -54,7 +48,6 @@ min_broken_damage = 10 cannot_break = 1 amputation_point = "branch" - species = "Diona" /obj/item/organ/external/foot/right/diona name = "right foot" @@ -62,19 +55,16 @@ min_broken_damage = 10 cannot_break = 1 amputation_point = "branch" - species = "Diona" /obj/item/organ/external/hand/diona name = "left grasper" cannot_break = 1 amputation_point = "branch" - species = "Diona" /obj/item/organ/external/hand/right/diona name = "right grasper" cannot_break = 1 amputation_point = "branch" - species = "Diona" /obj/item/organ/external/head/diona max_damage = 50 @@ -83,7 +73,6 @@ encased = null amputation_point = "upper trunk" gendered_icon = 0 - species = "Diona" //DIONA ORGANS. /* /obj/item/organ/external/diona/removed() @@ -101,31 +90,26 @@ name = "neural strata" icon = 'icons/obj/objects.dmi' icon_state = "nymph" - species = "Diona" /obj/item/organ/internal/brain/diona // Turns into a nymph instantly, no transplanting possible. name = "gas bladder" icon = 'icons/obj/objects.dmi' icon_state = "nymph" - species = "Diona" /obj/item/organ/internal/kidneys/diona // Turns into a nymph instantly, no transplanting possible. name = "polyp segment" icon = 'icons/obj/objects.dmi' icon_state = "nymph" - species = "Diona" /obj/item/organ/internal/appendix/diona // Turns into a nymph instantly, no transplanting possible. name = "anchoring ligament" icon = 'icons/obj/objects.dmi' icon_state = "nymph" - species = "Diona" /obj/item/organ/internal/eyes/diona // Turns into a nymph instantly, no transplanting possible. name = "receptor node" icon = 'icons/mob/alien.dmi' icon_state = "claw" - species = "Diona" //TODO:Make absorb rads on insert @@ -133,15 +117,4 @@ name = "nutrient vessel" icon = 'icons/mob/alien.dmi' icon_state = "claw" - alcohol_intensity = 0.5 - species = "Diona" - -//TODO:Make absorb light on insert. - -/*/obj/item/organ/diona/removed(var/mob/living/user) - var/mob/living/carbon/human/H = owner - ..() - if(!istype(H) || !H.bodyparts || !H.bodyparts.len) - H.death() - if(prob(50) && spawn_diona_nymph_from_organ(src)) - qdel(src) */ + alcohol_intensity = 0.5 \ No newline at end of file diff --git a/code/modules/surgery/organs/subtypes/drask.dm b/code/modules/surgery/organs/subtypes/drask.dm index 8560d2408ec..6e11cf2993e 100644 --- a/code/modules/surgery/organs/subtypes/drask.dm +++ b/code/modules/surgery/organs/subtypes/drask.dm @@ -4,31 +4,26 @@ icon = 'icons/obj/surgery_drask.dmi' icon_state = "innards" desc = "A greenish, slightly translucent organ. It is extremely cold." - species = "Drask" /obj/item/organ/internal/heart/drask name = "drask heart" icon = 'icons/obj/surgery_drask.dmi' parent_organ = "head" - species = "Drask" /obj/item/organ/internal/liver/drask name = "metabolic strainer" icon = 'icons/obj/surgery_drask.dmi' icon_state = "kidneys" alcohol_intensity = 0.8 - species = "Drask" /obj/item/organ/internal/brain/drask icon = 'icons/obj/surgery_drask.dmi' icon_state = "brain2" mmi_icon = 'icons/obj/surgery_drask.dmi' mmi_icon_state = "mmi_full" - species = "Drask" /obj/item/organ/internal/eyes/drask name = "drask eyeballs" icon = 'icons/obj/surgery_drask.dmi' desc = "Drask eyes. They look even stranger disembodied" - dark_view = 5 - species = "Drask" + dark_view = 5 \ No newline at end of file diff --git a/code/modules/surgery/organs/subtypes/grey.dm b/code/modules/surgery/organs/subtypes/grey.dm index 6c06da373b7..177e4ae5be1 100644 --- a/code/modules/surgery/organs/subtypes/grey.dm +++ b/code/modules/surgery/organs/subtypes/grey.dm @@ -1,11 +1,9 @@ /obj/item/organ/internal/liver/grey alcohol_intensity = 1.6 - species = "Grey" /obj/item/organ/internal/brain/grey icon_state = "brain-x" mmi_icon_state = "mmi_alien" - species = "Grey" /obj/item/organ/internal/brain/grey/insert(var/mob/living/carbon/M, var/special = 0) ..() @@ -17,5 +15,4 @@ /obj/item/organ/internal/eyes/grey name = "grey eyeballs" - dark_view = 5 - species = "Grey" + dark_view = 5 \ No newline at end of file diff --git a/code/modules/surgery/organs/subtypes/kidan.dm b/code/modules/surgery/organs/subtypes/kidan.dm index 37fd74a6d2a..d8fc67cc542 100644 --- a/code/modules/surgery/organs/subtypes/kidan.dm +++ b/code/modules/surgery/organs/subtypes/kidan.dm @@ -1,6 +1,5 @@ /obj/item/organ/internal/liver/kidan alcohol_intensity = 0.5 - species = "Kidan" #define KIDAN_LANTERN_HUNGERCOST 0.5 #define KIDAN_LANTERN_MINHUNGER 150 diff --git a/code/modules/surgery/organs/subtypes/machine.dm b/code/modules/surgery/organs/subtypes/machine.dm index 589ade0e7de..e51d443bc72 100644 --- a/code/modules/surgery/organs/subtypes/machine.dm +++ b/code/modules/surgery/organs/subtypes/machine.dm @@ -5,7 +5,6 @@ min_broken_damage = 30 encased = null status = ORGAN_ROBOT - species = "Machine" /obj/item/organ/external/head/ipc/New() robotize("Morpheus Cyberkinetics") @@ -14,7 +13,6 @@ /obj/item/organ/external/chest/ipc encased = null status = ORGAN_ROBOT - species = "Machine" /obj/item/organ/external/chest/ipc/New() robotize("Morpheus Cyberkinetics") @@ -23,7 +21,6 @@ /obj/item/organ/external/groin/ipc encased = null status = ORGAN_ROBOT - species = "Machine" /obj/item/organ/external/groin/ipc/New() robotize("Morpheus Cyberkinetics") @@ -32,7 +29,6 @@ /obj/item/organ/external/arm/ipc encased = null status = ORGAN_ROBOT - species = "Machine" /obj/item/organ/external/arm/ipc/New() robotize("Morpheus Cyberkinetics") @@ -41,7 +37,6 @@ /obj/item/organ/external/arm/right/ipc encased = null status = ORGAN_ROBOT - species = "Machine" /obj/item/organ/external/arm/right/ipc/New() robotize("Morpheus Cyberkinetics") @@ -49,7 +44,6 @@ /obj/item/organ/external/leg/ipc encased = null status = ORGAN_ROBOT - species = "Machine" /obj/item/organ/external/leg/ipc/New() robotize("Morpheus Cyberkinetics") @@ -58,7 +52,6 @@ /obj/item/organ/external/leg/right/ipc encased = null status = ORGAN_ROBOT - species = "Machine" /obj/item/organ/external/leg/right/ipc/New() robotize("Morpheus Cyberkinetics") @@ -67,7 +60,6 @@ /obj/item/organ/external/foot/ipc encased = null status = ORGAN_ROBOT - species = "Machine" /obj/item/organ/external/foot/ipc/New() robotize("Morpheus Cyberkinetics") @@ -76,7 +68,6 @@ /obj/item/organ/external/foot/right/ipc encased = null status = ORGAN_ROBOT - species = "Machine" /obj/item/organ/external/foot/right/ipc/New() robotize("Morpheus Cyberkinetics") @@ -85,7 +76,6 @@ /obj/item/organ/external/hand/ipc encased = null status = ORGAN_ROBOT - species = "Machine" /obj/item/organ/external/hand/ipc/New() robotize("Morpheus Cyberkinetics") @@ -94,7 +84,6 @@ /obj/item/organ/external/hand/right/ipc encased = null status = ORGAN_ROBOT - species = "Machine" /obj/item/organ/external/hand/right/ipc/New() robotize("Morpheus Cyberkinetics") @@ -110,7 +99,6 @@ slot = "heart" vital = TRUE status = ORGAN_ROBOT - species = "Machine" /obj/item/organ/internal/cell/New() robotize() @@ -121,7 +109,6 @@ icon = 'icons/obj/robot_component.dmi' icon_state = "camera" status = ORGAN_ROBOT - species = "Machine" // dead_icon = "camera_broken" weld_proof = 1 diff --git a/code/modules/surgery/organs/subtypes/nucleation.dm b/code/modules/surgery/organs/subtypes/nucleation.dm index 4223834501d..3be564fc800 100644 --- a/code/modules/surgery/organs/subtypes/nucleation.dm +++ b/code/modules/surgery/organs/subtypes/nucleation.dm @@ -3,7 +3,6 @@ name = "nucleation organ" icon = 'icons/obj/surgery.dmi' desc = "A crystalized human organ. /red It has a strangely iridescent glow." - species = "Nucleation" /obj/item/organ/internal/nucleation/resonant_crystal name = "resonant crystal" @@ -11,7 +10,6 @@ organ_tag = "resonant crystal" parent_organ = "head" slot = "res_crystal" - species = "Nucleation" /obj/item/organ/internal/nucleation/strange_crystal name = "strange crystal" @@ -19,14 +17,12 @@ organ_tag = "strange crystal" parent_organ = "chest" slot = "heart" - species = "Nucleation" /obj/item/organ/internal/eyes/luminescent_crystal name = "luminescent eyes" icon_state = "crystal-eyes" organ_tag = "luminescent eyes" light_color = "#1C1C00" - species = "Nucleation" /obj/item/organ/internal/eyes/luminescent_crystal/New() set_light(2) @@ -35,5 +31,4 @@ /obj/item/organ/internal/brain/crystal name = "crystallized brain" icon_state = "crystal-brain" - organ_tag = "crystallized brain" - species = "Nucleation" + organ_tag = "crystallized brain" \ No newline at end of file diff --git a/code/modules/surgery/organs/subtypes/shadow.dm b/code/modules/surgery/organs/subtypes/shadow.dm index f81fc54bfb1..26a0bc50577 100644 --- a/code/modules/surgery/organs/subtypes/shadow.dm +++ b/code/modules/surgery/organs/subtypes/shadow.dm @@ -1,4 +1,3 @@ /obj/item/organ/internal/eyes/shadow name = "dark orbs" - dark_view = 8 - species = "Shadow" + dark_view = 8 \ No newline at end of file diff --git a/code/modules/surgery/organs/subtypes/skrell.dm b/code/modules/surgery/organs/subtypes/skrell.dm index cb87d1c11c1..fd8a02f18d3 100644 --- a/code/modules/surgery/organs/subtypes/skrell.dm +++ b/code/modules/surgery/organs/subtypes/skrell.dm @@ -1,6 +1,5 @@ /obj/item/organ/internal/liver/skrell alcohol_intensity = 4 - species = "Skrell" /obj/item/organ/internal/headpocket name = "headpocket" @@ -10,7 +9,6 @@ w_class = WEIGHT_CLASS_TINY parent_organ = "head" slot = "headpocket" - species = "Skrell" actions_types = list(/datum/action/item_action/organ_action/toggle) var/obj/item/storage/internal/pocket diff --git a/code/modules/surgery/organs/subtypes/tajaran.dm b/code/modules/surgery/organs/subtypes/tajaran.dm index a1313934037..1857fc5e45a 100644 --- a/code/modules/surgery/organs/subtypes/tajaran.dm +++ b/code/modules/surgery/organs/subtypes/tajaran.dm @@ -1,17 +1,14 @@ /obj/item/organ/internal/liver/tajaran alcohol_intensity = 1.4 - species = "Tajaran" /obj/item/organ/internal/eyes/tajaran name = "tajaran eyeballs" - species = "Tajaran" colourblind_matrix = MATRIX_TAJ_CBLIND //The colour matrix and darksight parameters that the mob will recieve when they get the disability. replace_colours = LIST_TAJ_REPLACE dark_view = 8 /obj/item/organ/internal/eyes/tajaran/farwa //Being the lesser form of Tajara, Farwas have an utterly incurable version of their colourblindness. name = "farwa eyeballs" - species = "Farwa" colourmatrix = MATRIX_TAJ_CBLIND dark_view = 8 replace_colours = LIST_TAJ_REPLACE diff --git a/code/modules/surgery/organs/subtypes/unathi.dm b/code/modules/surgery/organs/subtypes/unathi.dm index 0fb45319ce5..219ef0447e6 100644 --- a/code/modules/surgery/organs/subtypes/unathi.dm +++ b/code/modules/surgery/organs/subtypes/unathi.dm @@ -1,8 +1,6 @@ /obj/item/organ/internal/liver/unathi alcohol_intensity = 0.8 - species = "Unathi" /obj/item/organ/internal/eyes/unathi name = "unathi eyeballs" - dark_view = 3 - species = "Unathi" + dark_view = 3 \ No newline at end of file diff --git a/code/modules/surgery/organs/subtypes/vox.dm b/code/modules/surgery/organs/subtypes/vox.dm index f5b4b4edc07..7028d6f1fc2 100644 --- a/code/modules/surgery/organs/subtypes/vox.dm +++ b/code/modules/surgery/organs/subtypes/vox.dm @@ -1,6 +1,5 @@ /obj/item/organ/internal/liver/vox alcohol_intensity = 1.6 - species = "Vox" /obj/item/organ/internal/stack diff --git a/code/modules/surgery/organs/subtypes/vulpkanin.dm b/code/modules/surgery/organs/subtypes/vulpkanin.dm index be851c43486..959fbcc926c 100644 --- a/code/modules/surgery/organs/subtypes/vulpkanin.dm +++ b/code/modules/surgery/organs/subtypes/vulpkanin.dm @@ -1,18 +1,14 @@ /obj/item/organ/internal/liver/vulpkanin alcohol_intensity = 1.4 - species = "Vulpkanin" - /obj/item/organ/internal/eyes/vulpkanin name = "vulpkanin eyeballs" - species = "Vulpkanin" colourblind_matrix = MATRIX_VULP_CBLIND //The colour matrix and darksight parameters that the mob will recieve when they get the disability. replace_colours = LIST_VULP_REPLACE dark_view = 8 /obj/item/organ/internal/eyes/vulpkanin/wolpin //Being the lesser form of Vulpkanin, Wolpins have an utterly incurable version of their colourblindness. name = "wolpin eyeballs" - species = "Wolpin" colourmatrix = MATRIX_VULP_CBLIND dark_view = 8 - replace_colours = LIST_VULP_REPLACE + replace_colours = LIST_VULP_REPLACE \ No newline at end of file diff --git a/code/modules/surgery/organs/subtypes/wryn.dm b/code/modules/surgery/organs/subtypes/wryn.dm index ee1a12fd1ab..ab30c16f61f 100644 --- a/code/modules/surgery/organs/subtypes/wryn.dm +++ b/code/modules/surgery/organs/subtypes/wryn.dm @@ -6,8 +6,6 @@ icon_state = "antennae" parent_organ = "head" slot = "hivenode" - species = "Wryn" /obj/item/organ/internal/eyes/wryn - dark_view = 3 - species = "Wryn" + dark_view = 3 \ No newline at end of file