Merge remote-tracking branch 'refs/remotes/Citadel-Station-13/master'

This commit is contained in:
Poojawa
2016-08-10 06:54:21 -05:00
20 changed files with 369 additions and 70 deletions

View File

@@ -23,23 +23,25 @@
#define FRIDAY_13TH "Friday the 13th"
//Human Overlays Indexes/////////
#define MUTATIONS_LAYER 26 //mutations. Tk headglows, cold resistance glow, etc
#define BODY_BEHIND_LAYER 25 //certain mutantrace features (tail when looking south) that must appear behind the body parts
#define BODYPARTS_LAYER 24 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define BODY_ADJ_LAYER 23 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define BODY_LAYER 22 //underwear, undershirts, socks, eyes, lips(makeup)
#define FRONT_MUTATIONS_LAYER 21 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 20 //damage indicators (cuts and burns)
#define UNIFORM_LAYER 19
#define ID_LAYER 18
#define SHOES_LAYER 17
#define GLOVES_LAYER 16
#define EARS_LAYER 15
#define SUIT_LAYER 14
#define GLASSES_LAYER 13
#define BELT_LAYER 12 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 11
#define BACK_LAYER 10
#define SPECIES_LAYER 28
#define MUTATIONS_LAYER 27 //mutations. Tk headglows, cold resistance glow, etc
#define BODY_BEHIND_LAYER 26 //certain mutantrace features (tail when looking south) that must appear behind the body parts
#define BODYPARTS_LAYER 25 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define BODY_ADJ_LAYER 24 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define BODY_LAYER 23 //underwear, undershirts, socks, eyes, lips(makeup)
#define FRONT_MUTATIONS_LAYER 22 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 21 //damage indicators (cuts and burns)
#define UNIFORM_LAYER 20
#define ID_LAYER 19
#define SHOES_LAYER 18
#define GLOVES_LAYER 17
#define EARS_LAYER 16
#define SUIT_LAYER 15
#define GLASSES_LAYER 14
#define BELT_LAYER 13 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 12
#define BACK_LAYER 11
#define TAIL_LAYER 10
#define HAIR_LAYER 9 //TODO: make part of head layer?
#define FACEMASK_LAYER 8
#define HEAD_LAYER 7
@@ -49,7 +51,7 @@
#define R_HAND_LAYER 3 //Having the two hands seperate seems rather silly, merge them together? It'll allow for code to be reused on mobs with arbitarily many hands
#define BODY_FRONT_LAYER 2
#define FIRE_LAYER 1 //If you're on fire
#define TOTAL_LAYERS 26 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
#define TOTAL_LAYERS 28 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
//Human Overlay Index Shortcuts for alternate_worn_layer, layers
//Because I *KNOW* somebody will think layer+1 means "above"

View File

