diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index c112b34cca..9a1730488f 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -6,7 +6,7 @@ /obj/item/robot_suit name = "cyborg endoskeleton" desc = "A complex metal backbone with standard limb sockets and pseudomuscle anchors." - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' icon_state = "robo_suit" var/obj/item/bodypart/l_arm/robot/l_arm = null var/obj/item/bodypart/r_arm/robot/r_arm = null diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 26b2a013df..8e0c6ee4cf 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -219,6 +219,9 @@ owner.update_hair() owner.update_damage_overlays() +/obj/item/bodypart/proc/is_organic_limb() + return (status == BODYPART_ORGANIC) + //we inform the bodypart of the changes that happened to the owner, or give it the informations from a source mob. /obj/item/bodypart/proc/update_limb(dropping_limb, mob/living/carbon/source) var/mob/living/carbon/C @@ -227,17 +230,17 @@ if(!original_owner) original_owner = source else if(original_owner && owner != original_owner) //Foreign limb - no_update = 1 + no_update = TRUE else C = owner - no_update = 0 + no_update = FALSE - if(C.has_trait(TRAIT_HUSK)) + if(C.has_trait(TRAIT_HUSK) && is_organic_limb()) species_id = "husk" //overrides species_id dmg_overlay_type = "" //no damage overlay shown when husked should_draw_gender = FALSE should_draw_greyscale = FALSE - no_update = 1 + no_update = TRUE if(no_update) return @@ -282,7 +285,7 @@ dmg_overlay_type = "robotic" if(dropping_limb) - no_update = 1 //when attached, the limb won't be affected by the appearance changes of its mob owner. + no_update = TRUE //when attached, the limb won't be affected by the appearance changes of its mob owner. //to update the bodypart's icon when not attached to a mob /obj/item/bodypart/proc/update_icon_dropped() @@ -316,7 +319,7 @@ . += limb if(animal_origin) - if(status == BODYPART_ORGANIC) + if(is_organic_limb()) limb.icon = 'icons/mob/animal_parts.dmi' if(species_id == "husk") limb.icon_state = "[animal_origin]_husk_[body_zone]" @@ -332,7 +335,7 @@ if((body_zone != BODY_ZONE_HEAD && body_zone != BODY_ZONE_CHEST)) should_draw_gender = FALSE - if(status == BODYPART_ORGANIC) + if(is_organic_limb()) if(should_draw_greyscale) limb.icon = 'icons/mob/human_parts_greyscale.dmi' if(should_draw_gender) @@ -365,6 +368,9 @@ limb.icon_state = "[body_zone]_[icon_gender]" else limb.icon_state = "[body_zone]" + if(aux_zone) + aux = image(limb.icon, "[aux_zone]", -aux_layer, image_dir) + . += aux return diff --git a/code/modules/surgery/bodyparts/robot_bodyparts.dm b/code/modules/surgery/bodyparts/robot_bodyparts.dm index b255c32f11..514244c850 100644 --- a/code/modules/surgery/bodyparts/robot_bodyparts.dm +++ b/code/modules/surgery/bodyparts/robot_bodyparts.dm @@ -6,12 +6,16 @@ #define ROBOTIC_MEDIUM_BURN_MSG "charred" #define ROBOTIC_HEAVY_BURN_MSG "smoldering" +//For ye whom may venture here, split up arm / hand sprites are formatted as "l_hand" & "l_arm". +//The complete sprite (displayed when the limb is on the ground) should be named "borg_l_arm". +//Failure to follow this pattern will cause the hand's icons to be missing due to the way get_limb_icon() works to generate the mob's icons using the aux_zone var. + /obj/item/bodypart/l_arm/robot name = "cyborg left arm" desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." attack_verb = list("slapped", "punched") item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_l_arm" status = BODYPART_ROBOTIC @@ -29,7 +33,7 @@ desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." attack_verb = list("slapped", "punched") item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_r_arm" status = BODYPART_ROBOTIC @@ -47,7 +51,7 @@ desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." attack_verb = list("kicked", "stomped") item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_l_leg" status = BODYPART_ROBOTIC @@ -65,7 +69,7 @@ desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." attack_verb = list("kicked", "stomped") item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_r_leg" status = BODYPART_ROBOTIC @@ -82,7 +86,7 @@ name = "cyborg torso" desc = "A heavily reinforced case containing cyborg logic boards, with space for a standard power cell." item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_chest" status = BODYPART_ROBOTIC @@ -141,7 +145,7 @@ name = "cyborg head" desc = "A standard reinforced braincase, with spine-plugged neural socket and sensor gimbals." item_state = "buildpipe" - icon = 'icons/obj/robot_parts.dmi' + icon = 'icons/mob/augmentation/augments.dmi' flags_1 = CONDUCT_1 icon_state = "borg_head" status = BODYPART_ROBOTIC @@ -218,28 +222,24 @@ name = "surplus prosthetic left arm" desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing." icon = 'icons/mob/augmentation/surplus_augments.dmi' - icon_state = "l_arm" max_damage = 20 /obj/item/bodypart/r_arm/robot/surplus name = "surplus prosthetic right arm" desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing." icon = 'icons/mob/augmentation/surplus_augments.dmi' - icon_state = "r_arm" max_damage = 20 /obj/item/bodypart/l_leg/robot/surplus name = "surplus prosthetic left leg" desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing." icon = 'icons/mob/augmentation/surplus_augments.dmi' - icon_state = "l_leg" max_damage = 20 /obj/item/bodypart/r_leg/robot/surplus name = "surplus prosthetic right leg" desc = "A skeletal, robotic limb. Outdated and fragile, but it's still better than nothing." icon = 'icons/mob/augmentation/surplus_augments.dmi' - icon_state = "r_leg" max_damage = 20 diff --git a/icons/mob/augmentation/augments.dmi b/icons/mob/augmentation/augments.dmi index a532348d6d..574a5ddc48 100644 Binary files a/icons/mob/augmentation/augments.dmi and b/icons/mob/augmentation/augments.dmi differ diff --git a/icons/mob/augmentation/augments_engineer.dmi b/icons/mob/augmentation/augments_engineer.dmi index 8aeaaf04e0..7f2b2e8de9 100644 Binary files a/icons/mob/augmentation/augments_engineer.dmi and b/icons/mob/augmentation/augments_engineer.dmi differ diff --git a/icons/mob/augmentation/augments_mining.dmi b/icons/mob/augmentation/augments_mining.dmi index b79c54e9c8..39df4823fd 100644 Binary files a/icons/mob/augmentation/augments_mining.dmi and b/icons/mob/augmentation/augments_mining.dmi differ diff --git a/icons/mob/augmentation/augments_security.dmi b/icons/mob/augmentation/augments_security.dmi index 8f57f77c4b..2679f7c9f8 100644 Binary files a/icons/mob/augmentation/augments_security.dmi and b/icons/mob/augmentation/augments_security.dmi differ diff --git a/icons/mob/augmentation/surplus_augments.dmi b/icons/mob/augmentation/surplus_augments.dmi index f06ac0c94b..bc3e4bd73c 100644 Binary files a/icons/mob/augmentation/surplus_augments.dmi and b/icons/mob/augmentation/surplus_augments.dmi differ diff --git a/icons/obj/robot_parts.dmi b/icons/obj/robot_parts.dmi deleted file mode 100644 index 0410cb034f..0000000000 Binary files a/icons/obj/robot_parts.dmi and /dev/null differ