diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index 772eb947d24..d2f45cc40ba 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -49,33 +49,6 @@
#define PASSMOB 16
#define LETPASSTHROW 32
-//flags for species
-
-#define MUTCOLORS 1
-#define HAIR 2
-#define FACEHAIR 3
-#define EYECOLOR 4
-#define LIPS 5
-#define RESISTHOT 6
-#define RESISTCOLD 7
-#define RESISTPRESSURE 8
-#define RADIMMUNE 9
-#define NOBREATH 10
-#define NOGUNS 11
-#define NOBLOOD 12
-#define NOFIRE 13
-#define VIRUSIMMUNE 14
-#define PIERCEIMMUNE 15
-#define NOTRANSSTING 16
-#define MUTCOLORS_PARTSONLY 17 //Used if we want the mutant colour to be only used by mutant bodyparts. Don't combine this with MUTCOLORS, or it will be useless.
-#define NODISMEMBER 18
-#define NOHUNGER 19
-#define NOCRITDAMAGE 20
-#define NOZOMBIE 21
-#define EASYDISMEMBER 22
-#define EASYLIMBATTACHMENT 23
-#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)
//Movement Types
#define IMMOBILE 0
diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm
index de99eca0917..825d94c0b62 100644
--- a/code/__DEFINES/genetics.dm
+++ b/code/__DEFINES/genetics.dm
@@ -111,3 +111,30 @@
#define BLOOD_VOLUME_OKAY 336
#define BLOOD_VOLUME_BAD 224
#define BLOOD_VOLUME_SURVIVE 122
+
+//species traits for mutantraces
+#define MUTCOLORS 1
+#define HAIR 2
+#define FACEHAIR 3
+#define EYECOLOR 4
+#define LIPS 5
+#define RESISTHOT 6
+#define RESISTCOLD 7
+#define RESISTPRESSURE 8
+#define RADIMMUNE 9
+#define NOBREATH 10
+#define NOGUNS 11
+#define NOBLOOD 12
+#define NOFIRE 13
+#define VIRUSIMMUNE 14
+#define PIERCEIMMUNE 15
+#define NOTRANSSTING 16
+#define MUTCOLORS_PARTSONLY 17 //Used if we want the mutant colour to be only used by mutant bodyparts. Don't combine this with MUTCOLORS, or it will be useless.
+#define NODISMEMBER 18
+#define NOHUNGER 19
+#define NOCRITDAMAGE 20
+#define NOZOMBIE 21
+#define EASYDISMEMBER 22
+#define EASYLIMBATTACHMENT 23
+#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)
diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm
index 9d0f3856165..57b1f3223f9 100644
--- a/code/datums/diseases/_MobProcs.dm
+++ b/code/datums/diseases/_MobProcs.dm
@@ -147,6 +147,6 @@
/mob/living/carbon/human/CanContractDisease(datum/disease/D)
- if(dna && (VIRUSIMMUNE in dna.species.specflags))
+ if(dna && (VIRUSIMMUNE in dna.species.species_traits))
return 0
return ..()
\ No newline at end of file
diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm
index 626fb567c3d..a160915e5f0 100644
--- a/code/datums/diseases/dna_spread.dm
+++ b/code/datums/diseases/dna_spread.dm
@@ -18,7 +18,7 @@
..()
if(!affected_mob.dna)
cure()
- if(NOTRANSSTING in affected_mob.dna.species.specflags) //Only species that can be spread by transformation sting can be spread by the retrovirus
+ if(NOTRANSSTING in affected_mob.dna.species.species_traits) //Only species that can be spread by transformation sting can be spread by the retrovirus
cure()
if(!strain_data["dna"])
diff --git a/code/datums/weather/weather_types.dm b/code/datums/weather/weather_types.dm
index a6967b6dbbe..fda7f82111f 100644
--- a/code/datums/weather/weather_types.dm
+++ b/code/datums/weather/weather_types.dm
@@ -148,7 +148,7 @@
if(ishuman(L))
var/mob/living/carbon/human/H = L
if(H.dna && H.dna.species)
- if(!(RADIMMUNE in H.dna.species.specflags))
+ if(!(RADIMMUNE in H.dna.species.species_traits))
if(prob(max(0,100-resist)))
H.randmuti()
if(prob(50))
diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm
index 1a28baaf4af..9e1eae19a58 100644
--- a/code/game/gamemodes/changeling/powers/tiny_prick.dm
+++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm
@@ -74,7 +74,7 @@
selected_dna = changeling.select_dna("Select the target DNA: ", "Target DNA")
if(!selected_dna)
return
- if(NOTRANSSTING in selected_dna.dna.species.specflags)
+ if(NOTRANSSTING in selected_dna.dna.species.species_traits)
user << "That DNA is not compatible with changeling retrovirus!"
return
..()
diff --git a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm
index 4cbb81c1faa..681a82115a3 100644
--- a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm
+++ b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm
@@ -47,19 +47,19 @@
photo.Blend("#[H.dna.features["mcolor"]]", ICON_MULTIPLY)
var/icon/eyes_s
- if(EYECOLOR in H.dna.species.specflags)
+ if(EYECOLOR in H.dna.species.species_traits)
eyes_s = icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[H.dna.species.eyes]_s")
eyes_s.Blend("#[H.eye_color]", ICON_MULTIPLY)
var/datum/sprite_accessory/S
S = hair_styles_list[H.hair_style]
- if(S && (HAIR in H.dna.species.specflags))
+ if(S && (HAIR in H.dna.species.species_traits))
var/icon/hair_s = icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s")
hair_s.Blend("#[H.hair_color]", ICON_MULTIPLY)
eyes_s.Blend(hair_s, ICON_OVERLAY)
S = facial_hair_styles_list[H.facial_hair_style]
- if(S && (FACEHAIR in H.dna.species.specflags))
+ if(S && (FACEHAIR in H.dna.species.species_traits))
var/icon/facial_s = icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s")
facial_s.Blend("#[H.facial_hair_color]", ICON_MULTIPLY)
eyes_s.Blend(facial_s, ICON_OVERLAY)
diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm
index f881152be5a..9e960cf88e4 100644
--- a/code/game/objects/items/devices/laserpointer.dm
+++ b/code/game/objects/items/devices/laserpointer.dm
@@ -71,7 +71,7 @@
return
if(ishuman(user))
var/mob/living/carbon/human/H = user
- if(H.dna.check_mutation(HULK) || (NOGUNS in H.dna.species.specflags))
+ if(H.dna.check_mutation(HULK) || (NOGUNS in H.dna.species.species_traits))
user << "Your fingers can't press the button!"
return
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index 0e5e8f5f015..f0c1f0b323b 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -320,7 +320,7 @@
var/hit_hand = ((user.active_hand_index % 2 == 0) ? "r_" : "l_") + "arm"
if(ishuman(user))
var/mob/living/carbon/human/H = user
- if(!H.gloves && !(PIERCEIMMUNE in H.dna.species.specflags)) // golems, etc
+ if(!H.gloves && !(PIERCEIMMUNE in H.dna.species.species_traits)) // golems, etc
H << "[src] cuts into your hand!"
H.apply_damage(force*0.5, BRUTE, hit_hand)
else if(ismonkey(user))
@@ -350,7 +350,7 @@
playsound(loc, 'sound/effects/glass_step.ogg', 50, 1)
if(ishuman(AM))
var/mob/living/carbon/human/H = AM
- if(PIERCEIMMUNE in H.dna.species.specflags)
+ if(PIERCEIMMUNE in H.dna.species.species_traits)
return
var/picked_def_zone = pick("l_leg", "r_leg")
var/obj/item/bodypart/O = H.get_bodypart(picked_def_zone)
diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm
index ac9139099dc..04348b01f79 100644
--- a/code/game/objects/items/weapons/cosmetics.dm
+++ b/code/game/objects/items/weapons/cosmetics.dm
@@ -124,7 +124,7 @@
var/mob/living/carbon/human/H = M
var/location = user.zone_selected
if(location == "mouth")
- if(!(FACEHAIR in H.dna.species.specflags))
+ if(!(FACEHAIR in H.dna.species.species_traits))
user << "There is no facial hair to shave!"
return
if(!get_location_accessible(H, location))
@@ -152,7 +152,7 @@
shave(H, location)
else if(location == "head")
- if(!(HAIR in H.dna.species.specflags))
+ if(!(HAIR in H.dna.species.species_traits))
user << "There is no hair to shave!"
return
if(!get_location_accessible(H, location))
diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm
index 9e3b71d5b83..4750a40fa01 100644
--- a/code/game/objects/items/weapons/dice.dm
+++ b/code/game/objects/items/weapons/dice.dm
@@ -176,7 +176,7 @@
/obj/item/weapon/dice/d4/Crossed(mob/living/carbon/human/H)
if(istype(H) && !H.shoes)
- if(PIERCEIMMUNE in H.dna.species.specflags)
+ if(PIERCEIMMUNE in H.dna.species.species_traits)
return 0
H << "You step on the D4!"
H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg")))
@@ -185,7 +185,7 @@
/obj/item/weapon/dice/update_icon()
cut_overlays()
add_overlay("[src.icon_state][src.result]")
-
+
/obj/item/weapon/dice/microwave_act(obj/machinery/microwave/M)
if(can_be_rigged)
rigged = result
diff --git a/code/game/objects/radiation.dm b/code/game/objects/radiation.dm
index 80b1597cdf6..7befcdd3a18 100644
--- a/code/game/objects/radiation.dm
+++ b/code/game/objects/radiation.dm
@@ -41,7 +41,7 @@
I.rad_act(amount)
/mob/living/carbon/rad_act(amount, silent = 0)
- if(dna && (RADIMMUNE in dna.species.specflags))
+ if(dna && (RADIMMUNE in dna.species.species_traits))
silent = TRUE
..()
diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm
index 4df0630d7b9..da76fbd7211 100644
--- a/code/game/objects/structures/mirror.dm
+++ b/code/game/objects/structures/mirror.dm
@@ -151,7 +151,7 @@
H.skin_tone = new_s_tone
H.dna.update_ui_block(DNA_SKIN_TONE_BLOCK)
- if(MUTCOLORS in H.dna.species.specflags)
+ if(MUTCOLORS in H.dna.species.species_traits)
var/new_mutantcolor = input(user, "Choose your skin color:", "Race change") as color|null
if(new_mutantcolor)
var/temp_hsv = RGBtoHSV(new_mutantcolor)
diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm
index 74025555409..685a9015d52 100644
--- a/code/game/turfs/simulated/floor/misc_floor.dm
+++ b/code/game/turfs/simulated/floor/misc_floor.dm
@@ -120,7 +120,7 @@
var/swapdamage = FALSE
if(L.has_dna()) //if has_dna() is true they're at least carbon
var/mob/living/carbon/C = L
- if(TOXINLOVER in C.dna.species.specflags)
+ if(TOXINLOVER in C.dna.species.species_traits)
swapdamage = TRUE
if(isanimal(L))
var/mob/living/simple_animal/A = L
diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm
index d003209f2bb..63f98b086c9 100644
--- a/code/modules/admin/verbs/onlyone.dm
+++ b/code/modules/admin/verbs/onlyone.dm
@@ -23,7 +23,7 @@ var/highlander = FALSE
/mob/living/carbon/human/proc/make_scottish()
ticker.mode.traitors += mind
mind.special_role = "highlander"
- dna.species.specflags |= NOGUNS //nice try jackass
+ dna.species.species_traits |= NOGUNS //nice try jackass
var/datum/objective/steal/steal_objective = new
steal_objective.owner = mind
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index 1bfdbceb1a1..57a1249ce6c 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -43,7 +43,7 @@
var/obj/item/bodypart/affecting = null
if(ishuman(target))
var/mob/living/carbon/human/H = target
- if(PIERCEIMMUNE in H.dna.species.specflags)
+ if(PIERCEIMMUNE in H.dna.species.species_traits)
playsound(src.loc, 'sound/effects/snap.ogg', 50, 1)
armed = 0
update_icon()
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index af3326f8828..c65946ed804 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -207,7 +207,7 @@ var/list/preferences_datums = list()
dat += ""
- if(HAIR in pref_species.specflags)
+ if(HAIR in pref_species.species_traits)
dat += "
"
@@ -228,7 +228,7 @@ var/list/preferences_datums = list()
dat += " | "
- if(EYECOLOR in pref_species.specflags)
+ if(EYECOLOR in pref_species.species_traits)
dat += ""
@@ -240,7 +240,7 @@ var/list/preferences_datums = list()
if(config.mutant_races) //We don't allow mutant bodyparts for humans either unless this is true.
- if((MUTCOLORS in pref_species.specflags) || (MUTCOLORS_PARTSONLY in pref_species.specflags))
+ if((MUTCOLORS in pref_species.species_traits) || (MUTCOLORS_PARTSONLY in pref_species.species_traits))
dat += " | "
@@ -934,7 +934,7 @@ var/list/preferences_datums = list()
pref_species = new newtype()
//Now that we changed our species, we must verify that the mutant colour is still allowed.
var/temp_hsv = RGBtoHSV(features["mcolor"])
- if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.specflags) && ReadHSV(temp_hsv)[3] < ReadHSV("#7F7F7F")[3]))
+ if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#7F7F7F")[3]))
features["mcolor"] = pref_species.default_color
if("mutant_color")
var/new_mutantcolor = input(user, "Choose your character's alien/mutant color:", "Character Preference") as color|null
@@ -942,7 +942,7 @@ var/list/preferences_datums = list()
var/temp_hsv = RGBtoHSV(new_mutantcolor)
if(new_mutantcolor == "#000000")
features["mcolor"] = pref_species.default_color
- else if((MUTCOLORS_PARTSONLY in pref_species.specflags) || ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright, but only if they affect the skin
+ else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright, but only if they affect the skin
features["mcolor"] = sanitize_hexcolor(new_mutantcolor)
else
user << "Invalid color. Your color is not bright enough."
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 5498ac848fd..4210125d109 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -513,7 +513,7 @@ BLIND // can't see anything
if(mutantrace_variation && ishuman(user))
var/mob/living/carbon/human/H = user
- if(DIGITIGRADE in H.dna.species.specflags)
+ if(DIGITIGRADE in H.dna.species.species_traits)
adjusted = DIGITIGRADE_STYLE
H.update_inv_w_uniform()
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index f1d0192c094..af510458780 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -143,7 +143,7 @@
if(!H.shoes && !H.lying) //ouch, my feet.
var/picked_def_zone = pick("l_leg", "r_leg")
var/obj/item/bodypart/O = H.get_bodypart(picked_def_zone)
- if(!istype(O) || (PIERCEIMMUNE in H.dna.species.specflags))
+ if(!istype(O) || (PIERCEIMMUNE in H.dna.species.species_traits))
return
H.apply_damage(rand(3, 6), BRUTE, picked_def_zone)
H.Weaken(2)
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index f63a99da1d8..83708c051b7 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -90,10 +90,10 @@ var/list/image/ghost_images_simple = list() //this is a list of all ghost images
mind = body.mind //we don't transfer the mind but we keep a reference to it.
if(ishuman(body))
var/mob/living/carbon/human/body_human = body
- if(HAIR in body_human.dna.species.specflags)
+ if(HAIR in body_human.dna.species.species_traits)
hair_style = body_human.hair_style
hair_color = brighten_color(body_human.hair_color)
- if(FACEHAIR in body_human.dna.species.specflags)
+ if(FACEHAIR in body_human.dna.species.species_traits)
facial_hair_style = body_human.facial_hair_style
facial_hair_color = brighten_color(body_human.facial_hair_color)
@@ -662,10 +662,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(client.prefs.be_random_body)
client.prefs.random_character(gender)
- if(HAIR in client.prefs.pref_species.specflags)
+ if(HAIR in client.prefs.pref_species.species_traits)
hair_style = client.prefs.hair_style
hair_color = brighten_color(client.prefs.hair_color)
- if(FACEHAIR in client.prefs.pref_species.specflags)
+ if(FACEHAIR in client.prefs.pref_species.species_traits)
facial_hair_style = client.prefs.facial_hair_style
facial_hair_color = brighten_color(client.prefs.facial_hair_color)
diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm
index f4a39d34771..b0547c9f0d6 100644
--- a/code/modules/mob/living/blood.dm
+++ b/code/modules/mob/living/blood.dm
@@ -22,7 +22,7 @@
// Takes care blood loss and regeneration
/mob/living/carbon/human/handle_blood()
- if(NOBLOOD in dna.species.specflags)
+ if(NOBLOOD in dna.species.species_traits)
bleed_rate = 0
return
@@ -86,7 +86,7 @@
add_splatter_floor(src.loc, 1)
/mob/living/carbon/human/bleed(amt)
- if(!(NOBLOOD in dna.species.specflags))
+ if(!(NOBLOOD in dna.species.species_traits))
..()
@@ -188,7 +188,7 @@
/mob/living/carbon/human/get_blood_id()
if(dna.species.exotic_blood)
return dna.species.exotic_blood
- else if((NOBLOOD in dna.species.specflags) || (disabilities & NOCLONE))
+ else if((NOBLOOD in dna.species.species_traits) || (disabilities & NOCLONE))
return
return "blood"
@@ -252,7 +252,7 @@
B.blood_DNA |= temp_blood_DNA
/mob/living/carbon/human/add_splatter_floor(turf/T, small_drip)
- if(!(NOBLOOD in dna.species.specflags))
+ if(!(NOBLOOD in dna.species.species_traits))
..()
/mob/living/carbon/alien/add_splatter_floor(turf/T, small_drip)
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 34a0f460d6d..8e67654daad 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -449,7 +449,7 @@
return ..()
/mob/living/carbon/proc/vomit(var/lost_nutrition = 10, var/blood = 0, var/stun = 1, var/distance = 0, var/message = 1, var/toxic = 0)
- if(dna && dna.species && NOHUNGER in dna.species.specflags)
+ if(dna && dna.species && NOHUNGER in dna.species.species_traits)
return 1
if(nutrition < 100 && !blood)
diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm
index fa350ddd9fd..342b9ed7a0e 100644
--- a/code/modules/mob/living/carbon/carbon_movement.dm
+++ b/code/modules/mob/living/carbon/carbon_movement.dm
@@ -55,7 +55,7 @@ var/const/SLIDE_ICE = 8
/mob/living/carbon/Move(NewLoc, direct)
. = ..()
if(.)
- if(dna && dna.species && (NOHUNGER in dna.species.specflags))
+ if(dna && dna.species && (NOHUNGER in dna.species.species_traits))
nutrition = NUTRITION_LEVEL_FED - 1 //just less than feeling vigorous
else if(nutrition && stat != DEAD)
nutrition -= HUNGER_FACTOR/10
diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm
index 226a4f4666a..6279f103b0b 100644
--- a/code/modules/mob/living/carbon/damage_procs.dm
+++ b/code/modules/mob/living/carbon/damage_procs.dm
@@ -73,7 +73,7 @@
/mob/living/carbon/adjustToxLoss(amount, updating_health=1)
- if(has_dna() && TOXINLOVER in dna.species.specflags) //damage becomes healing and healing becomes damage
+ if(has_dna() && TOXINLOVER in dna.species.species_traits) //damage becomes healing and healing becomes damage
amount = -amount
if(amount > 0)
blood_volume -= 5*amount
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 3459cef39e8..0388554ada4 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -38,14 +38,14 @@
..()
/mob/living/carbon/human/create_internal_organs()
- if(!(NOHUNGER in dna.species.specflags))
+ if(!(NOHUNGER in dna.species.species_traits))
internal_organs += new /obj/item/organ/appendix
- if(!(NOBREATH in dna.species.specflags))
+ if(!(NOBREATH in dna.species.species_traits))
if(dna.species.mutantlungs)
internal_organs += new dna.species.mutantlungs()
else
internal_organs += new /obj/item/organ/lungs()
- if(!(NOBLOOD in dna.species.specflags))
+ if(!(NOBLOOD in dna.species.species_traits))
internal_organs += new /obj/item/organ/heart
internal_organs += new /obj/item/organ/brain
..()
@@ -497,7 +497,7 @@
. = 1 // Default to returning true.
if(user && !target_zone)
target_zone = user.zone_selected
- if(dna && (PIERCEIMMUNE in dna.species.specflags))
+ if(dna && (PIERCEIMMUNE in dna.species.species_traits))
. = 0
// If targeting the head, see if the head item is thin enough.
// If targeting anything else, see if the wear suit is thin enough.
@@ -653,7 +653,7 @@
src << "You fail to perform CPR on [C]!"
return 0
- var/they_breathe = (!(NOBREATH in C.dna.species.specflags))
+ var/they_breathe = (!(NOBREATH in C.dna.species.species_traits))
var/they_lung = C.getorganslot("lungs")
if(C.health > HEALTH_THRESHOLD_CRIT)
@@ -831,11 +831,11 @@
if(admin_revive)
regenerate_limbs()
- if(!(NOBREATH in dna.species.specflags) && !getorganslot("lungs"))
+ if(!(NOBREATH in dna.species.species_traits) && !getorganslot("lungs"))
var/obj/item/organ/lungs/L = new()
L.Insert(src)
- if(!(NOBLOOD in dna.species.specflags) && !getorganslot("heart"))
+ if(!(NOBLOOD in dna.species.species_traits) && !getorganslot("heart"))
var/obj/item/organ/heart/H = new()
H.Insert(src)
@@ -903,7 +903,7 @@
..()
/mob/living/carbon/human/vomit(lost_nutrition = 10, blood = 0, stun = 1, distance = 0, message = 1, toxic = 0)
- if(blood && (NOBLOOD in dna.species.specflags))
+ if(blood && (NOBLOOD in dna.species.species_traits))
if(message)
visible_message("[src] dry heaves!", \
"You try to throw up, but there's nothing in your stomach!")
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 6adefe50f89..35a0929c65b 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -146,7 +146,7 @@
else if(I)
if(I.throw_speed >= EMBED_THROWSPEED_THRESHOLD)
if(can_embed(I))
- if(prob(I.embed_chance) && !(dna && (PIERCEIMMUNE in dna.species.specflags)))
+ if(prob(I.embed_chance) && !(dna && (PIERCEIMMUNE in dna.species.species_traits)))
throw_alert("embeddedobject", /obj/screen/alert/embeddedobject)
var/obj/item/bodypart/L = pick(bodyparts)
L.embedded_objects |= I
diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm
index 98426060462..010a1d7c6a5 100644
--- a/code/modules/mob/living/carbon/human/human_helpers.dm
+++ b/code/modules/mob/living/carbon/human/human_helpers.dm
@@ -141,7 +141,7 @@
if(src.dna.check_mutation(HULK))
src << "Your meaty finger is much too large for the trigger guard!"
return 0
- if(NOGUNS in src.dna.species.specflags)
+ if(NOGUNS in src.dna.species.species_traits)
src << "Your fingers don't fit in the trigger guard!"
return 0
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index e31a46789a1..c81b1e6d6f4 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -100,7 +100,7 @@
if(!L)
if(health >= HEALTH_THRESHOLD_CRIT)
adjustOxyLoss(HUMAN_MAX_OXYLOSS + 1)
- else if(!(NOCRITDAMAGE in dna.species.specflags))
+ else if(!(NOCRITDAMAGE in dna.species.species_traits))
adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS)
failed_last_breath = 1
@@ -307,7 +307,7 @@
if(dna.check_mutation(COLDRES))
return 1 //Fully protected from the cold.
- if(dna && (RESISTCOLD in dna.species.specflags))
+ if(dna && (RESISTCOLD in dna.species.species_traits))
return 1
temperature = max(temperature, 2.7) //There is an occasional bug where the temperature is miscalculated in ares with a small amount of gas on them, so this is necessary to ensure that that bug does not affect this calculation. Space's temperature is 2.7K and most suits that are intended to protect against any cold, protect down to 2.0K.
@@ -367,7 +367,7 @@
if(head)
if(head.flags & BLOCK_GAS_SMOKE_EFFECT)
. = 1
- if(NOBREATH in dna.species.specflags)
+ if(NOBREATH in dna.species.species_traits)
. = 1
return .
@@ -391,8 +391,8 @@
/mob/living/carbon/human/proc/handle_heart()
CHECK_DNA_AND_SPECIES(src)
- var/needs_heart = (!(NOBLOOD in dna.species.specflags))
- var/we_breath = (!(NOBREATH in dna.species.specflags))
+ var/needs_heart = (!(NOBLOOD in dna.species.species_traits))
+ var/we_breath = (!(NOBREATH in dna.species.species_traits))
if(heart_attack)
if(!needs_heart)
diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm
index 32a5b9c694f..45120f74fb0 100644
--- a/code/modules/mob/living/carbon/human/say.dm
+++ b/code/modules/mob/living/carbon/human/say.dm
@@ -51,7 +51,7 @@
CHECK_DNA_AND_SPECIES(src)
// how do species that don't breathe talk? magic, that's what.
- if(!(NOBREATH in dna.species.specflags) && !getorganslot("lungs"))
+ if(!(NOBREATH in dna.species.species_traits) && !getorganslot("lungs"))
return 0
if(mind)
return !mind.miming
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 93f7ba9abad..7aa0a234971 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -51,7 +51,7 @@
var/darksight = 2
// species flags. these can be found in flags.dm
- var/list/specflags = list()
+ var/list/species_traits = list()
var/attack_verb = "punch" // punch-specific attack verb
var/sound/attack_sound = 'sound/weapons/punch1.ogg'
@@ -112,10 +112,10 @@
var/obj/item/organ/lungs/lungs = C.getorganslot("lungs")
var/obj/item/organ/appendix/appendix = C.getorganslot("appendix")
- if((NOBLOOD in specflags) && heart)
+ if((NOBLOOD in species_traits) && heart)
heart.Remove(C)
qdel(heart)
- else if((!(NOBLOOD in specflags)) && (!heart))
+ else if((!(NOBLOOD in species_traits)) && (!heart))
heart = new()
heart.Insert(C)
@@ -123,17 +123,17 @@
lungs.Remove(C)
qdel(lungs)
lungs = null
- if((!(NOBREATH in specflags)) && !lungs)
+ if((!(NOBREATH in species_traits)) && !lungs)
if(mutantlungs)
lungs = new mutantlungs()
else
lungs = new()
lungs.Insert(C)
- if((NOHUNGER in specflags) && appendix)
+ if((NOHUNGER in species_traits) && appendix)
appendix.Remove(C)
qdel(appendix)
- else if((!(NOHUNGER in specflags)) && (!appendix))
+ else if((!(NOHUNGER in species_traits)) && (!appendix))
appendix = new()
appendix.Insert(C)
@@ -144,14 +144,14 @@
if(exotic_bloodtype && C.dna.blood_type != exotic_bloodtype)
C.dna.blood_type = exotic_bloodtype
if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Digitigrade Legs")
- specflags += DIGITIGRADE
- if(DIGITIGRADE in specflags)
+ species_traits += DIGITIGRADE
+ if(DIGITIGRADE in species_traits)
C.Digitigrade_Leg_Swap(FALSE)
/datum/species/proc/on_species_loss(mob/living/carbon/C)
if(C.dna.species.exotic_bloodtype)
C.dna.blood_type = random_blood_type()
- if(DIGITIGRADE in specflags)
+ if(DIGITIGRADE in species_traits)
C.Digitigrade_Leg_Swap(TRUE)
/datum/species/proc/handle_hair(mob/living/carbon/human/H, forced_colour)
@@ -177,7 +177,7 @@
if(M.flags_inv & HIDEFACIALHAIR)
facialhair_hidden = 1
- if(H.facial_hair_style && (FACEHAIR in specflags) && !facialhair_hidden)
+ if(H.facial_hair_style && (FACEHAIR in species_traits) && !facialhair_hidden)
S = facial_hair_styles_list[H.facial_hair_style]
if(S)
var/image/img_facial_s = image("icon" = S.icon, "icon_state" = "[S.icon_state]_s", "layer" = -HAIR_LAYER)
@@ -208,10 +208,10 @@
hair_hidden = 1
if(!hair_hidden)
if(!H.getorgan(/obj/item/organ/brain)) //Applies the debrained overlay if there is no brain
- if(!(NOBLOOD in specflags))
+ if(!(NOBLOOD in species_traits))
standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained_s", "layer" = -HAIR_LAYER)
- else if(H.hair_style && (HAIR in specflags))
+ else if(H.hair_style && (HAIR in species_traits))
S = hair_styles_list[H.hair_style]
if(S)
var/image/img_hair_s = image("icon" = S.icon, "icon_state" = "[S.icon_state]_s", "layer" = -HAIR_LAYER)
@@ -246,13 +246,13 @@
if(!(H.disabilities & HUSK))
// lipstick
- if(H.lip_style && (LIPS in specflags) && HD)
+ if(H.lip_style && (LIPS in species_traits) && HD)
var/image/lips = image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[H.lip_style]_s", "layer" = -BODY_LAYER)
lips.color = H.lip_color
standing += lips
// eyes
- if((EYECOLOR in specflags) && HD)
+ if((EYECOLOR in species_traits) && HD)
var/image/img_eyes_s = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[eyes]_s", "layer" = -BODY_LAYER)
img_eyes_s.color = "#" + H.eye_color
standing += img_eyes_s
@@ -271,7 +271,7 @@
else
standing += image("icon"=U2.icon, "icon_state"="[U2.icon_state]_s", "layer"=-BODY_LAYER)
- if(H.socks && H.get_num_legs() >= 2 && !(DIGITIGRADE in specflags))
+ if(H.socks && H.get_num_legs() >= 2 && !(DIGITIGRADE in species_traits))
var/datum/sprite_accessory/socks/U3 = socks_list[H.socks]
if(U3)
standing += image("icon"=U3.icon, "icon_state"="[U3.icon_state]_s", "layer"=-BODY_LAYER)
@@ -361,8 +361,8 @@
if(!O.use_digitigrade)
continue
not_digitigrade = FALSE
- if(!(DIGITIGRADE in specflags)) //Someone cut off a digitigrade leg and tacked it on
- specflags += DIGITIGRADE
+ if(!(DIGITIGRADE in species_traits)) //Someone cut off a digitigrade leg and tacked it on
+ species_traits += DIGITIGRADE
var/should_be_squished = FALSE
if(H.wear_suit && ((H.wear_suit.flags_inv & HIDEJUMPSUIT) || (H.wear_suit.body_parts_covered & LEGS)) || (H.w_uniform && (H.w_uniform.body_parts_covered & LEGS)))
should_be_squished = TRUE
@@ -374,8 +374,8 @@
update_needed = TRUE
if(update_needed)
H.update_body_parts()
- if(not_digitigrade && (DIGITIGRADE in specflags)) //Curse is lifted
- specflags -= DIGITIGRADE
+ if(not_digitigrade && (DIGITIGRADE in species_traits)) //Curse is lifted
+ species_traits -= DIGITIGRADE
if(!bodyparts_to_add)
return
@@ -496,11 +496,11 @@
/datum/species/proc/spec_life(mob/living/carbon/human/H)
- if(NOBREATH in specflags)
+ if(NOBREATH in species_traits)
H.setOxyLoss(0)
H.losebreath = 0
- var/takes_crit_damage = (!(NOCRITDAMAGE in specflags))
+ var/takes_crit_damage = (!(NOCRITDAMAGE in species_traits))
if((H.health < HEALTH_THRESHOLD_CRIT) && takes_crit_damage)
H.adjustBruteLoss(1)
@@ -565,7 +565,7 @@
return 0
if(num_legs < 2)
return 0
- if(DIGITIGRADE in specflags)
+ if(DIGITIGRADE in species_traits)
if(!disable_warning)
H << "The footwear around here isn't compatible with your feet!"
return 0
@@ -736,7 +736,7 @@
// nutrition decrease and satiety
if (H.nutrition > 0 && H.stat != DEAD && \
- H.dna && H.dna.species && (!(NOHUNGER in H.dna.species.specflags)))
+ H.dna && H.dna.species && (!(NOHUNGER in H.dna.species.species_traits)))
// THEY HUNGER
var/hunger_rate = HUNGER_FACTOR
if(H.satiety > 0)
@@ -760,7 +760,7 @@
if(H.nutrition > NUTRITION_LEVEL_FAT)
H.metabolism_efficiency = 1
else if(H.nutrition > NUTRITION_LEVEL_FED && H.satiety > 80)
- if(H.metabolism_efficiency != 1.25 && (H.dna && H.dna.species && !(NOHUNGER in H.dna.species.specflags)))
+ if(H.metabolism_efficiency != 1.25 && (H.dna && H.dna.species && !(NOHUNGER in H.dna.species.species_traits)))
H << "You feel vigorous."
H.metabolism_efficiency = 1.25
else if(H.nutrition < NUTRITION_LEVEL_STARVING + 50)
@@ -823,7 +823,7 @@
/datum/species/proc/handle_mutations_and_radiation(mob/living/carbon/human/H)
- if(!(RADIMMUNE in specflags))
+ if(!(RADIMMUNE in species_traits))
if(H.radiation)
if (H.radiation > 100)
if(!H.weakened)
@@ -839,7 +839,7 @@
H << "You feel weak."
if(prob(15))
- if(!( H.hair_style == "Shaved") || !(H.hair_style == "Bald") || (HAIR in specflags))
+ if(!( H.hair_style == "Shaved") || !(H.hair_style == "Bald") || (HAIR in species_traits))
H << "Your hair starts to \
fall out in clumps..."
addtimer(src, "go_bald", 50, TIMER_UNIQUE, H)
@@ -880,10 +880,10 @@
if(H.status_flags & GOTTAGOREALLYFAST)
. -= 2
. += speedmod
-
+
if(H.status_flags & IGNORESLOWDOWN)
ignoreslow = 1
-
+
if(H.has_gravity())
gravity = 1
@@ -945,7 +945,7 @@
add_logs(user, target, "shaked")
return 1
else
- var/we_breathe = (!(NOBREATH in user.dna.species.specflags))
+ var/we_breathe = (!(NOBREATH in user.dna.species.species_traits))
var/we_lung = user.getorganslot("lungs")
if(we_breathe && we_lung)
@@ -1128,7 +1128,7 @@
//dismemberment
var/probability = I.get_dismemberment_chance(affecting)
- if(prob(probability) || ((EASYDISMEMBER in specflags) && prob(2*probability)))
+ if(prob(probability) || ((EASYDISMEMBER in species_traits) && prob(2*probability)))
if(affecting.dismember(I.damtype))
I.add_mob_blood(H)
playsound(get_turf(H), I.get_dismember_sound(), 80, 1)
@@ -1245,7 +1245,7 @@
/////////////
/datum/species/proc/breathe(mob/living/carbon/human/H)
- if(NOBREATH in specflags)
+ if(NOBREATH in species_traits)
return TRUE
/datum/species/proc/handle_environment(datum/gas_mixture/environment, mob/living/carbon/human/H)
@@ -1274,7 +1274,7 @@
H.bodytemperature += min((1-thermal_protection) * ((loc_temp - H.bodytemperature) / BODYTEMP_HEAT_DIVISOR), BODYTEMP_HEATING_MAX)
// +/- 50 degrees from 310.15K is the 'safe' zone, where no damage is dealt.
- if(H.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT && !(RESISTHOT in specflags))
+ if(H.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT && !(RESISTHOT in species_traits))
//Body temperature is too hot.
switch(H.bodytemperature)
if(360 to 400)
@@ -1313,7 +1313,7 @@
var/adjusted_pressure = H.calculate_affecting_pressure(pressure) //Returns how much pressure actually affects the mob.
switch(adjusted_pressure)
if(HAZARD_HIGH_PRESSURE to INFINITY)
- if(!(RESISTPRESSURE in specflags))
+ if(!(RESISTPRESSURE in species_traits))
H.adjustBruteLoss( min( ( (adjusted_pressure / HAZARD_HIGH_PRESSURE) -1 )*PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE) )
H.throw_alert("pressure", /obj/screen/alert/highpressure, 2)
else
@@ -1325,7 +1325,7 @@
if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE)
H.throw_alert("pressure", /obj/screen/alert/lowpressure, 1)
else
- if(H.dna.check_mutation(COLDRES) || (RESISTPRESSURE in specflags))
+ if(H.dna.check_mutation(COLDRES) || (RESISTPRESSURE in species_traits))
H.clear_alert("pressure")
else
H.adjustBruteLoss( LOW_PRESSURE_DAMAGE )
@@ -1336,11 +1336,11 @@
//////////
/datum/species/proc/handle_fire(mob/living/carbon/human/H)
- if(NOFIRE in specflags)
+ if(NOFIRE in species_traits)
return 1
/datum/species/proc/CanIgniteMob(mob/living/carbon/human/H)
- if(NOFIRE in specflags)
+ if(NOFIRE in species_traits)
return FALSE
return TRUE
diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm
index c03b195a727..b1f8a317e44 100644
--- a/code/modules/mob/living/carbon/human/species_types.dm
+++ b/code/modules/mob/living/carbon/human/species_types.dm
@@ -6,7 +6,7 @@
name = "Human"
id = "human"
default_color = "FFFFFF"
- specflags = list(EYECOLOR,HAIR,FACEHAIR,LIPS)
+ species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS)
mutant_bodyparts = list("tail_human", "ears", "wings")
default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None")
use_skintones = 1
@@ -37,7 +37,7 @@
id = "lizard"
say_mod = "hisses"
default_color = "00FF00"
- specflags = list(MUTCOLORS,EYECOLOR,LIPS)
+ species_traits = list(MUTCOLORS,EYECOLOR,LIPS)
mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs")
mutant_organs = list(/obj/item/organ/tongue/lizard)
default_features = list("mcolor" = "0F0", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs")
@@ -71,7 +71,7 @@
name = "Ash Walker"
id = "ashlizard"
limbs_id = "lizard"
- specflags = list(MUTCOLORS,EYECOLOR,LIPS,NOBREATH,NOGUNS,DIGITIGRADE)
+ species_traits = list(MUTCOLORS,EYECOLOR,LIPS,NOBREATH,NOGUNS,DIGITIGRADE)
/*
PODPEOPLE
*/
@@ -81,7 +81,7 @@
name = "Podperson"
id = "pod"
default_color = "59CE00"
- specflags = list(MUTCOLORS,EYECOLOR)
+ species_traits = list(MUTCOLORS,EYECOLOR)
attack_verb = "slash"
attack_sound = 'sound/weapons/slice.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
@@ -155,7 +155,7 @@
blacklisted = 1
ignored_by = list(/mob/living/simple_animal/hostile/faithless)
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/shadow
- specflags = list(NOBREATH,NOBLOOD,RADIMMUNE,VIRUSIMMUNE)
+ species_traits = list(NOBREATH,NOBLOOD,RADIMMUNE,VIRUSIMMUNE)
dangerous_existence = 1
var/datum/action/innate/shadow/darkvision/vision_toggle
@@ -208,7 +208,7 @@
default_color = "00FF90"
say_mod = "chirps"
eyes = "jelleyes"
- specflags = list(MUTCOLORS,EYECOLOR,NOBLOOD,VIRUSIMMUNE,TOXINLOVER)
+ species_traits = list(MUTCOLORS,EYECOLOR,NOBLOOD,VIRUSIMMUNE,TOXINLOVER)
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime
exotic_blood = "slimejelly"
var/datum/action/innate/regenerate_limbs/regenerate_limbs
@@ -305,7 +305,7 @@
id = "slime"
default_color = "00FFFF"
darksight = 3
- specflags = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD,VIRUSIMMUNE, TOXINLOVER)
+ species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD,VIRUSIMMUNE, TOXINLOVER)
say_mod = "says"
eyes = "eyes"
hair_color = "mutcolor"
@@ -543,7 +543,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"
- specflags = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS)
+ species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS)
speedmod = 2
armor = 55
siemens_coeff = 0
@@ -590,7 +590,7 @@
fixed_mut_color = "a3d"
meat = /obj/item/weapon/ore/plasma
//Can burn and takes damage from heat
- specflags = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS)
+ species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS)
info_text = "As a Plasma Golem, you explode on death!."
burnmod = 1.5
@@ -703,7 +703,7 @@
fixed_mut_color = "49311c"
meat = /obj/item/stack/sheet/mineral/wood
//Can burn and take damage from heat
- specflags = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS)
+ species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS)
armor = 30
burnmod = 1.25
heatmod = 1.5
@@ -1035,7 +1035,7 @@
blacklisted = 1
sexes = 0
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton
- specflags = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYDISMEMBER,EASYLIMBATTACHMENT)
+ species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYDISMEMBER,EASYLIMBATTACHMENT)
mutant_organs = list(/obj/item/organ/tongue/bone)
damage_overlay_type = ""//let's not show bloody wounds or burns over bones.
@@ -1051,7 +1051,7 @@
sexes = 0
blacklisted = 1
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie
- specflags = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT,TOXINLOVER)
+ species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT,TOXINLOVER)
mutant_organs = list(/obj/item/organ/tongue/zombie)
/datum/species/zombie/infectious
@@ -1106,7 +1106,7 @@
darksight = 3
say_mod = "gibbers"
sexes = 0
- specflags = list(NOBLOOD,NOBREATH,VIRUSIMMUNE,NOGUNS)
+ species_traits = list(NOBLOOD,NOBREATH,VIRUSIMMUNE,NOGUNS)
mutant_organs = list(/obj/item/organ/tongue/abductor)
var/scientist = 0 // vars to not pollute spieces list with castes
var/agent = 0
@@ -1120,7 +1120,7 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_
say_mod = "rattles"
sexes = 0
meat = /obj/item/stack/sheet/mineral/plasma
- specflags = list(NOBLOOD,RESISTCOLD,RADIMMUNE,NOTRANSSTING,VIRUSIMMUNE,NOHUNGER)
+ species_traits = list(NOBLOOD,RESISTCOLD,RADIMMUNE,NOTRANSSTING,VIRUSIMMUNE,NOHUNGER)
mutantlungs = /obj/item/organ/lungs/plasmaman
dangerous_existence = 1 //So so much
blacklisted = 1 //See above
@@ -1179,13 +1179,13 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_
id = "synth"
say_mod = "beep boops" //inherited from a user's real species
sexes = 0
- specflags = list(NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER) //all of these + whatever we inherit from the real species
+ species_traits = list(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_specflags = list(NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER) //for getting these values back for assume_disguise()
+ var/list/initial_species_traits = list(NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER) //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
@@ -1216,8 +1216,8 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_
name = S.name
say_mod = S.say_mod
sexes = S.sexes
- specflags = initial_specflags.Copy()
- specflags.Add(S.specflags)
+ species_traits = initial_species_traits.Copy()
+ species_traits.Add(S.species_traits)
attack_verb = S.attack_verb
attack_sound = S.attack_sound
miss_sound = S.miss_sound
@@ -1235,7 +1235,7 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_
else
name = initial(name)
say_mod = initial(say_mod)
- specflags = initial_specflags.Copy()
+ species_traits = initial_species_traits.Copy()
attack_verb = initial(attack_verb)
attack_sound = initial(attack_sound)
miss_sound = initial(miss_sound)
@@ -1297,7 +1297,7 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_
name = "Android"
id = "android"
say_mod = "states"
- specflags = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOBLOOD,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYLIMBATTACHMENT)
+ species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOBLOOD,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYLIMBATTACHMENT)
meat = null
damage_overlay_type = "synth"
limbs_id = "synth"
@@ -1336,14 +1336,14 @@ SYNDICATE BLACK OPS
attack_sound = "sound/weapons/resonator_blast.ogg"
blacklisted = 1
use_skintones = 0
- specflags = list(RADIMMUNE,VIRUSIMMUNE,NOBLOOD,PIERCEIMMUNE,EYECOLOR,NODISMEMBER,NOHUNGER)
+ species_traits = list(RADIMMUNE,VIRUSIMMUNE,NOBLOOD,PIERCEIMMUNE,EYECOLOR,NODISMEMBER,NOHUNGER)
sexes = 0
/datum/species/angel
name = "Angel"
id = "angel"
default_color = "FFFFFF"
- specflags = list(EYECOLOR,HAIR,FACEHAIR,LIPS)
+ species_traits = list(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/living.dm b/code/modules/mob/living/living.dm
index f58e39fe51c..58feb7ce22d 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -485,7 +485,7 @@
TH.transfer_mob_blood_dna(src)
/mob/living/carbon/human/makeTrail(turf/T)
- if((NOBLOOD in dna.species.specflags) || !bleed_rate || bleedsuppress)
+ if((NOBLOOD in dna.species.species_traits) || !bleed_rate || bleedsuppress)
return
..()
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index 58a94be1607..8944381db3d 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -275,7 +275,7 @@
/datum/reagent/medicine/salglu_solution/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
if(ishuman(M) && method == INJECT)
var/mob/living/carbon/human/H = M
- if(H.dna && !(NOBLOOD in H.dna.species.specflags))
+ if(H.dna && !(NOBLOOD in H.dna.species.species_traits))
var/efficiency = (BLOOD_VOLUME_NORMAL-H.blood_volume)/700 + 0.2//The lower the blood of the patient, the better it is as a blood substitute.
efficiency = min(0.75,efficiency)
//As it's designed for an IV drip, make large injections not as effective as repeated small injections.
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index fb395f3d80e..206ac642631 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -300,7 +300,7 @@
if ("albino")
N.skin_tone = "caucasian1"
- if(MUTCOLORS in N.dna.species.specflags) //take current alien color and darken it slightly
+ if(MUTCOLORS in N.dna.species.species_traits) //take current alien color and darken it slightly
var/newcolor = ""
var/len = length(N.dna.features["mcolor"])
for(var/i=1, i<=len, i+=1)
@@ -343,7 +343,7 @@
N.skin_tone = "orange"
N.hair_style = "Spiky"
N.hair_color = "000"
- if(MUTCOLORS in N.dna.species.specflags) //Aliens with custom colors simply get turned orange
+ if(MUTCOLORS in N.dna.species.species_traits) //Aliens with custom colors simply get turned orange
N.dna.features["mcolor"] = "f80"
N.regenerate_icons()
if(prob(7))
@@ -1000,7 +1000,7 @@
description = "A potent oxidizer used as fuel in rockets and as an anaesthetic during surgery."
reagent_state = LIQUID
color = "#808080"
-
+
/datum/reagent/nitrous_oxide/reaction_obj(obj/O, reac_volume)
if((!O) || (!reac_volume))
return 0
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index baa4f9f9fce..6e907384754 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -94,7 +94,7 @@
if(iscarbon(M))
C = M
CHECK_DNA_AND_SPECIES(C)
- if(NOBREATH in C.dna.species.specflags)
+ if(NOBREATH in C.dna.species.species_traits)
. = FALSE
if(.)
diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm
index 1b6b7d9c7ed..d92c77c67fe 100644
--- a/code/modules/station_goals/dna_vault.dm
+++ b/code/modules/station_goals/dna_vault.dm
@@ -261,10 +261,10 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/monkey,/mob/li
var/obj/item/organ/lungs/L = H.internal_organs_slot["lungs"]
L.tox_breath_dam_min = 0
L.tox_breath_dam_max = 0
- S.specflags |= VIRUSIMMUNE
+ S.species_traits |= VIRUSIMMUNE
if(VAULT_NOBREATH)
H << "Your lungs feel great."
- S.specflags |= NOBREATH
+ S.species_traits |= NOBREATH
if(VAULT_FIREPROOF)
H << "Your feel fireproof."
S.burnmod = 0.5
diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm
index a2acadb0f93..38ecc4e5295 100644
--- a/code/modules/surgery/bodyparts/bodyparts.dm
+++ b/code/modules/surgery/bodyparts/bodyparts.dm
@@ -59,7 +59,7 @@
/obj/item/bodypart/attack(mob/living/carbon/C, mob/user)
if(ishuman(C))
var/mob/living/carbon/human/H = C
- if(EASYLIMBATTACHMENT in H.dna.species.specflags)
+ if(EASYLIMBATTACHMENT in H.dna.species.species_traits)
if(!H.get_bodypart(body_zone) && !animal_origin)
if(H == user)
H.visible_message("[H] jams [src] into \his empty socket!",\
@@ -220,7 +220,7 @@
var/datum/species/S = H.dna.species
species_id = S.limbs_id
- species_flags_list = H.dna.species.specflags
+ species_flags_list = H.dna.species.species_traits
if(S.use_skintones)
skin_tone = H.skin_tone
@@ -231,7 +231,7 @@
body_gender = H.gender
should_draw_gender = S.sexes
- if(MUTCOLORS in S.specflags)
+ if(MUTCOLORS in S.species_traits)
if(S.fixed_mut_color)
species_color = S.fixed_mut_color
else
diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm
index bb948a96cbe..781d9aaf5cd 100644
--- a/code/modules/surgery/bodyparts/dismemberment.dm
+++ b/code/modules/surgery/bodyparts/dismemberment.dm
@@ -12,7 +12,7 @@
return 0
if(ishuman(C))
var/mob/living/carbon/human/H = C
- if(NODISMEMBER in H.dna.species.specflags) // species don't allow dismemberment
+ if(NODISMEMBER in H.dna.species.species_traits) // species don't allow dismemberment
return 0
var/obj/item/bodypart/affecting = C.get_bodypart("chest")
@@ -48,7 +48,7 @@
return 0
if(ishuman(C))
var/mob/living/carbon/human/H = C
- if(NODISMEMBER in H.dna.species.specflags) // species don't allow dismemberment
+ if(NODISMEMBER in H.dna.species.species_traits) // species don't allow dismemberment
return 0
var/organ_spilled = 0
diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm
index 067788acfcf..db2d2909381 100644
--- a/code/modules/surgery/bodyparts/head.dm
+++ b/code/modules/surgery/bodyparts/head.dm
@@ -70,7 +70,7 @@
var/datum/species/S = H.dna.species
//Facial hair
- if(H.facial_hair_style && (FACEHAIR in S.specflags))
+ if(H.facial_hair_style && (FACEHAIR in S.species_traits))
facial_hair_style = H.facial_hair_style
if(S.hair_color)
if(S.hair_color == "mutcolor")
@@ -85,7 +85,7 @@
facial_hair_color = "000"
hair_alpha = 255
//Hair
- if(H.hair_style && (HAIR in S.specflags))
+ if(H.hair_style && (HAIR in S.species_traits))
hair_style = H.hair_style
if(S.hair_color)
if(S.hair_color == "mutcolor")
@@ -100,14 +100,14 @@
hair_color = "000"
hair_alpha = initial(hair_alpha)
// lipstick
- if(H.lip_style && (LIPS in S.specflags))
+ if(H.lip_style && (LIPS in S.species_traits))
lip_style = H.lip_style
lip_color = H.lip_color
else
lip_style = null
lip_color = "white"
// eyes
- if(EYECOLOR in S.specflags)
+ if(EYECOLOR in S.species_traits)
eyes = S.eyes
eye_color = H.eye_color
else
diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm
index 584c235d5de..b826d66154d 100644
--- a/code/modules/surgery/organs/organ_internal.dm
+++ b/code/modules/surgery/organs/organ_internal.dm
@@ -192,7 +192,7 @@
if(world.time > (last_pump + pump_delay))
if(ishuman(owner) && owner.client) //While this entire item exists to make people suffer, they can't control disconnects.
var/mob/living/carbon/human/H = owner
- if(H.dna && !(NOBLOOD in H.dna.species.specflags))
+ if(H.dna && !(NOBLOOD in H.dna.species.species_traits))
H.blood_volume = max(H.blood_volume - blood_loss, 0)
H << "You have to keep pumping your blood!"
if(add_colour)
@@ -225,7 +225,7 @@
var/mob/living/carbon/human/H = owner
if(istype(H))
- if(H.dna && !(NOBLOOD in H.dna.species.specflags))
+ if(H.dna && !(NOBLOOD in H.dna.species.species_traits))
H.blood_volume = min(H.blood_volume + cursed_heart.blood_loss*0.5, BLOOD_VOLUME_MAXIMUM)
H.remove_client_colour(/datum/client_colour/cursed_heart_blood)
cursed_heart.add_colour = TRUE
@@ -283,16 +283,16 @@
if((H.status_flags & GODMODE))
return
- var/specflags = list()
- if(H && H.dna && H.dna.species && H.dna.species.specflags)
- specflags = H.dna.species.specflags
+ var/species_traits = list()
+ if(H && H.dna && H.dna.species && H.dna.species.species_traits)
+ species_traits = H.dna.species.species_traits
if(!breath || (breath.total_moles() == 0))
if(H.reagents.has_reagent("epinephrine"))
return
if(H.health >= HEALTH_THRESHOLD_CRIT)
H.adjustOxyLoss(HUMAN_MAX_OXYLOSS)
- else if(!(NOCRITDAMAGE in specflags))
+ else if(!(NOCRITDAMAGE in species_traits))
H.adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS)
H.failed_last_breath = 1
@@ -462,11 +462,11 @@
/obj/item/organ/lungs/proc/handle_breath_temperature(datum/gas_mixture/breath, mob/living/carbon/human/H) // called by human/life, handles temperatures
if(abs(310.15 - breath.temperature) > 50)
- var/specflags = list()
- if(H && H.dna && H.dna.species && H.dna.species.specflags)
- specflags = H.dna.species.specflags
+ var/species_traits = list()
+ if(H && H.dna && H.dna.species && H.dna.species.species_traits)
+ species_traits = H.dna.species.species_traits
- if(!(mutations_list[COLDRES] in H.dna.mutations) && !(RESISTCOLD in specflags)) // COLD DAMAGE
+ if(!(mutations_list[COLDRES] in H.dna.mutations) && !(RESISTCOLD in species_traits)) // COLD DAMAGE
switch(breath.temperature)
if(-INFINITY to 120)
H.apply_damage(COLD_GAS_DAMAGE_LEVEL_3, BURN, "head")
@@ -475,7 +475,7 @@
if(200 to 260)
H.apply_damage(COLD_GAS_DAMAGE_LEVEL_1, BURN, "head")
- if(!(RESISTHOT in specflags)) // HEAT DAMAGE
+ if(!(RESISTHOT in species_traits)) // HEAT DAMAGE
switch(breath.temperature)
if(360 to 400)
H.apply_damage(HEAT_GAS_DAMAGE_LEVEL_1, BURN, "head")
diff --git a/code/modules/zombie/items.dm b/code/modules/zombie/items.dm
index 6fee779d900..c3d9b46a75a 100644
--- a/code/modules/zombie/items.dm
+++ b/code/modules/zombie/items.dm
@@ -40,7 +40,7 @@
/obj/item/zombie_hand/proc/check_infection(mob/living/carbon/human/target, mob/user)
CHECK_DNA_AND_SPECIES(target)
- if(NOZOMBIE in target.dna.species.specflags)
+ if(NOZOMBIE in target.dna.species.species_traits)
// cannot infect any NOZOMBIE subspecies (such as high functioning
// zombies)
return
|