Merge branch 'master' of https://github.com/tgstation/tgstation into xpokee-test-upstream-sync

This commit is contained in:
xPokee
2025-09-10 14:12:16 -04:00
277 changed files with 8854 additions and 7401 deletions
@@ -151,7 +151,7 @@
info.pass_flags = PASSTABLE | PASSGRILLE | PASSMACHINE | PASSSTRUCTURE
for(var/iter_dir in GLOB.cardinals)
var/turf/spread_turf = get_step(src, iter_dir)
if(spread_turf?.density || spread_turf.LinkBlockedWithAccess(spread_turf, info))
if(spread_turf?.density || location.LinkBlockedWithAccess(spread_turf, info))
continue
var/obj/effect/particle_effect/fluid/foam/foundfoam = locate() in spread_turf //Don't spread foam where there's already foam!
@@ -18,6 +18,11 @@
/obj/item/storage/pill_bottle/lsd = 10,
/obj/item/storage/pill_bottle/aranesp = 10,
/obj/item/storage/pill_bottle/stimulant = 10,
/obj/item/food/drug/saturnx = 5,
/obj/item/food/drug/meth_crystal = 5,
/obj/item/food/drug/opium = 5,
/obj/item/reagent_containers/cup/blastoff_ampoule = 5,
/obj/item/food/drug/moon_rock = 5,
/obj/item/storage/fancy/cigarettes/cigpack_syndicate = 10,
/obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 10,
/obj/item/storage/box/donkpockets = 10,
@@ -40,6 +45,8 @@
/obj/item/reagent_containers/cup/bottle/thermite = 20,
/obj/item/restraints/legcuffs/beartrap = 10,
/obj/item/food/drug/saturnx = 5,
/obj/item/food/drug/meth_crystal = 5,
/obj/item/food/drug/opium = 5,
/obj/item/reagent_containers/cup/blastoff_ampoule = 5,
/obj/item/food/drug/moon_rock = 5,
/obj/item/grenade/empgrenade = 5,
@@ -73,9 +80,12 @@
/obj/item/food/drug/saturnx,
/obj/item/reagent_containers/cup/blastoff_ampoule,
/obj/item/food/drug/moon_rock,
/obj/item/food/drug/meth_crystal,
/obj/item/food/drug/opium,
/obj/item/storage/pill_bottle/happy,
/obj/item/storage/pill_bottle/lsd,
/obj/item/storage/pill_bottle/psicodine,
/obj/item/storage/box/flat/fentanylpatches,
)
/obj/effect/spawner/random/contraband/permabrig_weapon
@@ -7,7 +7,7 @@
name = "decoration material spawner"
icon_state = "tile"
loot = list(
/obj/item/stack/sheet/sandblock{amount = 30} = 25,
/obj/item/stack/ore/glass/thirty = 25,
/obj/item/stack/sheet/mineral/wood{amount = 30} = 25,
/obj/item/stack/sheet/bronze/thirty = 20,
/obj/item/stack/tile/noslip{amount = 20} = 10,
@@ -1,8 +1,13 @@
#define MAINT_LOOT "maintenance_loot"
#define DUMPSTER_LOOT "dumpster_loot"
/obj/effect/spawner/random/maintenance
name = "maintenance loot spawner"
desc = "Come on Lady Luck, spawn me a pair of sunglasses."
icon_state = "loot"
remove_if_cant_spawn = FALSE //don't remove stuff from the global maint list, which other can use.
/// The global loot list we are going to use to spawn loot from
var/loot_table = MAINT_LOOT
// see code/_globalvars/lists/maintenance_loot.dm for loot table
/// A subtype of maintenance loot spawner that does not spawn any decals, for when you want to place them on chasm turfs and such
@@ -19,7 +24,11 @@
. += span_info("This spawner has an effective loot count of [get_effective_lootcount()].")
/obj/effect/spawner/random/maintenance/Initialize(mapload)
loot = GLOB.maintenance_loot
switch(loot_table)
if(MAINT_LOOT)
loot = GLOB.maintenance_loot
if(DUMPSTER_LOOT)
loot = GLOB.dumpster_loot
//BUBBERSTATION CHANGE START: EMPTY MAINT LOOT TRAIT ONLY SPAWNS THE BEST LOOT
if(HAS_TRAIT(SSstation, STATION_TRAIT_EMPTY_MAINT))
if(prob(80))
@@ -28,15 +37,21 @@
loot = GLOB.rarity_loot
else
loot = GLOB.oddity_loot
//BUBBERSTATION CHANGE END
return ..()
/obj/effect/spawner/random/maintenance/skew_loot_weights(list/loot_list, exponent)
///We only need to skew the weights once, since it's a global list used by all maint spawners.
var/static/already_done = FALSE
if(loot_list == GLOB.maintenance_loot && already_done)
return
if(already_done)
switch(loot_table)
if(MAINT_LOOT)
if(loot_list == GLOB.maintenance_loot)
return
if(DUMPSTER_LOOT)
if(loot_list == GLOB.dumpster_loot)
return
already_done = TRUE
return ..()
@@ -136,3 +151,11 @@
/obj/effect/spawner/random/maintenance/no_decals/eight
name = "8 x maintenance loot spawner"
spawn_loot_count = 8
/obj/effect/spawner/random/maintenance/dumpster
name = "dumpster loot spawner"
spawn_loot_count = 3
loot_table = DUMPSTER_LOOT
#undef MAINT_LOOT
#undef DUMPSTER_LOOT