From b15d0213ac4f9d00a83b797497f5b4ed1704424e Mon Sep 17 00:00:00 2001 From: Rob Nelson Date: Sun, 8 Dec 2013 19:46:05 -0800 Subject: [PATCH] Finish rewrite of domutcheck. Time to test this bitch. Conflicts: code/game/gamemodes/setupgame.dm --- code/game/dna/genes/disabilities.dm | 21 ++++++++-- code/game/dna/genes/powers.dm | 2 +- code/game/gamemodes/setupgame.dm | 48 +++++++++++++---------- code/modules/mob/living/carbon/species.dm | 2 + 4 files changed, 47 insertions(+), 26 deletions(-) diff --git a/code/game/dna/genes/disabilities.dm b/code/game/dna/genes/disabilities.dm index 3243527557a..4eae2f26b51 100644 --- a/code/game/dna/genes/disabilities.dm +++ b/code/game/dna/genes/disabilities.dm @@ -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" diff --git a/code/game/dna/genes/powers.dm b/code/game/dna/genes/powers.dm index 24e7f03dd52..8035fbac059 100644 --- a/code/game/dna/genes/powers.dm +++ b/code/game/dna/genes/powers.dm @@ -56,7 +56,7 @@ mutation=mMorph initialize() - block=REMOTETALKBLOCK + block=MORPHBLOCK activate(var/mob/M) ..(M) diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index f98019be5bd..8ad294a174f 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -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