[MIRROR] [MDB Ignore] DNA Vaults power check [MDB IGNORE] (#15154)

* [MDB Ignore] DNA Vaults power check (#68540)

* Prevents people who already have a DNA vault trait from taking another.

Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>

* [MDB Ignore] DNA Vaults power check

Co-authored-by: Mooshimi <85910816+Mooshimi@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
This commit is contained in:
SkyratBot
2022-07-24 11:58:39 -07:00
committed by GitHub
co-authored by John Willard Mooshimi
parent 02f4d5616a
commit 23d62370fa
3 changed files with 17 additions and 9 deletions
+3
View File
@@ -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"
+4
View File
@@ -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,
+10 -9
View File
@@ -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)