Space Ruin Rework: deepstorage (#25906)

* things were attempted

* take two

* take three

* i meant to add this bit

* no linear loot

* hopefully this will make things less thingamabob than they are

* added indents in deepstorage_award spawner

* Sirryan2002's review

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* removed an unnecessary var and documented them

* these too

* these should've been removed too

* added indents to line 53 and 54

* rest of the requested changes

* remapped some parts of the ruin, added a few more notes and made ruin monsters not to randomly wander into depths of chasm

* changes in chasm.dm
+ chasm no longer eats lightbulb machinery
+ made a new subtype of chasm that actually teleports people to a random place instead of dropping them in corner of station z-level

* requested changes

* commit commit

* everything is in shambles

* comma

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* warriorstar-orion review

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* Somewhere, a heavy door has opened.

+ gateopener and fleshling now notifies players about a blast door has been opened

* area changes
+ Floating rock bits now has area
+ Some lights inside the ruin is now under space/powered area which aligns rest of the chasm lights

* little adjustments
+ changed some floors
+ replaced some polarized windows with tinted ones (oops)

* how did these get in here

* Update code/game/turfs/simulated/floor/chasm.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* check if it's space

* Update code/modules/awaymissions/mission_code/ruins/deepstorage.dm

Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>

* changes in turf check
+ Added two procs that will ping-pong on each other and provide a valid turf

* atoms

* there can be only one
+ apparently airless variation of this was introduced in a PR that was merged before this one.

* fix
+ renamed crematorium as incinerator.
+ removed a rogue morgue tray in incinerator room.
+ added access to an accessless airlock.
+ changed improper tags of two blastdoors to relevant ones.

---------

Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>
Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>
Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
This commit is contained in:
Kano
2024-07-30 16:16:05 +00:00
committed by GitHub
co-authored by Ryan warriorstar-orion
parent a96e634a8e
commit 9a69130da3
10 changed files with 13255 additions and 5767 deletions
@@ -240,3 +240,7 @@
/area/ruin/space/telecomms/chamber
name = "\improper Telecommunications Central Compartment"
icon_state = "ai_chamber"
/area/ruin/space/deepstorage
name = "Derelict Facility"
apc_starts_off = TRUE
@@ -354,3 +354,10 @@
name = "80pc vaultdoor 20pc wall"
result = list(/obj/machinery/door/airlock/hatch/syndicate/vault = 4,
/turf/simulated/wall/mineral/plastitanium/nodiagonal = 1)
/obj/effect/spawner/random_spawners/ruin/deepstorage_award
name = "boss award"
result = list(/obj/item/storage/belt/champion/wrestling = 1,
/obj/item/storage/box/telescience = 1,
/obj/item/storage/box/syndie_kit/chameleon = 3,
/obj/item/rod_of_asclepius = 3)
@@ -153,6 +153,10 @@
atmos_environment = ENVIRONMENT_LAVALAND
baseturf = /turf/simulated/floor/lava/mapping_lava
/turf/simulated/floor/plating/asteroid/basalt/lowpressure
oxygen = 8
nitrogen = 14
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface_hard
oxygen = LAVALAND_OXYGEN
nitrogen = LAVALAND_NITROGEN
+50 -1
View File
@@ -35,7 +35,8 @@
/obj/effect/dummy/slaughter, //no bloodcrawlers into chasms.
/obj/effect/dummy/spell_jaunt, //No jaunters into chasms either.
/mob/living/simple_animal/hostile/megafauna, //failsafe
/obj/tgvehicle/scooter/skateboard/hoverboard
/obj/tgvehicle/scooter/skateboard/hoverboard,
/obj/machinery/light // lights hanging on walls shouldn't get chasm'd
))
var/drop_x = 1
var/drop_y = 1
@@ -294,3 +295,51 @@
drop_y = y
var/list/target_z = levels_by_trait(SPAWN_RUINS)
drop_z = pick(target_z)
/turf/simulated/floor/chasm/space_ruin
/// Used to keep count of how many times we checked if our target turf was valid.
var/times_turfs_checked = 0
/// List of all eligible Z levels.
var/list/target_z
/// Target turf that atoms will be teleported to.
var/turf/T
/turf/simulated/floor/chasm/space_ruin/proc/pick_a_turf(atom/movable/AM)
if(times_turfs_checked <= 2)
target_z = levels_by_trait(SPAWN_RUINS)
target_z -= AM.z // excluding the one atom was already in from possible z levels
T = locate(rand(TRANSITIONEDGE + 1, world.maxx - TRANSITIONEDGE - 1), rand(TRANSITIONEDGE + 1, world.maxy - TRANSITIONEDGE - 1), pick(target_z))
check_turf(AM)
else
// If we still fail to pick a random valid turf after 2 attempts, we just send the atom to somewhere valid for certain
T = locate(TRANSITIONEDGE + 1, TRANSITIONEDGE + 1, pick(target_z))
/turf/simulated/floor/chasm/space_ruin/proc/check_turf(atom/movable/AM)
times_turfs_checked++
if(istype(get_area(T), /area/space))
return
else
pick_a_turf(AM)
/turf/simulated/floor/chasm/space_ruin/drop(atom/movable/AM)
//Make sure the item is still there after our sleep
if(!AM || QDELETED(AM))
return
falling_atoms[AM] = TRUE
pick_a_turf(AM)
if(T)
AM.visible_message("<span class='boldwarning'>[AM] falls into [src]!</span>", "<span class='userdanger'>GAH! Ah... where are you?</span>")
T.visible_message("<span class='boldwarning'>[AM] falls from above!</span>")
AM.forceMove(T)
if(isliving(AM))
var/mob/living/L = AM
L.Weaken(10 SECONDS)
L.adjustBruteLoss(30)
times_turfs_checked = 0 // We successfully teleported the atom, let's reset the count
falling_atoms -= AM
/turf/simulated/floor/chasm/space_ruin/airless
oxygen = 0
nitrogen = 0
temperature = TCMB