@@ -0,0 +1,150 @@
// Overhauled vore system
/* #define DM_HOLD "Hold"
#define DM_DIGEST "Digest"
#define DM_HEAL "Heal"
#define DM_ABSORB "Absorb"
#define DM_DIGESTF "Fast Digest"
#define VORE_STRUGGLE_EMOTE_CHANCE 40
var/global/list/player_sizes_list = list("Macro" = RESIZE_HUGE, "Big" = RESIZE_BIG, "Normal" = RESIZE_NORMAL, "Small" = RESIZE_SMALL, "Tiny" = RESIZE_TINY)
var/global/list/digestion_sounds = list(
'sound/vore/digest1.ogg',
'sound/vore/digest2.ogg',
'sound/vore/digest3.ogg',
'sound/vore/digest4.ogg',
'sound/vore/digest5.ogg',
'sound/vore/digest6.ogg',
'sound/vore/digest7.ogg',
'sound/vore/digest8.ogg',
'sound/vore/digest9.ogg',
'sound/vore/digest10.ogg',
'sound/vore/digest11.ogg',
'sound/vore/digest12.ogg')
var/global/list/death_sounds = list(
'sound/vore/death1.ogg',
'sound/vore/death2.ogg',
'sound/vore/death3.ogg',
'sound/vore/death4.ogg',
'sound/vore/death5.ogg',
'sound/vore/death6.ogg',
'sound/vore/death7.ogg',
'sound/vore/death8.ogg',
'sound/vore/death9.ogg',
'sound/vore/death10.ogg')
*/
//Species listing
#define iscanine(A) (is_species(A, /datum/species/canine))
#define isfeline(A) (is_species(A, /datum/species/feline))
#define isavian(A) (is_species(A, /datum/species/avian))
#define isrodent(A) (is_species(A, /datum/species/rodent))
#define isherbivorous(A) (is_species(A, /datum/species/herbivorous))
#define isexotic(A) (is_species(A, /datum/species/exotic))
var/list/canine_species = list (
anubis,
corgi,
coyote,
dalmatian,
fennec,
fox,
husky,
wolf,
sheperd,
lab,
otusian
)
var/list/feline_species = list (
panther,
tajaran,
smilodon
)
var/list/avian_species = list (
corvid,
hawk
)
var/list/lizard_species = list (
crocodile,
drake,
gria,
lizard,
naga,
turtle,
shark
)
var/list/rodent_species = list (
aramdillo,
beaver,
jackalope,
leporid,
murid,
otter,
porcupine,
possum,
raccoon,
roorat,
skunk,
squirrel
)
var/list/herbivorous_species = list (
boar,
capra,
cow,
deer,
hippo,
kangaroo,
pig
)
var/list/exotic_species = list (
alien,
carp,
drider,
glowfen,
jelly,
moth,
plant,
seaslug,
slime,
)
var/list/taur = list (
panther,
tajaran,
horse,
lab,
sheperd,
fox,
cow,
husky,
naga,
wolf,
dirder,
drake,
otie
)
//Mutant Human bits
var/global/list/tails_list_human = list()
var/global/list/animated_tails_list_human = list()
// var/global/list/ears_list = list()
var/global/list/wings_list = list()
/proc/log_debug(text)
if (config.log_debug)
diary << "\[[time_stamp()]]DEBUG: [text][log_end]"
for(var/client/C in admins)
if(C.prefs.toggles & CHAT_DEBUGLOGS)
C << "DEBUG: [text]"

View File

