Scenario - Environmental Testing Facility (#19611)

changes:
- rscadd: "Adds Environmental Testing Facility odyssey scenario. Big
map."
  - rscadd: "Removes green tint from the minimap program/reader."
  - rscadd: "Adds/reorganizes some generic outfits."
  - rscadd: "Adds some generic odyssey actor roles."
- rscadd: "Adds actor accesses system to odyssey scenarios, and a
self-service access terminal."
- rscadd: "Adds some warnings to odyssey actor teleporter, in case ID
access or headset are missing."
  - rscadd: "Adds some more random spawners."
  - rscadd: "Adds better sprites door helpers."
  - rscadd: "Adds access door helper."
  - rscadd: "Adds info box to odyssey actor panel about roles."



![image](https://github.com/user-attachments/assets/fc2c0316-e95b-49f8-ac8b-55d03ef47b18)

![image](https://github.com/user-attachments/assets/36a680e8-47bf-4a12-b0a4-7c83cad9e74e)

![image](https://github.com/user-attachments/assets/fca04220-5457-4fa0-9045-cbf9f3f7e013)

![image](https://github.com/user-attachments/assets/6c0c4af2-ae63-4824-bcbe-59519156d288)

![image](https://github.com/user-attachments/assets/a5022487-b2db-4b37-ad16-a9e287ea1695)

![image](https://github.com/user-attachments/assets/96eee079-5aa4-4606-8c7e-ca8f5c3444d4)

---------

Signed-off-by: DreamySkrell <107256943+DreamySkrell@users.noreply.github.com>
Co-authored-by: DreamySkrell <>
Co-authored-by: AuroraBuildBot <action@github.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
This commit is contained in:
DreamySkrell
2025-03-25 21:40:32 +01:00
committed by GitHub
parent 952809a979
commit a24345a43b
47 changed files with 212790 additions and 186 deletions
@@ -1,3 +1,7 @@
// --------------------------
/// Door helper base/parent type.
/obj/effect/map_effect/door_helper
layer = CLOSED_DOOR_LAYER + 0.01
@@ -12,14 +16,22 @@
/obj/effect/map_effect/door_helper/proc/modify_door(obj/machinery/door/D)
return
// --------------------------
/// Directional access unrestriction.
/// Removes access requirement on the door it is placed on top of, in the helper's direction.
/// Example use: entering a room or department requires an ID access, but leaving it is always possible without any ID.
/obj/effect/map_effect/door_helper/unres
icon_state = "unres_door"
icon_state = "door_helper_unres_door"
/obj/effect/map_effect/door_helper/unres/modify_door(obj/machinery/door/D)
D.unres_dir ^= dir
// --------------------------
/// Ship alert level dependent access.
/obj/effect/map_effect/door_helper/level_access
icon_state = "level_door"
icon_state = "door_helper_level_door"
/// Sets access_by_level (access override based on security level) on the airlock this is spawned on.
/// For more information check the access_by_level variable on the airlock.
@@ -60,9 +72,11 @@
"delta" = list(19,38)
)
// --------------------------
/// Locks/bolts any (lockable) door/airlock this marker is placed on.
/obj/effect/map_effect/door_helper/lock
icon_state = "locked"
icon_state = "door_helper_locked"
/obj/effect/map_effect/door_helper/lock/modify_door(obj/machinery/door/D)
. = ..()
@@ -70,3 +84,20 @@
var/obj/machinery/door/airlock/A = D
A.locked = TRUE
A.set_airlock_overlays(AIRLOCK_CLOSED)
// --------------------------
/// Adds access requirements to the door this helper is placed on.
/// Adds, not replaces. So multiple access req helpers can be placed on a door.
/obj/effect/map_effect/door_helper/access_req
icon_state = "door_helper_access_req"
/obj/effect/map_effect/door_helper/access_req/modify_door(obj/machinery/door/door)
. = ..()
if(isairlock(door) || istype(door, /obj/machinery/door/window))
if(!door.req_access && req_access)
door.req_access = list()
door.req_access += req_access
if(!door.req_one_access && req_one_access)
door.req_one_access = list()
door.req_one_access += req_one_access