diff --git a/code/__defines/robot_hats_offset.dm b/code/__defines/robot_hats_offset.dm new file mode 100644 index 0000000000..b8ee4c3c8a --- /dev/null +++ b/code/__defines/robot_hats_offset.dm @@ -0,0 +1,114 @@ +#define SPRITE_HAT_OFFSET "sprite_hat_offset" +#define SPRITE_HAT_REST_OFFSET "sprite_rest_hat_offset" + +#define BORG_HAT_OFFSET_NONE \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(0, 0), "south" = list(0, 0), "east" = list(0, 0), "west" = list(0, 0)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(0, 0), "south" = list(0, 0), "east" = list(0, 0), "west" = list(0, 0)) \ + ) + +#define SMOL_RAPTOR_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(16, 0), "south" = list(16, 0), "east" = list(36, 0), "west" = list(-4, 0)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(16, -10), "south" = list(16, -10), "east" = list(16, -10), "west" = list(16, -10)) \ + ) + +#define VALE_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(16, -3), "south" = list(16, -3), "east" = list(28, -6), "west" = list(4, -6)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(16, 3), "south" = list(16, 3), "east" = list(28, -4), "west" = list(4, -4)) \ + ) + +#define RAPTOR_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(16, 14), "south" = list(16, 14), "east" = list(29, 14), "west" = list(3, 14)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(16, 10), "south" = list(16, 10), "east" = list(29, 10), "west" = list(3, 10)) \ + ) + +#define DRAKE_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(16, 0), "south" = list(16, 0), "east" = list(36, 0), "west" = list(-4, 0)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(16, -6), "south" = list(16, -7), "east" = list(36, -6), "west" = list(-4, -6)), \ + ) + +#define TALL_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(0, 15), "south" = list(0, 15), "east" = list(2, 15), "west" = list(-2, 15)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(0, 1), "south" = list(0, 1), "east" = list(2, 1), "west" = list(-2, 1)), \ + ) + +#define DULLAHAN_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(0, 16), "south" = list(0, 16), "east" = list(2, 16), "west" = list(-2, 16)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(0, 1), "south" = list(0, 1), "east" = list(2, 1), "west" = list(-2, 1)) \ + ) + +#define DULLAHAN_TAUR_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(16, 15), "south" = list(16, 15), "east" = list(24, 15), "west" = list(10, 15)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(16, 1), "south" = list(16, 1), "east" = list(26, 1), "west" = list(10, 1)) \ + ) + +#define ZOOMBA_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(0, -13), "south" = list(0, -13), "east" = list(0, -13), "west" = list(0, -13)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(0, -13), "south" = list(0, -13), "east" = list(0, -13), "west" = list(0, -13)) \ + ) + +#define BORGI_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(2, 7), "south" = list(2, 7), "east" = list(10, 7), "west" = list(-6, 7)) \ + ) + +#define OTIE_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(2, 4), "south" = list(2, 4), "east" = list(16, 4), "west" = list(-14, 4)) \ + ) + +#define WORM_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(0, 0), "south" = list(0, 0), "east" = list(0, 3), "west" = list(0, -3)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(0, 0), "south" = list(0, 0), "east" = list(0, 3), "west" = list(0, -3)) \ + ) + +#define K4T_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(17, 15), "south" = list(17, 15), "east" = list(14, 15), "west" = list(18, 14)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(21, -4), "south" = list(12, -4), "east" = list(21, -4), "west" = list(12, -4)) \ + ) + +#define GOOBORG_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(16, 29), "south" = list(16, 29), "east" = list(20, 28), "west" = list(12, 28)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(16, 11), "south" = list(26, -10), "east" = list(33, -12), "west" = list(-1, -11)) \ + ) + +#define MYOMER_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(16, 1), "south" = list(16, 1), "east" = list(26, 1), "west" = list(6, 1)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(16, -11), "south" = list(16, -11), "east" = list(26, -11), "west" = list(6, -11)), \ + ) + +#define MEKA_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(0, 16), "south" = list(0, 16), "east" = list(2, 16), "west" = list(-2, 16)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(0, 1), "south" = list(0, 1), "east" = list(2, 1), "west" = list(-2, 1)) \ + ) + +#define XENO_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(17, 6), "south" = list(17, 6), "east" = list(29, 6), "west" = list(1, 7)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(40, -18), "south" = list(-4, -18), "east" = list(30, -18), "west" = list(6, -18)) \ + ) + +#define CAT_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(16, -3), "south" = list(16, -3), "east" = list(30, 0), "west" = list(3, 0)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(16, -12), "south" = list(16, -12), "east" = list(30, -12), "west" = list(3, -12)), \ + ) + +#define KITTY_HAT_OFFSET \ + list( \ + SPRITE_HAT_OFFSET = list("north" = list(16, -8), "south" = list(16, -8), "east" = list(24, -9), "west" = list(8, -9)), \ + SPRITE_HAT_REST_OFFSET = list("north" = list(16, -14), "south" = list(16, -14), "east" = list(24, -15), "west" = list(8, -15)), \ + ) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 0a22f5b87b..264998e384 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -325,21 +325,32 @@ to_chat(src, span_warning("You're out of energy! You need food!")) // Simple helper to face what you clicked on, in case it should be needed in more than one place -/mob/proc/face_atom(var/atom/A) - if(!A || !x || !y || !A.x || !A.y) return - var/dx = A.x - x - var/dy = A.y - y - if(!dx && !dy) return +/mob/proc/face_atom(atom/atom_to_face) + if(buckled || stat != CONSCIOUS || !atom_to_face || !x || !y || !atom_to_face.x || !atom_to_face.y) + return + var/dx = atom_to_face.x - x + var/dy = atom_to_face.y - y + if(!dx && !dy) // Wall items are graphically shifted but on the floor + if(atom_to_face.pixel_y > 16) + set_dir(NORTH) + else if(atom_to_face.pixel_y < -16) + set_dir(SOUTH) + else if(atom_to_face.pixel_x > 16) + set_dir(EAST) + else if(atom_to_face.pixel_x < -16) + set_dir(WEST) + return - var/direction if(abs(dx) < abs(dy)) - if(dy > 0) direction = NORTH - else direction = SOUTH + if(dy > 0) + set_dir(NORTH) + else + set_dir(SOUTH) else - if(dx > 0) direction = EAST - else direction = WEST - if(direction != dir) - facedir(direction) + if(dx > 0) + set_dir(EAST) + else + set_dir(WEST) /atom/movable/screen/click_catcher name = "" // Empty string names don't show up in context menu clicks diff --git a/code/game/atom/_atom.dm b/code/game/atom/_atom.dm index ed8739d336..4c2b80bd01 100644 --- a/code/game/atom/_atom.dm +++ b/code/game/atom/_atom.dm @@ -247,9 +247,14 @@ //called to set the atom's dir and used to add behaviour to dir-changes /atom/proc/set_dir(new_dir) + SHOULD_CALL_PARENT(TRUE) + if(SEND_SIGNAL(src, COMSIG_ATOM_PRE_DIR_CHANGE, dir, new_dir) & COMPONENT_ATOM_BLOCK_DIR_CHANGE) + new_dir = dir + return SEND_SIGNAL(src, COMSIG_ATOM_DIR_CHANGE, dir, new_dir) - . = new_dir != dir + var/oldDir = dir dir = new_dir + SEND_SIGNAL(src, COMSIG_ATOM_POST_DIR_CHANGE, oldDir, new_dir) // Called to set the atom's density and used to add behavior to density changes. /atom/proc/set_density(var/new_density) diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index f3613f9e37..5f466af897 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -9,9 +9,6 @@ var/model_info dir = SOUTH -/obj/item/robot_parts/set_dir() - return - /obj/item/robot_parts/l_arm name = "cyborg left arm" desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case." diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 1c8b3f5c84..93c7504fe5 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -1475,3 +1475,21 @@ if(istype(wearer)) for(var/new_trait in trait_or_traits) REMOVE_CLOTHING_TRAIT(wearer, new_trait) + +/obj/item/clothing/head/attack(mob/living/M, mob/living/user, target_zone, attack_modifier) + . = ..() + + +/obj/item/clothing/head/attack_robot(mob/living/silicon/robot/user) + . = ..() + + if(!Adjacent(user)) + return + + balloon_alert(user, "picking up hat...") + if(!do_after(user, 3 SECONDS, src)) + return + if(QDELETED(src) || !Adjacent(user) || user.incapacitated) + return + user.place_on_head(src) + balloon_alert(user, "picked up hat") diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 7e09edc5a9..c5eab9b0c9 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -53,7 +53,6 @@ GLOBAL_LIST_EMPTY(mob_hat_cache) var/obj/machinery/drone_fabricator/master_fabricator var/law_type = /datum/ai_laws/drone var/module_type = /obj/item/robot_module/drone - var/obj/item/hat var/hat_x_offset = 0 var/hat_y_offset = -13 var/serial_number = 0 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 098be576eb..8be404d249 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -41,6 +41,9 @@ var/notransform does_spin = FALSE + var/mutable_appearance/hat_overlay + var/obj/item/clothing/head/hat // THE hat! + //Hud stuff var/atom/movable/screen/inv1 = null @@ -349,6 +352,15 @@ QDEL_NULL(camera) if(rbPDA) QDEL_NULL(rbPDA) + if(hat) + var/turf/T = get_turf(src) + if(T) + hat.forceMove(T) + hat = null + else + QDEL_NULL(hat) + if(hat_overlay) + QDEL_NULL(hat_overlay) if(inv1) QDEL_NULL(inv1) if(inv2) @@ -396,6 +408,7 @@ return sprite_datum = module_sprites[1] sprite_datum.do_equipment_glamour(module) + update_worn_icons() return if(mind) sprite_name = mind.name @@ -931,6 +944,12 @@ H.do_attack_animation(src) playsound(src.loc, 'sound/effects/clang2.ogg', 10, 1) visible_message(span_warning("[H] taps [src].")) + if(hat && prob(10)) + hat.forceMove(get_turf(src)) + hat.throw_at_random(FALSE, 3, 2) + visible_message(span_danger("[hat] goes flying off [src]'s head!")) + hat = null + update_icon() return if(I_GRAB) if(is_vore_predator(H) && H.devourable && src.feeding && src.devourable) @@ -1086,6 +1105,12 @@ if(open_overlay) add_overlay(open_overlay) + if(hat) + hat_overlay = hat.make_worn_icon(SPECIES_HUMAN, slot_head_str, default_icon = 'icons/inventory/head/mob.dmi', default_layer = 0) + update_worn_icons() + else if(hat_overlay) + QDEL_NULL(hat_overlay) + /mob/living/silicon/robot/proc/installed_modules() robotact.tgui_interact(src) @@ -1668,3 +1693,46 @@ /mob/living/silicon/robot/proc/scramble_hardware(var/chance) if(prob(chance)) //Small chance to spawn with a scrambled emag_items = TRUE + +/mob/living/silicon/robot/proc/place_on_head(obj/item/new_hat) + if(hat) + hat.forceMove(get_turf(src)) + hat = new_hat + new_hat.forceMove(src) + update_icon() + +/mob/living/silicon/robot/proc/update_worn_icons() + if(!hat_overlay) + return + cut_overlay(hat_overlay) + + var/list/offset_list = resting ? sprite_datum.hat_offset[SPRITE_HAT_REST_OFFSET] : sprite_datum.hat_offset[SPRITE_HAT_OFFSET] + if(islist(offset_list)) + var/list/offset = offset_list[isDiagonal(dir) ? dir2text(dir & (WEST|EAST)) : dir2text(dir)] + if(offset) + hat_overlay.pixel_w = offset[1] + hat_overlay.pixel_z = offset[2] + + add_overlay(hat_overlay) + +/mob/living/silicon/robot/set_dir(newdir) + var/old_dir = dir + . = ..() + if(. != old_dir) + update_worn_icons() + +/mob/living/silicon/robot/attack_robot(mob/user) + . = ..() + + if(user != src || isnull(hat)) + return + + balloon_alert(user, "dropping hat...") + if(!do_after(user, 3 SECONDS, src)) + return + if(QDELETED(src) || !Adjacent(user) || user.incapacitated || isnull(hat)) + return + hat.forceMove(get_turf(src)) + hat = null + update_icon() + balloon_alert(user, "dropped hat") diff --git a/code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm b/code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm index ca70c71efb..a634a10eae 100644 --- a/code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm +++ b/code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm @@ -39,6 +39,8 @@ var/list/sprite_decals = list() // Allow extra decals var/list/sprite_animations = list() // Allows to flick animations + var/list/hat_offset = list("north" = list(0, -3), "south" = list(0, -3), "east" = list(4, -3), "west" = list(-4, -3)) + /// Determines if the borg has the proper flags to show an overlay. /datum/robot_sprite/proc/sprite_flag_check(var/flag_to_check) return (sprite_flags & flag_to_check) diff --git a/code/modules/mob/living/silicon/robot/sprites/civilian.dm b/code/modules/mob/living/silicon/robot/sprites/civilian.dm index f2945259bd..e82820ca77 100644 --- a/code/modules/mob/living/silicon/robot/sprites/civilian.dm +++ b/code/modules/mob/living/silicon/robot/sprites/civilian.dm @@ -77,6 +77,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = TRUE has_dead_sprite = TRUE + hat_offset = WORM_HAT_OFFSET /datum/robot_sprite/civilian/uptall name = "Feminine Humanoid" @@ -158,16 +159,19 @@ /datum/robot_sprite/service/handy name = "Handy-Serv" sprite_icon_state = "handy" + hat_offset = BORG_HAT_OFFSET_NONE /datum/robot_sprite/service/handy_hydro name = "Handy-Hydro" sprite_icon_state = "handy-hydro" sprite_hud_icon_state = "hydroponics" + hat_offset = BORG_HAT_OFFSET_NONE /datum/robot_sprite/service/zoomba name = "ZOOM-BA" sprite_icon_state = "zoomba" has_dead_sprite = TRUE + hat_offset = ZOOMBA_HAT_OFFSET // Wide/dogborg sprites @@ -192,17 +196,20 @@ sprite_icon_state = "vale" has_eye_light_sprites = TRUE has_vore_belly_sprites = TRUE + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/service/valedark name = "Hound V2 Darkmode" sprite_icon_state = "valedark" has_eye_light_sprites = TRUE has_vore_belly_sprites = TRUE + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/service/drake name = "Drake" sprite_icon_state = "drake" has_vore_belly_resting_sprites = TRUE + hat_offset = DRAKE_HAT_OFFSET /datum/robot_sprite/dogborg/service/booze name = "Boozehound" @@ -262,12 +269,18 @@ sprite_icon_state = "raptor" has_custom_equipment_sprites = TRUE rest_sprite_options = list("Default", "Bellyup") + hat_offset = RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/service/fancyraptor name = "Raptor V-4000" sprite_icon_state = "fancyraptor" has_custom_equipment_sprites = TRUE rest_sprite_options = list("Default", "Bellyup") + // These already had a hat. Their hat gets a hat. + hat_offset = list( + SPRITE_HAT_OFFSET = list("north" = list(16, 14), "south" = list(16, 14), "east" = list(30, 14), "west" = list(2, 14)), + SPRITE_HAT_REST_OFFSET = list("north" = list(16, 18), "south" = list(16, 18), "east" = list(30, 18), "west" = list(2, 18)) + ) /datum/robot_sprite/dogborg/tall/service/meka name = "MEKA" @@ -276,6 +289,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/service/newmeka name = "MEKA v2" @@ -283,6 +297,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/service/mmeka name = "NIKO" @@ -290,6 +305,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/service/fmeka name = "NIKA" @@ -297,6 +313,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/service/k4t name = "K4T" @@ -305,6 +322,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/service/k4t_alt1 name = "K4T Alt" @@ -313,6 +331,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/service/dullahan name = "Dullahan" @@ -328,6 +347,7 @@ sprite_decals = list("breastplate", "loincloth","loinclothbreastplate","eyecover") pixel_x = 0 icon_x = 32 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/service/dullataur name = "Dullataur" @@ -343,6 +363,7 @@ sprite_decals = list("breastplate") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_TAUR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/service/dullahanv3 name = "Dullahan v3" @@ -357,6 +378,7 @@ rest_sprite_options = list("Default", "Sit") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/service/dullahanv3/servicealt3 name = "Dullahan v3 matcha" @@ -427,11 +449,13 @@ name = "Hound V2" sprite_icon_state = "vale" has_eye_light_sprites = TRUE + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/clerical/otie name = "Otieborg" sprite_icon_state = "otie" has_eye_light_sprites = TRUE + hat_offset = OTIE_HAT_OFFSET // Tall sprites /* @@ -451,6 +475,7 @@ name = "Honkhound V2" sprite_icon_state = "honkborg" has_eye_light_sprites = TRUE + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/tall/clown sprite_hud_icon_state = "brobot" @@ -468,6 +493,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/clown/tall/dullahan name = "Dullahan" @@ -477,6 +503,9 @@ has_vore_belly_sprites = TRUE sprite_decals = list("breastplate") rest_sprite_options = list("Default", "Sit") + pixel_x = 0 + icon_x = 32 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/clown/stoat name = "ST-04t" @@ -486,6 +515,10 @@ has_vore_belly_resting_sprites = TRUE has_dead_sprite_overlay = FALSE rest_sprite_options = list("Default") + hat_offset = list( + SPRITE_HAT_OFFSET = list("north" = list(16, -2), "south" = list(16, -4), "east" = list(32, -6), "west" = list(-1, -6)), + SPRITE_HAT_REST_OFFSET = list("north" = list(16, -6), "south" = list(16, -7), "east" = list(32, -11), "west" = list(-1, -11)), + ) /datum/robot_sprite/dogborg/service/valech name = "ServicehoundV2 - Alt" @@ -493,6 +526,7 @@ sprite_icon_state = "servborg" rest_sprite_options = list("Default") has_eye_light_sprites = TRUE + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/service/cat name = "Cat" @@ -509,6 +543,7 @@ rest_sprite_options = list("Default", "Sit") icon_x = 32 pixel_x = 0 + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/service/smolraptor sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_serv.dmi' @@ -519,3 +554,4 @@ has_vore_belly_sprites = TRUE has_dead_sprite_overlay = FALSE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = SMOL_RAPTOR_HAT_OFFSET diff --git a/code/modules/mob/living/silicon/robot/sprites/combat.dm b/code/modules/mob/living/silicon/robot/sprites/combat.dm index 70537ad0e9..70faae3ece 100644 --- a/code/modules/mob/living/silicon/robot/sprites/combat.dm +++ b/code/modules/mob/living/silicon/robot/sprites/combat.dm @@ -46,6 +46,7 @@ sprite_icon_state = "zoomba" has_dead_sprite = TRUE sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_SHIELD_SPRITE + hat_offset = ZOOMBA_HAT_OFFSET /datum/robot_sprite/combat/worm name = "W02M" @@ -57,6 +58,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = TRUE has_dead_sprite = TRUE + hat_offset = WORM_HAT_OFFSET /datum/robot_sprite/combat/uptall @@ -80,6 +82,7 @@ has_vore_belly_sprites = TRUE has_dead_sprite_overlay = FALSE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = SMOL_RAPTOR_HAT_OFFSET // Tall sprites @@ -140,6 +143,7 @@ rest_sprite_options = list("Default") has_eye_sprites = FALSE has_eye_light_sprites = TRUE + hat_offset = BORGI_HAT_OFFSET /datum/robot_sprite/dogborg/tall/combat/raptor name = "Raptor V-4" @@ -148,6 +152,7 @@ rest_sprite_options = list("Default", "Bellyup") has_eye_light_sprites = TRUE sprite_flags = ROBOT_HAS_GUN_SPRITE | ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_SPEED_SPRITE + hat_offset = RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/combat/raptor/get_eyes_overlay(var/mob/living/silicon/robot/ourborg) if(ourborg.has_active_type(/obj/item/borg/combat/mobility)) @@ -173,6 +178,7 @@ has_vore_belly_sprites = TRUE icon_x = 32 pixel_x = 0 + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/combat/tall/mmeka name = "NIKO" @@ -180,6 +186,7 @@ has_vore_belly_sprites = TRUE icon_x = 32 pixel_x = 0 + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/combat/tall/fmeka name = "NIKA" @@ -187,6 +194,7 @@ has_vore_belly_sprites = TRUE icon_x = 32 pixel_x = 0 + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/combat/tall/k4t name = "K4T" @@ -194,6 +202,7 @@ has_vore_belly_sprites = FALSE icon_x = 32 pixel_x = 0 + hat_offset = K4T_HAT_OFFSET //Using our own category wide here not to interfere with upstream in case they add wide sprites under just dogborg. /datum/robot_sprite/dogborg/wide/combat diff --git a/code/modules/mob/living/silicon/robot/sprites/command.dm b/code/modules/mob/living/silicon/robot/sprites/command.dm index 6d43d6fd25..eb885d5e6d 100644 --- a/code/modules/mob/living/silicon/robot/sprites/command.dm +++ b/code/modules/mob/living/silicon/robot/sprites/command.dm @@ -63,6 +63,7 @@ name = "Borgi" sprite_icon_state = "borgi" has_eye_light_sprites = TRUE + hat_offset = BORGI_HAT_OFFSET /datum/robot_sprite/dogborg/tall/command sprite_hud_icon_state = "clerical" @@ -77,6 +78,7 @@ sprite_hud_icon_state = "clerical" module_type = "Command" sprite_icon = 'icons/mob/robot/raptor.dmi' + hat_offset = RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/raptor/command/raptor name = "Raptor" @@ -86,6 +88,7 @@ rest_sprite_options = list("Default", "Bellyup") icon_y = 64 vis_height = 64 + hat_offset = RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/command/tall/meka name = "MEKA" @@ -94,6 +97,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/command/tall/mmeka name = "NIKO" @@ -102,6 +106,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/command/tall/fmeka name = "NIKA" @@ -110,6 +115,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/command/smolraptor name = "Small Raptor" @@ -119,6 +125,7 @@ has_vore_belly_sprites = TRUE has_dead_sprite_overlay = FALSE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = SMOL_RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/command/dullataurcommand name = "Dullataur" @@ -132,3 +139,6 @@ has_rest_lights_sprites = TRUE has_rest_eyes_sprites = TRUE sprite_decals = list("breastplate", "maidoutfit") + icon_x = 64 + pixel_x = -16 + hat_offset = DULLAHAN_TAUR_HAT_OFFSET diff --git a/code/modules/mob/living/silicon/robot/sprites/engineering.dm b/code/modules/mob/living/silicon/robot/sprites/engineering.dm index 7f193b5336..61089f17ee 100644 --- a/code/modules/mob/living/silicon/robot/sprites/engineering.dm +++ b/code/modules/mob/living/silicon/robot/sprites/engineering.dm @@ -66,6 +66,7 @@ /datum/robot_sprite/engineering/handy name = "Handy" sprite_icon_state = "handy" + hat_offset = BORG_HAT_OFFSET_NONE /datum/robot_sprite/engineering/tall2 name = "Usagi-II" @@ -104,7 +105,7 @@ name = "ZOOM-BA" sprite_icon_state = "zoomba" has_dead_sprite = TRUE - + hat_offset = ZOOMBA_HAT_OFFSET /datum/robot_sprite/engineering/worm name = "W02M" @@ -115,6 +116,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = TRUE has_dead_sprite = TRUE + hat_offset = WORM_HAT_OFFSET /datum/robot_sprite/engineering/uptall name = "Feminine Humanoid" @@ -140,12 +142,14 @@ has_eye_sprites = FALSE has_eye_light_sprites = TRUE has_dead_sprite_overlay = FALSE + hat_offset = BORGI_HAT_OFFSET /datum/robot_sprite/dogborg/engineering/vale name = "Hound V2" sprite_icon_state = "vale" sprite_hud_icon_state = "pupdozer" has_eye_light_sprites = TRUE + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/engineering/hound name = "Hound" @@ -163,6 +167,7 @@ name = "Drake" sprite_icon_state = "drake" has_vore_belly_resting_sprites = TRUE + hat_offset = DRAKE_HAT_OFFSET // Tall sprites @@ -175,6 +180,7 @@ sprite_icon_state = "raptor" has_custom_equipment_sprites = TRUE rest_sprite_options = list("Default", "Bellyup") + hat_offset = RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/engineering/meka name = "MEKA" @@ -183,6 +189,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/engineering/newmeka name = "MEKA v2" @@ -190,6 +197,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/engineering/mmeka name = "NIKO" @@ -197,6 +205,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/engineering/fmeka name = "NIKA" @@ -204,6 +213,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/engineering/k4t name = "K4T" @@ -212,6 +222,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/engineering/k4t_alt1 name = "K4T Alt" @@ -220,6 +231,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/engineering/dullahan name = "Dullahan" @@ -235,6 +247,7 @@ has_rest_eyes_sprites = TRUE icon_x = 32 pixel_x = 0 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/engineering/dullataurengi name = "Dullataur" @@ -250,6 +263,7 @@ sprite_decals = list("breastplate") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_TAUR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/engineering/dullataurengitwo name = "Dullataur v2" @@ -265,6 +279,7 @@ sprite_decals = list("breastplate","loincloth","maidoutfit") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_TAUR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/engineering/dullahanv3 name = "Dullahan v3" @@ -279,6 +294,7 @@ sprite_decals = list("decals") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/engineering/cat name = "Cat" @@ -296,3 +312,4 @@ has_vore_belly_sprites = TRUE has_dead_sprite_overlay = FALSE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = SMOL_RAPTOR_HAT_OFFSET diff --git a/code/modules/mob/living/silicon/robot/sprites/event.dm b/code/modules/mob/living/silicon/robot/sprites/event.dm index b4b495f07d..7e6342590c 100644 --- a/code/modules/mob/living/silicon/robot/sprites/event.dm +++ b/code/modules/mob/living/silicon/robot/sprites/event.dm @@ -50,6 +50,7 @@ sprite_icon_state = "raptor" sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_LASER_SPRITE rest_sprite_options = list("Default", "Bellyup") + hat_offset = RAPTOR_HAT_OFFSET // Gravekeeper @@ -84,3 +85,4 @@ sprite_icon_state = "raptor" sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_LASER_SPRITE rest_sprite_options = list("Default", "Bellyup") + hat_offset = RAPTOR_HAT_OFFSET diff --git a/code/modules/mob/living/silicon/robot/sprites/janitor.dm b/code/modules/mob/living/silicon/robot/sprites/janitor.dm index 925021148c..622d210e5e 100644 --- a/code/modules/mob/living/silicon/robot/sprites/janitor.dm +++ b/code/modules/mob/living/silicon/robot/sprites/janitor.dm @@ -79,6 +79,7 @@ /datum/robot_sprite/janitor/handy name = "Handy" sprite_icon_state = "handy" + hat_offset = BORG_HAT_OFFSET_NONE /datum/robot_sprite/janitor/mechoid name = "Acheron" @@ -93,6 +94,7 @@ name = "ZOOM-BA" sprite_icon_state = "zoomba" has_dead_sprite = TRUE + hat_offset = ZOOMBA_HAT_OFFSET /datum/robot_sprite/janitor/worm name = "W02M" @@ -102,7 +104,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = TRUE has_dead_sprite = TRUE - + hat_offset = WORM_HAT_OFFSET /datum/robot_sprite/janitor/uptall name = "Feminine Humanoid" @@ -125,6 +127,7 @@ sprite_icon_state = "vale" sprite_hud_icon_state = "janihound" has_eye_light_sprites = TRUE + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/janitor/borgi name = "Borgi" @@ -133,17 +136,20 @@ has_eye_sprites = FALSE has_eye_light_sprites = TRUE has_dead_sprite_overlay = FALSE + hat_offset = BORGI_HAT_OFFSET /datum/robot_sprite/dogborg/janitor/otie name = "Otieborg" sprite_icon_state = "otie" sprite_hud_icon_state = "janihound" has_eye_light_sprites = TRUE + hat_offset = OTIE_HAT_OFFSET /datum/robot_sprite/dogborg/janitor/drake name = "Drake" sprite_icon_state = "drake" has_vore_belly_resting_sprites = TRUE + hat_offset = DRAKE_HAT_OFFSET // Tall sprites @@ -156,6 +162,7 @@ sprite_icon_state = "raptor" has_custom_equipment_sprites = TRUE rest_sprite_options = list("Default", "Bellyup") + hat_offset = RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/janitor/meka name = "MEKA" @@ -164,6 +171,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/janitor/newmeka name = "MEKA v2" @@ -172,6 +180,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/janitor/mmeka name = "NIKO" @@ -180,6 +189,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/janitor/fmeka name = "NIKA" @@ -188,6 +198,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/janitor/k4t name = "K4T" @@ -196,6 +207,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/janitor/k4t_alt1 name = "K4T Alt" @@ -204,6 +216,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/janitor/dullahan name = "Dullahan" @@ -220,6 +233,7 @@ sprite_decals = list("breastplate", "eyecover") icon_x = 32 pixel_x = 0 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/janitor/dullataurjani name = "Dullataur" @@ -235,6 +249,7 @@ sprite_decals = list("breastplate") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_TAUR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/janitor/dullahanv3 name = "Dullahan v3" @@ -249,6 +264,7 @@ sprite_decals = list("decals") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/janitor/cat name = "Cat" @@ -267,6 +283,7 @@ has_vore_belly_sprites = TRUE has_dead_sprite_overlay = FALSE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = SMOL_RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/janitor/possum name = "0-P0SSm" diff --git a/code/modules/mob/living/silicon/robot/sprites/medical.dm b/code/modules/mob/living/silicon/robot/sprites/medical.dm index a9cd88460c..91cb7dac7e 100644 --- a/code/modules/mob/living/silicon/robot/sprites/medical.dm +++ b/code/modules/mob/living/silicon/robot/sprites/medical.dm @@ -50,6 +50,7 @@ /datum/robot_sprite/medical/handy name = "Handy" sprite_icon_state = "handy" + hat_offset = BORG_HAT_OFFSET_NONE /datum/robot_sprite/medical/insekt name = "Insekt" @@ -81,6 +82,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = TRUE has_dead_sprite = TRUE + hat_offset = WORM_HAT_OFFSET // Wide/dogborg sprites /* @@ -103,6 +105,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/medical/newmeka name = "MEKA v2" @@ -110,6 +113,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/medical/mmeka name = "NIKO" @@ -117,6 +121,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/medical/fmeka name = "NIKA" @@ -124,6 +129,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/medical/k4t name = "K4T" @@ -132,6 +138,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/medical/k4t_alt1 name = "K4T Alt" @@ -140,6 +147,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/medical/dullahanmed sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_med.dmi' @@ -155,6 +163,7 @@ sprite_decals = list("breastplate","loincloth","eyecover") icon_x = 32 pixel_x = 0 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/medical/dullataurmed name = "Dullataur" @@ -170,6 +179,7 @@ sprite_decals = list("breastplate") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_TAUR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/medical/dullahanmedv3 name = "Dullahan medical v3" @@ -185,6 +195,7 @@ sprite_decals = list("decals") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_HAT_OFFSET // Surgeon @@ -226,6 +237,7 @@ name = "ZOOM-BA - Surgical" sprite_icon_state = "zoomba" has_dead_sprite = TRUE + hat_offset = ZOOMBA_HAT_OFFSET /datum/robot_sprite/surgical/uptall name = "Feminine Humanoid - Surgical" @@ -257,6 +269,7 @@ sprite_hud_icon_state = "medihound" has_eye_light_sprites = TRUE has_sleeper_light_indicator = TRUE + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/surgical/borgi name = "Borgi - Surgical" @@ -265,11 +278,13 @@ has_eye_sprites = FALSE has_eye_light_sprites = TRUE has_dead_sprite_overlay = FALSE + hat_offset = BORGI_HAT_OFFSET /datum/robot_sprite/dogborg/surgical/drake name = "Drake - Surgical" sprite_icon_state = "drake" has_vore_belly_resting_sprites = TRUE + hat_offset = DRAKE_HAT_OFFSET // Tall sprites //CHOMPNote -- many of the lines in this is overriden in modular @@ -296,6 +311,7 @@ sprite_icon_state = "raptor" has_custom_equipment_sprites = TRUE rest_sprite_options = list("Default", "Bellyup") + hat_offset = RAPTOR_HAT_OFFSET // Crisis @@ -343,6 +359,7 @@ name = "ZOOM-BA - Crisis" sprite_icon_state = "zoomba" has_dead_sprite = TRUE + hat_offset = ZOOMBA_HAT_OFFSET /datum/robot_sprite/crisis/uptall name = "Feminine Humanoid - Crisis" @@ -396,6 +413,7 @@ sprite_hud_icon_state = "medihound" has_eye_light_sprites = TRUE has_sleeper_light_indicator = TRUE + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/crisis/borgi name = "Borgi - Crisis" @@ -404,11 +422,13 @@ has_eye_sprites = FALSE has_eye_light_sprites = TRUE has_dead_sprite_overlay = FALSE + hat_offset = BORGI_HAT_OFFSET /datum/robot_sprite/dogborg/crisis/drake name = "Drake - Crisis" sprite_icon_state = "drake" has_vore_belly_resting_sprites = TRUE + hat_offset = DRAKE_HAT_OFFSET // Tall sprites @@ -434,6 +454,7 @@ sprite_icon_state = "raptor" has_custom_equipment_sprites = TRUE rest_sprite_options = list("Default", "Bellyup") + hat_offset = RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/crisis/cat name = "Cat" @@ -460,6 +481,7 @@ has_eye_light_sprites = TRUE has_sleeper_light_indicator = TRUE rest_sprite_options = list("Default") + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/crisis/cat name = "Cat" @@ -477,6 +499,7 @@ has_vore_belly_sprites = TRUE has_dead_sprite_overlay = FALSE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = SMOL_RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/crisis/smolraptor/alt name = "Small Raptor Alt" diff --git a/code/modules/mob/living/silicon/robot/sprites/mining.dm b/code/modules/mob/living/silicon/robot/sprites/mining.dm index 457d8d17ae..e2c4efa231 100644 --- a/code/modules/mob/living/silicon/robot/sprites/mining.dm +++ b/code/modules/mob/living/silicon/robot/sprites/mining.dm @@ -78,6 +78,7 @@ /datum/robot_sprite/mining/handy name = "Handy" sprite_icon_state = "handy" + hat_offset = BORG_HAT_OFFSET_NONE /datum/robot_sprite/mining/mechoid name = "Acheron" @@ -92,6 +93,7 @@ name = "ZOOM-BA" sprite_icon_state = "zoomba" has_dead_sprite = TRUE + hat_offset = ZOOMBA_HAT_OFFSET /datum/robot_sprite/mining/worm name = "W02M" @@ -101,6 +103,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = TRUE has_dead_sprite = TRUE + hat_offset = WORM_HAT_OFFSET /datum/robot_sprite/mining/uptall name = "Feminine Humanoid" @@ -116,6 +119,7 @@ name = "KMine" sprite_icon_state = "vale" has_eye_light_sprites = TRUE + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/mining/hound name = "Cargohound" @@ -131,6 +135,7 @@ name = "Drake" sprite_icon_state = "drake" has_vore_belly_resting_sprites = TRUE + hat_offset = DRAKE_HAT_OFFSET // Tall sprites //CHOMPNote -- many of the lines in this is overriden in modular @@ -143,6 +148,7 @@ sprite_icon_state = "raptor" has_custom_equipment_sprites = TRUE rest_sprite_options = list("Default", "Bellyup") + hat_offset = RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mining/meka name = "MEKA" @@ -180,6 +186,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mining/k4t_alt1 name = "K4T Alt" @@ -188,6 +195,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mining/dullahan name = "Dullahan Mining unit" @@ -203,6 +211,7 @@ rest_sprite_options = list("Default", "sit") icon_x = 32 pixel_x = 0 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mining/dullahanv3 name = "Dullahan mining v3" @@ -217,6 +226,7 @@ sprite_decals = list("decals") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mining/dullahancargo name = "Dullahan Cargo unit" @@ -232,6 +242,7 @@ sprite_decals = list("breastplate","eyecover") icon_x = 32 pixel_x = 0 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mining/dullataurcargo name = "Dullataur cargo" @@ -247,6 +258,7 @@ sprite_decals = list("breastplate") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_TAUR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mining/dullataurmining name = "Dullataur mining" @@ -262,6 +274,7 @@ sprite_decals = list("breastplate") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_TAUR_HAT_OFFSET /datum/robot_sprite/dogborg/mining/cat name = "Cat - Mining" @@ -291,6 +304,7 @@ rest_sprite_options = list("Default", "Sit") icon_x = 32 pixel_x = 0 + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mining/tall/mmekacargo name = "NIKO - Cargo" @@ -300,6 +314,7 @@ rest_sprite_options = list("Default", "Sit") icon_x = 32 pixel_x = 0 + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mining/tall/fmekacargo name = "NIKA - Cargo" @@ -309,6 +324,7 @@ rest_sprite_options = list("Default", "Sit") icon_x = 32 pixel_x = 0 + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mining/tall/k4tcargo name = "K4T - Cargo" @@ -318,6 +334,7 @@ rest_sprite_options = list("Default", "Bellyup") icon_x = 32 pixel_x = 0 + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mining/tall/k4t_alt1cargo name = "K4Talt - Cargo" @@ -327,6 +344,7 @@ rest_sprite_options = list("Default", "Bellyup") icon_x = 32 pixel_x = 0 + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/mining/smolraptor sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_min.dmi' @@ -336,6 +354,7 @@ has_vore_belly_sprites = TRUE has_dead_sprite_overlay = FALSE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = SMOL_RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/mining/smolraptor/alt sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_car.dmi' diff --git a/code/modules/mob/living/silicon/robot/sprites/science.dm b/code/modules/mob/living/silicon/robot/sprites/science.dm index 8f137bf4db..63e5f049e5 100644 --- a/code/modules/mob/living/silicon/robot/sprites/science.dm +++ b/code/modules/mob/living/silicon/robot/sprites/science.dm @@ -41,6 +41,7 @@ /datum/robot_sprite/science/handy name = "Handy" sprite_icon_state = "handy" + hat_offset = BORG_HAT_OFFSET_NONE /datum/robot_sprite/science/insekt name = "Insekt" @@ -78,6 +79,7 @@ name = "ZOOM-BA" sprite_icon_state = "zoomba" has_dead_sprite = TRUE + hat_offset = ZOOMBA_HAT_OFFSET /datum/robot_sprite/science/spider name = "XI-GUS" @@ -92,6 +94,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = TRUE has_dead_sprite = TRUE + hat_offset = WORM_HAT_OFFSET /datum/robot_sprite/science/uptall name = "Feminine Humanoid" @@ -122,6 +125,7 @@ sprite_icon_state = "vale" sprite_hud_icon_state = "sci-borg" has_eye_light_sprites = TRUE + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/science/borgi name = "Borgi" @@ -130,6 +134,7 @@ has_eye_sprites = FALSE has_eye_light_sprites = TRUE has_dead_sprite_overlay = FALSE + hat_offset = BORGI_HAT_OFFSET /datum/robot_sprite/dogborg/science/hound name = "Hound" @@ -147,6 +152,7 @@ name = "Drake" sprite_icon_state = "drake" has_vore_belly_resting_sprites = TRUE + hat_offset = DRAKE_HAT_OFFSET // Tall sprites @@ -174,6 +180,7 @@ has_custom_equipment_sprites = TRUE sprite_flags = ROBOT_HAS_TASER_SPRITE rest_sprite_options = list("Default", "Bellyup") + hat_offset = RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/science/meka name = "MEKA" @@ -182,6 +189,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/science/newmeka name = "MEKA v2" @@ -189,6 +197,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/science/mmeka name = "NIKO" @@ -196,6 +205,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/science/fmeka name = "NIKA" @@ -203,6 +213,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/science/k4t name = "K4T" @@ -211,7 +222,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") - + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/science/dullahan name = "Dullahan" @@ -228,6 +239,7 @@ sprite_decals = list("breastplate","loincloth","eyecover") icon_x = 32 pixel_x = 0 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/science/dullataursci name = "Dullataur" @@ -243,6 +255,7 @@ sprite_decals = list("breastplate") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_TAUR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/science/dullahanv3 name = "Dullahan v3" @@ -256,6 +269,7 @@ sprite_decals = list("decals") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/science/cat name = "Cat" @@ -274,3 +288,4 @@ has_vore_belly_sprites = TRUE has_dead_sprite_overlay = FALSE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = SMOL_RAPTOR_HAT_OFFSET diff --git a/code/modules/mob/living/silicon/robot/sprites/security.dm b/code/modules/mob/living/silicon/robot/sprites/security.dm index 5a042a3a9a..14a60d2711 100644 --- a/code/modules/mob/living/silicon/robot/sprites/security.dm +++ b/code/modules/mob/living/silicon/robot/sprites/security.dm @@ -91,6 +91,7 @@ /datum/robot_sprite/security/handy name = "Handy" sprite_icon_state = "handy" + hat_offset = BORG_HAT_OFFSET_NONE /datum/robot_sprite/security/mechoid name = "Acheron" @@ -105,6 +106,7 @@ name = "ZOOM-BA" sprite_icon_state = "zoomba" has_dead_sprite = TRUE + hat_offset = ZOOMBA_HAT_OFFSET /datum/robot_sprite/security/worm name = "W02M" @@ -114,6 +116,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = TRUE has_dead_sprite = TRUE + hat_offset = WORM_HAT_OFFSET /datum/robot_sprite/security/uptall name = "Feminine Humanoid" @@ -145,6 +148,7 @@ sprite_hud_icon_state = "k9" has_eye_light_sprites = TRUE sprite_flags = ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/security/borgi name = "Borgi" @@ -153,6 +157,7 @@ has_eye_sprites = FALSE has_eye_light_sprites = TRUE has_dead_sprite_overlay = FALSE + hat_offset = BORGI_HAT_OFFSET /datum/robot_sprite/dogborg/security/otie name = "Otieborg" @@ -160,12 +165,14 @@ sprite_hud_icon_state = "k9" has_eye_light_sprites = TRUE sprite_flags = ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE + hat_offset = OTIE_HAT_OFFSET /datum/robot_sprite/dogborg/security/drake name = "Drake" sprite_icon_state = "drake" has_vore_belly_resting_sprites = TRUE sprite_flags = ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE + hat_offset = DRAKE_HAT_OFFSET // Tall sprites @@ -179,6 +186,7 @@ has_custom_equipment_sprites = TRUE sprite_flags = ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE rest_sprite_options = list("Default", "Bellyup") + hat_offset = RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/security/meka name = "MEKA" @@ -187,6 +195,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/security/newmeka @@ -195,6 +204,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/security/mmeka name = "NIKO" @@ -202,6 +212,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/security/fmeka name = "NIKA" @@ -209,6 +220,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/security/k4t name = "K4T" @@ -217,6 +229,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/security/dullahan name = "Dullahan" @@ -233,6 +246,7 @@ rest_sprite_options = list("Default", "Sit") icon_x = 32 pixel_x = 0 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/security/dullataur name = "Dullataur" @@ -248,6 +262,7 @@ sprite_decals = list("breastplate") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_TAUR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/security/dullahanv3 name = "Dullahan security v3" @@ -262,6 +277,7 @@ rest_sprite_options = list("Default", "Sit") icon_x = 64 pixel_x = -16 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/security/vale2 @@ -271,6 +287,7 @@ sprite_hud_icon_state = "k9" has_eye_light_sprites = TRUE rest_sprite_options = list("Default") + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/security/cat name = "Cat" @@ -288,6 +305,7 @@ has_vore_belly_sprites = TRUE has_dead_sprite_overlay = FALSE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = SMOL_RAPTOR_HAT_OFFSET /datum/robot_sprite/dogborg/security/smolraptor/alt name = "Small Raptor Alt" diff --git a/code/modules/mob/living/silicon/robot/sprites/sprite_organized/catborgs.dm b/code/modules/mob/living/silicon/robot/sprites/sprite_organized/catborgs.dm index 0bd6548e67..31c5adcdb0 100644 --- a/code/modules/mob/living/silicon/robot/sprites/sprite_organized/catborgs.dm +++ b/code/modules/mob/living/silicon/robot/sprites/sprite_organized/catborgs.dm @@ -48,6 +48,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_GUN_SPRITE + hat_offset = KITTY_HAT_OFFSET /// Engineering /datum/robot_sprite/dogborg/engineering/kittyborg @@ -64,6 +65,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_GUN_SPRITE + hat_offset = KITTY_HAT_OFFSET /// Janitor @@ -81,6 +83,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_GUN_SPRITE + hat_offset = KITTY_HAT_OFFSET /// Medical /datum/robot_sprite/dogborg/crisis/kittyborg @@ -98,6 +101,7 @@ belly_capacity_list = list("sleeper" = 2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_GUN_SPRITE module_type = list("Crisis", "Surgeon") + hat_offset = KITTY_HAT_OFFSET /// Science /datum/robot_sprite/dogborg/science/kittyborg @@ -114,6 +118,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_GUN_SPRITE + hat_offset = KITTY_HAT_OFFSET /// Security /datum/robot_sprite/dogborg/security/kittyborg @@ -130,6 +135,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_GUN_SPRITE + hat_offset = KITTY_HAT_OFFSET /// Service /datum/robot_sprite/dogborg/service/kittyborg @@ -147,6 +153,7 @@ belly_capacity_list = list("sleeper" = 2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_GUN_SPRITE module_type = list("Service", "Clerical") + hat_offset = KITTY_HAT_OFFSET @@ -174,6 +181,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" =2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE + hat_offset = CAT_HAT_OFFSET /// Engineering /datum/robot_sprite/dogborg/engineering/catborg @@ -189,6 +197,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" =2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE + hat_offset = CAT_HAT_OFFSET /// Crisis /datum/robot_sprite/dogborg/crisis/catborg @@ -206,6 +215,7 @@ belly_light_list = list("sleeper" = 2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE module_type = list("Crisis", "Surgeon") + hat_offset = CAT_HAT_OFFSET /// Science /datum/robot_sprite/dogborg/science/catborg @@ -221,6 +231,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" =2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE + hat_offset = CAT_HAT_OFFSET /// Security /datum/robot_sprite/dogborg/security/catborg @@ -237,6 +248,7 @@ belly_capacity_list = list("sleeper" = 2, "throat" =2) belly_light_list = list("sleeper" = 2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE + hat_offset = CAT_HAT_OFFSET /// Service /datum/robot_sprite/dogborg/service/catborg @@ -253,6 +265,7 @@ belly_capacity_list = list("sleeper" = 2, "throat" =2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE module_type = list("Service", "Clerical") //They get Janitor because no specific janitor sprite. + hat_offset = CAT_HAT_OFFSET /// Janiborg /datum/robot_sprite/dogborg/janitor/catborg @@ -269,6 +282,7 @@ belly_capacity_list = list("sleeper" = 2, "throat" =2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE module_type = list("Janitor") //Recolored one to be a janitor one lol + hat_offset = CAT_HAT_OFFSET /// Combat Medic /datum/robot_sprite/dogborg/combat_medic/catborg @@ -285,6 +299,7 @@ belly_capacity_list = list("sleeper" = 2, "throat" =2) belly_light_list = list("sleeper" = 2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE + hat_offset = CAT_HAT_OFFSET /// CUSTOM @@ -311,6 +326,7 @@ // Feel free to recolor it if you want to make it have specific sprites for specific departments. module_type = list("Standard", "Engineering", "Surgeon", "Crisis", "Miner", "Janitor", "Service", "Clerical", "Security", "Research") sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE + hat_offset = CAT_HAT_OFFSET /* //These are in the game and can be enabled to enable the sprites. They were added to fluff.dm, but they're also included here commented out as they're part of the catborgs and it's easy to track them down from here. /// Custom Catborg Matica diff --git a/code/modules/mob/living/silicon/robot/sprites/sprite_organized/gooborgs.dm b/code/modules/mob/living/silicon/robot/sprites/sprite_organized/gooborgs.dm index 75927c1120..ec56290450 100644 --- a/code/modules/mob/living/silicon/robot/sprites/sprite_organized/gooborgs.dm +++ b/code/modules/mob/living/silicon/robot/sprites/sprite_organized/gooborgs.dm @@ -30,6 +30,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) sprite_flags = ROBOT_HAS_MELEE_SPRITE //Hammer + hat_offset = GOOBORG_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mining/gooborg/miner name = "Gooborg - Miner" @@ -39,6 +40,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) sprite_flags = ROBOT_HAS_MELEE_SPRITE | ROBOT_HAS_GUN_SPRITE //Hammer & PKA + hat_offset = GOOBORG_HAT_OFFSET /// Engineering /datum/robot_sprite/dogborg/tall/engineering/gooborg @@ -55,6 +57,7 @@ sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_engi.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) + hat_offset = GOOBORG_HAT_OFFSET /// Crisis /datum/robot_sprite/dogborg/tall/crisis/gooborg @@ -72,6 +75,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) module_type = list("Crisis", "Surgeon") + hat_offset = GOOBORG_HAT_OFFSET /// Science /datum/robot_sprite/dogborg/tall/science/gooborg @@ -88,6 +92,7 @@ sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_sci.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) + hat_offset = GOOBORG_HAT_OFFSET /// Security /datum/robot_sprite/dogborg/tall/security/gooborg @@ -105,6 +110,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_MELEE_SPRITE //Melee is baton. + hat_offset = GOOBORG_HAT_OFFSET /datum/robot_sprite/dogborg/tall/security/gooborg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg) if(ourborg.has_active_type(/obj/item/borg/combat/mobility)) @@ -128,6 +134,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) module_type = list("Service", "Clerical") + hat_offset = GOOBORG_HAT_OFFSET /datum/robot_sprite/dogborg/tall/janitor/gooborg name = "Gooborg" @@ -143,6 +150,7 @@ sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_jani.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) + hat_offset = GOOBORG_HAT_OFFSET /datum/robot_sprite/dogborg/tall/combat/gooborg name = "Gooborg" @@ -159,6 +167,7 @@ rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_TASER_SPRITE | ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_MELEE_SPRITE //Baton + hat_offset = GOOBORG_HAT_OFFSET /datum/robot_sprite/dogborg/tall/combat/gooborg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg) if(ourborg.has_active_type(/obj/item/borg/combat/mobility)) @@ -179,6 +188,7 @@ sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_jester.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) + hat_offset = GOOBORG_HAT_OFFSET //Exploration. /datum/robot_sprite/dogborg/tall/explorer/gooborg @@ -195,6 +205,7 @@ sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_explo.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) + hat_offset = GOOBORG_HAT_OFFSET /datum/robot_sprite/dogborg/tall/ninja/gooborg name = "Gooborg" @@ -212,6 +223,7 @@ belly_capacity_list = list("sleeper" = 2, "throat" = 2) sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_BLADE_SPRITE //esword sprite_hud_icon_state = "malf" //malf!! + hat_offset = GOOBORG_HAT_OFFSET /datum/robot_sprite/dogborg/tall/ninja/gooborg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg) if(ourborg.has_active_type(/obj/item/borg/combat/mobility)) @@ -236,6 +248,7 @@ belly_capacity_list = list("sleeper" = 2, "throat" = 2) sprite_flags = ROBOT_HAS_SPEED_SPRITE | ROBOT_HAS_GUN_SPRITE | ROBOT_HAS_BLADE_SPRITE //esword module_type = list("Combat Medic", "Mechanist", "Protector") //You get all three modules. + hat_offset = GOOBORG_HAT_OFFSET /datum/robot_sprite/dogborg/tall/combat_medic/gooborg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg) if(ourborg.has_active_type(/obj/item/borg/combat/mobility)) @@ -257,6 +270,7 @@ sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_cmd.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) + hat_offset = GOOBORG_HAT_OFFSET //Standard /datum/robot_sprite/dogborg/tall/standard/gooborg @@ -273,6 +287,7 @@ sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_standard.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) + hat_offset = GOOBORG_HAT_OFFSET /datum/robot_sprite/dogborg/tall/standard/gooborg_rgb name = "Gooborg - RGB" @@ -289,3 +304,4 @@ sprite_icon = 'icons/mob/robot/gooborgs/departmental/gooborg_RGB.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" = 2) + hat_offset = GOOBORG_HAT_OFFSET diff --git a/code/modules/mob/living/silicon/robot/sprites/sprite_organized/myomer_dogborg.dm b/code/modules/mob/living/silicon/robot/sprites/sprite_organized/myomer_dogborg.dm index f93988cb38..b6bdf078e8 100644 --- a/code/modules/mob/living/silicon/robot/sprites/sprite_organized/myomer_dogborg.dm +++ b/code/modules/mob/living/silicon/robot/sprites/sprite_organized/myomer_dogborg.dm @@ -10,6 +10,7 @@ sprite_icon = 'icons/mob/robot/myomer_dogborg/ProjectMyomerCargo.dmi' rest_sprite_options = list("Default", "Sit") belly_capacity_list = list("sleeper" = 3, "throat" = 2) + hat_offset = MYOMER_HAT_OFFSET /datum/robot_sprite/dogborg/mining/myomer/mining name = "Myomer - Miner" @@ -24,6 +25,7 @@ rest_sprite_options = list("Default", "Sit") belly_capacity_list = list("sleeper" = 3, "throat" = 2) sprite_flags = ROBOT_HAS_GUN_SPRITE + hat_offset = MYOMER_HAT_OFFSET /datum/robot_sprite/dogborg/engineering/myomer name = "Myomer" @@ -37,6 +39,7 @@ sprite_icon = 'icons/mob/robot/myomer_dogborg/ProjectMyomerEngi.dmi' rest_sprite_options = list("Default", "Sit") belly_capacity_list = list("sleeper" = 3, "throat" = 2) + hat_offset = MYOMER_HAT_OFFSET /datum/robot_sprite/dogborg/janitor/myomer name = "Myomer" @@ -50,6 +53,8 @@ sprite_icon = 'icons/mob/robot/myomer_dogborg/ProjectMyomerJani.dmi' rest_sprite_options = list("Default", "Sit") belly_capacity_list = list("sleeper" = 3, "throat" = 2) + hat_offset = MYOMER_HAT_OFFSET + /datum/robot_sprite/dogborg/crisis/myomer name = "Myomer" sprite_icon_state = "base" @@ -63,6 +68,7 @@ rest_sprite_options = list("Default", "Sit") belly_capacity_list = list("sleeper" = 3, "throat" = 2) module_type = list("Crisis", "Surgeon") + hat_offset = MYOMER_HAT_OFFSET /datum/robot_sprite/dogborg/science/myomer name = "Myomer" @@ -76,6 +82,7 @@ sprite_icon = 'icons/mob/robot/myomer_dogborg/ProjectMyomerSci.dmi' rest_sprite_options = list("Default", "Sit") belly_capacity_list = list("sleeper" = 3, "throat" = 2) + hat_offset = MYOMER_HAT_OFFSET /datum/robot_sprite/dogborg/security/myomer name = "Myomer" @@ -90,6 +97,7 @@ rest_sprite_options = list("Default", "Sit") belly_capacity_list = list("sleeper" = 3, "throat" = 2) sprite_flags = ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_MELEE_SPRITE | ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_SHIELD_SPRITE + hat_offset = MYOMER_HAT_OFFSET /datum/robot_sprite/dogborg/service/myomer name = "Myomer" @@ -103,6 +111,7 @@ sprite_icon = 'icons/mob/robot/myomer_dogborg/ProjectMyomerService.dmi' rest_sprite_options = list("Default", "Sit") belly_capacity_list = list("sleeper" = 3, "throat" = 2) + hat_offset = MYOMER_HAT_OFFSET /datum/robot_sprite/dogborg/combat_medic/myomer name = "Myomer" @@ -117,6 +126,7 @@ rest_sprite_options = list("Default", "Sit") belly_capacity_list = list("sleeper" = 3, "throat" = 2) sprite_flags = ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_MELEE_SPRITE + hat_offset = MYOMER_HAT_OFFSET /// Custom sprite added to fluff.dm /* diff --git a/code/modules/mob/living/silicon/robot/sprites/sprite_organized/xenoborgs.dm b/code/modules/mob/living/silicon/robot/sprites/sprite_organized/xenoborgs.dm index 32a392ae9e..c87e946b0e 100644 --- a/code/modules/mob/living/silicon/robot/sprites/sprite_organized/xenoborgs.dm +++ b/code/modules/mob/living/silicon/robot/sprites/sprite_organized/xenoborgs.dm @@ -10,6 +10,7 @@ pixel_x = -16 has_rest_sprites = TRUE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = XENO_HAT_OFFSET /datum/robot_sprite/mining/xenoborg/mining //gee gosh cargo, how come you get TWO sprites name = "Xenoborg - Mining" @@ -22,6 +23,7 @@ pixel_x = -16 has_rest_sprites = TRUE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = XENO_HAT_OFFSET /datum/robot_sprite/medical/xenoborg name = "Xenoborg" @@ -34,6 +36,7 @@ pixel_x = -16 has_rest_sprites = TRUE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = XENO_HAT_OFFSET /datum/robot_sprite/engineering/xenoborg name = "Xenoborg" @@ -46,6 +49,7 @@ pixel_x = -16 has_rest_sprites = TRUE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = XENO_HAT_OFFSET /datum/robot_sprite/service/xenoborg name = "Xenoborg" @@ -58,6 +62,7 @@ pixel_x = -16 has_rest_sprites = TRUE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = XENO_HAT_OFFSET /datum/robot_sprite/science/xenoborg name = "Xenoborg" @@ -70,6 +75,7 @@ pixel_x = -16 has_rest_sprites = TRUE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = XENO_HAT_OFFSET /datum/robot_sprite/security/xenoborg name = "Xenoborg" @@ -82,6 +88,7 @@ pixel_x = -16 has_rest_sprites = TRUE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = XENO_HAT_OFFSET /datum/robot_sprite/janitor/xenoborg name = "Xenoborg" @@ -94,6 +101,7 @@ pixel_x = -16 has_rest_sprites = TRUE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = XENO_HAT_OFFSET //Misc /datum/robot_sprite/syndie/xenoborg @@ -109,6 +117,7 @@ rest_sprite_options = list("Default", "Sit", "Bellyup") module_type = list("Protector", "Mechanist", "Combat Medic") sprite_hud_icon_state = "malf" + hat_offset = XENO_HAT_OFFSET /datum/robot_sprite/ninja/xenoborg name = "Xenoborg" @@ -123,3 +132,4 @@ rest_sprite_options = list("Default", "Sit", "Bellyup") module_type = "Ninja" sprite_hud_icon_state = "malf" + hat_offset = XENO_HAT_OFFSET diff --git a/code/modules/mob/living/silicon/robot/sprites/standard.dm b/code/modules/mob/living/silicon/robot/sprites/standard.dm index 3f7ecfba28..28021ec2c0 100644 --- a/code/modules/mob/living/silicon/robot/sprites/standard.dm +++ b/code/modules/mob/living/silicon/robot/sprites/standard.dm @@ -83,6 +83,7 @@ /datum/robot_sprite/standard/handy name = "Handy" sprite_icon_state = "handy" + hat_offset = BORG_HAT_OFFSET_NONE /datum/robot_sprite/standard/mechoid name = "Acheron" @@ -97,6 +98,7 @@ name = "ZOOM-BA" sprite_icon_state = "zoomba" has_dead_sprite = TRUE + hat_offset = ZOOMBA_HAT_OFFSET /datum/robot_sprite/standard/worm name = "W02M" @@ -106,6 +108,7 @@ has_custom_open_sprites = FALSE has_vore_belly_sprites = TRUE has_dead_sprite = TRUE + hat_offset = WORM_HAT_OFFSET /datum/robot_sprite/standard/uptall name = "Feminine Humanoid" @@ -132,6 +135,7 @@ has_vore_belly_sprites = TRUE has_dead_sprite_overlay = FALSE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = SMOL_RAPTOR_HAT_OFFSET // Tall sprites /* @@ -158,6 +162,9 @@ has_rest_lights_sprites = TRUE has_rest_eyes_sprites = TRUE sprite_decals = list("breastplate") + icon_x = 64 + pixel_x = -16 + hat_offset = DULLAHAN_TAUR_HAT_OFFSET /datum/robot_sprite/dogborg/tall/standard/dullahanv3/standarddully name = "Dullahan standard v3" @@ -168,6 +175,7 @@ belly_capacity_list = list("sleeper" = 3) sprite_decals = list("decals") rest_sprite_options = list("Default", "sit") + hat_offset = DULLAHAN_HAT_OFFSET /* //This used to be Widerobot_Standard_ch.dm. It was unticked, so it shall be put here instead. diff --git a/code/modules/mob/living/silicon/robot/sprites/syndicate.dm b/code/modules/mob/living/silicon/robot/sprites/syndicate.dm index 07dfb2efb4..c28454e2d9 100644 --- a/code/modules/mob/living/silicon/robot/sprites/syndicate.dm +++ b/code/modules/mob/living/silicon/robot/sprites/syndicate.dm @@ -18,11 +18,13 @@ has_eye_sprites = FALSE has_eye_light_sprites = TRUE has_dead_sprite_overlay = FALSE + hat_offset = BORGI_HAT_OFFSET /datum/robot_sprite/dogborg/syndie/drake name = "Drake" sprite_icon_state = "drake" has_vore_belly_resting_sprites = TRUE + hat_offset = DRAKE_HAT_OFFSET /datum/robot_sprite/dogborg/syndie/smolraptor sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_syndie.dmi' @@ -32,6 +34,7 @@ has_vore_belly_sprites = TRUE has_dead_sprite_overlay = FALSE rest_sprite_options = list("Default", "Sit", "Bellyup") + hat_offset = SMOL_RAPTOR_HAT_OFFSET // Tall sprites @@ -47,6 +50,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/syndie/newmeka name = "MEKA v2" @@ -54,6 +58,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/syndie/mmeka name = "NIKO" @@ -61,6 +66,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/syndie/fmeka name = "NIKA" @@ -68,6 +74,7 @@ has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/syndie/k4t name = "K4T" @@ -76,6 +83,7 @@ has_custom_open_sprites = TRUE has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/combat_medic/dullahancombatmedic name = "Dullahan Combat Medic" @@ -90,6 +98,7 @@ sprite_decals = list("breastplate","loincloth","eyecover") icon_x = 32 pixel_x = 0 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/syndie/dullahanv3syndi sprite_icon = 'icons/mob/robot/dullahan/v3/syndi.dmi' @@ -102,6 +111,7 @@ belly_capacity_list = list("sleeper" = 3) sprite_decals = list("decals") rest_sprite_options = list("Default", "Sit") + hat_offset = DULLAHAN_HAT_OFFSET // Protector @@ -154,6 +164,7 @@ has_eye_light_sprites = TRUE sprite_flags = ROBOT_HAS_GUN_SPRITE rest_sprite_options = list("Default", "Bellyup") + hat_offset = RAPTOR_HAT_OFFSET // Mechanist @@ -203,6 +214,7 @@ belly_capacity_list = list("sleeper" = 3) sprite_decals = list("decals") rest_sprite_options = list("Default", "Sit") + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/mechanist/syndimechraptor name = "Raptor V-4" @@ -229,6 +241,7 @@ module_type = "Combat Medic" sprite_icon = 'icons/mob/robot/combat_medic_wide.dmi' sprite_hud_icon_state = "malf" + hat_offset = VALE_HAT_OFFSET /datum/robot_sprite/dogborg/combat_medic/do_equipment_glamour(var/obj/item/robot_module/module) ..() @@ -249,6 +262,7 @@ sprite_icon_state = "vale" has_eye_light_sprites = TRUE has_sleeper_light_indicator = TRUE + hat_offset = VALE_HAT_OFFSET // Tall sprites @@ -262,8 +276,7 @@ sprite_icon_state = "syndimediraptor" has_eye_light_sprites = TRUE rest_sprite_options = list("Default", "Bellyup") - - + hat_offset = RAPTOR_HAT_OFFSET // Ninja models /* //Unused @@ -274,6 +287,7 @@ /datum/robot_sprite/dogborg/tall/ninja module_type = "Ninja" sprite_hud_icon_state = "malf" + hat_offset = TALL_HAT_OFFSET /datum/robot_sprite/dogborg/tall/ninja/dullahan name = "dullahan" @@ -285,11 +299,15 @@ belly_capacity_list = list("sleeper" = 3) sprite_decals = list("decals") rest_sprite_options = list("Default", "Sit") + pixel_x = -16 + icon_x = 64 + hat_offset = DULLAHAN_HAT_OFFSET /datum/robot_sprite/dogborg/tall/ninja/tall sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi' icon_x = 32 pixel_x = 0 + hat_offset = TALL_HAT_OFFSET /datum/robot_sprite/dogborg/tall/ninja/tall/mekaninja name = "Meka" @@ -297,6 +315,7 @@ has_eye_light_sprites = TRUE has_vore_belly_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/ninja/tall/fmekaninja name = "Niko" @@ -304,6 +323,7 @@ has_eye_light_sprites = TRUE has_vore_belly_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/ninja/tall/k4tninja name = "K4T" @@ -311,6 +331,7 @@ has_eye_light_sprites = TRUE has_vore_belly_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = K4T_HAT_OFFSET /datum/robot_sprite/dogborg/tall/ninja/tall/mmekaninja name = "Nika" @@ -318,6 +339,7 @@ has_eye_light_sprites = TRUE has_vore_belly_sprites = TRUE rest_sprite_options = list("Default", "Sit") + hat_offset = MEKA_HAT_OFFSET /datum/robot_sprite/dogborg/tall/ninja/dullataurninja name = "Dullataur" @@ -329,3 +351,6 @@ has_rest_eyes_sprites = TRUE sprite_decals = list("breastplate", "breastplatehalo","swordhalo","tophalo") rest_sprite_options = list("Default") + icon_x = 64 + pixel_x = -16 + hat_offset = DULLAHAN_TAUR_HAT_OFFSET diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index ab1dee10bf..74415ace01 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -1,8 +1,5 @@ GLOBAL_LIST_EMPTY(limb_icon_cache) -/obj/item/organ/external/set_dir() - return - /obj/item/organ/external/proc/compile_icon() cut_overlays() // This is a kludge, only one icon has more than one generation of children though. diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 05b56f21bd..5d669b82c5 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -118,6 +118,7 @@ GLOBAL_LIST_INIT(possible_cable_coil_colours, list( // Rotating cables requires d1 and d2 to be rotated /obj/structure/cable/set_dir(new_dir) + . = ..() if(powernet) cut_cable_from_powernet() // Remove this cable from the powernet so the connections update diff --git a/vorestation.dme b/vorestation.dme index 2c8abb0015..29240ffbac 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -176,6 +176,7 @@ #include "code\__defines\request_console.dm" #include "code\__defines\research.dm" #include "code\__defines\robot.dm" +#include "code\__defines\robot_hats_offset.dm" #include "code\__defines\roguemining_vr.dm" #include "code\__defines\rust_g.dm" #include "code\__defines\SDQL_2.dm"