DNA Vault Rework (#12455)

This commit is contained in:
Fox McCloud
2019-10-08 21:33:43 -04:00
committed by variableundefined
parent 29fb8dbe2e
commit 386e270122
10 changed files with 88 additions and 72 deletions
@@ -125,7 +125,7 @@
//Cut speed
T.visible_message("<span class='userdanger'>[user] starts moving slower!</span>")
var/datum/species/S = user.dna.species
S.slowdown += 1
S.speed_mod += 1
if(7)
//Throw
T.visible_message("<span class='userdanger'>Unseen forces throw [user]!</span>")
@@ -18,7 +18,6 @@
var/tail // Name of tail image in species effects icon file.
var/datum/unarmed_attack/unarmed //For empty hand harm-intent attack
var/unarmed_type = /datum/unarmed_attack
var/slowdown = 0 // Passive movement speed malus (or boost, if negative)
var/silent_steps = 0 // Stops step noises
var/cold_level_1 = 260 // Cold damage level 1 below this point.
@@ -52,7 +51,7 @@
var/brain_mod = 1 // Brain damage damage reduction/amplification
var/stamina_mod = 1
var/stun_mod = 1 // If a species is more/less impacated by stuns/weakens/paralysis
var/speedmod = 0 // this affects the race's speed. positive numbers make it move slower, negative numbers make it move faster
var/speed_mod = 0 // this affects the race's speed. positive numbers make it move slower, negative numbers make it move faster
var/blood_damage_type = OXY //What type of damage does this species take if it's low on blood?
var/obj/item/mutanthands
var/total_health = 100
@@ -232,8 +231,8 @@
gravity = 1
if(!ignoreslow && gravity)
if(slowdown)
. = slowdown
if(speed_mod)
. = speed_mod
if(H.wear_suit)
. += H.wear_suit.slowdown
@@ -7,7 +7,7 @@
species_traits = list(NO_BREATHE, NO_BLOOD, NO_PAIN, RADIMMUNE, NOGUNS, PIERCEIMMUNE)
dies_at_threshold = TRUE
slowdown = 2
speed_mod = 2
brute_mod = 0.45 //55% damage reduction
burn_mod = 0.45
tox_mod = 0.45
@@ -214,7 +214,7 @@
/datum/species/golem/gold
name = "Gold Golem"
golem_colour = rgb(204, 204, 0)
slowdown = 1
speed_mod = 1
brute_mod = 0.75 //25% damage reduction down from 55%
burn_mod = 0.75
tox_mod = 0.75
@@ -244,7 +244,7 @@
punchdamagelow = 12
punchdamagehigh = 21
punchstunthreshold = 18 //still 40% stun chance
slowdown = 4 //pretty fucking slow
speed_mod = 4 //pretty fucking slow
skinned_type = /obj/item/stack/ore/iron
info_text = "As a <span class='danger'>Plasteel Golem</span>, you are slower, but harder to stun, and hit very hard when punching."
prefix = "Plasteel"
@@ -300,7 +300,7 @@
skinned_type = /obj/item/stack/sheet/mineral/abductor
language = "Golem Mindlink"
default_language = "Golem Mindlink"
slowdown = 1 //faster
speed_mod = 1 //faster
info_text = "As an <span class='danger'>Alloy Golem</span>, you are made of advanced alien materials: you are faster and regenerate over time. You are, however, only able to speak telepathically to other alloy golems."
prefix = "Alien"
special_names = list("Outsider", "Technology", "Watcher", "Stranger") //ominous and unknown
@@ -116,5 +116,5 @@
language = "Sinta'unathi"
default_language = "Sinta'unathi"
slowdown = -0.80
speed_mod = -0.80
species_traits = list(NO_BREATHE, NOGUNS)
@@ -8,7 +8,7 @@
tail = "wryntail"
punchdamagelow = 0
punchdamagehigh = 1
slowdown = 1
speed_mod = 1
warning_low_pressure = -300
hazard_low_pressure = 1
blurb = "The wryn (r-in, singular r-in) are a humanoid race that possess many bee-like features. Originating from Alveare they \
@@ -42,7 +42,7 @@
clone_mod = 0.8
brain_mod = 0.8
stamina_mod = 0.8
speedmod = 1.6
speed_mod = 1.6
default_language = "Zombie"
var/heal_rate = 1
var/regen_cooldown = 0
+51 -28
View File
@@ -3,6 +3,13 @@
// DNA vault requires x animals ,y plants, z human dna
// DNA vaults require high tier stock parts and cold
// 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"
#define VAULT_FIREPROOF "Thermal Regulation"
#define VAULT_STUNTIME "Neural Repathing"
#define VAULT_ARMOUR "Bone Reinforcement"
#define VAULT_SPEED "Leg Muscle Stimulus"
#define VAULT_QUICK "Arm Muscle Stimulus"
/datum/station_goal/dna_vault
name = "DNA Vault"
@@ -115,7 +122,8 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/
build_path = /obj/machinery/dna_vault
origin_tech = "engineering=2;combat=2;bluespace=2" //No freebies!
req_components = list(
/obj/item/stock_parts/capacitor/quadratic = 5,
/obj/item/stock_parts/capacitor/super = 5,
/obj/item/stock_parts/manipulator/pico = 5,
/obj/item/stack/cable_coil = 2)
/obj/structure/filler
@@ -204,7 +212,7 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/
if(user in power_lottery)
return
var/list/L = list()
var/list/possible_powers = list(VAULT_SPACEIMMUNE,VAULT_XRAY,VAULT_TELEKINESIS,VAULT_PSYCHIC,VAULT_SPEED)
var/list/possible_powers = list(VAULT_TOXIN, VAULT_NOBREATH, VAULT_FIREPROOF, VAULT_STUNTIME, VAULT_ARMOUR, VAULT_SPEED, VAULT_QUICK)
L += pick_n_take(possible_powers)
L += pick_n_take(possible_powers)
power_lottery[user] = L
@@ -267,34 +275,49 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/
return
if(!completed)
return
if(!H.ignore_gene_stability)
to_chat(H, "<span class='notice'>[src] stabilizes your genes, granting you the ability to have multiple powers.</span>")
H.ignore_gene_stability = 1
var/datum/species/S = H.dna.species
if(NO_DNA in S.species_traits)
to_chat(H, "<span class='warning'>Error, no DNA detected.</span>")
return
switch(upgrade_type)
if(VAULT_SPACEIMMUNE)
to_chat(H, "<span class='notice'>You suddenly don't feel the need to breathe anymore. You also don't feel any cold anymore.</span>")
grant_power(H, BREATHLESSBLOCK, BREATHLESS)
grant_power(H, FIREBLOCK, COLDRES)
if(VAULT_XRAY)
to_chat(H, "<span class='notice'>You can suddenly see through walls.</span>")
grant_power(H, XRAYBLOCK, XRAY)
if(VAULT_TELEKINESIS)
to_chat(H, "<span class='notice'>You gain the ability to control objects from a distance.</span>")
grant_power(H, TELEBLOCK, TK)
if(VAULT_PSYCHIC)
to_chat(H, "<span class='notice'>Your mind expands, giving you psychic powers.</span>")
grant_power(H, REMOTETALKBLOCK, REMOTE_TALK)
grant_power(H, REMOTEVIEWBLOCK, REMOTE_VIEW)
grant_power(H, EMPATHBLOCK, EMPATH)
grant_power(H, PSYRESISTBLOCK, PSY_RESIST)
if(VAULT_TOXIN)
to_chat(H, "<span class='notice'>You feel resistant to airborne toxins.</span>")
var/obj/item/organ/internal/lungs/L = H.get_int_organ(/obj/item/organ/internal/lungs)
if(L)
L.tox_breath_dam_multiplier = 0
S.species_traits |= VIRUSIMMUNE
if(VAULT_NOBREATH)
to_chat(H, "<span class='notice'>Your lungs feel great.</span>")
S.species_traits |= NO_BREATHE
if(VAULT_FIREPROOF)
to_chat(H, "<span class='notice'>You feel fireproof.</span>")
S.burn_mod *= 0.5
S.species_traits |= RESISTHOT
if(VAULT_STUNTIME)
to_chat(H, "<span class='notice'>Nothing can keep you down for long.</span>")
S.stun_mod *= 0.5
if(VAULT_ARMOUR)
to_chat(H, "<span class='notice'>You feel tough.</span>")
S.brute_mod *= 0.7
S.burn_mod *= 0.7
S.tox_mod *= 0.7
S.oxy_mod *= 0.7
S.clone_mod *= 0.7
S.brain_mod *= 0.7
S.stamina_mod *= 0.7
S.species_traits |= PIERCEIMMUNE
if(VAULT_SPEED)
to_chat(H, "<span class='notice'>You feel very fast and agile.</span>")
grant_power(H, JUMPBLOCK, JUMPY)
grant_power(H, INCREASERUNBLOCK, RUN)
S.speed_mod = -1
if(VAULT_QUICK)
to_chat(H, "<span class='notice'>Your arms move as fast as lightning.</span>")
H.next_move_modifier = 0.5
power_lottery[H] = list()
/obj/machinery/dna_vault/proc/grant_power(mob/living/carbon/human/H, block, power)
H.dna.SetSEState(block, 1, 1)
H.mutations |= power
genemutcheck(H, block, null, MUTCHK_FORCED)
H.dna.default_blocks.Add(block) //prevent removal by mutadone
#undef VAULT_TOXIN
#undef VAULT_NOBREATH
#undef VAULT_FIREPROOF
#undef VAULT_STUNTIME
#undef VAULT_ARMOUR
#undef VAULT_SPEED
#undef VAULT_QUICK