From 65ea7e07d9013a7a20438a0ef9a398e67fcafcf7 Mon Sep 17 00:00:00 2001 From: ComicIronic Date: Mon, 20 Apr 2015 03:48:01 -0700 Subject: [PATCH] Ventcrawl Overhaul Ventcrawling mobs now no longer get a teleportation menu, instead, they are put inside the vents, the client gets an overlay of the pipes in the pipe network, and it is up to them to navigate. --- code/ATMOSPHERICS/atmospherics.dm | 61 +++++-- .../components/unary/vent_pump.dm | 19 +-- code/_onclick/ventcrawl.dm | 37 ++++ .../living/carbon/alien/humanoid/empress.dm | 2 +- .../mob/living/carbon/alien/humanoid/queen.dm | 2 +- .../modules/mob/living/carbon/alien/powers.dm | 6 +- code/modules/mob/living/carbon/carbon.dm | 161 ++++++++---------- .../mob/living/carbon/metroid/powers.dm | 6 +- .../mob/living/carbon/monkey/powers.dm | 4 +- code/modules/mob/living/living_defines.dm | 3 + .../modules/mob/living/simple_animal/borer.dm | 4 +- .../living/simple_animal/friendly/mouse.dm | 51 +----- .../simple_animal/friendly/spiderbot.dm | 46 +---- paradise.dme | 1 + sound/machines/ventcrawl.ogg | Bin 0 -> 40591 bytes 15 files changed, 181 insertions(+), 222 deletions(-) create mode 100644 code/_onclick/ventcrawl.dm create mode 100644 sound/machines/ventcrawl.ogg diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index a1ed1bf3648..2444031a8c2 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -15,26 +15,38 @@ Pipelines + Other Objects -> Pipe network active_power_usage = 0 power_channel = ENVIRON var/nodealert = 0 - - layer = 2.4 //under wires with their 2.44 + + layer = 2.4 //under wires with their 2.44 var/connect_types[] = list(1) //1=regular, 2=supply, 3=scrubber var/connected_to = 1 //same as above, currently not used for anything var/icon_connect_type = "" //"-supply" or "-scrubbers" - + var/initialize_directions = 0 var/pipe_color - + var/global/datum/pipe_icon_manager/icon_manager +/obj/machinery/atmospherics/Destroy() + for(var/mob/living/M in src) //ventcrawling is serious business + M.remove_ventcrawl() + M.loc = src.loc + ..() + +// Find a connecting /obj/machinery/atmospherics in specified direction. +/obj/machinery/atmospherics/proc/findConnecting(var/direction) + for(var/obj/machinery/atmospherics/target in get_step(src,direction)) + if(target.initialize_directions & get_dir(target,src)) + return target + /obj/machinery/atmospherics/New() if(!icon_manager) icon_manager = new() - + if(!pipe_color) pipe_color = color color = null - + if(!pipe_color_check(pipe_color)) pipe_color = null ..() @@ -84,22 +96,22 @@ obj/machinery/atmospherics/proc/check_connect_types_construction(obj/machinery/a if(list1[i] == list2[j]) var/n = list1[i] return n - return 0 - + return 0 + /obj/machinery/atmospherics/proc/check_icon_cache(var/safety = 0) if(!istype(icon_manager)) if(!safety) //to prevent infinite loops icon_manager = new() check_icon_cache(1) return 0 - + return 1 /obj/machinery/atmospherics/proc/color_cache_name(var/obj/machinery/atmospherics/node) //Don't use this for standard pipes if(!istype(node)) return null - + return node.pipe_color /obj/machinery/atmospherics/process() @@ -134,4 +146,31 @@ obj/machinery/atmospherics/proc/check_connect_types_construction(obj/machinery/a /obj/machinery/atmospherics/proc/disconnect(obj/machinery/atmospherics/reference) /obj/machinery/atmospherics/update_icon() - return null \ No newline at end of file + return null + +#define VENT_SOUND_DELAY 30 + +/obj/machinery/atmospherics/relaymove(mob/living/user, direction) + if(!(direction & initialize_directions)) //can't go in a way we aren't connecting to + return + + var/obj/machinery/atmospherics/target_move = findConnecting(direction) + if(target_move) + if(is_type_in_list(target_move, ventcrawl_machinery)) + user.remove_ventcrawl() + user.forceMove(target_move.loc) //handles entering and so on + user.visible_message("You hear something squeezing through the ducts.", "You climb out the ventilation system.") + else + user.loc = target_move + user.client.eye = target_move //if we don't do this, Byond only updates the eye every tick - required for smooth movement + if(world.time - user.last_played_vent > VENT_SOUND_DELAY) + user.last_played_vent = world.time + playsound(src, 'sound/machines/ventcrawl.ogg', 50, 1, -3) + else + if((direction & initialize_directions) || is_type_in_list(src, ventcrawl_machinery)) //if we move in a way the pipe can connect, but doesn't - or we're in a vent + user.remove_ventcrawl() + user.forceMove(src.loc) + user.visible_message("You hear something squeezing through the pipes.", "You climb out the ventilation system.") + user.canmove = 0 + spawn(1) + user.canmove = 1 \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index d2092ce7e54..a96d5b1acd4 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -39,7 +39,7 @@ var/radio_filter_out var/radio_filter_in - + connect_types = list(1,2) //connects to regular and supply pipes /obj/machinery/atmospherics/unary/vent_pump/on @@ -80,7 +80,7 @@ return overlays.Cut() - + var/vent_icon = "vent" var/turf/T = get_turf(src) @@ -89,7 +89,7 @@ if(T.intact && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe)) vent_icon += "h" - + if(welded) vent_icon += "weld" else if(!powered()) @@ -375,16 +375,3 @@ initial_loc.air_vent_names -= id_tag ..() return - -/* - Alt-click to ventcrawl - Monkeys, aliens, slimes and mice. - This is a little buggy but somehow that just seems to plague ventcrawl. - I am sorry, I don't know why. -*/ -/obj/machinery/atmospherics/unary/vent_pump/AltClick(var/mob/living/ML) - if(istype(ML)) - var/list/ventcrawl_verbs = list(/mob/living/carbon/monkey/verb/ventcrawl, /mob/living/carbon/alien/verb/alien_ventcrawl, /mob/living/carbon/slime/verb/ventcrawl,/mob/living/simple_animal/mouse/verb/ventcrawl) - if(length(ML.verbs & ventcrawl_verbs)) // alien queens have this removed, an istype would be complicated - ML.handle_ventcrawl(src) - return - ..() diff --git a/code/_onclick/ventcrawl.dm b/code/_onclick/ventcrawl.dm new file mode 100644 index 00000000000..f80b0933a71 --- /dev/null +++ b/code/_onclick/ventcrawl.dm @@ -0,0 +1,37 @@ +var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump, /obj/machinery/atmospherics/unary/vent_scrubber) + +/mob/living/carbon/slime/AltClickOn(var/atom/A) + if(is_type_in_list(A,ventcrawl_machinery)) + src.ventcrawl(A) + return + ..(A) + +/mob/living/carbon/monkey/AltClickOn(var/atom/A) + if(is_type_in_list(A,ventcrawl_machinery)) + src.ventcrawl(A) + return + ..(A) + +/mob/living/simple_animal/borer/AltClickOn(var/atom/A) + if(is_type_in_list(A,ventcrawl_machinery)) + src.ventcrawl(A) + return + ..(A) + +/mob/living/simple_animal/mouse/AltClickOn(var/atom/A) + if(is_type_in_list(A,ventcrawl_machinery)) + src.ventcrawl(A) + return + ..(A) + +/mob/living/simple_animal/spiderbot/AltClickOn(var/atom/A) + if(is_type_in_list(A,ventcrawl_machinery)) + src.ventcrawl(A) + return + ..(A) + +/mob/living/carbon/alien/AltClickOn(var/atom/A) + if(is_type_in_list(A,ventcrawl_machinery)) + src.ventcrawl(A) + return + ..(A) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/empress.dm b/code/modules/mob/living/carbon/alien/humanoid/empress.dm index 867804f87c2..dd99aa3fe86 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/empress.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/empress.dm @@ -47,7 +47,7 @@ real_name = src.name verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/resin) - verbs -= /mob/living/carbon/alien/verb/alien_ventcrawl + verbs -= /mob/living/carbon/alien/verb/ventcrawl ..() /mob/living/carbon/alien/humanoid/empress diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 2c4ba4a7e43..85f898640ab 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -24,7 +24,7 @@ real_name = src.name verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin,/mob/living/carbon/alien/humanoid/proc/resin) - verbs -= /mob/living/carbon/alien/verb/alien_ventcrawl + verbs -= /mob/living/carbon/alien/verb/ventcrawl ..() diff --git a/code/modules/mob/living/carbon/alien/powers.dm b/code/modules/mob/living/carbon/alien/powers.dm index 1af22f401eb..c735c43adf8 100644 --- a/code/modules/mob/living/carbon/alien/powers.dm +++ b/code/modules/mob/living/carbon/alien/powers.dm @@ -1,5 +1,5 @@ -/mob/living/carbon/alien/verb/alien_ventcrawl() // -- TLE - set name = "Crawl through vent (alien)" +/mob/living/carbon/alien/verb/ventcrawl(var/atom/pipe) // -- TLE + set name = "Crawl Through Vent(Alien)" set desc = "Enter an air vent and crawl through the pipe system." set category = "Alien" - handle_ventcrawl() \ No newline at end of file + handle_ventcrawl(pipe) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index c52ba708661..2a8f173eb2f 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -1,3 +1,6 @@ +mob/living + var/canEnterVentWith = "/obj/item/weapon/implant=0&/obj/item/clothing/mask/facehugger=0&/obj/item/device/radio/borg=0&/obj/machinery/camera=0" + /mob/living/carbon/Login() ..() update_hud() @@ -256,104 +259,80 @@ /mob/living/carbon/can_use_vents() return -/mob/living/proc/handle_ventcrawl(var/obj/machinery/atmospherics/unary/vent_pump/vent_found = null, var/ignore_items = 0) // -- TLE -- Merged by Carn - if(stat) - src << "You must be conscious to do this!" - return - if(lying) - src << "You can't vent crawl while you're stunned!" - return +/mob/living/proc/handle_ventcrawl(var/atom/clicked_on) // -- TLE -- Merged by Carn + diary << "[src] is ventcrawling." + if(!stat) + if(!lying) - var/special_fail_msg = can_use_vents() - if(special_fail_msg) - src << "\red [special_fail_msg]" - return +/* + if(clicked_on) + world << "We start with [clicked_on], and [clicked_on.type]" +*/ + var/obj/machinery/atmospherics/unary/vent_found + + if(clicked_on && Adjacent(clicked_on)) + var/obj/machinery/atmospherics/unary/vent_pump/v = clicked_on + if(!istype(v) || !v.welded) + vent_found = clicked_on + + if(!vent_found) + for(var/obj/machinery/atmospherics/machine in range(1,src)) + if(is_type_in_list(machine, ventcrawl_machinery)) + vent_found = machine + + var/obj/machinery/atmospherics/unary/vent_pump/v = machine + if(istype(v) && v.welded) + vent_found = null + + if(vent_found) + if(vent_found.network && (vent_found.network.normal_members.len || vent_found.network.line_members.len)) + + src << "You begin climbing into the ventilation system..." + if(!do_after(src, 45)) + return + + if(!client) + return + + if(contents.len && !isrobot(src)) + for(var/obj/item/carried_item in contents)//If the ventcrawler got on objects. + if(!(isInTypes(carried_item, canEnterVentWith))) + src << "You can't be carrying items or have items equipped when vent crawling!" + return + + visible_message("[src] scrambles into the ventilation ducts!", "You climb into the ventilation system.") + + loc = vent_found + add_ventcrawl(vent_found) + + else + src << "This vent is not connected to anything." + + else + src << "You must be standing on or beside an air vent to enter it." + + else + src << "You can't vent crawl while you're stunned!" - if(vent_found) // one was passed in, probably from vent/AltClick() - if(vent_found.welded) - src << "That vent is welded shut." - return - if(!vent_found.Adjacent(src)) - return // don't even acknowledge that else - for(var/obj/machinery/atmospherics/unary/vent_pump/v in range(1,src)) - if(!v.welded) - if(v.Adjacent(src)) - vent_found = v - if(!vent_found) - src << "You'll need a non-welded vent to crawl into!" - return + src << "You must be conscious to do this!" + return - if(!vent_found.network || !vent_found.network.normal_members.len) - src << "This vent is not connected to anything." - return +/mob/living/proc/add_ventcrawl(obj/machinery/atmospherics/unary/starting_machine) + for(var/datum/pipeline/pipeline in starting_machine.network.line_members) + for(var/atom/A in (pipeline.members || pipeline.edges)) + var/image/new_image = image(A, A.loc, dir = A.dir) + pipes_shown += new_image + client.images += new_image - var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in vent_found.network.normal_members) - if(temp_vent.welded) - continue - if(temp_vent in loc) - continue - var/turf/T = get_turf(temp_vent) +/mob/living/proc/remove_ventcrawl() + for(var/image/current_image in pipes_shown) + client.images -= current_image - if(!T || T.z != loc.z) - continue + pipes_shown.len = 0 - var/i = 1 - var/index = "[T.loc.name]\[[i]\]" - while(index in vents) - i++ - index = "[T.loc.name]\[[i]\]" - vents[index] = temp_vent - if(!vents.len) - src << "\red There are no available vents to travel to, they could be welded." - return - - var/obj/selection = input("Select a destination.", "Duct System") as null|anything in sortAssoc(vents) - if(!selection) return - - if(!vent_found.Adjacent(src)) - src << "Never mind, you left." - return - - if(!ignore_items) - for(var/obj/item/carried_item in contents)//If the monkey got on objects. - if( !istype(carried_item, /obj/item/weapon/implant) && !istype(carried_item, /obj/item/clothing/mask/facehugger) )//If it's not an implant or a facehugger - src << "\red You can't be carrying items or have items equipped when vent crawling!" - return - - if(isslime(src)) - var/mob/living/carbon/slime/S = src - if(S.Victim) - src << "\red You'll have to let [S.Victim] go or finish eating \him first." - return - - var/obj/machinery/atmospherics/unary/vent_pump/target_vent = vents[selection] - if(!target_vent) - return - - for(var/mob/O in viewers(src, null)) - O.show_message(text("[src] scrambles into the ventillation ducts!"), 1) - loc = target_vent - - var/travel_time = round(get_dist(loc, target_vent.loc) / 2) - - spawn(travel_time) - - if(!target_vent) return - for(var/mob/O in hearers(target_vent,null)) - O.show_message("You hear something squeezing through the ventilation ducts.",2) - - sleep(travel_time) - - if(!target_vent) return - if(target_vent.welded) //the vent can be welded while alien scrolled through the list or travelled. - target_vent = vent_found //travel back. No additional time required. - src << "\red The vent you were heading to appears to be welded." - loc = target_vent.loc - var/area/new_area = get_area(loc) - if(new_area) - new_area.Entered(src) + if(client) + client.eye = src /mob/living/carbon/clean_blood() . = ..() diff --git a/code/modules/mob/living/carbon/metroid/powers.dm b/code/modules/mob/living/carbon/metroid/powers.dm index bb7dcbe7bbc..23733bb9b87 100644 --- a/code/modules/mob/living/carbon/metroid/powers.dm +++ b/code/modules/mob/living/carbon/metroid/powers.dm @@ -104,7 +104,7 @@ adjustBruteLoss(-10) adjustFireLoss(-10) adjustCloneLoss(-10) - + updatehealth() if(Victim) Victim.updatehealth() @@ -227,9 +227,9 @@ else src << "I am not old enough to reproduce yet..." -/mob/living/carbon/slime/verb/ventcrawl() +/mob/living/carbon/slime/verb/ventcrawl(var/atom/pipe) set name = "Crawl through Vent" set desc = "Enter an air vent and crawl through the pipe system." set category = "Slime" if(Victim) return - handle_ventcrawl() \ No newline at end of file + handle_ventcrawl(pipe) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/monkey/powers.dm b/code/modules/mob/living/carbon/monkey/powers.dm index e7c6937cda2..1ed34a6b73c 100644 --- a/code/modules/mob/living/carbon/monkey/powers.dm +++ b/code/modules/mob/living/carbon/monkey/powers.dm @@ -1,5 +1,5 @@ -/mob/living/carbon/monkey/verb/ventcrawl() +/mob/living/carbon/monkey/verb/ventcrawl(var/atom/pipe) set name = "Crawl through Vent" set desc = "Enter an air vent and crawl through the pipe system." set category = "Monkey" - handle_ventcrawl() + handle_ventcrawl(pipe) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 5bda59435af..7c235b0349a 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -44,3 +44,6 @@ var/silent = null //Can't talk. Value goes down every life proc. var/floating = 0 var/nightvision = 0 + + var/list/icon/pipes_shown = list() + var/last_played_vent \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index c0bdc6fe0eb..e9e80db0dd4 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -456,11 +456,11 @@ mob/living/simple_animal/borer/proc/detatch() host_brain.real_name = M.real_name host.status_flags |= PASSEMOTES -/mob/living/simple_animal/borer/verb/ventcrawl() +/mob/living/simple_animal/borer/verb/ventcrawl(var/atom/pipe) set name = "Crawl through vent (borer)" set desc = "Enter an air vent and crawl through the pipe system." set category = "Alien" - handle_ventcrawl() + handle_ventcrawl(pipe) /mob/living/simple_animal/borer/can_use_vents() return diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 76e9bcc276d..65b6447696e 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -70,58 +70,11 @@ client.time_died_as_mouse = world.time //copy paste from alien/larva, if that func is updated please update this one also -/mob/living/simple_animal/mouse/verb/ventcrawl() +/mob/living/simple_animal/mouse/verb/ventcrawl(var/atom/pipe) set name = "Crawl through Vent" set desc = "Enter an air vent and crawl through the pipe system." set category = "Mouse" - -// if(!istype(V,/obj/machinery/atmoalter/siphs/fullairsiphon/air_vent)) -// return - - if(src.stat != CONSCIOUS) return - - var/obj/machinery/atmospherics/unary/vent_pump/vent_found - var/welded = 0 - for(var/obj/machinery/atmospherics/unary/vent_pump/v in range(1,src)) - if(!v.welded) - vent_found = v - break - else - welded = 1 - if(vent_found) - if(vent_found.network&&vent_found.network.normal_members.len) - var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in vent_found.network.normal_members) - if(temp_vent.loc == loc) - continue - vents.Add(temp_vent) - var/list/choices = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/vent in vents) - if(vent.loc.z != loc.z) - continue - var/atom/a = get_turf(vent) - choices.Add(a.loc) - var/turf/startloc = loc - var/obj/selection = input("Select a destination.", "Duct System") in choices - var/selection_position = choices.Find(selection) - if(loc==startloc) - var/obj/target_vent = vents[selection_position] - if(target_vent) - /* - for(var/mob/O in oviewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("[src] scrambles into the ventillation ducts!"), 1) - */ - loc = target_vent.loc - else - src << "\blue You need to remain still while entering a vent." - else - src << "\blue This vent is not connected to anything." - else if(welded) - src << "\red That vent is welded." - else - src << "\blue You must be standing on or beside an air vent to enter it." - return + handle_ventcrawl(pipe) //make mice fit under tables etc? this was hacky, and not working /* diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 4729438839e..195d2212436 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -140,7 +140,7 @@ for(var/mob/M in viewers(src, null)) if ((M.client && !( M.blinded ))) M.show_message("\red [user] gently taps [src] with the [O]. ") - + /mob/living/simple_animal/spiderbot/emag_act(user as mob) if (emagged) user << "\red [src] is already overloaded - better run." @@ -219,51 +219,11 @@ return //copy paste from alien/larva, if that func is updated please update this one also -/mob/living/simple_animal/spiderbot/verb/ventcrawl() +/mob/living/simple_animal/spiderbot/verb/ventcrawl(var/atom/pipe) set name = "Crawl through Vent" set desc = "Enter an air vent and crawl through the pipe system." set category = "Spiderbot" - -// if(!istype(V,/obj/machinery/atmoalter/siphs/fullairsiphon/air_vent)) -// return - var/obj/machinery/atmospherics/unary/vent_pump/vent_found - var/welded = 0 - for(var/obj/machinery/atmospherics/unary/vent_pump/v in range(1,src)) - if(!v.welded) - vent_found = v - break - else - welded = 1 - if(vent_found) - if(vent_found.network&&vent_found.network.normal_members.len) - var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in vent_found.network.normal_members) - if(temp_vent.loc == loc) - continue - vents.Add(temp_vent) - var/list/choices = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/vent in vents) - if(vent.loc.z != loc.z) - continue - var/atom/a = get_turf(vent) - choices.Add(a.loc) - var/turf/startloc = loc - var/obj/selection = input("Select a destination.", "Duct System") in choices - var/selection_position = choices.Find(selection) - if(loc==startloc) - var/obj/target_vent = vents[selection_position] - if(target_vent) - loc = target_vent.loc - else - src << "\blue You need to remain still while entering a vent." - else - src << "\blue This vent is not connected to anything." - else if(welded) - src << "\red That vent is welded." - else - src << "\blue You must be standing on or beside an air vent to enter it." - return - + handle_ventcrawl(pipe) //Cannibalized from the parrot mob. ~Zuhayr /mob/living/simple_animal/spiderbot/verb/drop_held_item() diff --git a/paradise.dme b/paradise.dme index 47cb9cbd971..8460f9bd996 100644 --- a/paradise.dme +++ b/paradise.dme @@ -47,6 +47,7 @@ #include "code\_onclick\other_mobs.dm" #include "code\_onclick\overmind.dm" #include "code\_onclick\telekinesis.dm" +#include "code\_onclick\ventcrawl.dm" #include "code\_onclick\hud\_defines.dm" #include "code\_onclick\hud\ai.dm" #include "code\_onclick\hud\alien.dm" diff --git a/sound/machines/ventcrawl.ogg b/sound/machines/ventcrawl.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2df8b5c8981fe20074a1d036ea6434ccd67b9481 GIT binary patch literal 40591 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 literal 0 HcmV?d00001