diff --git a/_maps/map_files/Pahrump-Sunset/Dungeons.dmm b/_maps/map_files/Pahrump-Sunset/Dungeons.dmm index 2ee4306a0df..eb6896624db 100644 --- a/_maps/map_files/Pahrump-Sunset/Dungeons.dmm +++ b/_maps/map_files/Pahrump-Sunset/Dungeons.dmm @@ -22653,7 +22653,7 @@ "kbf" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/megafauna/captainarlem{ - faction = list("mining","boss","enclave") + faction = list("mining","boss","enclave","wastebot") }, /turf/open/floor/f13{ icon_state = "bluedirtyfull" diff --git a/_maps/map_files/Pahrump-Sunset/RedRiver.dmm b/_maps/map_files/Pahrump-Sunset/RedRiver.dmm index 377b867d795..f2d17610ce6 100644 --- a/_maps/map_files/Pahrump-Sunset/RedRiver.dmm +++ b/_maps/map_files/Pahrump-Sunset/RedRiver.dmm @@ -28768,7 +28768,9 @@ /turf/open/indestructible/ground/outside/dirt, /area/f13/caves) "oBn" = ( -/obj/machinery/porta_turret/f13/turret_22lr, +/obj/machinery/porta_turret/f13/turret_22lr{ + faction = list("raider","hostile") + }, /turf/open/floor/carpet/red, /area/f13/building/abandoned) "oBB" = ( diff --git a/_maps/map_files/Pahrump-Sunset/Westlands.dmm b/_maps/map_files/Pahrump-Sunset/Westlands.dmm index 6565f140032..c6a4427773c 100644 --- a/_maps/map_files/Pahrump-Sunset/Westlands.dmm +++ b/_maps/map_files/Pahrump-Sunset/Westlands.dmm @@ -197,7 +197,7 @@ /mob/living/simple_animal/hostile/megafauna/dragon{ name = "Osto"; health = 4000; - loot = list(/obj/effect/spawner/lootdrop/f13/rare_unique,/obj/effect/spawner/lootdrop/f13/rare_unique, /obj/effect/spawner/lootdrop/f13/rare_unique); + loot = list(/obj/effect/spawner/lootdrop/f13/rare_unique,/obj/effect/spawner/lootdrop/f13/rare_unique,/obj/effect/spawner/lootdrop/f13/rare_unique); crusher_loot = list(/obj/effect/spawner/lootdrop/f13/rare_unique); loot_amount_random = 3 }, @@ -523,7 +523,7 @@ /area/awaymission/wildwest/refine) "cq" = ( /obj/machinery/porta_turret/syndicate/energy/heavy{ - faction = list("robot") + faction = list("wastebot") }, /obj/effect/decal/cleanable/dirt/dust, /turf/closed/wall, @@ -1549,7 +1549,7 @@ /area/f13/farmhouse) "gG" = ( /mob/living/simple_animal/hostile/eyebot/floatingeye{ - faction = list("hostile","robot") + faction = list("hostile","robot","wastebot") }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/dark, @@ -2221,7 +2221,7 @@ /area/awaymission/wildwest) "jo" = ( /mob/living/simple_animal/hostile/handy/assaultron/laser{ - faction = list("wastebot","robot","ghoul","deathclaw") + faction = list("wastebot","robot","ghoul","deathclaw","mining") }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating{ @@ -2633,7 +2633,7 @@ }, /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; + dir = 4 }, /obj/structure/window/reinforced{ dir = 8 @@ -4182,7 +4182,7 @@ /area/awaymission/wildwest) "rB" = ( /mob/living/simple_animal/hostile/eyebot/floatingeye{ - faction = list("hostile","robot") + faction = list("hostile","robot","wastebot") }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/indestructible/ground/outside/sidewalk, @@ -5168,7 +5168,7 @@ /area/awaymission/wildwest/vault) "vM" = ( /obj/machinery/porta_turret/syndicate/energy/heavy{ - faction = list("robot") + faction = list("wastebot") }, /obj/effect/decal/cleanable/dirt/dust, /turf/closed/wall/r_wall/rust, @@ -6215,7 +6215,7 @@ /area/awaymission/wildwest) "Af" = ( /mob/living/simple_animal/hostile/eyebot/floatingeye{ - faction = list("hostile","robot") + faction = list("hostile","robot","wastebot") }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/wooden2, @@ -6719,7 +6719,7 @@ }, /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; + dir = 4 }, /obj/structure/window/reinforced{ dir = 8 @@ -7974,7 +7974,7 @@ /area/awaymission/wildwest/refine) "Ha" = ( /obj/machinery/porta_turret/syndicate/energy/heavy{ - faction = list("robot") + faction = list("wastebot") }, /obj/effect/decal/cleanable/dirt/dust, /turf/closed/wall/rust, @@ -8384,7 +8384,7 @@ "IA" = ( /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; + dir = 4 }, /obj/structure/window/reinforced{ dir = 8 @@ -9435,7 +9435,7 @@ /area/awaymission/wildwest/refine) "MK" = ( /mob/living/simple_animal/hostile/eyebot/floatingeye{ - faction = list("hostile","robot") + faction = list("hostile","robot","wastebot") }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating{ @@ -9516,7 +9516,9 @@ /area/awaymission/wildwest/vault) "MX" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter, +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter{ + faction = list("mining","boss","wastebot") + }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating{ icon_state = "asteroidfloor" @@ -10041,7 +10043,7 @@ /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/structure/grille, /obj/structure/window/reinforced{ - dir = 4; + dir = 4 }, /obj/structure/window/reinforced{ dir = 8 @@ -10551,7 +10553,9 @@ /turf/open/indestructible/ground/outside/dirt/desertsand, /area/awaymission/wildwest) "RH" = ( -/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter, +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter{ + faction = list("mining","boss","wastebot") + }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/f13, /area/awaymission/wildwest/refine) @@ -12227,7 +12231,7 @@ /area/awaymission/wildwest) "YR" = ( /mob/living/simple_animal/hostile/eyebot/floatingeye{ - faction = list("hostile","robot") + faction = list("hostile","robot","wastebot") }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/rockcrete_slab, diff --git a/_maps/map_files/Pahrump-Sunset/chromata_en_res.dmm b/_maps/map_files/Pahrump-Sunset/chromata_en_res.dmm index 335d7e2f145..91035eb5a94 100644 --- a/_maps/map_files/Pahrump-Sunset/chromata_en_res.dmm +++ b/_maps/map_files/Pahrump-Sunset/chromata_en_res.dmm @@ -1160,7 +1160,7 @@ /area/awaymission/wildwest) "hh" = ( /mob/living/simple_animal/hostile/eyebot/floatingeye{ - faction = list("hostile","robot") + faction = list("hostile","robot","wastebot") }, /turf/open/indestructible/ground/outside/sidewalk, /area/awaymission/wildwest) @@ -3564,7 +3564,7 @@ /area/awaymission/wildwest) "xK" = ( /mob/living/simple_animal/hostile/eyebot/floatingeye{ - faction = list("hostile","robot") + faction = list("hostile","robot","wastebot") }, /turf/open/floor/wood_common, /area/awaymission/wildwest) @@ -3651,7 +3651,7 @@ /area/awaymission/wildwest) "yr" = ( /mob/living/simple_animal/hostile/eyebot/floatingeye{ - faction = list("hostile","robot") + faction = list("hostile","robot","wastebot") }, /turf/open/floor/plating{ icon_state = "asteroidfloor" @@ -4094,7 +4094,9 @@ /area/awaymission/wildwest) "AQ" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter, +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter{ + faction = list("mining","boss","wastebot") + }, /turf/open/floor/plating{ icon_state = "asteroidfloor" }, @@ -4539,7 +4541,7 @@ /area/awaymission/wildwest) "DU" = ( /mob/living/simple_animal/hostile/eyebot/floatingeye{ - faction = list("hostile","robot") + faction = list("hostile","robot","wastebot") }, /turf/open/floor/plasteel/dark, /area/awaymission/wildwest) @@ -5429,7 +5431,7 @@ /area/awaymission/wildwest) "Ka" = ( /mob/living/simple_animal/hostile/eyebot/floatingeye{ - faction = list("hostile","robot") + faction = list("hostile","robot","wastebot") }, /turf/open/floor/plating/rockcrete_slab, /area/awaymission/wildwest) @@ -6889,7 +6891,9 @@ /turf/open/floor/plasteel/dark, /area/awaymission/wildwest) "Tp" = ( -/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter, +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter{ + faction = list("mining","boss","wastebot") + }, /turf/open/floor/f13, /area/awaymission/wildwest) "Ts" = ( diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm index d4f1ca7afbf..8776b6b91ef 100644 --- a/code/datums/explosion.dm +++ b/code/datums/explosion.dm @@ -175,6 +175,9 @@ GLOBAL_LIST_EMPTY(explosions) //lists are guaranteed to contain at least 1 turf at this point + if(!cached_exp_block) + cached_exp_block = list() // This is the safety net to stop explosions from eating poop in linters. + var/iteration = 0 var/affTurfLen = affected_turfs.len var/expBlockLen = cached_exp_block.len diff --git a/code/game/machinery/obstacles_barricades.dm b/code/game/machinery/obstacles_barricades.dm index 42760da604a..3fcfce7dd55 100644 --- a/code/game/machinery/obstacles_barricades.dm +++ b/code/game/machinery/obstacles_barricades.dm @@ -358,7 +358,8 @@ max_integrity = 75 /obj/structure/barricade/wooden/make_debris() - new /obj/item/stack/sheet/mineral/wood(get_turf(src), drop_amount) + if(drop_amount) + new /obj/item/stack/sheet/mineral/wood(get_turf(src), drop_amount) /obj/structure/barricade/bars //FighterX2500 is this you? diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index a33e6cecfde..74c56c7e82a 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -28,10 +28,10 @@ /obj/effect/spawner/lootdrop/proc/startup_procedure(mapload, block_tier_swap, survived_snap) adjust_tier(block_tier_swap) if(cull_spawners(mapload, block_tier_swap, survived_snap)) - return + return INITIALIZE_HINT_NORMAL if(delay_spawn) // you have *checks watch* until the end of this frame to spawn the stuff. Otherwise it'll look wierd RegisterSignal(src, COMSIG_ATOM_POST_ADMIN_SPAWN, .proc/spawn_the_stuff) - return // have fun! + return INITIALIZE_HINT_NORMAL // have fun! spawn_the_stuff() // lov dan return INITIALIZE_HINT_QDEL @@ -68,8 +68,7 @@ if(!lootdoubles) loot.Remove(lootspawn) if(lootspawn) - var/block_recursive_tier_swap = (tier_adjusted && ispath(lootspawn, /obj/effect/spawner/lootdrop)) - var/atom/movable/spawned_loot = new lootspawn(A, block_recursive_tier_swap) + var/atom/movable/spawned_loot = SpawnTheLootDrop(A, lootspawn) if(islist(listhack)) listhack |= spawned_loot if(fan_out_items) @@ -82,6 +81,17 @@ if(delay_spawn) qdel(src) +/obj/effect/spawner/lootdrop/proc/SpawnTheLootDrop(loc, path) // This makes sure the item is properly casted to the correct type, as /obj/item/stack doesn't like new() when you cast it as atom/movable :( + if(ispath(path, /obj/item/stack)) + var/amount = rand(1,3) + var/obj/item/stack/S = new path(loc, amount) + return S + + var/block_recursive_tier_swap = (tier_adjusted && ispath(path, /obj/effect/spawner/lootdrop)) + var/atom/movable/spawned_loot = new path(loc, block_recursive_tier_swap) + return spawned_loot + + /obj/effect/spawner/lootdrop/bedsheet icon = 'icons/obj/bedsheets.dmi' icon_state = "random_bedsheet" diff --git a/code/game/objects/effects/spawners/masterlootdrop.dm b/code/game/objects/effects/spawners/masterlootdrop.dm index 1bbca274031..7b009a2e961 100644 --- a/code/game/objects/effects/spawners/masterlootdrop.dm +++ b/code/game/objects/effects/spawners/masterlootdrop.dm @@ -1084,7 +1084,7 @@ loot = list( /obj/item/stack/sheet/mineral/diamond/twentyfive = 1, /obj/item/stack/sheet/mineral/plasma/twentyfive = 5, - /obj/item/stack/sheet/mineral/gold/twnetyfive = 3, + /obj/item/stack/sheet/mineral/gold/twentyfive = 3, /obj/item/stack/sheet/mineral/plastitanium/twentyfive = 5, /obj/item/ingot/adamantine = 20, /obj/item/stack/sheet/mineral/abductor/ten = 5, diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index af82d2cec91..94b44807a1c 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -256,7 +256,7 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \ . = ..() . += GLOB.gold_recipes -/obj/item/stack/sheet/mineral/gold/twnetyfive +/obj/item/stack/sheet/mineral/gold/twentyfive amount = 25 /obj/item/stack/sheet/mineral/gold/fifty diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 4db4eb4e51d..f6bf9bb1af7 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -57,8 +57,6 @@ new type(loc, max_amount, FALSE) if(!merge_type) merge_type = type - if(amount < 1) // tired of this shit - return INITIALIZE_HINT_QDEL if(custom_materials && custom_materials.len) mats_per_unit = list() var/in_process_mat_list = custom_materials.Copy() diff --git a/config/game_options.txt b/config/game_options.txt index c95ebd10b66..e22ae180b75 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -313,7 +313,8 @@ MINIMUM_SECBORG_ALERT 0 #ROUNDSTART_AWAY ## Uncomment to load one of the virtual reality levels from vr_config at roundstart. -ROUNDSTART_VR +## If you want VR to be enabled, make sure to setup vr_config.txt +#ROUNDSTART_VR ## How long the delay is before the Away Mission gate opens. Default is half an hour. ## 600 is one minute.