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