mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-25 04:57:47 +01:00
Better Block Injectors (#17128)
* Better Block Injectors * makes it pass * . * Update human_organs.dm * fixes blood v2 * save * gwah * update appearance * resolve * Update computers.dm
This commit is contained in:
@@ -140,6 +140,7 @@
|
||||
M.radiation += 50
|
||||
randmutb(M)
|
||||
domutcheck(M,null)
|
||||
M.UpdateAppearance()
|
||||
visible_message("\The [src.name] flashes violently before disintegrating!")
|
||||
spawn(0)
|
||||
qdel(s)
|
||||
|
||||
@@ -341,6 +341,7 @@ But for now, for what it's been used for, it works.
|
||||
// Turn off gene
|
||||
H.dna.SetSEState(gene.block,0)
|
||||
domutcheck(H,null,MUTCHK_FORCED)
|
||||
H.UpdateAppearance()
|
||||
H.update_mutations()
|
||||
if(H.species.name == SPECIES_VOX || SPECIES_ZADDAT) //Species that 'actually' require survival gear to live. The rest don't.
|
||||
H.species.equip_survival_gear(H)
|
||||
|
||||
@@ -150,11 +150,14 @@
|
||||
|
||||
// Traitgenes Injectors are randomized now due to no hardcoded genes. Split into good or bad, and then versions that specify what they do on the label.
|
||||
// Otherwise scroll down further for how to make unique injectors
|
||||
/obj/item/dnainjector/proc/pick_block(var/datum/gene/trait/G, var/labeled, var/allow_disable)
|
||||
/obj/item/dnainjector/proc/pick_block(var/datum/gene/trait/G, var/labeled, var/allow_disable, var/force_disable = FALSE)
|
||||
if(G)
|
||||
block = G.block
|
||||
datatype = DNA2_BUF_SE
|
||||
value = 0xFFF
|
||||
if(!force_disable)
|
||||
value = 0xFFF
|
||||
else
|
||||
value = 0x000
|
||||
if(allow_disable)
|
||||
value = pick(0x000,0xFFF)
|
||||
if(labeled)
|
||||
@@ -219,51 +222,131 @@
|
||||
// If you want a unique injector, use a subtype of these
|
||||
/obj/item/dnainjector/set_trait
|
||||
var/trait_path
|
||||
var/disabling = FALSE
|
||||
|
||||
/obj/item/dnainjector/set_trait/Initialize()
|
||||
var/G = get_gene_from_trait(trait_path)
|
||||
if(trait_path && G)
|
||||
pick_block( G, TRUE, FALSE)
|
||||
pick_block( G, TRUE, FALSE, disabling)
|
||||
else
|
||||
qdel(src)
|
||||
return
|
||||
. = ..()
|
||||
|
||||
// Only has the superpowers for loot tables and other rewards
|
||||
/obj/item/dnainjector/set_trait/hulk
|
||||
trait_path = /datum/trait/positive/superpower_hulk
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/xray
|
||||
trait_path = /datum/trait/positive/superpower_xray
|
||||
// Injectors for all original genes and some new ones
|
||||
/obj/item/dnainjector/set_trait/anxiety // stutter
|
||||
trait_path = /datum/trait/negative/disability_anxiety
|
||||
/obj/item/dnainjector/set_trait/anxiety/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/tk
|
||||
trait_path = /datum/trait/positive/superpower_tk
|
||||
/obj/item/dnainjector/set_trait/noprints // noprints
|
||||
trait_path = /datum/trait/positive/superpower_noprints
|
||||
/obj/item/dnainjector/set_trait/noprints/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/remotetalk
|
||||
trait_path = /datum/trait/positive/superpower_remotetalk
|
||||
/obj/item/dnainjector/set_trait/tourettes // tour
|
||||
trait_path = /datum/trait/negative/disability_tourettes
|
||||
/obj/item/dnainjector/set_trait/tourettes/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/coldadapt
|
||||
trait_path = /datum/trait/neutral/coldadapt
|
||||
/obj/item/dnainjector/set_trait/cough // cough
|
||||
trait_path = /datum/trait/negative/disability_cough
|
||||
/obj/item/dnainjector/set_trait/cough/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/hotadapt
|
||||
/obj/item/dnainjector/set_trait/nearsighted // glasses
|
||||
trait_path = /datum/trait/negative/disability_nearsighted
|
||||
/obj/item/dnainjector/set_trait/nearsighted/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/heatadapt // fire
|
||||
trait_path = /datum/trait/neutral/hotadapt
|
||||
/obj/item/dnainjector/set_trait/heatadapt/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/nobreathe
|
||||
trait_path = /datum/trait/positive/superpower_nobreathe
|
||||
/obj/item/dnainjector/set_trait/epilepsy // epi
|
||||
trait_path = /datum/trait/negative/disability_epilepsy
|
||||
/obj/item/dnainjector/set_trait/epilepsy/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/regenerate
|
||||
/obj/item/dnainjector/set_trait/morph // morph
|
||||
trait_path = /datum/trait/positive/superpower_morph
|
||||
/obj/item/dnainjector/set_trait/morph/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/regenerate // regenerate
|
||||
trait_path = /datum/trait/positive/superpower_regenerate
|
||||
/obj/item/dnainjector/set_trait/regenerate/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/haste
|
||||
/obj/item/dnainjector/set_trait/clumsy // clumsy
|
||||
trait_path = /datum/trait/negative/disability_clumsy
|
||||
/obj/item/dnainjector/set_trait/clumsy/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/coldadapt // insulated
|
||||
trait_path = /datum/trait/neutral/coldadapt
|
||||
/obj/item/dnainjector/set_trait/coldadapt/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/xray // xraymut
|
||||
trait_path = /datum/trait/positive/superpower_xray
|
||||
/obj/item/dnainjector/set_trait/xray/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/deaf // deafmut
|
||||
trait_path = /datum/trait/negative/disability_deaf
|
||||
/obj/item/dnainjector/set_trait/deaf/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/tk // telemut
|
||||
trait_path = /datum/trait/positive/superpower_tk
|
||||
/obj/item/dnainjector/set_trait/tk/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/haste // runfast
|
||||
trait_path = /datum/trait/positive/speed_fast
|
||||
/obj/item/dnainjector/set_trait/haste/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/flashproof
|
||||
/obj/item/dnainjector/set_trait/blind // blindmut
|
||||
trait_path = /datum/trait/negative/blindness
|
||||
/obj/item/dnainjector/set_trait/blind/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/nobreathe // nobreath
|
||||
trait_path = /datum/trait/positive/superpower_nobreathe
|
||||
/obj/item/dnainjector/set_trait/nobreathe/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/remoteview // remoteview
|
||||
trait_path = /datum/trait/positive/superpower_remoteview
|
||||
/obj/item/dnainjector/set_trait/remoteview/disable
|
||||
disabling = TRUE
|
||||
/obj/item/dnainjector/set_trait/flashproof // flashproof
|
||||
trait_path = /datum/trait/positive/superpower_flashproof
|
||||
/obj/item/dnainjector/set_trait/flashproof/disable
|
||||
disabling = TRUE
|
||||
|
||||
/* Not a gene on virgo
|
||||
/obj/item/dnainjector/set_trait/nonconduct
|
||||
trait_path = /datum/trait/positive/nonconductive_plus
|
||||
*/
|
||||
/obj/item/dnainjector/set_trait/hulk // hulk
|
||||
trait_path = /datum/trait/positive/superpower_hulk
|
||||
/obj/item/dnainjector/set_trait/hulk/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/table_passer
|
||||
/obj/item/dnainjector/set_trait/table_passer // midgit
|
||||
trait_path = /datum/trait/positive/table_passer
|
||||
/obj/item/dnainjector/set_trait/table_passer/disable
|
||||
disabling = TRUE
|
||||
|
||||
/obj/item/dnainjector/set_trait/remotetalk // remotetalk
|
||||
trait_path = /datum/trait/positive/superpower_remotetalk
|
||||
/obj/item/dnainjector/set_trait/remotetalk/disable
|
||||
disabling = TRUE
|
||||
/*
|
||||
/obj/item/dnainjector/set_trait/nonconduct // shock
|
||||
trait_path = /datum/trait/positive/nonconductive_plus
|
||||
/obj/item/dnainjector/set_trait/nonconduct/disable
|
||||
disabling = TRUE
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user