@@ -16,7 +16,7 @@ datum
generic="abductor"
adjective="spooky"
restricted=2
ailurus
/* ailurus
name="red panda"
id="ailurus"
generic="ailurus"
@@ -29,7 +29,7 @@ datum
generic="xeno"
adjective="phallic"
tail=1
/* armadillo
armadillo
name="armadillo"
id="armadillo"
say_mod = "drawls"
@@ -37,7 +37,7 @@ datum
adjective = "protected"
tail=1
attack_verb = "noms"
attack_sound = 'sound/weapons/bite.ogg' */
attack_sound = 'sound/weapons/bite.ogg'
attack_verb = "nom" // apparently attack verbs are just the verb, no S. shrug
attack_sound = 'sound/weapons/bite.ogg'
anubis
@@ -159,7 +159,7 @@ datum
id="fennec"
generic="vulpine"
adjective="foxy"
tail=1
tail=1 */
fox
name="fox"
id="fox"
@@ -167,7 +167,7 @@ datum
adjective="foxy" // open and shut with this one, huh
tail=1
taur=1
glowfen
/* glowfen
name="glowfen"
id="glowfen"
generic="vulpine"
@@ -242,7 +242,7 @@ datum
generic="leporid"
adjective="hoppy"
tail=1
attack_verb = "kick"
attack_verb = "kick" */
lizard
name="lizard"
id="lizard"
@@ -250,7 +250,8 @@ datum
adjective="scaled"
taur="naga"
tail=1
murid // i have no idea what this is
restricted=2
/* murid // i have no idea what this is
name="murid"
id="murid"
say_mod = "squeaks"
@@ -403,7 +404,7 @@ datum
id="squirrel"
generic="rodent"
adjective="nutty"
tail=1
tail=1 */
tajaran
name="tajaran"
id="tajaran"
@@ -413,7 +414,14 @@ datum
taur=1
attack_verb = "claw"
attack_sound = 'sound/weapons/bladeslice.ogg'
turtle
toucan
name="toucan"
id="toucan"
generic="bird"
adjective="colorful"
tail=1
attack_verb = "pecks"
/* turtle
name="turtle"
id="turtle"
generic="reptile"
@@ -441,7 +449,7 @@ datum
id="zig"
generic="pok<6F>mon"
adjective="curious"
tail=1
tail=1 */
/*
@@ -520,7 +528,7 @@ datum
generic="plasmaman"
adjective="toxic"
restricted=2 // but if you do want the world to burn then please, by all means
pepsiman
/* pepsiman
//name="PEPSI MAAAAAN"
id="PEPSIMAAAN"
generic="beverage"
@@ -549,7 +557,7 @@ datum
generic="amphibian"
adjective="fishy"
tail=0
eyes="jelleyes"
eyes="jelleyes"I/ */
/*var/list/kpcode_race_list
proc/kpcode_race_genlist()

View File

@@ -45,7 +45,7 @@ var/list/preferences_datums = list()
var/mutant_tail = "none"
var/mutant_wing = "none"
var/wingcolor = "FFF"
var/special_color[COLOUR_LIST_SIZE]
//var/special_color[COLOUR_LIST_SIZE]
//var/special_color_one = null
//var/special_color_two = null
var/vore_banned_methods = 0
@@ -216,7 +216,7 @@ var/list/preferences_datums = list()
if(!kpcode_cantaur(pref_species.id))
dat += " (not available for [pref_species.id])"
dat += "<BR>"
if(special_color[1])
/*if(special_color[1])
dat += "<span style='border:1px solid #161616; background-color: #[special_color[1]];'>&nbsp;&nbsp;&nbsp;</span> <a href='?_src_=prefs;preference=special_color;which=1;task=input'>Primary</a><BR>"
else
dat += "<a href='?_src_=prefs;preference=special_color;which=1;task=input'>Primary?</a><BR>"
@@ -227,7 +227,7 @@ var/list/preferences_datums = list()
if(special_color[3])
dat += "<span style='border:1px solid #161616; background-color: #[special_color[3]];'>&nbsp;&nbsp;&nbsp;</span> <a href='?_src_=prefs;preference=special_color;which=3;task=input'>Tertiary</a><BR>"
else
dat += "<a href='?_src_=prefs;preference=special_color;which=3;task=input'>Tertiary?</a><BR>"
dat += "<a href='?_src_=prefs;preference=special_color;which=3;task=input'>Tertiary?</a><BR>"*/
else
dat += "<b>Species:</b> Human<BR>"
@@ -289,7 +289,7 @@ var/list/preferences_datums = list()
dat += "</td>"
/*if(config.mutant_races) //We don't allow mutant bodyparts for humans either unless this is true.
if(config.mutant_races) //We don't allow mutant bodyparts for humans either unless this is true.
if((MUTCOLORS in pref_species.specflags) || (MUTCOLORS_PARTSONLY in pref_species.specflags))
@@ -384,7 +384,7 @@ var/list/preferences_datums = list()
dat += "</td>"
dat += "</tr></table>"*/
dat += "</tr></table>"
if (1) // Game Preferences
@@ -996,7 +996,7 @@ var/list/preferences_datums = list()
if(new_wingcolor)
wingcolor = sanitize_hexcolor(new_wingcolor)
if("special_color")
/*if("special_color")
var/index_tc=href_list["which"]
switch(alert("Use a special colour for #[index_tc]?","Character Preference","Yes","No","Cancel"))
if("Yes")
@@ -1004,7 +1004,7 @@ var/list/preferences_datums = list()
if(new_color)
special_color[text2num(index_tc)] = sanitize_hexcolor(new_color)
if("No")
special_color[text2num(index_tc)]=null
special_color[text2num(index_tc)]=null*/
if("character_size")
var/new_size = input(user, "Choose your character's size:", "Character Preference") in list("huge", "large", "normal", "small", "tiny")
@@ -1019,7 +1019,7 @@ var/list/preferences_datums = list()
if("be_taur")
be_taur = !be_taur
/*if("tail_lizard")
if("tail_lizard")
var/new_tail
new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in tails_list_lizard
if(new_tail)
@@ -1071,7 +1071,7 @@ var/list/preferences_datums = list()
var/new_body_markings
new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in body_markings_list
if(new_body_markings)
features["body_markings"] = new_body_markings*/
features["body_markings"] = new_body_markings
if("s_tone")
var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones
@@ -1276,12 +1276,12 @@ var/list/preferences_datums = list()
if(mutant_tail != "none" && config.mutant_races)
character.dna.mutanttail = mutant_tail
if(mutant_wing != "none" && config.mutant_races)
/*(if(mutant_wing != "none" && config.mutant_races)
character.dna.mutantwing = mutant_wing
character.dna.wingcolor=wingcolor
character.dna.wingcolor=wingcolor*/
if(be_taur)
character.dna.taur=1
character.dna.special_color = special_color
//character.dna.special_color = special_color
character.dna.cock=p_cock
character.dna.vagina=p_vagina

