mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 03:26:31 +01:00
It's 2 am and im having a manic episode so i fixed hair (#69092)
* 2 am coding * lazylists like this are stupid * reviews
This commit is contained in:
@@ -32,5 +32,5 @@
|
||||
if(index > 0 && H.facial_hairstyle != beard_order[index])
|
||||
to_chat(H, span_warning("Your chin itches."))
|
||||
H.facial_hairstyle = beard_order[index]
|
||||
H.update_hair(is_creating = TRUE)
|
||||
H.update_body_parts()
|
||||
|
||||
|
||||
@@ -45,4 +45,4 @@
|
||||
H.hairstyle = "Bald"
|
||||
else
|
||||
H.hairstyle = "Balding Hair"
|
||||
H.update_hair(is_creating = TRUE)
|
||||
H.update_body_parts()
|
||||
|
||||
+2
-2
@@ -608,8 +608,8 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
|
||||
external_organ.mutate_feature(features, src)
|
||||
|
||||
if(icon_update)
|
||||
dna.species.handle_body(src) // We want 'update_body_parts()' to be called only if mutcolor_update is TRUE, so no 'update_body()' here.
|
||||
update_hair(is_creating = TRUE)
|
||||
dna.species.handle_body(src) // We want 'update_body_parts(update_limb_data = TRUE)' to be called only if mutcolor_update is TRUE, so no 'update_body()' here.
|
||||
update_body_parts() //We can call this because it doesnt refresh limb data, and it handles hair and such.
|
||||
if(mutcolor_update)
|
||||
update_body_parts(update_limb_data = TRUE)
|
||||
if(mutations_overlay_update)
|
||||
|
||||
@@ -294,7 +294,7 @@
|
||||
var/mob/living/carbon/human/human_holder = quirk_holder
|
||||
old_hair = human_holder.hairstyle
|
||||
human_holder.hairstyle = "Bald"
|
||||
human_holder.update_hair(is_creating = TRUE)
|
||||
human_holder.update_body_parts()
|
||||
RegisterSignal(human_holder, COMSIG_CARBON_EQUIP_HAT, .proc/equip_hat)
|
||||
RegisterSignal(human_holder, COMSIG_CARBON_UNEQUIP_HAT, .proc/unequip_hat)
|
||||
|
||||
@@ -314,7 +314,7 @@
|
||||
. = ..()
|
||||
var/mob/living/carbon/human/human_holder = quirk_holder
|
||||
human_holder.hairstyle = old_hair
|
||||
human_holder.update_hair(is_creating = TRUE)
|
||||
human_holder.update_body_parts()
|
||||
UnregisterSignal(human_holder, list(COMSIG_CARBON_EQUIP_HAT, COMSIG_CARBON_UNEQUIP_HAT))
|
||||
human_holder.clear_mood_event("bad_hair_day")
|
||||
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
else
|
||||
H.hairstyle = "Skinhead"
|
||||
|
||||
H.update_hair(is_creating = TRUE)
|
||||
H.update_body_parts()
|
||||
playsound(loc, 'sound/items/welder2.ogg', 20, TRUE)
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
if(new_style && do_after(user, 60, target = H))
|
||||
user.visible_message(span_notice("[user] successfully changes [H]'s facial hairstyle using [src]."), span_notice("You successfully change [H]'s facial hairstyle using [src]."))
|
||||
H.facial_hairstyle = new_style
|
||||
H.update_hair(is_creating = TRUE)
|
||||
H.update_body_parts()
|
||||
return
|
||||
else
|
||||
return
|
||||
@@ -201,7 +201,7 @@
|
||||
if(new_style && do_after(user, 60, target = H))
|
||||
user.visible_message(span_notice("[user] successfully changes [H]'s hairstyle using [src]."), span_notice("You successfully change [H]'s hairstyle using [src]."))
|
||||
H.hairstyle = new_style
|
||||
H.update_hair(is_creating = TRUE)
|
||||
H.update_body_parts()
|
||||
return
|
||||
|
||||
else
|
||||
|
||||
@@ -47,4 +47,4 @@
|
||||
human_target.grad_style[gradient_key] = new_grad_style
|
||||
human_target.grad_color[gradient_key] = sanitize_hexcolor(new_grad_color)
|
||||
playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 5)
|
||||
human_target.update_hair(is_creating = TRUE)
|
||||
human_target.update_body_parts()
|
||||
|
||||
@@ -49,7 +49,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28)
|
||||
|
||||
hairdresser.hairstyle = new_style
|
||||
|
||||
hairdresser.update_hair(is_creating = TRUE)
|
||||
hairdresser.update_body_parts()
|
||||
|
||||
/obj/structure/mirror/examine_status(mob/user)
|
||||
if(broken)
|
||||
@@ -250,7 +250,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror, 28)
|
||||
if(new_face_color)
|
||||
amazed_human.facial_hair_color = sanitize_hexcolor(new_face_color)
|
||||
amazed_human.dna.update_ui_block(DNA_FACIAL_HAIR_COLOR_BLOCK)
|
||||
amazed_human.update_hair()
|
||||
amazed_human.update_body_parts()
|
||||
|
||||
if(BODY_ZONE_PRECISE_EYES)
|
||||
var/new_eye_color = input(amazed_human, "Choose your eye color", "Eye Color", amazed_human.eye_color_left) as color|null
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
icon = H.icon
|
||||
icon_state = "zombie"
|
||||
H.hairstyle = null
|
||||
H.update_hair(is_creating = TRUE)
|
||||
H.update_body_parts()
|
||||
H.forceMove(src)
|
||||
oldguy = H
|
||||
update_icons()
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
H.temporarilyRemoveItemFromInventory(H.wear_suit, TRUE)
|
||||
H.update_worn_oversuit()
|
||||
H.update_worn_head()
|
||||
H.update_hair(is_creating = TRUE)
|
||||
H.update_body_parts()
|
||||
|
||||
if(blood_on_castoff)
|
||||
H.add_splatter_floor()
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
var/mob/living/carbon/human/dummy/consistent/victim_dummy = new
|
||||
victim_dummy.hair_color = "#bb9966" // Brown
|
||||
victim_dummy.hairstyle = "Messy"
|
||||
victim_dummy.update_hair(is_creating = TRUE)
|
||||
victim_dummy.update_body_parts()
|
||||
|
||||
var/icon/obsessed_icon = render_preview_outfit(preview_outfit)
|
||||
obsessed_icon.Blend(icon('icons/effects/blood.dmi', "uniformblood"), ICON_OVERLAY)
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
/datum/antagonist/rev/head/proc/make_assistant_icon(hairstyle)
|
||||
var/mob/living/carbon/human/dummy/consistent/assistant = new
|
||||
assistant.hairstyle = hairstyle
|
||||
assistant.update_hair(is_creating = TRUE)
|
||||
assistant.update_body_parts()
|
||||
|
||||
var/icon/assistant_icon = render_preview_outfit(/datum/outfit/job/assistant/consistent, assistant)
|
||||
assistant_icon.ChangeOpacity(0.5)
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
thief.physique = FEMALE //update_body() and gender block or something
|
||||
thief.hair_color = "#2A71DC" //hair color dna block
|
||||
thief.skin_tone = "caucasian2" //skin tone dna block
|
||||
thief.hairstyle = "Bun Head 2" //update_hair()
|
||||
thief.hairstyle = "Bun Head 2" //update_body_parts()
|
||||
thief.dna.update_ui_block(DNA_GENDER_BLOCK)
|
||||
thief.dna.update_ui_block(DNA_HAIR_COLOR_BLOCK)
|
||||
thief.dna.update_ui_block(DNA_SKIN_TONE_BLOCK)
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
/datum/preference/choiced/facial_hairstyle/apply_to_human(mob/living/carbon/human/target, value)
|
||||
target.facial_hairstyle = value
|
||||
target.update_hair(is_creating = TRUE)
|
||||
target.update_body_parts()
|
||||
|
||||
/datum/preference/choiced/facial_hairstyle/compile_constant_data()
|
||||
var/list/data = ..()
|
||||
@@ -83,7 +83,7 @@
|
||||
|
||||
/datum/preference/color/facial_hair_color/apply_to_human(mob/living/carbon/human/target, value)
|
||||
target.facial_hair_color = value
|
||||
target.update_hair(is_creating = TRUE)
|
||||
target.update_body_parts()
|
||||
|
||||
/datum/preference/choiced/facial_hair_gradient
|
||||
category = PREFERENCE_CATEGORY_SECONDARY_FEATURES
|
||||
@@ -97,7 +97,7 @@
|
||||
/datum/preference/choiced/facial_hair_gradient/apply_to_human(mob/living/carbon/human/target, value)
|
||||
LAZYSETLEN(target.grad_style, GRADIENTS_LEN)
|
||||
target.grad_style[GRADIENT_FACIAL_HAIR_KEY] = value
|
||||
target.update_hair(is_creating = TRUE)
|
||||
target.update_body_parts()
|
||||
|
||||
/datum/preference/choiced/facial_hair_gradient/create_default_value()
|
||||
return "None"
|
||||
@@ -111,7 +111,7 @@
|
||||
/datum/preference/color/facial_hair_gradient/apply_to_human(mob/living/carbon/human/target, value)
|
||||
LAZYSETLEN(target.grad_color, GRADIENTS_LEN)
|
||||
target.grad_color[GRADIENT_FACIAL_HAIR_KEY] = value
|
||||
target.update_hair(is_creating = TRUE)
|
||||
target.update_body_parts()
|
||||
|
||||
/datum/preference/color/facial_hair_gradient/is_accessible(datum/preferences/preferences)
|
||||
if (!..(preferences))
|
||||
@@ -160,7 +160,7 @@
|
||||
/datum/preference/choiced/hair_gradient/apply_to_human(mob/living/carbon/human/target, value)
|
||||
LAZYSETLEN(target.grad_style, GRADIENTS_LEN)
|
||||
target.grad_style[GRADIENT_HAIR_KEY] = value
|
||||
target.update_hair(is_creating = TRUE)
|
||||
target.update_body_parts()
|
||||
|
||||
/datum/preference/choiced/hair_gradient/create_default_value()
|
||||
return "None"
|
||||
@@ -174,7 +174,7 @@
|
||||
/datum/preference/color/hair_gradient/apply_to_human(mob/living/carbon/human/target, value)
|
||||
LAZYSETLEN(target.grad_color, GRADIENTS_LEN)
|
||||
target.grad_color[GRADIENT_HAIR_KEY] = value
|
||||
target.update_hair(is_creating = TRUE)
|
||||
target.update_body_parts()
|
||||
|
||||
/datum/preference/color/hair_gradient/is_accessible(datum/preferences/preferences)
|
||||
if (!..(preferences))
|
||||
|
||||
@@ -25,4 +25,4 @@
|
||||
H.facial_hairstyle = "Beard (Full)"
|
||||
H.hair_color = "#FFFFFF"
|
||||
H.facial_hair_color = "#FFFFFF"
|
||||
H.update_hair(is_creating = TRUE)
|
||||
H.update_body_parts()
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
if(brainmob && !(C.stat == DEAD || (HAS_TRAIT(C, TRAIT_DEATHCOMA))))
|
||||
to_chat(brainmob, span_danger("You can't feel your body! You're still just a brain!"))
|
||||
forceMove(C)
|
||||
C.update_hair()
|
||||
C.update_body_parts()
|
||||
return
|
||||
|
||||
if(brainmob)
|
||||
@@ -71,7 +71,7 @@
|
||||
BT.on_gain()
|
||||
|
||||
//Update the body's icon so it doesnt appear debrained anymore
|
||||
C.update_hair()
|
||||
C.update_body_parts()
|
||||
|
||||
/obj/item/organ/internal/brain/Remove(mob/living/carbon/C, special = 0, no_id_transfer = FALSE)
|
||||
// Delete skillchips first as parent proc sets owner to null, and skillchips need to know the brain's owner.
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
if((!gc_destroyed || (owner && !owner.gc_destroyed)) && !no_id_transfer)
|
||||
transfer_identity(C)
|
||||
C.update_hair()
|
||||
C.update_body_parts()
|
||||
|
||||
/obj/item/organ/internal/brain/proc/transfer_identity(mob/living/L)
|
||||
name = "[L.name]'s brain"
|
||||
|
||||
@@ -664,7 +664,7 @@
|
||||
emote("scream")
|
||||
facial_hairstyle = "Shaved"
|
||||
hairstyle = "Bald"
|
||||
update_hair(is_creating = TRUE)
|
||||
update_body_parts()
|
||||
ADD_TRAIT(src, TRAIT_DISFIGURED, TRAIT_GENERIC)
|
||||
|
||||
update_damage_overlays()
|
||||
|
||||
@@ -16,7 +16,7 @@ Most of the time we only wish to update one overlay:
|
||||
In these cases, instead of updating every overlay using the old behaviour (regenerate_icons), we instead call
|
||||
the appropriate update_X proc.
|
||||
e.g. - update_l_hand()
|
||||
e.g.2 - update_hair()
|
||||
e.g.2 - update_body_parts()
|
||||
|
||||
Note: Recent changes by aranclanos+carn:
|
||||
update_icons() no longer needs to be called.
|
||||
@@ -41,23 +41,10 @@ There are several things that need to be remembered:
|
||||
|
||||
> There are also these special cases:
|
||||
update_damage_overlays() //handles damage overlays for brute/burn damage
|
||||
update_body() //Handles updating your mob's body layer and mutant bodyparts
|
||||
as well as sprite-accessories that didn't really fit elsewhere (underwear, undershirts, socks, lips, eyes)
|
||||
//NOTE: update_mutantrace() is now merged into this!
|
||||
update_hair() //Handles updating your hair overlay (used to be update_face, but mouth and
|
||||
eyes were merged into update_body())
|
||||
|
||||
|
||||
update_body_parts() //Handles bodyparts, and everything bodyparts render. (Organs, hair, facial features)
|
||||
update_body() //Calls update_body_parts(), as well as updates mutant bodyparts, the old, not-actually-bodypart system.
|
||||
*/
|
||||
|
||||
//HAIR OVERLAY
|
||||
/mob/living/carbon/human/update_hair(is_creating)
|
||||
var/obj/item/bodypart/head/my_head = get_bodypart(BODY_ZONE_HEAD)
|
||||
if(!my_head)
|
||||
return
|
||||
my_head.update_limb(FALSE, is_creating)
|
||||
update_body_parts()
|
||||
|
||||
/* --------------------------------------- */
|
||||
//For legacy support.
|
||||
/mob/living/carbon/human/regenerate_icons()
|
||||
@@ -454,7 +441,7 @@ There are several things that need to be remembered:
|
||||
suit_overlay.pixel_x += dna.species.offset_features[OFFSET_SUIT][1]
|
||||
suit_overlay.pixel_y += dna.species.offset_features[OFFSET_SUIT][2]
|
||||
overlays_standing[SUIT_LAYER] = suit_overlay
|
||||
update_hair()
|
||||
update_body_parts()
|
||||
update_mutant_bodyparts()
|
||||
|
||||
apply_overlay(SUIT_LAYER)
|
||||
|
||||
@@ -289,7 +289,7 @@
|
||||
|
||||
/mob/living/carbon/human/wear_mask_update(obj/item/I, toggle_off = 1)
|
||||
if((I.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || (initial(I.flags_inv) & (HIDEHAIR|HIDEFACIALHAIR)))
|
||||
update_hair()
|
||||
update_body_parts()
|
||||
if(toggle_off && internal && !getorganslot(ORGAN_SLOT_BREATHING_TUBE))
|
||||
internal = null
|
||||
if(I.flags_inv & HIDEEYES)
|
||||
@@ -299,7 +299,7 @@
|
||||
|
||||
/mob/living/carbon/human/head_update(obj/item/I, forced)
|
||||
if((I.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || forced)
|
||||
update_hair()
|
||||
update_body_parts()
|
||||
if(I.flags_inv & HIDEEYES || forced)
|
||||
update_worn_glasses()
|
||||
if(I.flags_inv & HIDEEARS || forced)
|
||||
|
||||
@@ -786,6 +786,10 @@ GLOBAL_LIST_EMPTY(features_by_species)
|
||||
if(BODY_FRONT_LAYER)
|
||||
return "FRONT"
|
||||
|
||||
///Proc that will randomise the hair, or primary appearance element (i.e. for moths wings) of a species' associated mob
|
||||
/datum/species/proc/randomize_main_appearance_element(mob/living/carbon/human/human_mob)
|
||||
human_mob.hairstyle = random_hairstyle(human_mob.gender)
|
||||
human_mob.update_body_parts()
|
||||
|
||||
///Proc that will randomise the underwear (i.e. top, pants and socks) of a species' associated mob
|
||||
/datum/species/proc/randomize_active_underwear(mob/living/carbon/human/human_mob)
|
||||
@@ -1047,7 +1051,7 @@ GLOBAL_LIST_EMPTY(features_by_species)
|
||||
return
|
||||
target.facial_hairstyle = "Shaved"
|
||||
target.hairstyle = "Bald"
|
||||
target.update_hair(is_creating = TRUE)
|
||||
target.update_body_parts()
|
||||
|
||||
//////////////////
|
||||
// ATTACK PROCS //
|
||||
|
||||
@@ -77,8 +77,6 @@
|
||||
var/obj/item/organ/internal/heart/ethereal/ethereal_heart = C.getorganslot(ORGAN_SLOT_HEART)
|
||||
ethereal_heart.ethereal_color = default_color
|
||||
|
||||
//The following code is literally only to make admin-spawned ethereals not be black.
|
||||
C.dna.features["mcolor"] = C.dna.features["ethcolor"] //Ethcolor and Mut color are both dogshit and i hate them
|
||||
for(var/obj/item/bodypart/limb as anything in C.bodyparts)
|
||||
if(limb.limb_id == SPECIES_ETHEREAL)
|
||||
limb.update_limb(is_creating = TRUE)
|
||||
@@ -121,7 +119,9 @@
|
||||
else
|
||||
ethereal_light.set_light_on(FALSE)
|
||||
fixed_mut_color = rgb(128,128,128)
|
||||
ethereal.update_body(is_creating = TRUE)
|
||||
ethereal.hair_color = current_color
|
||||
ethereal.facial_hair_color = current_color
|
||||
ethereal.update_body()
|
||||
|
||||
/datum/species/ethereal/proc/on_emp_act(mob/living/carbon/human/H, severity)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
/datum/species/human/felinid/prepare_human_for_preview(mob/living/carbon/human/human_for_preview)
|
||||
human_for_preview.hairstyle = "Hime Cut"
|
||||
human_for_preview.hair_color = "#ffcccc" // pink
|
||||
human_for_preview.update_hair(is_creating = TRUE)
|
||||
human_for_preview.update_body_parts()
|
||||
|
||||
var/obj/item/organ/internal/ears/cat/cat_ears = human_for_preview.getorgan(/obj/item/organ/internal/ears/cat)
|
||||
if (cat_ears)
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
/datum/species/human/prepare_human_for_preview(mob/living/carbon/human/human)
|
||||
human.hairstyle = "Business Hair"
|
||||
human.hair_color = "#bb9966" // brown
|
||||
human.update_hair(is_creating = TRUE)
|
||||
human.update_body_parts()
|
||||
|
||||
/datum/species/human/randomize_features(mob/living/carbon/human/human_mob)
|
||||
human_mob.skin_tone = random_skin_tone()
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
/mob/living/carbon/human/cure_husk(list/sources)
|
||||
. = ..()
|
||||
if(.)
|
||||
update_hair()
|
||||
update_body_parts()
|
||||
|
||||
/mob/living/carbon/human/become_husk(source)
|
||||
if(istype(dna.species, /datum/species/skeleton)) //skeletons shouldn't be husks.
|
||||
@@ -37,4 +37,4 @@
|
||||
return
|
||||
. = ..()
|
||||
if(.)
|
||||
update_hair()
|
||||
update_body_parts()
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
wearer.update_worn_head()
|
||||
wearer.update_worn_mask()
|
||||
wearer.update_worn_glasses()
|
||||
wearer.update_hair()
|
||||
wearer.update_body_parts()
|
||||
|
||||
/// Finishes the suit's activation, starts processing
|
||||
/obj/item/mod/control/proc/finish_activation(on)
|
||||
|
||||
@@ -2015,10 +2015,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
continue
|
||||
is_between_the_sheets = TRUE
|
||||
break
|
||||
|
||||
|
||||
if(!drinker.IsSleeping() || !is_between_the_sheets)
|
||||
return
|
||||
|
||||
|
||||
if(drinker.getBruteLoss() && drinker.getFireLoss()) //If you are damaged by both types, slightly increased healing but it only heals one. The more the merrier wink wink.
|
||||
if(prob(50))
|
||||
drinker.adjustBruteLoss(-0.25 * REM * delta_time)
|
||||
@@ -2397,12 +2397,12 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
if(metabolizer.age > 70)
|
||||
metabolizer.facial_hair_color = "#cccccc"
|
||||
metabolizer.hair_color = "#cccccc"
|
||||
metabolizer.update_hair(is_creating = TRUE)
|
||||
metabolizer.update_body_parts()
|
||||
if(metabolizer.age > 100)
|
||||
metabolizer.become_nearsighted(type)
|
||||
if(metabolizer.gender == MALE)
|
||||
metabolizer.facial_hairstyle = "Beard (Very Long)"
|
||||
metabolizer.update_hair(is_creating = TRUE)
|
||||
metabolizer.update_body_parts()
|
||||
|
||||
if(metabolizer.age > 969) //Best not let people get older than this or i might incur G-ds wrath
|
||||
metabolizer.visible_message(span_notice("[metabolizer] becomes older than any man should be.. and crumbles into dust!"))
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.facial_hairstyle = "Shaved"
|
||||
H.hairstyle = "Bald"
|
||||
H.update_hair(is_creating = TRUE) // makes you loose hair as well
|
||||
H.update_body_parts() // makes you loose hair as well
|
||||
M.set_species(/datum/species/human/krokodil_addict)
|
||||
M.adjustBruteLoss(50 * REM, 0) // holy shit your skin just FELL THE FUCK OFF
|
||||
..()
|
||||
@@ -708,7 +708,6 @@
|
||||
druggy_dna.species.species_traits -= NOBLOODOVERLAY
|
||||
|
||||
invisible_man.update_body()
|
||||
invisible_man.update_hair()
|
||||
invisible_man.sound_environment_override = NONE
|
||||
|
||||
if(!invisible_man.hud_used)
|
||||
|
||||
@@ -1082,7 +1082,7 @@
|
||||
var/mob/living/carbon/human/exposed_human = exposed_mob
|
||||
exposed_human.hair_color = "#CC22FF"
|
||||
exposed_human.facial_hair_color = "#CC22FF"
|
||||
exposed_human.update_hair()
|
||||
exposed_human.update_body_parts()
|
||||
|
||||
/datum/reagent/medicine/regen_jelly/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustBruteLoss(-1.5 * REM * delta_time, 0)
|
||||
@@ -1453,7 +1453,7 @@
|
||||
return
|
||||
exposed_human.hair_color = "#9922ff"
|
||||
exposed_human.facial_hair_color = "#9922ff"
|
||||
exposed_human.update_hair()
|
||||
exposed_human.update_body_parts()
|
||||
|
||||
/datum/reagent/medicine/polypyr/overdose_process(mob/living/M, delta_time, times_fired)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.5 * REM * delta_time)
|
||||
|
||||
@@ -2185,7 +2185,7 @@
|
||||
var/mob/living/carbon/human/exposed_human = exposed_mob
|
||||
exposed_human.hair_color = pick(potential_colors)
|
||||
exposed_human.facial_hair_color = pick(potential_colors)
|
||||
exposed_human.update_hair()
|
||||
exposed_human.update_body_parts()
|
||||
|
||||
/datum/reagent/barbers_aid
|
||||
name = "Barber's Aid"
|
||||
@@ -2207,7 +2207,7 @@
|
||||
to_chat(exposed_human, span_notice("Hair starts sprouting from your scalp."))
|
||||
exposed_human.hairstyle = picked_hair
|
||||
exposed_human.facial_hairstyle = picked_beard
|
||||
exposed_human.update_hair(is_creating = TRUE)
|
||||
exposed_human.update_body_parts()
|
||||
|
||||
/datum/reagent/concentrated_barbers_aid
|
||||
name = "Concentrated Barber's Aid"
|
||||
@@ -2227,7 +2227,7 @@
|
||||
to_chat(exposed_human, span_notice("Your hair starts growing at an incredible speed!"))
|
||||
exposed_human.hairstyle = "Very Long Hair"
|
||||
exposed_human.facial_hairstyle = "Beard (Very Long)"
|
||||
exposed_human.update_hair(is_creating = TRUE)
|
||||
exposed_human.update_body_parts()
|
||||
|
||||
/datum/reagent/concentrated_barbers_aid/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
. = ..()
|
||||
@@ -2249,7 +2249,7 @@
|
||||
else
|
||||
message = span_notice("Your scalp mutates, a full head of hair sprouting from it.")
|
||||
to_chat(M, message)
|
||||
human_mob.update_hair(is_creating = TRUE)
|
||||
human_mob.update_body_parts()
|
||||
|
||||
/datum/reagent/baldium
|
||||
name = "Baldium"
|
||||
@@ -2269,7 +2269,7 @@
|
||||
to_chat(exposed_human, span_danger("Your hair is falling out in clumps!"))
|
||||
exposed_human.hairstyle = "Bald"
|
||||
exposed_human.facial_hairstyle = "Shaved"
|
||||
exposed_human.update_hair(is_creating = TRUE)
|
||||
exposed_human.update_body_parts()
|
||||
|
||||
/datum/reagent/saltpetre
|
||||
name = "Saltpetre"
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
if(affected_human.gender == MALE)
|
||||
to_chat(affected_human, span_warning("Your chin itches."))
|
||||
affected_human.facial_hairstyle = "Beard (Full)"
|
||||
affected_human.update_hair(is_creating = TRUE)
|
||||
affected_human.update_body_parts()
|
||||
//Only like gross food
|
||||
affected_human.dna?.species.liked_food = GROSS
|
||||
affected_human.dna?.species.disliked_food = NONE
|
||||
|
||||
@@ -30,8 +30,6 @@
|
||||
var/limb_id = SPECIES_HUMAN
|
||||
//Defines what sprite the limb should use if it is also sexually dimorphic.
|
||||
VAR_PROTECTED/limb_gender = "m"
|
||||
///Does this limb have a greyscale version?
|
||||
var/uses_mutcolor = TRUE
|
||||
///Is there a sprite difference between male and female?
|
||||
var/is_dimorphic = FALSE
|
||||
///The actual color a limb is drawn as, set by /proc/update_limb()
|
||||
@@ -660,7 +658,7 @@
|
||||
else
|
||||
skin_tone = ""
|
||||
|
||||
if(((MUTCOLORS in owner_species.species_traits) || (DYNCOLORS in owner_species.species_traits)) && uses_mutcolor) //Ethereal code. Motherfuckers.
|
||||
if(((MUTCOLORS in owner_species.species_traits) || (DYNCOLORS in owner_species.species_traits))) //Ethereal code. Motherfuckers.
|
||||
if(owner_species.fixed_mut_color)
|
||||
species_color = owner_species.fixed_mut_color
|
||||
else
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
synchronize_bodytypes(phantom_owner)
|
||||
phantom_owner.update_health_hud() //update the healthdoll
|
||||
phantom_owner.update_body()
|
||||
phantom_owner.update_hair()
|
||||
phantom_owner.update_body_parts()
|
||||
|
||||
if(!drop_loc) // drop_loc = null happens when a "dummy human" used for rendering icons on prefs screen gets its limbs replaced.
|
||||
qdel(src)
|
||||
@@ -418,6 +418,21 @@
|
||||
pill_action.Grant(new_head_owner)
|
||||
break
|
||||
|
||||
///Transfer existing hair properties to the new human.
|
||||
if(!special && ishuman(new_head_owner))
|
||||
var/mob/living/carbon/human/sexy_chad = new_head_owner
|
||||
sexy_chad.hairstyle = hair_style
|
||||
sexy_chad.hair_color = hair_color
|
||||
sexy_chad.facial_hair_color = facial_hair_color
|
||||
sexy_chad.facial_hairstyle = facial_hairstyle
|
||||
if(hair_gradient_style || facial_hair_gradient_style)
|
||||
LAZYSETLEN(sexy_chad.grad_style, GRADIENTS_LEN)
|
||||
LAZYSETLEN(sexy_chad.grad_color, GRADIENTS_LEN)
|
||||
sexy_chad.grad_style[GRADIENT_HAIR_KEY] = hair_gradient_style
|
||||
sexy_chad.grad_color[GRADIENT_HAIR_KEY] = hair_gradient_color
|
||||
sexy_chad.grad_style[GRADIENT_FACIAL_HAIR_KEY] = facial_hair_gradient_style
|
||||
sexy_chad.grad_color[GRADIENT_FACIAL_HAIR_KEY] = facial_hair_gradient_color
|
||||
|
||||
new_head_owner.updatehealth()
|
||||
new_head_owner.update_body()
|
||||
new_head_owner.update_damage_overlays()
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
#define SET_OVERLAY_VALUE(X,Y,Z) if(X) X.Y = Z
|
||||
|
||||
///Part of `update_limb()`, this proc does what the name implies.
|
||||
/obj/item/bodypart/head/proc/update_hair_and_lips()
|
||||
var/mob/living/carbon/human/human_head_owner = owner
|
||||
var/datum/species/owner_species = human_head_owner.dna.species
|
||||
|
||||
if(human_head_owner.lip_style && (LIPS in owner_species.species_traits))
|
||||
lip_style = human_head_owner.lip_style
|
||||
lip_color = human_head_owner.lip_color
|
||||
else
|
||||
lip_style = null
|
||||
lip_color = "white"
|
||||
|
||||
///FACIAL HAIR CHECKS START
|
||||
//we check if our hat or helmet hides our facial hair.
|
||||
facial_hair_hidden = FALSE
|
||||
if(human_head_owner.head)
|
||||
var/obj/item/hat = human_head_owner.head
|
||||
if(hat.flags_inv & HIDEFACIALHAIR)
|
||||
facial_hair_hidden = TRUE
|
||||
|
||||
if(human_head_owner.wear_mask)
|
||||
var/obj/item/mask = human_head_owner.wear_mask
|
||||
if(mask.flags_inv & HIDEFACIALHAIR)
|
||||
facial_hair_hidden = TRUE
|
||||
///FACIAL HAIR CHECKS END
|
||||
///HAIR CHECKS START
|
||||
hair_hidden = FALSE
|
||||
if(human_head_owner.head)
|
||||
var/obj/item/hat = human_head_owner.head
|
||||
if(hat.flags_inv & HIDEHAIR)
|
||||
hair_hidden = TRUE
|
||||
|
||||
if(human_head_owner.w_uniform)
|
||||
var/obj/item/item_uniform = human_head_owner.w_uniform
|
||||
if(item_uniform.flags_inv & HIDEHAIR)
|
||||
hair_hidden = TRUE
|
||||
|
||||
if(human_head_owner.wear_mask)
|
||||
var/obj/item/mask = human_head_owner.wear_mask
|
||||
if(mask.flags_inv & HIDEHAIR)
|
||||
hair_hidden = TRUE
|
||||
///HAIR CHECKS END
|
||||
|
||||
if(!hair_hidden && !owner.getorganslot(ORGAN_SLOT_BRAIN) && !(NOBLOOD in species_flags_list))
|
||||
show_debrained = TRUE
|
||||
else
|
||||
show_debrained = FALSE
|
||||
|
||||
var/datum/sprite_accessory/sprite_accessory
|
||||
|
||||
facial_overlay = null
|
||||
facial_gradient_overlay = null
|
||||
hair_overlay = null
|
||||
hair_gradient_overlay = null
|
||||
|
||||
hair_alpha = owner_species.hair_alpha
|
||||
hair_color = human_head_owner.hair_color
|
||||
facial_hair_color = human_head_owner.facial_hair_color
|
||||
fixed_hair_color = owner_species.fixed_mut_color //Can be null
|
||||
hair_style = human_head_owner.hairstyle
|
||||
facial_hairstyle = human_head_owner.facial_hairstyle
|
||||
|
||||
|
||||
if(facial_hairstyle && !facial_hair_hidden && (FACEHAIR in species_flags_list))
|
||||
sprite_accessory = GLOB.facial_hairstyles_list[facial_hairstyle]
|
||||
if(sprite_accessory)
|
||||
//Create the overlay
|
||||
facial_overlay = mutable_appearance(sprite_accessory.icon, sprite_accessory.icon_state, -HAIR_LAYER)
|
||||
facial_overlay.overlays += emissive_blocker(facial_overlay.icon, facial_overlay.icon_state, alpha = hair_alpha)
|
||||
//Gradients
|
||||
facial_hair_gradient_style = LAZYACCESS(human_head_owner.grad_style, GRADIENT_FACIAL_HAIR_KEY)
|
||||
if(facial_hair_gradient_style)
|
||||
facial_hair_gradient_color = LAZYACCESS(human_head_owner.grad_color, GRADIENT_FACIAL_HAIR_KEY)
|
||||
facial_gradient_overlay = make_gradient_overlay(sprite_accessory.icon, sprite_accessory.icon_state, HAIR_LAYER, GLOB.facial_hair_gradients_list[facial_hair_gradient_style], facial_hair_gradient_color)
|
||||
|
||||
facial_overlay.overlays += emissive_blocker(sprite_accessory.icon, sprite_accessory.icon_state, alpha = hair_alpha)
|
||||
|
||||
if(!hair_hidden && !show_debrained && (HAIR in species_flags_list))
|
||||
sprite_accessory = GLOB.hairstyles_list[hair_style]
|
||||
if(sprite_accessory)
|
||||
hair_overlay = mutable_appearance(sprite_accessory.icon, sprite_accessory.icon_state, -HAIR_LAYER)
|
||||
hair_overlay.overlays += emissive_blocker(hair_overlay.icon, hair_overlay.icon_state, alpha = hair_alpha)
|
||||
hair_gradient_style = LAZYACCESS(human_head_owner.grad_style, GRADIENT_HAIR_KEY)
|
||||
if(hair_gradient_style)
|
||||
hair_gradient_color = LAZYACCESS(human_head_owner.grad_color, GRADIENT_HAIR_KEY)
|
||||
hair_gradient_overlay = make_gradient_overlay(sprite_accessory.icon, sprite_accessory.icon_state, HAIR_LAYER, GLOB.hair_gradients_list[hair_gradient_style], hair_gradient_color)
|
||||
|
||||
//CREATION-ONLY END
|
||||
//HAIR COLOR START
|
||||
if(!override_hair_color)
|
||||
if(hair_color_source)
|
||||
if(hair_color_source == "fixedmutcolor")
|
||||
SET_OVERLAY_VALUE(facial_overlay, color, fixed_hair_color)
|
||||
SET_OVERLAY_VALUE(hair_overlay, color, fixed_hair_color)
|
||||
else if(hair_color_source == "mutcolor")
|
||||
SET_OVERLAY_VALUE(facial_overlay, color, facial_hair_color)
|
||||
SET_OVERLAY_VALUE(hair_overlay, color, hair_color)
|
||||
else
|
||||
SET_OVERLAY_VALUE(facial_overlay, color, hair_color_source)
|
||||
SET_OVERLAY_VALUE(hair_overlay, color, hair_color_source)
|
||||
else
|
||||
SET_OVERLAY_VALUE(facial_overlay, color, facial_hair_color)
|
||||
SET_OVERLAY_VALUE(hair_overlay, color, hair_color)
|
||||
else
|
||||
SET_OVERLAY_VALUE(facial_overlay, color, override_hair_color)
|
||||
SET_OVERLAY_VALUE(hair_overlay, color, override_hair_color)
|
||||
//HAIR COLOR END
|
||||
|
||||
#undef SET_OVERLAY_VALUE
|
||||
@@ -166,7 +166,6 @@
|
||||
|
||||
return ..()
|
||||
|
||||
#define SET_OVERLAY_VALUE(X,Y,Z) if(X) X.Y = Z
|
||||
/obj/item/bodypart/head/update_limb(dropping_limb, is_creating)
|
||||
. = ..()
|
||||
|
||||
@@ -178,117 +177,10 @@
|
||||
lip_style = null
|
||||
stored_lipstick_trait = null
|
||||
|
||||
else if(!animal_origin && ishuman(owner))
|
||||
|
||||
var/mob/living/carbon/human/human_head_owner = owner
|
||||
var/datum/species/owner_species = human_head_owner.dna.species
|
||||
|
||||
if(human_head_owner.lip_style && (LIPS in owner_species.species_traits))
|
||||
lip_style = human_head_owner.lip_style
|
||||
lip_color = human_head_owner.lip_color
|
||||
else
|
||||
lip_style = null
|
||||
lip_color = "white"
|
||||
|
||||
///FACIAL HAIR CHECKS START
|
||||
//we check if our hat or helmet hides our facial hair.
|
||||
facial_hair_hidden = FALSE
|
||||
if(human_head_owner.head)
|
||||
var/obj/item/hat = human_head_owner.head
|
||||
if(hat.flags_inv & HIDEFACIALHAIR)
|
||||
facial_hair_hidden = TRUE
|
||||
|
||||
if(human_head_owner.wear_mask)
|
||||
var/obj/item/mask = human_head_owner.wear_mask
|
||||
if(mask.flags_inv & HIDEFACIALHAIR)
|
||||
facial_hair_hidden = TRUE
|
||||
///FACIAL HAIR CHECKS END
|
||||
///HAIR CHECKS START
|
||||
hair_hidden = FALSE
|
||||
if(human_head_owner.head)
|
||||
var/obj/item/hat = human_head_owner.head
|
||||
if(hat.flags_inv & HIDEHAIR)
|
||||
hair_hidden = TRUE
|
||||
|
||||
if(human_head_owner.w_uniform)
|
||||
var/obj/item/item_uniform = human_head_owner.w_uniform
|
||||
if(item_uniform.flags_inv & HIDEHAIR)
|
||||
hair_hidden = TRUE
|
||||
|
||||
if(human_head_owner.wear_mask)
|
||||
var/obj/item/mask = human_head_owner.wear_mask
|
||||
if(mask.flags_inv & HIDEHAIR)
|
||||
hair_hidden = TRUE
|
||||
///HAIR CHECKS END
|
||||
|
||||
if(!hair_hidden && !owner.getorgan(/obj/item/organ/internal/brain) && !(NOBLOOD in species_flags_list))
|
||||
show_debrained = TRUE
|
||||
else
|
||||
show_debrained = FALSE
|
||||
|
||||
//CREATION-ONLY START
|
||||
if(is_creating)
|
||||
var/datum/sprite_accessory/sprite_accessory
|
||||
|
||||
facial_overlay = null
|
||||
facial_gradient_overlay = null
|
||||
hair_overlay = null
|
||||
hair_gradient_overlay = null
|
||||
|
||||
hair_alpha = owner_species.hair_alpha
|
||||
hair_color = human_head_owner.hair_color
|
||||
facial_hair_color = human_head_owner.facial_hair_color
|
||||
fixed_hair_color = owner_species.fixed_mut_color //Can be null
|
||||
hair_style = human_head_owner.hairstyle
|
||||
facial_hairstyle = human_head_owner.facial_hairstyle
|
||||
if(!animal_origin && ishuman(owner))
|
||||
update_hair_and_lips()
|
||||
|
||||
|
||||
if(facial_hairstyle && !facial_hair_hidden && (FACEHAIR in species_flags_list))
|
||||
sprite_accessory = GLOB.facial_hairstyles_list[facial_hairstyle]
|
||||
if(sprite_accessory)
|
||||
//Create the overlay
|
||||
facial_overlay = mutable_appearance(sprite_accessory.icon, sprite_accessory.icon_state, -HAIR_LAYER)
|
||||
facial_overlay.overlays += emissive_blocker(facial_overlay.icon, facial_overlay.icon_state, alpha = hair_alpha)
|
||||
//Gradients
|
||||
facial_hair_gradient_style = LAZYACCESS(human_head_owner.grad_style, GRADIENT_FACIAL_HAIR_KEY)
|
||||
if(facial_hair_gradient_style)
|
||||
facial_hair_gradient_color = LAZYACCESS(human_head_owner.grad_color, GRADIENT_FACIAL_HAIR_KEY)
|
||||
facial_gradient_overlay = make_gradient_overlay(sprite_accessory.icon, sprite_accessory.icon_state, HAIR_LAYER, GLOB.facial_hair_gradients_list[facial_hair_gradient_style], facial_hair_gradient_color)
|
||||
|
||||
facial_overlay.overlays += emissive_blocker(sprite_accessory.icon, sprite_accessory.icon_state, alpha = hair_alpha)
|
||||
|
||||
if(!hair_hidden && !show_debrained && (HAIR in species_flags_list))
|
||||
sprite_accessory = GLOB.hairstyles_list[hair_style]
|
||||
if(sprite_accessory)
|
||||
hair_overlay = mutable_appearance(sprite_accessory.icon, sprite_accessory.icon_state, -HAIR_LAYER)
|
||||
hair_overlay.overlays += emissive_blocker(hair_overlay.icon, hair_overlay.icon_state, alpha = hair_alpha)
|
||||
hair_gradient_style = LAZYACCESS(human_head_owner.grad_style, GRADIENT_HAIR_KEY)
|
||||
if(hair_gradient_style)
|
||||
hair_gradient_color = LAZYACCESS(human_head_owner.grad_color, GRADIENT_HAIR_KEY)
|
||||
hair_gradient_overlay = make_gradient_overlay(sprite_accessory.icon, sprite_accessory.icon_state, HAIR_LAYER, GLOB.hair_gradients_list[hair_gradient_style], hair_gradient_color)
|
||||
|
||||
//CREATION-ONLY END
|
||||
//HAIR COLOR START
|
||||
if(!override_hair_color)
|
||||
if(hair_color_source)
|
||||
if(hair_color_source == "fixedmutcolor")
|
||||
SET_OVERLAY_VALUE(facial_overlay, color, fixed_hair_color)
|
||||
SET_OVERLAY_VALUE(hair_overlay, color, fixed_hair_color)
|
||||
else if(hair_color_source == "mutcolor")
|
||||
SET_OVERLAY_VALUE(facial_overlay, color, facial_hair_color)
|
||||
SET_OVERLAY_VALUE(hair_overlay, color, hair_color)
|
||||
else
|
||||
SET_OVERLAY_VALUE(facial_overlay, color, hair_color_source)
|
||||
SET_OVERLAY_VALUE(hair_overlay, color, hair_color_source)
|
||||
else
|
||||
SET_OVERLAY_VALUE(facial_overlay, color, facial_hair_color)
|
||||
SET_OVERLAY_VALUE(hair_overlay, color, hair_color)
|
||||
else
|
||||
SET_OVERLAY_VALUE(facial_overlay, color, override_hair_color)
|
||||
SET_OVERLAY_VALUE(hair_overlay, color, override_hair_color)
|
||||
//HAIR COLOR END
|
||||
|
||||
#undef SET_OVERLAY_VALUE
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/obj/item/bodypart/head/get_limb_icon(dropped, draw_external_organs)
|
||||
@@ -361,10 +253,11 @@
|
||||
. += hair_overlay
|
||||
if(hair_gradient_overlay)
|
||||
. += hair_gradient_overlay
|
||||
///Set the haircolor of a human. Override instead sets the override value, it will not be changed away from the override value until override is set to null.
|
||||
/mob/proc/set_haircolor(hex_string, override)
|
||||
|
||||
/mob/living/proc/set_haircolor(hex_string, override)
|
||||
return
|
||||
|
||||
///Set the haircolor of a human. Override instead sets the override value, it will not be changed away from the override value until override is set to null.
|
||||
/mob/living/carbon/human/set_haircolor(hex_string, override)
|
||||
var/obj/item/bodypart/head/my_head = get_bodypart(BODY_ZONE_HEAD)
|
||||
if(!my_head)
|
||||
@@ -373,8 +266,8 @@
|
||||
if(override)
|
||||
my_head.override_hair_color = hex_string
|
||||
else
|
||||
my_head.hair_color = hex_string
|
||||
update_hair(is_creating = TRUE)
|
||||
hair_color = hex_string
|
||||
update_body_parts()
|
||||
|
||||
/obj/item/bodypart/head/proc/make_gradient_overlay(file, icon, layer, datum/sprite_accessory/gradient, grad_color)
|
||||
RETURN_TYPE(/mutable_appearance)
|
||||
|
||||
@@ -2,30 +2,67 @@
|
||||
icon_greyscale = 'icons/mob/species/ethereal/bodyparts.dmi'
|
||||
limb_id = SPECIES_ETHEREAL
|
||||
is_dimorphic = FALSE
|
||||
uses_mutcolor = TRUE
|
||||
|
||||
/obj/item/bodypart/head/ethereal/update_limb(dropping_limb, is_creating)
|
||||
. = ..()
|
||||
if(isethereal(owner))
|
||||
var/mob/living/carbon/human/potato_oc = owner
|
||||
var/datum/species/ethereal/eth_holder = potato_oc.dna.species
|
||||
species_color = eth_holder.current_color
|
||||
|
||||
/obj/item/bodypart/chest/ethereal
|
||||
icon_greyscale = 'icons/mob/species/ethereal/bodyparts.dmi'
|
||||
limb_id = SPECIES_ETHEREAL
|
||||
is_dimorphic = FALSE
|
||||
uses_mutcolor = TRUE
|
||||
|
||||
/obj/item/bodypart/chest/ethereal/update_limb(dropping_limb, is_creating)
|
||||
. = ..()
|
||||
if(isethereal(owner))
|
||||
var/mob/living/carbon/human/potato_oc = owner
|
||||
var/datum/species/ethereal/eth_holder = potato_oc.dna.species
|
||||
species_color = eth_holder.current_color
|
||||
|
||||
/obj/item/bodypart/l_arm/ethereal
|
||||
icon_greyscale = 'icons/mob/species/ethereal/bodyparts.dmi'
|
||||
limb_id = SPECIES_ETHEREAL
|
||||
uses_mutcolor = TRUE
|
||||
|
||||
/obj/item/bodypart/l_arm/ethereal/update_limb(dropping_limb, is_creating)
|
||||
. = ..()
|
||||
if(isethereal(owner))
|
||||
var/mob/living/carbon/human/potato_oc = owner
|
||||
var/datum/species/ethereal/eth_holder = potato_oc.dna.species
|
||||
species_color = eth_holder.current_color
|
||||
|
||||
/obj/item/bodypart/r_arm/ethereal
|
||||
icon_greyscale = 'icons/mob/species/ethereal/bodyparts.dmi'
|
||||
limb_id = SPECIES_ETHEREAL
|
||||
uses_mutcolor = TRUE
|
||||
|
||||
/obj/item/bodypart/r_arm/ethereal/update_limb(dropping_limb, is_creating)
|
||||
. = ..()
|
||||
if(isethereal(owner))
|
||||
var/mob/living/carbon/human/potato_oc = owner
|
||||
var/datum/species/ethereal/eth_holder = potato_oc.dna.species
|
||||
species_color = eth_holder.current_color
|
||||
|
||||
|
||||
/obj/item/bodypart/l_leg/ethereal
|
||||
icon_greyscale = 'icons/mob/species/ethereal/bodyparts.dmi'
|
||||
limb_id = SPECIES_ETHEREAL
|
||||
uses_mutcolor = TRUE
|
||||
|
||||
/obj/item/bodypart/l_leg/ethereal/update_limb(dropping_limb, is_creating)
|
||||
. = ..()
|
||||
if(isethereal(owner))
|
||||
var/mob/living/carbon/human/potato_oc = owner
|
||||
var/datum/species/ethereal/eth_holder = potato_oc.dna.species
|
||||
species_color = eth_holder.current_color
|
||||
|
||||
/obj/item/bodypart/r_leg/ethereal
|
||||
icon_greyscale = 'icons/mob/species/ethereal/bodyparts.dmi'
|
||||
limb_id = SPECIES_ETHEREAL
|
||||
uses_mutcolor = TRUE
|
||||
|
||||
/obj/item/bodypart/r_leg/ethereal/update_limb(dropping_limb, is_creating)
|
||||
. = ..()
|
||||
if(isethereal(owner))
|
||||
var/mob/living/carbon/human/potato_oc = owner
|
||||
var/datum/species/ethereal/eth_holder = potato_oc.dna.species
|
||||
species_color = eth_holder.current_color
|
||||
|
||||
@@ -1,38 +1,31 @@
|
||||
/obj/item/bodypart/head/lizard
|
||||
icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi'
|
||||
limb_id = SPECIES_LIZARD
|
||||
uses_mutcolor = TRUE
|
||||
is_dimorphic = FALSE
|
||||
|
||||
/obj/item/bodypart/chest/lizard
|
||||
icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi'
|
||||
uses_mutcolor = TRUE
|
||||
limb_id = SPECIES_LIZARD
|
||||
is_dimorphic = TRUE
|
||||
|
||||
/obj/item/bodypart/l_arm/lizard
|
||||
icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi'
|
||||
uses_mutcolor = TRUE
|
||||
limb_id = SPECIES_LIZARD
|
||||
|
||||
/obj/item/bodypart/r_arm/lizard
|
||||
icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi'
|
||||
uses_mutcolor = TRUE
|
||||
limb_id = SPECIES_LIZARD
|
||||
|
||||
/obj/item/bodypart/l_leg/lizard
|
||||
icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi'
|
||||
uses_mutcolor = TRUE
|
||||
limb_id = SPECIES_LIZARD
|
||||
|
||||
/obj/item/bodypart/r_leg/lizard
|
||||
icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi'
|
||||
uses_mutcolor = TRUE
|
||||
limb_id = SPECIES_LIZARD
|
||||
|
||||
/obj/item/bodypart/l_leg/digitigrade
|
||||
icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi'
|
||||
uses_mutcolor = TRUE
|
||||
limb_id = BODYPART_TYPE_DIGITIGRADE
|
||||
bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_DIGITIGRADE
|
||||
|
||||
@@ -59,7 +52,6 @@
|
||||
|
||||
/obj/item/bodypart/r_leg/digitigrade
|
||||
icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi'
|
||||
uses_mutcolor = TRUE
|
||||
limb_id = BODYPART_TYPE_DIGITIGRADE
|
||||
bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_DIGITIGRADE
|
||||
|
||||
|
||||
@@ -4378,6 +4378,7 @@
|
||||
#include "code\modules\surgery\advanced\bioware\vein_threading.dm"
|
||||
#include "code\modules\surgery\bodyparts\_bodyparts.dm"
|
||||
#include "code\modules\surgery\bodyparts\dismemberment.dm"
|
||||
#include "code\modules\surgery\bodyparts\hair.dm"
|
||||
#include "code\modules\surgery\bodyparts\head.dm"
|
||||
#include "code\modules\surgery\bodyparts\helpers.dm"
|
||||
#include "code\modules\surgery\bodyparts\parts.dm"
|
||||
|
||||
Reference in New Issue
Block a user