diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 4e5af5e504..4330be33eb 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -92,6 +92,7 @@ var/global/list/datum/dna/gene/dna_genes[0] var/custom_species var/base_species = "Human" var/list/species_traits = list() + var/blood_color = "#A10808" // VOREStation // New stuff @@ -171,6 +172,7 @@ var/global/list/datum/dna/gene/dna_genes[0] var/datum/species/custom/CS = character.species src.species_traits = CS.traits.Copy() src.base_species = CS.base_species + src.blood_color = CS.blood_color // +1 to account for the none-of-the-above possibility SetUIValueRange(DNA_UI_EAR_STYLE, ear_style + 1, ear_styles_list.len + 1, 1) diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm index 784898cd82..662a522d4a 100644 --- a/code/game/dna/dna2_helpers.dm +++ b/code/game/dna/dna2_helpers.dm @@ -203,7 +203,8 @@ H.custom_species = dna.custom_species if(istype(H.species,/datum/species/custom)) var/datum/species/custom/CS = H.species - CS.produceCopy(dna.base_species,dna.species_traits,src) + var/datum/species/custom/new_CS = CS.produceCopy(dna.base_species,dna.species_traits,src) + new_CS.blood_color = dna.blood_color // VOREStation Edit End diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm index 2b6776e57c..bccb13f432 100644 --- a/code/modules/client/preference_setup/vore/07_traits.dm +++ b/code/modules/client/preference_setup/vore/07_traits.dm @@ -5,6 +5,7 @@ /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 + var/blood_color = "#A10808" var/list/pos_traits = list() // What traits they've selected for their custom species var/list/neu_traits = list() @@ -25,6 +26,7 @@ S["pos_traits"] >> pref.pos_traits S["neu_traits"] >> pref.neu_traits S["neg_traits"] >> pref.neg_traits + S["blood_color"] >> pref.blood_color S["traits_cheating"]>> pref.traits_cheating S["max_traits"] >> pref.max_traits @@ -36,6 +38,7 @@ S["pos_traits"] << pref.pos_traits S["neu_traits"] << pref.neu_traits S["neg_traits"] << pref.neg_traits + S["blood_color"] << pref.blood_color S["traits_cheating"]<< pref.traits_cheating S["max_traits"] << pref.max_traits @@ -46,6 +49,8 @@ if(!pref.neu_traits) pref.neu_traits = list() if(!pref.neg_traits) pref.neg_traits = list() + pref.blood_color = sanitize_hexcolor(pref.blood_color, default="#A10808") + if(!pref.traits_cheating) pref.starting_trait_points = STARTING_SPECIES_POINTS pref.max_traits = MAX_SPECIES_TRAITS @@ -76,7 +81,10 @@ if(pref.species == "Custom Species") var/datum/species/custom/CS = character.species var/S = pref.custom_base ? pref.custom_base : "Human" - CS.produceCopy(S, pref.pos_traits + pref.neu_traits + pref.neg_traits, character) + var/datum/species/custom/new_CS = CS.produceCopy(S, pref.pos_traits + pref.neu_traits + pref.neg_traits, character) + + //Any additional non-trait settings can be applied here + new_CS.blood_color = pref.blood_color /datum/category_item/player_setup_item/vore/traits/content(var/mob/user) if(pref.species == "Custom Species" || pref.custom_species) @@ -87,6 +95,10 @@ . += "Icon Base: " . += "[pref.custom_base ? pref.custom_base : "Human"]
" + . += "Blood Color: " + . += "Set Color" + . += "R
" + var/points_left = pref.starting_trait_points var/traits_left = pref.max_traits for(var/T in pref.pos_traits + pref.neu_traits + pref.neg_traits) @@ -102,21 +114,21 @@ . += "" . += "Neutral Trait +
" . += "" . += "Negative Trait +
" . += "" /datum/category_item/player_setup_item/vore/traits/OnTopic(var/href,var/list/href_list, var/mob/user) @@ -137,11 +149,23 @@ return TOPIC_REFRESH else if(href_list["custom_base"]) - var/text_choice = input("Pick an icon set for your species:","Icon Base") in playable_species - whitelisted_species - "Custom Species" + var/text_choice = input("Pick an icon set for your species:","Icon Base") in playable_species - whitelisted_species - "Custom Species" - "Promethean" if(text_choice in playable_species) pref.custom_base = text_choice return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["blood_color"]) + var/color_choice = input("Pick a blood color (does not apply to synths)","Blood Color",pref.blood_color) as color + if(color_choice) + pref.blood_color = sanitize_hexcolor(color_choice, default="#A10808") + return TOPIC_REFRESH + + else if(href_list["blood_reset"]) + var/choice = alert("Reset blood color to human default (#A10808)?","Reset Blood Color","Reset","Cancel") + if(choice == "Reset") + pref.blood_color = "#A10808" + return TOPIC_REFRESH + else if(href_list["clicked_pos_trait"]) var/datum/trait/trait = text2path(href_list["clicked_pos_trait"]) var/choice = alert("Remove [initial(trait.name)] and regain [initial(trait.cost)] points?","Remove Trait","Remove","Cancel") 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 0a854e3456..647a070dff 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 @@ -2,13 +2,13 @@ name = "Slowdown" desc = "Allows you to move slower on average than baseline." cost = -1 - var_changes = list("slowdown" = 0.3) + var_changes = list("slowdown" = 0.5) /datum/trait/speed_slow_plus name = "Slowdown (Plus)" desc = "Allows you to move MUCH slower on average than baseline." cost = -2 - var_changes = list("slowdown" = 0.5) + var_changes = list("slowdown" = 1.0) /datum/trait/weakling name = "Weakling" 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 9c1c1519c8..93a9d1911f 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 @@ -2,13 +2,13 @@ name = "Haste" desc = "Allows you to move faster on average than baseline." cost = 2 - var_changes = list("slowdown" = -0.3) + var_changes = list("slowdown" = -0.5) /datum/trait/speed_fast_plus name = "Haste (Plus)" desc = "Allows you to move MUCH faster on average than baseline." - cost = 3 - var_changes = list("slowdown" = -0.5) + cost = 4 + var_changes = list("slowdown" = -1.0) /datum/trait/hardy name = "Hardy" @@ -72,4 +72,10 @@ name = "Burn Resist (Plus)" desc = "Adds some resistance to burn damage sources." cost = 2 - var_changes = list("burn_mod" = 0.70) \ No newline at end of file + var_changes = list("burn_mod" = 0.70) + +/datum/trait/photoresistant + name = "Photoresistant" + desc = "Decreases stun duration from flashes and other light-based stuns." + cost = 1 + var_changes = list("flash_mod" = 0.5)