View File

@@ -195,6 +195,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(needs_update == -2) //fatal, can't load any data
return 0
if(!S["species"] || !config.mutant_races)
S["species"] << new /datum/species/human()
//general preferences
S["ooccolor"] >> ooccolor
S["lastchangelog"] >> lastchangelog
@@ -296,17 +299,21 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
return 0
//Species
var/species_id
S["species"] >> species_id
if(config.mutant_races && species_id && (species_id in roundstart_species))
var/newtype = roundstart_species[species_id]
/*var/species_name
S["species"] >> species_name
if(config.mutant_races && species_name && (species_name in roundstart_species))
var/newtype = roundstart_species[species_name]
pref_species = new newtype()
else
var/rando_race = pick(config.roundstart_races)
pref_species = new rando_race()
pref_species = new /datum/species/human()
if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000")
S["features["mcolor"]"] << "#FFF"
S["features["mcolor"]"] << "#FFF"*/
if(!S["species"] || !config.mutant_races)
S["species"] << new /datum/species/human()
//if(!S["mutant_color"] || S["mutant_color"] == "#000")
// S["mutant_color"] << "#FFF"
//Character
S["Flavor_Text"] >> flavor_text
@@ -344,6 +351,22 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["cyborg_name"] >> custom_names["cyborg"]
S["religion_name"] >> custom_names["religion"]
S["deity_name"] >> custom_names["deity"]
S["species"] >> pref_species
//Customs
S["mutant_tail"] >> mutant_tail
S["mutant_wing"] >> mutant_wing
S["wingcolor"] >> wingcolor
//S["special_color_one"] >> special_color_one
//S["special_color_two"] >> special_color_two
//S["special_color"] >> special_color
S["be_taur"] >> be_taur
S["vore_ability"] >> vore_ability
S["vore_banned_methods"]>> vore_banned_methods
S["vore_extra_bans"] >> vore_extra_bans
S["character_size"] >> character_size
S["p_cock"] >> p_cock
S["p_vagina"] >> p_vagina
//Jobs
S["userandomjob"] >> userandomjob
@@ -364,10 +387,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
//Sanitize
flavor_text = sanitize_text(flavor_text, initial(flavor_text))
real_name = reject_bad_name(real_name)
if(!features["mcolor"] || features["mcolor"] == "#000")
features["mcolor"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F")
if(!real_name)
real_name = random_unique_name(gender)
//if(!(pref_species in species_list))
if(!(pref_species))
pref_species = new /datum/species/human()
//if(!mutant_color || mutant_color == "#000")
// mutant_color = "#FFF"
if(!real_name) real_name = random_unique_name(gender)
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body))
gender = sanitize_gender(gender)
@@ -398,6 +423,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["spines"] = sanitize_inlist(features["spines"], spines_list)
features["body_markings"] = sanitize_inlist(features["body_markings"], body_markings_list)
vore_ability=sanitize_vore_list(vore_ability)
if(isnull(vore_banned_methods))vore_banned_methods=0
if(isnull(vore_extra_bans))vore_extra_bans=65535
if(isnull(p_vagina)) p_vagina=gender==FEMALE
if(isnull(p_cock))
p_cock=list("has"=gender==MALE,"type"="human","color"="900")
userandomjob = sanitize_integer(userandomjob, 0, 1, initial(userandomjob))
job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high))
job_civilian_med = sanitize_integer(job_civilian_med, 0, 65535, initial(job_civilian_med))
@@ -454,6 +486,19 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["cyborg_name"] << custom_names["cyborg"]
S["religion_name"] << custom_names["religion"]
S["deity_name"] << custom_names["deity"]
S["species"] << pref_species
//Custom
S["mutant_tail"] << mutant_tail
S["mutant_wing"] << mutant_wing
S["wingcolor"] << wingcolor
//S["special_color"] << special_color
S["be_taur"] << be_taur
S["vore_ability"] << vore_ability
S["vore_banned_methods"]<< vore_banned_methods
S["vore_extra_bans"] << vore_extra_bans
S["character_size"] << character_size
S["p_cock"] << p_cock
S["p_vagina"] << p_vagina
//Jobs
S["userandomjob"] << userandomjob

