diff --git a/code/__DEFINES/clothing.dm b/code/__DEFINES/clothing.dm index f5efa04ea62..03574d03feb 100644 --- a/code/__DEFINES/clothing.dm +++ b/code/__DEFINES/clothing.dm @@ -122,6 +122,10 @@ #define FEMALE_UNIFORM_FULL 1 #define FEMALE_UNIFORM_TOP 2 +//flags for digitigrade outfits: Helps determinesif the outfit needs to be altered for weird legs (usually doesn't) + +#define NO_DIGITIGRADE_UNIFORM 0 +#define DIGITIGRADE_UNIFORM 1 //flags for covering body parts #define GLASSESCOVERSEYES 1 diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 1554b1e728b..73049963dca 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -72,6 +72,7 @@ #define EASYDISMEMBER 20 #define EASYLIMBATTACHMENT 21 #define TOXINLOVER 22 +#define DIGITIGRADE 23 //Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi) #define FLYING 65536 diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index a26dfacd4fb..2d8bb006477 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -369,6 +369,7 @@ BLIND // can't see anything slot_flags = SLOT_ICLOTHING armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women + var/digitigrade = NO_DIGITIGRADE_UNIFORM // For use in alternate clothing styles for lizards with weird legs. Shorts only really. var/has_sensor = 1//For the crew computer 2 = unable to change mode var/random_sensor = 1 var/sensor_mode = 0 /* 1 = Report living/dead, 2 = Report detailed damages, 3 = Report location */ diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 6b6bad92bec..3b157d94916 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -31,6 +31,7 @@ icon_state = "cargotech" item_state = "lb_suit" item_color = "cargo" + digitigrade = DIGITIGRADE_UNIFORM /obj/item/clothing/under/rank/chaplain diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index 23e98a040c6..29b648d7ed7 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -4,6 +4,7 @@ gender = PLURAL body_parts_covered = GROIN fitted = NO_FEMALE_UNIFORM + digitigrade = DIGITIGRADE_UNIFORM can_adjust = 0 /obj/item/clothing/under/shorts/red diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 41f2caab2dc..fd9eb11a1a5 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -32,6 +32,13 @@ if(dna.species) set_species(dna.species.type) + //initialise limbs + if(DIGITIGRADE in dna.species.specflags) + for(var/X in bodyparts) + var/obj/item/bodypart/O = X + if(O.body_zone == "r_leg" || O.body_zone == "l_leg") + O.use_digitigrade = TRUE + //initialise organs if(!(NOHUNGER in dna.species.specflags)) internal_organs += new /obj/item/organ/appendix diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 9f0c803600f..442159b2818 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -371,6 +371,15 @@ else if ("wings" in mutant_bodyparts) bodyparts_to_add -= "wings_open" +/* if("digitigrade" in mutant_bodyparts) + if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) || (H.w_uniform && (H.w_uniform.body_parts_covered & LEGS))) + bodyparts_to_add -= "digitigrade_full" + bodyparts_to_add += "digitigrade_hidden" + else + bodyparts_to_add += "digitigrade_full" + bodyparts_to_add -= "digitigrade_hidden" + for(var/L in LEGS) //Hide the legs since we're rending special ones + L.alpha = 0*/ if(!bodyparts_to_add) return diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index 6f7beec0e7d..00d778616fb 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -86,7 +86,7 @@ /datum/species/lizard/ashwalker name = "Ash Walker" id = "lizard" - specflags = list(MUTCOLORS,EYECOLOR,LIPS,NOBREATH,NOGUNS) + specflags = list(MUTCOLORS,EYECOLOR,LIPS,NOBREATH,NOGUNS,PIERCEIMMUNE,DIGITIGRADE) /* PODPEOPLE */ diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 054bb354824..7026af0c42b 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -1135,29 +1135,15 @@ name = "None" icon_state = "none" -/datum/sprite_accessory/body_markings/dstripe - name = "Dark Stripe" - icon_state = "dstripe" - -/datum/sprite_accessory/body_markings/lstripe - name = "Light Stripe" - icon_state = "lstripe" - /datum/sprite_accessory/body_markings/dtiger name = "Dark Tiger Body" icon_state = "dtiger" - -/datum/sprite_accessory/body_markings/dtigerhead - name = "Dark Tiger Body + Head" - icon_state = "dtigerhead" + gender_specific = 1 /datum/sprite_accessory/body_markings/ltiger name = "Light Tiger Body" icon_state = "ltiger" - -/datum/sprite_accessory/body_markings/ltigerhead - name = "Light Tiger Body + Head" - icon_state = "ltigerhead" + gender_specific = 1 /datum/sprite_accessory/body_markings/lbelly name = "Light Belly" @@ -1178,30 +1164,6 @@ name = "Smooth" icon_state = "smooth" -/datum/sprite_accessory/tails/lizard/light - name = "Light" - icon_state = "light" - -/datum/sprite_accessory/tails_animated/lizard/light - name = "Light" - icon_state = "light" - -/datum/sprite_accessory/tails/lizard/dstripe - name = "Dark Stripe" - icon_state = "dstripe" - -/datum/sprite_accessory/tails_animated/lizard/dstripe - name = "Dark Stripe" - icon_state = "dstripe" - -/datum/sprite_accessory/tails/lizard/lstripe - name = "Light Stripe" - icon_state = "lstripe" - -/datum/sprite_accessory/tails_animated/lizard/lstripe - name = "Light Stripe" - icon_state = "lstripe" - /datum/sprite_accessory/tails/lizard/dtiger name = "Dark Tiger" icon_state = "dtiger" @@ -1218,21 +1180,13 @@ name = "Light Tiger" icon_state = "ltiger" -/datum/sprite_accessory/tails/lizard/club - name = "Club" - icon_state = "club" +/datum/sprite_accessory/tails/lizard/spikes + name = "Spikes" + icon_state = "spikes" -/datum/sprite_accessory/tails_animated/lizard/club - name = "Club" - icon_state = "club" - -/datum/sprite_accessory/tails/lizard/aqua - name = "Aquatic" - icon_state = "aqua" - -/datum/sprite_accessory/tails_animated/lizard/aqua - name = "Aquatic" - icon_state = "aqua" +/datum/sprite_accessory/tails_animated/lizard/spikes + name = "Spikes" + icon_state = "spikes" /datum/sprite_accessory/tails/human/none name = "None" @@ -1410,3 +1364,14 @@ /datum/sprite_accessory/spines_animated/aqautic name = "Aquatic" icon_state = "aqua" + +/datum/sprite_accessory/legs + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/legs/none + name = "Normal Legs" + icon_state = "none" + +/datum/sprite_accessory/legs/digitigrade_lizard + name = "Digitigrade Legs" + icon_state = "digitigrade_lizard" diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 42b001e1ddd..5a0c96c8ccf 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -10,6 +10,7 @@ var/status = ORGAN_ORGANIC var/body_zone //"chest", "l_arm", etc , used for def_zone var/body_part = null //bitflag used to check which clothes cover this bodypart + var/use_digitigrade = FALSE //Used for alternate legs, useless elsewhere var/brutestate = 0 var/burnstate = 0 var/brute_dam = 0 @@ -252,6 +253,8 @@ if(should_draw_greyscale) if(should_draw_gender) I = image("icon"='icons/mob/human_parts_greyscale.dmi', "icon_state"="[species_id]_[body_zone]_[icon_gender]_s", "layer"=-BODYPARTS_LAYER, "dir"=image_dir) + else if(use_digitigrade) + I = image("icon"='icons/mob/human_parts_greyscale.dmi', "icon_state"="[species_id]_[body_zone]_df_s", "layer"=-BODYPARTS_LAYER, "dir"=image_dir) else I = image("icon"='icons/mob/human_parts_greyscale.dmi', "icon_state"="[species_id]_[body_zone]_s", "layer"=-BODYPARTS_LAYER, "dir"=image_dir) else @@ -351,7 +354,6 @@ px_x = 2 px_y = 12 - ///////////////////////////////////////////////////////////////////////// /obj/item/severedtail diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi index 484d6ba5e98..21554709cfa 100644 Binary files a/icons/mob/human_parts_greyscale.dmi and b/icons/mob/human_parts_greyscale.dmi differ diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi index 518a57469e5..41e8122d840 100644 Binary files a/icons/mob/mutant_bodyparts.dmi and b/icons/mob/mutant_bodyparts.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 06e25d4ddc8..f17008d5c52 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