From 0a389a418bd41a4eb8d2451d934921cbf3323d8d Mon Sep 17 00:00:00 2001 From: Neerti Date: Tue, 20 Sep 2016 17:21:58 -0400 Subject: [PATCH] Revert "Ported ventcrawling from vg." --- code/ATMOSPHERICS/atmospherics.dm | 2 - .../binary_devices/binary_atmos_base.dm | 3 + .../components/binary_devices/pipeturbine.dm | 3 + .../trinary_devices/trinary_base.dm | 2 + code/ATMOSPHERICS/components/tvalve.dm | 2 + code/ATMOSPHERICS/components/valve.dm | 2 + code/ATMOSPHERICS/pipes.dm | 11 ++ code/_macros.dm | 2 - .../mob/living/carbon/metroid/metroid.dm | 5 + code/modules/mob/living/living.dm | 122 +++++++++++- code/modules/mob/living/living_powers.dm | 10 + code/modules/multiz/pipes.dm | 3 + code/modules/ventcrawl/ventcrawl.dm | 185 ------------------ .../ventcrawl/ventcrawl_atmospherics.dm | 86 -------- code/modules/ventcrawl/ventcrawl_multiz.dm | 24 --- code/modules/ventcrawl/ventcrawl_verb.dm | 7 - polaris.dme | 4 - sound/machines/ventcrawl.ogg | Bin 40591 -> 0 bytes 18 files changed, 160 insertions(+), 313 deletions(-) delete mode 100644 code/modules/ventcrawl/ventcrawl.dm delete mode 100644 code/modules/ventcrawl/ventcrawl_atmospherics.dm delete mode 100644 code/modules/ventcrawl/ventcrawl_multiz.dm delete mode 100644 code/modules/ventcrawl/ventcrawl_verb.dm delete mode 100644 sound/machines/ventcrawl.ogg diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index b5d4df814e..7acf465b3e 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -29,8 +29,6 @@ Pipelines + Other Objects -> Pipe network var/pipe_color var/global/datum/pipe_icon_manager/icon_manager - var/obj/machinery/atmospherics/node1 - var/obj/machinery/atmospherics/node2 /obj/machinery/atmospherics/New() if(!icon_manager) diff --git a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm index 2ccfe0f2e8..37985034b1 100644 --- a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm +++ b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm @@ -6,6 +6,9 @@ obj/machinery/atmospherics/binary var/datum/gas_mixture/air1 var/datum/gas_mixture/air2 + var/obj/machinery/atmospherics/node1 + var/obj/machinery/atmospherics/node2 + var/datum/pipe_network/network1 var/datum/pipe_network/network2 diff --git a/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm b/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm index 5768def1ec..0eb342479d 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm @@ -17,6 +17,9 @@ var/dP = 0 + var/obj/machinery/atmospherics/node1 + var/obj/machinery/atmospherics/node2 + var/datum/pipe_network/network1 var/datum/pipe_network/network2 diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm index fa066d978f..3f5d66f262 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm @@ -7,6 +7,8 @@ obj/machinery/atmospherics/trinary var/datum/gas_mixture/air2 var/datum/gas_mixture/air3 + var/obj/machinery/atmospherics/node1 + var/obj/machinery/atmospherics/node2 var/obj/machinery/atmospherics/node3 var/datum/pipe_network/network1 diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm index f93970a93f..963a4f5009 100644 --- a/code/ATMOSPHERICS/components/tvalve.dm +++ b/code/ATMOSPHERICS/components/tvalve.dm @@ -12,6 +12,8 @@ var/state = 0 // 0 = go straight, 1 = go to side // like a trinary component, node1 is input, node2 is side output, node3 is straight output + var/obj/machinery/atmospherics/node1 + var/obj/machinery/atmospherics/node2 var/obj/machinery/atmospherics/node3 var/datum/pipe_network/network_node1 diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm index 8969523db4..6e43afd78e 100644 --- a/code/ATMOSPHERICS/components/valve.dm +++ b/code/ATMOSPHERICS/components/valve.dm @@ -12,6 +12,8 @@ var/open = 0 var/openDuringInit = 0 + var/obj/machinery/atmospherics/node1 + var/obj/machinery/atmospherics/node2 var/datum/pipe_network/network_node1 var/datum/pipe_network/network_node2 diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 105aaa8c8b..c445988c53 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -153,6 +153,9 @@ dir = SOUTH initialize_directions = SOUTH|NORTH + var/obj/machinery/atmospherics/node1 + var/obj/machinery/atmospherics/node2 + var/minimum_temperature_difference = 300 var/thermal_conductivity = 0 //WALL_HEAT_TRANSFER_COEFFICIENT No @@ -424,6 +427,8 @@ dir = SOUTH initialize_directions = EAST|NORTH|WEST + var/obj/machinery/atmospherics/node1 + var/obj/machinery/atmospherics/node2 var/obj/machinery/atmospherics/node3 level = 1 @@ -682,6 +687,8 @@ dir = SOUTH initialize_directions = NORTH|SOUTH|EAST|WEST + var/obj/machinery/atmospherics/node1 + var/obj/machinery/atmospherics/node2 var/obj/machinery/atmospherics/node3 var/obj/machinery/atmospherics/node4 @@ -1067,6 +1074,8 @@ initialize_directions = SOUTH density = 1 + var/obj/machinery/atmospherics/node1 + /obj/machinery/atmospherics/pipe/tank/New() icon_state = "air" initialize_directions = dir @@ -1229,6 +1238,8 @@ var/build_killswitch = 1 + var/obj/machinery/atmospherics/node1 + /obj/machinery/atmospherics/pipe/vent/New() initialize_directions = dir ..() diff --git a/code/_macros.dm b/code/_macros.dm index f03b83d4a0..06376205d1 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -42,5 +42,3 @@ #define isxeno(A) istype(A, /mob/living/simple_animal/xeno) #define RANDOM_BLOOD_TYPE pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+") - -#define to_chat(target, message) target << message \ No newline at end of file diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index 3c0bfbdbad..b7a66b6842 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -381,3 +381,8 @@ powerlevel = 10 adjustToxLoss(-10) nutrition = max(nutrition, get_max_nutrition()) + +/mob/living/carbon/slime/cannot_use_vents() + if(Victim) + return "You cannot ventcrawl while feeding." + ..() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 02de918890..ba5b8fd24c 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -636,10 +636,126 @@ default behaviour is: resting = !resting src << "You are now [resting ? "resting" : "getting up"]" +/mob/living/proc/is_allowed_vent_crawl_item(var/obj/item/carried_item) + return (get_inventory_slot(carried_item) == 0) + +/mob/living/simple_animal/spiderbot/is_allowed_vent_crawl_item(var/obj/item/carried_item) + if(carried_item == held_item) + return 0 + return ..() + +//called when the mob receives a bright flash +/mob/living/flash_eyes(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, visual = FALSE, type = /obj/screen/fullscreen/flash) + if(override_blindness_check || !(disabilities & BLIND)) + overlay_fullscreen("flash", type) + spawn(25) + if(src) + clear_fullscreen("flash", 25) + return 1 + +/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 + var/special_fail_msg = cannot_use_vents() + if(special_fail_msg) + src << "[special_fail_msg]" + return + + 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 + + if(!vent_found.network || !vent_found.network.normal_members.len) + src << "This vent is not connected to anything." + return + + 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) + + if(!T || T.z != loc.z) + continue + + 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) + var/list/badItems = list() + for(var/obj/item/carried_item in contents)//If the monkey got on objects. + if(!is_allowed_vent_crawl_item(carried_item)) + badItems += carried_item.name + if(badItems.len) + src << "Your [english_list(badItems)] prevent[badItems.len == 1 ? "s" : ""] you from ventcrawling." + 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) + /mob/living/proc/cannot_use_vents() - if(mob_size > MOB_SMALL) - return "You can't fit into that vent." - return null + return "You can't fit into that vent." /mob/living/proc/has_brain() return 1 diff --git a/code/modules/mob/living/living_powers.dm b/code/modules/mob/living/living_powers.dm index 4fb4c1bcbd..b4310d77b5 100644 --- a/code/modules/mob/living/living_powers.dm +++ b/code/modules/mob/living/living_powers.dm @@ -1,3 +1,13 @@ +/mob/living/proc/ventcrawl() + set name = "Crawl through Vent" + set desc = "Enter an air vent and crawl through the pipe system." + set category = "Abilities" + + if(stat == DEAD || paralysis || weakened || stunned || restrained()) + return + + handle_ventcrawl() + /mob/living/proc/hide() set name = "Hide" set desc = "Allows to hide beneath tables or certain items. Toggled on or off." diff --git a/code/modules/multiz/pipes.dm b/code/modules/multiz/pipes.dm index 1cb5b9b4da..85e23b6797 100644 --- a/code/modules/multiz/pipes.dm +++ b/code/modules/multiz/pipes.dm @@ -13,6 +13,9 @@ obj/machinery/atmospherics/pipe/zpipe dir = SOUTH initialize_directions = SOUTH + var/obj/machinery/atmospherics/node1 //connection on the same Z + var/obj/machinery/atmospherics/node2 //connection on the other Z + var/minimum_temperature_difference = 300 var/thermal_conductivity = 0 //WALL_HEAT_TRANSFER_COEFFICIENT No diff --git a/code/modules/ventcrawl/ventcrawl.dm b/code/modules/ventcrawl/ventcrawl.dm deleted file mode 100644 index 9b2b83d3e7..0000000000 --- a/code/modules/ventcrawl/ventcrawl.dm +++ /dev/null @@ -1,185 +0,0 @@ -var/list/ventcrawl_machinery = list( - /obj/machinery/atmospherics/unary/vent_pump, - /obj/machinery/atmospherics/unary/vent_scrubber - ) - -// Vent crawling whitelisted items, whoo -/mob/living/var/list/can_enter_vent_with = list( - /obj/item/weapon/implant, - /obj/item/device/radio/borg, - /obj/item/weapon/holder, - /obj/machinery/camera, - /mob/living/simple_animal/borer, - ) - -/mob/living/var/list/icon/pipes_shown = list() -/mob/living/var/last_played_vent -/mob/living/var/is_ventcrawling = 0 -/mob/var/next_play_vent = 0 - -/mob/living/proc/can_ventcrawl() - if(!client) - return FALSE - if(!(/mob/living/proc/ventcrawl in verbs)) - to_chat(src, "You don't possess the ability to ventcrawl!") - return FALSE - if(incapacitated()) - to_chat(src, "You cannot ventcrawl in your current state!") - return FALSE - return ventcrawl_carry() - -/mob/living/Login() - . = ..() - //login during ventcrawl - if(is_ventcrawling && istype(loc, /obj/machinery/atmospherics)) //attach us back into the pipes - remove_ventcrawl() - add_ventcrawl(loc) - -/mob/living/carbon/slime/can_ventcrawl() - if(Victim) - to_chat(src, "You cannot ventcrawl while feeding.") - return FALSE - . = ..() - -/mob/living/proc/is_allowed_vent_crawl_item(var/obj/item/carried_item) - if(carried_item == ability_master) - return 1 - for(var/type in can_enter_vent_with) - if(istype(carried_item, can_enter_vent_with)) - return get_inventory_slot(carried_item) == 0 - return 0 - -/mob/living/carbon/is_allowed_vent_crawl_item(var/obj/item/carried_item) - if(carried_item in internal_organs) - return 1 - return ..() - -/mob/living/carbon/human/is_allowed_vent_crawl_item(var/obj/item/carried_item) - if(carried_item in organs) - return 1 - return ..() - -/mob/living/simple_animal/spiderbot/is_allowed_vent_crawl_item(var/obj/item/carried_item) - if(carried_item == held_item) - return 1 - return ..() - -/mob/living/proc/ventcrawl_carry() - for(var/atom/A in contents) - if(!is_allowed_vent_crawl_item(A)) - to_chat(src, "You can't carry \the [A] while ventcrawling!") - return FALSE - return TRUE - -/mob/living/AltClickOn(var/atom/A) - if(is_type_in_list(A,ventcrawl_machinery)) - handle_ventcrawl(A) - return 1 - return ..() - -/mob/proc/start_ventcrawl() - var/atom/pipe - var/list/pipes = list() - for(var/obj/machinery/atmospherics/unary/U in range(1)) - if(is_type_in_list(U,ventcrawl_machinery) && Adjacent(U)) - pipes |= U - if(!pipes || !pipes.len) - to_chat(src, "There are no pipes that you can ventcrawl into within range!") - return - if(pipes.len == 1) - pipe = pipes[1] - else - pipe = input("Crawl Through Vent", "Pick a pipe") as null|anything in pipes - if(canmove && pipe) - return pipe - -/mob/living/carbon/alien/ventcrawl_carry() - return 1 - -/mob/living/var/ventcrawl_layer = 3 - -/mob/living/proc/handle_ventcrawl(var/atom/clicked_on) - if(!can_ventcrawl()) - return - - var/obj/machinery/atmospherics/unary/vent_found - if(clicked_on && Adjacent(clicked_on)) - vent_found = clicked_on - if(!istype(vent_found) || !vent_found.can_crawl_through()) - vent_found = null - - if(!vent_found) - for(var/obj/machinery/atmospherics/machine in range(1,src)) - if(is_type_in_list(machine, ventcrawl_machinery)) - vent_found = machine - - if(!vent_found || !vent_found.can_crawl_through()) - vent_found = null - - if(vent_found) - break - - if(vent_found) - if(vent_found.network && (vent_found.network.normal_members.len || vent_found.network.line_members.len)) - - to_chat(src, "You begin climbing into the ventilation system...") - if(vent_found.air_contents && !issilicon(src)) - - switch(vent_found.air_contents.temperature) - if(0 to BODYTEMP_COLD_DAMAGE_LIMIT) - to_chat(src, "You feel a painful freeze coming from the vent!") - if(BODYTEMP_COLD_DAMAGE_LIMIT to T0C) - to_chat(src, "You feel an icy chill coming from the vent.") - if(T0C + 40 to BODYTEMP_HEAT_DAMAGE_LIMIT) - to_chat(src, "You feel a hot wash coming from the vent.") - if(BODYTEMP_HEAT_DAMAGE_LIMIT to INFINITY) - to_chat(src, "You feel a searing heat coming from the vent!") - - switch(vent_found.air_contents.return_pressure()) - if(0 to HAZARD_LOW_PRESSURE) - to_chat(src, "You feel a rushing draw pulling you into the vent!") - if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE) - to_chat(src, "You feel a strong drag pulling you into the vent.") - if(WARNING_HIGH_PRESSURE to HAZARD_HIGH_PRESSURE) - to_chat(src, "You feel a strong current pushing you away from the vent.") - if(HAZARD_HIGH_PRESSURE to INFINITY) - to_chat(src, "You feel a roaring wind pushing you away from the vent!") - - if(!do_after(src, 45, vent_found, 1, 1)) - return - if(!can_ventcrawl()) - return - - visible_message("[src] scrambles into the ventilation ducts!", "You climb into the ventilation system.") - - forceMove(vent_found) - add_ventcrawl(vent_found) - - else - to_chat(src, "This vent is not connected to anything.") - - else - to_chat(src, "You must be standing on or beside an air vent to enter it.") - -/mob/living/proc/add_ventcrawl(obj/machinery/atmospherics/starting_machine) - is_ventcrawling = 1 - //candrop = 0 - var/datum/pipe_network/network = starting_machine.return_network(starting_machine) - if(!network) - return - for(var/datum/pipeline/pipeline in network.line_members) - for(var/obj/machinery/atmospherics/A in (pipeline.members || pipeline.edges)) - if(!A.pipe_image) - A.pipe_image = image(A, A.loc, layer = 20, dir = A.dir) - pipes_shown += A.pipe_image - client.images += A.pipe_image - -/mob/living/proc/remove_ventcrawl() - is_ventcrawling = 0 - //candrop = 1 - if(client) - for(var/image/current_image in pipes_shown) - client.images -= current_image - client.eye = src - - pipes_shown.len = 0 \ No newline at end of file diff --git a/code/modules/ventcrawl/ventcrawl_atmospherics.dm b/code/modules/ventcrawl/ventcrawl_atmospherics.dm deleted file mode 100644 index 7989f03315..0000000000 --- a/code/modules/ventcrawl/ventcrawl_atmospherics.dm +++ /dev/null @@ -1,86 +0,0 @@ -/obj/machinery/atmospherics/var/image/pipe_image - -/obj/machinery/atmospherics/Destroy() - for(var/mob/living/M in src) //ventcrawling is serious business - M.remove_ventcrawl() - M.forceMove(get_turf(src)) - if(pipe_image) - for(var/mob/living/M in player_list) - if(M.client) - M.client.images -= pipe_image - M.pipes_shown -= pipe_image - pipe_image = null - . = ..() - -/obj/machinery/atmospherics/ex_act(severity) - for(var/atom/movable/A in src) //ventcrawling is serious business - A.ex_act(severity) - . = ..() - -/obj/machinery/atmospherics/Entered(atom/movable/Obj) - if(istype(Obj, /mob/living)) - var/mob/living/L = Obj - L.ventcrawl_layer = layer - . = ..() - -/obj/machinery/atmospherics/relaymove(mob/living/user, direction) - if(!(direction & initialize_directions)) //can't go in a way we aren't connecting to - return - ventcrawl_to(user,findConnecting(direction, user.ventcrawl_layer),direction) - -/obj/machinery/atmospherics/proc/ventcrawl_to(var/mob/living/user, var/obj/machinery/atmospherics/target_move, var/direction) - if(target_move) - if(is_type_in_list(target_move, ventcrawl_machinery) && target_move.can_crawl_through()) - 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 if(target_move.can_crawl_through()) - if(target_move.return_network(target_move) != return_network(src)) - user.remove_ventcrawl() - user.add_ventcrawl(target_move) - user.forceMove(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.next_play_vent) - user.next_play_vent = world.time+30 - playsound(src, 'sound/machines/ventcrawl.ogg', 50, 1, -3) - else - if((direction & initialize_directions) || is_type_in_list(src, ventcrawl_machinery) && src.can_crawl_through()) //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 - -/obj/machinery/atmospherics/proc/can_crawl_through() - return 1 - -/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)) - if(isConnectable(target) && target.isConnectable(src)) - return target - -/obj/machinery/atmospherics/proc/isConnectable(var/obj/machinery/atmospherics/target) - return (target == node1 || target == node2) - -/obj/machinery/atmospherics/pipe/manifold/isConnectable(var/obj/machinery/atmospherics/target) - return (target == node3 || ..()) - -obj/machinery/atmospherics/trinary/isConnectable(var/obj/machinery/atmospherics/target) - return (target == node3 || ..()) - -/obj/machinery/atmospherics/pipe/manifold4w/isConnectable(var/obj/machinery/atmospherics/target) - return (target == node3 || target == node4 || ..()) - -/obj/machinery/atmospherics/tvalve/isConnectable(var/obj/machinery/atmospherics/target) - return (target == node3 || ..()) - -/obj/machinery/atmospherics/pipe/cap/isConnectable(var/obj/machinery/atmospherics/target) - return (target == node || ..()) - -/obj/machinery/atmospherics/portables_connector/isConnectable(var/obj/machinery/atmospherics/target) - return (target == node || ..()) - -/obj/machinery/atmospherics/unary/isConnectable(var/obj/machinery/atmospherics/target) - return (target == node || ..()) diff --git a/code/modules/ventcrawl/ventcrawl_multiz.dm b/code/modules/ventcrawl/ventcrawl_multiz.dm deleted file mode 100644 index 87ef8f9ba7..0000000000 --- a/code/modules/ventcrawl/ventcrawl_multiz.dm +++ /dev/null @@ -1,24 +0,0 @@ -/obj/machinery/atmospherics/pipe/zpipe/up/verb/ventcrawl_move_up() - set name = "Ventcrawl Upwards" - set desc = "Climb up through a pipe." - set category = "Abilities" - set src = usr.loc - var/obj/machinery/atmospherics/target = check_ventcrawl(GetAbove(loc)) - if(target) ventcrawl_to(usr, target, UP) - -/obj/machinery/atmospherics/pipe/zpipe/down/verb/ventcrawl_move_down() - set name = "Ventcrawl Downwards" - set desc = "Climb down through a pipe." - set category = "Abilities" - set src = usr.loc - var/obj/machinery/atmospherics/target = check_ventcrawl(GetBelow(loc)) - if(target) ventcrawl_to(usr, target, DOWN) - -/obj/machinery/atmospherics/pipe/zpipe/proc/check_ventcrawl(var/turf/target) - if(!istype(target)) - return - if(node1 in target) - return node1 - if(node2 in target) - return node2 - return \ No newline at end of file diff --git a/code/modules/ventcrawl/ventcrawl_verb.dm b/code/modules/ventcrawl/ventcrawl_verb.dm deleted file mode 100644 index b49f22836d..0000000000 --- a/code/modules/ventcrawl/ventcrawl_verb.dm +++ /dev/null @@ -1,7 +0,0 @@ -/mob/living/proc/ventcrawl() - set name = "Crawl through Vent" - set desc = "Enter an air vent and crawl through the pipe system." - set category = "Abilities" - var/pipe = start_ventcrawl() - if(pipe) - handle_ventcrawl() diff --git a/polaris.dme b/polaris.dme index b11ecda08d..b1728a349e 100644 --- a/polaris.dme +++ b/polaris.dme @@ -1996,10 +1996,6 @@ #include "code\modules\vehicles\cargo_train.dm" #include "code\modules\vehicles\train.dm" #include "code\modules\vehicles\vehicle.dm" -#include "code\modules\ventcrawl\ventcrawl.dm" -#include "code\modules\ventcrawl\ventcrawl_atmospherics.dm" -#include "code\modules\ventcrawl\ventcrawl_multiz.dm" -#include "code\modules\ventcrawl\ventcrawl_verb.dm" #include "code\modules\virus2\admin.dm" #include "code\modules\virus2\analyser.dm" #include "code\modules\virus2\antibodies.dm" diff --git a/sound/machines/ventcrawl.ogg b/sound/machines/ventcrawl.ogg deleted file mode 100644 index 2df8b5c8981fe20074a1d036ea6434ccd67b9481..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40591 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