diff --git a/code/modules/mob/living/simple_animal/animals/snake_vr.dm b/code/modules/mob/living/simple_animal/animals/snake_vr.dm
index 74ebbf28e7c..ac75d0e573e 100644
--- a/code/modules/mob/living/simple_animal/animals/snake_vr.dm
+++ b/code/modules/mob/living/simple_animal/animals/snake_vr.dm
@@ -26,29 +26,74 @@
/mob/living/simple_animal/snake/Noodle
name = "Noodle"
desc = "This snake is particularly chubby and demands nothing but the finest of treats."
+ var/turns_since_scan = 0
+ var/obj/movement_target
+
+/mob/living/simple_animal/snake/Noodle/Life() //stolen from Ian in corgi.dm
+ if(!..())
+ return 0
+
+ if(!stat && !resting && !buckled && !ai_inactive)
+ turns_since_scan++
+ if(turns_since_scan > 5)
+ turns_since_scan = 0
+ if(movement_target && !(isturf(movement_target.loc) || ishuman(movement_target.loc)))
+ movement_target = null
+ stop_automated_movement = 0
+ if(!movement_target || !(movement_target.loc in oview(src, 5)) )
+ movement_target = null
+ stop_automated_movement = 0
+ walk(src,0)
+ for(var/obj/item/weapon/reagent_containers/food/snacks/snakesnack/S in oview(src,3))
+ if(isturf(S.loc))
+ movement_target = S
+ visible_emote("turns towards \the [movement_target] and slithers towards it.")
+ break
+
+ if(movement_target)
+ stop_automated_movement = 1
+ walk_to(src, movement_target, 0, 5)
+ spawn(10)
+ if(Adjacent(movement_target))
+ visible_message("[src] swallows the [movement_target] whole!")
+ qdel(movement_target)
+ walk(src,0)
+ else if(ishuman(movement_target.loc) && prob(20))
+ visible_emote("stares at the [movement_target] that [movement_target.loc] has with an unknowable reptilian gaze.")
+
+/mob/living/simple_animal/snake/Noodle/attackby(var/obj/item/O, var/mob/user)
+ if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/snakesnack))
+ visible_message("[user] feeds \the [O] to [src].")
+ qdel(O)
+ else
+ return ..()
//Special snek-snax for Noodle!
-obj/item/weapon/reagent_containers/food/snacks/snakesnack
- name = "Sugar mouse"
+/obj/item/weapon/reagent_containers/food/snacks/snakesnack
+ name = "sugar mouse"
desc = "A little mouse treat made of coloured sugar. Noodle loves these!"
var/snack_colour
icon = 'icons/mob/snake_vr.dmi'
icon_state = "snack_yellow"
+ nutriment_amt = 1
+ nutriment_desc = list("sugar" = 1)
-obj/item/weapon/reagent_containers/food/snacks/snakesnack/New()
+/obj/item/weapon/reagent_containers/food/snacks/snakesnack/New()
..()
if(!snack_colour)
snack_colour = pick( list("yellow","green","pink","blue") )
icon_state = "snack_[snack_colour]"
desc = "A little mouse treat made of coloured sugar. Noodle loves these! This one is [snack_colour]."
+ reagents.add_reagent("sugar", 2)
-obj/item/weapon/storage/box/fluff/snakesnackbox
- name = "Box of Snake Snax"
+/obj/item/weapon/storage/box/fluff/snakesnackbox
+ name = "box of Snake Snax"
desc = "A box containing Noodle's special sugermouse treats."
icon = 'icons/mob/snake_vr.dmi'
icon_state = "sneksnakbox"
storage_slots = 7
- New()
+
+/obj/item/weapon/storage/box/fluff/snakesnackbox/New()
new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src)
new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src)
new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src)
@@ -57,4 +102,3 @@ obj/item/weapon/storage/box/fluff/snakesnackbox
new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src)
new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src)
..()
- return
diff --git a/maps/tether/tether-03-station.dmm b/maps/tether/tether-03-station.dmm
index 3697c05fecd..365f0e8a8c3 100644
--- a/maps/tether/tether-03-station.dmm
+++ b/maps/tether/tether-03-station.dmm
@@ -2733,7 +2733,7 @@
"baC" = (/obj/machinery/requests_console{department = "Tech storage"; pixel_x = -28; pixel_y = 0},/obj/machinery/camera/network/engineering{dir = 4},/turf/simulated/floor,/area/storage/tech)
"baD" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet/oracarpet,/area/crew_quarters/heads/chief)
"baE" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/engineering{dir = 8},/turf/simulated/floor/tiled/dark,/area/storage/tech)
-"baF" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 28},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/table/reinforced,/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief)
+"baF" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 28},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/table/reinforced,/obj/item/weapon/storage/box/fluff/snakesnackbox,/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief)
"baG" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring)
"baH" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/powermonitor{pixel_x = 0; pixel_y = 3},/obj/item/weapon/circuitboard/stationalert_engineering{pixel_x = 2; pixel_y = 1},/obj/item/weapon/circuitboard/security/engineering{pixel_x = 5; pixel_y = -1},/obj/item/weapon/circuitboard/atmos_alert{pixel_x = 6; pixel_y = -3},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/storage/tech)
"baI" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -28},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/computer/security/engineering{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring)
@@ -3007,7 +3007,7 @@
"bfQ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva)
"bfR" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/clothing/shoes/magboots,/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva)
"bfS" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/yellow_ce,/obj/item/weapon/pen/multi,/turf/simulated/floor/carpet/oracarpet,/area/crew_quarters/heads/chief)
-"bfT" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet/oracarpet,/area/crew_quarters/heads/chief)
+"bfT" = (/obj/structure/disposalpipe/segment,/mob/living/simple_animal/snake/Noodle,/turf/simulated/floor/carpet/oracarpet,/area/crew_quarters/heads/chief)
"bfU" = (/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/obj/structure/closet/secure_closet/engineering_chief,/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief)
"bfV" = (/obj/structure/table/steel,/obj/item/device/aicard,/obj/item/weapon/aiModule/reset,/turf/simulated/floor,/area/storage/tech)
"bfW" = (/obj/machinery/computer/general_air_control{dir = 4; frequency = 1443; level = 3; name = "Distribution and Waste Monitor"; sensors = list("dist_main_meter" = "Surface - Distribution Loop", "scrub_main_meter" = "Surface - Scrubbers Loop", "mair_main_meter" = "Surface - Mixed Air Tank", "dist_aux_meter" = "Station - Distribution Loop", "scrub_aux_meter" = "Station - Scrubbers Loop", "mair_aux_meter" = "Station - Mixed Air Tank", "mair_mining_meter" = "Mining Outpost - Mixed Air Tank")},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring)