mirror of
https://github.com/Aurorastation/Aurora-Old.git
synced 2026-08-27 06:36:22 +01:00
Genetics Invisibility Fix
Ripped from Paradise/Bay code.
This commit is contained in:
@@ -136,8 +136,6 @@ Please contact me on #coderbus IRC. ~Carn x
|
||||
var/list/overlays_standing[TOTAL_LAYERS]
|
||||
var/list/overlays_lying[TOTAL_LAYERS]
|
||||
var/previous_damage_appearance // store what the body last looked like, so we only have to update it if something changed
|
||||
var/icon/race_icon
|
||||
var/icon/deform_icon
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/apply_overlay(cache_index)
|
||||
@@ -285,11 +283,14 @@ proc/get_damage_icon_part(damage_state, body_part)
|
||||
|
||||
//BEGIN CACHED ICON GENERATION.
|
||||
|
||||
//Icon is not cached, generate and store it.
|
||||
// Why don't we just make skeletons/shadows/golems a species? ~Z
|
||||
var/race_icon = (skeleton ? 'icons/mob/human_races/r_skeleton.dmi' : species.icobase)
|
||||
var/deform_icon = (skeleton ? 'icons/mob/human_races/r_skeleton.dmi' : species.icobase)
|
||||
|
||||
//Robotic limbs are handled in get_icon() so all we worry about are missing or dead limbs.
|
||||
//No icon stored, so we need to start with a basic one.
|
||||
var/datum/organ/external/chest = get_organ("chest")
|
||||
base_icon = chest.get_icon(g)
|
||||
base_icon = chest.get_icon(race_icon,deform_icon,g)
|
||||
|
||||
for(var/datum/organ/external/part in organs)
|
||||
|
||||
@@ -299,9 +300,9 @@ proc/get_damage_icon_part(damage_state, body_part)
|
||||
continue
|
||||
|
||||
if (istype(part, /datum/organ/external/groin) || istype(part, /datum/organ/external/head))
|
||||
temp = part.get_icon(g)
|
||||
temp = part.get_icon(race_icon,deform_icon,g)
|
||||
else
|
||||
temp = part.get_icon()
|
||||
temp = part.get_icon(race_icon,deform_icon)
|
||||
|
||||
if(part.status & ORGAN_DEAD)
|
||||
temp.ColorTone(necrosis_color_mod)
|
||||
@@ -486,18 +487,9 @@ proc/get_damage_icon_part(damage_state, body_part)
|
||||
|
||||
/mob/living/carbon/human/proc/update_mutantrace(var/update_icons=1)
|
||||
var/fat
|
||||
|
||||
if( FAT in mutations )
|
||||
fat = "fat"
|
||||
// var/g = "m"
|
||||
// if (gender == FEMALE) g = "f"
|
||||
//BS12 EDIT
|
||||
var/skeleton = (SKELETON in src.mutations)
|
||||
if(skeleton)
|
||||
race_icon = 'icons/mob/human_races/r_skeleton.dmi'
|
||||
else
|
||||
//Icon data is kept in species datums within the mob.
|
||||
race_icon = species.icobase
|
||||
deform_icon = species.deform
|
||||
|
||||
if(dna)
|
||||
switch(dna.mutantrace)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
proc/receive_chem(chemical as obj)
|
||||
return 0
|
||||
|
||||
/datum/organ/proc/get_icon()
|
||||
/datum/organ/proc/get_icon(var/icon/race_icon, var/icon/deform_icon)
|
||||
return icon('icons/mob/human.dmi',"blank")
|
||||
|
||||
//Handles chem traces
|
||||
|
||||
@@ -702,14 +702,14 @@ This function completely restores a damaged organ to perfect condition.
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/datum/organ/external/get_icon(gender="")
|
||||
/datum/organ/external/get_icon(var/icon/race_icon, var/icon/deform_icon,gender="")
|
||||
if (status & ORGAN_ROBOT && !(owner.species && owner.species.flags & IS_SYNTHETIC))
|
||||
return new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
|
||||
if (status & ORGAN_MUTATED)
|
||||
return new /icon(owner.deform_icon, "[icon_name][gender ? "_[gender]" : ""]")
|
||||
return new /icon(deform_icon, "[icon_name][gender ? "_[gender]" : ""]")
|
||||
|
||||
return new /icon(owner.race_icon, "[icon_name][gender ? "_[gender]" : ""]")
|
||||
return new /icon(race_icon, "[icon_name][gender ? "_[gender]" : ""]")
|
||||
|
||||
|
||||
/datum/organ/external/proc/is_usable()
|
||||
@@ -813,15 +813,15 @@ This function completely restores a damaged organ to perfect condition.
|
||||
body_part = HEAD
|
||||
var/disfigured = 0
|
||||
|
||||
/datum/organ/external/head/get_icon()
|
||||
/datum/organ/external/head/get_icon(var/icon/race_icon, var/icon/deform_icon)
|
||||
if (!owner)
|
||||
return ..()
|
||||
var/g = "m"
|
||||
if(owner.gender == FEMALE) g = "f"
|
||||
if (status & ORGAN_MUTATED)
|
||||
. = new /icon(owner.deform_icon, "[icon_name]_[g]")
|
||||
. = new /icon(deform_icon, "[icon_name]_[g]")
|
||||
else
|
||||
. = new /icon(owner.race_icon, "[icon_name]_[g]")
|
||||
. = new /icon(race_icon, "[icon_name]_[g]")
|
||||
|
||||
/datum/organ/external/head/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list())
|
||||
..(brute, burn, sharp, edge, used_weapon, forbidden_limbs)
|
||||
|
||||
Reference in New Issue
Block a user