Fultons and fulton beacons can no longer be used in NOTELEPORT areas (#92060)

## About The Pull Request

***Partially*** resolves #92011 - the issue with smuggling fultons
inside of the domain is still present (wtf), this only prevents usage of
fultons in NOTELEPORT areas and moving in/out of LOCAL_TELEPORT areas

## Changelog
🆑
fix: Fulton packs can no longer be used to enter/escape bitrunning
domains
/🆑
This commit is contained in:
SmArtKar
2025-07-11 08:11:11 +02:00
committed by Roxy
parent 2fb2b6822e
commit b650608b8c
+20 -5
View File
@@ -41,6 +41,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
continue
if(extraction_point.beacon_network in beacon_networks)
possible_beacons += extraction_point
if(!length(possible_beacons))
balloon_alert(user, "no beacons")
return
@@ -67,11 +68,18 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
balloon_alert(user, "not linked!")
beacon_ref = null
return .
var/area/area = get_area(thing)
if(!can_use_indoors)
var/area/area = get_area(thing)
if(!area.outdoors)
balloon_alert(user, "not outdoors!")
return .
if(area.area_flags & NOTELEPORT)
balloon_alert(user, "unable to activate!")
return
var/area/target_area = get_area(beacon)
if(area != target_area && ((area.area_flags & LOCAL_TELEPORT) || (target_area.area_flags & LOCAL_TELEPORT)))
balloon_alert(user, "unable to activate!")
return
if(!safe_for_living_creatures && check_for_living_mobs(thing))
to_chat(user, span_warning("[src] is not safe for use with living creatures, they wouldn't survive the trip back!"))
balloon_alert(user, "not safe!")
@@ -186,10 +194,17 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
icon_state = "folded_extraction"
/obj/item/fulton_core/attack_self(mob/user)
if(do_after(user, 1.5 SECONDS, target = user) && !QDELETED(src))
new /obj/structure/extraction_point(get_turf(user))
playsound(src, 'sound/items/deconstruct.ogg', vol = 50, vary = TRUE, extrarange = MEDIUM_RANGE_SOUND_EXTRARANGE)
qdel(src)
var/area/user_area = get_area(user)
if(user_area.area_flags & NOTELEPORT)
balloon_alert(user, "unable to deploy!")
return
if(!do_after(user, 1.5 SECONDS, target = user) || QDELETED(src))
return
new /obj/structure/extraction_point(get_turf(user))
playsound(src, 'sound/items/deconstruct.ogg', vol = 50, vary = TRUE, extrarange = MEDIUM_RANGE_SOUND_EXTRARANGE)
qdel(src)
/obj/structure/extraction_point
name = "fulton recovery beacon"