diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 7169390f12..ee5d418c7e 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -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" diff --git a/code/citadel/races.dm b/code/citadel/races.dm index a72138ddb3..7ce119ee66 100644 --- a/code/citadel/races.dm +++ b/code/citadel/races.dm @@ -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" @@ -403,7 +403,7 @@ datum id="squirrel" generic="rodent" adjective="nutty" - tail=1 + tail=1 */ tajaran name="tajaran" id="tajaran" @@ -413,7 +413,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 +448,7 @@ datum id="zig" generic="pokémon" adjective="curious" - tail=1 + tail=1 */ /* @@ -520,7 +527,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 +556,7 @@ datum generic="amphibian" adjective="fishy" tail=0 - eyes="jelleyes" + eyes="jelleyes"I/ */ /*var/list/kpcode_race_list proc/kpcode_race_genlist() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 50ada062f3..811771aa1f 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -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) diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index ac36d4c28c..52a66af468 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -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) @@ -50,7 +50,7 @@ /datum/species/lizard // Reptilian humanoids with scaled skin and tails. name = "Lizardperson" - id = "lizard" + id = "lizardperson" say_mod = "hisses" default_color = "00FF00" specflags = list(MUTCOLORS,EYECOLOR,LIPS) @@ -147,7 +147,7 @@ if(/obj/item/projectile/energy/florayield) H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL) return - + /* SHADOWPEOPLE diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index e4bd12856c..418bf73e12 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -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") diff --git a/config/admins.txt b/config/admins.txt index 1301b4ee39..c0a463d0df 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -6,4 +6,6 @@ # Ranks can be anything defined in admin_ranks.txt # # 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. # -############################################################################################### \ No newline at end of file +############################################################################################### + +JayEh = Host \ No newline at end of file diff --git a/icons/mob/cock.dmi b/icons/mob/cock.dmi new file mode 100644 index 0000000000..d4d29a7255 Binary files /dev/null and b/icons/mob/cock.dmi differ diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index 553db92782..7e3518e8a2 100644 Binary files a/icons/mob/human.dmi and b/icons/mob/human.dmi differ diff --git a/icons/mob/human_parts.dmi b/icons/mob/human_parts.dmi index 54ec9ed433..b6c2b9f9ba 100644 Binary files a/icons/mob/human_parts.dmi and b/icons/mob/human_parts.dmi differ diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi index 484d6ba5e9..be12e23f03 100644 Binary files a/icons/mob/human_parts_greyscale.dmi and b/icons/mob/human_parts_greyscale.dmi differ diff --git a/icons/mob/special/taur.dmi b/icons/mob/special/taur.dmi new file mode 100644 index 0000000000..e70ded7ce1 Binary files /dev/null and b/icons/mob/special/taur.dmi differ diff --git a/icons/mob/tail.dmi b/icons/mob/tail.dmi new file mode 100644 index 0000000000..44b6e823ce Binary files /dev/null and b/icons/mob/tail.dmi differ diff --git a/icons/mob/wing.dmi b/icons/mob/wing.dmi new file mode 100644 index 0000000000..50247693a4 Binary files /dev/null and b/icons/mob/wing.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 15cf201e77..4682841cde 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -125,6 +125,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 +1823,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"