View File

@@ -294,8 +294,44 @@
if(U3)
standing += image("icon"=U3.icon, "icon_state"="[U3.icon_state]_s", "layer"=-BODY_LAYER)
if(standing.len)
H.overlays_standing[BODY_LAYER] = standing
//Custom Code
if(H.dna&&H.dna.taur&&!kpcode_cantaur(id))H.dna.taur=0//VERY BAD TEMP FIX
if(H.underwear&&H.underwear!="Nude"&&H.underwear_active&& (!H.dna||!H.dna.taur) )
var/datum/sprite_accessory/underwear/U = underwear_list[H.underwear]
if(U)
standing += image("icon"=U.icon, "icon_state"="[U.icon_state]_s", "layer"=-BODY_LAYER)
else if((!H.dna || !H.dna.taur) && (!H.wear_suit || !(H.wear_suit.flags_inv&HIDEJUMPSUIT)) && (!H.w_uniform||!(H.w_uniform.body_parts_covered&GROIN)) )
if(H.dna&&H.dna.cock)
//cock codes here
var/list/cock=H.dna.cock
var/cock_mod=0
var/cock_type=cock["type"]
if(cock["has"]==H.dna.COCK_NORMAL)cock_mod="n"
else if(cock["has"]==H.dna.COCK_HYPER)cock_mod="h"
else if(cock["has"]==H.dna.COCK_DOUBLE)cock_mod="d"
if(cock_mod)
var/icon/chk=new/icon('icons/mob/cock.dmi')
var/list/available_states=chk.IconStates()
if(available_states.Find("[cock_type]_c_[cock_mod]"))
var/image/cockimtmp = image("icon"='icons/mob/cock.dmi', "icon_state"="[cock_type]_c_[cock_mod]", "layer"=-BODY_LAYER)
var/new_color = "#" + cock["color"]
cockimtmp.color = new_color
standing += cockimtmp
if(available_states.Find("[cock_type]_s_[cock_mod]"))
var/image/cockimtmp = image("icon"='icons/mob/cock.dmi', "icon_state"="[cock_type]_s_[cock_mod]", "layer"=-BODY_LAYER)
if(H.dna.special_color[2])
var/new_color = "#" + H.dna.special_color[2]
cockimtmp.color = new_color
standing += cockimtmp
if(H.dna&&H.dna.taur)
var/taur_state="[kpcode_cantaur(H.dna.mutantrace())]_overlay"
if(H.vore_womb_datum.has_people()||H.vore_stomach_datum.has_people())
taur_state+="_f"
standing += generate_colour_icon('icons/mob/special/taur.dmi',"[taur_state]",H.dna.special_color,offset_x=-16,add_layer=-BODY_LAYER)
H.apply_overlay(BODY_LAYER)

