From 783960a986ed1582136b541bfa161b7f73e1e6e0 Mon Sep 17 00:00:00 2001 From: XDTM Date: Wed, 22 Nov 2017 22:36:09 +0100 Subject: [PATCH 1/7] Divides species in subtypes, makes viruses able to infect certain subtypes --- code/__DEFINES/DNA.dm | 11 +++ code/datums/diseases/_MobProcs.dm | 19 +++-- code/datums/diseases/_disease.dm | 2 + .../diseases/advance/symptoms/species.dm | 30 ++++++++ code/datums/diseases/beesease.dm | 1 + code/datums/diseases/magnitis.dm | 2 + code/datums/diseases/parrotpossession.dm | 2 + code/datums/diseases/rhumba_beat.dm | 1 + code/datums/diseases/transformation.dm | 3 +- .../carbon/human/species_types/abductors.dm | 2 +- .../carbon/human/species_types/android.dm | 2 +- .../carbon/human/species_types/angel.dm | 2 +- .../carbon/human/species_types/corporate.dm | 21 ++++++ .../carbon/human/species_types/dullahan.dm | 2 +- .../carbon/human/species_types/flypeople.dm | 1 + .../carbon/human/species_types/golems.dm | 12 ++-- .../carbon/human/species_types/humans.dm | 6 ++ .../carbon/human/species_types/jellypeople.dm | 4 +- .../human/species_types/lizardpeople.dm | 5 ++ .../carbon/human/species_types/plasmamen.dm | 2 +- .../carbon/human/species_types/podpeople.dm | 69 +++++++++++++++++++ .../human/species_types/shadowpeople.dm | 2 +- .../carbon/human/species_types/skeletons.dm | 2 +- .../carbon/human/species_types/synths.dm | 7 +- .../carbon/human/species_types/vampire.dm | 2 +- .../carbon/human/species_types/zombies.dm | 3 +- code/modules/mob/living/carbon/life.dm | 2 +- tgstation.dme | 1 + 28 files changed, 192 insertions(+), 26 deletions(-) create mode 100644 code/datums/diseases/advance/symptoms/species.dm diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index a2aa7b1414..de3d235664 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -127,6 +127,7 @@ #define TOXINLOVER 24 #define DIGITIGRADE 25 //Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi) #define NO_UNDERWEAR 26 +<<<<<<< HEAD #define MUTCOLORS2 27 #define MUTCOLORS3 28 #define NOLIVER 29 @@ -136,6 +137,16 @@ #define NOGENITALS 30 //Cannot create, use, or otherwise have genitals #define NO_DNA_COPY 31 #define DRINKSBLOOD 32 +======= +#define NOLIVER 27 +#define NOSTOMACH 28 +#define NO_DNA_COPY 29 +#define DRINKSBLOOD 30 +#define SPECIES_ORGANIC 31 +#define SPECIES_INORGANIC 32 +#define SPECIES_UNDEAD 33 +#define SPECIES_ROBOTIC 34 +>>>>>>> 9d487d2... Divides species in subtypes, makes viruses able to infect certain subtypes (#32858) #define ORGAN_SLOT_BRAIN "brain" #define ORGAN_SLOT_APPENDIX "appendix" diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index f13239a113..7c08a3908f 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -143,14 +143,25 @@ //Proc to use when you 100% want to infect someone, as long as they aren't immune /mob/proc/ForceContractDisease(datum/disease/D) if(!CanContractDisease(D)) - return 0 + return FALSE AddDisease(D) /mob/living/carbon/human/CanContractDisease(datum/disease/D) - if(dna && (VIRUSIMMUNE in dna.species.species_traits) && !D.bypasses_immunity) - return 0 + + if(dna) + if((VIRUSIMMUNE in dna.species.species_traits) && !D.bypasses_immunity) + return FALSE + + var/can_infect = FALSE + for(var/host_type in D.infectable_hosts) + if(host_type in dna.species.species_traits) + can_infect = TRUE + break + if(!can_infect) + return FALSE + for(var/thing in D.required_organs) if(!((locate(thing) in bodyparts) || (locate(thing) in internal_organs))) - return 0 + return FALSE return ..() \ No newline at end of file diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 69da2ab96d..547b1d5db9 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -30,6 +30,8 @@ var/list/required_organs = list() var/needs_all_cures = TRUE var/list/strain_data = list() //dna_spread special bullshit + var/list/infectable_hosts = list(SPECIES_ORGANIC) //if the disease can spread on organics, synthetics, or undead + var/process_dead = FALSE //if this ticks while the host is dead /datum/disease/Destroy() affected_mob = null diff --git a/code/datums/diseases/advance/symptoms/species.dm b/code/datums/diseases/advance/symptoms/species.dm new file mode 100644 index 0000000000..837252c1e6 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/species.dm @@ -0,0 +1,30 @@ +/datum/symptom/undead_adaptation + name = "Necrotic Metabolism" + desc = "The virus is able to thrive and act even within dead hosts." + stealth = 2 + resistance = -2 + stage_speed = 1 + transmittable = 0 + level = 5 + severity = 0 + +/datum/symptom/undead_adaptation/Start(datum/disease/advance/A) + if(!..()) + return + A.process_dead = TRUE + A.infectable_hosts |= SPECIES_UNDEAD + +/datum/symptom/inorganic_adaptation + name = "Inorganic Biology" + desc = "The virus can survive and replicate even in an inorganic environment, increasing its resistance and infection rate." + stealth = -1 + resistance = 4 + stage_speed = -2 + transmittable = 3 + level = 5 + severity = 0 + +/datum/symptom/inorganic_adaptation/Start(datum/disease/advance/A) + if(!..()) + return + A.infectable_hosts |= SPECIES_INORGANIC \ No newline at end of file diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm index f02c3b90ee..80ec0abe6b 100644 --- a/code/datums/diseases/beesease.dm +++ b/code/datums/diseases/beesease.dm @@ -10,6 +10,7 @@ viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) desc = "If left untreated subject will regurgitate bees." severity = VIRUS_SEVERITY_MEDIUM + infectable_hosts = list(SPECIES_ORGANIC, SPECIES_UNDEAD) //bees nesting in corpses /datum/disease/beesease/stage_act() ..() diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm index e82c24ba59..4430eee19d 100644 --- a/code/datums/diseases/magnitis.dm +++ b/code/datums/diseases/magnitis.dm @@ -10,6 +10,8 @@ permeability_mod = 0.75 desc = "This disease disrupts the magnetic field of your body, making it act as if a powerful magnet. Injections of iron help stabilize the field." severity = VIRUS_SEVERITY_MEDIUM + infectable_hosts = list(SPECIES_ORGANIC, SPECIES_ROBOTIC) + process_dead = TRUE /datum/disease/magnitis/stage_act() ..() diff --git a/code/datums/diseases/parrotpossession.dm b/code/datums/diseases/parrotpossession.dm index 42d5daa797..284c3bd7f2 100644 --- a/code/datums/diseases/parrotpossession.dm +++ b/code/datums/diseases/parrotpossession.dm @@ -11,6 +11,8 @@ viable_mobtypes = list(/mob/living/carbon/human) desc = "Subject is possesed by the vengeful spirit of a parrot. Call the priest." severity = VIRUS_SEVERITY_MEDIUM + infectable_hosts = list(SPECIES_ORGANIC, SPECIES_UNDEAD, SPECIES_INORGANIC, SPECIES_ROBOTIC) + bypasses_immunity = TRUE //2spook var/mob/living/simple_animal/parrot/Poly/ghost/parrot /datum/disease/parrot_possession/stage_act() diff --git a/code/datums/diseases/rhumba_beat.dm b/code/datums/diseases/rhumba_beat.dm index 855f1f44f0..8217364fb5 100644 --- a/code/datums/diseases/rhumba_beat.dm +++ b/code/datums/diseases/rhumba_beat.dm @@ -9,6 +9,7 @@ viable_mobtypes = list(/mob/living/carbon/human) permeability_mod = 1 severity = VIRUS_SEVERITY_BIOHAZARD + process_dead = TRUE /datum/disease/rhumba_beat/stage_act() ..() diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 0ff47f854d..60622f61cb 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -127,7 +127,7 @@ stage4 = list("Your skin feels very loose.", "You can feel... something...inside you.") stage5 = list("Your skin feels as if it's about to burst off!") new_form = /mob/living/silicon/robot - + infectable_hosts = list(SPECIES_ORGANIC, SPECIES_UNDEAD, SPECIES_ROBOTIC) /datum/disease/transformation/robot/stage_act() ..() @@ -240,3 +240,4 @@ stage4 = list("You're ravenous.") stage5 = list("You have become a morph.") new_form = /mob/living/simple_animal/hostile/morph + infectable_hosts = list(SPECIES_ORGANIC, SPECIES_INORGANIC, SPECIES_UNDEAD) //magic! diff --git a/code/modules/mob/living/carbon/human/species_types/abductors.dm b/code/modules/mob/living/carbon/human/species_types/abductors.dm index 160b0b73a1..cf03d12130 100644 --- a/code/modules/mob/living/carbon/human/species_types/abductors.dm +++ b/code/modules/mob/living/carbon/human/species_types/abductors.dm @@ -3,7 +3,7 @@ id = "abductor" say_mod = "gibbers" sexes = FALSE - species_traits = list(NOBLOOD,NOBREATH,VIRUSIMMUNE,NOGUNS,NOHUNGER) + species_traits = list(SPECIES_ORGANIC,NOBLOOD,NOBREATH,VIRUSIMMUNE,NOGUNS,NOHUNGER) mutanttongue = /obj/item/organ/tongue/abductor var/scientist = FALSE // vars to not pollute spieces list with castes diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index 44f1e5c456..4badfa8405 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -2,7 +2,7 @@ name = "Android" id = "android" say_mod = "states" - species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOBLOOD,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYLIMBATTACHMENT) + species_traits = list(SPECIES_ROBOTIC,NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOBLOOD,PIERCEIMMUNE,NOHUNGER,EASYLIMBATTACHMENT) meat = null damage_overlay_type = "synth" mutanttongue = /obj/item/organ/tongue/robot diff --git a/code/modules/mob/living/carbon/human/species_types/angel.dm b/code/modules/mob/living/carbon/human/species_types/angel.dm index cc9a2ff12f..de0120028c 100644 --- a/code/modules/mob/living/carbon/human/species_types/angel.dm +++ b/code/modules/mob/living/carbon/human/species_types/angel.dm @@ -2,7 +2,7 @@ name = "Angel" id = "angel" default_color = "FFFFFF" - species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS) + species_traits = list(SPECIES_ORGANIC,EYECOLOR,HAIR,FACEHAIR,LIPS) mutant_bodyparts = list("tail_human", "ears", "wings") default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "Angel") use_skintones = 1 diff --git a/code/modules/mob/living/carbon/human/species_types/corporate.dm b/code/modules/mob/living/carbon/human/species_types/corporate.dm index b9106cf408..4127e49cec 100644 --- a/code/modules/mob/living/carbon/human/species_types/corporate.dm +++ b/code/modules/mob/living/carbon/human/species_types/corporate.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD /datum/species/corporate name = "Corporate Agent" id = "agent" @@ -16,4 +17,24 @@ blacklisted = 1 use_skintones = 0 species_traits = list(RADIMMUNE,VIRUSIMMUNE,NOBLOOD,PIERCEIMMUNE,EYECOLOR,NODISMEMBER,NOHUNGER) +======= +/datum/species/corporate + name = "Corporate Agent" + id = "agent" + hair_alpha = 0 + say_mod = "declares" + speedmod = -2//Fast + brutemod = 0.7//Tough against firearms + burnmod = 0.65//Tough against lasers + coldmod = 0 + heatmod = 0.5//it's a little tough to burn them to death not as hard though. + punchdamagelow = 20 + punchdamagehigh = 30//they are inhumanly strong + punchstunthreshold = 25 + attack_verb = "smash" + attack_sound = 'sound/weapons/resonator_blast.ogg' + blacklisted = 1 + use_skintones = 0 + species_traits = list(SPECIES_ORGANIC,RADIMMUNE,VIRUSIMMUNE,NOBLOOD,PIERCEIMMUNE,EYECOLOR,NODISMEMBER,NOHUNGER) +>>>>>>> 9d487d2... Divides species in subtypes, makes viruses able to infect certain subtypes (#32858) sexes = 0 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index 5effff5bd3..78cf1a3b7a 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -2,7 +2,7 @@ name = "dullahan" id = "dullahan" default_color = "FFFFFF" - species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,NOBREATH,NOHUNGER) + species_traits = list(SPECIES_ORGANIC,EYECOLOR,HAIR,FACEHAIR,LIPS,NOBREATH,NOHUNGER) mutant_bodyparts = list("tail_human", "ears", "wings") default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None") use_skintones = TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index 61609f653c..7b37e5fc42 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -2,6 +2,7 @@ name = "Flyperson" id = "fly" say_mod = "buzzes" + species_traits = list(SPECIES_ORGANIC) mutanttongue = /obj/item/organ/tongue/fly mutantliver = /obj/item/organ/liver/fly mutantstomach = /obj/item/organ/stomach/fly diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index e3d2d5db61..ee2d13ae4a 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -2,7 +2,7 @@ // Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck. name = "Golem" id = "iron golem" - species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) + species_traits = list(SPECIES_INORGANIC,NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) mutant_organs = list(/obj/item/organ/adamantine_resonator) speedmod = 2 armor = 55 @@ -76,7 +76,7 @@ fixed_mut_color = "a3d" meat = /obj/item/ore/plasma //Can burn and takes damage from heat - species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) + species_traits = list(SPECIES_INORGANIC,NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) info_text = "As a Plasma Golem, you burn easily. Be careful, if you get hot enough while burning, you'll blow up!" heatmod = 0 //fine until they blow up prefix = "Plasma" @@ -242,7 +242,7 @@ fixed_mut_color = "49311c" meat = /obj/item/stack/sheet/mineral/wood //Can burn and take damage from heat - species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) + species_traits = list(SPECIES_ORGANIC,NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) armor = 30 burnmod = 1.25 heatmod = 1.5 @@ -549,7 +549,7 @@ limbs_id = "cultgolem" sexes = FALSE info_text = "As a Runic Golem, you possess eldritch powers granted by the Elder God Nar'Sie." - species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,NO_UNDERWEAR) //no mutcolors + species_traits = list(SPECIES_INORGANIC,NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,PIERCEIMMUNE,NODISMEMBER,NO_UNDERWEAR) //no mutcolors prefix = "Runic" var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem/phase_shift @@ -602,7 +602,7 @@ limbs_id = "clockgolem" info_text = "As a clockwork golem, you are faster than \ other types of golem (being a machine), and are immune to electric shocks." - species_traits = list(NO_UNDERWEAR, NOTRANSSTING, NOBREATH, NOZOMBIE, VIRUSIMMUNE, RADIMMUNE, NOBLOOD, RESISTCOLD, RESISTPRESSURE, PIERCEIMMUNE) + species_traits = list(SPECIES_INORGANIC,NO_UNDERWEAR, NOTRANSSTING, NOBREATH, NOZOMBIE, RADIMMUNE, NOBLOOD, RESISTCOLD, RESISTPRESSURE, PIERCEIMMUNE) armor = 20 //Reinforced, but much less so to allow for fast movement attack_verb = "smash" attack_sound = 'sound/magic/clockwork/anima_fragment_attack.ogg' @@ -653,7 +653,7 @@ limbs_id = "clothgolem" sexes = FALSE info_text = "As a Cloth Golem, you are able to reform yourself after death, provided your remains aren't burned or destroyed. You are, of course, very flammable." - species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,NO_UNDERWEAR) //no mutcolors, and can burn + species_traits = list(SPECIES_UNDEAD,NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,PIERCEIMMUNE,NODISMEMBER,NO_UNDERWEAR) //no mutcolors, and can burn armor = 15 //feels no pain, but not too resistant burnmod = 2 // don't get burned speedmod = 1 // not as heavy as stone diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index 63fdacc504..7d43d1cdb4 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -2,9 +2,15 @@ name = "Human" id = "human" default_color = "FFFFFF" +<<<<<<< HEAD species_traits = list(MUTCOLORS_PARTSONLY,EYECOLOR,HAIR,FACEHAIR,LIPS) mutant_bodyparts = list("tail_human", "ears", "taur") default_features = list("tail_human" = "None", "ears" = "None", "taur" = "none") +======= + species_traits = list(SPECIES_ORGANIC,EYECOLOR,HAIR,FACEHAIR,LIPS) + mutant_bodyparts = list("tail_human", "ears", "wings") + default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None") +>>>>>>> 9d487d2... Divides species in subtypes, makes viruses able to infect certain subtypes (#32858) use_skintones = 1 skinned_type = /obj/item/stack/sheet/animalhide/human disliked_food = GROSS | RAW diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index b79a0e81a5..5d10ea6b36 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -4,7 +4,7 @@ id = "jelly" default_color = "00FF90" say_mod = "chirps" - species_traits = list(MUTCOLORS,EYECOLOR,NOBLOOD,VIRUSIMMUNE,TOXINLOVER) + species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,NOBLOOD,VIRUSIMMUNE,TOXINLOVER) meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime exotic_blood = "slimejelly" damage_overlay_type = "" @@ -101,7 +101,7 @@ name = "Slimeperson" id = "slime" default_color = "00FFFF" - species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD,VIRUSIMMUNE, TOXINLOVER) + species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD,VIRUSIMMUNE, TOXINLOVER) say_mod = "says" hair_color = "mutcolor" hair_alpha = 150 diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index e528d58b11..c1db8cd69b 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -4,8 +4,13 @@ id = "lizard" say_mod = "hisses" default_color = "00FF00" +<<<<<<< HEAD species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,FACEHAIR) mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs", "taur") +======= + species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,LIPS) + mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs") +>>>>>>> 9d487d2... Divides species in subtypes, makes viruses able to infect certain subtypes (#32858) mutanttongue = /obj/item/organ/tongue/lizard mutanttail = /obj/item/organ/tail/lizard coldmod = 1.5 diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index 817e22163a..c4f85501d0 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -4,7 +4,7 @@ say_mod = "rattles" sexes = 0 meat = /obj/item/stack/sheet/mineral/plasma - species_traits = list(NOBLOOD,RESISTCOLD,RADIMMUNE,NOTRANSSTING,VIRUSIMMUNE,NOHUNGER) + species_traits = list(SPECIES_INORGANIC,NOBLOOD,RESISTCOLD,RADIMMUNE,NOTRANSSTING,NOHUNGER) mutantlungs = /obj/item/organ/lungs/plasmaman mutanttongue = /obj/item/organ/tongue/bone/plasmaman mutantliver = /obj/item/organ/liver/plasmaman diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 3881eae6f5..37b3d1b1cf 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD /datum/species/pod // A mutation caused by a human being ressurected in a revival pod. These regain health in light, and begin to wither in darkness. name = "Podperson" @@ -69,3 +70,71 @@ H.show_message("The radiation beam singes you!") if(/obj/item/projectile/energy/florayield) H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL) +======= +/datum/species/pod + // A mutation caused by a human being ressurected in a revival pod. These regain health in light, and begin to wither in darkness. + name = "Podperson" + id = "pod" + default_color = "59CE00" + species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR) + attack_verb = "slash" + attack_sound = 'sound/weapons/slice.ogg' + miss_sound = 'sound/weapons/slashmiss.ogg' + burnmod = 1.25 + heatmod = 1.5 + meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/plant + disliked_food = MEAT | DAIRY + liked_food = VEGETABLES | FRUIT | GRAIN + +/datum/species/pod/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.faction |= "plants" + C.faction |= "vines" + +/datum/species/pod/on_species_loss(mob/living/carbon/C) + . = ..() + C.faction -= "plants" + C.faction -= "vines" + +/datum/species/pod/spec_life(mob/living/carbon/human/H) + if(H.stat == DEAD) + return + var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing + if(isturf(H.loc)) //else, there's considered to be no light + var/turf/T = H.loc + light_amount = min(1,T.get_lumcount()) - 0.5 + H.nutrition += light_amount * 10 + if(H.nutrition > NUTRITION_LEVEL_FULL) + H.nutrition = NUTRITION_LEVEL_FULL + if(light_amount > 0.2) //if there's enough light, heal + H.heal_overall_damage(1,1) + H.adjustToxLoss(-1) + H.adjustOxyLoss(-1) + + if(H.nutrition < NUTRITION_LEVEL_STARVING + 50) + H.take_overall_damage(2,0) + +/datum/species/pod/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) + if(chem.id == "plantbgone") + H.adjustToxLoss(3) + H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + return 1 + +/datum/species/pod/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) + switch(P.type) + if(/obj/item/projectile/energy/floramut) + if(prob(15)) + H.rad_act(rand(30,80)) + H.Knockdown(100) + H.visible_message("[H] writhes in pain as [H.p_their()] vacuoles boil.", "You writhe in pain as your vacuoles boil!", "You hear the crunching of leaves.") + if(prob(80)) + H.randmutb() + else + H.randmutg() + H.domutcheck() + else + H.adjustFireLoss(rand(5,15)) + H.show_message("The radiation beam singes you!") + if(/obj/item/projectile/energy/florayield) + H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL) +>>>>>>> 9d487d2... Divides species in subtypes, makes viruses able to infect certain subtypes (#32858) diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index a326150c60..09c9df5f9f 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -9,7 +9,7 @@ blacklisted = 1 ignored_by = list(/mob/living/simple_animal/hostile/faithless) meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/shadow - species_traits = list(NOBREATH,NOBLOOD,RADIMMUNE,VIRUSIMMUNE) + species_traits = list(SPECIES_ORGANIC,NOBREATH,NOBLOOD,RADIMMUNE,VIRUSIMMUNE) dangerous_existence = 1 mutanteyes = /obj/item/organ/eyes/night_vision diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm index acaa182ad0..0a55ae0134 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -6,7 +6,7 @@ blacklisted = 1 sexes = 0 meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton - species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYDISMEMBER,EASYLIMBATTACHMENT) + species_traits = list(SPECIES_UNDEAD,NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYDISMEMBER,EASYLIMBATTACHMENT) mutanttongue = /obj/item/organ/tongue/bone damage_overlay_type = ""//let's not show bloody wounds or burns over bones. disliked_food = NONE diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index 8b21c2a237..856a472a73 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -3,13 +3,13 @@ id = "synth" say_mod = "beep boops" //inherited from a user's real species sexes = 0 - species_traits = list(NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER) //all of these + whatever we inherit from the real species + species_traits = list(SPECIES_ROBOTIC,NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER) //all of these + whatever we inherit from the real species dangerous_existence = 1 blacklisted = 1 meat = null damage_overlay_type = "synth" limbs_id = "synth" - var/list/initial_species_traits = list(NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER,NO_DNA_COPY) //for getting these values back for assume_disguise() + var/list/initial_species_traits = list(SPECIES_ROBOTIC,NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER,NO_DNA_COPY) //for getting these values back for assume_disguise() var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off var/datum/species/fake_species = null //a species to do most of our work for us, unless we're damaged @@ -41,7 +41,8 @@ say_mod = S.say_mod sexes = S.sexes species_traits = initial_species_traits.Copy() - species_traits.Add(S.species_traits) + species_traits |= S.species_traits + species_traits -= list(SPECIES_ORGANIC, SPECIES_INORGANIC, SPECIES_UNDEAD) attack_verb = S.attack_verb attack_sound = S.attack_sound miss_sound = S.miss_sound diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index 0d309876c7..6d1384f12f 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -2,7 +2,7 @@ name = "vampire" id = "vampire" default_color = "FFFFFF" - species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,NOHUNGER,NOBREATH,DRINKSBLOOD) + species_traits = list(SPECIES_UNDEAD,EYECOLOR,HAIR,FACEHAIR,LIPS,NOHUNGER,NOBREATH,DRINKSBLOOD) mutant_bodyparts = list("tail_human", "ears", "wings") default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None") exotic_bloodtype = "U" diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index 8c87e1c9c9..2fe526368a 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -8,7 +8,7 @@ sexes = 0 blacklisted = 1 meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie - species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT,NOTRANSSTING) + species_traits = list(SPECIES_UNDEAD,NOBREATH,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT,NOTRANSSTING) mutanttongue = /obj/item/organ/tongue/zombie var/static/list/spooks = list('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg','sound/hallucinations/veryfar_noise.ogg','sound/hallucinations/wail.ogg') disliked_food = NONE @@ -73,6 +73,7 @@ id = "goofzombies" limbs_id = "zombie" //They look like zombies sexes = 0 + species_traits = list(SPECIES_ORGANIC) meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie mutanttongue = /obj/item/organ/tongue/zombie diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index f9b13dd24f..44613a9036 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -248,7 +248,7 @@ if(prob(D.infectivity)) D.spread() - if(stat != DEAD) + if(stat != DEAD && !D.process_dead) D.stage_act() //todo generalize this and move hud out diff --git a/tgstation.dme b/tgstation.dme index bbbd444d7d..48c61949b3 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -386,6 +386,7 @@ #include "code\datums\diseases\advance\symptoms\shivering.dm" #include "code\datums\diseases\advance\symptoms\skin.dm" #include "code\datums\diseases\advance\symptoms\sneeze.dm" +#include "code\datums\diseases\advance\symptoms\species.dm" #include "code\datums\diseases\advance\symptoms\symptoms.dm" #include "code\datums\diseases\advance\symptoms\viral.dm" #include "code\datums\diseases\advance\symptoms\vision.dm" From fc2a0f48fa13ecedfe12023c128e0a102b93cbf5 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 22 Nov 2017 17:45:15 -0500 Subject: [PATCH 2/7] Update DNA.dm --- code/__DEFINES/DNA.dm | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index de3d235664..d3dd3fabe3 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -127,18 +127,7 @@ #define TOXINLOVER 24 #define DIGITIGRADE 25 //Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi) #define NO_UNDERWEAR 26 -<<<<<<< HEAD -#define MUTCOLORS2 27 -#define MUTCOLORS3 28 -#define NOLIVER 29 -#define NOSTOMACH 30 -//citadel code -#define NOAROUSAL 29 //Stops all arousal effects -#define NOGENITALS 30 //Cannot create, use, or otherwise have genitals -#define NO_DNA_COPY 31 -#define DRINKSBLOOD 32 -======= -#define NOLIVER 27 +#define NOLIVER 27 #define NOSTOMACH 28 #define NO_DNA_COPY 29 #define DRINKSBLOOD 30 @@ -146,7 +135,11 @@ #define SPECIES_INORGANIC 32 #define SPECIES_UNDEAD 33 #define SPECIES_ROBOTIC 34 ->>>>>>> 9d487d2... Divides species in subtypes, makes viruses able to infect certain subtypes (#32858) +//citadel code +#define MUTCOLORS2 35 +#define MUTCOLORS3 36 +#define NOAROUSAL 37 //Stops all arousal effects +#define NOGENITALS 38 //Cannot create, use, or otherwise have genitals #define ORGAN_SLOT_BRAIN "brain" #define ORGAN_SLOT_APPENDIX "appendix" From 3f07d95b565bcedee9c674371845c1de3aaab9c4 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 22 Nov 2017 17:46:40 -0500 Subject: [PATCH 3/7] Update corporate.dm --- .../carbon/human/species_types/corporate.dm | 23 +------------------ 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/corporate.dm b/code/modules/mob/living/carbon/human/species_types/corporate.dm index 4127e49cec..a15a14159a 100644 --- a/code/modules/mob/living/carbon/human/species_types/corporate.dm +++ b/code/modules/mob/living/carbon/human/species_types/corporate.dm @@ -1,23 +1,3 @@ -<<<<<<< HEAD -/datum/species/corporate - name = "Corporate Agent" - id = "agent" - hair_alpha = 0 - say_mod = "declares" - speedmod = -2//Fast - brutemod = 0.7//Tough against firearms - burnmod = 0.65//Tough against lasers - coldmod = 0 - heatmod = 0.5//it's a little tough to burn them to death not as hard though. - punchdamagelow = 20 - punchdamagehigh = 30//they are inhumanly strong - punchstunthreshold = 25 - attack_verb = "smash" - attack_sound = 'sound/weapons/resonator_blast.ogg' - blacklisted = 1 - use_skintones = 0 - species_traits = list(RADIMMUNE,VIRUSIMMUNE,NOBLOOD,PIERCEIMMUNE,EYECOLOR,NODISMEMBER,NOHUNGER) -======= /datum/species/corporate name = "Corporate Agent" id = "agent" @@ -36,5 +16,4 @@ blacklisted = 1 use_skintones = 0 species_traits = list(SPECIES_ORGANIC,RADIMMUNE,VIRUSIMMUNE,NOBLOOD,PIERCEIMMUNE,EYECOLOR,NODISMEMBER,NOHUNGER) ->>>>>>> 9d487d2... Divides species in subtypes, makes viruses able to infect certain subtypes (#32858) - sexes = 0 \ No newline at end of file + sexes = 0 From 93a2d653bfc0f760f6f322d3e576a7e0980e270f Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 22 Nov 2017 17:48:56 -0500 Subject: [PATCH 4/7] Update humans.dm --- .../mob/living/carbon/human/species_types/humans.dm | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index 7d43d1cdb4..fe0acc4feb 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -2,15 +2,9 @@ name = "Human" id = "human" default_color = "FFFFFF" -<<<<<<< HEAD - species_traits = list(MUTCOLORS_PARTSONLY,EYECOLOR,HAIR,FACEHAIR,LIPS) - mutant_bodyparts = list("tail_human", "ears", "taur") - default_features = list("tail_human" = "None", "ears" = "None", "taur" = "none") -======= - species_traits = list(SPECIES_ORGANIC,EYECOLOR,HAIR,FACEHAIR,LIPS) - mutant_bodyparts = list("tail_human", "ears", "wings") - default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None") ->>>>>>> 9d487d2... Divides species in subtypes, makes viruses able to infect certain subtypes (#32858) + species_traits = list(MUTCOLORS_PARTSONLY,SPECIES_ORGANIC,EYECOLOR,HAIR,FACEHAIR,LIPS) + mutant_bodyparts = list("tail_human", "ears", "wings", "taur") + default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None", "taur" = "none") use_skintones = 1 skinned_type = /obj/item/stack/sheet/animalhide/human disliked_food = GROSS | RAW From 6bfba3ea033a7f41abe805b9f9fc7c8fbb736563 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 22 Nov 2017 17:50:23 -0500 Subject: [PATCH 5/7] Update lizardpeople.dm --- .../mob/living/carbon/human/species_types/lizardpeople.dm | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index c1db8cd69b..257abf63d0 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -4,13 +4,8 @@ id = "lizard" say_mod = "hisses" default_color = "00FF00" -<<<<<<< HEAD - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,FACEHAIR) + species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,LIPS, HAIR, FACEHAIR) mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs", "taur") -======= - species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,LIPS) - mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs") ->>>>>>> 9d487d2... Divides species in subtypes, makes viruses able to infect certain subtypes (#32858) mutanttongue = /obj/item/organ/tongue/lizard mutanttail = /obj/item/organ/tail/lizard coldmod = 1.5 From 29d4b023f09d8774b45ea4df1adc7562ca2f66d3 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 22 Nov 2017 17:51:36 -0500 Subject: [PATCH 6/7] Update podpeople.dm --- .../carbon/human/species_types/podpeople.dm | 99 +++---------------- 1 file changed, 15 insertions(+), 84 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 37b3d1b1cf..8ff0e67f5d 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -1,76 +1,3 @@ -<<<<<<< HEAD -/datum/species/pod - // A mutation caused by a human being ressurected in a revival pod. These regain health in light, and begin to wither in darkness. - name = "Podperson" - id = "pod" - default_color = "59CE00" - species_traits = list(MUTCOLORS,EYECOLOR) - attack_verb = "slash" - attack_sound = 'sound/weapons/slice.ogg' - miss_sound = 'sound/weapons/slashmiss.ogg' - burnmod = 1.25 - heatmod = 1.55 - meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/plant - disliked_food = NONE - liked_food = NONE - toxic_food = NONE - - -/datum/species/pod/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.faction |= "plants" - C.faction |= "vines" - -/datum/species/pod/on_species_loss(mob/living/carbon/C) - . = ..() - C.faction -= "plants" - C.faction -= "vines" - -/datum/species/pod/spec_life(mob/living/carbon/human/H) - if(H.stat == DEAD) - return - var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing - if(isturf(H.loc)) //else, there's considered to be no light - var/turf/T = H.loc - light_amount = min(1,T.get_lumcount()) - 0.5 - H.nutrition += light_amount * 10 - if(H.nutrition > NUTRITION_LEVEL_FULL) - H.nutrition = NUTRITION_LEVEL_FULL - if(light_amount > 0.2) //if there's enough light, heal - H.heal_overall_damage(0.75,0) - H.adjustOxyLoss(-0.5) - - if(H.nutrition < NUTRITION_LEVEL_STARVING + 55) - H.adjustOxyLoss(5) //can eat to negate this unfortunately - H.adjustToxLoss(3) - - -/datum/species/pod/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "plantbgone") - H.adjustToxLoss(5) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) - H.confused = max(H.confused, 1) - return TRUE - - -/datum/species/pod/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) - switch(P.type) - if(/obj/item/projectile/energy/floramut) - if(prob(15)) - H.rad_act(rand(30,80)) - H.Knockdown(100) - H.visible_message("[H] writhes in pain as [H.p_their()] vacuoles boil.", "You writhe in pain as your vacuoles boil!", "You hear the crunching of leaves.") - if(prob(80)) - H.randmutb() - else - H.randmutg() - H.domutcheck() - else - H.adjustFireLoss(rand(5,15)) - H.show_message("The radiation beam singes you!") - if(/obj/item/projectile/energy/florayield) - H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL) -======= /datum/species/pod // A mutation caused by a human being ressurected in a revival pod. These regain health in light, and begin to wither in darkness. name = "Podperson" @@ -81,10 +8,12 @@ attack_sound = 'sound/weapons/slice.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' burnmod = 1.25 - heatmod = 1.5 + heatmod = 1.55 meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/plant - disliked_food = MEAT | DAIRY - liked_food = VEGETABLES | FRUIT | GRAIN + disliked_food = NONE + liked_food = NONE + toxic_food = NONE + /datum/species/pod/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() @@ -107,18 +36,21 @@ if(H.nutrition > NUTRITION_LEVEL_FULL) H.nutrition = NUTRITION_LEVEL_FULL if(light_amount > 0.2) //if there's enough light, heal - H.heal_overall_damage(1,1) - H.adjustToxLoss(-1) - H.adjustOxyLoss(-1) + H.heal_overall_damage(0.75,0) + H.adjustOxyLoss(-0.5) + + if(H.nutrition < NUTRITION_LEVEL_STARVING + 55) + H.adjustOxyLoss(5) //can eat to negate this unfortunately + H.adjustToxLoss(3) - if(H.nutrition < NUTRITION_LEVEL_STARVING + 50) - H.take_overall_damage(2,0) /datum/species/pod/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) if(chem.id == "plantbgone") - H.adjustToxLoss(3) + H.adjustToxLoss(5) H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) - return 1 + H.confused = max(H.confused, 1) + return TRUE + /datum/species/pod/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) switch(P.type) @@ -137,4 +69,3 @@ H.show_message("The radiation beam singes you!") if(/obj/item/projectile/energy/florayield) H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL) ->>>>>>> 9d487d2... Divides species in subtypes, makes viruses able to infect certain subtypes (#32858) From 1a40fe16bd7c42214c33b7ce893f3a37a126d5fe Mon Sep 17 00:00:00 2001 From: deathride58 Date: Mon, 4 Dec 2017 16:38:39 -0500 Subject: [PATCH 7/7] adds species_organic to cit races --- .../carbon/human/species_types/furrypeople.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index bff4d8554a..79bbee9db1 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -2,7 +2,7 @@ name = "Mammal" id = "mammal" default_color = "4B4B4B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC) mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "snout", "taur") default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "body_markings" = "None", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "None", "taur" = "None") attack_verb = "claw" @@ -24,7 +24,7 @@ id = "avian" say_mod = "chirps" default_color = "BCAC9B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC) mutant_bodyparts = list("snout", "wings", "taur", "mam_tail", "mam_body_markings", "taur") default_features = list("snout" = "Sharp", "wings" = "None", "taur" = "None", "mam_body_markings" = "Hawk") attack_verb = "peck" @@ -45,7 +45,7 @@ name = "Aquatic" id = "aquatic" default_color = "BCAC9B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC) mutant_bodyparts = list("mam_tail", "mam_body_markings", "mam_ears", "taur") default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF","mam_tail" = "shark", "mam_body_markings" = "None", "mam_ears" = "None") attack_verb = "bite" @@ -66,7 +66,7 @@ name = "Insect" id = "insect" default_color = "BCAC9B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC) mutant_bodyparts = list("mam_body_markings", "mam_ears", "mam_tail", "taur") default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_body_markings" = "moth", "mam_tail" = "None", "mam_ears" = "None") attack_verb = "flutter" //wat? @@ -90,7 +90,7 @@ id = "xeno" say_mod = "hisses" default_color = "00FF00" - species_traits = list(MUTCOLORS,LIPS,DIGITIGRADE,PIERCEIMMUNE) + species_traits = list(MUTCOLORS,LIPS,DIGITIGRADE,PIERCEIMMUNE,SPECIES_ORGANIC) mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "taur","mam_body_markings") default_features = list("xenotail"="xeno","xenohead"="standard","xenodorsal"="standard","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None","mam_body_markings" = "xeno") heatmod = 1.3 @@ -220,7 +220,7 @@ name = "DataShark" id = "datashark" default_color = "BCAC9B" - species_traits = list(MUTCOLORS_PARTSONLY,EYECOLOR,LIPS,HAIR) + species_traits = list(MUTCOLORS_PARTSONLY,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC) mutant_bodyparts = list("mam_tail", "mam_body_markings") default_features = list("mam_tail" = "datashark", "mam_body_markings" = "None") attack_verb = "bite" @@ -234,7 +234,7 @@ name = "Guilmon" id = "guilmon" default_color = "4B4B4B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC) mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings") default_features = list("mcolor" = "FFF", "mcolor2" = "FFF", "mcolor3" = "FFF", "mam_tail" = "guilmon", "mam_ears" = "guilmon", "mam_body_markings" = "guilmon") attack_verb = "claw"