diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 0f0c3aa1b6b..ade169659c5 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -188,6 +188,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_STABLELIVER "stable_liver" #define TRAIT_VATGROWN "vatgrown" #define TRAIT_RESISTHEAT "resist_heat" +///For when you've gotten a power from a dna vault +#define TRAIT_USED_DNA_VAULT "used_dna_vault" /// For when you want to be able to touch hot things, but still want fire to be an issue. #define TRAIT_RESISTHEATHANDS "resist_heat_handsonly" #define TRAIT_RESISTCOLD "resist_cold" @@ -772,6 +774,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define NO_GRAVITY_TRAIT "no-gravity" #define LEAPING_TRAIT "leaping" #define LEAPER_BUBBLE_TRAIT "leaper-bubble" +#define DNA_VAULT_TRAIT "dna_vault" /// sticky nodrop sounds like a bad soundcloud rapper's name #define STICKY_NODROP "sticky-nodrop" #define SKILLCHIP_TRAIT "skillchip" diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 8b16cfb63bc..171d55a84ee 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -10,7 +10,10 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_FLOORED" = TRAIT_FLOORED, "TRAIT_FORCED_STANDING" = TRAIT_FORCED_STANDING, "TRAIT_HANDS_BLOCKED" = TRAIT_HANDS_BLOCKED, + "TRAIT_UI_BLOCKED" = TRAIT_UI_BLOCKED, + "TRAIT_PULL_BLOCKED" = TRAIT_PULL_BLOCKED, "TRAIT_RESTRAINED" = TRAIT_RESTRAINED, + "TRAIT_PERFECT_ATTACKER" = TRAIT_PERFECT_ATTACKER, "TRAIT_INCAPACITATED" = TRAIT_INCAPACITATED, "TRAIT_CRITICAL_CONDITION" = TRAIT_CRITICAL_CONDITION, "TRAIT_LITERATE" = TRAIT_LITERATE, @@ -46,6 +49,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_STABLEHEART" = TRAIT_STABLEHEART, "TRAIT_STABLELIVER" = TRAIT_STABLELIVER, "TRAIT_RESISTHEAT" = TRAIT_RESISTHEAT, + "TRAIT_USED_DNA_VAULT" = TRAIT_USED_DNA_VAULT, "TRAIT_RESISTHEATHANDS" = TRAIT_RESISTHEATHANDS, "TRAIT_RESISTCOLD" = TRAIT_RESISTCOLD, "TRAIT_RESISTHIGHPRESSURE" = TRAIT_RESISTHIGHPRESSURE, diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index 31569b609c5..ca0bb510b15 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -1,7 +1,7 @@ //Crew has to create dna vault // Cargo can order DNA samplers + DNA vault boards -// DNA vault requires x animals ,y plants, z human dna -// DNA vaults require high tier stock parts and cold +// DNA vault requires x animals, y plants, z human dna +// DNA vaults require high tier stock parts // After completion each crewmember can receive single upgrade chosen out of 2 for the mob. #define VAULT_TOXIN "Toxin Adaptation" #define VAULT_NOBREATH "Lung Enhancement" @@ -186,8 +186,8 @@ else return ..() -/obj/machinery/dna_vault/proc/upgrade(mob/living/carbon/human/H,upgrade_type) - if(!(upgrade_type in power_lottery[H])) +/obj/machinery/dna_vault/proc/upgrade(mob/living/carbon/human/H, upgrade_type) + if(!(upgrade_type in power_lottery[H])||(HAS_TRAIT(H, TRAIT_USED_DNA_VAULT))) return var/datum/species/S = H.dna.species switch(upgrade_type) @@ -197,27 +197,28 @@ var/obj/item/organ/internal/lungs/L = H.internal_organs_slot[ORGAN_SLOT_LUNGS] L.plas_breath_dam_min = 0 L.plas_breath_dam_max = 0 - ADD_TRAIT(H, TRAIT_VIRUSIMMUNE, "dna_vault") + ADD_TRAIT(H, TRAIT_VIRUSIMMUNE, DNA_VAULT_TRAIT) if(VAULT_NOBREATH) to_chat(H, span_notice("Your lungs feel great.")) - ADD_TRAIT(H, TRAIT_NOBREATH, "dna_vault") + ADD_TRAIT(H, TRAIT_NOBREATH, DNA_VAULT_TRAIT) if(VAULT_FIREPROOF) to_chat(H, span_notice("You feel fireproof.")) S.burnmod = 0.5 - ADD_TRAIT(H, TRAIT_RESISTHEAT, "dna_vault") - ADD_TRAIT(H, TRAIT_NOFIRE, "dna_vault") + ADD_TRAIT(H, TRAIT_RESISTHEAT, DNA_VAULT_TRAIT) + ADD_TRAIT(H, TRAIT_NOFIRE, DNA_VAULT_TRAIT) if(VAULT_STUNTIME) to_chat(H, span_notice("Nothing can keep you down for long.")) S.stunmod = 0.5 if(VAULT_ARMOUR) to_chat(H, span_notice("You feel tough.")) S.armor = 30 - ADD_TRAIT(H, TRAIT_PIERCEIMMUNE, "dna_vault") + ADD_TRAIT(H, TRAIT_PIERCEIMMUNE, DNA_VAULT_TRAIT) if(VAULT_SPEED) to_chat(H, span_notice("Your legs feel faster.")) H.add_movespeed_modifier(/datum/movespeed_modifier/dna_vault_speedup) if(VAULT_QUICK) to_chat(H, span_notice("Your arms move as fast as lightning.")) H.next_move_modifier = 0.5 + ADD_TRAIT(H, TRAIT_USED_DNA_VAULT, DNA_VAULT_TRAIT) power_lottery[H] = list() use_power(active_power_usage)