mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 10:33:30 +01:00
Finish rewrite of domutcheck. Time to test this bitch.
Conflicts: code/game/gamemodes/setupgame.dm
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
mutation=mMorph
|
||||
|
||||
initialize()
|
||||
block=REMOTETALKBLOCK
|
||||
block=MORPHBLOCK
|
||||
|
||||
activate(var/mob/M)
|
||||
..(M)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user