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