diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm index 6462a142c7..e653166b7a 100644 --- a/code/modules/client/preference_setup/vore/07_traits.dm +++ b/code/modules/client/preference_setup/vore/07_traits.dm @@ -14,6 +14,7 @@ var/traits_cheating = 0 //Varedit by admins allows saving new maximums on people who apply/etc var/starting_trait_points = STARTING_SPECIES_POINTS var/max_traits = MAX_SPECIES_TRAITS + var/dirty_synth = 0 //Are you a synth // Definition of the stuff for Ears /datum/category_item/player_setup_item/vore/traits @@ -82,6 +83,10 @@ /datum/category_item/player_setup_item/vore/traits/copy_to_mob(var/mob/living/carbon/human/character) character.custom_species = pref.custom_species var/datum/species/selected_species = GLOB.all_species[pref.species] + + if(character.isSynthetic()) //Checking if we have a synth on our hands, boys. + pref.dirty_synth = 1 + if(selected_species.selects_bodytype) var/datum/species/custom/CS = character.species var/S = pref.custom_base ? pref.custom_base : "Human" @@ -255,6 +260,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 + return TOPIC_REFRESH + + if(trait_choice in pref.pos_traits + pref.neu_traits + pref.neg_traits) conflict = instance.name 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 8b6cfd0b60..b0cf780d66 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 @@ -90,6 +90,13 @@ cost = -2 var_changes = list("siemens_coefficient" = 2.0) //This makes you extremely weak to tasers. +/datum/trait/haemophilia + name = "Haemophilia - Organics only" + desc = "When you bleed, you bleed a LOT. This trait is only for organics, buggy with synths!" + cost = -2 + var_changes = list("bloodloss_rate" = 2) + not_for_synths = 1 + /datum/trait/hollow name = "Hollow Bones/Aluminum Alloy" desc = "Your bones and robot limbs are much easier to break." 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 1be1ea0268..434fc8d846 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 @@ -5,6 +5,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 = 0 // Can freaking synths use those. //Proc can be overridden lower to include special changes, make sure to call up though for the vars changes /datum/trait/proc/apply(var/datum/species/S,var/mob/living/carbon/human/H)