diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index 7744b24d0f..e5749764e0 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -128,3 +128,6 @@ //component stuff #define COMSIG_COMBAT_TOGGLED "combatmode_toggled" //called by combat mode toggle on all equipped items. args: (mob/user, combatmode) + +//belly sound pref things +#define NORMIE_HEARCHECK 4 diff --git a/code/game/objects/items/devices/dogborg_sleeper.dm b/code/game/objects/items/devices/dogborg_sleeper.dm index 5af643217d..bbac39afff 100644 --- a/code/game/objects/items/devices/dogborg_sleeper.dm +++ b/code/game/objects/items/devices/dogborg_sleeper.dm @@ -18,6 +18,8 @@ var/escape_in_progress = FALSE var/message_cooldown var/breakout_time = 300 + var/tmp/last_hearcheck = 0 + var/tmp/list/hearing_mobs var/list/items_preserved = list() var/static/list/important_items = typecacheof(list( /obj/item/hand_tele, @@ -45,10 +47,16 @@ // Bags are prohibited from this due to the potential explotation of objects, same with brought -/obj/item/dogborg/sleeper/New() - ..() +/obj/item/dogborg/sleeper/Initialize() + . = ..() update_icon() item_flags |= NOBLUDGEON //No more attack messages + START_PROCESSING(SSobj, src) + +/obj/item/dogborg/sleeper/Destroy() + STOP_PROCESSING(SSobj, src) + go_out() //just... sanity I guess, edge case shit + return ..() /obj/item/dogborg/sleeper/Exit(atom/movable/O) return 0 @@ -86,7 +94,6 @@ target.forceMove(src) target.reset_perspective(src) update_gut() - START_PROCESSING(SSobj, src) user.visible_message("[hound.name]'s medical pod lights up and expands 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 sleeper'd [key_name(patient)] as a dogborg. [ADMIN_JMP(src)]") playsound(hound, 'sound/effects/bin_close.ogg', 100, 1) @@ -137,7 +144,8 @@ else //You clicked eject with nothing in you, let's just reset stuff to be sure. items_preserved.Cut() cleaning = FALSE - update_gut() + update_gut() + /obj/item/dogborg/sleeper/attack_self(mob/user) if(..()) @@ -265,7 +273,6 @@ patient_laststat = null patient = null hound.update_icons() - return //Gurgleborg process /obj/item/dogborg/sleeper/proc/clean_cycle() @@ -274,6 +281,10 @@ if(!(I in contents)) items_preserved -= I var/list/touchable_items = contents - items_preserved + var/sound/prey_digest = sound(get_sfx("digest_prey")) + var/sound/prey_death = sound(get_sfx("death_prey")) + var/sound/pred_digest = sound(get_sfx("digest_pred")) + var/sound/pred_death = sound(get_sfx("death_pred")) if(cleaning_cycles) cleaning_cycles-- cleaning = TRUE @@ -294,7 +305,7 @@ 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.") hound.cell.give(30000) //Fueeeeellll if((world.time - NORMIE_HEARCHECK) > last_hearcheck) - var/turf/source = get_turf(owner) + var/turf/source = get_turf(hound) LAZYCLEARLIST(hearing_mobs) for(var/mob/H in get_hearers_in_view(3, source)) if(!H.client || !(H.client.prefs.cit_toggles & DIGESTION_NOISES)) @@ -337,13 +348,12 @@ to_chat(hound, "Your [src] is now clean. Ending self-cleaning cycle.") cleaning = FALSE update_gut() - return //sound effects for(var/mob/living/M in contents) if(prob(50)) if((world.time - NORMIE_HEARCHECK) > last_hearcheck) - var/turf/source = get_turf(owner) + var/turf/source = get_turf(hound) LAZYCLEARLIST(hearing_mobs) for(var/mob/H in get_hearers_in_view(3, source)) if(!H.client || !(H.client.prefs.cit_toggles & DIGESTION_NOISES)) @@ -425,7 +435,6 @@ brigman.forceMove(src) brigman.reset_perspective(src) update_gut() - START_PROCESSING(SSobj, src) user.visible_message("[hound.name]'s mobile brig clunks in series as [brigman] slips inside.", "Your mobile brig 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 @@ -499,7 +508,6 @@ trashman.forceMove(src) trashman.reset_perspective(src) update_gut() - 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/effects/bin_close.ogg', 80, 1) return diff --git a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm b/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm index 25255814a5..707e3106af 100644 --- a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm +++ b/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm @@ -1,4 +1,4 @@ -#define NORMIE_HEARCHECK 4 + // Process the predator's effects upon the contents of its belly (i.e digestion/transformation etc) /obj/belly/proc/process_belly(var/times_fired,var/wait) //Passed by controller