Adds slime cores, replicator, extractor.

Replicator and extractor circuits currently need to be adjusted, as they require origin tech and components. This commit is being added simply to save any headaches that may occur do to data loss.
This commit is contained in:
Datraen
2016-05-13 13:28:57 -04:00
parent ad90c24965
commit a92d860aef
8 changed files with 244 additions and 22 deletions

View File

@@ -1,115 +0,0 @@
//Important definitions for xenos, traits datum.
//Definitions for gene grouping.
#define GENE_XENO_BIOCHEMISTRY "biochemistry"
#define GENE_XENO_HEALTH "health"
#define GENE_XENO_RESISTANCES "resistances"
#define GENE_XENO_INTERNAL "internal"
#define GENE_XENO_COLOR "color"
#define GENE_XENO_LEARN "learn"
#define GENE_XENO_SPEAK "speak"
#define GENE_XENO_SPEED "speed"
#define GENE_XENO_SPECIAL "special"
//Definitions for traits.
#define TRAIT_XENO_COLOR "color"
#define TRAIT_XENO_CHEMISTRY "chems"
#define TRAIT_XENO_CHEMVOL "chem_vol"
#define TRAIT_XENO_HEALTH "health"
#define TRAIT_XENO_HUNGER "hunger"
#define TRAIT_XENO_STARVEDAMAGE "starvedamage"
#define TRAIT_XENO_EATS "eats"
#define TRAIT_XENO_CHROMATIC "chrom"
#define TRAIT_XENO_HOSTILE "hostile"
#define TRAIT_XENO_BIOLUMESCENT "biolum"
#define TRAIT_XENO_BIO_COLOR "biocolor"
#define TRAIT_XENO_GLOW_STRENGTH "biostrength"
#define TRAIT_XENO_GLOW_RANGE "biorange"
#define TRAIT_XENO_TOXIC_CHEMS "tox_chems"
#define TRAIT_XENO_NUTRITIONAL_CHEMS "nutr_chems"
#define TRAIT_XENO_HEALING_CHEMS "heal_chems"
#define TRAIT_XENO_MUTATING_CHEMS "mut_chems"
#define TRAIT_XENO_SPEED "speed"
#define TRAIT_XENO_COLDRES "cold_resistance"
#define TRAIT_XENO_HEATRES "heat_resistance"
#define TRAIT_XENO_LEARNCHANCE "learn_chance"
#define TRAIT_XENO_CANLEARN "can_learn"
#define TRAIT_XENO_SPEAKCHANCE "speak_chance"
#define TRAIT_XENO_CANSPEAK "can_speak"
#define TRAIT_XENO_STRENGTH "melee_strength"
#define TRAIT_XENO_STR_RANGE "melee_range"
//Maleability defines.
#define MAX_MALEABLE 2
#define MINOR_MALEABLE 1
#define MIN_MALEABLE 0
var/global/list/xenoChemList = list("mutationtoxin",
"psilocybin",
"mindbreaker",
"impedrezene",
"cryptobiolin",
"serotronium",
"space_drugs",
"chloralhydrate",
"stoxin",
"mutagen",
"lexorin",
"pacid",
"cyanide",
"phoron",
"plasticide",
"amatoxin",
"carbon",
"radium",
"sacid",
"sugar",
"kelotane",
"dermaline",
"anti_toxin",
"dexalin",
"synaptizine",
"alkysine",
"imidazoline",
"peridaxon",
"rezadone")
/datum/xeno/traits
var/list/traits = list()
var/list/chemlist = list()
var/obj/chems
/datum/xeno/traits/proc/set_trait(var/trait, var/newval)
traits["[trait]"] = newval
return
/datum/xeno/traits/proc/get_trait(var/trait)
var/val = traits["[trait]"]
return val
/datum/xeno/traits/New()
..()
set_trait(TRAIT_XENO_COLOR, "#CACACA")
set_trait(TRAIT_XENO_CHEMVOL, 100)
set_trait(TRAIT_XENO_HEALTH, 20)
set_trait(TRAIT_XENO_HUNGER, 2)
set_trait(TRAIT_XENO_STARVEDAMAGE, 0)
set_trait(TRAIT_XENO_EATS, 1)
set_trait(TRAIT_XENO_CHROMATIC, 0)
set_trait(TRAIT_XENO_HOSTILE, 0)
set_trait(TRAIT_XENO_BIOLUMESCENT, 0)
set_trait(TRAIT_XENO_BIO_COLOR, "#CACACA")
set_trait(TRAIT_XENO_GLOW_STRENGTH, 0)
set_trait(TRAIT_XENO_GLOW_RANGE, 0)
set_trait(TRAIT_XENO_SPEED, 4)
set_trait(TRAIT_XENO_COLDRES, 20)
set_trait(TRAIT_XENO_HEATRES, 20)
set_trait(TRAIT_XENO_LEARNCHANCE, 100)
set_trait(TRAIT_XENO_CANLEARN, 1)
set_trait(TRAIT_XENO_SPEAKCHANCE, 1)
set_trait(TRAIT_XENO_CANSPEAK, 1)
set_trait(TRAIT_XENO_STRENGTH, 0)
set_trait(TRAIT_XENO_STR_RANGE, 0)
chems = new()
chems.create_reagents(traits[TRAIT_XENO_CHEMVOL])

View File

@@ -31,9 +31,9 @@ Slime definitions, Life and New live here.
universal_speak = 1
speak_chance = 1
speak = list("Hello?",
"Where's this going?",
"What's that?",
"What's in the box?",
"Where is this going?",
"What is that?",
"What is in the box?",
"Cargo.",
"Transport?",
"Special?",
@@ -81,4 +81,5 @@ Slime definitions, Life and New live here.
languages += L
speak += "[station_name()]?"
GenerateChild()
return 1
return 1

View File

@@ -0,0 +1,10 @@
/*
Slime core lives here, and related procs.
*/
/obj/item/slime/core
name = "slime core"
desc = "Gooey."
icon = 'icons/mob/slime2.dmi'
icon_state = "slime extract"
var/datum/xeno/traits/slimetraits

View File

@@ -118,11 +118,13 @@ Procs for targeting
return
if(learned_message) //Is it understood?
var/complete_message = ",[language.key] [message]"
speech_buffer.Add(complete_message)
log_debug("Added '[complete_message]'.")
if(!(complete_message in speak))
speech_buffer.Add(complete_message)
log_debug("Added '[complete_message]'.")
else
*/
speech_buffer.Add(message)
if(!(message in speak))
speech_buffer.Add(message)
..(message,verb,language,alt_name,italics,speaker)
/mob/living/simple_animal/xeno/proc/ProcessSpeechBuffer()

View File

@@ -73,19 +73,8 @@ Also includes Life and New
return 1 //Everything worked okay.
/mob/living/simple_animal/xeno/New()
var/traits
if(istype(loc, /mob/living/simple_animal/xeno))
var/mob/living/simple_animal/xeno/X = loc
traits = X.traitdat
/*
if(istype(loc, /obj/machinery/xenobio/replicator))
var/obj/machinery/xenobio/replicator/R = loc
traits = R.connected.traitdat
*/
if(!traits)
traitdat = new()
else
traitdat = traits
traitdat = new()
ProcessTraits()
@@ -99,4 +88,5 @@ Also includes Life and New
for(var/R in default_chems)
traitdat.chems.reagents.add_reagent("[R]", default_chems[R])
if(!health)
stat = DEAD
stat = DEAD