Fix greys not getting REMOTETALK on roundstart.

This commit is contained in:
Rob Nelson
2013-11-30 13:25:38 -08:00
parent 2a6807a447
commit 62def89c74
5 changed files with 59 additions and 45 deletions

View File

@@ -14,51 +14,16 @@ var/global/list/assigned_blocks[STRUCDNASIZE]
BLOCKADD = rand(-300,300)
if (prob(75))
DIFFMUT = rand(0,20)
/*
var/list/avnums = new/list()
var/tempnum
avnums.Add(2)
avnums.Add(12)
avnums.Add(10)
avnums.Add(8)
avnums.Add(4)
avnums.Add(11)
avnums.Add(13)
avnums.Add(6)
tempnum = pick(avnums)
avnums.Remove(tempnum)
HULKBLOCK = tempnum
tempnum = pick(avnums)
avnums.Remove(tempnum)
TELEBLOCK = tempnum
tempnum = pick(avnums)
avnums.Remove(tempnum)
FIREBLOCK = tempnum
tempnum = pick(avnums)
avnums.Remove(tempnum)
XRAYBLOCK = tempnum
tempnum = pick(avnums)
avnums.Remove(tempnum)
CLUMSYBLOCK = tempnum
tempnum = pick(avnums)
avnums.Remove(tempnum)
FAKEBLOCK = tempnum
tempnum = pick(avnums)
avnums.Remove(tempnum)
DEAFBLOCK = tempnum
tempnum = pick(avnums)
avnums.Remove(tempnum)
BLINDBLOCK = tempnum
*/
//Thanks to nexis for the fancy code
var/list/numsToAssign=new()
for(var/i=1;i<STRUCDNASIZE;i++)
numsToAssign += i
testing("Assigning DNA blocks:")
message_admins("Assigning DNA blocks:")
//message_admins("Assigning DNA blocks:")
// Standard muts
BLINDBLOCK = getAssignedBlock("BLIND", numsToAssign)
DEAFBLOCK = getAssignedBlock("DEAF", numsToAssign)
@@ -91,7 +56,7 @@ var/global/list/assigned_blocks[STRUCDNASIZE]
// HIDDEN MUTATIONS / SUPERPOWERS INITIALIZTION
/*
/*
for(var/x in typesof(/datum/mutations) - /datum/mutations)
var/datum/mutations/mut = new x
@@ -108,8 +73,23 @@ var/global/list/assigned_blocks[STRUCDNASIZE]
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()

View File

@@ -1357,9 +1357,8 @@ mob/living/carbon/human/yank_out_object()
else
see_invisible = SEE_INVISIBLE_LIVING
//testing("Mutations = "+english_list(mutations))
mutations+=species.default_mutations
//testing("SpeciesMut + Mutations = "+english_list(mutations))
if(species.default_mutations.len>0 || species.default_blocks.len>0)
do_deferred_species_setup=1
spawn(0)
update_icons()
@@ -1367,4 +1366,5 @@ mob/living/carbon/human/yank_out_object()
if(species)
return 1
else
return 0
return 0

View File

@@ -29,7 +29,30 @@
var/prev_gender = null // Debug for plural genders
var/temperature_alert = 0
var/in_stasis = 0
var/do_deferred_species_setup=0
// Doing this during species init breaks shit.
/mob/living/carbon/human/proc/DeferredSpeciesSetup()
//testing("Mutations = "+english_list(mutations))
var/mut_update=0
if(species.default_mutations.len>0)
for(var/mutation in species.default_mutations)
if(!(mutation in mutations))
//src << "TESTING [__FILE__]:[__LINE__]: Added mutation [mutation]."
mutations.Add(mutation)
mut_update=1
if(species.default_blocks.len>0)
for(var/block in species.default_blocks)
// DNA2 should make this less of a clusterfuck.
if(!ismuton(block,src))
dna.struc_enzymes = setblock(dna.struc_enzymes,block,toggledblock(getblock(dna.struc_enzymes,block,3)),3)
//src << "TESTING [__FILE__]:[__LINE__]: Set block [block] to on."
mut_update=1
if(mut_update)
//src << "TESTING [__FILE__]:[__LINE__]: Forcing domutcheck() and update_mutations()."
domutcheck(src)
update_mutations()
//testing("SpeciesMut + Mutations = "+english_list(mutations))
/mob/living/carbon/human/Life()
set invisibility = 0
@@ -40,6 +63,10 @@
..()
if(do_deferred_species_setup)
DeferredSpeciesSetup()
do_deferred_species_setup=0
//Apparently, the person who wrote this code designed it so that
//blinded get reset each cycle and then get activated later in the
//code. Very ugly. I dont care. Moving this stuff here so its easy

View File

@@ -38,7 +38,9 @@
// For grays
var/max_hurt_damage = 5 // Max melee damage dealt + 5 if hulk
var/default_mutations = list()
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/flags = 0 // Various specific features.
@@ -111,12 +113,15 @@
eyes = "grey_eyes_s"
max_hurt_damage = 3 // From 5 (for humans)
default_mutations=list(mRemotetalk) // TK is also another candidate, but TK is overpowered as fuck.
primitive = /mob/living/carbon/monkey // TODO
flags = WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | CAN_BE_FAT
// Both must be set or it's only a 45% chance of manifesting.
default_mutations=list(mRemotetalk)
default_block_names=list("REMOTETALK")
/datum/species/skrell
name = "Skrell"
icobase = 'icons/mob/human_races/r_skrell.dmi'

View File

@@ -92,6 +92,8 @@
spawn(1)
master_controller.setup()
setup_species()
process_teleport_locs() //Sets up the wizard teleport locations
process_ghost_teleport_locs() //Sets up ghost teleport locations.