diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index a9d9bda00c..964c4e911e 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -65,9 +65,8 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define isslimeperson(A) (is_species(A, /datum/species/jelly/slime)) #define isluminescent(A) (is_species(A, /datum/species/jelly/luminescent)) #define iszombie(A) (is_species(A, /datum/species/zombie)) -#define ismoth(A) (is_species(A, /datum/species/insect)) #define ishumanbasic(A) (is_species(A, /datum/species/human)) -#define iscatperson(A) (ishumanbasic(A) && istype(A.dna.species, /datum/species/human/felinid) ) +#define iscatperson(A) (ishumanbasic(A) && istype(A.dna.species, /datum/species/human/felinid)) #define isdwarf(A) (is_species(A, /datum/species/dwarf)) #define isdullahan(A) (is_species(A, /datum/species/dullahan)) #define isangel(A) (is_species(A, /datum/species/angel)) @@ -80,8 +79,6 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define isipcperson(A) (is_species(A, /datum/species/ipc)) #define issynthliz(A) (is_species(A, /datum/species/synthliz)) #define ismammal(A) (is_species(A, /datum/species/mammal)) -#define isavian(A) (is_species(A, /datum/species/avian)) -#define isaquatic(A) (is_species(A, /datum/species/aquatic)) #define isinsect(A) (is_species(A, /datum/species/insect)) #define isxenoperson(A) (is_species(A, /datum/species/xeno)) #define isstartjelly(A) (is_species(A, /datum/species/jelly/roundstartslime)) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index d5a3c3abee..c2f8595ae7 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -85,7 +85,7 @@ tastes = list("dust" = 1, "lint" = 1) /obj/item/clothing/attack(mob/M, mob/user, def_zone) - if(user.a_intent != INTENT_HARM && ismoth(M)) + if(user.a_intent != INTENT_HARM && isinsect(M)) var/obj/item/reagent_containers/food/snacks/clothing/clothing_as_food = new clothing_as_food.name = name if(clothing_as_food.attack(M, user, def_zone)) diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm index 8d8049194b..c1a17b87a4 100644 --- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm +++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -920,75 +920,75 @@ /datum/chemical_reaction/coldscales name = "Cold Scales" - id = /datum/reagent/consumable/ethanol/coldscales - results = list(/datum/reagent/consumable/ethanol/coldscales = 3) + id = /datum/reagent/consumable/ethanol/species_drink/coldscales + results = list(/datum/reagent/consumable/ethanol/species_drink/coldscales = 3) required_reagents = list(/datum/reagent/consumable/tea = 1, /datum/reagent/toxin/slimejelly = 1, /datum/reagent/consumable/menthol = 1) /datum/chemical_reaction/oil_drum name = "Oil Drum" - id = /datum/reagent/consumable/ethanol/oil_drum - results = list(/datum/reagent/consumable/ethanol/oil_drum = 3) + id = /datum/reagent/consumable/ethanol/species_drink/oil_drum + results = list(/datum/reagent/consumable/ethanol/species_drink/oil_drum = 3) required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/oil = 1, /datum/reagent/consumable/ethanol/champagne = 12) /datum/chemical_reaction/nord_king name = "Nord King" - id = /datum/reagent/consumable/ethanol/nord_king - results = list(/datum/reagent/consumable/ethanol/nord_king = 10) + id = /datum/reagent/consumable/ethanol/species_drink/nord_king + results = list(/datum/reagent/consumable/ethanol/species_drink/nord_king = 10) required_reagents = list(/datum/reagent/consumable/ethanol = 5, /datum/reagent/consumable/honey = 1, /datum/reagent/consumable/ethanol/red_mead = 10) /datum/chemical_reaction/velvet_kiss name = "Velvet Kiss" - id = /datum/reagent/consumable/ethanol/velvet_kiss - results = list(/datum/reagent/consumable/ethanol/velvet_kiss = 15) //Limited races use this + id = /datum/reagent/consumable/ethanol/species_drink/velvet_kiss + results = list(/datum/reagent/consumable/ethanol/species_drink/velvet_kiss = 15) //Limited races use this required_reagents = list(/datum/reagent/blood = 5, /datum/reagent/consumable/tea = 1, /datum/reagent/consumable/ethanol/wine = 10) /datum/chemical_reaction/abduction_fruit name = "Abduction Fruit" - id = /datum/reagent/consumable/ethanol/abduction_fruit - results = list(/datum/reagent/consumable/ethanol/abduction_fruit = 3) + id = /datum/reagent/consumable/ethanol/species_drink/abduction_fruit + results = list(/datum/reagent/consumable/ethanol/species_drink/abduction_fruit = 3) required_reagents = list(/datum/reagent/consumable/limejuice = 10, /datum/reagent/consumable/strawberryjuice = 5, /datum/reagent/consumable/watermelonjuice = 10) /datum/chemical_reaction/bug_zapper name = "Bug Zapper" - id = /datum/reagent/consumable/ethanol/bug_zapper - results = list(/datum/reagent/consumable/ethanol/bug_zapper = 20) //Harder to make + id = /datum/reagent/consumable/ethanol/species_drink/bug_zapper + results = list(/datum/reagent/consumable/ethanol/species_drink/bug_zapper = 20) //Harder to make required_reagents = list(/datum/reagent/consumable/lemonjuice = 10, /datum/reagent/teslium = 1, /datum/reagent/copper = 10) /datum/chemical_reaction/mush_crush name = "Mush Crush" - id = /datum/reagent/consumable/ethanol/mush_crush - results = list(/datum/reagent/consumable/ethanol/mush_crush = 10) + id = /datum/reagent/consumable/ethanol/species_drink/mush_crush + results = list(/datum/reagent/consumable/ethanol/species_drink/mush_crush = 10) required_reagents = list(/datum/reagent/iron = 5, /datum/reagent/ash = 5, /datum/reagent/toxin/coffeepowder = 10) /datum/chemical_reaction/darkbrew name = "Darkbrew" - id = /datum/reagent/consumable/ethanol/darkbrew - results = list(/datum/reagent/consumable/ethanol/darkbrew = 20)//Limited races use this + id = /datum/reagent/consumable/ethanol/species_drink/darkbrew + results = list(/datum/reagent/consumable/ethanol/species_drink/darkbrew = 20)//Limited races use this required_reagents = list(/datum/reagent/liquid_dark_matter = 5, /datum/reagent/toxin/bungotoxin = 5, /datum/reagent/toxin/coffeepowder = 10) /datum/chemical_reaction/hollow_bone name = "Hollow Bone" - id = /datum/reagent/consumable/ethanol/hollow_bone - results = list(/datum/reagent/consumable/ethanol/hollow_bone = 10) + id = /datum/reagent/consumable/ethanol/species_drink/hollow_bone + results = list(/datum/reagent/consumable/ethanol/species_drink/hollow_bone = 10) required_reagents = list(/datum/reagent/toxin/bonehurtingjuice = 5, /datum/reagent/consumable/milk = 10, /datum/reagent/consumable/coconutmilk = 10) /datum/chemical_reaction/frisky_kitty name = "Frisky Kitty" - id = /datum/reagent/consumable/ethanol/frisky_kitty - results = list(/datum/reagent/consumable/ethanol/frisky_kitty = 2) + id = /datum/reagent/consumable/ethanol/species_drink/frisky_kitty + results = list(/datum/reagent/consumable/ethanol/species_drink/frisky_kitty = 2) required_reagents = list(/datum/reagent/consumable/catnip_tea = 1, /datum/reagent/consumable/milk = 1) required_temp = 296 //Just above room temp (22.85'C) /datum/chemical_reaction/jell_wyrm name = "Jell Wyrm" - id = /datum/reagent/consumable/ethanol/jell_wyrm - results = list(/datum/reagent/consumable/ethanol/jell_wyrm = 2) + id = /datum/reagent/consumable/ethanol/species_drink/jell_wyrm + results = list(/datum/reagent/consumable/ethanol/species_drink/jell_wyrm = 2) required_reagents = list(/datum/reagent/toxin/slimejelly = 1, /datum/reagent/toxin/carpotoxin = 1, /datum/reagent/carbondioxide = 5) required_temp = 333 // (59.85'C) /datum/chemical_reaction/laval_spit name = "Laval Spit" - id = /datum/reagent/consumable/ethanol/laval_spit - results = list(/datum/reagent/consumable/ethanol/laval_spit = 20) //Limited use + id = /datum/reagent/consumable/ethanol/species_drink/laval_spit + results = list(/datum/reagent/consumable/ethanol/species_drink/laval_spit = 20) //Limited use required_reagents = list(/datum/reagent/iron = 5, /datum/reagent/consumable/ethanol/mauna_loa = 10, /datum/reagent/sulfur = 5) required_temp = 900 // (626.85'C) diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index 24eb5d7234..96517d5ea2 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -4,6 +4,10 @@ status_flags = GODMODE|CANPUSH mouse_drag_pointer = MOUSE_INACTIVE_POINTER var/in_use = FALSE + vore_flags = NO_VORE + +/mob/living/carbon/human/vore + vore_flags = DEVOURABLE | DIGESTABLE | FEEDING INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index ba6fde421d..470def1954 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -105,6 +105,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/whitelisted = 0 //Is this species restricted to certain players? var/whitelist = list() //List the ckeys that can use this species, if it's whitelisted.: list("John Doe", "poopface666", "SeeALiggerPullTheTrigger") Spaces & capitalization can be included or ignored entirely for each key as it checks for both. var/icon_limbs //Overrides the icon used for the limbs of this species. Mainly for downstream, and also because hardcoded icons disgust me. Implemented and maintained as a favor in return for a downstream's implementation of synths. + var/species_type + + var/tail_type //type of tail i.e. mam_tail + var/wagging_type //type of wagging i.e. waggingtail_lizard /// Our default override for typing indicator state var/typing_indicator_state @@ -1061,7 +1065,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.adjustBruteLoss(1) /datum/species/proc/spec_death(gibbed, mob/living/carbon/human/H) - return + if(H) + stop_wagging_tail(H) /datum/species/proc/auto_equip(mob/living/carbon/human/H) // handles the equipping of species-specific gear @@ -2225,12 +2230,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /datum/species/proc/ExtinguishMob(mob/living/carbon/human/H) return - //////////// //Stun// //////////// /datum/species/proc/spec_stun(mob/living/carbon/human/H,amount) + if(H) + stop_wagging_tail(H) + . = stunmod * H.physiology.stun_mod * amount ////////////// @@ -2248,11 +2255,29 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) //////////////// /datum/species/proc/can_wag_tail(mob/living/carbon/human/H) - return FALSE + if(!tail_type || !wagging_type) + return FALSE + else + return mutant_bodyparts[tail_type] || mutant_bodyparts[wagging_type] /datum/species/proc/is_wagging_tail(mob/living/carbon/human/H) - return FALSE + return mutant_bodyparts["waggingtail_lizard"] /datum/species/proc/start_wagging_tail(mob/living/carbon/human/H) + if(tail_type && wagging_type) + if(mutant_bodyparts[tail_type]) + mutant_bodyparts[wagging_type] = mutant_bodyparts[tail_type] + mutant_bodyparts -= tail_type + if(mutant_bodyparts["spines"] || mutant_bodyparts["waggingspines"]) //special lizard thing + mutant_bodyparts["waggingspines"] = mutant_bodyparts["spines"] + mutant_bodyparts -= "spines" + H.update_body() /datum/species/proc/stop_wagging_tail(mob/living/carbon/human/H) + if(tail_type && wagging_type) + mutant_bodyparts[tail_type] = mutant_bodyparts[wagging_type] + mutant_bodyparts -= wagging_type + if(mutant_bodyparts["spines"] || mutant_bodyparts["waggingspines"]) //special lizard thing + mutant_bodyparts["spines"] = mutant_bodyparts["waggingspines"] + mutant_bodyparts -= "waggingspines" + H.update_body() diff --git a/code/modules/mob/living/carbon/human/species_types/abductors.dm b/code/modules/mob/living/carbon/human/species_types/abductors.dm index 409781efb2..1e77775efa 100644 --- a/code/modules/mob/living/carbon/human/species_types/abductors.dm +++ b/code/modules/mob/living/carbon/human/species_types/abductors.dm @@ -6,6 +6,7 @@ species_traits = list(NOBLOOD,NOEYES,NOGENITALS,NOAROUSAL,CAN_SCAR) inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_CHUNKYFINGERS,TRAIT_NOHUNGER,TRAIT_NOBREATH) mutanttongue = /obj/item/organ/tongue/abductor + species_type = "alien" /datum/species/abductor/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index 94f64ceacb..c5b57b82ab 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -11,6 +11,7 @@ mutanttongue = /obj/item/organ/tongue/robot species_language_holder = /datum/language_holder/synthetic limbs_id = "synth" + species_type = "robotic" /datum/species/android/on_species_gain(mob/living/carbon/C) . = ..() diff --git a/code/modules/mob/living/carbon/human/species_types/angel.dm b/code/modules/mob/living/carbon/human/species_types/angel.dm index 2d43c9964e..d6860e1249 100644 --- a/code/modules/mob/living/carbon/human/species_types/angel.dm +++ b/code/modules/mob/living/carbon/human/species_types/angel.dm @@ -9,6 +9,7 @@ blacklisted = 1 limbs_id = "human" skinned_type = /obj/item/stack/sheet/animalhide/human + species_type = "human" //they're a kind of human var/datum/action/innate/flight/fly diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm index a51dadb523..25fb51aa87 100644 --- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm @@ -17,32 +17,6 @@ exotic_bloodtype = "BUG" exotic_blood_color = BLOOD_COLOR_BUG -/datum/species/insect/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - stop_wagging_tail(H) - -/datum/species/insect/spec_stun(mob/living/carbon/human/H,amount) - if(H) - stop_wagging_tail(H) - . = ..() - -/datum/species/insect/can_wag_tail(mob/living/carbon/human/H) - return mutant_bodyparts["mam_tail"] || mutant_bodyparts["mam_waggingtail"] - -/datum/species/insect/is_wagging_tail(mob/living/carbon/human/H) - return mutant_bodyparts["mam_waggingtail"] - -/datum/species/insect/start_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["mam_tail"]) - mutant_bodyparts["mam_waggingtail"] = mutant_bodyparts["mam_tail"] - mutant_bodyparts -= "mam_tail" - H.update_body() - -/datum/species/insect/stop_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["mam_waggingtail"]) - mutant_bodyparts["mam_tail"] = mutant_bodyparts["mam_waggingtail"] - mutant_bodyparts -= "mam_waggingtail" - H.update_body() - -/datum/species/insect/qualifies_for_rank(rank, list/features) - return TRUE + tail_type = "mam_tail" + wagging_type = "mam_waggingtail" + species_type = "insect" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/corporate.dm b/code/modules/mob/living/carbon/human/species_types/corporate.dm index e062e1cbf7..a2597ed286 100644 --- a/code/modules/mob/living/carbon/human/species_types/corporate.dm +++ b/code/modules/mob/living/carbon/human/species_types/corporate.dm @@ -17,4 +17,5 @@ species_traits = list(NOBLOOD,EYECOLOR,NOGENITALS) inherent_traits = list(TRAIT_RADIMMUNE,TRAIT_VIRUSIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOLIMBDISABLE,TRAIT_NOHUNGER) sexes = 0 - gib_types = /obj/effect/gibspawner/robot \ No newline at end of file + gib_types = /obj/effect/gibspawner/robot + species_type = "robotic" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index 4e5aa57b0a..dcd81c90b9 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -14,6 +14,7 @@ limbs_id = "human" skinned_type = /obj/item/stack/sheet/animalhide/human has_field_of_vision = FALSE //Too much of a trouble, their vision is already bound to their severed head. + species_type = "undead" var/pumpkin = FALSE var/obj/item/dullahan_relay/myhead diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 009dba7707..8eb0e0181c 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -18,6 +18,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // mutant_organs = list(/obj/item/organ/dwarfgland) //Dwarven alcohol gland, literal gland warrior mutantliver = /obj/item/organ/liver/dwarf //Dwarven super liver (Otherwise they r doomed) species_language_holder = /datum/language_holder/dwarf + species_type = "human" //a kind of human /mob/living/carbon/human/species/dwarf //species admin spawn path race = /datum/species/dwarf //and the race the path is set to. diff --git a/code/modules/mob/living/carbon/human/species_types/felinid.dm b/code/modules/mob/living/carbon/human/species_types/felinid.dm index 2f0595e2c0..b760fd0aee 100644 --- a/code/modules/mob/living/carbon/human/species_types/felinid.dm +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -9,37 +9,9 @@ mutantears = /obj/item/organ/ears/cat mutanttail = /obj/item/organ/tail/cat -/datum/species/human/felinid/qualifies_for_rank(rank, list/features) - return TRUE - -//Curiosity killed the cat's wagging tail. -/datum/species/human/felinid/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - stop_wagging_tail(H) - -/datum/species/human/felinid/spec_stun(mob/living/carbon/human/H,amount) - if(H) - stop_wagging_tail(H) - . = ..() - - -/datum/species/human/felinid/can_wag_tail(mob/living/carbon/human/H) - return mutant_bodyparts["mam_tail"] || mutant_bodyparts["mam_waggingtail"] - -/datum/species/human/felinid/is_wagging_tail(mob/living/carbon/human/H) - return mutant_bodyparts["mam_waggingtail"] - -/datum/species/human/felinid/start_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["mam_tail"]) - mutant_bodyparts["mam_waggingtail"] = mutant_bodyparts["mam_tail"] - mutant_bodyparts -= "mam_tail" - H.update_body() - -/datum/species/human/felinid/stop_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["mam_waggingtail"]) - mutant_bodyparts["mam_tail"] = mutant_bodyparts["mam_waggingtail"] - mutant_bodyparts -= "mam_waggingtail" - H.update_body() + tail_type = "mam_tail" + wagging_type = "mam_waggingtail" + species_type = "furry" /datum/species/human/felinid/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) if(ishuman(C)) diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index c3ec8b42ea..b99c3e2bc2 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -12,6 +12,7 @@ liked_food = GROSS exotic_bloodtype = "BUG" exotic_blood_color = BLOOD_COLOR_BUG + species_type = "insect" /datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) if(istype(chem, /datum/reagent/toxin/pestkiller)) diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index d87b0c074c..18359f415f 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -14,67 +14,6 @@ liked_food = MEAT | FRIED disliked_food = TOXIC -//Curiosity killed the cat's wagging tail. -/datum/species/mammal/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - stop_wagging_tail(H) - -/datum/species/mammal/spec_stun(mob/living/carbon/human/H,amount) - if(H) - stop_wagging_tail(H) - . = ..() - -/datum/species/mammal/can_wag_tail(mob/living/carbon/human/H) - return mutant_bodyparts["mam_tail"] || mutant_bodyparts["mam_waggingtail"] - -/datum/species/mammal/is_wagging_tail(mob/living/carbon/human/H) - return mutant_bodyparts["mam_waggingtail"] - -/datum/species/mammal/start_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["mam_tail"]) - mutant_bodyparts["mam_waggingtail"] = mutant_bodyparts["mam_tail"] - mutant_bodyparts -= "mam_tail" - H.update_body() - -/datum/species/mammal/stop_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["mam_waggingtail"]) - mutant_bodyparts["mam_tail"] = mutant_bodyparts["mam_waggingtail"] - mutant_bodyparts -= "mam_waggingtail" - H.update_body() - - -/datum/species/mammal/qualifies_for_rank(rank, list/features) - return TRUE - - -//Alien// -/datum/species/xeno - // A cloning mistake, crossing human and xenomorph DNA - name = "Xenomorph Hybrid" - id = "xeno" - say_mod = "hisses" - default_color = "00FF00" - icon_limbs = DEFAULT_BODYPART_ICON_CITADEL - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,CAN_SCAR) - mutant_bodyparts = list("xenotail"="Xenomorph Tail","xenohead"="Standard","xenodorsal"="Standard", "mam_body_markings" = "Xeno","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None", "legs" = "Digitigrade") - attack_verb = "slash" - attack_sound = 'sound/weapons/slash.ogg' - miss_sound = 'sound/weapons/slashmiss.ogg' - meat = /obj/item/reagent_containers/food/snacks/meat/slab/xeno - gib_types = list(/obj/effect/gibspawner/xeno/xenoperson, /obj/effect/gibspawner/xeno/xenoperson/bodypartless) - skinned_type = /obj/item/stack/sheet/animalhide/xeno - exotic_bloodtype = "X*" - damage_overlay_type = "xeno" - liked_food = MEAT - -//Praise the Omnissiah, A challange worthy of my skills - HS - -//EXOTIC// -//These races will likely include lots of downsides and upsides. Keep them relatively balanced.// - -//misc -/mob/living/carbon/human/dummy - vore_flags = NO_VORE - -/mob/living/carbon/human/vore - vore_flags = DEVOURABLE | DIGESTABLE | FEEDING + tail_type = "mam_tail" + wagging_type = "mam_waggingtail" + species_type = "furry" diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index 7100caf178..438eaf1eea 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -32,6 +32,8 @@ var/special_name_chance = 5 var/owner //dobby is a free golem + species_type = "golem" + /datum/species/golem/random_name(gender,unique,lastname) var/golem_surname = pick(GLOB.golem_names) // 3% chance that our golem has a human surname, because diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index b164fb1ba0..e93a5106c9 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -10,8 +10,9 @@ disliked_food = GROSS | RAW liked_food = JUNKFOOD | FRIED -/datum/species/human/qualifies_for_rank(rank, list/features) - return TRUE //Pure humans are always allowed in all roles. + tail_type = "tail_human" + wagging_type = "waggingtail_human" + species_type = "human" /datum/species/human/spec_death(gibbed, mob/living/carbon/human/H) if(H) @@ -21,21 +22,3 @@ if(H) stop_wagging_tail(H) . = ..() - -/datum/species/human/can_wag_tail(mob/living/carbon/human/H) - return mutant_bodyparts["tail_human"] || mutant_bodyparts["waggingtail_human"] - -/datum/species/human/is_wagging_tail(mob/living/carbon/human/H) - return mutant_bodyparts["waggingtail_human"] - -/datum/species/human/start_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["tail_human"]) - mutant_bodyparts["waggingtail_human"] = mutant_bodyparts["tail_human"] - mutant_bodyparts -= "tail_human" - H.update_body() - -/datum/species/human/stop_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["waggingtail_human"]) - mutant_bodyparts["tail_human"] = mutant_bodyparts["waggingtail_human"] - mutant_bodyparts -= "waggingtail_human" - H.update_body() diff --git a/code/modules/mob/living/carbon/human/species_types/ipc.dm b/code/modules/mob/living/carbon/human/species_types/ipc.dm index 96efaebd74..b5862b2bd2 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -21,6 +21,7 @@ exotic_bloodtype = "HF" exotic_blood_color = BLOOD_COLOR_OIL + species_type = "robotic" var/datum/action/innate/monitor_change/screen diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index e97db7aced..dc821c11ef 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -25,6 +25,10 @@ species_language_holder = /datum/language_holder/jelly mutant_brain = /obj/item/organ/brain/jelly + tail_type = "mam_tail" + wagging_type = "mam_waggingtail" + species_type = "jelly" + /obj/item/organ/brain/jelly name = "slime nucleus" desc = "A slimey membranous mass from a slime person" @@ -128,33 +132,6 @@ return to_chat(H, "...but there is not enough of you to go around! You must attain more mass to heal!") -/datum/species/jelly/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - stop_wagging_tail(H) - -/datum/species/jelly/spec_stun(mob/living/carbon/human/H,amount) - if(H) - stop_wagging_tail(H) - . = ..() - -/datum/species/jelly/can_wag_tail(mob/living/carbon/human/H) - return mutant_bodyparts["mam_tail"] || mutant_bodyparts["mam_waggingtail"] - -/datum/species/jelly/is_wagging_tail(mob/living/carbon/human/H) - return mutant_bodyparts["mam_waggingtail"] - -/datum/species/jelly/start_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["mam_tail"]) - mutant_bodyparts["mam_waggingtail"] = mutant_bodyparts["mam_tail"] - mutant_bodyparts -= "mam_tail" - H.update_body() - -/datum/species/jelly/stop_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["mam_waggingtail"]) - mutant_bodyparts["mam_tail"] = mutant_bodyparts["mam_waggingtail"] - mutant_bodyparts -= "mam_waggingtail" - H.update_body() - ////////////////////////////////////////////////////////SLIMEPEOPLE/////////////////////////////////////////////////////////////////// diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index a424969175..7bcf6c89f4 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -27,6 +27,10 @@ inert_mutation = FIREBREATH species_language_holder = /datum/language_holder/lizard + tail_type = "tail_lizard" + wagging_type = "waggingtail_lizard" + species_type = "lizard" + /datum/species/lizard/random_name(gender,unique,lastname) if(unique) return random_unique_lizard_name(gender) @@ -38,41 +42,6 @@ return randname -/datum/species/lizard/qualifies_for_rank(rank, list/features) - return TRUE - -//I wag in death -/datum/species/lizard/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - stop_wagging_tail(H) - -/datum/species/lizard/spec_stun(mob/living/carbon/human/H,amount) - if(H) - stop_wagging_tail(H) - . = ..() - -/datum/species/lizard/can_wag_tail(mob/living/carbon/human/H) - return mutant_bodyparts["tail_lizard"] || mutant_bodyparts["waggingtail_lizard"] - -/datum/species/lizard/is_wagging_tail(mob/living/carbon/human/H) - return mutant_bodyparts["waggingtail_lizard"] - -/datum/species/lizard/start_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["tail_lizard"]) - mutant_bodyparts["waggingtail_lizard"] = mutant_bodyparts["tail_lizard"] - mutant_bodyparts["waggingspines"] = mutant_bodyparts["spines"] - mutant_bodyparts -= "tail_lizard" - mutant_bodyparts -= "spines" - H.update_body() - -/datum/species/lizard/stop_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["waggingtail_lizard"]) - mutant_bodyparts["tail_lizard"] = mutant_bodyparts["waggingtail_lizard"] - mutant_bodyparts["spines"] = mutant_bodyparts["waggingspines"] - mutant_bodyparts -= "waggingtail_lizard" - mutant_bodyparts -= "waggingspines" - H.update_body() - /* Lizard subspecies: ASHWALKERS */ diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm index 8e8c65b15e..4cb5442bf8 100644 --- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm @@ -21,6 +21,8 @@ burnmod = 1.25 heatmod = 1.5 + species_type = "plant" + mutanteyes = /obj/item/organ/eyes/night_vision/mushroom var/datum/martial_art/mushpunch/mush species_language_holder = /datum/language_holder/mushroom diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index 91d3135ae1..5008fb13cd 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -22,6 +22,8 @@ liked_food = VEGETABLES outfit_important_for_life = /datum/outfit/plasmaman + species_type = "skeleton" + /datum/species/plasmaman/spec_life(mob/living/carbon/human/H) var/datum/gas_mixture/environment = H.loc.return_air() var/atmos_sealed = FALSE diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 4806d4a6a1..706995d611 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -19,6 +19,8 @@ var/light_burnheal = -1 var/light_bruteheal = -1 + species_type = "plant" + /datum/species/pod/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() C.faction |= "plants" @@ -71,29 +73,5 @@ light_burnheal = -0.2 light_toxheal = -0.7 -/datum/species/pod/pseudo_weak/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - stop_wagging_tail(H) - -/datum/species/pod/pseudo_weak/spec_stun(mob/living/carbon/human/H,amount) - if(H) - stop_wagging_tail(H) - . = ..() - -/datum/species/pod/pseudo_weak/can_wag_tail(mob/living/carbon/human/H) - return mutant_bodyparts["mam_tail"] || mutant_bodyparts["mam_waggingtail"] - -/datum/species/pod/pseudo_weak/is_wagging_tail(mob/living/carbon/human/H) - return mutant_bodyparts["mam_waggingtail"] - -/datum/species/pod/pseudo_weak/start_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["mam_tail"]) - mutant_bodyparts["mam_waggingtail"] = mutant_bodyparts["mam_tail"] - mutant_bodyparts -= "mam_tail" - H.update_body() - -/datum/species/pod/pseudo_weak/stop_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["mam_waggingtail"]) - mutant_bodyparts["mam_tail"] = mutant_bodyparts["mam_waggingtail"] - mutant_bodyparts -= "mam_waggingtail" - H.update_body() + tail_type = "mam_tail" + wagging_type = "mam_waggingtail" diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index 2776c6d919..9f7d165edf 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -15,6 +15,8 @@ dangerous_existence = 1 mutanteyes = /obj/item/organ/eyes/night_vision + species_type = "shadow" + /datum/species/shadow/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() C.AddElement(/datum/element/photosynthesis, 1, 1, 0, 0, 0, 0, SHADOW_SPECIES_LIGHT_THRESHOLD, SHADOW_SPECIES_LIGHT_THRESHOLD) diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm index 78efddf70d..54d56fea06 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -15,6 +15,8 @@ brutemod = 1.25 burnmod = 1.25 + species_type = "skeleton" //they have their own category that's disassociated from undead, paired with plasmapeople + /datum/species/skeleton/New() if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) //skeletons are stronger during the spooky season! inherent_traits |= list(TRAIT_RESISTHEAT,TRAIT_RESISTCOLD) diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index af2e83ee0f..41b3d3a96a 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -20,33 +20,6 @@ exotic_bloodtype = "S" exotic_blood_color = BLOOD_COLOR_OIL -/datum/species/synthliz/qualifies_for_rank(rank, list/features) - return TRUE - -//I wag in death -/datum/species/synthliz/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - stop_wagging_tail(H) - -/datum/species/synthliz/spec_stun(mob/living/carbon/human/H,amount) - if(H) - stop_wagging_tail(H) - . = ..() - -/datum/species/synthliz/can_wag_tail(mob/living/carbon/human/H) - return mutant_bodyparts["mam_tail"] || mutant_bodyparts["mam_waggingtail"] - -/datum/species/synthliz/is_wagging_tail(mob/living/carbon/human/H) - return mutant_bodyparts["mam_waggingtail"] - -/datum/species/synthliz/start_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["mam_tail"]) - mutant_bodyparts["mam_waggingtail"] = mutant_bodyparts["mam_tail"] - mutant_bodyparts -= "mam_tail" - H.update_body() - -/datum/species/synthliz/stop_wagging_tail(mob/living/carbon/human/H) - if(mutant_bodyparts["mam_waggingtail"]) - mutant_bodyparts["mam_tail"] = mutant_bodyparts["mam_waggingtail"] - mutant_bodyparts -= "mam_waggingtail" - H.update_body() + tail_type = "mam_tail" + wagging_type = "mam_waggingtail" + species_type = "robotic" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index 85f1fbf386..a1a2a33c54 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -17,6 +17,7 @@ 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 species_language_holder = /datum/language_holder/synthetic + species_type = "robotic" /datum/species/synth/military name = "Military Synth" @@ -43,7 +44,6 @@ return TRUE return ..() - /datum/species/synth/proc/assume_disguise(datum/species/S, mob/living/carbon/human/H) if(S && !istype(S, type)) name = S.name diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index 9c9220132c..d8fc06b716 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -14,6 +14,7 @@ limbs_id = "human" skinned_type = /obj/item/stack/sheet/animalhide/human var/info_text = "You are a Vampire. You will slowly but constantly lose blood if outside of a coffin. If inside a coffin, you will slowly heal. You may gain more blood by grabbing a live victim and using your drain ability." + species_type = "undead" /datum/species/vampire/check_roundstart_eligible() if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) diff --git a/code/modules/mob/living/carbon/human/species_types/xeno.dm b/code/modules/mob/living/carbon/human/species_types/xeno.dm new file mode 100644 index 0000000000..db34d1ae45 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species_types/xeno.dm @@ -0,0 +1,19 @@ +/datum/species/xeno + // A cloning mistake, crossing human and xenomorph DNA + name = "Xenomorph Hybrid" + id = "xeno" + say_mod = "hisses" + default_color = "00FF00" + icon_limbs = DEFAULT_BODYPART_ICON_CITADEL + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,CAN_SCAR) + mutant_bodyparts = list("xenotail"="Xenomorph Tail","xenohead"="Standard","xenodorsal"="Standard", "mam_body_markings" = "Xeno","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None", "legs" = "Digitigrade") + attack_verb = "slash" + attack_sound = 'sound/weapons/slash.ogg' + miss_sound = 'sound/weapons/slashmiss.ogg' + meat = /obj/item/reagent_containers/food/snacks/meat/slab/xeno + gib_types = list(/obj/effect/gibspawner/xeno/xenoperson, /obj/effect/gibspawner/xeno/xenoperson/bodypartless) + skinned_type = /obj/item/stack/sheet/animalhide/xeno + exotic_bloodtype = "X*" + damage_overlay_type = "xeno" + liked_food = MEAT + species_type = "alien" diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index ab0838c873..990e2c9db3 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -15,6 +15,7 @@ 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 liked_food = GROSS | MEAT | RAW + species_type = "undead" /datum/species/zombie/notspaceproof id = "notspaceproofzombie" diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 7d0a701e8f..a5de3a2fdc 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -226,7 +226,7 @@ 'sound/voice/catpeople/nyahehe.ogg'), 50, 1) return - else if(ismoth(C)) + else if(isinsect(C)) playsound(C, 'sound/voice/moth/mothlaugh.ogg', 50, 1) else if(ishumanbasic(C)) if(user.gender == FEMALE) @@ -244,7 +244,7 @@ . = ..() if(. && iscarbon(user)) //Citadel Edit because this is hilarious var/mob/living/carbon/C = user - if(ismoth(C)) + if(isinsect(C)) playsound(C, 'sound/voice/moth/mothchitter.ogg', 50, 1) /datum/emote/living/look diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 385a82baa5..4034759c72 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1962,12 +1962,12 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bug_spray/on_mob_life(mob/living/carbon/M) //Bugs should not drink Bug spray. - if(ismoth(M) || isflyperson(M)) + if(isinsect(M) || isflyperson(M)) M.adjustToxLoss(1,0) return ..() /datum/reagent/consumable/ethanol/bug_spray/on_mob_add(mob/living/carbon/M) - if(ismoth(M) || isflyperson(M)) + if(isinsect(M) || isflyperson(M)) M.emote("scream") return ..() @@ -2270,25 +2270,29 @@ All effects don't start immediately, but rather get worse over time; the rate is //////////////////// //Race-Base-Drinks// //////////////////// +/datum/reagent/consumable/ethanol/species_drink + var/species_required + var/disgust = 25 + boozepwr = 50 -/datum/reagent/consumable/ethanol/coldscales +/datum/reagent/consumable/ethanol/species_drink/on_mob_life(mob/living/carbon/C) + if(C.dna.species && C.dna.species.species_type == species_required) //species have a species_type variable that refers to one of the drinks + quality = RACE_DRINK + else + C.adjust_disgust(disgust) + +/datum/reagent/consumable/ethanol/species_drink/coldscales name = "Coldscales" color = "#5AEB52" //(90, 235, 82) description = "A cold looking drink made for people with scales." - boozepwr = 50 //strong! taste_description = "dead flies" glass_icon_state = "coldscales" glass_name = "glass of Coldscales" glass_desc = "A soft green drink that looks inviting!" -/datum/reagent/consumable/ethanol/coldscales/on_mob_life(mob/living/carbon/M) - if(islizard(M)) - quality = RACE_DRINK - else - M.adjust_disgust(25) - return ..() + species_required = "lizard" -/datum/reagent/consumable/ethanol/oil_drum +/datum/reagent/consumable/ethanol/species_drink/oil_drum name = "Oil Drum" color = "#000000" //(0, 0, 0) description = "Industrial grade oil mixed with some ethanol to make it a drink. Somehow not known to be toxic." @@ -2298,31 +2302,20 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "Drum of oil" glass_desc = "A gray can of booze and oil..." -/datum/reagent/consumable/ethanol/oil_drum/on_mob_life(mob/living/carbon/M) - if(isipcperson(M) || issynthliz(M)) - quality = RACE_DRINK - else - M.adjust_disgust(25) - return ..() + species_required = "robot" -/datum/reagent/consumable/ethanol/nord_king +/datum/reagent/consumable/ethanol/species_drink/nord_king name = "Nord King" color = "#EB1010" //(235, 16, 16) description = "Strong mead mixed with more honey and ethanol. Beloved by its human patrons." - boozepwr = 50 //strong! taste_description = "honey and red wine" glass_icon_state = "nord_king" glass_name = "Keg of Nord King" glass_desc = "A dripping keg of red mead." -/datum/reagent/consumable/ethanol/nord_king/on_mob_life(mob/living/carbon/M) - if(ishumanbasic(M) || isdwarf(M) || isangel(M)) //Humans and angel races are rare - quality = RACE_DRINK - else - M.adjust_disgust(25) - return ..() + species_required = "basic" -/datum/reagent/consumable/ethanol/velvet_kiss +/datum/reagent/consumable/ethanol/species_drink/velvet_kiss name = "Velvet Kiss" color = "#EB1010" //(235, 16, 16) description = "A bloody drink mixed with wine." @@ -2332,14 +2325,9 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of Velvet Kiss" glass_desc = "Red and white drink for the upper classes or undead." -/datum/reagent/consumable/ethanol/velvet_kiss/on_mob_life(mob/living/carbon/M) - if(iszombie(M) || isvampire(M) || isdullahan(M)) //Rare races! - quality = RACE_DRINK - else - M.adjust_disgust(25) - return ..() + species_required = "undead" -/datum/reagent/consumable/ethanol/abduction_fruit +/datum/reagent/consumable/ethanol/species_drink/abduction_fruit name = "Abduction Fruit" color = "#DEFACD" //(222, 250, 205) description = "Mixing of juices to make an alien taste." @@ -2349,14 +2337,9 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of Abduction Fruit" glass_desc = "Mixed fruits that were never meant to be mixed..." -/datum/reagent/consumable/ethanol/abduction_fruit/on_mob_life(mob/living/carbon/M) - if(isabductor(M) || isxenoperson(M)) - quality = RACE_DRINK - else - M.adjust_disgust(25) - return ..() + species_required = "alien" -/datum/reagent/consumable/ethanol/bug_zapper +/datum/reagent/consumable/ethanol/species_drink/bug_zapper name = "Bug Zapper" color = "#F5882A" //(222, 250, 205) description = "Copper and lemon juice. Hardly even a drink." @@ -2366,14 +2349,9 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of Bug Zapper" glass_desc = "An odd mix of copper, lemon juice and power meant for non-human consumption." -/datum/reagent/consumable/ethanol/bug_zapper/on_mob_life(mob/living/carbon/M) - if(isinsect(M) || isflyperson(M) || ismoth(M)) - quality = RACE_DRINK - else - M.adjust_disgust(25) - return ..() + species_required = "bug" -/datum/reagent/consumable/ethanol/mush_crush +/datum/reagent/consumable/ethanol/species_drink/mush_crush name = "Mush Crush" color = "#F5882A" //(222, 250, 205) description = "Soil in a glass." @@ -2383,14 +2361,9 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of Mush Crush" glass_desc = "Popular among people that want to grow their own food rather than drink the soil." -/datum/reagent/consumable/ethanol/mush_crush/on_mob_life(mob/living/carbon/M) - if(ispodperson(M) || ismush(M)) - quality = RACE_DRINK - else - M.adjust_disgust(25) - return ..() + species_required = "plant" -/datum/reagent/consumable/ethanol/darkbrew +/datum/reagent/consumable/ethanol/species_drink/darkbrew name = "Darkbrew" color = "#000000" //(0, 0, 0) description = "Contained dark matter mixed with coffee." @@ -2400,31 +2373,21 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of Darkbrew" glass_desc = "A pitch black drink that's commonly confused with a type of coffee." -/datum/reagent/consumable/ethanol/darkbrew/on_mob_life(mob/living/carbon/M) - if(isshadow(M)) - quality = RACE_DRINK - else - M.adjust_disgust(25) - return ..() + species_required = "shadow" -/datum/reagent/consumable/ethanol/hollow_bone +/datum/reagent/consumable/ethanol/species_drink/hollow_bone name = "Hollow Bone" color = "#FCF7D4" //(252, 247, 212) - description = "Shockingly none-harmful mix of toxins and milk." + description = "Shockingly non-harmful mix of toxins and milk." boozepwr = 15 taste_description = "Milk and salt" glass_icon_state = "hollow_bone" glass_name = "skull of Hollow Bone" - glass_desc = "Mixing of milk and bone hurting juice for enjoyment for rather skinny people." + glass_desc = "Mixing of milk and bone hurting juice for the enjoyment of rather skinny people." -/datum/reagent/consumable/ethanol/hollow_bone/on_mob_life(mob/living/carbon/M) - if(isplasmaman(M) || isskeleton(M)) - quality = RACE_DRINK - else - M.adjust_disgust(25) - return ..() + species_required = "skeleton" -/datum/reagent/consumable/ethanol/frisky_kitty +/datum/reagent/consumable/ethanol/species_drink/frisky_kitty name = "Frisky Kitty" color = "#FCF7D4" //(252, 247, 212) description = "Warm milk mixed with a catnip." @@ -2434,14 +2397,9 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "cup of Drisky Kitty" glass_desc = "Warm milk and some catnip." -/datum/reagent/consumable/ethanol/frisky_kitty/on_mob_life(mob/living/carbon/M) - if(ismammal(M) || iscatperson(M)) //well its not to bad for mammals - quality = RACE_DRINK - else - M.adjust_disgust(25) - return ..() + species_required = "furry" -/datum/reagent/consumable/ethanol/jell_wyrm +/datum/reagent/consumable/ethanol/species_drink/jell_wyrm name = "Jell Wyrm" color = "#FF6200" //(255, 98, 0) description = "Horrible mix of Co2, toxins and heat. Meant for slime based life." @@ -2451,15 +2409,9 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of Jell Wyrm" glass_desc = "A bubbly drink that is rather inviting to those that don't know who it's meant for." -/datum/reagent/consumable/ethanol/jell_wyrm/on_mob_life(mob/living/carbon/M) - if(isjellyperson(M) || isstartjelly(M) || isslimeperson(M) || isluminescent(M)) - quality = RACE_DRINK - else - M.adjust_disgust(25) - M.adjustToxLoss(1, 0) //Low tox due to being carp + jell toxins. - return ..() + species_required = "jelly" -/datum/reagent/consumable/ethanol/laval_spit //Yes Laval +/datum/reagent/consumable/ethanol/species_drink/laval_spit //Yes Laval name = "Laval Spit" color = "#DE3009" //(222, 48, 9) description = "Heat minerals and some mauna loa. Meant for rock based life." @@ -2469,15 +2421,10 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of Laval Spit" glass_desc = "Piping hot drink for those who can stomach the heat of lava." -/datum/reagent/consumable/ethanol/laval_spit/on_mob_life(mob/living/carbon/M) - if(isgolem(M)) - quality = RACE_DRINK - else - M.adjust_disgust(25) - return ..() + species_required = "golem" /////////////// -//Barrle Wine// +//Barrel Wine// /////////////// /datum/reagent/consumable/ethanol/fruit_wine diff --git a/tgstation.dme b/tgstation.dme index 6b3bf6eb88..75914f9d66 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2492,6 +2492,7 @@ #include "code\modules\mob\living\carbon\human\species_types\synthliz.dm" #include "code\modules\mob\living\carbon\human\species_types\synths.dm" #include "code\modules\mob\living\carbon\human\species_types\vampire.dm" +#include "code\modules\mob\living\carbon\human\species_types\xeno.dm" #include "code\modules\mob\living\carbon\human\species_types\zombies.dm" #include "code\modules\mob\living\carbon\monkey\combat.dm" #include "code\modules\mob\living\carbon\monkey\death.dm"