From 7440dad57ea9a5302cd9e05e42b2739529fdb987 Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Wed, 18 Jul 2018 01:13:24 -0400 Subject: [PATCH] further conversion --- code/__DEFINES/genetics.dm | 3 +- code/__DEFINES/mobs.dm | 26 ++++++++- code/__HELPERS/mobs.dm | 4 +- code/_onclick/item_attack.dm | 2 +- code/datums/datacore.dm | 2 +- code/datums/diseases/kingstons.dm | 55 ++++++++++--------- code/datums/diseases/transformation.dm | 4 +- code/datums/outfits/outfit_admin.dm | 2 +- code/game/dna/dna2.dm | 6 +- code/game/gamemodes/cult/talisman.dm | 2 +- code/game/gamemodes/intercept_report.dm | 2 +- .../miniantags/abduction/abduction.dm | 2 +- .../miniantags/abduction/abduction_gear.dm | 2 +- .../miniantags/abduction/abduction_surgery.dm | 4 +- code/game/gamemodes/shadowling/shadowling.dm | 4 +- .../shadowling/shadowling_abilities.dm | 12 ++-- code/game/gamemodes/wizard/artefact.dm | 10 ++-- code/game/gamemodes/wizard/wizard.dm | 2 +- code/game/jobs/job/support.dm | 2 +- code/game/machinery/dye_generator.dm | 2 +- code/game/machinery/machinery.dm | 2 +- code/game/machinery/poolcontroller.dm | 2 +- code/game/objects/items/weapons/cosmetics.dm | 2 +- .../weapons/implants/implant_abductor.dm | 2 +- code/game/objects/items/weapons/scissors.dm | 2 +- code/game/objects/items/weapons/soap.dm | 2 +- code/modules/admin/verbs/onlyone.dm | 4 +- code/modules/admin/verbs/onlyoneteam.dm | 4 +- .../awaymissions/mission_code/wildwest.dm | 8 +-- .../clothing/spacesuits/miscellaneous.dm | 2 +- code/modules/clothing/spacesuits/rig/rig.dm | 4 +- code/modules/customitems/item_defines.dm | 4 +- .../kitchen_machinery/gibber.dm | 2 +- code/modules/hydroponics/beekeeping/beebox.dm | 2 +- .../mining/lavaland/loot/tendril_loot.dm | 2 +- code/modules/mob/living/carbon/brain/brain.dm | 4 +- code/modules/mob/living/carbon/human/emote.dm | 42 +++++++++----- .../mob/living/carbon/human/examine.dm | 6 +- code/modules/mob/living/carbon/human/human.dm | 10 +--- .../living/carbon/human/species/abductor.dm | 2 +- .../mob/living/carbon/human/species/monkey.dm | 1 + .../living/carbon/human/species/station.dm | 6 +- .../mob/living/carbon/human/update_icons.dm | 2 +- code/modules/mob/living/carbon/slime/life.dm | 2 +- .../living/simple_animal/friendly/diona.dm | 4 +- code/modules/mob/mob.dm | 3 - code/modules/mob/mob_helpers.dm | 6 +- code/modules/mob/new_player/new_player.dm | 13 ----- code/modules/projectiles/gun.dm | 4 +- code/modules/projectiles/guns/alien.dm | 4 +- code/modules/projectiles/projectile/magic.dm | 12 ++-- .../reagents/chemistry/reagents/toxins.dm | 8 +-- .../reagents/chemistry/reagents/water.dm | 4 +- code/modules/surgery/limb_reattach.dm | 2 +- code/modules/surgery/organs/organ_external.dm | 3 +- code/modules/surgery/other.dm | 2 +- code/modules/surgery/plastic_surgery.dm | 2 +- code/modules/surgery/surgery.dm | 19 +------ 58 files changed, 177 insertions(+), 176 deletions(-) diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index aba6e6baea9..65b7f0f24d0 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -142,4 +142,5 @@ #define VIRUSIMMUNE 14 #define NOCRITDAMAGE 15 #define RESISTHOT 16 -#define RESISTCOLD 17 \ No newline at end of file +#define RESISTCOLD 17 +#define NO_EXAMINE 18 \ No newline at end of file diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 023ebe426d9..74119ae23bf 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -130,7 +130,31 @@ #define EYE_SHINE_THRESHOLD 6 //dark_view threshold past which a humanoid's eyes will 'shine' in the dark. //Human sub-species -#define isabductor(A) (is_species(A, "Abductor")) +#define isshadowling(A) (is_species(A, /datum/species/shadow/ling)) +#define isshadowlinglesser(A) (is_species(A, /datum/species/shadow/ling/lesser)) +#define isabductor(A) (is_species(A, /datum/species/abductor)) +#define isgolem(A) (is_species(A, /datum/species/golem)) +#define ismonkeybasic(A) (is_species(A, /datum/species/monkey)) +#define isfarwa(A) (is_species(A, /datum/species/monkey/tajaran)) +#define iswolpain(A) (is_species(A, /datum/species/monkey/vulpkanin)) +#define isneara(A) (is_species(A, /datum/species/monkey/skrell)) +#define isttok(A) (is_species(A, /datum/species/monkey/unathi)) +#define isplasmaman(A) (is_species(A, /datum/species/plasmaman)) +#define isshadowperson(A) (is_species(A, /datum/species/shadow)) +#define isskeleton(A) (is_species(A, /datum/species/skeleton)) +#define ishumanbasic(A) (is_species(A, /datum/species/human)) +#define isunathi(A) (is_species(A, /datum/species/unathi)) +#define istajaran(A) (is_species(A, /datum/species/tajaran)) +#define isvulpkanin(A) (is_species(A, /datum/species/vulpkanin)) +#define isskrell(A) (is_species(A, /datum/species/skrell)) +#define isvox(A) (is_species(A, /datum/species/vox)) +#define isvoxarmalis(A) (is_species(A, /datum/species/vox/armalis)) +#define iskidan(A) (is_species(A, /datum/species/kidan)) +#define isslimeperson(A) (is_species(A, /datum/species/slime)) +#define isgrey(A) (is_species(A, /datum/species/grey)) +#define isdiona(A) (is_species(A, /datum/species/diona)) +#define ismachine(A) (is_species(A, /datum/species/machine)) +#define isdrask(A) (is_species(A, /datum/species/drask)) #define isanimal(A) (istype((A), /mob/living/simple_animal)) #define iscorgi(A) (istype((A), /mob/living/simple_animal/pet/corgi)) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 8628e6957cf..3a6e8be62ac 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -373,11 +373,11 @@ This is always put in the attack log. if(progress) qdel(progbar) -/proc/is_species(A, species_name) +/proc/is_species(A, species_datum) . = FALSE if(ishuman(A)) var/mob/living/carbon/human/H = A - if(H.get_species() == species_name) + if(H.dna && istype(H.dna.species, species_datum)) . = TRUE /proc/spawn_atom_to_turf(spawn_type, target, amount, admin_spawn=FALSE, list/extra_args) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 71cb7bc9cc0..0299a7ec2fc 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -43,7 +43,7 @@ else return 1 - if(isscrewdriver(src) && M.get_species() == "Machine") + if(isscrewdriver(src) && ismachine(M)) if(!attempt_initiate_surgery(src, M, user)) return 0 else diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index ebacefbcc49..4fc2522ce65 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -280,7 +280,7 @@ var/record_id_num = 1001 G.fields["p_stat"] = "Active" G.fields["m_stat"] = "Stable" G.fields["sex"] = capitalize(H.gender) - G.fields["species"] = H.get_species() + G.fields["species"] = H.dna.species.name G.fields["photo"] = get_id_photo(H) G.fields["photo-south"] = "'data:image/png;base64,[icon2base64(icon(G.fields["photo"], dir = SOUTH))]'" G.fields["photo-west"] = "'data:image/png;base64,[icon2base64(icon(G.fields["photo"], dir = WEST))]'" diff --git a/code/datums/diseases/kingstons.dm b/code/datums/diseases/kingstons.dm index e65f5da3355..260f01e0301 100644 --- a/code/datums/diseases/kingstons.dm +++ b/code/datums/diseases/kingstons.dm @@ -16,26 +16,26 @@ switch(stage) if(1) if(prob(10)) - if(affected_mob.get_species() == "Tajaran") + if(istajaran(affected_mob)) to_chat(affected_mob, "You feel good.") else to_chat(affected_mob, "You feel like playing with string.") if(2) if(prob(10)) - if(affected_mob.get_species() == "Tajaran") + if(istajaran(affected_mob)) to_chat(affected_mob, "Something in your throat itches.") else to_chat(affected_mob, "You NEED to find a mouse.") if(3) if(prob(10)) - if(affected_mob.get_species() == "Tajaran") + if(istajaran(affected_mob)) to_chat(affected_mob, "You feel something in your throat!") affected_mob.emote("cough") else affected_mob.say(pick(list("Mew", "Meow!", "Nya!~"))) if(4) if(prob(5)) - if(affected_mob.get_species() == "Tajaran") + if(istajaran(affected_mob)) affected_mob.visible_message("[affected_mob] coughs up a hairball!", \ "You cough up a hairball!") affected_mob.Stun(5) @@ -59,7 +59,7 @@ severity = BIOHAZARD var/list/virspecies = list(/datum/species/human, /datum/species/tajaran, /datum/species/unathi,/datum/species/skrell, /datum/species/vulpkanin) //no karma races sorrys. var/list/virsuffix = list("pox", "rot", "flu", "cough", "-gitis", "cold", "rash", "itch", "decay") - var/chosentype + var/datum/species/chosentype var/chosensuff /datum/disease/kingstons/advanced/New() @@ -70,26 +70,27 @@ /datum/disease/kingstons/advanced/stage_act() ..() - switch(stage) - if(1) - if(prob(10)) - to_chat(affected_mob, "You feel awkward.") - if(2) - if(prob(10)) - to_chat(affected_mob, "You itch.") - if(3) - if(prob(10)) - to_chat(affected_mob, "Your skin starts to flake!") + if(ishuman(affected_mob)) + var/mob/living/carbon/human/twisted = affected_mob + switch(stage) + if(1) + if(prob(10)) + to_chat(twisted, "You feel awkward.") + if(2) + if(prob(10)) + to_chat(twisted, "You itch.") + if(3) + if(prob(10)) + to_chat(twisted, "Your skin starts to flake!") - if(4) - if(prob(5)) - if(affected_mob.get_species() != chosentype) - affected_mob.visible_message("[affected_mob]'s skin splits and form contorts!", \ - "Your body mutates into a [chosentype]!") - var/mob/living/carbon/human/twisted = affected_mob - twisted.set_species(chosentype) - else - affected_mob.visible_message("[affected_mob] scratches at thier skin!", \ - "You scratch your skin to try not to itch!") - affected_mob.adjustBruteLoss(-5) - affected_mob.adjustStaminaLoss(5) \ No newline at end of file + if(4) + if(prob(5)) + if(!istype(twisted.dna.species, chosentype)) + twisted.visible_message("[twisted]'s skin splits and form contorts!", \ + "Your body mutates into a [initial(chosentype.name)]!") + twisted.set_species(chosentype) + else + twisted.visible_message("[twisted] scratches at thier skin!", \ + "You scratch your skin to try not to itch!") + twisted.adjustBruteLoss(-5) + twisted.adjustStaminaLoss(5) \ No newline at end of file diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 8ffbcba22c9..444b4838319 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -194,12 +194,12 @@ if(1) if(ishuman(affected_mob)) var/mob/living/carbon/human/H = affected_mob - if(H.dna.species.name == "Slime People") + if(isslimeperson(H)) stage = 5 if(3) if(ishuman(affected_mob)) var/mob/living/carbon/human/human = affected_mob - if(human.dna.species.name != "Slime People") + if(!isslimeperson(human)) human.set_species(/datum/species/slime) /datum/disease/transformation/corgi diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index b31084aee9f..edb254203bf 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -371,7 +371,7 @@ ) /datum/outfit/admin/vox/equip(mob/living/carbon/human/H, visualsOnly = FALSE) - if(H.get_species() == "Vox Armalis") + if(isvoxarmalis(H)) . = ..() else H.equip_vox_raider() diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index f7c36929432..131ebdf3428 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -435,8 +435,4 @@ var/global/list/bad_blocks[0] UpdateSE() species = 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.name \ No newline at end of file + real_name = data["real_name"] \ No newline at end of file diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index 8d858c6fade..70e78176463 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -279,7 +279,7 @@ var/mob/living/carbon/human/H = user user.visible_message("Otherworldly armor suddenly appears on [user]!", \ "You speak the words of the talisman, arming yourself!") - if(H.get_species() == "Plasmaman") + if(isplasmaman(H)) H.equip_to_slot(new /obj/item/clothing/suit/space/eva/plasmaman/cultist(H), slot_wear_suit) H.equip_to_slot(new /obj/item/clothing/head/helmet/space/eva/plasmaman/cultist(H), slot_head) else diff --git a/code/game/gamemodes/intercept_report.dm b/code/game/gamemodes/intercept_report.dm index 50b749a62a2..ca868f4874e 100644 --- a/code/game/gamemodes/intercept_report.dm +++ b/code/game/gamemodes/intercept_report.dm @@ -116,7 +116,7 @@ if((man.mind.assigned_role in ticker.mode.protected_jobs) || (man.mind.assigned_role in ticker.mode.restricted_jobs)) return //don't include suspects who can't possibly be the antag based on their species (no suspecting the machines of being sneaky changelings) - if(man.get_species() in ticker.mode.protected_species) + if(man.dna.species.name in ticker.mode.protected_species) return dudes += man for(var/i = 0, i < max(player_list.len/10,2), i++) diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm index d94ea557744..09e91869fd9 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -338,7 +338,7 @@ if(!owner.current || !ishuman(owner.current)) return 0 var/mob/living/carbon/human/H = owner.current - if(H.get_species() != "Abductor") + if(!isabductor(H)) return 0 ab_team = H.mind.abductor.team for(var/obj/machinery/abductor/experiment/E in abductor_equipment) diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index 99e93288645..73a910e54ef 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -248,7 +248,7 @@ name = "alien pistol" desc = "A complicated gun that fires bursts of high-intensity radiation." ammo_type = list(/obj/item/ammo_casing/energy/declone) - restricted_species = list("Abductor") + restricted_species = list(/datum/species/abductor) icon_state = "alienpistol" item_state = "alienpistol" origin_tech = "combat=4;magnets=7;powerstorage=3;abductor=3" diff --git a/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm b/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm index 3ecb33466c8..d4d791c5b19 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm @@ -15,7 +15,7 @@ return FALSE var/mob/living/carbon/human/H = user // You must either: Be of the abductor species, or contain an abductor implant - if((H.get_species() == "Abductor" || (locate(/obj/item/implant/abductor) in H))) + if((isabductor(H) || (locate(/obj/item/implant/abductor) in H))) return TRUE return FALSE @@ -93,7 +93,7 @@ return FALSE var/mob/living/carbon/human/H = user // You must either: Be of the abductor species, or contain an abductor implant - if((H.get_species() == "Abductor" || (locate(/obj/item/implant/abductor) in H))) + if((isabductor(H) || (locate(/obj/item/implant/abductor) in H))) return TRUE return FALSE diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 1d0bb3adf03..3c1f5d47ed8 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -209,7 +209,7 @@ Made by Xhuis if(shadow.special_role == SPECIAL_ROLE_SHADOWLING && config.shadowling_max_age) if(ishuman(shadow.current)) var/mob/living/carbon/human/H = shadow.current - if(H.get_species() != "Shadow") + if(!isshadowling(H)) for(var/obj/effect/proc_holder/spell/targeted/shadowling_hatch/hatch_ability in shadow.spell_list) hatch_ability.cycles_unused++ if(!H.stunned && prob(20) && hatch_ability.cycles_unused > config.shadowling_max_age) @@ -317,7 +317,7 @@ Made by Xhuis blood_color = "#555555" flesh_color = "#222222" - species_traits = list(NO_BLOOD, NO_BREATHE, RADIMMUNE, NOGUNS) //Can't use guns due to muzzle flash + species_traits = list(NO_BLOOD, NO_BREATHE, RADIMMUNE, NOGUNS, NO_EXAMINE) //Can't use guns due to muzzle flash burn_mod = 1.5 //1.5x burn damage, 2x is excessive oxy_mod = 0 heatmod = 1.5 diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm index 3cb08739a7c..f8f55f0e126 100644 --- a/code/game/gamemodes/shadowling/shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm @@ -2,8 +2,10 @@ /obj/effect/proc_holder/spell/proc/shadowling_check(var/mob/living/carbon/human/H) if(!H || !istype(H)) return - if(H.get_species() == "Shadowling" && is_shadow(H)) return 1 - if(H.get_species() == "Lesser Shadowling" && is_thrall(H)) return 1 + if(isshadowling(H) && is_shadow(H)) + return 1 + if(isshadowlinglesser(H) && is_thrall(H)) + return 1 if(!is_shadow_or_thrall(usr)) to_chat(usr, "You can't wrap your head around how to do this.") else if(is_thrall(usr)) @@ -267,7 +269,7 @@ listclearnulls(ticker.mode.shadowling_thralls) if(!(ling.mind in ticker.mode.shadows)) return - if(ling.get_species() != "Shadowling") + if(!isshadowling(ling)) if(ticker.mode.shadowling_thralls.len >= 5) charge_counter = charge_max return @@ -610,7 +612,7 @@ to_chat(user, "[thrallToRevive] must be conscious to become empowered.") charge_counter = charge_max return - if(thrallToRevive.get_species() == "Lesser Shadowling") + if(isshadowlinglesser(thrallToRevive)) to_chat(user, "[thrallToRevive] is already empowered.") charge_counter = charge_max return @@ -619,7 +621,7 @@ if(!ishuman(M.current)) return var/mob/living/carbon/human/H = M.current - if(H.get_species() == "Lesser Shadowling") + if(isshadowlinglesser(H)) empowered_thralls++ if(empowered_thralls >= EMPOWERED_THRALL_LIMIT) to_chat(user, "You cannot spare this much energy. There are too many empowered thralls.") diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index 801eb6cb33c..2ac4bc0b2f8 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -429,7 +429,7 @@ var/global/list/multiverse = list() M.equip_to_slot_or_del(sword, slot_r_hand) //Don't duplicate what's equipped to hands, or else duplicate swords could be generated...or weird cases of factionless swords. else - if(M.get_species() == "Tajaran" || M.get_species() == "Unathi") + if(istajaran(M) || isunathi(M)) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) //If they can't wear shoes, give them a pair of sandals. var/randomize = pick("mobster","roman","wizard","cyborg","syndicate","assistant", "animu", "cultist", "highlander", "clown", "killer", "pirate", "soviet", "officer", "gladiator") @@ -461,7 +461,7 @@ var/global/list/multiverse = list() M.equip_to_slot_or_del(sword, slot_r_hand) if("cyborg") - if(M.get_species() != "Machine") + if(!ismachine(M)) for(var/obj/item/organ/O in M.bodyparts) O.robotize(make_tough = 1) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses) @@ -584,9 +584,9 @@ var/global/list/multiverse = list() W.SetOwnerInfo(M) M.equip_to_slot_or_del(W, slot_wear_id) - if(M.get_species() == "Vox") - M.dna.species.after_equip_job(null, M) //Voxygen(tm) - if(M.get_species() == "Plasmaman") + if(isvox(M)) + M.dna.species.after_equip_job(null, M) //Nitrogen tanks + if(isplasmaman(M)) M.dna.species.after_equip_job(null, M) //No fireballs from other dimensions. M.update_icons() diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index eee87148118..18dda0fcbc4 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -141,7 +141,7 @@ wizard_mob.equip_to_slot_or_del(new /obj/item/radio/headset(wizard_mob), slot_l_ear) wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(wizard_mob), slot_w_uniform) wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(wizard_mob), slot_shoes) - if(wizard_mob.get_species() != "Plasmaman") //handled in the species file for plasmen on the afterjob equip proc for now + if(!isplasmaman(wizard_mob)) //handled in the species file for plasmen on the afterjob equip proc for now wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(wizard_mob), slot_wear_suit) wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(wizard_mob), slot_head) wizard_mob.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(wizard_mob), slot_back) diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm index 154a34750cd..5c4c559a8b0 100644 --- a/code/game/jobs/job/support.dm +++ b/code/game/jobs/job/support.dm @@ -244,7 +244,7 @@ if(visualsOnly) return - if(H.get_species() == "Machine") + if(ismachine(H)) var/obj/item/organ/internal/cyberimp/brain/clown_voice/implant = new implant.insert(H) diff --git a/code/game/machinery/dye_generator.dm b/code/game/machinery/dye_generator.dm index b141990fb6f..52b11da599b 100644 --- a/code/game/machinery/dye_generator.dm +++ b/code/game/machinery/dye_generator.dm @@ -98,7 +98,7 @@ var/mob/living/carbon/human/H = M var/dye_list = list("hair", "alt. hair theme") - if(H.gender == MALE || H.get_species() == "Vulpkanin") + if(H.gender == MALE || isvulpkanin(H)) dye_list += "facial hair" dye_list += "alt. facial hair theme" diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index e846ba591e2..baa424cb209 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -562,7 +562,7 @@ Class Procs: if(istype(perp.belt, /obj/item/gun) || istype(perp.belt, /obj/item/melee)) threatcount += 2 - if(perp.dna.species.name != "Human") //beepsky so racist. + if(!ishumanbasic(perp)) //beepsky so racist. threatcount += 2 if(check_records || check_arrest) diff --git a/code/game/machinery/poolcontroller.dm b/code/game/machinery/poolcontroller.dm index b134b53bd86..3d7f6a52e70 100644 --- a/code/game/machinery/poolcontroller.dm +++ b/code/game/machinery/poolcontroller.dm @@ -92,7 +92,7 @@ return //Has internals, no drowning if((NO_BREATHE in drownee.dna.species.species_traits) || (BREATHLESS in drownee.mutations)) return //doesn't breathe, no drowning - if(drownee.get_species() == "Skrell" || drownee.get_species() == "Neara") + if(isskrell(drownee) || isneara(drownee)) return //fish things don't drown if(drownee.stat == DEAD) //Dead spacemen don't drown more diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm index d9c7eb5ef83..c28fd68fc62 100644 --- a/code/game/objects/items/weapons/cosmetics.dm +++ b/code/game/objects/items/weapons/cosmetics.dm @@ -136,7 +136,7 @@ if(C.h_style == "Bald" || C.h_style == "Balding Hair" || C.h_style == "Skinhead") to_chat(user, "There is not enough hair left to shave...") return - if(M.get_species() == "Skrell") + if(isskrell(M)) to_chat(user, "Your razor isn't going to cut through tentacles.") return if(H == user) //shaving yourself diff --git a/code/game/objects/items/weapons/implants/implant_abductor.dm b/code/game/objects/items/weapons/implants/implant_abductor.dm index 0d5bc869e44..40ed4d3bfa3 100644 --- a/code/game/objects/items/weapons/implants/implant_abductor.dm +++ b/code/game/objects/items/weapons/implants/implant_abductor.dm @@ -28,7 +28,7 @@ var/obj/machinery/abductor/console/console if(ishuman(source)) var/mob/living/carbon/human/H = source - if(H.get_species() == "Abductor") + if(isabductor(H)) console = get_team_console(H.mind.abductor.team) home = console.pad diff --git a/code/game/objects/items/weapons/scissors.dm b/code/game/objects/items/weapons/scissors.dm index 857e9a0af8c..2f53a1200a9 100644 --- a/code/game/objects/items/weapons/scissors.dm +++ b/code/game/objects/items/weapons/scissors.dm @@ -33,7 +33,7 @@ var/list/species_facial_hair = list() 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(H.gender == MALE || isvulpkanin(H)) if(C.dna.species) for(var/i in facial_hair_styles_list) var/datum/sprite_accessory/facial_hair/tmp_facial = facial_hair_styles_list[i] diff --git a/code/game/objects/items/weapons/soap.dm b/code/game/objects/items/weapons/soap.dm index a6046b575f7..742f5b3d0c0 100644 --- a/code/game/objects/items/weapons/soap.dm +++ b/code/game/objects/items/weapons/soap.dm @@ -26,7 +26,7 @@ to_chat(user, "You need to take that [target.name] off before cleaning it.") else if(target == user && user.a_intent == INTENT_GRAB && ishuman(target)) var/mob/living/carbon/human/muncher = user - if(muncher && muncher.get_species() == "Drask") + if(muncher && isdrask(muncher)) to_chat(user, "You take a bite of the [name]. Delicious!") playsound(user.loc, 'sound/items/eatfood.ogg', 50, 0) user.nutrition += 2 diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm index 816f7d24a67..bffaaa9bc9c 100644 --- a/code/modules/admin/verbs/onlyone.dm +++ b/code/modules/admin/verbs/onlyone.dm @@ -3,13 +3,13 @@ alert("The game hasn't started yet!") return - var/list/incompatible_species = list("Plasmaman", "Vox") + var/list/incompatible_species = list(/datum/species/plasmaman, /datum/species/vox) for(var/mob/living/carbon/human/H in player_list) if(H.stat == DEAD || !(H.client)) continue if(is_special_character(H)) continue - if(H.dna.species.name in incompatible_species) + if(is_type_in_list(H.dna.species, incompatible_species)) H.set_species(/datum/species/human) var/datum/preferences/A = new() // Randomize appearance A.copy_to(H) diff --git a/code/modules/admin/verbs/onlyoneteam.dm b/code/modules/admin/verbs/onlyoneteam.dm index 16c06ab0424..715472128b8 100644 --- a/code/modules/admin/verbs/onlyoneteam.dm +++ b/code/modules/admin/verbs/onlyoneteam.dm @@ -3,14 +3,14 @@ alert("The game hasn't started yet!") return - var/list/incompatible_species = list("Plasmaman", "Vox") + var/list/incompatible_species = list(/datum/species/plasmaman, /datum/species/vox) var/team_toggle = 0 for(var/mob/living/carbon/human/H in player_list) if(H.stat == DEAD || !(H.client)) continue if(is_special_character(H)) continue - if(H.dna.species.name in incompatible_species) + if(is_type_in_list(H.dna.species, incompatible_species)) H.set_species(/datum/species/human) var/datum/preferences/A = new() // Randomize appearance A.copy_to(H) diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index 9bfc00ca7c6..b26bdba7d92 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -82,7 +82,7 @@ user.mutations.Add(XRAY) if(ishuman(user)) var/mob/living/carbon/human/human = user - if(human.dna.species.name != "Shadow") + if(!isshadowperson(human)) to_chat(user, "Your flesh rapidly mutates!") to_chat(user, "You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.") to_chat(user, "Your body reacts violently to light. However, it naturally heals in darkness.") @@ -95,7 +95,7 @@ new /obj/structure/closet/syndicate/resources/everything(loc) if(ishuman(user)) var/mob/living/carbon/human/human = user - if(human.dna.species.name != "Shadow") + if(!isshadowperson(human)) to_chat(user, "Your flesh rapidly mutates!") to_chat(user, "You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.") to_chat(user, "Your body reacts violently to light. However, it naturally heals in darkness.") @@ -108,7 +108,7 @@ user.verbs += /mob/living/carbon/proc/immortality if(ishuman(user)) var/mob/living/carbon/human/human = user - if(human.dna.species.name != "Shadow") + if(!isshadowperson(human)) to_chat(user, "Your flesh rapidly mutates!") to_chat(user, "You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.") to_chat(user, "Your body reacts violently to light. However, it naturally heals in darkness.") @@ -130,7 +130,7 @@ obj_count++ if(ishuman(user)) var/mob/living/carbon/human/human = user - if(human.dna.species.name != "Shadow") + if(!isshadowperson(human)) to_chat(user, "Your flesh rapidly mutates!") to_chat(user, "You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.") to_chat(user, "Your body reacts violently to light. However, it naturally heals in darkness.") diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index dd2861cc3a4..1e874772478 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -16,7 +16,7 @@ /obj/item/clothing/head/helmet/space/capspace/equipped(mob/living/carbon/human/user, slot) if(ishuman(user) && slot == slot_head) - if(user.dna.species.name == "Vox") + if(isvox(user)) if(flags & BLOCKHAIR) flags &= ~BLOCKHAIR else diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index eab5aa0c5bb..c65ea335c4d 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -609,8 +609,8 @@ var/species_icon = 'icons/mob/rig_back.dmi' // Since setting mob_icon will override the species checks in // update_inv_wear_suit(), handle species checks here. - if(wearer && sprite_sheets && sprite_sheets[wearer.get_species()]) - species_icon = sprite_sheets[wearer.get_species()] + if(wearer && sprite_sheets && sprite_sheets[wearer.dna.species.name]) + species_icon = sprite_sheets[wearer.dna.species.name] mob_icon = image("icon" = species_icon, "icon_state" = "[icon_state]") if(installed_modules.len) diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index ee27b827ff0..51b2cbccae6 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -268,7 +268,7 @@ return var/mob/living/carbon/human/target = user - if(!istype(target) || target.get_species() != "Tajaran") // Only catbeasts, kthnx. + if(!istype(target) || !istajaran(target)) // Only catbeasts, kthnx. return if(target.change_body_accessory("Jay Wingler Tail")) @@ -1276,7 +1276,7 @@ /obj/item/fluff/zekemirror/attack_self(mob/user) var/mob/living/carbon/human/target = user - if(!istype(target) || target.get_species() != "Skrell") // It'd be strange to see other races with head tendrils. + if(!istype(target) || !isskrell(target)) // It'd be strange to see other races with head tendrils. return if(target.change_hair("Zekes Tentacles", 1)) diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index a67b88f97d4..bf4d4309793 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -255,7 +255,7 @@ if(occupant.reagents) occupant.reagents.trans_to(new_meat, round(occupant.reagents.total_volume/slab_count,1)) - if(occupant.get_species() == "Human") + if(ishumanbasic(occupant)) new /obj/item/stack/sheet/animalhide/human(src) new /obj/effect/decal/cleanable/blood/gibs(src) diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm index 950b873af55..7acd3efc961 100644 --- a/code/modules/hydroponics/beekeeping/beebox.dm +++ b/code/modules/hydroponics/beekeeping/beebox.dm @@ -23,7 +23,7 @@ return 1 /mob/living/carbon/human/bee_friendly() - if(get_species() == "Diona") //bees pollinate plants, duh. + if(isdiona(src)) //bees pollinate plants, duh. return 1 if((wear_suit && (wear_suit.flags & THICKMATERIAL)) && (head && (head.flags & THICKMATERIAL))) return 1 diff --git a/code/modules/mining/lavaland/loot/tendril_loot.dm b/code/modules/mining/lavaland/loot/tendril_loot.dm index 7ffa47586a4..a80c2ae6c18 100644 --- a/code/modules/mining/lavaland/loot/tendril_loot.dm +++ b/code/modules/mining/lavaland/loot/tendril_loot.dm @@ -105,7 +105,7 @@ to_chat(M, "This item is currently non-functional.") /*if(ishuman(M) && M.stat != DEAD) var/mob/living/carbon/human/H = M - if(H.species.name != "Human" || reac_volume < 5) // implying xenohumans are holy + if(!ishumanbasic(H) || reac_volume < 5) // implying xenohumans are holy if(method == INGEST && show_message) to_chat(H, "You feel nothing but a terrible aftertaste.") return ..() diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index 82e062246b6..c64318d804b 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -84,12 +84,12 @@ I'm using this for Stat to give it a more nifty interface to work with if(container) var/obj/item/mmi/M = container if(istype(M) && M.held_brain) - return M.held_brain.dna.get_species_name() + return M.held_brain.dna.species.name else return "Artificial Life" if(istype(loc, /obj/item/organ/internal/brain)) var/obj/item/organ/internal/brain/B = loc - return B.dna.get_species_name() + return B.dna.species.name /mob/living/carbon/brain/Stat() ..() diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 9cb1a981999..2f2d559f046 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -29,29 +29,36 @@ switch(act) //Cooldown-inducing emotes if("ping", "pings", "buzz", "buzzes", "beep", "beeps", "yes", "no", "buzz2") - if(dna.species.name == "Machine") //Only Machines can beep, ping, and buzz, yes, no, and make a silly sad trombone noise. + var/found_machine_head = FALSE + if(ismachine(src)) //Only Machines can beep, ping, and buzz, yes, no, and make a silly sad trombone noise. on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm - else //Everyone else fails, skip the emote attempt - return + else + var/obj/item/organ/external/head/H = get_organ("head") // If you have a robotic head, you can make beep-boop noises + if(H && H.is_robotic()) + on_CD = handle_emote_CD() + found_machine_head = TRUE + + if(!found_machine_head) //Everyone else fails, skip the emote attempt + return //Everyone else fails, skip the emote attempt if("drone","drones","hum","hums","rumble","rumbles") - if(get_species() == "Drask") //Only Drask can make whale noises + if(isdrask(src)) //Only Drask can make whale noises on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm else return if("howl", "howls") - if(get_species() == "Vulpkanin") //Only Vulpkanin can howl + if(isvulpkanin(src)) //Only Vulpkanin can howl on_CD = handle_emote_CD(100) else return if("growl", "growls") - if(get_species() == "Vulpkanin") //Only Vulpkanin can growl + if(isvulpkanin(src)) //Only Vulpkanin can growl on_CD = handle_emote_CD() else return if("squish", "squishes") var/found_slime_bodypart = 0 - if(get_species() == "Slime People") //Only Slime People can squish + if(isslimeperson(src)) //Only Slime People can squish on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm' found_slime_bodypart = 1 else @@ -65,31 +72,31 @@ return if("clack", "clacks") - if(get_species() == "Kidan") //Only Kidan can clack and rightfully so. + if(iskidan(src)) //Only Kidan can clack and rightfully so. on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm' else //Everyone else fails, skip the emote attempt return if("click", "clicks") - if(get_species() == "Kidan") //Only Kidan can click and rightfully so. + if(iskidan(src)) //Only Kidan can click and rightfully so. on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm' else //Everyone else fails, skip the emote attempt return if("creaks", "creak") - if(get_species() == "Diona") //Only Dionas can Creaks. + if(isdiona(src)) //Only Dionas can Creaks. on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm' else //Everyone else fails, skip the emote attempt return if("hiss", "hisses") - if(get_species() == "Unathi") //Only Unathi can hiss. + if(isunathi(src)) //Only Unathi can hiss. on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm' else //Everyone else fails, skip the emote attempt return if("quill", "quills") - if(get_species() == "Vox") //Only Vox can rustle their quills. + if(isvox(src)) //Only Vox can rustle their quills. on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm' else //Everyone else fails, skip the emote attempt return @@ -891,8 +898,6 @@ + " wag(s), wave(s), whimper(s), wink(s), yawn(s), quill(s)" switch(dna.species.name) - if("Machine") - emotelist += "\nMachine specific emotes :- beep(s)-(none)/mob, buzz(es)-none/mob, no-(none)/mob, ping(s)-(none)/mob, yes-(none)/mob, buzz2-(none)/mob" if("Drask") emotelist += "\nDrask specific emotes :- drone(s)-(none)/mob, hum(s)-(none)/mob, rumble(s)-(none)/mob" if("Kidan") @@ -906,7 +911,14 @@ if("Diona") emotelist += "\nDiona specific emotes :- creak(s)" - if (dna.species.name == "Slime People") + if(dna.species.name == "Machine") + emotelist += "\nMachine specific emotes :- beep(s)-(none)/mob, buzz(es)-none/mob, no-(none)/mob, ping(s)-(none)/mob, yes-(none)/mob, buzz2-(none)/mob" + else + var/obj/item/organ/external/head/H = get_organ("head") // If you have a robotic head, you can make beep-boop noises + if(H && H.is_robotic()) + emotelist += "\nRobotic head specific emotes :- beep(s)-(none)/mob, buzz(es)-none/mob, no-(none)/mob, ping(s)-(none)/mob, yes-(none)/mob, buzz2-(none)/mob" + + if(dna.species.name == "Slime People") 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! diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index ce0930f229f..a39d2843501 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -29,14 +29,12 @@ msg += "[bicon(icon(icon, dir=SOUTH))] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated msg += "[name]" - var/list/nospecies = list("Abductor", "Shadowling", "Neara", "Monkey", "Stok", "Farwa", "Wolpin") //species that won't show their race no matter what - - var/displayed_species = get_species() + var/displayed_species = dna.species.name for(var/obj/item/clothing/C in src) //Disguise checks if(C == src.head || C == src.wear_suit || C == src.wear_mask || C == src.w_uniform || C == src.belt || C == src.back) if(C.species_disguise) displayed_species = C.species_disguise - if(skipjumpsuit && skipface || (displayed_species in nospecies)) //either obscured or on the nospecies list + if(skipjumpsuit && skipface || (NO_EXAMINE in dna.species.species_traits)) //either obscured or on the nospecies list msg += "!\n" //omit the species when examining else if(displayed_species == "Slime People") //snowflakey because Slime People are defined as a plural msg += ", a slime person!\n" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 2f6465289cf..5d2a4c22e7c 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1035,10 +1035,6 @@ /mob/living/carbon/human/proc/check_dna() dna.check_integrity(src) - return - -/mob/living/carbon/human/get_species() - return dna.species.name /mob/living/carbon/human/proc/play_xylophone() if(!src.xylophone) @@ -1172,7 +1168,7 @@ surgeries.Cut() //End all surgeries. update_revive() - if(dna.species.name != "Skeleton" && (SKELETON in mutations)) + if(!isskeleton(src) && (SKELETON in mutations)) mutations.Remove(SKELETON) if(NOCLONE in mutations) mutations.Remove(NOCLONE) @@ -1821,14 +1817,14 @@ Eyes need to have significantly high darksight to shine unless the mob has the X /mob/living/carbon/human/forceFed(var/obj/item/reagent_containers/food/toEat, mob/user, fullness) if(!check_has_mouth()) - if(!((istype(toEat, /obj/item/reagent_containers/food/drinks) && (get_species() == "Machine")))) + if(!((istype(toEat, /obj/item/reagent_containers/food/drinks) && (ismachine(src))))) to_chat(user, "Where do you intend to put \the [toEat]? \The [src] doesn't have a mouth!") return 0 return ..() /mob/living/carbon/human/selfDrink(var/obj/item/reagent_containers/food/drinks/toDrink) if(!check_has_mouth()) - if(!get_species() == "Machine") + if(!ismachine(src)) to_chat(src, "Where do you intend to put \the [src]? You don't have a mouth!") return 0 else diff --git a/code/modules/mob/living/carbon/human/species/abductor.dm b/code/modules/mob/living/carbon/human/species/abductor.dm index 8aeb6f88a3d..ec2bb7514ed 100644 --- a/code/modules/mob/living/carbon/human/species/abductor.dm +++ b/code/modules/mob/living/carbon/human/species/abductor.dm @@ -16,7 +16,7 @@ "eyes" = /obj/item/organ/internal/eyes/abductor //3 darksight. ) - species_traits = list(NO_BLOOD, NO_BREATHE, VIRUSIMMUNE, NOGUNS) + species_traits = list(NO_BLOOD, NO_BREATHE, VIRUSIMMUNE, NOGUNS, NO_EXAMINE) oxy_mod = 0 diff --git a/code/modules/mob/living/carbon/human/species/monkey.dm b/code/modules/mob/living/carbon/human/species/monkey.dm index d3ca4f68b3a..4dfbc362474 100644 --- a/code/modules/mob/living/carbon/human/species/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/monkey.dm @@ -11,6 +11,7 @@ path = /mob/living/carbon/human/monkey language = null default_language = "Chimpanzee" + species_traits = list(NO_EXAMINE) greater_form = /datum/species/human is_small = 1 has_fine_manipulation = 0 diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index ae17fcb0367..8b264ad77b0 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -627,13 +627,13 @@ #undef SLIMEPERSON_ICON_UPDATE_PERIOD #undef SLIMEPERSON_BLOOD_SCALING_FACTOR -/mob/living/carbon/human/proc/toggle_recolor(var/silent = 0) - var/datum/species/slime/S = all_species[get_species()] - if(!istype(S)) +/mob/living/carbon/human/proc/toggle_recolor(silent = FALSE) + if(!isslimeperson(src)) if(!silent) to_chat(src, "You're not a slime person!") return + var/datum/species/slime/S = dna.species if(src in S.recolor_list) S.recolor_list -= src if(!silent) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 3729e9aa85e..af134052a66 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -448,7 +448,7 @@ var/global/list/damage_icon_parts = list() if(head_organ.h_style && !(head && (head.flags & BLOCKHEADHAIR) && !(isSynthetic()))) var/datum/sprite_accessory/hair/hair_style = hair_styles_full_list[head_organ.h_style] - //if(!src.get_int_organ(/obj/item/organ/internal/brain) && src.get_species() != "Machine" )//make it obvious we have NO BRAIN + //if(!src.get_int_organ(/obj/item/organ/internal/brain) && !ismachine(src))//make it obvious we have NO BRAIN // hair_standing.Blend(debrained_s, ICON_OVERLAY) if(hair_style && hair_style.species_allowed) if((head_organ.dna.species.name in hair_style.species_allowed) || (head_organ.dna.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... diff --git a/code/modules/mob/living/carbon/slime/life.dm b/code/modules/mob/living/carbon/slime/life.dm index 2d68747a742..5b0ee885ce7 100644 --- a/code/modules/mob/living/carbon/slime/life.dm +++ b/code/modules/mob/living/carbon/slime/life.dm @@ -337,7 +337,7 @@ if(istype(L, /mob/living/carbon/human)) //Ignore slime(wo)men var/mob/living/carbon/human/H = L - if(H.dna.species.name == "Slime People") + if(isslimeperson(H)) continue if(!L.canmove) // Only one slime can latch on at a time. diff --git a/code/modules/mob/living/simple_animal/friendly/diona.dm b/code/modules/mob/living/simple_animal/friendly/diona.dm index 2396d08a1df..8dc6a46a584 100644 --- a/code/modules/mob/living/simple_animal/friendly/diona.dm +++ b/code/modules/mob/living/simple_animal/friendly/diona.dm @@ -54,7 +54,7 @@ /mob/living/simple_animal/diona/attack_hand(mob/living/carbon/human/M) //Let people pick the little buggers up. if(M.a_intent == INTENT_HELP) - if(M.dna.species && M.dna.species.name == "Diona") + if(isdiona(M)) to_chat(M, "You feel your being twine with that of [src] as it merges with your biomass.") to_chat(src, "You feel your being twine with that of [M] as you merge with its biomass.") verbs += /mob/living/simple_animal/diona/proc/split @@ -82,7 +82,7 @@ if(ishuman(C)) var/mob/living/carbon/human/D = C - if(D.dna.species && D.dna.species.name == "Diona") + if(isdiona(D)) choices += C var/mob/living/M = input(src,"Who do you wish to merge with?") in null|choices diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index beba84eaa3f..84f9503066a 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1080,9 +1080,6 @@ var/list/slot_equipment_priority = list( \ /mob/proc/activate_hand(selhand) return -/mob/proc/get_species() - return "" - /mob/dead/observer/verb/respawn() set name = "Respawn as NPC" set category = "Ghost" diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 2f51ec9417b..d622c78f680 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -16,9 +16,9 @@ return 0 /mob/living/carbon/human/isSynthetic() - if(get_species() == "Machine") - return 1 - return 0 + if(ismachine(src)) + return TRUE + return FALSE /mob/proc/get_screen_colour() diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index d7e8a531867..fe3ad6b120d 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -591,19 +591,6 @@ if(!S) return 1 return is_alien_whitelisted(src, S.name) || !config.usealienwhitelist || !(IS_WHITELISTED in S.species_traits) -/mob/new_player/get_species() - var/datum/species/chosen_species - if(client.prefs.species) - chosen_species = all_species[client.prefs.species] - - if(!chosen_species) - return "Human" - - if(is_species_whitelisted(chosen_species) || has_admin_rights()) - return chosen_species.name - - return "Human" - /mob/new_player/get_gender() if(!client || !client.prefs) ..() return client.prefs.gender diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 51bf515ca1e..165e75f1875 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -153,10 +153,10 @@ process_fire(target,user,1,params) -/obj/item/gun/proc/can_trigger_gun(var/mob/living/user) +/obj/item/gun/proc/can_trigger_gun(mob/living/user) if(!user.can_use_guns(src)) return 0 - if(restricted_species && restricted_species.len && !(user.get_species() in restricted_species)) + if(restricted_species && restricted_species.len && !is_type_in_list(user.dna.species, restricted_species)) to_chat(user, "[src] is incompatible with your biology!") return 0 return 1 diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm index 7093d587b3c..95e1a586469 100644 --- a/code/modules/projectiles/guns/alien.dm +++ b/code/modules/projectiles/guns/alien.dm @@ -11,7 +11,7 @@ can_suppress = 0 var/charge_tick = 0 var/charge_delay = 15 - restricted_species = list("Vox", "Vox Armalis") + restricted_species = list(/datum/species/vox) /obj/item/gun/projectile/automatic/spikethrower/New() ..() @@ -79,7 +79,7 @@ force = 10 ammo_type = list(/obj/item/ammo_casing/energy/sonic) cell_type = /obj/item/stock_parts/cell/super - restricted_species = list("Vox Armalis") + restricted_species = list(/datum/species/vox/armalis) /obj/item/gun/energy/noisecannon/update_icon() return diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index faf0ce94c6a..1df45dbe064 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -24,15 +24,15 @@ var/exp_flash = 3 var/exp_fire = 2 -/obj/item/projectile/magic/death/on_hit(var/mob/living/carbon/G) +/obj/item/projectile/magic/death/on_hit(mob/living/carbon/C) . = ..() - if(isliving(G)) - if(G.get_species() == "Machine") //speshul snowfleks deserv speshul treetment - G.adjustFireLoss(6969) //remember - slimes love fire + if(isliving(C)) + if(ismachine(C)) //speshul snowfleks deserv speshul treetment + C.adjustFireLoss(6969) //remember - slimes love fire else - G.death() + C.death() - visible_message("[G] topples backwards as the death bolt impacts [G.p_them()]!") + visible_message("[C] topples backwards as the death bolt impacts [C.p_them()]!") /obj/item/projectile/magic/fireball/Range() var/turf/T1 = get_step(src,turn(dir, -45)) diff --git a/code/modules/reagents/chemistry/reagents/toxins.dm b/code/modules/reagents/chemistry/reagents/toxins.dm index 3da4df4d558..a3fc113339e 100644 --- a/code/modules/reagents/chemistry/reagents/toxins.dm +++ b/code/modules/reagents/chemistry/reagents/toxins.dm @@ -61,7 +61,7 @@ /datum/reagent/slimetoxin/on_mob_life(mob/living/M) if(ishuman(M)) var/mob/living/carbon/human/human = M - if(human.dna.species.name != "Shadow") + if(!isshadowperson(human)) to_chat(M, "Your flesh rapidly mutates!") to_chat(M, "You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.") to_chat(M, "Your body reacts violently to light. However, it naturally heals in darkness.") @@ -217,7 +217,7 @@ if(method == TOUCH) if(ishuman(M)) var/mob/living/carbon/human/H = M - if(H.get_species() == "Grey") + if(isgrey(H)) return if(volume > 25) @@ -246,7 +246,7 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M - if(H.get_species() == "Grey") + if(isgrey(H)) return if(volume >=10 && volume <=25) @@ -995,7 +995,7 @@ C.adjustToxLoss(2) if(ishuman(M)) var/mob/living/carbon/human/H = M - if(H.get_species() == "Kidan") //RIP + if(iskidan(H)) //RIP H.adjustToxLoss(20) /datum/reagent/capulettium diff --git a/code/modules/reagents/chemistry/reagents/water.dm b/code/modules/reagents/chemistry/reagents/water.dm index cd338cb048d..199edb72fb4 100644 --- a/code/modules/reagents/chemistry/reagents/water.dm +++ b/code/modules/reagents/chemistry/reagents/water.dm @@ -29,7 +29,7 @@ var/mob/living/carbon/human/H = M - if(H.get_species() != "Grey") //God this is so gross I hate it. + if(!isgrey(H)) //God this is so gross I hate it. return if(volume > 25) @@ -58,7 +58,7 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M - if(H.get_species() != "Grey") + if(!isgrey(H)) return if(volume < 10) diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm index 979e80ddf29..42db2e97da1 100644 --- a/code/modules/surgery/limb_reattach.dm +++ b/code/modules/surgery/limb_reattach.dm @@ -32,7 +32,7 @@ if(ishuman(target)) var/mob/living/carbon/human/H = target var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting) - if(target.get_species() == "Machine") + if(ismachine(target)) // RIP bi-centennial man return 0 if(!affected) diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index 18a5e4ee04f..a0ca54c8e01 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -279,7 +279,8 @@ This function completely restores a damaged organ to perfect condition. for(var/obj/item/organ/external/EO in contents) EO.rejuvenate() - owner.updatehealth() + if(owner) + owner.updatehealth() update_icon() if(!owner) processing_objects |= src diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm index 467f1e64a00..bcb5151d359 100644 --- a/code/modules/surgery/other.dm +++ b/code/modules/surgery/other.dm @@ -303,7 +303,7 @@ ..() /datum/surgery_step/internal/dethrall/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery) - if(target.get_species() == "Lesser Shadowling") //Empowered thralls cannot be deconverted + if(isshadowlinglesser(target)) //Empowered thralls cannot be deconverted to_chat(target, "NOT LIKE THIS!") user.visible_message("[target] suddenly slams upward and knocks down [user]!", \ "[target] suddenly bolts up and slams you with tremendous force!") diff --git a/code/modules/surgery/plastic_surgery.dm b/code/modules/surgery/plastic_surgery.dm index a0e4c2a3976..9483818d153 100644 --- a/code/modules/surgery/plastic_surgery.dm +++ b/code/modules/surgery/plastic_surgery.dm @@ -24,7 +24,7 @@ /datum/surgery_step/reshape_face/end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery) var/obj/item/organ/external/head/head = target.get_organ(target_zone) - var/species_names = target.get_species() + var/species_names = target.dna.species.name if(head.disfigured) head.disfigured = FALSE user.visible_message("[user] successfully restores [target]'s appearance!", "You successfully restore [target]'s appearance.") diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index c64c53c8baa..72bf70c7e81 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -67,10 +67,6 @@ //How much blood this step can get on surgeon. 1 - hands, 2 - full body. var/blood_level = 0 - var/list/allowed_mob = list() - var/list/disallowed_mob = list() - - /datum/surgery_step/proc/try_op(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) var/success = 0 if(accept_hand) @@ -146,19 +142,8 @@ // Checks if this step applies to the user mob at all /datum/surgery_step/proc/is_valid_target(mob/living/carbon/human/target) if(!hasorgans(target)) - return 0 - - if(allowed_mob)//can i just remove this and/or change it? - for(var/species in allowed_mob) - if(target.get_species() == species) - return 1 - - if(disallowed_mob) - for(var/species in disallowed_mob) - if(target.get_species() == species) - return 0 - - return 1 + return FALSE + return TRUE // checks whether this step can be applied with the given user and target /datum/surgery_step/proc/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)