mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 18:44:48 +01:00
Make good/bad mutations dynamically assigned.
Conflicts: code/game/dna/dna2_helpers.dm
This commit is contained in:
@@ -45,6 +45,9 @@ var/global/list/assigned_blocks[DNA_SE_LENGTH]
|
||||
|
||||
var/global/list/datum/dna/gene/dna_genes[0]
|
||||
|
||||
var/global/list/good_blocks[0]
|
||||
var/global/list/bad_blocks[0]
|
||||
|
||||
/////////////////
|
||||
// GENE DEFINES
|
||||
/////////////////
|
||||
|
||||
@@ -24,14 +24,14 @@
|
||||
/proc/randmutb(var/mob/living/M)
|
||||
if(!M) return
|
||||
M.dna.check_integrity()
|
||||
var/block = pick(GLASSESBLOCK,COUGHBLOCK,FAKEBLOCK,NERVOUSBLOCK,CLUMSYBLOCK,TWITCHBLOCK,HEADACHEBLOCK,BLINDBLOCK,DEAFBLOCK,HALLUCINATIONBLOCK)
|
||||
var/block = pick(bad_blocks)
|
||||
M.dna.SetSEState(block, 1)
|
||||
|
||||
// Give Random Good Mutation to M
|
||||
/proc/randmutg(var/mob/living/M)
|
||||
if(!M) return
|
||||
M.dna.check_integrity()
|
||||
var/block = pick(HULKBLOCK,XRAYBLOCK,FIREBLOCK,COLDBLOCK,TELEBLOCK,NOBREATHBLOCK,REMOTEVIEWBLOCK,REGENERATEBLOCK,INCREASERUNBLOCK,REMOTETALKBLOCK,MORPHBLOCK,NOPRINTSBLOCK,SHOCKIMMUNITYBLOCK,SMALLSIZEBLOCK)
|
||||
var/block = pick(good_blocks)
|
||||
M.dna.SetSEState(block, 1)
|
||||
|
||||
// Random Appearance Mutation
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
/proc/getAssignedBlock(var/name,var/list/blocksLeft, var/activity_bounds=DNA_DEFAULT_BOUNDS)
|
||||
/proc/getAssignedBlock(var/name,var/list/blocksLeft, var/activity_bounds=DNA_DEFAULT_BOUNDS, var/good=0)
|
||||
if(blocksLeft.len==0)
|
||||
warning("[name]: No more blocks left to assign!")
|
||||
return 0
|
||||
var/assigned = pick(blocksLeft)
|
||||
blocksLeft.Remove(assigned)
|
||||
if(good)
|
||||
good_blocks += assigned
|
||||
else
|
||||
bad_blocks += assigned
|
||||
assigned_blocks[assigned]=name
|
||||
dna_activity_bounds[assigned]=activity_bounds
|
||||
//Debug message_admins("[name] assigned to block #[assigned].")
|
||||
@@ -32,10 +36,10 @@
|
||||
// Standard muts
|
||||
BLINDBLOCK = getAssignedBlock("BLIND", numsToAssign)
|
||||
DEAFBLOCK = getAssignedBlock("DEAF", numsToAssign)
|
||||
HULKBLOCK = getAssignedBlock("HULK", numsToAssign, DNA_HARD_BOUNDS)
|
||||
TELEBLOCK = getAssignedBlock("TELE", numsToAssign, DNA_HARD_BOUNDS)
|
||||
FIREBLOCK = getAssignedBlock("FIRE", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
XRAYBLOCK = getAssignedBlock("XRAY", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
HULKBLOCK = getAssignedBlock("HULK", numsToAssign, DNA_HARD_BOUNDS, good=1)
|
||||
TELEBLOCK = getAssignedBlock("TELE", numsToAssign, DNA_HARD_BOUNDS, good=1)
|
||||
FIREBLOCK = getAssignedBlock("FIRE", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
XRAYBLOCK = getAssignedBlock("XRAY", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
CLUMSYBLOCK = getAssignedBlock("CLUMSY", numsToAssign)
|
||||
FAKEBLOCK = getAssignedBlock("FAKE", numsToAssign)
|
||||
COUGHBLOCK = getAssignedBlock("COUGH", numsToAssign)
|
||||
@@ -46,17 +50,17 @@
|
||||
|
||||
// Bay muts
|
||||
HEADACHEBLOCK = getAssignedBlock("HEADACHE", numsToAssign)
|
||||
NOBREATHBLOCK = getAssignedBlock("NOBREATH", numsToAssign, DNA_HARD_BOUNDS)
|
||||
REMOTEVIEWBLOCK = getAssignedBlock("REMOTEVIEW", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
REGENERATEBLOCK = getAssignedBlock("REGENERATE", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
INCREASERUNBLOCK = getAssignedBlock("INCREASERUN", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
REMOTETALKBLOCK = getAssignedBlock("REMOTETALK", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
MORPHBLOCK = getAssignedBlock("MORPH", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
COLDBLOCK = getAssignedBlock("COLD", numsToAssign)
|
||||
NOBREATHBLOCK = getAssignedBlock("NOBREATH", numsToAssign, DNA_HARD_BOUNDS, good=1)
|
||||
REMOTEVIEWBLOCK = getAssignedBlock("REMOTEVIEW", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
REGENERATEBLOCK = getAssignedBlock("REGENERATE", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
INCREASERUNBLOCK = getAssignedBlock("INCREASERUN", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
REMOTETALKBLOCK = getAssignedBlock("REMOTETALK", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
MORPHBLOCK = getAssignedBlock("MORPH", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
COLDBLOCK = getAssignedBlock("COLD", numsToAssign, good=1)
|
||||
HALLUCINATIONBLOCK = getAssignedBlock("HALLUCINATION", numsToAssign)
|
||||
NOPRINTSBLOCK = getAssignedBlock("NOPRINTS", numsToAssign, DNA_HARD_BOUNDS)
|
||||
SHOCKIMMUNITYBLOCK = getAssignedBlock("SHOCKIMMUNITY", numsToAssign)
|
||||
SMALLSIZEBLOCK = getAssignedBlock("SMALLSIZE", numsToAssign, DNA_HARD_BOUNDS)
|
||||
NOPRINTSBLOCK = getAssignedBlock("NOPRINTS", numsToAssign, DNA_HARD_BOUNDS, good=1)
|
||||
SHOCKIMMUNITYBLOCK = getAssignedBlock("SHOCKIMMUNITY", numsToAssign, good=1)
|
||||
SMALLSIZEBLOCK = getAssignedBlock("SMALLSIZE", numsToAssign, DNA_HARD_BOUNDS, good=1)
|
||||
|
||||
//
|
||||
// Goon muts
|
||||
@@ -70,23 +74,23 @@
|
||||
CHAVBLOCK = getAssignedBlock("CHAV", numsToAssign)
|
||||
SWEDEBLOCK = getAssignedBlock("SWEDE", numsToAssign)
|
||||
SCRAMBLEBLOCK = getAssignedBlock("SCRAMBLE", numsToAssign)
|
||||
TOXICFARTBLOCK = getAssignedBlock("TOXICFART", numsToAssign)
|
||||
STRONGBLOCK = getAssignedBlock("STRONG", numsToAssign)
|
||||
TOXICFARTBLOCK = getAssignedBlock("TOXICFART", numsToAssign, good=1)
|
||||
STRONGBLOCK = getAssignedBlock("STRONG", numsToAssign, good=1)
|
||||
HORNSBLOCK = getAssignedBlock("HORNS", numsToAssign)
|
||||
|
||||
// Powers
|
||||
SOBERBLOCK = getAssignedBlock("SOBER", numsToAssign)
|
||||
PSYRESISTBLOCK = getAssignedBlock("PSYRESIST", numsToAssign, DNA_HARD_BOUNDS)
|
||||
SHADOWBLOCK = getAssignedBlock("SHADOW", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
CHAMELEONBLOCK = getAssignedBlock("CHAMELEON", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
CRYOBLOCK = getAssignedBlock("CRYO", numsToAssign, DNA_HARD_BOUNDS)
|
||||
EATBLOCK = getAssignedBlock("EAT", numsToAssign, DNA_HARD_BOUNDS)
|
||||
JUMPBLOCK = getAssignedBlock("JUMP", numsToAssign, DNA_HARD_BOUNDS)
|
||||
MELTBLOCK = getAssignedBlock("MELT", numsToAssign)
|
||||
IMMOLATEBLOCK = getAssignedBlock("IMMOLATE", numsToAssign)
|
||||
EMPATHBLOCK = getAssignedBlock("EMPATH", numsToAssign, DNA_HARD_BOUNDS)
|
||||
SUPERFARTBLOCK = getAssignedBlock("SUPERFART", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
POLYMORPHBLOCK = getAssignedBlock("POLYMORPH", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
SOBERBLOCK = getAssignedBlock("SOBER", numsToAssign, good=1)
|
||||
PSYRESISTBLOCK = getAssignedBlock("PSYRESIST", numsToAssign, DNA_HARD_BOUNDS, good=1)
|
||||
SHADOWBLOCK = getAssignedBlock("SHADOW", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
CHAMELEONBLOCK = getAssignedBlock("CHAMELEON", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
CRYOBLOCK = getAssignedBlock("CRYO", numsToAssign, DNA_HARD_BOUNDS, good=1)
|
||||
EATBLOCK = getAssignedBlock("EAT", numsToAssign, DNA_HARD_BOUNDS, good=1)
|
||||
JUMPBLOCK = getAssignedBlock("JUMP", numsToAssign, DNA_HARD_BOUNDS, good=1)
|
||||
MELTBLOCK = getAssignedBlock("MELT", numsToAssign, good=1)
|
||||
IMMOLATEBLOCK = getAssignedBlock("IMMOLATE", numsToAssign, good=1)
|
||||
EMPATHBLOCK = getAssignedBlock("EMPATH", numsToAssign, DNA_HARD_BOUNDS, good=1)
|
||||
SUPERFARTBLOCK = getAssignedBlock("SUPERFART", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
POLYMORPHBLOCK = getAssignedBlock("POLYMORPH", numsToAssign, DNA_HARDER_BOUNDS, good=1)
|
||||
|
||||
//
|
||||
// Static Blocks
|
||||
|
||||
Reference in New Issue
Block a user