From 5f67cf7a26ea3201f0158e6eca06a57325f88dde Mon Sep 17 00:00:00 2001 From: Cody Brittain <1779662+Generalcamo@users.noreply.github.com> Date: Sun, 6 Jul 2025 17:48:03 -0400 Subject: [PATCH] Prosthetics with lights now glow (#20725) ![image](https://github.com/user-attachments/assets/ece119d7-b755-4c25-a827-114281864df4) All prosthetics with lights now have emissives. Works with both IPCs and non-IPCs with appropriate prosthetics. --- code/modules/organs/internal/_internal.dm | 5 ++ code/modules/organs/organ_external.dm | 35 +++++++++++ code/modules/organs/organ_icon.dm | 57 ++++++++++++++--- code/modules/organs/robolimbs.dm | 14 +++++ .../organs/subtypes/augment/augments/tesla.dm | 3 + code/modules/organs/subtypes/industrial.dm | 28 +++++++++ code/modules/organs/subtypes/machine.dm | 2 + .../GeneralCamo - Prosthetic Glow.yml | 58 ++++++++++++++++++ icons/mob/human_races/augments_external.dmi | Bin 718 -> 799 bytes icons/mob/human_races/ipc/indricus.dmi | Bin 441 -> 565 bytes icons/mob/human_races/ipc/r_ind_bishop.dmi | Bin 3997 -> 4239 bytes .../mob/human_races/ipc/r_ind_hephaestus.dmi | Bin 2250 -> 3060 bytes icons/mob/human_races/ipc/r_ind_xion.dmi | Bin 1999 -> 2095 bytes icons/mob/human_races/ipc/r_ind_zenghu.dmi | Bin 1827 -> 2139 bytes icons/mob/human_races/ipc/r_industrial.dmi | Bin 6809 -> 8607 bytes icons/mob/human_races/ipc/raxus.dmi | Bin 452 -> 791 bytes icons/mob/human_races/tajara/tesla_limbs.dmi | Bin 888 -> 1193 bytes 17 files changed, 195 insertions(+), 7 deletions(-) create mode 100644 html/changelogs/GeneralCamo - Prosthetic Glow.yml diff --git a/code/modules/organs/internal/_internal.dm b/code/modules/organs/internal/_internal.dm index b6f29f66e61..7e8197ae3d6 100644 --- a/code/modules/organs/internal/_internal.dm +++ b/code/modules/organs/internal/_internal.dm @@ -7,7 +7,12 @@ var/unknown_pain_location = TRUE // if TRUE, pain messages will point to the parent organ, otherwise it will print the organ name var/toxin_type = "undefined" var/relative_size = 25 //Used for size calcs + /// The icon state to overlay on the mob var/on_mob_icon + /// If the icon state has an active overlay + var/active_overlay = FALSE + /// If the icon state has an active emissive overlay + var/active_emissive = FALSE var/list/possible_modifications = list("Normal","Assisted","Mechanical") //this is used in the character setup min_broken_damage = 10 //Internal organs are frail, man. diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index d1eacca3092..28a3a2beb3d 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -186,6 +186,13 @@ var/nymph_child + ///Whether the limb has an emissive icon state associated with it + var/is_emissive = FALSE + ///Whether the limb has an active overlay icon state associated with it + var/is_overlay = FALSE + ///Whether the limb is a tesla limb (required for special handling) + var/is_tesla = FALSE + /obj/item/organ/external/proc/invalidate_marking_cache() cached_markings = null @@ -320,6 +327,9 @@ robotize(robotize_type) drop_sound = 'sound/items/drop/prosthetic.ogg' pickup_sound = 'sound/items/pickup/prosthetic.ogg' + else + //HACK: Make sure non-emissive organs, if swapped to, are not treated as emissive. Robotized organs have their own handling, but we still need to cover the case where it is somehow swapped to an organic limb + is_emissive = initial(is_emissive) . = ..(mapload, FALSE) if(isnull(pain_disability_threshold)) @@ -702,6 +712,8 @@ This function completely restores a damaged organ to perfect condition. /obj/item/organ/external/proc/need_process() if((status & ORGAN_ASSISTED) && surge_damage) return TRUE + if(is_tesla && owner) + return TRUE if(BP_IS_ROBOTIC(src)) return FALSE if(get_pain()) @@ -721,6 +733,17 @@ This function completely restores a damaged organ to perfect condition. /obj/item/organ/external/process() if(owner) + //Specialized handling for tesla limbs. Checks if the limb currently has an associated tesla spine. Else, will disable the emissive and active overlays + if(is_tesla) + var/obj/item/organ/internal/augment/tesla/T = owner.internal_organs_by_name[BP_AUG_TESLA] + if(T && !T.is_broken()) + is_emissive = initial(is_emissive) + is_overlay = initial(is_overlay) + else + is_emissive = FALSE + is_overlay = FALSE + return + // Process wounds, doing healing etc. Only do this every few ticks to save processing power if(owner.life_tick % wound_update_accuracy == 0) update_wounds() @@ -1260,6 +1283,18 @@ Note that amputating the affected organ does in fact remove the infection from t desc = "[R.desc]" if(R.paintable || !isnull(override_robotize_painted)) painted = !isnull(override_robotize_painted) ? override_robotize_painted : TRUE + if(R.emissive) + is_emissive = TRUE + else + is_emissive = FALSE + if(R.overlay) + is_overlay = TRUE + else + is_overlay = FALSE + if(R.is_tesla) + is_tesla = TRUE + else + is_tesla = FALSE brute_mod = R.brute_mod burn_mod = R.burn_mod robotize_type = company diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index c97e1c50542..f79699eac7c 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -161,6 +161,24 @@ AddOverlays(organ_icon) mob_icon.Blend(organ_icon, ICON_OVERLAY) + if(O.blocks_emissive != EMISSIVE_BLOCK_NONE) { + var/mutable_appearance/organ_em_block = emissive_blocker(internal_organ_icon, O.item_state || O.icon_state, MOB_SHADOW_LAYER) + organ_em_block.dir = dir + mob_overlays += list(organ_em_block) + } + + if(O.active_overlay && !O.is_broken()) { + var/mutable_appearance/active_overlay = overlay_image(internal_organ_icon, "[O.item_state || O.icon_state]_overlay") + active_overlay.dir = dir + mob_overlays += list(active_overlay) + } + + if(O.active_emissive && !O.is_broken()) { + var/mutable_appearance/organ_em = emissive_appearance(internal_organ_icon, "[O.item_state || O.icon_state]_e", MOB_EMISSIVE_LAYER) + organ_em.dir = dir + mob_overlays += list(organ_em) + } + /obj/item/organ/external/var/icon_cache_key /obj/item/organ/external/proc/get_icon(var/skeletal) @@ -171,11 +189,24 @@ var/chosen_icon var/chosen_icon_state + mob_overlays = list() + if(force_icon) chosen_icon = force_icon chosen_icon_state = "[icon_name][gendered_icon ? "_[gender]" : ""]" mob_icon = new /icon(force_icon, chosen_icon_state) - AddOverlays(emissive_blocker(chosen_icon, chosen_icon_state)) + if(blocks_emissive != EMISSIVE_BLOCK_NONE) + var/mutable_appearance/limb_em_block = emissive_blocker(chosen_icon, chosen_icon_state, MOB_SHADOW_LAYER) + limb_em_block.dir = dir + mob_overlays += list(limb_em_block) + if(is_emissive && !is_broken()) + var/mutable_appearance/limb_em = emissive_appearance(chosen_icon, "[chosen_icon_state]_e", MOB_EMISSIVE_LAYER) + limb_em.dir = dir + mob_overlays += list(limb_em) + if(is_overlay && !is_broken()) + var/mutable_appearance/limb_overlay = overlay_image(chosen_icon, "[chosen_icon_state]_overlay") + limb_overlay.dir = dir + mob_overlays += list(limb_overlay) if((painted && skin_color) || robotize_type == PROSTHETIC_SYNTHSKIN) mob_icon.Blend(skin_color, ICON_ADD) if(!isnull(s_tone)) @@ -190,9 +221,15 @@ chosen_icon = 'icons/mob/human_races/human/r_human.dmi' chosen_icon_state = "[icon_name][gendered_icon ? "_[gender]" : ""]" mob_icon = new /icon(chosen_icon, chosen_icon_state) - var/mutable_appearance/limb_em_block = emissive_blocker(chosen_icon, chosen_icon_state, MOB_SHADOW_LAYER) - limb_em_block.dir = dir - mob_overlays += list(limb_em_block) + if(blocks_emissive != EMISSIVE_BLOCK_NONE) + var/mutable_appearance/limb_em_block = emissive_blocker(chosen_icon, chosen_icon_state, MOB_SHADOW_LAYER) + limb_em_block.dir = dir + mob_overlays += list(limb_em_block) + + if(is_emissive && !is_broken()) + var/mutable_appearance/limb_em = emissive_appearance(chosen_icon, "[chosen_icon_state]_e", MOB_EMISSIVE_LAYER) + limb_em.dir = dir + mob_overlays += list(limb_em) else chosen_icon_state = "[icon_name][gendered_icon ? "_[gender]" : ""]" if(!gendered_icon) @@ -238,9 +275,15 @@ apply_markings() get_internal_organs_overlay() - var/mutable_appearance/limb_em_block = emissive_blocker(chosen_icon, chosen_icon_state, MOB_SHADOW_LAYER) - limb_em_block.dir = dir - mob_overlays += list(limb_em_block) + if(blocks_emissive != EMISSIVE_BLOCK_NONE) + var/mutable_appearance/limb_em_block = emissive_blocker(chosen_icon, chosen_icon_state, MOB_SHADOW_LAYER) + limb_em_block.dir = dir + mob_overlays += list(limb_em_block) + + if(is_emissive && !is_broken()) + var/mutable_appearance/limb_em = emissive_appearance(chosen_icon, "[chosen_icon_state]_e", MOB_EMISSIVE_LAYER) + limb_em.dir = dir + mob_overlays += list(limb_em) if(body_hair) var/list/limb_icon_cache = SSicon_cache.limb_icons_cache diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm index 3e05b8f2211..45fa9ad00d6 100644 --- a/code/modules/organs/robolimbs.dm +++ b/code/modules/organs/robolimbs.dm @@ -48,6 +48,10 @@ GLOBAL_DATUM(basic_robolimb, /datum/robolimb) var/paintable = 0 /// If this prosthetic glows in the dark var/emissive = FALSE + /// If this prosthetic has an active overlay + var/overlay = FALSE + /// If this prosthetic is a tesla limb (required for some special handling) + var/is_tesla = FALSE /// Which IPC species this prosthetic type will create. var/linked_frame = SPECIES_IPC_UNBRANDED /// How resistant this prosthetic type is to brute damage. @@ -98,6 +102,7 @@ GLOBAL_DATUM(basic_robolimb, /datum/robolimb) linked_frame = SPECIES_IPC_BISHOP fabricator_available = TRUE allows_internal = FALSE + emissive = TRUE /datum/robolimb/hesphaistos company = PROSTHETIC_HI @@ -106,6 +111,7 @@ GLOBAL_DATUM(basic_robolimb, /datum/robolimb) linked_frame = SPECIES_IPC_G2 fabricator_available = TRUE allows_internal = FALSE + emissive = TRUE /datum/robolimb/zenghu company = PROSTHETIC_ZH @@ -114,6 +120,7 @@ GLOBAL_DATUM(basic_robolimb, /datum/robolimb) linked_frame = SPECIES_IPC_ZENGHU fabricator_available = TRUE allows_internal = FALSE + emissive = TRUE /datum/robolimb/xion company = PROSTHETIC_XMG @@ -122,6 +129,7 @@ GLOBAL_DATUM(basic_robolimb, /datum/robolimb) linked_frame = SPECIES_IPC_XION fabricator_available = TRUE allows_internal = FALSE + emissive = TRUE /datum/robolimb/ipc company = PROSTHETIC_IPC @@ -141,6 +149,7 @@ GLOBAL_DATUM(basic_robolimb, /datum/robolimb) linked_frame = SPECIES_IPC_G1 fabricator_available = TRUE allows_internal = FALSE + emissive = TRUE /datum/robolimb/terminator company = PROSTHETIC_HK @@ -175,6 +184,9 @@ GLOBAL_DATUM(basic_robolimb, /datum/robolimb) species_can_use = list(SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI) internal_organ_suffix = "tesla" allowed_internal_organs = list(BP_HEART, BP_EYES, BP_LUNGS, BP_LIVER, BP_KIDNEYS, BP_STOMACH, BP_APPENDIX) + overlay = TRUE + emissive = TRUE + is_tesla = TRUE /datum/robolimb/tesla/malfunctioning_check(var/mob/living/carbon/human/H) var/obj/item/organ/internal/augment/tesla/T = H.internal_organs_by_name[BP_AUG_TESLA] @@ -221,6 +233,7 @@ GLOBAL_DATUM(basic_robolimb, /datum/robolimb) linked_frame = SPECIES_IPC icon = 'icons/mob/human_races/ipc/indricus.dmi' allowed_external_organs = list(BP_HEAD) + emissive = TRUE /datum/robolimb/raxus company = PROSTHETIC_RAXUS @@ -231,6 +244,7 @@ GLOBAL_DATUM(basic_robolimb, /datum/robolimb) linked_frame = SPECIES_IPC icon = 'icons/mob/human_races/ipc/raxus.dmi' allowed_external_organs = list(BP_HEAD) + emissive = TRUE /datum/robolimb/selen company = PROSTHETIC_SELEN diff --git a/code/modules/organs/subtypes/augment/augments/tesla.dm b/code/modules/organs/subtypes/augment/augments/tesla.dm index 338e8965a45..751377c43f8 100644 --- a/code/modules/organs/subtypes/augment/augments/tesla.dm +++ b/code/modules/organs/subtypes/augment/augments/tesla.dm @@ -1,8 +1,11 @@ /obj/item/organ/internal/augment/tesla name = "tesla spine" + icon = 'icons/mob/human_races/augments_external.dmi' icon_state = "tesla_spine" organ_tag = BP_AUG_TESLA on_mob_icon = 'icons/mob/human_races/augments_external.dmi' + active_overlay = TRUE + active_emissive = TRUE species_restricted = list(SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI) var/max_charges = 1 var/actual_charges = 0 diff --git a/code/modules/organs/subtypes/industrial.dm b/code/modules/organs/subtypes/industrial.dm index 4e7a868a981..55cc3ff5902 100644 --- a/code/modules/organs/subtypes/industrial.dm +++ b/code/modules/organs/subtypes/industrial.dm @@ -1,28 +1,36 @@ // Heads /obj/item/organ/external/head/ipc/industrial/hephaestus robotize_type = PROSTHETIC_HI + is_emissive = TRUE /obj/item/organ/external/head/ipc/industrial/xion robotize_type = PROSTHETIC_XMG + is_emissive = TRUE /obj/item/organ/external/head/ipc/industrial/zenghu robotize_type = PROSTHETIC_ZH + is_emissive = TRUE /obj/item/organ/external/head/ipc/industrial/bishop robotize_type = PROSTHETIC_BC + is_emissive = TRUE // Chest /obj/item/organ/external/chest/ipc/industrial/hephaestus robotize_type = PROSTHETIC_HI + is_emissive = TRUE /obj/item/organ/external/chest/ipc/industrial/xion robotize_type = PROSTHETIC_XMG + is_emissive = TRUE /obj/item/organ/external/chest/ipc/industrial/zenghu robotize_type = PROSTHETIC_ZH + is_emissive = TRUE /obj/item/organ/external/chest/ipc/industrial/bishop robotize_type = PROSTHETIC_BC + is_emissive = TRUE // Groin /obj/item/organ/external/groin/ipc/industrial/hephaestus @@ -40,25 +48,32 @@ // Left Arm /obj/item/organ/external/arm/ipc/industrial/hephaestus robotize_type = PROSTHETIC_HI + is_emissive = TRUE /obj/item/organ/external/arm/ipc/industrial/xion robotize_type = PROSTHETIC_XMG + is_emissive = TRUE /obj/item/organ/external/arm/ipc/industrial/zenghu robotize_type = PROSTHETIC_ZH + is_emissive = TRUE /obj/item/organ/external/arm/ipc/industrial/bishop robotize_type = PROSTHETIC_BC + is_emissive = TRUE // Right Arm /obj/item/organ/external/arm/right/ipc/industrial/hephaestus robotize_type = PROSTHETIC_HI + is_emissive = TRUE /obj/item/organ/external/arm/right/ipc/industrial/xion robotize_type = PROSTHETIC_XMG + is_emissive = TRUE /obj/item/organ/external/arm/right/ipc/industrial/zenghu robotize_type = PROSTHETIC_ZH + is_emissive = TRUE /obj/item/organ/external/arm/right/ipc/industrial/bishop robotize_type = PROSTHETIC_BC @@ -66,28 +81,36 @@ // Left Leg /obj/item/organ/external/leg/ipc/industrial/hephaestus robotize_type = PROSTHETIC_HI + is_emissive = TRUE /obj/item/organ/external/leg/ipc/industrial/xion robotize_type = PROSTHETIC_XMG + is_emissive = TRUE /obj/item/organ/external/leg/ipc/industrial/zenghu robotize_type = PROSTHETIC_ZH + is_emissive = TRUE /obj/item/organ/external/leg/ipc/industrial/bishop robotize_type = PROSTHETIC_BC + is_emissive = TRUE // Right Leg /obj/item/organ/external/leg/right/ipc/industrial/hephaestus robotize_type = PROSTHETIC_HI + is_emissive = TRUE /obj/item/organ/external/leg/right/ipc/industrial/xion robotize_type = PROSTHETIC_XMG + is_emissive = TRUE /obj/item/organ/external/leg/right/ipc/industrial/zenghu robotize_type = PROSTHETIC_ZH + is_emissive = TRUE /obj/item/organ/external/leg/right/ipc/industrial/bishop robotize_type = PROSTHETIC_BC + is_emissive = TRUE // Left foot /obj/item/organ/external/foot/ipc/industrial/hephaestus @@ -101,6 +124,7 @@ /obj/item/organ/external/foot/ipc/industrial/bishop robotize_type = PROSTHETIC_BC + is_emissive = TRUE // Right foot /obj/item/organ/external/foot/right/ipc/industrial/hephaestus @@ -114,7 +138,9 @@ /obj/item/organ/external/foot/right/ipc/industrial/bishop robotize_type = PROSTHETIC_BC + is_emissive = TRUE +// Left hand /obj/item/organ/external/hand/ipc/industrial/hephaestus robotize_type = PROSTHETIC_HI @@ -123,6 +149,7 @@ /obj/item/organ/external/hand/ipc/industrial/zenghu robotize_type = PROSTHETIC_ZH + is_emissive = TRUE /obj/item/organ/external/hand/ipc/industrial/bishop robotize_type = PROSTHETIC_BC @@ -136,6 +163,7 @@ /obj/item/organ/external/hand/right/ipc/industrial/zenghu robotize_type = PROSTHETIC_ZH + is_emissive = TRUE /obj/item/organ/external/hand/right/ipc/industrial/bishop robotize_type = PROSTHETIC_BC diff --git a/code/modules/organs/subtypes/machine.dm b/code/modules/organs/subtypes/machine.dm index ecc47c31dfd..656ad345330 100644 --- a/code/modules/organs/subtypes/machine.dm +++ b/code/modules/organs/subtypes/machine.dm @@ -497,11 +497,13 @@ can_intake_reagents = 0 encased = "support frame" robotize_type = PROSTHETIC_IND + is_emissive = TRUE /obj/item/organ/external/chest/ipc/industrial dislocated = -1 encased = "support frame" robotize_type = PROSTHETIC_IND + is_emissive = TRUE /obj/item/organ/external/groin/ipc/industrial dislocated = -1 diff --git a/html/changelogs/GeneralCamo - Prosthetic Glow.yml b/html/changelogs/GeneralCamo - Prosthetic Glow.yml new file mode 100644 index 00000000000..4d9ce123c4c --- /dev/null +++ b/html/changelogs/GeneralCamo - Prosthetic Glow.yml @@ -0,0 +1,58 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: GeneralCamo + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Prosthetics with lights now have emissives." diff --git a/icons/mob/human_races/augments_external.dmi b/icons/mob/human_races/augments_external.dmi index d0eeca038627b168aea98c5d1bd643ead2b9aac2..6b6dbd4b87c64109acdb8d98052177c022193cf7 100644 GIT binary patch delta 794 zcmV+#1LgeA1)m0giBL{Q4GJ0x0000DNk~Le0002M0002M2m=5B0A&K4H2?qrOHfQy zMZmzoKR!9Vy09rJDF6Tfq@tKuv94YD^KWfr|NsB+>GM`GrJ*?2!nwvxIxlKiO?+x! zn~8n@x&S;aC2CqvO+h&=DkwEEF2KOR(xQ0K00001bW%}|TQ{bS>B9a38SPj|DG;Fe_)!aewIl8rF9D}T&9Yy~LL4=!XxjbSOzFV1wR|7kfZ>*DjPH-Vdk zRQvV+F#rGo$Vo&&RCt{2*xPP{FbsfU4m}YFDLuabn=VY*+iF_}3)rOYlN|VL_kZ}#cJLiI z1XrunZIT0jQFfsC?m%#r4#d%czukf4zsK4Cqv{Tnz5w-WK=mTfDuw)u^a-|%YkHY=e6(*l=A2c`usFK-9(lRE$a00030nlUEh7V+J+ z=NqH0z?e3)g|PG!(fN-Y5q~+o^&dGTM!196^;p}rw(YD9u3O_j!Syl3pCBx!@P~x% zz%NLLj}Lc6r#j#I4k!yKgc}ksZy8qGfN>9@0QKeo000000036d_n&=2?~X1SBuwaI z!+XyS87t_AK`y|K6L`~x(llLb#__x~qIIX?tVmJTpPY-{k2T>5y?^cE!)tfUSHSt0 z(qA#f_u%YUpO`;WNDnSXK4pFaQq000000K9OSv7!xLlyLHdq}Iz{Jo<7?+vBRp z|2F^8$KkUVCx^XsS3C;<00000004MH6DHT{A$K0P#M$-zP4iD4zB8i-000000Qh`g Y-ZTv$E@g3k00000Ne4wvM6N<$f{n;-mjD0& literal 718 zcmV;<0x|uGP)005u}0{{R3yb+fl0000&P)t-sz`(%p z>GM`GrNX(!KR!9Vy0BQWu3h=_q@tK_ZDgT1*G)PvYFJI1iGBaN06Z-vd}?26T2DfFDZ*Bkpc$}4x zy$*sf6ou#ZDH_;~f2)gu5C(aL<|ncmo9pm|_-?3`la?V#ZmkJ4+A?zrH;Cu}Ax@mW#3}UQa#&mA+-aV_8i=0004r zNkl7%GMDUi8r|Gz<7maeTS!oT533S{ju-#!c*QcncF^a=uh3LR|Ai^ z=VWhu+d1CgSzYaNkICNnw%;36SGmD7Zm^VngV|pn6~AX9C3&4)z9#YbJw6A#g5 zjBz1xxcJ6bAFmnju=LF@#0p%q0{{R3003ZZ!%+Ptj0s+9xEF=7W}!SMbgtDhoNwK8 zd}ob_!eyMQwEYvOPw>R2|2Zwpl>-|yAw6FUwfjo#y$=8Y0002gv%>VO$PnhRb%SLX z$I`&-2P^rThf4^BpRtkgMxnNKnv3V7R>k#}cg9UWWSUC@&4%1SeQDbHA29#`00000 zzSX_T)+H`LIe3NXbo9m6!Pc|No*(2L3=U zV@Z%-FoVOh8)-mJ+r-F%dY6^`{;GbFdK0R`ZGBSv_0I|U~O%dwIa4?VO!_MZ}JS!wrt%qX~u-5ORRp}%t*X*o7Y%! zd(i&nzYm?u{3-M|{M^pYE$gSu-TQsdp6TD#e)s=)@cF!$I{(Fyzwda=zG+^+IwRla z^Q%wQQo3>1_&??yUe_zXrt)Ua{`9RgKh7=izq+M%?y=c-&nEwQ@S;NQeR)~+!+9Dl z8>W7m$GWo16E%_WNghcZ>YL<00z%gMYD4sa|!7 zUt;P#V4(boTWY)F+ro|PU+ql3CEROowVjcDclx)4viLjAmGWW`Mx^{SAS1t3j)j5Y z$D*$bepY+&&&ssTSpG%f;?|GNUi`PfoCR~QHJ6=a@2chphUA0iYiv1yG($ail>m?` YNuMPezu`(<-gS_mr>mdKI;Vst0I!V9(*OVf delta 312 zcmV-80muHe1i1qxiBL{Q4GJ0x0000DNk~Le0001h0001B1Oos704G#udH?_b8<8a+ z70OTy&j0`b0d!JMQvg8b*k%9#0DF;KaDTYeD=WDAxqzJy076DOL4J3fE&u=k#Ysd# zR9J=W)-ex)Fc5~}I!GC9)G%8@oaJJi{Re=lu8xd^#FUY#`m>EJUOUvqMe{w|%awLL zA^wF@Y7y(%r`A+%V!hJ($bWb>zhR!6QxR(-T~w?aO;qs%yK}wgZS2kP7i%hu?s1*6 z$!X2!GBcNqH>u@;AGj;p^6p6uyoI&4i**vTwD#&52iOlL*be{zzTgQSvtN}!d0Jio0000< KMNUMnLSTYkQGz-E diff --git a/icons/mob/human_races/ipc/r_ind_bishop.dmi b/icons/mob/human_races/ipc/r_ind_bishop.dmi index 9bb3417971eb8bcf53892f6c574b0ca3fdab2e0e..85fd1a3e5b961ade9a3f900a9b48c2cd456fdbcb 100644 GIT binary patch literal 4239 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 literal 3997 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 delta 2233 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 diff --git a/icons/mob/human_races/ipc/r_ind_xion.dmi b/icons/mob/human_races/ipc/r_ind_xion.dmi index 8ee461e607e4b4e13f1685262d5a49197ff175d9..bd85bcd3917c9859931542d4ca66a8d89be8fae3 100644 GIT binary patch literal 2095 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 RW)%Pc002ovPDHLkV1llMixB_- diff --git a/icons/mob/human_races/ipc/r_industrial.dmi b/icons/mob/human_races/ipc/r_industrial.dmi index d07da57b3bdc3e2c9ddf78ac5447874920680853..b872521cc37fa9a2d5562ea16ece9a7ee3e62d1f 100644 GIT binary patch literal 8607 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%0DcE@L(wvD+%{NRQzuLdL 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 O0000