diff --git a/modular_skyrat/master_files/code/datums/bodypart_overlays/bodypart_overlay.dm b/modular_zubbers/code/datums/bodypart_overlays/bodypart_overlay.dm similarity index 100% rename from modular_skyrat/master_files/code/datums/bodypart_overlays/bodypart_overlay.dm rename to modular_zubbers/code/datums/bodypart_overlays/bodypart_overlay.dm diff --git a/modular_skyrat/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm b/modular_zubbers/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm similarity index 94% rename from modular_skyrat/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm rename to modular_zubbers/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm index e3dc784f853..1cd27b01ee6 100644 --- a/modular_skyrat/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm +++ b/modular_zubbers/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm @@ -34,12 +34,13 @@ /datum/bodypart_overlay/mutant/proc/set_appearance_from_dna(datum/dna/dna, accessory_name, feature_key) if(isnull(feature_key)) // if not explicitly set, just use the feature_key of the bodypart_overlay feature_key = src.feature_key - if(!dna.mutant_bodyparts[feature_key]) + var/list/mutantparts_list = dna.mutant_bodyparts[feature_key] ? dna.mutant_bodyparts : dna.species.mutant_bodyparts + if(!(feature_key in mutantparts_list) || !mutantparts_list[feature_key]) return FALSE - sprite_datum = fetch_sprite_datum_from_name(accessory_name ? accessory_name : dna.mutant_bodyparts[feature_key][MUTANT_INDEX_NAME]) + sprite_datum = fetch_sprite_datum_from_name(accessory_name ? accessory_name : mutantparts_list[feature_key][MUTANT_INDEX_NAME]) modsuit_affected = sprite_datum.use_custom_mod_icon - draw_color = dna.mutant_bodyparts[feature_key][MUTANT_INDEX_COLOR_LIST] - build_emissive_eligibility(dna.mutant_bodyparts[feature_key][MUTANT_INDEX_EMISSIVE_LIST]) + draw_color = mutantparts_list[feature_key][MUTANT_INDEX_COLOR_LIST] + build_emissive_eligibility(mutantparts_list[feature_key][MUTANT_INDEX_EMISSIVE_LIST]) cache_key = jointext(generate_icon_cache(), "_") return TRUE @@ -87,9 +88,9 @@ /datum/bodypart_overlay/mutant/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner) var/mob/living/carbon/human/human = bodypart_owner.owner - if(!human) + if(!istype(human)) return TRUE - return !sprite_datum.is_hidden(human) + return !isnull(sprite_datum) && !sprite_datum.is_hidden(human) /// Get the images we need to draw on the person. Called from get_overlay() which is called from _bodyparts.dm. @@ -183,16 +184,18 @@ switch(sprite_datum.color_src) if(USE_ONE_COLOR) overlay.color = islist(draw_color) ? draw_color[i] : draw_color - overlay.alpha = alpha if(USE_MATRIXED_COLORS) - overlay.color = islist(draw_color) ? draw_color[i] : draw_color - overlay.alpha = alpha + if (i > length(draw_color)) + overlay.color = islist(draw_color) ? draw_color[length(draw_color)] : draw_color + else + overlay.color = islist(draw_color) ? draw_color[i] : draw_color i++ else overlay.color = limb?.color - overlay.alpha = alpha + + overlay.alpha = alpha /** diff --git a/tgstation.dme b/tgstation.dme index 285838616b2..867b2e1dc80 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7010,8 +7010,6 @@ #include "modular_skyrat\master_files\code\datums\emotes.dm" #include "modular_skyrat\master_files\code\datums\ert.dm" #include "modular_skyrat\master_files\code\datums\outfit.dm" -#include "modular_skyrat\master_files\code\datums\bodypart_overlays\bodypart_overlay.dm" -#include "modular_skyrat\master_files\code\datums\bodypart_overlays\mutant_bodypart_overlay.dm" #include "modular_skyrat\master_files\code\datums\components\crafting.dm" #include "modular_skyrat\master_files\code\datums\components\damage_tracker.dm" #include "modular_skyrat\master_files\code\datums\components\fullauto.dm" @@ -8965,6 +8963,8 @@ #include "modular_zubbers\code\datums\ai_laws\laws_antagonistic.dm" #include "modular_zubbers\code\datums\ai_laws\laws_neutral.dm" #include "modular_zubbers\code\datums\ai_laws\laws_station_sided.dm" +#include "modular_zubbers\code\datums\bodypart_overlays\bodypart_overlay.dm" +#include "modular_zubbers\code\datums\bodypart_overlays\mutant_bodypart_overlay.dm" #include "modular_zubbers\code\datums\brain_damage\magic.dm" #include "modular_zubbers\code\datums\components\nanites.dm" #include "modular_zubbers\code\datums\components\organ_emp.dm"