Merge pull request #4076 from Citadel-Station-13/upstream-merge-32858
[MIRROR] Divides species in subtypes, makes viruses able to infect certain subtypes
This commit is contained in:
+12
-8
@@ -127,15 +127,19 @@
|
|||||||
#define TOXINLOVER 24
|
#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 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
|
#define NO_UNDERWEAR 26
|
||||||
#define MUTCOLORS2 27
|
#define NOLIVER 27
|
||||||
#define MUTCOLORS3 28
|
#define NOSTOMACH 28
|
||||||
#define NOLIVER 29
|
#define NO_DNA_COPY 29
|
||||||
#define NOSTOMACH 30
|
#define DRINKSBLOOD 30
|
||||||
|
#define SPECIES_ORGANIC 31
|
||||||
|
#define SPECIES_INORGANIC 32
|
||||||
|
#define SPECIES_UNDEAD 33
|
||||||
|
#define SPECIES_ROBOTIC 34
|
||||||
//citadel code
|
//citadel code
|
||||||
#define NOAROUSAL 29 //Stops all arousal effects
|
#define MUTCOLORS2 35
|
||||||
#define NOGENITALS 30 //Cannot create, use, or otherwise have genitals
|
#define MUTCOLORS3 36
|
||||||
#define NO_DNA_COPY 31
|
#define NOAROUSAL 37 //Stops all arousal effects
|
||||||
#define DRINKSBLOOD 32
|
#define NOGENITALS 38 //Cannot create, use, or otherwise have genitals
|
||||||
|
|
||||||
#define ORGAN_SLOT_BRAIN "brain"
|
#define ORGAN_SLOT_BRAIN "brain"
|
||||||
#define ORGAN_SLOT_APPENDIX "appendix"
|
#define ORGAN_SLOT_APPENDIX "appendix"
|
||||||
|
|||||||
@@ -143,14 +143,25 @@
|
|||||||
//Proc to use when you 100% want to infect someone, as long as they aren't immune
|
//Proc to use when you 100% want to infect someone, as long as they aren't immune
|
||||||
/mob/proc/ForceContractDisease(datum/disease/D)
|
/mob/proc/ForceContractDisease(datum/disease/D)
|
||||||
if(!CanContractDisease(D))
|
if(!CanContractDisease(D))
|
||||||
return 0
|
return FALSE
|
||||||
AddDisease(D)
|
AddDisease(D)
|
||||||
|
|
||||||
|
|
||||||
/mob/living/carbon/human/CanContractDisease(datum/disease/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)
|
for(var/thing in D.required_organs)
|
||||||
if(!((locate(thing) in bodyparts) || (locate(thing) in internal_organs)))
|
if(!((locate(thing) in bodyparts) || (locate(thing) in internal_organs)))
|
||||||
return 0
|
return FALSE
|
||||||
return ..()
|
return ..()
|
||||||
@@ -30,6 +30,8 @@
|
|||||||
var/list/required_organs = list()
|
var/list/required_organs = list()
|
||||||
var/needs_all_cures = TRUE
|
var/needs_all_cures = TRUE
|
||||||
var/list/strain_data = list() //dna_spread special bullshit
|
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()
|
/datum/disease/Destroy()
|
||||||
affected_mob = null
|
affected_mob = null
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
|
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
|
||||||
desc = "If left untreated subject will regurgitate bees."
|
desc = "If left untreated subject will regurgitate bees."
|
||||||
severity = VIRUS_SEVERITY_MEDIUM
|
severity = VIRUS_SEVERITY_MEDIUM
|
||||||
|
infectable_hosts = list(SPECIES_ORGANIC, SPECIES_UNDEAD) //bees nesting in corpses
|
||||||
|
|
||||||
/datum/disease/beesease/stage_act()
|
/datum/disease/beesease/stage_act()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
permeability_mod = 0.75
|
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."
|
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
|
severity = VIRUS_SEVERITY_MEDIUM
|
||||||
|
infectable_hosts = list(SPECIES_ORGANIC, SPECIES_ROBOTIC)
|
||||||
|
process_dead = TRUE
|
||||||
|
|
||||||
/datum/disease/magnitis/stage_act()
|
/datum/disease/magnitis/stage_act()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -11,6 +11,8 @@
|
|||||||
viable_mobtypes = list(/mob/living/carbon/human)
|
viable_mobtypes = list(/mob/living/carbon/human)
|
||||||
desc = "Subject is possesed by the vengeful spirit of a parrot. Call the priest."
|
desc = "Subject is possesed by the vengeful spirit of a parrot. Call the priest."
|
||||||
severity = VIRUS_SEVERITY_MEDIUM
|
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
|
var/mob/living/simple_animal/parrot/Poly/ghost/parrot
|
||||||
|
|
||||||
/datum/disease/parrot_possession/stage_act()
|
/datum/disease/parrot_possession/stage_act()
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
viable_mobtypes = list(/mob/living/carbon/human)
|
viable_mobtypes = list(/mob/living/carbon/human)
|
||||||
permeability_mod = 1
|
permeability_mod = 1
|
||||||
severity = VIRUS_SEVERITY_BIOHAZARD
|
severity = VIRUS_SEVERITY_BIOHAZARD
|
||||||
|
process_dead = TRUE
|
||||||
|
|
||||||
/datum/disease/rhumba_beat/stage_act()
|
/datum/disease/rhumba_beat/stage_act()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -127,7 +127,7 @@
|
|||||||
stage4 = list("<span class='danger'>Your skin feels very loose.</span>", "<span class='danger'>You can feel... something...inside you.</span>")
|
stage4 = list("<span class='danger'>Your skin feels very loose.</span>", "<span class='danger'>You can feel... something...inside you.</span>")
|
||||||
stage5 = list("<span class='danger'>Your skin feels as if it's about to burst off!</span>")
|
stage5 = list("<span class='danger'>Your skin feels as if it's about to burst off!</span>")
|
||||||
new_form = /mob/living/silicon/robot
|
new_form = /mob/living/silicon/robot
|
||||||
|
infectable_hosts = list(SPECIES_ORGANIC, SPECIES_UNDEAD, SPECIES_ROBOTIC)
|
||||||
|
|
||||||
/datum/disease/transformation/robot/stage_act()
|
/datum/disease/transformation/robot/stage_act()
|
||||||
..()
|
..()
|
||||||
@@ -240,3 +240,4 @@
|
|||||||
stage4 = list("<span class='danger'>You're ravenous.</span>")
|
stage4 = list("<span class='danger'>You're ravenous.</span>")
|
||||||
stage5 = list("<span class='danger'>You have become a morph.</span>")
|
stage5 = list("<span class='danger'>You have become a morph.</span>")
|
||||||
new_form = /mob/living/simple_animal/hostile/morph
|
new_form = /mob/living/simple_animal/hostile/morph
|
||||||
|
infectable_hosts = list(SPECIES_ORGANIC, SPECIES_INORGANIC, SPECIES_UNDEAD) //magic!
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
id = "abductor"
|
id = "abductor"
|
||||||
say_mod = "gibbers"
|
say_mod = "gibbers"
|
||||||
sexes = FALSE
|
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
|
mutanttongue = /obj/item/organ/tongue/abductor
|
||||||
var/scientist = FALSE // vars to not pollute spieces list with castes
|
var/scientist = FALSE // vars to not pollute spieces list with castes
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name = "Android"
|
name = "Android"
|
||||||
id = "android"
|
id = "android"
|
||||||
say_mod = "states"
|
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
|
meat = null
|
||||||
damage_overlay_type = "synth"
|
damage_overlay_type = "synth"
|
||||||
mutanttongue = /obj/item/organ/tongue/robot
|
mutanttongue = /obj/item/organ/tongue/robot
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name = "Angel"
|
name = "Angel"
|
||||||
id = "angel"
|
id = "angel"
|
||||||
default_color = "FFFFFF"
|
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")
|
mutant_bodyparts = list("tail_human", "ears", "wings")
|
||||||
default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "Angel")
|
default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "Angel")
|
||||||
use_skintones = 1
|
use_skintones = 1
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
/datum/species/corporate
|
/datum/species/corporate
|
||||||
name = "Corporate Agent"
|
name = "Corporate Agent"
|
||||||
id = "agent"
|
id = "agent"
|
||||||
hair_alpha = 0
|
hair_alpha = 0
|
||||||
say_mod = "declares"
|
say_mod = "declares"
|
||||||
speedmod = -2//Fast
|
speedmod = -2//Fast
|
||||||
brutemod = 0.7//Tough against firearms
|
brutemod = 0.7//Tough against firearms
|
||||||
burnmod = 0.65//Tough against lasers
|
burnmod = 0.65//Tough against lasers
|
||||||
coldmod = 0
|
coldmod = 0
|
||||||
heatmod = 0.5//it's a little tough to burn them to death not as hard though.
|
heatmod = 0.5//it's a little tough to burn them to death not as hard though.
|
||||||
punchdamagelow = 20
|
punchdamagelow = 20
|
||||||
punchdamagehigh = 30//they are inhumanly strong
|
punchdamagehigh = 30//they are inhumanly strong
|
||||||
punchstunthreshold = 25
|
punchstunthreshold = 25
|
||||||
attack_verb = "smash"
|
attack_verb = "smash"
|
||||||
attack_sound = 'sound/weapons/resonator_blast.ogg'
|
attack_sound = 'sound/weapons/resonator_blast.ogg'
|
||||||
blacklisted = 1
|
blacklisted = 1
|
||||||
use_skintones = 0
|
use_skintones = 0
|
||||||
species_traits = list(RADIMMUNE,VIRUSIMMUNE,NOBLOOD,PIERCEIMMUNE,EYECOLOR,NODISMEMBER,NOHUNGER)
|
species_traits = list(SPECIES_ORGANIC,RADIMMUNE,VIRUSIMMUNE,NOBLOOD,PIERCEIMMUNE,EYECOLOR,NODISMEMBER,NOHUNGER)
|
||||||
sexes = 0
|
sexes = 0
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name = "dullahan"
|
name = "dullahan"
|
||||||
id = "dullahan"
|
id = "dullahan"
|
||||||
default_color = "FFFFFF"
|
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")
|
mutant_bodyparts = list("tail_human", "ears", "wings")
|
||||||
default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None")
|
default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None")
|
||||||
use_skintones = TRUE
|
use_skintones = TRUE
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
name = "Flyperson"
|
name = "Flyperson"
|
||||||
id = "fly"
|
id = "fly"
|
||||||
say_mod = "buzzes"
|
say_mod = "buzzes"
|
||||||
|
species_traits = list(SPECIES_ORGANIC)
|
||||||
mutanttongue = /obj/item/organ/tongue/fly
|
mutanttongue = /obj/item/organ/tongue/fly
|
||||||
mutantliver = /obj/item/organ/liver/fly
|
mutantliver = /obj/item/organ/liver/fly
|
||||||
mutantstomach = /obj/item/organ/stomach/fly
|
mutantstomach = /obj/item/organ/stomach/fly
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name = "Mammal"
|
name = "Mammal"
|
||||||
id = "mammal"
|
id = "mammal"
|
||||||
default_color = "4B4B4B"
|
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")
|
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")
|
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"
|
attack_verb = "claw"
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
id = "avian"
|
id = "avian"
|
||||||
say_mod = "chirps"
|
say_mod = "chirps"
|
||||||
default_color = "BCAC9B"
|
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")
|
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")
|
default_features = list("snout" = "Sharp", "wings" = "None", "taur" = "None", "mam_body_markings" = "Hawk")
|
||||||
attack_verb = "peck"
|
attack_verb = "peck"
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
name = "Aquatic"
|
name = "Aquatic"
|
||||||
id = "aquatic"
|
id = "aquatic"
|
||||||
default_color = "BCAC9B"
|
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")
|
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")
|
default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF","mam_tail" = "shark", "mam_body_markings" = "None", "mam_ears" = "None")
|
||||||
attack_verb = "bite"
|
attack_verb = "bite"
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
name = "Insect"
|
name = "Insect"
|
||||||
id = "insect"
|
id = "insect"
|
||||||
default_color = "BCAC9B"
|
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")
|
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")
|
default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_body_markings" = "moth", "mam_tail" = "None", "mam_ears" = "None")
|
||||||
attack_verb = "flutter" //wat?
|
attack_verb = "flutter" //wat?
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
id = "xeno"
|
id = "xeno"
|
||||||
say_mod = "hisses"
|
say_mod = "hisses"
|
||||||
default_color = "00FF00"
|
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")
|
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")
|
default_features = list("xenotail"="xeno","xenohead"="standard","xenodorsal"="standard","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None","mam_body_markings" = "xeno")
|
||||||
heatmod = 1.3
|
heatmod = 1.3
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
name = "DataShark"
|
name = "DataShark"
|
||||||
id = "datashark"
|
id = "datashark"
|
||||||
default_color = "BCAC9B"
|
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")
|
mutant_bodyparts = list("mam_tail", "mam_body_markings")
|
||||||
default_features = list("mam_tail" = "datashark", "mam_body_markings" = "None")
|
default_features = list("mam_tail" = "datashark", "mam_body_markings" = "None")
|
||||||
attack_verb = "bite"
|
attack_verb = "bite"
|
||||||
@@ -234,7 +234,7 @@
|
|||||||
name = "Guilmon"
|
name = "Guilmon"
|
||||||
id = "guilmon"
|
id = "guilmon"
|
||||||
default_color = "4B4B4B"
|
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")
|
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")
|
default_features = list("mcolor" = "FFF", "mcolor2" = "FFF", "mcolor3" = "FFF", "mam_tail" = "guilmon", "mam_ears" = "guilmon", "mam_body_markings" = "guilmon")
|
||||||
attack_verb = "claw"
|
attack_verb = "claw"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
// Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck.
|
// Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck.
|
||||||
name = "Golem"
|
name = "Golem"
|
||||||
id = "iron 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)
|
mutant_organs = list(/obj/item/organ/adamantine_resonator)
|
||||||
speedmod = 2
|
speedmod = 2
|
||||||
armor = 55
|
armor = 55
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
fixed_mut_color = "a3d"
|
fixed_mut_color = "a3d"
|
||||||
meat = /obj/item/ore/plasma
|
meat = /obj/item/ore/plasma
|
||||||
//Can burn and takes damage from heat
|
//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 <span class='danger'>Plasma Golem</span>, you burn easily. Be careful, if you get hot enough while burning, you'll blow up!"
|
info_text = "As a <span class='danger'>Plasma Golem</span>, you burn easily. Be careful, if you get hot enough while burning, you'll blow up!"
|
||||||
heatmod = 0 //fine until they blow up
|
heatmod = 0 //fine until they blow up
|
||||||
prefix = "Plasma"
|
prefix = "Plasma"
|
||||||
@@ -242,7 +242,7 @@
|
|||||||
fixed_mut_color = "49311c"
|
fixed_mut_color = "49311c"
|
||||||
meat = /obj/item/stack/sheet/mineral/wood
|
meat = /obj/item/stack/sheet/mineral/wood
|
||||||
//Can burn and take damage from heat
|
//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
|
armor = 30
|
||||||
burnmod = 1.25
|
burnmod = 1.25
|
||||||
heatmod = 1.5
|
heatmod = 1.5
|
||||||
@@ -549,7 +549,7 @@
|
|||||||
limbs_id = "cultgolem"
|
limbs_id = "cultgolem"
|
||||||
sexes = FALSE
|
sexes = FALSE
|
||||||
info_text = "As a <span class='danger'>Runic Golem</span>, you possess eldritch powers granted by the Elder God Nar'Sie."
|
info_text = "As a <span class='danger'>Runic Golem</span>, 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"
|
prefix = "Runic"
|
||||||
|
|
||||||
var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem/phase_shift
|
var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem/phase_shift
|
||||||
@@ -602,7 +602,7 @@
|
|||||||
limbs_id = "clockgolem"
|
limbs_id = "clockgolem"
|
||||||
info_text = "<span class='bold alloy'>As a </span><span class='bold brass'>clockwork golem</span><span class='bold alloy'>, you are faster than \
|
info_text = "<span class='bold alloy'>As a </span><span class='bold brass'>clockwork golem</span><span class='bold alloy'>, you are faster than \
|
||||||
other types of golem (being a machine), and are immune to electric shocks.</span>"
|
other types of golem (being a machine), and are immune to electric shocks.</span>"
|
||||||
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
|
armor = 20 //Reinforced, but much less so to allow for fast movement
|
||||||
attack_verb = "smash"
|
attack_verb = "smash"
|
||||||
attack_sound = 'sound/magic/clockwork/anima_fragment_attack.ogg'
|
attack_sound = 'sound/magic/clockwork/anima_fragment_attack.ogg'
|
||||||
@@ -653,7 +653,7 @@
|
|||||||
limbs_id = "clothgolem"
|
limbs_id = "clothgolem"
|
||||||
sexes = FALSE
|
sexes = FALSE
|
||||||
info_text = "As a <span class='danger'>Cloth Golem</span>, you are able to reform yourself after death, provided your remains aren't burned or destroyed. You are, of course, very flammable."
|
info_text = "As a <span class='danger'>Cloth Golem</span>, 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
|
armor = 15 //feels no pain, but not too resistant
|
||||||
burnmod = 2 // don't get burned
|
burnmod = 2 // don't get burned
|
||||||
speedmod = 1 // not as heavy as stone
|
speedmod = 1 // not as heavy as stone
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
name = "Human"
|
name = "Human"
|
||||||
id = "human"
|
id = "human"
|
||||||
default_color = "FFFFFF"
|
default_color = "FFFFFF"
|
||||||
species_traits = list(MUTCOLORS_PARTSONLY,EYECOLOR,HAIR,FACEHAIR,LIPS)
|
species_traits = list(MUTCOLORS_PARTSONLY,SPECIES_ORGANIC,EYECOLOR,HAIR,FACEHAIR,LIPS)
|
||||||
mutant_bodyparts = list("tail_human", "ears", "taur")
|
mutant_bodyparts = list("tail_human", "ears", "wings", "taur")
|
||||||
default_features = list("tail_human" = "None", "ears" = "None", "taur" = "none")
|
default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None", "taur" = "none")
|
||||||
use_skintones = 1
|
use_skintones = 1
|
||||||
skinned_type = /obj/item/stack/sheet/animalhide/human
|
skinned_type = /obj/item/stack/sheet/animalhide/human
|
||||||
disliked_food = GROSS | RAW
|
disliked_food = GROSS | RAW
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
id = "jelly"
|
id = "jelly"
|
||||||
default_color = "00FF90"
|
default_color = "00FF90"
|
||||||
say_mod = "chirps"
|
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
|
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime
|
||||||
exotic_blood = "slimejelly"
|
exotic_blood = "slimejelly"
|
||||||
damage_overlay_type = ""
|
damage_overlay_type = ""
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
name = "Slimeperson"
|
name = "Slimeperson"
|
||||||
id = "slime"
|
id = "slime"
|
||||||
default_color = "00FFFF"
|
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"
|
say_mod = "says"
|
||||||
hair_color = "mutcolor"
|
hair_color = "mutcolor"
|
||||||
hair_alpha = 150
|
hair_alpha = 150
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
id = "lizard"
|
id = "lizard"
|
||||||
say_mod = "hisses"
|
say_mod = "hisses"
|
||||||
default_color = "00FF00"
|
default_color = "00FF00"
|
||||||
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")
|
mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs", "taur")
|
||||||
mutanttongue = /obj/item/organ/tongue/lizard
|
mutanttongue = /obj/item/organ/tongue/lizard
|
||||||
mutanttail = /obj/item/organ/tail/lizard
|
mutanttail = /obj/item/organ/tail/lizard
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
say_mod = "rattles"
|
say_mod = "rattles"
|
||||||
sexes = 0
|
sexes = 0
|
||||||
meat = /obj/item/stack/sheet/mineral/plasma
|
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
|
mutantlungs = /obj/item/organ/lungs/plasmaman
|
||||||
mutanttongue = /obj/item/organ/tongue/bone/plasmaman
|
mutanttongue = /obj/item/organ/tongue/bone/plasmaman
|
||||||
mutantliver = /obj/item/organ/liver/plasmaman
|
mutantliver = /obj/item/organ/liver/plasmaman
|
||||||
|
|||||||
@@ -1,71 +1,71 @@
|
|||||||
/datum/species/pod
|
/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.
|
// 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"
|
name = "Podperson"
|
||||||
id = "pod"
|
id = "pod"
|
||||||
default_color = "59CE00"
|
default_color = "59CE00"
|
||||||
species_traits = list(MUTCOLORS,EYECOLOR)
|
species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR)
|
||||||
attack_verb = "slash"
|
attack_verb = "slash"
|
||||||
attack_sound = 'sound/weapons/slice.ogg'
|
attack_sound = 'sound/weapons/slice.ogg'
|
||||||
miss_sound = 'sound/weapons/slashmiss.ogg'
|
miss_sound = 'sound/weapons/slashmiss.ogg'
|
||||||
burnmod = 1.25
|
burnmod = 1.25
|
||||||
heatmod = 1.55
|
heatmod = 1.55
|
||||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/plant
|
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/plant
|
||||||
disliked_food = NONE
|
disliked_food = NONE
|
||||||
liked_food = NONE
|
liked_food = NONE
|
||||||
toxic_food = NONE
|
toxic_food = NONE
|
||||||
|
|
||||||
|
|
||||||
/datum/species/pod/on_species_gain(mob/living/carbon/C, datum/species/old_species)
|
/datum/species/pod/on_species_gain(mob/living/carbon/C, datum/species/old_species)
|
||||||
. = ..()
|
. = ..()
|
||||||
C.faction |= "plants"
|
C.faction |= "plants"
|
||||||
C.faction |= "vines"
|
C.faction |= "vines"
|
||||||
|
|
||||||
/datum/species/pod/on_species_loss(mob/living/carbon/C)
|
/datum/species/pod/on_species_loss(mob/living/carbon/C)
|
||||||
. = ..()
|
. = ..()
|
||||||
C.faction -= "plants"
|
C.faction -= "plants"
|
||||||
C.faction -= "vines"
|
C.faction -= "vines"
|
||||||
|
|
||||||
/datum/species/pod/spec_life(mob/living/carbon/human/H)
|
/datum/species/pod/spec_life(mob/living/carbon/human/H)
|
||||||
if(H.stat == DEAD)
|
if(H.stat == DEAD)
|
||||||
return
|
return
|
||||||
var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing
|
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
|
if(isturf(H.loc)) //else, there's considered to be no light
|
||||||
var/turf/T = H.loc
|
var/turf/T = H.loc
|
||||||
light_amount = min(1,T.get_lumcount()) - 0.5
|
light_amount = min(1,T.get_lumcount()) - 0.5
|
||||||
H.nutrition += light_amount * 10
|
H.nutrition += light_amount * 10
|
||||||
if(H.nutrition > NUTRITION_LEVEL_FULL)
|
if(H.nutrition > NUTRITION_LEVEL_FULL)
|
||||||
H.nutrition = NUTRITION_LEVEL_FULL
|
H.nutrition = NUTRITION_LEVEL_FULL
|
||||||
if(light_amount > 0.2) //if there's enough light, heal
|
if(light_amount > 0.2) //if there's enough light, heal
|
||||||
H.heal_overall_damage(0.75,0)
|
H.heal_overall_damage(0.75,0)
|
||||||
H.adjustOxyLoss(-0.5)
|
H.adjustOxyLoss(-0.5)
|
||||||
|
|
||||||
if(H.nutrition < NUTRITION_LEVEL_STARVING + 55)
|
if(H.nutrition < NUTRITION_LEVEL_STARVING + 55)
|
||||||
H.adjustOxyLoss(5) //can eat to negate this unfortunately
|
H.adjustOxyLoss(5) //can eat to negate this unfortunately
|
||||||
H.adjustToxLoss(3)
|
H.adjustToxLoss(3)
|
||||||
|
|
||||||
|
|
||||||
/datum/species/pod/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
|
/datum/species/pod/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
|
||||||
if(chem.id == "plantbgone")
|
if(chem.id == "plantbgone")
|
||||||
H.adjustToxLoss(5)
|
H.adjustToxLoss(5)
|
||||||
H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM)
|
H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM)
|
||||||
H.confused = max(H.confused, 1)
|
H.confused = max(H.confused, 1)
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
|
|
||||||
/datum/species/pod/on_hit(obj/item/projectile/P, mob/living/carbon/human/H)
|
/datum/species/pod/on_hit(obj/item/projectile/P, mob/living/carbon/human/H)
|
||||||
switch(P.type)
|
switch(P.type)
|
||||||
if(/obj/item/projectile/energy/floramut)
|
if(/obj/item/projectile/energy/floramut)
|
||||||
if(prob(15))
|
if(prob(15))
|
||||||
H.rad_act(rand(30,80))
|
H.rad_act(rand(30,80))
|
||||||
H.Knockdown(100)
|
H.Knockdown(100)
|
||||||
H.visible_message("<span class='warning'>[H] writhes in pain as [H.p_their()] vacuoles boil.</span>", "<span class='userdanger'>You writhe in pain as your vacuoles boil!</span>", "<span class='italics'>You hear the crunching of leaves.</span>")
|
H.visible_message("<span class='warning'>[H] writhes in pain as [H.p_their()] vacuoles boil.</span>", "<span class='userdanger'>You writhe in pain as your vacuoles boil!</span>", "<span class='italics'>You hear the crunching of leaves.</span>")
|
||||||
if(prob(80))
|
if(prob(80))
|
||||||
H.randmutb()
|
H.randmutb()
|
||||||
else
|
else
|
||||||
H.randmutg()
|
H.randmutg()
|
||||||
H.domutcheck()
|
H.domutcheck()
|
||||||
else
|
else
|
||||||
H.adjustFireLoss(rand(5,15))
|
H.adjustFireLoss(rand(5,15))
|
||||||
H.show_message("<span class='userdanger'>The radiation beam singes you!</span>")
|
H.show_message("<span class='userdanger'>The radiation beam singes you!</span>")
|
||||||
if(/obj/item/projectile/energy/florayield)
|
if(/obj/item/projectile/energy/florayield)
|
||||||
H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL)
|
H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
blacklisted = 1
|
blacklisted = 1
|
||||||
ignored_by = list(/mob/living/simple_animal/hostile/faithless)
|
ignored_by = list(/mob/living/simple_animal/hostile/faithless)
|
||||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/shadow
|
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
|
dangerous_existence = 1
|
||||||
mutanteyes = /obj/item/organ/eyes/night_vision
|
mutanteyes = /obj/item/organ/eyes/night_vision
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
blacklisted = 1
|
blacklisted = 1
|
||||||
sexes = 0
|
sexes = 0
|
||||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton
|
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
|
mutanttongue = /obj/item/organ/tongue/bone
|
||||||
damage_overlay_type = ""//let's not show bloody wounds or burns over bones.
|
damage_overlay_type = ""//let's not show bloody wounds or burns over bones.
|
||||||
disliked_food = NONE
|
disliked_food = NONE
|
||||||
|
|||||||
@@ -3,13 +3,13 @@
|
|||||||
id = "synth"
|
id = "synth"
|
||||||
say_mod = "beep boops" //inherited from a user's real species
|
say_mod = "beep boops" //inherited from a user's real species
|
||||||
sexes = 0
|
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
|
dangerous_existence = 1
|
||||||
blacklisted = 1
|
blacklisted = 1
|
||||||
meat = null
|
meat = null
|
||||||
damage_overlay_type = "synth"
|
damage_overlay_type = "synth"
|
||||||
limbs_id = "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/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
|
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
|
say_mod = S.say_mod
|
||||||
sexes = S.sexes
|
sexes = S.sexes
|
||||||
species_traits = initial_species_traits.Copy()
|
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_verb = S.attack_verb
|
||||||
attack_sound = S.attack_sound
|
attack_sound = S.attack_sound
|
||||||
miss_sound = S.miss_sound
|
miss_sound = S.miss_sound
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name = "vampire"
|
name = "vampire"
|
||||||
id = "vampire"
|
id = "vampire"
|
||||||
default_color = "FFFFFF"
|
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")
|
mutant_bodyparts = list("tail_human", "ears", "wings")
|
||||||
default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None")
|
default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None")
|
||||||
exotic_bloodtype = "U"
|
exotic_bloodtype = "U"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
sexes = 0
|
sexes = 0
|
||||||
blacklisted = 1
|
blacklisted = 1
|
||||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie
|
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
|
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')
|
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
|
disliked_food = NONE
|
||||||
@@ -73,6 +73,7 @@
|
|||||||
id = "goofzombies"
|
id = "goofzombies"
|
||||||
limbs_id = "zombie" //They look like zombies
|
limbs_id = "zombie" //They look like zombies
|
||||||
sexes = 0
|
sexes = 0
|
||||||
|
species_traits = list(SPECIES_ORGANIC)
|
||||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie
|
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie
|
||||||
mutanttongue = /obj/item/organ/tongue/zombie
|
mutanttongue = /obj/item/organ/tongue/zombie
|
||||||
|
|
||||||
|
|||||||
@@ -248,7 +248,7 @@
|
|||||||
if(prob(D.infectivity))
|
if(prob(D.infectivity))
|
||||||
D.spread()
|
D.spread()
|
||||||
|
|
||||||
if(stat != DEAD)
|
if(stat != DEAD && !D.process_dead)
|
||||||
D.stage_act()
|
D.stage_act()
|
||||||
|
|
||||||
//todo generalize this and move hud out
|
//todo generalize this and move hud out
|
||||||
|
|||||||
@@ -389,6 +389,7 @@
|
|||||||
#include "code\datums\diseases\advance\symptoms\shivering.dm"
|
#include "code\datums\diseases\advance\symptoms\shivering.dm"
|
||||||
#include "code\datums\diseases\advance\symptoms\skin.dm"
|
#include "code\datums\diseases\advance\symptoms\skin.dm"
|
||||||
#include "code\datums\diseases\advance\symptoms\sneeze.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\symptoms.dm"
|
||||||
#include "code\datums\diseases\advance\symptoms\viral.dm"
|
#include "code\datums\diseases\advance\symptoms\viral.dm"
|
||||||
#include "code\datums\diseases\advance\symptoms\vision.dm"
|
#include "code\datums\diseases\advance\symptoms\vision.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user