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 20:40:32 +00:00
committed by GitHub
co-authored by DreamySkrell <> AuroraBuildBot Fluffy
parent 952809a979
commit a24345a43b
47 changed files with 212790 additions and 186 deletions
@@ -257,7 +257,7 @@
if(item3_type)
new item3_type(src)
/obj/item/storage/wallet/sol_rich/fill()
/obj/item/storage/wallet/rich/fill()
..()
var/item1_type = pick(
/obj/item/spacecash/ewallet/c10000,
@@ -280,4 +280,3 @@
new item1_type(src)
new item2_type(src)
new item3_type(src)
new /obj/item/clothing/accessory/badge/passport/sol(src)
+48
View File
@@ -521,3 +521,51 @@
/obj/item/reagent_containers/food/condiment/rice = 1,
/obj/item/reagent_containers/food/condiment/cocoa = 1
)
/obj/random/maintenance_junk_or_loot
name = "random maintenance junk or loot"
desc = "Spawns any of: junk, loot, trash, trash pile, locker with junk or loot, (or other things)."
icon_state = "maint_junk_loot"
spawn_nothing_percentage = 25
has_postspawn = TRUE
problist = list(
// spawn just one thing:
/obj/random/junk = 3,
/obj/random/dirt_75 = 1,
/obj/random/loot = 1,
/obj/structure/trash_pile = 1,
/obj/random/tool = 0.2,
/obj/random/tech_supply = 0.1,
/obj/structure/girder = 0.1,
/obj/random/canister/empty = 0.1,
/obj/random/canister/filled = 0.05,
/obj/structure/closet/crate/loot = 0.01,
// spawn a container and maybe fill it with more junk:
/obj/structure/table/rack = 1,
/obj/structure/table/steel = 1,
/obj/structure/closet/crate = 1,
/obj/structure/closet/crate/trashcart = 0.2,
/obj/structure/closet/crate/plastic = 0.1,
)
var/list/more_junk_problist = list(
/obj/random/junk = 2,
/obj/random/loot = 1,
/obj/random/tech_supply = 0.2,
/obj/random/tool = 0.2,
)
/obj/random/maintenance_junk_or_loot/post_spawn(var/obj/spawned)
if(istype(spawned, /obj/structure/table))
if(prob(65))
var/obj/more_junk = pickweight(more_junk_problist)
new more_junk(spawned.loc)
else if(istype(spawned, /obj/structure/closet))
if(prob(90))
var/i_max = rand(1, 4)
for(var/i in 1 to i_max)
var/obj/more_junk = pickweight(more_junk_problist)
new more_junk(spawned.loc)
+54
View File
@@ -256,3 +256,57 @@
/obj/item/rig/ert/security = 0.3,
/obj/item/rig/unathi = 0.4
)
/obj/random/canister
name = "random canister"
icon_state = "canister"
spawn_nothing_percentage = 20
problist = list(
/obj/random/canister/empty = 0.6,
/obj/random/canister/filled = 0.4,
)
/obj/random/canister/empty
name = "random empty canister"
problist = list(
// common:
/obj/machinery/portable_atmospherics/canister/empty = 1,
/obj/machinery/portable_atmospherics/canister/empty/air = 1,
/obj/machinery/portable_atmospherics/canister/empty/air = 1,
/obj/machinery/portable_atmospherics/canister/empty/carbon_dioxide = 1,
/obj/machinery/portable_atmospherics/canister/empty/carbon_dioxide = 1,
/obj/machinery/portable_atmospherics/canister/empty/hydrogen = 1,
/obj/machinery/portable_atmospherics/canister/empty/nitrogen = 1,
/obj/machinery/portable_atmospherics/canister/empty/oxygen = 1,
/obj/machinery/portable_atmospherics/canister/empty/oxygen = 1,
/obj/machinery/portable_atmospherics/canister/empty/sleeping_agent = 1,
// rare:
/obj/machinery/portable_atmospherics/canister/empty/boron = 0.1,
/obj/machinery/portable_atmospherics/canister/empty/chlorine = 0.1,
/obj/machinery/portable_atmospherics/canister/empty/helium = 0.1,
/obj/machinery/portable_atmospherics/canister/empty/nitrogen_dioxide = 0.1,
/obj/machinery/portable_atmospherics/canister/empty/phoron = 0.1,
)
/obj/random/canister/filled
name = "random filled canister"
problist = list(
// common:
/obj/machinery/portable_atmospherics/canister/air = 1,
/obj/machinery/portable_atmospherics/canister/air = 1,
/obj/machinery/portable_atmospherics/canister/carbon_dioxide = 1,
/obj/machinery/portable_atmospherics/canister/carbon_dioxide = 1,
/obj/machinery/portable_atmospherics/canister/hydrogen = 1,
/obj/machinery/portable_atmospherics/canister/nitrogen = 1,
/obj/machinery/portable_atmospherics/canister/oxygen = 1,
/obj/machinery/portable_atmospherics/canister/oxygen = 1,
/obj/machinery/portable_atmospherics/canister/sleeping_agent = 1,
// rare:
/obj/machinery/portable_atmospherics/canister/boron = 0.1,
/obj/machinery/portable_atmospherics/canister/chlorine = 0.1,
/obj/machinery/portable_atmospherics/canister/helium = 0.1,
/obj/machinery/portable_atmospherics/canister/nitrogen_dioxide = 0.1,
/obj/machinery/portable_atmospherics/canister/phoron_scarce = 0.1,
// extra rare:
/obj/machinery/portable_atmospherics/canister/phoron = 0.01,
)