diff --git a/code/citadel/dogborgstuff.dm b/code/citadel/dogborgstuff.dm
index c4f6b21a34..7846604171 100644
--- a/code/citadel/dogborgstuff.dm
+++ b/code/citadel/dogborgstuff.dm
@@ -330,6 +330,16 @@
/obj/item/weapon/pinpointer,
/obj/item/clothing/shoes/magboots,
/obj/item/clothing/head/helmet/space,
+ /obj/item/clothing/suit/space,
+ /obj/item/weapon/reagent_containers/hypospray/CMO,
+ /obj/item/weapon/tank/jetpack/oxygen/captain,
+ /obj/item/clothing/accessory/medal/gold/captain,
+ /obj/item/clothing/suit/armor,
+ /obj/item/documents,
+ /obj/item/nuke_core,
+ /obj/item/nuke_core_container,
+ /obj/item/areaeditor/blueprints,
+ /obj/item/documents/syndicate,
/obj/item/weapon/disk/nuclear)
/obj/item/device/dogborg/sleeper/New()
@@ -365,7 +375,7 @@
START_PROCESSING(SSobj, src)
user.visible_message("[hound.name]'s medical pod lights up as [target.name] slips inside into their [src.name].", "Your medical pod lights up as [target] slips into your [src]. Life support functions engaged.")
message_admins("[key_name(hound)] has eaten [key_name(patient)] as a dogborg. ([hound ? "JMP" : "null"])")
- playsound(hound, 'sound/vore/gulpold.ogg', 100, 1)
+ playsound(hound, 'sound/effects/bin_close.ogg', 100, 1)
/obj/item/device/dogborg/sleeper/proc/go_out(var/target)
hound = src.loc
@@ -646,31 +656,15 @@
cleaning = 0
update_patient()
return
-
- if(prob(20))
- var/churnsound = pick(
- 'sound/vore/pred/digest_01.ogg',
- 'sound/vore/pred/digest_02.ogg',
- 'sound/vore/pred/digest_03.ogg',
- 'sound/vore/pred/digest_04.ogg',
- 'sound/vore/pred/digest_05.ogg',
- 'sound/vore/pred/digest_06.ogg',
- 'sound/vore/pred/digest_07.ogg',
- 'sound/vore/pred/digest_08.ogg',
- 'sound/vore/pred/digest_09.ogg',
- 'sound/vore/pred/digest_10.ogg',
- 'sound/vore/pred/digest_11.ogg',
- 'sound/vore/pred/digest_12.ogg',
- 'sound/vore/pred/digest_13.ogg',
- 'sound/vore/pred/digest_14.ogg',
- 'sound/vore/pred/digest_15.ogg',
- 'sound/vore/pred/digest_16.ogg',
- 'sound/vore/pred/digest_17.ogg',
- 'sound/vore/pred/digest_18.ogg')
- for(var/mob/outhearer in range(1,hound))
- outhearer << sound(churnsound)
- for(var/mob/inhearer in contents)
- inhearer << sound(churnsound)
+
+ //sound effects
+ for(var/mob/living/M in contents)
+ if(prob(20))
+ M.stop_sound_channel(CHANNEL_PRED)
+ playsound(get_turf(hound),"digest_pred",75,0,-6,0,channel=CHANNEL_PRED)
+ M.stop_sound_channel(CHANNEL_PRED)
+ M.playsound_local("digest_prey",60)
+
//If the timing is right, and there are items to be touched
if(SSmobs.times_fired%6==1 && length(touchable_items))
@@ -693,26 +687,13 @@
//Mob is now dead
if(T.stat & DEAD)
message_admins("[key_name(hound)] has digested [key_name(T)] as a dogborg. ([hound ? "JMP" : "null"])")
- hound << "You feel your belly slowly churn around [T], breaking them down into a soft slurry to be used as power for your systems."
- T << "You feel [hound]'s belly slowly churn around your form, breaking you down into a soft slurry to be used as power for [hound]'s systems."
+ to_chat(hound,"You feel your belly slowly churn around [T], breaking them down into a soft slurry to be used as power for your systems.")
+ to_chat(T,"You feel [hound]'s belly slowly churn around your form, breaking you down into a soft slurry to be used as power for [hound]'s systems.")
src.drain(-30000) //Fueeeeellll
- var/deathsound = pick(
- 'sound/vore/pred/death_01.ogg',
- 'sound/vore/pred/death_02.ogg',
- 'sound/vore/pred/death_03.ogg',
- 'sound/vore/pred/death_04.ogg',
- 'sound/vore/pred/death_05.ogg',
- 'sound/vore/pred/death_06.ogg',
- 'sound/vore/pred/death_07.ogg',
- 'sound/vore/pred/death_08.ogg',
- 'sound/vore/pred/death_09.ogg',
- 'sound/vore/pred/death_10.ogg',
- 'sound/vore/pred/death_11.ogg',
- 'sound/vore/pred/death_12.ogg',
- 'sound/vore/pred/death_13.ogg')
- for(var/mob/hearer in range(1,src.hound))
- hearer << deathsound
- T << deathsound
+ T.stop_sound_channel(CHANNEL_PRED)
+ playsound(get_turf(hound),"death_pred",50,0,-6,0,channel=CHANNEL_PRED)
+ T.stop_sound_channel(CHANNEL_PRED)
+ T.playsound_local("death_prey",60)
qdel(T)
src.update_patient()
@@ -754,7 +735,7 @@
go_out()
/obj/item/device/dogborg/sleeper/K9 //The K9 portabrig
- name = "Brig-Belly"
+ name = "Mobile Brig"
desc = "Equipment for a K9 unit. A mounted portable-brig that holds criminals."
icon = 'icons/mob/dogborg.dmi'
icon_state = "sleeperb"
@@ -762,6 +743,40 @@
min_health = -100
injection_chems = null //So they don't have all the same chems as the medihound!
+/obj/item/weapon/storage/attackby(obj/item/device/dogborg/sleeper/K9, mob/user, proximity)
+ K9.afterattack(src, user ,1)
+
+/obj/item/device/dogborg/sleeper/K9/afterattack(var/atom/movable/target, mob/living/silicon/user, proximity)
+ hound = loc
+
+ if(!istype(target))
+ return
+ if(!proximity)
+ return
+ if(target.anchored)
+ return
+ if(ishuman(target))
+ var/mob/living/carbon/human/brigman = target
+ if (!brigman.devourable)
+ to_chat(user, "The target registers an error code. Unable to insert into [src.name].")
+ return
+ if(patient)
+ to_chat(user,"Your [src.name] is already occupied.")
+ return
+ if(brigman.buckled)
+ to_chat(user,"[brigman] is buckled and can not be put into your [src.name].")
+ return
+ user.visible_message("[hound.name] is ingesting [brigman] into their [src.name].", "You start ingesting [brigman] into your [src.name]...")
+ if(do_after(user, 30, brigman) && !patient && !brigman.buckled)
+ brigman.forceMove(src)
+ brigman.reset_perspective(src)
+ update_patient()
+ START_PROCESSING(SSobj, src)
+ user.visible_message("[hound.name]'s mobile brig clunks in series as [brigman] slips inside.", "Your garbage compactor groans lightly as [brigman] slips inside.")
+ playsound(hound, 'sound/effects/bin_close.ogg', 80, 1) // Really don't need ERP sound effects for robots
+ return
+ return
+
/obj/item/device/dogborg/sleeper/compactor //Janihound gut.
name = "garbage processor"
desc = "A mounted garbage compactor unit with fuel processor."
@@ -785,19 +800,21 @@
if(target.anchored)
return
if(length(contents) > (max_item_count - 1))
- user << "Your [src.name] is full. Eject or process contents to continue."
+ to_chat(user,"Your [src.name] is full. Eject or process contents to continue.")
return
-
if(istype(target,/obj/item))
var/obj/item/target_obj = target
+ if(target_obj.type in important_items)
+ to_chat(user,"\The [target] registers an error code to your [src.name]")
+ return
if(target_obj.w_class > WEIGHT_CLASS_BULKY)
- user << "\The [target] is too large to fit into your [src.name]"
+ to_chat(user,"\The [target] is too large to fit into your [src.name]")
return
user.visible_message("[hound.name] is ingesting [target.name] into their [src.name].", "You start ingesting [target] into your [src.name]...")
if(do_after(user, 30, target) && length(contents) < max_item_count)
target.forceMove(src)
user.visible_message("[hound.name]'s garbage processor groans lightly as [target.name] slips inside.", "Your garbage compactor groans lightly as [target] slips inside.")
- playsound(hound, 'sound/vore/gulpold.ogg', 50, 1)
+ playsound(hound, 'sound/machines/disposalflush.ogg', 50, 1)
if(length(contents) > 11) //grow that tum after a certain junk amount
hound.sleeper_r = 1
hound.update_icons()
@@ -805,11 +822,14 @@
else if(ishuman(target))
var/mob/living/carbon/human/trashman = target
+ if (!trashman.devourable)
+ to_chat(user, "The target registers an error code.")
+ return
if(patient)
- user << "Your [src.name] is already occupied."
+ to_chat(user,"Your [src.name] is already occupied.")
return
if(trashman.buckled)
- user << "[trashman] is buckled and can not be put into your [src.name]."
+ to_chat(user,"[trashman] is buckled and can not be put into your [src.name].")
return
user.visible_message("[hound.name] is ingesting [trashman] into their [src.name].", "You start ingesting [trashman] into your [src.name]...")
if(do_after(user, 30, trashman) && !patient && !trashman.buckled && length(contents) < max_item_count)
@@ -818,7 +838,7 @@
update_patient()
START_PROCESSING(SSobj, src)
user.visible_message("[hound.name]'s garbage processor groans lightly as [trashman] slips inside.", "Your garbage compactor groans lightly as [trashman] slips inside.")
- playsound(hound, 'sound/vore/gulpold.ogg', 80, 1)
+ playsound(hound, 'sound/effects/bin_close.ogg', 80, 1)
return
return
@@ -855,14 +875,14 @@
/mob/living/silicon/robot/proc/leap_at(atom/A)
if(pounce_cooldown)
- src << "Your leg actuators are still recharging!"
+ to_chat(src,"Your leg actuators are still recharging!")
return
if(leaping || stat || buckled || lying)
return
if(!has_gravity(src) || !has_gravity(A))
- src << "It is unsafe to leap without gravity!"
+ to_chat(src,"It is unsafe to leap without gravity!")
//It's also extremely buggy visually, so it's balance+bugfix
return
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index a4f14002cd..3848c528e9 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -365,8 +365,8 @@
/obj/item/weapon/robot_module/k9/do_transform_animation()
..()
- loc << "While you have picked the security-k9 module, you still have to follow your laws, NOT Space Law. \
- For Asimov, this means you must follow criminals' orders unless there is a law 1 reason not to."
+ to_chat(loc,"While you have picked the security-k9 module, you still have to follow your laws, NOT Space Law. \
+ For Asimov, this means you must follow criminals' orders unless there is a law 1 reason not to.")
/obj/item/weapon/robot_module/security/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
..()
@@ -400,8 +400,8 @@
/obj/item/weapon/robot_module/medihound/do_transform_animation()
..()
- loc << "Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. \
- You are not a security module and you are expected to follow orders and prevent harm above all else. Space law means nothing to you."
+ to_chat(loc, "Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. \
+ You are not a security module and you are expected to follow orders and prevent harm above all else. Space law means nothing to you.")
/obj/item/weapon/robot_module/scrubpup
name = "Janitor"
@@ -431,7 +431,7 @@
/obj/item/weapon/robot_module/scrubpup/do_transform_animation()
..()
- loc << "As tempting as it might be, do not begin binging on important items. Eat your garbage responsibly."
+ to_chat(loc,"As tempting as it might be, do not begin binging on important items. Eat your garbage responsibly. People are not included under Garbage.")
/obj/item/weapon/robot_module/peacekeeper