diff --git a/code/game/objects/items/devices/dogborg_sleeper.dm b/code/game/objects/items/devices/dogborg_sleeper.dm
index c1a9136f76..8e8de41753 100644
--- a/code/game/objects/items/devices/dogborg_sleeper.dm
+++ b/code/game/objects/items/devices/dogborg_sleeper.dm
@@ -121,7 +121,6 @@
/obj/item/dogborg/sleeper/proc/go_out(var/target)
hound = loc
- hound.setClickCooldown(50)
var/voracious = TRUE
if(!hound.client || !(hound.client.prefs.cit_toggles & MEDIHOUND_SLEEPER))
voracious = FALSE
@@ -567,3 +566,7 @@
return
return
+
+/obj/item/dogborg/sleeper/K9/flavour
+ name = "Mobile Sleeper"
+ desc = "A mounted, underslung sleeper, intended for holding willing occupants for leisurely purposes."
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index b44999a69a..3755ac4104 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -134,6 +134,25 @@
rebuild_modules()
return I
+//Adds flavoursome dogborg items to dogborg variants without mechanical benefits
+/obj/item/robot_module/proc/dogborg_equip()
+ var/obj/item/I = new /obj/item/analyzer/nose/flavour(src)
+ add_module(I,0,0)
+ I = new /obj/item/soap/tongue/flavour(src)
+ add_module(I,0,0)
+ I = new /obj/item/dogborg/sleeper/K9/flavour(src)
+ if(name == "Engineering")
+ I.icon_state = "decompiler"
+ if(name == "Security")
+ I.icon_state = "sleeperb"
+ if(name == "Medical")
+ I.icon_state = "sleeper"
+ if(name == "Service")
+ I.icon_state = "servicer"
+ if(cyborg_base_icon == "scrubpup")
+ I.icon_state = "compactor"
+ add_module(I,0,0)
+
/obj/item/robot_module/proc/remove_module(obj/item/I, delete_after)
basic_modules -= I
modules -= I
@@ -202,6 +221,8 @@
R.update_module_innate()
RM.rebuild_modules()
INVOKE_ASYNC(RM, .proc/do_transform_animation)
+ if(RM.dogborg)
+ RM.dogborg_equip()
qdel(src)
return RM
@@ -466,6 +487,7 @@
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
+ sleeper_overlay = "dozersleeper"
if("Vale")
cyborg_base_icon = "valeeng"
can_be_pushed = FALSE
@@ -474,6 +496,7 @@
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
+ sleeper_overlay = "valeengsleeper"
if("Alina")
cyborg_base_icon = "alina-eng"
special_light_key = "alina"
@@ -483,6 +506,7 @@
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
+ sleeper_overlay = "alinasleeper"
return ..()
/obj/item/robot_module/security
@@ -587,8 +611,10 @@
sleeper_overlay = "alinasleeper"
if("Dark")
cyborg_base_icon = "k9dark"
+ sleeper_overlay = "k9darksleeper"
if("Vale")
cyborg_base_icon = "valesec"
+ sleeper_overlay = "valesecsleeper"
return ..()
/obj/item/robot_module/peacekeeper
@@ -738,6 +764,7 @@
moduleselect_icon = "service"
special_light_key = "service"
hat_offset = 0
+ clean_on_move = TRUE
/obj/item/robot_module/butler/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
..()
diff --git a/icons/mob/dogborg.dmi b/icons/mob/dogborg.dmi
index ec63120ae1..856724be1f 100644
Binary files a/icons/mob/dogborg.dmi and b/icons/mob/dogborg.dmi differ
diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
index a458e909f3..59731bd715 100644
--- a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
+++ b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
@@ -273,6 +273,42 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm !
target.wash_cream()
return
+//Nerfed tongue for flavour reasons (haha geddit?). Used for aux skins for regular borgs
+/obj/item/soap/tongue/flavour
+ desc = "For giving affectionate kisses."
+
+/obj/item/soap/tongue/flavour/attack_self(mob/user)
+ return
+
+/obj/item/soap/tongue/flavour/afterattack(atom/target, mob/user, proximity)
+ if(!proximity)
+ return
+ var/mob/living/silicon/robot.R = user
+ if(ishuman(target))
+ var/mob/living/L = target
+ if(status == 0 && check_zone(R.zone_selected) == "head")
+ R.visible_message("\the [R] affectionally licks \the [L]'s face!", "You affectionally lick \the [L]'s face!")
+ playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1)
+ return
+ else if(status == 0)
+ R.visible_message("\the [R] affectionally licks \the [L]!", "You affectionally lick \the [L]!")
+ playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1)
+ return
+
+//Same as above but for noses
+/obj/item/analyzer/nose/flavour/AltClick(mob/user)
+ return
+
+/obj/item/analyzer/nose/flavour/attack_self(mob/user)
+ return
+
+/obj/item/analyzer/nose/flavour/afterattack(atom/target, mob/user, proximity)
+ if(!proximity)
+ return
+ do_attack_animation(target, null, src)
+ user.visible_message("[user] [pick(attack_verb)] \the [target.name] with their nose!")
+
+
//Dogfood
/obj/item/trash/rkibble
diff --git a/modular_citadel/icons/mob/widerobot.dmi b/modular_citadel/icons/mob/widerobot.dmi
index d57e2e58ca..ec88403a63 100644
Binary files a/modular_citadel/icons/mob/widerobot.dmi and b/modular_citadel/icons/mob/widerobot.dmi differ