diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm index 782111c161..8af6e9f74b 100644 --- a/code/modules/client/preference_setup/vore/07_traits.dm +++ b/code/modules/client/preference_setup/vore/07_traits.dm @@ -2,6 +2,9 @@ #define NEUTRAL_MODE 2 #define NEGATIVE_MODE 3 +#define ORGANICS 1 +#define SYNTHETICS 2 + /datum/preferences var/custom_species // Custom species name, can't be changed due to it having been used in savefiles already. var/custom_base // What to base the custom species on @@ -15,6 +18,7 @@ var/starting_trait_points = STARTING_SPECIES_POINTS var/max_traits = MAX_SPECIES_TRAITS var/dirty_synth = 0 //Are you a synth + var/gross_meatbag = 0 //Where'd I leave my Voight-Kampff test kit? // Definition of the stuff for Ears /datum/category_item/player_setup_item/vore/traits @@ -85,8 +89,10 @@ if(character.isSynthetic()) //Checking if we have a synth on our hands, boys. pref.dirty_synth = 1 - else //CHOMPEdit - pref.dirty_synth = 0 //CHOMPEdit + pref.gross_meatbag = 0 + else + pref.gross_meatbag = 1 + pref.dirty_synth = 0 var/datum/species/S = character.species var/SB @@ -276,11 +282,14 @@ var/conflict = FALSE - user.isSynthetic() //Recheck just to be sure - if(pref.dirty_synth && instance.not_for_synths)//if you are a synth you can't take this trait. - alert("You cannot take this trait as a SYNTH.\ - Please remove that trait, or pick another trait to add.","Error") - //pref.dirty_synth = 0 //Just to be sure // Commented out because it allow for someone to take a synth-blacklisted trait CHOMP Edit + if(pref.dirty_synth && !(instance.can_take & SYNTHETICS)) + alert("The trait you've selected can only be taken by organic characters!","Error") + //pref.dirty_synth = 0 //Just to be sure //CHOMPEdit this shit broke, stop. + return TOPIC_REFRESH + + if(pref.gross_meatbag && !(instance.can_take & ORGANICS)) + alert("The trait you've selected can only be taken by synthetic characters!","Error") + pref.gross_meatbag = 0 //Just to be sure return TOPIC_REFRESH diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm index 1fa2796d0b..6fc26b12a9 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm @@ -1,3 +1,6 @@ +#define ORGANICS 1 +#define SYNTHETICS 2 + /datum/trait/speed_slow name = "Slowdown" desc = "Allows you to move slower on average than baseline." @@ -142,10 +145,10 @@ */ /datum/trait/haemophilia name = "Haemophilia - Organics only" - desc = "When you bleed, you bleed a LOT. This trait is only for organics, buggy with synths!" + desc = "When you bleed, you bleed a LOT." cost = -2 var_changes = list("bloodloss_rate" = 2) - not_for_synths = 1 + can_take = ORGANICS /datum/trait/hollow name = "Hollow Bones/Aluminum Alloy" diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm index 3a561661b4..e40f427b9b 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm @@ -18,7 +18,7 @@ cost = -3 var_changes = list("blood_volume" = 375) excludes = list(/datum/trait/less_blood_extreme,/datum/trait/more_blood,/datum/trait/more_blood_extreme) - not_for_synths = TRUE + can_take = ORGANICS /datum/trait/less_blood_extreme name = "Extremely low blood volume" @@ -26,7 +26,7 @@ cost = -5 var_changes = list("blood_volume" = 224) excludes = list(/datum/trait/less_blood,/datum/trait/more_blood,/datum/trait/more_blood_extreme) - not_for_synths = TRUE + can_take = ORGANICS /datum/trait/scrawny name = "Scrawny" @@ -85,7 +85,7 @@ desc = "You have a condition which causes you to spontaneously have hallucinations! Luckily for you, in the modern space age, our doctors have solutions for you, just make sure you don't forget to take your pills." cost = -3 special_env = TRUE - not_for_synths = TRUE + can_take = ORGANICS var/hallucination_max = 60 var/hallucination_increase = 3 var/episode_length_nomeds_avg = 4000 diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index 41dbf2a72b..8af39aa6eb 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -1,3 +1,6 @@ +#define ORGANICS 1 +#define SYNTHETICS 2 + /datum/trait/metabolism_up name = "Fast Metabolism" desc = "You process ingested and injected reagents faster, but get hungry faster (Teshari speed)." diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index 9c22f2f60c..94cdd132b7 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -1,3 +1,6 @@ +#define ORGANICS 1 +#define SYNTHETICS 2 + /datum/trait/speed_fast name = "Haste" desc = "Allows you to move faster on average than baseline." @@ -253,7 +256,7 @@ cost = 2 var_changes = list("cold_level_1" = 200, "cold_level_2" = 150, "cold_level_3" = 90, "breath_cold_level_1" = 180, "breath_cold_level_2" = 100, "breath_cold_level_3" = 60, "cold_discomfort_level" = 210, "heat_level_1" = 305, "heat_level_2" = 360, "heat_level_3" = 700, "breath_heat_level_1" = 345, "breath_heat_level_2" = 380, "breath_heat_level_3" = 780, "heat_discomfort_level" = 295) excludes = list(/datum/trait/hotadapt) - not_for_synths = 1 // CHOMP edit + can_take = ORGANICS // CHOMP edit /datum/trait/hotadapt name = "Heat-Adapted" @@ -261,7 +264,7 @@ cost = 2 var_changes = list("heat_level_1" = 420, "heat_level_2" = 460, "heat_level_3" = 1100, "breath_heat_level_1" = 440, "breath_heat_level_2" = 510, "breath_heat_level_3" = 1500, "heat_discomfort_level" = 390, "cold_level_1" = 280, "cold_level_2" = 220, "cold_level_3" = 140, "breath_cold_level_1" = 260, "breath_cold_level_2" = 240, "breath_cold_level_3" = 120, "cold_discomfort_level" = 280) excludes = list(/datum/trait/coldadapt) - not_for_synths = 1 // CHOMP edit + can_take = ORGANICS // CHOMP edit // YW Addition end /datum/trait/snowwalker diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm index 286fd874b9..3b08f6646a 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm @@ -34,7 +34,7 @@ desc = "Your body is able to produce nutrition from being in light." cost = 3 var_changes = list("photosynthesizing" = TRUE) - not_for_synths = 0 //Synths actually use nutrition, just with a fancy covering. + can_take = ORGANICS|SYNTHETICS //Synths actually use nutrition, just with a fancy covering. /datum/trait/rad_resistance name = "Radiation Resistance" @@ -54,7 +54,7 @@ cost = 3 var_changes = list("blood_volume" = 840) excludes = list(/datum/trait/more_blood_extreme,/datum/trait/less_blood,/datum/trait/less_blood_extreme) - not_for_synths = TRUE + can_take = ORGANICS /datum/trait/more_blood_extreme name = "Very high blood volume" @@ -62,7 +62,7 @@ cost = 6 var_changes = list("blood_volume" = 1400) excludes = list(/datum/trait/more_blood,/datum/trait/less_blood,/datum/trait/less_blood_extreme) - not_for_synths = TRUE + can_take = ORGANICS /datum/trait/heavyweight name = "Heavyweight" @@ -164,7 +164,7 @@ desc = "When you get critically damaged, you'll have an adrenaline rush before going down, giving you another chance to finish the fight, or get to safety." cost = 6 special_env = TRUE - not_for_synths = TRUE + can_take = ORGANICS var/last_adrenaline_rush /datum/trait/adrenaline_rush/handle_environment_special(var/mob/living/carbon/human/H) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/trait.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/trait.dm index 605da7e569..a17883884b 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/trait.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/trait.dm @@ -1,3 +1,6 @@ +#define ORGANICS 1 +#define SYNTHETICS 2 + /datum/trait var/name var/desc = "Contact a developer if you see this trait." @@ -5,7 +8,7 @@ var/cost = 0 // 0 is neutral, negative cost means negative, positive cost means positive. var/list/var_changes // A list to apply to the custom species vars. var/list/excludes // Store a list of paths of traits to exclude, but done automatically if they change the same vars. - var/not_for_synths = FALSE // Can freaking synths use those. + var/can_take = ORGANICS|SYNTHETICS // Can freaking synths use those. var/custom_only = TRUE // Trait only available for custom species //Proc can be overridden lower to include special changes, make sure to call up though for the vars changes