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:
Cameron Lennox
2025-02-13 06:27:14 -05:00
committed by GitHub
parent f2284b7272
commit 96381f94f1
26 changed files with 149 additions and 32 deletions
+1
View File
@@ -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)
+108 -25
View File
@@ -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
*/