mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
Merge pull request #5147 from KasparoVy/tail-markings
Refactors Markings, Adds Tail (some body and head) markings, Adds Alt heads, Secondary (F)Hair Themes, Darkens Vulp/Taj + Unathi horns/frills, Sprite adjustments and more...
This commit is contained in:
@@ -104,9 +104,11 @@
|
||||
var/obj/item/organ/external/head/H = target.get_organ("head")
|
||||
var/datum/robolimb/robohead = all_robolimbs[H.model]
|
||||
if(robohead.is_monitor) //Ensures that if an IPC gets a head that's got a human hair wig attached to their body, the hair won't wipe.
|
||||
var/list/marking_styles = params2list(target.m_styles)
|
||||
H.h_style = ""
|
||||
H.f_style = ""
|
||||
target.m_style = ""
|
||||
marking_styles["head"] = "None"
|
||||
target.m_styles = list2params(marking_styles)
|
||||
E.status &= ~ORGAN_DESTROYED
|
||||
if(E.children)
|
||||
for(var/obj/item/organ/external/C in E.children)
|
||||
|
||||
@@ -856,11 +856,11 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
|
||||
/obj/item/organ/external/proc/mutate()
|
||||
src.status |= ORGAN_MUTATED
|
||||
if(owner) owner.update_body()
|
||||
if(owner) owner.update_body(0, 1) //Forces all bodyparts to update in order to correctly render the deformed sprite.
|
||||
|
||||
/obj/item/organ/external/proc/unmutate()
|
||||
src.status &= ~ORGAN_MUTATED
|
||||
if(owner) owner.update_body()
|
||||
if(owner) owner.update_body(0, 1) //Forces all bodyparts to update in order to correctly return them to normal.
|
||||
|
||||
/obj/item/organ/external/proc/get_damage() //returns total damage
|
||||
return max(brute_dam + burn_dam - perma_injury, perma_injury) //could use health?
|
||||
|
||||
@@ -73,13 +73,17 @@ var/global/list/limb_icon_cache = list()
|
||||
overlays |= lip_icon
|
||||
mob_icon.Blend(lip_icon, ICON_OVERLAY)
|
||||
|
||||
if(owner.m_style)
|
||||
var/datum/sprite_accessory/marking_style = marking_styles_list[owner.m_style]
|
||||
if(marking_style && marking_style.species_allowed && (species.name in marking_style.species_allowed) && marking_style.marking_location == "head")
|
||||
var/icon/markings_s = new/icon("icon" = marking_style.icon, "icon_state" = "[marking_style.icon_state]_s")
|
||||
if(marking_style.do_colouration)
|
||||
markings_s.Blend(rgb(owner.r_markings, owner.g_markings, owner.b_markings), ICON_ADD)
|
||||
overlays |= markings_s
|
||||
var/list/marking_styles = params2list(owner.m_styles)
|
||||
var/head_marking = marking_styles["head"]
|
||||
if(head_marking != "None")
|
||||
var/list/marking_colours = params2list(owner.m_colours)
|
||||
marking_colours["head"] = sanitize_hexcolor(marking_colours["head"])
|
||||
var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking]
|
||||
if(head_marking_style && head_marking_style.species_allowed && (species.name in head_marking_style.species_allowed) && head_marking_style.marking_location == "head")
|
||||
var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s")
|
||||
if(head_marking_style.do_colouration)
|
||||
h_marking_s.Blend(rgb(hex2num(copytext(marking_colours["head"], 2, 4)), hex2num(copytext(marking_colours["head"], 4, 6)), hex2num(copytext(marking_colours["head"], 6, 8))), ICON_ADD)
|
||||
overlays |= h_marking_s
|
||||
|
||||
if(H.ha_style)
|
||||
var/datum/sprite_accessory/head_accessory_style = head_accessory_styles_list[H.ha_style]
|
||||
@@ -135,6 +139,10 @@ var/global/list/limb_icon_cache = list()
|
||||
else if(status & ORGAN_ROBOT)
|
||||
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
else
|
||||
if(limb_name == "head")
|
||||
var/obj/item/organ/external/head/head_organ = src
|
||||
head_organ.handle_alt_icon()
|
||||
|
||||
if(status & ORGAN_MUTATED)
|
||||
mob_icon = new /icon(species.deform, "[icon_name][gender ? "_[gender]" : ""]")
|
||||
else
|
||||
|
||||
@@ -140,11 +140,15 @@
|
||||
gendered_icon = 1
|
||||
encased = "skull"
|
||||
var/can_intake_reagents = 1
|
||||
var/alt_head = "None"
|
||||
|
||||
//Hair colour and style
|
||||
var/r_hair = 0
|
||||
var/g_hair = 0
|
||||
var/b_hair = 0
|
||||
var/r_hair_sec = 0
|
||||
var/g_hair_sec = 0
|
||||
var/b_hair_sec = 0
|
||||
var/h_style = "Bald"
|
||||
|
||||
//Head accessory colour and style
|
||||
@@ -157,6 +161,9 @@
|
||||
var/r_facial = 0
|
||||
var/g_facial = 0
|
||||
var/b_facial = 0
|
||||
var/r_facial_sec = 0
|
||||
var/g_facial_sec = 0
|
||||
var/b_facial_sec = 0
|
||||
var/f_style = "Shaved"
|
||||
|
||||
/obj/item/organ/external/head/remove()
|
||||
@@ -193,3 +200,14 @@
|
||||
disfigure("brute")
|
||||
if(burn_dam > 40)
|
||||
disfigure("burn")
|
||||
|
||||
/obj/item/organ/external/head/proc/handle_alt_icon()
|
||||
if(alt_head && alt_heads_list[alt_head])
|
||||
var/datum/sprite_accessory/alt_heads/alternate_head = alt_heads_list[alt_head]
|
||||
if(alternate_head.icon_state)
|
||||
icon_name = alternate_head.icon_state
|
||||
else //If alternate_head.icon_state doesn't exist, that means alternate_head is "None", so default icon_name back to "head".
|
||||
icon_name = initial(icon_name)
|
||||
else //If alt_head is null, set it to "None" and default icon_name for sanity.
|
||||
alt_head = initial(alt_head)
|
||||
icon_name = initial(icon_name)
|
||||
|
||||
Reference in New Issue
Block a user