diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index d3e7d7c395..4659c907a6 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -146,11 +146,9 @@ has_snowflake_deadsprite = TRUE cyborg_pixel_offset = -16 hat_offset = INFINITY - var/obj/item/I = new /obj/item/analyzer/nose/flavour(src) - basic_modules += I - I = new /obj/item/soap/tongue/flavour(src) - basic_modules += I - I = new /obj/item/dogborg/sleeper/K9/flavour(src) + basic_modules += new /obj/item/dogborg_nose(src) + basic_modules += new /obj/item/dogborg_tongue(src) + var/obj/item/dogborg/sleeper/K9/flavour/I = new(src) if(istype(src, /obj/item/robot_module/engineering)) I.icon_state = "decompiler" if(istype(src, /obj/item/robot_module/security)) 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 0a3bdb727d..b0b18e63a0 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 @@ -265,20 +265,22 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! R.cell.give(500) return R.visible_message("[R] begins to lick \the [target.name] clean...", "You begin to lick \the [target.name] clean...") - else if(ishuman(target)) + else if(isliving(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) - if(istype(L) && L.fire_stacks > 0) - L.adjust_fire_stacks(-10) - 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) - if(istype(L) && L.fire_stacks > 0) - L.adjust_fire_stacks(-10) - return + if(!status) + if(L.ckey && !(L.client?.prefs.lickable)) + to_chat(R, "ERROR ERROR: Target not lickable. Aborting display-of-affection subroutine.") + return + if(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) + if(istype(L) && L.fire_stacks > 0) + L.adjust_fire_stacks(-10) + else + R.visible_message("\the [R] affectionally licks \the [L]!", "You affectionally lick \the [L]!") + playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1) + if(istype(L) && L.fire_stacks > 0) + L.adjust_fire_stacks(-10) else if(R.cell.charge <= 800) to_chat(R, "Insufficent Power!") @@ -310,35 +312,43 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! return //Nerfed tongue for flavour reasons (haha geddit?). Used for aux skins for regular borgs -/obj/item/soap/tongue/flavour +/obj/item/dogborg_tongue + name = "synthetic tongue" + desc = "Useful for slurping mess off the floor before affectionally licking the crew members in the face." + icon = 'icons/mob/dogborg.dmi' + icon_state = "synthtongue" + hitsound = 'sound/effects/attackblob.ogg' desc = "For giving affectionate kisses." + item_flags = NOBLUDGEON -/obj/item/soap/tongue/flavour/attack_self(mob/user) - return - -/obj/item/soap/tongue/flavour/afterattack(atom/target, mob/user, proximity) - if(!proximity) +/obj/item/dogborg_tongue/afterattack(atom/target, mob/user, proximity) + . = ..() + if(!proximity || !isliving(target)) 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 + var/mob/living/L = target + if(L.ckey && !(L.client?.prefs.lickable)) + to_chat(R, "ERROR ERROR: Target not lickable. Aborting display-of-affection subroutine.") + return -//Same as above but for noses -/obj/item/analyzer/nose/flavour/AltClick(mob/user) - return + if(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(R, 'sound/effects/attackblob.ogg', 50, 1) + else + R.visible_message("\the [R] affectionally licks \the [L]!", "You affectionally lick \the [L]!") + playsound(R, 'sound/effects/attackblob.ogg', 50, 1) -/obj/item/analyzer/nose/flavour/attack_self(mob/user) - return -/obj/item/analyzer/nose/flavour/afterattack(atom/target, mob/user, proximity) +/obj/item/dogborg_nose + name = "boop module" + icon = 'icons/mob/dogborg.dmi' + icon_state = "nose" + desc = "The BOOP module" + flags_1 = CONDUCT_1|NOBLUDGEON + force = 0 + +/obj/item/dogborg_nose/afterattack(atom/target, mob/user, proximity) + . = ..() if(!proximity) return do_attack_animation(target, null, src)