View File

@@ -12,7 +12,7 @@
use_skintones = 1
skinned_type = /obj/item/stack/sheet/animalhide/human
/*
/datum/species/human/qualifies_for_rank(rank, list/features)
if((!features["tail_human"] || features["tail_human"] == "None") && (!features["ears"] || features["ears"] == "None"))
return 1 //Pure humans are always allowed in all roles.
@@ -28,7 +28,7 @@
return 0
if(rank == "Quartermaster") //QM is not contained in command_positions but we still want to bar mutants from it.
return 0
return ..()
return ..()*/
/datum/species/human/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)

View File

@@ -85,6 +85,53 @@ There are several things that need to be remembered:
dna.species.handle_body(src)
update_body_parts()
//Tail code
remove_overlay(TAIL_LAYER)
var/list/t_standing = list()
//var/icon/chk=new/icon('icons/mob/tail.dmi')
//var/list/available_states=chk.IconStates()
var/wing = dna ? dna.mutantwing : null
if(wing&&wing!="none"&&!dna.taur)
var/image/wing_s = image("icon" = 'icons/mob/wing.dmi', "icon_state" = "[wing]", "layer" = -TAIL_LAYER)
wing_s.color = "#" + dna.wingcolor
t_standing += wing_s
var/race = dna ? dna.mutantrace() : null
if(race&&kpcode_hastail(race) &&!dna.taur) //Temp taur fix
t_standing+=generate_colour_icon('icons/mob/tail.dmi',"[kpcode_hastail(race)]",dna.special_color,add_layer=-TAIL_LAYER)
/*var/list/standingt = list()
standingt += image("icon"='icons/mob/tail.dmi', "icon_state"="[race]", "layer"=-TAIL_LAYER)
if(dna.special_color_one)
if(available_states.Find("[race]_1"))
var/image/standingt_one = image("icon"='icons/mob/tail.dmi', "icon_state"="[race]_1", "layer"=-TAIL_LAYER)
var/new_color = "#" + dna.special_color_one
standingt_one.color = new_color
standingt += standingt_one
overlays_standing[TAIL_LAYER] = standingt*/
else
if(!race||race=="human")
var/tail = dna ? dna.mutanttail : null
if(tail&&kpcode_hastail(tail) &&!dna.taur) //Temp taur fix
t_standing+=generate_colour_icon('icons/mob/tail.dmi',"[kpcode_hastail(tail)]",dna.special_color,add_layer=-TAIL_LAYER,human=hair_color)
/*var/list/standingt = list()
standingt += image("icon"='icons/mob/tail.dmi', "icon_state"="[kpcode_hastail(tail)]", "pixel_y"=kpcode_tail_offset(tail), "layer"=-TAIL_LAYER) //may need a +(pixel_y/2)
var/image/standingt_one = image("icon"='icons/mob/tail.dmi', "icon_state"="[kpcode_hastail(tail)]_1", "pixel_y"=kpcode_tail_offset(tail), "layer"=-TAIL_LAYER)
var/new_color = "#" + hair_color
standingt_one.color = new_color
standingt += standingt_one
overlays_standing[TAIL_LAYER] = standingt*/
if(dna&&dna.taur)
t_standing+=generate_colour_icon('icons/mob/special/taur.dmi',"[kpcode_cantaur(dna.mutantrace())]_tail",dna.special_color,offset_x=-16,add_layer=-TAIL_LAYER)
if(src.vore_womb_datum.has_people()||src.vore_stomach_datum.has_people())
t_standing+=generate_colour_icon('icons/mob/special/taur.dmi',"[kpcode_cantaur(dna.mutantrace())]_tail_f",dna.special_color,offset_x=-16,add_layer=-TAIL_LAYER)
if(t_standing.len)
overlays_standing[TAIL_LAYER] =t_standing
apply_overlay(TAIL_LAYER)
/mob/living/carbon/human/update_fire()
..("Standing")

