Finish rewrite of domutcheck. Time to test this bitch.

Conflicts:
	code/game/gamemodes/setupgame.dm
This commit is contained in:
Rob Nelson
2013-12-08 19:46:05 -08:00
committed by ZomgPonies
parent 8327330cb9
commit b15d0213ac
4 changed files with 47 additions and 26 deletions
+17 -4
View File
@@ -6,7 +6,6 @@
// Gene is always activated.
/////////////////////
/datum/dna/gene/disability
name="DISABILITY"
@@ -22,17 +21,31 @@
// Activation message
var/activation_message=""
// Yay, you're no longer growing 3 arms
var/deactivation_message=""
/datum/dna/gene/disability/can_activate(var/mob/M,var/flags)
return 1 // Always set!
/datum/dna/gene/disability/activate(var/mob/living/carbon/M)
if(mutation)
/datum/dna/gene/disability/activate(var/mob/M, var/connected, var/flags)
if(mutation && !(mutation in M.mutations))
M.mutations.Add(mutation)
if(disability)
M.disabilities|=disability
if(mutation)
M.sdisabilities|=sdisability
M << "\red [activation_message]"
if(activation_message)
M << "\red [activation_message]"
/datum/dna/gene/disability/deactivate(var/mob/M, var/connected, var/flags)
if(mutation && (mutation in M.mutations))
M.mutations.Remove(mutation)
if(disability)
M.disabilities-=disability
if(mutation)
M.sdisabilities-=sdisability
if(deactivation_message)
M << "\red [deactivation_message]"
/datum/dna/gene/disability/hallucinate
name="Hallucinate"
+1 -1
View File
@@ -56,7 +56,7 @@
mutation=mMorph
initialize()
block=REMOTETALKBLOCK
block=MORPHBLOCK
activate(var/mob/M)
..(M)
+27 -21
View File
@@ -1,5 +1,3 @@
/proc/getAssignedBlock(var/name,var/list/blocksLeft, var/activity_bounds=DNA_DEFAULT_BOUNDS)
var/assigned = pick(blocksLeft)
blocksLeft.Remove(assigned)
@@ -19,6 +17,7 @@
//Thanks to nexis for the fancy code
// BITCH I AIN'T DONE YET
// SE blocks to assign.
var/list/numsToAssign=new()
for(var/i=1;i<STRUCDNASIZE;i++)
numsToAssign += i
@@ -53,26 +52,33 @@
SHOCKIMMUNITYBLOCK = getAssignedBlock("SHOCKIMMUNITY", numsToAssign)
SMALLSIZEBLOCK = getAssignedBlock("SMALLSIZE", numsToAssign, DNA_HARD_BOUNDS)
// HIDDEN MUTATIONS / SUPERPOWERS INITIALIZTION
// And the genes that actually do the work. (domutcheck improvements)
var/list/blocks_assigned=list()
for(var/gene_type in typesof(/datum/dna/gene)-/datum/dna/gene)
var/datum/dna/gene/G = new gene_type
if(G.block)
if(G.block in blocks_assigned)
warning("DNA2: Gene [G.name] trying to use already-assigned block [G.block] (used by [english_list(blocks_assigned[G.block])])")
dna_genes += G
if(!(G.block in blocks_assigned))
blocks_assigned[G.block]=list()
blocks_assigned[G.block]+=G.name
/*
for(var/x in typesof(/datum/mutations) - /datum/mutations)
var/datum/mutations/mut = new x
for(var/i = 1, i <= mut.required, i++)
var/datum/mutationreq/require = new/datum/mutationreq
require.block = rand(1, 13)
require.subblock = rand(1, 3)
// Create random requirement identification
require.reqID = pick("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", \
"B", "C", "D", "E", "F")
mut.requirements += require
global_mutations += mut// add to global mutations list!
*/
// Run AFTER genetics setup and AFTER species setup.
/proc/setup_species()
// SPECIES GENETICS FUN
for(var/name in all_species)
// I hate BYOND. Can't just call while it's in the list.
var/datum/species/species = all_species[name]
if(species.default_block_names.len>0)
testing("Setting up genetics for [species.name] (needs [english_list(species.default_block_names)])")
species.default_blocks.Cut()
for(var/block=1;block<STRUCDNASIZE;block++)
if(assigned_blocks[block] in species.default_block_names)
testing(" Found [assigned_blocks[block]] ([block])")
species.default_blocks.Add(block)
if(species.default_blocks.len)
all_species[name]=species
/proc/setupfactions()
@@ -42,6 +42,8 @@
// For grays
var/max_hurt_damage = 5 // Max melee damage dealt + 5 if hulk
var/list/default_mutations = list()
var/list/default_blocks = list() // Don't touch.
var/list/default_block_names = list() // Use this instead, using the names from setupgame.dm
var/list/abilities = list() // For species-derived or admin-given powers