From c7c9764319edd30b427c011143f7ba0ba04716ee Mon Sep 17 00:00:00 2001 From: lbnesquik Date: Sun, 5 Jul 2020 23:09:40 +0200 Subject: [PATCH 1/3] Add a check to custom virgo traits to limit synths from taking certain ones. --- .../client/preference_setup/vore/07_traits.dm | 13 +++++++++++++ .../carbon/human/species/station/traits_vr/trait.dm | 1 + 2 files changed, 14 insertions(+) diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm index 6462a142c7d..e653166b7ad 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/trait.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/trait.dm index 1be1ea0268a..434fc8d846f 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) From da9e9fec8f252b2ebfd6016257076bd21735c4ff Mon Sep 17 00:00:00 2001 From: lbnesquik Date: Sun, 5 Jul 2020 23:09:58 +0200 Subject: [PATCH 2/3] Bring back hemophilia. No, it's not a crime! --- .../carbon/human/species/station/traits_vr/negative.dm | 7 +++++++ 1 file changed, 7 insertions(+) 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 402c1928ddd..a98eec210f5 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" + desc = "When you bleed, you bleed a LOT." + 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." From a73f330d59a524cfffa66cb1c84a3c1b1ac80a99 Mon Sep 17 00:00:00 2001 From: lbnesquik Date: Sun, 5 Jul 2020 23:24:35 +0200 Subject: [PATCH 3/3] Clarify that this isn't for goddamn replicants. --- .../living/carbon/human/species/station/traits_vr/negative.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 a98eec210f5..5a5270bc2c3 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 @@ -91,8 +91,8 @@ var_changes = list("siemens_coefficient" = 2.0) //This makes you extremely weak to tasers. /datum/trait/haemophilia - name = "Haemophilia" - desc = "When you bleed, you bleed a LOT." + 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