View File

@@ -7,3 +7,5 @@
# NOTE: if the rank-name cannot be found in admin_ranks.txt, they will not be adminned! ~Carn #
# NOTE: syntax was changed to allow hyphenation of ranknames, since spaces are stripped. #
###############################################################################################
JayEh = Host

View File

@@ -276,6 +276,14 @@ JOIN_WITH_MUTANT_RACE
## You probably want humans on your space station, but technically speaking you can turn them off without any ill effect
ROUNDSTART_RACES human
## Races because TG is racist
ROUNDSTART_RACES canine
ROUNDSTART_RACES feline
ROUNDSTART_RACES avian
ROUNDSTART_RACES rodent
ROUNDSTART_RACES herbivorous
ROUNDSTART_RACES exotic
## Races that are strictly worse than humans that could probably be turned on without balance concerns
ROUNDSTART_RACES lizard
#ROUNDSTART_RACES fly

BIN
icons/mob/cock.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

BIN
icons/mob/special/taur.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

BIN
icons/mob/tail.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
icons/mob/wing.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@@ -51,6 +51,7 @@
#include "code\__DEFINES\tablecrafting.dm"
#include "code\__DEFINES\tgui.dm"
#include "code\__DEFINES\tick.dm"
#include "code\__DEFINES\voreconstants.dm"
#include "code\__DEFINES\wires.dm"
#include "code\__HELPERS\_logging.dm"
#include "code\__HELPERS\_string_lists.dm"
@@ -125,6 +126,17 @@
#include "code\_onclick\hud\robot.dm"
#include "code\_onclick\hud\screen_objects.dm"
#include "code\_onclick\hud\swarmer.dm"
#include "code\citadel\chemistry.dm"
#include "code\citadel\flavour.dm"
#include "code\citadel\genetics.dm"
#include "code\citadel\macro.dm"
#include "code\citadel\panel.dm"
#include "code\citadel\races.dm"
#include "code\citadel\science.dm"
#include "code\citadel\transfer_release.dm"
#include "code\citadel\transformation.dm"
#include "code\citadel\unassigned.dm"
#include "code\citadel\whitelist.dm"
#include "code\controllers\admin.dm"
#include "code\controllers\configuration.dm"
#include "code\controllers\controller.dm"
@@ -1812,17 +1824,6 @@
#include "code\modules\vehicles\vehicle.dm"
#include "code\modules\zombie\items.dm"
#include "code\modules\zombie\organs.dm"
#include "code\narky\chemistry.dm"
#include "code\narky\flavour.dm"
#include "code\narky\genetics.dm"
#include "code\narky\macro.dm"
#include "code\narky\panel.dm"
#include "code\narky\races.dm"
#include "code\narky\science.dm"
#include "code\narky\transfer_release.dm"
#include "code\narky\transformation.dm"
#include "code\narky\unassigned.dm"
#include "code\narky\whitelist.dm"
#include "code\orphaned_procs\AStar.dm"
#include "code\orphaned_procs\dbcore.dm"
#include "code\orphaned_procs\priority_announce.dm"