mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 12:04:48 +01:00
DNA Vault Rework (#12455)
This commit is contained in:
committed by
variableundefined
parent
29fb8dbe2e
commit
386e270122
@@ -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
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user