Files
Fluffy 3dc4cce9c2 Minor span refactoring (#19177)
Minor span refactoring
2024-05-19 16:37:29 +00:00

175 lines
4.5 KiB
Plaintext

///////////////////////////////////
// POWERS
///////////////////////////////////
/datum/dna/gene/basic/nobreath
name="No Breathing"
activation_messages=list("You feel no need to breathe.")
mutation=mNobreath
/datum/dna/gene/basic/nobreath/New()
block = NOBREATHBLOCK
/datum/dna/gene/basic/remoteview
name="Remote Viewing"
activation_messages=list("Your mind expands.")
mutation=mRemote
/datum/dna/gene/basic/nobreath/activate(var/mob/M, var/connected, var/flags)
..(M,connected,flags)
add_verb(M, /mob/living/carbon/human/proc/remoteobserve)
/datum/dna/gene/basic/regenerate
name="Regenerate"
activation_messages=list("You feel better.")
mutation=mRegen
/datum/dna/gene/basic/regenerate/New()
block = REGENERATEBLOCK
/datum/dna/gene/basic/increaserun
name="Super Speed"
activation_messages=list("Your leg muscles pulsate.")
mutation=mRun
/datum/dna/gene/basic/increaserun/New()
block = INCREASERUNBLOCK
/datum/dna/gene/basic/remotetalk
name="Telepathy"
activation_messages=list("You expand your mind outwards.")
mutation=mRemotetalk
/datum/dna/gene/basic/remotetalk/New()
block = REMOTETALKBLOCK
/datum/dna/gene/basic/remotetalk/activate(var/mob/M, var/connected, var/flags)
..(M,connected,flags)
add_verb(M, /mob/living/carbon/human/proc/remotesay)
/datum/dna/gene/basic/morph
name="Morph"
activation_messages=list("Your skin feels strange.")
mutation=mMorph
/datum/dna/gene/basic/morph/New()
block=MORPHBLOCK
/datum/dna/gene/basic/morph/activate(var/mob/M)
..(M)
add_verb(M, /mob/living/carbon/human/proc/morph)
/* Not used on bay
/datum/dna/gene/basic/heat_resist
name="Heat Resistance"
activation_messages=list("Your skin is icy to the touch.")
mutation=mHeatres
/datum/dna/gene/basic/heat_resist/New()
block=COLDBLOCK
/datum/dna/gene/basic/heat_resist/can_activate(var/mob/M,var/flags)
if(flags & MUTCHK_FORCED)
return !(/datum/dna/gene/basic/cold_resist in M.active_genes)
// Probability check
var/_prob = 15
if(COLD_RESISTANCE in M.mutations)
_prob=5
if(probinj(_prob,(flags&MUTCHK_FORCED)))
return 1
/datum/dna/gene/basic/heat_resist/OnDrawUnderlays(var/mob/M,var/g,var/fat)
return "cold[fat]_s"
*/
/datum/dna/gene/basic/cold_resist
name="Cold Resistance"
activation_messages=list("Your body is filled with warmth.")
mutation=COLD_RESISTANCE
/datum/dna/gene/basic/cold_resist/New()
block = FIREBLOCK
/datum/dna/gene/basic/cold_resist/can_activate(var/mob/M,var/flags)
if(flags & MUTCHK_FORCED)
return 1
// return !(/datum/dna/gene/basic/heat_resist in M.active_genes)
// Probability check
var/_prob=30
//if(mHeatres in M.mutations)
// _prob=5
if(probinj(_prob,(flags&MUTCHK_FORCED)))
return 1
/datum/dna/gene/basic/cold_resist/OnDrawUnderlays(var/mob/M,var/g,var/fat)
return "fire[fat]_s"
/datum/dna/gene/basic/noprints
name="No Prints"
activation_messages=list("Your fingers feel numb.")
mutation=mFingerprints
/datum/dna/gene/basic/noprints/New()
block = NOPRINTSBLOCK
/datum/dna/gene/basic/noshock
name="Shock Immunity"
activation_messages=list("Your skin feels strange.")
mutation=mShock
/datum/dna/gene/basic/noshock/New()
block = SHOCKIMMUNITYBLOCK
/datum/dna/gene/basic/midget
name="Midget"
activation_messages=list("Your skin feels rubbery.")
mutation=mSmallsize
/datum/dna/gene/basic/midget/New()
block=SMALLSIZEBLOCK
/datum/dna/gene/basic/midget/can_activate(var/mob/M,var/flags)
// Can't be big and small.
if((M.mutations & HULK))
return 0
return ..(M,flags)
/datum/dna/gene/basic/midget/activate(var/mob/M, var/connected, var/flags)
..(M,connected,flags)
M.pass_flags |= 1
/datum/dna/gene/basic/midget/deactivate(var/mob/M, var/connected, var/flags)
..(M,connected,flags)
M.pass_flags &= ~1 //This may cause issues down the track, but offhand I can't think of any other way for humans to get passtable short of varediting so it should be fine. ~Z
/datum/dna/gene/basic/hulk
name="Hulk"
activation_messages=list("Your muscles hurt.")
mutation=HULK
/datum/dna/gene/basic/hulk/New()
block=HULKBLOCK
/datum/dna/gene/basic/hulk/can_activate(var/mob/M,var/flags)
// Can't be big and small.
if((M.mutations & mSmallsize))
return 0
return ..(M,flags)
/datum/dna/gene/basic/hulk/OnMobLife(var/mob/living/carbon/human/M)
if(!istype(M)) return
if(M.health <= 25)
M.mutations &= ~HULK
M.update_mutations() //update our mutation overlays
to_chat(M, SPAN_WARNING("You suddenly feel very weak."))
M.Weaken(3)
M.emote("collapse")
/datum/dna/gene/basic/xray
name="X-Ray Vision"
activation_messages=list("The walls suddenly disappear.")
mutation=XRAY
/datum/dna/gene/basic/xray/New()
block = XRAYBLOCK