Rework Lavaland tunnel themes. (#26599)

* Rework Lavaland tunnel themes.

* Fix deeprock mob density; ensure 1 vetus/bubblegum

* goddamnit

* bring spawn odds closer in line to head, fix tendril collapse range

* Move define to global dir

* don't need initial here

* define magic number properly

* make type of var clear

* CHECK_TICK during procgen

* less tendril cities, no tendrils in oasis centers

* revert no_lava helpers for now

* add NO_LAVA_GEN flag check back to safe_replace

* add blackbox feedback for themes
This commit is contained in:
warriorstar-orion
2024-10-10 00:05:29 +00:00
committed by GitHub
parent 89bf882c98
commit 62b65f8a91
27 changed files with 5213 additions and 5563 deletions
@@ -791,7 +791,7 @@
/area/ruin/unpowered/althland_excavation)
"oh" = (
/turf/simulated/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors)
/area/lavaland/surface/outdoors/unexplored)
"or" = (
/obj/structure/railing/corner{
dir = 8
@@ -865,6 +865,9 @@
/obj/effect/spawner/random_spawners/wall_rusted_maybe,
/turf/simulated/wall/r_wall,
/area/ruin/unpowered/althland_excavation)
"sj" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors/unexplored)
"sA" = (
/obj/structure/railing,
/obj/effect/decal/cleanable/dirt,
@@ -1035,6 +1038,10 @@
nitrogen = 0
},
/area/ruin/unpowered/althland_excavation)
"Ay" = (
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/chasm/straight_down/lava_land_surface,
/area/lavaland/surface/outdoors/unexplored)
"AD" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -1208,6 +1215,10 @@
nitrogen = 0
},
/area/ruin/unpowered/althland_excavation)
"Jn" = (
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors/unexplored)
"Jp" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/manifold/hidden,
@@ -1262,8 +1273,10 @@
},
/area/lavaland/surface/outdoors)
"Mm" = (
/obj/structure/girder/reinforced,
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
/area/lavaland/surface/outdoors/unexplored)
"MT" = (
/obj/structure/grille/broken,
/obj/effect/decal/cleanable/glass,
@@ -1566,23 +1579,23 @@ oh
oh
oh
oh
Mm
Mm
Mm
Mm
Ei
Ei
Ei
Ei
Ei
Ei
Ei
Ei
Ei
Ei
Ei
Mm
Mm
sj
sj
sj
sj
sj
Jn
Jn
Jn
Jn
Jn
Jn
Jn
Jn
Jn
Jn
sj
sj
oh
oh
oh
@@ -1593,13 +1606,13 @@ oh
oh
oh
oh
Mm
Mm
Mm
Mm
Mm
Mm
Mm
sj
sj
sj
sj
sj
sj
sj
TN
TN
TN
@@ -1609,13 +1622,13 @@ Du
TN
TN
TN
Ei
Ei
Ei
Ei
Ei
Ei
Ei
Jn
Jn
Jn
Jn
Jn
Jn
Jn
oh
oh
oh
@@ -1623,10 +1636,10 @@ oh
(3,1,1) = {"
oh
oh
Mm
Mm
Mm
Mm
sj
sj
sj
sj
TN
TN
TN
@@ -1645,18 +1658,18 @@ TN
TN
TN
TN
Ei
Ei
Ei
Ei
Jn
Jn
Jn
Jn
oh
oh
"}
(4,1,1) = {"
oh
Mm
Mm
Mm
sj
sj
sj
TN
TN
TN
@@ -1679,15 +1692,15 @@ Cs
TN
TN
TN
Ei
Ei
Mm
Mm
Jn
Jn
sj
sj
"}
(5,1,1) = {"
oh
Mm
Mm
sj
sj
TN
TN
aU
@@ -1712,13 +1725,13 @@ je
Ei
TN
TN
Ei
Ei
Mm
Jn
sj
sj
"}
(6,1,1) = {"
Mm
Mm
sj
sj
TN
TN
Ri
@@ -1744,13 +1757,13 @@ TN
Ei
Ei
bm
bm
Ei
Ei
Mm
sj
sj
"}
(7,1,1) = {"
Mm
Mm
sj
sj
TN
PL
BZ
@@ -1776,12 +1789,12 @@ TN
Ei
Ei
Ei
bm
Ei
Ei
Mm
sj
sj
"}
(8,1,1) = {"
Mm
sj
TN
TN
pE
@@ -1808,12 +1821,12 @@ Ei
Ei
Ei
bm
Ei
Ei
Ei
Jn
sj
sj
"}
(9,1,1) = {"
Mm
sj
TN
TN
bC
@@ -1840,12 +1853,12 @@ Ei
zp
XS
BW
aB
Ei
Ei
Ay
sj
sj
"}
(10,1,1) = {"
Mm
sj
TN
TN
TN
@@ -1872,12 +1885,12 @@ aC
sA
aB
aB
Ei
bm
Ei
Jn
Mm
Jn
"}
(11,1,1) = {"
Mm
sj
TN
ct
Pe
@@ -1904,12 +1917,12 @@ GE
aB
aB
Ei
Ei
bm
Ei
Jn
Mm
Jn
"}
(12,1,1) = {"
Mm
sj
TN
pC
yb
@@ -1938,10 +1951,10 @@ aB
Ei
Ei
TN
Ei
Jn
"}
(13,1,1) = {"
Ei
Jn
TN
TN
TN
@@ -1970,10 +1983,10 @@ Ei
Ei
Ei
TN
Mm
sj
"}
(14,1,1) = {"
Ei
Jn
TN
aU
PL
@@ -2002,10 +2015,10 @@ XS
Ei
Ei
TN
Mm
sj
"}
(15,1,1) = {"
Ei
Jn
TN
Yz
yb
@@ -2034,10 +2047,10 @@ Ei
Ei
Ei
TN
Mm
sj
"}
(16,1,1) = {"
Ei
Jn
TN
TN
TN
@@ -2066,10 +2079,10 @@ Ei
BW
aB
TN
Mm
sj
"}
(17,1,1) = {"
Ei
Jn
TN
Ei
Ei
@@ -2098,10 +2111,10 @@ mK
uG
BW
TN
Mm
sj
"}
(18,1,1) = {"
Ei
Jn
bm
Ei
BW
@@ -2130,10 +2143,10 @@ BW
LK
PM
TN
Mm
sj
"}
(19,1,1) = {"
Ei
Jn
bm
Ei
BW
@@ -2162,10 +2175,10 @@ aB
BW
KU
TN
Mm
sj
"}
(20,1,1) = {"
Ei
Jn
TN
Ei
bm
@@ -2194,10 +2207,10 @@ aB
aB
uG
TN
Mm
sj
"}
(21,1,1) = {"
Ei
Jn
TN
TN
TN
@@ -2226,10 +2239,10 @@ aB
aB
aB
TN
Mm
sj
"}
(22,1,1) = {"
Ei
Jn
TN
ao
ar
@@ -2258,10 +2271,10 @@ BW
TJ
BW
TN
Mm
sj
"}
(23,1,1) = {"
Ei
Jn
TN
at
bl
@@ -2290,10 +2303,10 @@ mh
mK
uG
TN
Mm
sj
"}
(24,1,1) = {"
Ei
Jn
TN
aG
aU
@@ -2322,10 +2335,10 @@ mh
mh
Gc
TN
Mm
sj
"}
(25,1,1) = {"
Mm
sj
TN
TN
bU
@@ -2354,11 +2367,11 @@ gg
bN
TN
TN
Mm
sj
"}
(26,1,1) = {"
Mm
Mm
sj
sj
TN
az
DS
@@ -2385,12 +2398,12 @@ jL
Nv
jS
TN
Mm
Mm
sj
sj
"}
(27,1,1) = {"
oh
Mm
sj
TN
TN
ap
@@ -2417,13 +2430,13 @@ bL
YE
TN
TN
Mm
Mm
sj
sj
"}
(28,1,1) = {"
oh
Mm
Mm
sj
sj
TN
TN
iA
@@ -2448,15 +2461,15 @@ kh
aE
TN
TN
Mm
Mm
sj
sj
oh
"}
(29,1,1) = {"
oh
Mm
Mm
Mm
sj
sj
sj
TN
TN
TN
@@ -2479,18 +2492,18 @@ TN
TN
TN
TN
Mm
Mm
sj
sj
oh
oh
"}
(30,1,1) = {"
oh
oh
Mm
Mm
Mm
Mm
sj
sj
sj
sj
TN
TN
TN
@@ -2509,9 +2522,9 @@ TN
TN
TN
TN
Mm
Mm
Mm
sj
sj
sj
oh
oh
oh
@@ -2520,14 +2533,14 @@ oh
oh
oh
oh
Mm
Mm
Mm
Mm
Mm
Mm
Mm
Mm
sj
sj
sj
sj
sj
sj
sj
sj
TN
TN
TN
@@ -2537,11 +2550,11 @@ TN
TN
TN
TN
Mm
Mm
Mm
Mm
Mm
sj
sj
sj
sj
sj
oh
oh
oh
@@ -115,6 +115,10 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating/lavaland_air,
/area/ruin/unpowered/althland_processing)
"cM" = (
/obj/effect/mapping_helpers/no_lava,
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored)
"dh" = (
/obj/effect/mapping_helpers/no_lava,
/obj/structure/disposalpipe/segment/corner{
@@ -646,6 +650,9 @@
/obj/machinery/economy/vending/chinese,
/turf/simulated/floor/plating/lavaland_air,
/area/ruin/unpowered/althland_processing)
"yh" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored)
"zd" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -1443,26 +1450,26 @@ bV
bV
bV
bV
bV
bV
bV
bV
bV
bV
bV
bV
bV
bV
bV
bV
bV
bV
bV
bV
bV
bL
bL
bL
yh
yh
yh
yh
yh
yh
yh
yh
yh
yh
yh
yh
yh
yh
yh
yh
yh
yh
yh
yh
bL
bL
bL
@@ -1479,19 +1486,19 @@ bV
bV
ab
ab
bV
bV
bV
bV
ab
bV
bV
bV
bV
bV
ab
ab
yh
yh
yh
yh
ab
yh
yh
yh
yh
yh
yh
yh
yh
ab
GF
ab
@@ -1524,7 +1531,7 @@ ab
ab
bT
ab
ab
cb
ab
ab
ab
@@ -2712,9 +2719,9 @@ ab
ab
ab
ab
ab
ab
ab
cM
cM
cM
ab
ab
bL
@@ -2748,9 +2755,9 @@ bV
bV
bV
bV
ab
ab
ab
cM
cM
cM
bV
bV
bV
@@ -2,9 +2,6 @@
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/simulated/mineral/random/volcanic,
/area/lavaland/surface/outdoors)
"c" = (
/obj/effect/mapping_helpers/no_lava,
/obj/effect/mapping_helpers/no_lava,
@@ -170,7 +167,7 @@
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"I" = (
"J" = (
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
@@ -179,118 +176,64 @@
a
a
a
b
a
b
a
b
b
b
b
a
b
a
J
d
J
J
J
J
J
a
a
"}
(2,1,1) = {"
a
a
a
b
b
b
b
b
b
b
b
b
b
b
a
J
J
J
k
o
J
J
c
J
J
a
"}
(3,1,1) = {"
a
b
b
b
b
I
d
I
I
I
I
I
b
b
b
b
"}
(4,1,1) = {"
b
b
b
I
I
I
k
o
I
I
c
I
I
b
b
a
"}
(5,1,1) = {"
a
b
I
I
J
J
d
g
I
J
p
I
J
v
I
I
I
I
b
b
J
J
J
J
"}
(6,1,1) = {"
b
b
I
I
I
(4,1,1) = {"
J
J
J
h
l
e
s
j
I
J
d
e
I
b
b
J
"}
(7,1,1) = {"
a
b
I
I
I
I
I
(5,1,1) = {"
J
J
J
J
J
q
t
w
@@ -298,114 +241,60 @@ x
y
p
e
b
b
"}
(8,1,1) = {"
b
b
I
I
(6,1,1) = {"
J
J
e
i
m
j
u
e
I
J
f
d
y
b
b
"}
(9,1,1) = {"
b
b
I
I
(7,1,1) = {"
J
J
f
j
I
J
r
I
J
o
I
I
I
I
b
b
J
J
J
J
"}
(10,1,1) = {"
(8,1,1) = {"
a
b
b
I
I
I
J
J
J
k
o
I
I
I
I
I
b
b
J
J
J
J
J
a
"}
(11,1,1) = {"
b
b
b
b
b
I
(9,1,1) = {"
a
a
a
J
n
I
I
I
I
I
b
b
b
b
"}
(12,1,1) = {"
a
a
a
b
b
b
b
b
b
b
b
b
b
b
a
a
"}
(13,1,1) = {"
a
a
b
a
a
a
b
b
b
a
b
a
a
b
J
J
J
J
J
a
a
"}
@@ -1,9 +1,11 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/effect/mapping_helpers/no_lava,
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/simulated/mineral/random/volcanic,
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"c" = (
/obj/structure/stone_tile/surrounding_tile{
@@ -26,9 +28,6 @@
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"f" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"h" = (
/obj/structure/stone_tile/block/cracked{
dir = 8
@@ -181,249 +180,138 @@
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Q" = (
"M" = (
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
/obj/effect/mapping_helpers/no_lava,
/turf/template_noop,
/area/template_noop)
(1,1,1) = {"
a
b
a
b
b
b
b
b
b
b
b
b
a
a
b
b
b
b
a
b
a
a
"}
(2,1,1) = {"
b
b
b
b
b
f
b
b
b
b
b
b
b
b
b
a
a
"}
(3,1,1) = {"
a
b
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
b
f
b
b
a
"}
(4,1,1) = {"
b
b
Q
c
h
k
Q
Q
Q
b
b
b
k
Q
Q
Q
Q
b
b
b
b
a
"}
(3,1,1) = {"
b
d
c
l
b
b
b
v
b
b
b
b
b
"}
(4,1,1) = {"
b
e
i
m
k
b
t
w
b
b
b
b
b
"}
(5,1,1) = {"
b
b
Q
d
c
l
Q
Q
Q
v
Q
Q
Q
Q
Q
b
a
"}
(6,1,1) = {"
a
b
Q
e
i
m
k
Q
t
w
Q
Q
Q
Q
Q
b
b
"}
(7,1,1) = {"
a
b
b
Q
Q
G
o
r
q
w
Q
Q
Q
Q
Q
b
b
b
b
b
"}
(8,1,1) = {"
(6,1,1) = {"
M
b
b
b
Q
Q
Q
p
B
s
Q
Q
b
b
q
n
A
Q
b
b
"}
(9,1,1) = {"
a
(7,1,1) = {"
b
b
b
Q
Q
Q
c
q
s
q
k
x
Q
b
z
d
Q
b
b
"}
(10,1,1) = {"
(8,1,1) = {"
b
b
Q
G
j
n
j
Q
b
e
n
y
Q
b
n
y
Q
b
a
"}
(11,1,1) = {"
b
b
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
b
b
a
"}
(12,1,1) = {"
a
b
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
f
b
b
b
b
"}
(13,1,1) = {"
(9,1,1) = {"
b
b
b
b
b
f
f
b
b
b
b
b
@@ -433,9 +321,10 @@ b
b
a
"}
(14,1,1) = {"
a
a
(10,1,1) = {"
b
b
b
b
b
b
@@ -444,11 +333,6 @@ b
b
b
a
b
b
a
a
b
a
a
"}
@@ -171,7 +171,7 @@
/obj/structure/stone_tile/center,
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
/area/lavaland/surface/outdoors/unexplored)
"w" = (
/obj/structure/stone_tile/block{
dir = 8
@@ -187,25 +187,32 @@
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"H" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors/unexplored)
"L" = (
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors/unexplored)
"U" = (
/turf/simulated/mineral/random/volcanic,
/area/template_noop)
/area/lavaland/surface/outdoors/unexplored)
(1,1,1) = {"
a
a
a
a
b
U
a
a
a
b
U
a
b
U
a
b
b
U
U
a
a
a
@@ -215,22 +222,22 @@ a
"}
(2,1,1) = {"
a
b
b
b
b
b
U
U
U
U
U
a
b
b
b
b
b
b
b
b
b
b
U
U
U
U
U
U
U
U
U
U
a
a
a
@@ -238,29 +245,29 @@ a
(3,1,1) = {"
a
a
b
b
b
b
b
U
U
U
U
U
a
b
b
U
U
E
E
E
b
b
b
b
b
U
U
U
U
U
a
a
"}
(4,1,1) = {"
a
a
b
U
E
E
E
@@ -275,14 +282,14 @@ E
E
E
E
b
U
a
a
"}
(5,1,1) = {"
a
b
b
U
U
b
b
E
@@ -297,13 +304,13 @@ E
b
b
b
b
b
U
U
a
"}
(6,1,1) = {"
b
b
U
U
E
E
b
@@ -319,14 +326,14 @@ b
b
b
c
b
b
U
U
a
"}
(7,1,1) = {"
a
b
b
U
U
E
E
E
@@ -341,14 +348,14 @@ g
n
E
E
b
b
b
U
U
U
"}
(8,1,1) = {"
b
b
b
U
U
U
b
c
E
@@ -363,14 +370,14 @@ l
h
q
E
E
b
b
L
U
U
"}
(9,1,1) = {"
b
b
b
U
U
U
E
E
E
@@ -385,14 +392,14 @@ E
E
h
s
E
b
L
U
a
"}
(10,1,1) = {"
b
b
c
U
U
H
c
E
d
@@ -408,13 +415,13 @@ w
f
t
v
b
b
U
U
"}
(11,1,1) = {"
b
b
b
U
U
U
E
E
E
@@ -429,14 +436,14 @@ E
E
o
u
E
b
b
L
U
U
"}
(12,1,1) = {"
a
b
b
U
U
b
c
E
@@ -451,13 +458,13 @@ m
o
r
E
E
b
L
U
a
"}
(13,1,1) = {"
a
b
U
c
E
E
@@ -473,13 +480,13 @@ h
p
E
E
c
b
b
H
U
U
"}
(14,1,1) = {"
b
b
U
U
E
E
b
@@ -495,14 +502,14 @@ b
b
c
b
b
b
b
U
U
U
"}
(15,1,1) = {"
a
b
b
U
U
b
b
E
@@ -517,19 +524,19 @@ E
b
b
b
b
b
U
U
a
"}
(16,1,1) = {"
a
b
b
U
U
E
E
E
b
b
U
U
c
E
E
@@ -539,50 +546,50 @@ E
E
E
E
b
U
a
a
"}
(17,1,1) = {"
b
b
b
b
b
b
b
b
U
U
U
U
U
U
U
U
c
c
E
E
E
b
b
b
b
b
U
U
U
U
U
a
a
"}
(18,1,1) = {"
a
b
U
a
b
b
U
U
a
b
b
b
b
b
b
b
b
b
U
U
U
U
U
U
U
U
U
a
b
U
a
a
a
@@ -591,15 +598,15 @@ a
a
a
a
b
U
a
a
a
b
a
U
b
b
a
U
U
U
a
a
a
@@ -5,9 +5,6 @@
"b" = (
/turf/simulated/floor/engine/cult/lavaland_air,
/area/ruin/unpowered/misc_lavaruin)
"c" = (
/turf/simulated/floor/lava/mapping_lava,
/area/ruin/unpowered/misc_lavaruin)
"d" = (
/turf/simulated/wall/cult,
/area/ruin/unpowered/misc_lavaruin)
@@ -77,6 +74,9 @@
"s" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/misc_lavaruin)
"B" = (
/turf/simulated/floor/lava/mapping_lava,
/area/ruin/unpowered/misc_lavaruin)
(1,1,1) = {"
a
@@ -86,7 +86,7 @@ a
a
a
b
c
B
b
a
a
@@ -99,15 +99,15 @@ a
a
d
e
c
B
s
c
B
b
b
b
c
B
s
c
B
s
d
a
@@ -118,11 +118,11 @@ e
f
s
d
c
c
B
B
g
c
c
B
B
d
e
f
@@ -131,43 +131,43 @@ a
"}
(4,1,1) = {"
a
c
B
s
c
c
c
c
B
B
B
B
b
c
c
c
c
B
B
B
B
e
c
B
a
"}
(5,1,1) = {"
a
s
d
c
c
B
B
b
b
b
b
b
c
c
B
B
d
s
a
"}
(6,1,1) = {"
a
c
c
c
B
B
B
b
b
l
@@ -175,16 +175,16 @@ d
k
b
b
c
c
c
B
B
B
a
"}
(7,1,1) = {"
b
b
c
c
B
B
g
i
b
@@ -192,13 +192,13 @@ b
b
l
b
c
c
B
B
b
b
"}
(8,1,1) = {"
c
B
b
g
b
@@ -212,13 +212,13 @@ b
b
g
b
c
B
"}
(9,1,1) = {"
b
b
c
c
B
B
b
k
b
@@ -226,16 +226,16 @@ b
b
m
b
c
c
B
B
b
b
"}
(10,1,1) = {"
a
c
c
c
B
B
B
g
b
m
@@ -243,43 +243,43 @@ h
q
b
b
c
c
c
B
B
B
a
"}
(11,1,1) = {"
a
s
d
c
c
B
B
b
b
b
b
b
c
c
B
B
d
s
a
"}
(12,1,1) = {"
a
c
B
s
c
c
c
c
B
B
B
B
b
c
c
c
c
B
B
B
B
e
c
B
a
"}
(13,1,1) = {"
@@ -288,11 +288,11 @@ e
f
s
d
c
c
B
B
g
c
c
B
B
d
e
f
@@ -303,15 +303,15 @@ a
a
d
e
c
B
s
c
B
b
b
b
c
B
s
c
B
s
d
a
@@ -324,7 +324,7 @@ a
a
a
b
c
B
b
a
a
@@ -2,9 +2,6 @@
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors/unexplored)
"c" = (
/obj/item/clockwork/alloy_shards/small,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
@@ -18,7 +15,7 @@
/obj/effect/mapping_helpers/no_lava,
/obj/item/stack/tile/brass,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"f" = (
/turf/simulated/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors/unexplored)
@@ -29,7 +26,7 @@
"h" = (
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"i" = (
/obj/structure/grille/ratvar/broken,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
@@ -42,7 +39,7 @@
/obj/effect/mapping_helpers/no_lava,
/obj/item/clockwork/alloy_shards/small,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"l" = (
/turf/simulated/floor/lava/mapping_lava,
/area/lavaland/surface/outdoors/unexplored)
@@ -63,7 +60,7 @@
/obj/effect/mapping_helpers/no_lava,
/obj/item/clockwork/alloy_shards/medium,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"r" = (
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
@@ -72,7 +69,7 @@
/obj/effect/mapping_helpers/no_lava,
/obj/item/clockwork/alloy_shards/large,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"t" = (
/obj/item/stack/tile/brass,
/obj/effect/mapping_helpers/no_lava,
@@ -82,43 +79,43 @@
/obj/effect/mapping_helpers/no_lava,
/obj/structure/grille/ratvar,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"w" = (
/obj/effect/mapping_helpers/no_lava,
/obj/structure/grille/ratvar/broken,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"x" = (
/obj/effect/mapping_helpers/no_lava,
/obj/structure/clockwork/wall_gear,
/obj/item/stack/tile/brass,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"y" = (
/obj/effect/mapping_helpers/no_lava,
/obj/item/clockwork/component/geis_capacitor/fallen_armor,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"z" = (
/obj/effect/mapping_helpers/no_lava,
/obj/structure/clockwork/wall_gear,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"A" = (
/obj/effect/mapping_helpers/no_lava,
/obj/item/clockwork/alloy_shards/clockgolem_remains,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"B" = (
/obj/effect/mapping_helpers/no_lava,
/obj/item/clockwork/weapon/ratvarian_spear,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"C" = (
/obj/effect/mapping_helpers/no_lava,
/obj/item/clockwork/alloy_shards/medium/gear_bit,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"D" = (
/obj/structure/grille/ratvar,
/obj/effect/mapping_helpers/no_lava,
@@ -133,12 +130,15 @@
/obj/effect/mapping_helpers/no_lava,
/obj/structure/dead_ratvar,
/turf/simulated/floor/clockwork/lavaland_air,
/area/lavaland/surface/outdoors/unexplored)
/area/lavaland/surface/outdoors)
"G" = (
/obj/item/stack/tile/brass/fifty,
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors/unexplored)
"X" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors/unexplored)
(1,1,1) = {"
a
@@ -154,10 +154,10 @@ a
a
a
a
b
X
s
h
b
X
a
a
a
@@ -175,16 +175,16 @@ a
a
a
o
b
X
a
h
b
b
X
X
c
j
x
b
b
X
X
g
a
a
@@ -200,19 +200,19 @@ a
a
a
f
b
X
l
b
X
m
b
X
p
w
j
j
c
l
b
b
X
X
a
a
a
@@ -228,19 +228,19 @@ a
f
l
l
b
b
b
X
X
X
l
j
j
j
p
l
b
X
h
c
b
X
a
a
"}
@@ -250,7 +250,7 @@ a
a
a
a
b
X
l
l
p
@@ -261,12 +261,12 @@ l
l
j
l
b
X
l
l
D
h
b
X
a
a
"}
@@ -299,15 +299,15 @@ a
(7,1,1) = {"
a
a
b
b
b
X
X
X
l
l
l
l
h
b
X
l
l
l
@@ -319,7 +319,7 @@ l
c
f
f
b
X
a
"}
(8,1,1) = {"
@@ -328,54 +328,54 @@ h
h
g
c
b
X
l
l
l
l
n
h
b
X
l
l
b
X
l
l
l
l
f
b
X
a
a
"}
(9,1,1) = {"
a
b
X
c
b
b
X
X
l
l
l
l
t
h
b
X
h
w
p
b
X
g
l
l
b
b
b
b
X
X
X
X
a
"}
(10,1,1) = {"
b
X
h
l
l
@@ -383,15 +383,15 @@ l
l
l
l
b
b
X
X
p
r
F
b
X
h
A
b
X
l
l
l
@@ -410,20 +410,20 @@ l
l
l
l
b
X
h
k
h
h
h
b
X
l
l
l
l
l
l
b
X
a
"}
(12,1,1) = {"
@@ -434,20 +434,20 @@ j
h
l
l
b
X
l
l
b
X
h
h
h
c
l
l
b
X
l
l
b
X
h
o
a
@@ -455,14 +455,14 @@ a
(13,1,1) = {"
e
k
b
X
l
l
l
b
X
p
s
b
X
h
h
h
@@ -474,19 +474,19 @@ l
l
l
l
b
b
X
X
a
"}
(14,1,1) = {"
b
b
b
X
X
X
m
l
l
l
b
X
h
h
k
@@ -496,18 +496,18 @@ h
h
h
c
b
X
l
l
b
b
X
X
h
b
X
"}
(15,1,1) = {"
b
b
b
X
X
X
l
l
l
@@ -526,8 +526,8 @@ l
l
l
l
b
b
X
X
a
"}
(16,1,1) = {"
@@ -539,7 +539,7 @@ l
l
l
l
b
X
h
h
h
@@ -547,7 +547,7 @@ h
h
h
s
b
X
l
l
l
@@ -557,66 +557,66 @@ f
a
"}
(17,1,1) = {"
b
b
b
X
X
X
l
l
l
b
X
l
l
b
X
h
h
h
h
h
b
X
s
b
X
l
b
X
l
l
b
X
a
"}
(18,1,1) = {"
b
X
h
l
l
l
b
b
X
X
h
b
X
h
h
h
h
h
b
X
k
b
X
C
b
X
h
b
b
X
X
m
b
X
"}
(19,1,1) = {"
b
b
X
X
l
l
l
l
h
b
X
h
h
h
@@ -624,24 +624,24 @@ h
h
h
h
b
X
j
h
c
h
b
X
h
b
b
X
X
"}
(20,1,1) = {"
b
X
l
l
l
l
b
b
X
X
p
h
c
@@ -650,27 +650,27 @@ k
h
h
o
b
X
l
l
l
b
X
E
b
X
G
o
"}
(21,1,1) = {"
g
b
X
l
l
l
l
l
b
X
h
b
X
h
h
h
@@ -684,26 +684,26 @@ l
l
j
j
b
X
"}
(22,1,1) = {"
c
c
b
X
l
l
b
X
h
h
t
b
X
h
h
h
h
h
m
b
X
l
l
l
@@ -713,11 +713,11 @@ j
j
"}
(23,1,1) = {"
b
X
h
m
n
b
X
h
l
o
@@ -726,23 +726,23 @@ u
r
p
h
b
X
h
b
X
l
l
l
b
b
X
X
w
b
b
X
X
"}
(24,1,1) = {"
a
a
b
b
X
X
l
l
l
@@ -761,7 +761,7 @@ l
c
l
l
b
X
a
"}
(25,1,1) = {"
@@ -775,9 +775,9 @@ l
j
l
l
b
X
h
b
X
x
h
l
@@ -795,7 +795,7 @@ a
a
a
c
b
X
l
l
l
@@ -804,14 +804,14 @@ l
l
g
l
b
X
h
l
l
l
c
m
b
X
a
a
a
@@ -820,9 +820,9 @@ a
a
a
a
b
X
h
b
X
l
l
l
@@ -836,7 +836,7 @@ l
l
l
l
b
X
a
a
a
@@ -848,9 +848,9 @@ a
a
a
c
b
X
l
b
X
l
l
l
@@ -859,7 +859,7 @@ l
l
l
l
b
X
l
f
a
@@ -873,11 +873,11 @@ a
a
a
a
b
b
X
X
f
c
b
X
l
c
l
@@ -887,7 +887,7 @@ l
c
o
l
b
X
a
a
a
@@ -902,16 +902,16 @@ a
a
g
c
b
X
l
l
b
X
m
l
b
X
l
f
b
X
a
a
a
@@ -928,11 +928,11 @@ a
a
a
a
b
X
l
b
X
a
b
X
l
c
f
@@ -26,107 +26,67 @@
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"V" = (
/obj/effect/mapping_helpers/no_lava,
/turf/template_noop,
/area/template_noop)
(1,1,1) = {"
a
a
u
a
a
a
a
a
a
a
u
"}
(2,1,1) = {"
a
V
V
V
V
V
V
V
a
"}
(3,1,1) = {"
a
V
u
E
u
u
u
V
a
"}
(4,1,1) = {"
a
V
(3,1,1) = {"
u
u
u
u
u
q
V
a
u
"}
(5,1,1) = {"
a
V
(4,1,1) = {"
u
u
u
k
u
u
V
a
"}
(6,1,1) = {"
(5,1,1) = {"
a
V
u
M
u
u
u
V
u
"}
(6,1,1) = {"
a
a
u
a
u
u
a
"}
(7,1,1) = {"
a
V
u
a
u
u
u
u
u
V
a
"}
(8,1,1) = {"
a
V
V
V
V
V
V
V
a
"}
(9,1,1) = {"
a
a
a
a
a
a
a
a
a
"}
@@ -2,9 +2,6 @@
"a" = (
/turf/simulated/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors)
"b" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"c" = (
/turf/simulated/floor/lava/mapping_lava,
/area/lavaland/surface/outdoors)
@@ -71,6 +68,9 @@
},
/turf/simulated/floor/plasteel/freezer,
/area/ruin/powered/gluttony)
"u" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"v" = (
/obj/machinery/light/small,
/turf/simulated/floor/plasteel/freezer,
@@ -101,19 +101,19 @@
a
a
a
b
b
u
u
a
a
b
u
a
b
b
b
b
b
b
b
u
u
u
u
u
u
u
a
a
a
@@ -123,54 +123,54 @@ a
a
a
a
b
b
b
b
b
b
b
b
b
b
b
b
b
u
u
u
u
u
u
u
u
u
u
u
u
u
a
a
a
a
"}
(3,1,1) = {"
b
u
a
a
a
b
b
b
u
u
u
c
c
c
b
u
c
c
c
b
b
u
u
a
a
a
a
"}
(4,1,1) = {"
b
u
a
a
a
b
b
b
u
u
u
c
R
R
@@ -178,7 +178,7 @@ S
R
R
c
b
u
a
a
a
@@ -186,13 +186,13 @@ a
a
"}
(5,1,1) = {"
b
b
u
u
a
a
a
b
b
u
u
c
R
h
@@ -200,7 +200,7 @@ i
o
R
c
b
u
a
a
a
@@ -213,8 +213,8 @@ a
a
a
a
b
b
u
u
c
R
i
@@ -222,21 +222,21 @@ i
v
R
c
b
b
b
b
b
u
u
u
u
u
a
"}
(7,1,1) = {"
a
b
b
b
b
b
b
u
u
u
u
u
u
c
R
i
@@ -244,16 +244,16 @@ l
i
R
c
b
b
b
b
b
u
u
u
u
u
a
"}
(8,1,1) = {"
a
b
u
c
c
c
@@ -271,11 +271,11 @@ c
c
c
c
b
u
"}
(9,1,1) = {"
b
b
u
u
c
R
R
@@ -293,11 +293,11 @@ R
R
R
c
b
u
"}
(10,1,1) = {"
a
b
u
c
R
e
@@ -315,11 +315,11 @@ l
i
R
c
b
u
"}
(11,1,1) = {"
a
b
u
c
R
f
@@ -336,12 +336,12 @@ i
i
i
S
b
b
u
u
"}
(12,1,1) = {"
a
b
u
c
R
e
@@ -359,11 +359,11 @@ i
q
R
c
b
u
"}
(13,1,1) = {"
a
b
u
c
R
R
@@ -381,11 +381,11 @@ R
R
R
c
b
u
"}
(14,1,1) = {"
a
b
u
c
c
c
@@ -403,16 +403,16 @@ c
c
c
c
b
u
"}
(15,1,1) = {"
a
b
b
b
b
b
b
u
u
u
u
u
u
c
R
i
@@ -420,21 +420,21 @@ g
i
R
c
b
b
b
b
b
b
u
u
u
u
u
u
"}
(16,1,1) = {"
b
b
b
u
u
u
a
b
b
b
u
u
u
c
R
j
@@ -442,21 +442,21 @@ i
v
R
c
b
b
b
u
u
u
a
a
a
"}
(17,1,1) = {"
b
b
b
u
u
u
a
b
b
b
u
u
u
c
R
i
@@ -464,9 +464,9 @@ n
i
R
c
b
b
b
u
u
u
a
a
a
@@ -476,9 +476,9 @@ a
a
a
a
b
b
b
u
u
u
c
R
R
@@ -486,9 +486,9 @@ S
R
R
c
b
b
b
u
u
u
a
a
a
@@ -504,12 +504,12 @@ a
c
c
c
b
u
c
c
c
b
b
u
u
a
a
a
@@ -523,16 +523,16 @@ a
a
a
a
b
b
b
b
b
b
b
u
u
u
u
u
u
u
a
a
b
u
a
a
a
@@ -67,11 +67,6 @@
/obj/machinery/mineral/equipment_vendor/golem,
/turf/simulated/floor/mineral/titanium/purple,
/area/shuttle/freegolem)
"r" = (
/obj/machinery/door/airlock/titanium,
/obj/structure/fans/tiny,
/turf/simulated/floor/mineral/titanium/purple,
/area/shuttle/freegolem)
"s" = (
/obj/machinery/light{
dir = 8
@@ -258,6 +253,11 @@
},
/turf/simulated/floor/plating/lavaland_air,
/area/shuttle/freegolem)
"W" = (
/obj/machinery/door/airlock/titanium,
/obj/structure/fans/tiny,
/turf/simulated/floor/mineral/titanium/purple,
/area/shuttle/freegolem)
(1,1,1) = {"
a
@@ -301,12 +301,12 @@ a
a
b
b
r
W
b
x
D
b
r
W
b
b
a
@@ -167,7 +167,7 @@
/obj/effect/baseturf_helper,
/turf/simulated/floor/plating,
/area/ruin/powered)
"P" = (
"Q" = (
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
@@ -175,83 +175,14 @@
/obj/item/flashlight/lantern,
/turf/simulated/floor/plating,
/area/ruin/powered)
"Z" = (
/turf/template_noop,
/area/template_noop)
(1,1,1) = {"
a
a
a
a
a
a
a
a
P
P
P
a
a
a
a
a
"}
(2,1,1) = {"
a
a
a
a
a
a
a
a
a
a
P
P
s
a
a
a
"}
(3,1,1) = {"
a
a
a
a
a
a
a
a
a
a
P
P
P
s
a
a
"}
(4,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
P
P
P
s
a
"}
(5,1,1) = {"
a
a
a
Z
Z
Z
a
a
b
@@ -262,13 +193,13 @@ t
t
t
t
P
P
Q
Q
a
"}
(6,1,1) = {"
a
a
(2,1,1) = {"
Z
Z
a
a
b
@@ -280,11 +211,11 @@ v
x
B
t
P
P
s
Q
Q
Q
"}
(7,1,1) = {"
(3,1,1) = {"
a
a
a
@@ -298,11 +229,11 @@ w
y
y
D
P
P
Q
Q
a
"}
(8,1,1) = {"
(4,1,1) = {"
a
b
b
@@ -316,11 +247,11 @@ o
z
C
t
P
P
Q
Q
a
"}
(9,1,1) = {"
(5,1,1) = {"
b
b
g
@@ -334,11 +265,11 @@ o
t
t
t
P
Q
s
a
"}
(10,1,1) = {"
(6,1,1) = {"
b
d
g
@@ -352,11 +283,11 @@ o
A
b
a
P
P
Q
Q
s
"}
(11,1,1) = {"
(7,1,1) = {"
c
o
h
@@ -371,10 +302,10 @@ c
b
a
a
P
Q
s
"}
(12,1,1) = {"
(8,1,1) = {"
b
b
o
@@ -392,7 +323,7 @@ E
H
E
"}
(13,1,1) = {"
(9,1,1) = {"
a
b
b
@@ -403,19 +334,14 @@ a
a
a
a
a
a
Z
Z
a
F
I
F
"}
(14,1,1) = {"
a
a
a
a
a
(10,1,1) = {"
a
a
a
@@ -423,44 +349,49 @@ a
a
a
a
Z
Z
Z
Z
Z
a
F
I
F
"}
(15,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
(11,1,1) = {"
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
a
F
J
G
"}
(16,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
(12,1,1) = {"
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
a
Q
Q
Q
"}
@@ -2,9 +2,6 @@
"a" = (
/turf/simulated/wall/indestructible/hierophant,
/area/ruin/unpowered/hierophant)
"b" = (
/turf/simulated/floor/indestructible/hierophant,
/area/ruin/unpowered/hierophant)
"c" = (
/obj/effect/light_emitter{
light_power = 5;
@@ -30,15 +27,18 @@
/obj/effect/baseturf_helper/lava/mapping_lava,
/turf/simulated/floor/indestructible/hierophant/two,
/area/ruin/unpowered/hierophant)
"r" = (
/turf/simulated/floor/indestructible/hierophant,
/area/ruin/unpowered/hierophant)
(1,1,1) = {"
a
a
a
b
b
b
b
r
r
r
r
a
a
a
@@ -48,146 +48,146 @@ a
a
a
a
b
b
b
b
r
r
r
r
a
a
a
"}
(2,1,1) = {"
a
b
b
b
b
b
b
b
b
b
b
r
r
r
r
r
r
r
r
r
r
c
b
b
b
b
b
b
b
b
b
b
r
r
r
r
r
r
r
r
r
r
a
"}
(3,1,1) = {"
a
b
b
b
r
r
r
c
c
b
b
b
r
r
r
a
b
b
b
r
r
r
a
b
b
b
r
r
r
c
c
b
b
b
r
r
r
a
"}
(4,1,1) = {"
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
"}
(5,1,1) = {"
b
b
r
r
c
b
r
a
a
b
r
c
b
b
b
r
r
r
c
b
b
b
r
r
r
c
b
r
a
a
b
r
c
b
b
r
r
"}
(6,1,1) = {"
b
b
r
r
c
b
r
a
a
b
r
c
b
b
b
r
r
r
c
b
b
b
r
r
r
c
b
r
a
a
b
r
c
b
b
r
r
"}
(7,1,1) = {"
b
b
b
b
b
b
r
r
r
r
r
r
e
e
e
@@ -199,18 +199,18 @@ e
e
e
e
b
b
b
b
b
b
r
r
r
r
r
r
"}
(8,1,1) = {"
a
b
b
b
r
r
r
c
c
e
@@ -226,18 +226,18 @@ e
e
c
c
b
b
b
r
r
r
a
"}
(9,1,1) = {"
a
b
b
b
b
b
r
r
r
r
r
e
e
e
@@ -249,20 +249,20 @@ e
e
e
e
b
b
b
b
b
r
r
r
r
r
a
"}
(10,1,1) = {"
a
b
r
a
b
b
b
r
r
r
e
a
e
@@ -274,20 +274,20 @@ e
e
a
e
b
b
b
r
r
r
a
b
r
a
"}
(11,1,1) = {"
a
b
b
b
b
b
r
r
r
r
r
e
e
e
@@ -299,18 +299,18 @@ e
e
e
e
b
b
b
b
b
r
r
r
r
r
a
"}
(12,1,1) = {"
a
c
b
b
r
r
c
c
e
@@ -326,18 +326,18 @@ e
e
c
c
b
b
r
r
c
a
"}
(13,1,1) = {"
a
b
b
b
b
b
r
r
r
r
r
e
e
e
@@ -349,20 +349,20 @@ e
e
e
e
b
b
b
b
b
r
r
r
r
r
a
"}
(14,1,1) = {"
a
b
r
a
b
b
b
r
r
r
e
a
e
@@ -374,20 +374,20 @@ e
e
a
e
b
b
b
r
r
r
a
b
r
a
"}
(15,1,1) = {"
a
b
b
b
b
b
r
r
r
r
r
e
e
e
@@ -399,18 +399,18 @@ e
e
e
e
b
b
b
b
b
r
r
r
r
r
a
"}
(16,1,1) = {"
a
b
b
b
r
r
r
c
c
e
@@ -426,18 +426,18 @@ e
e
c
c
b
b
b
r
r
r
a
"}
(17,1,1) = {"
b
b
b
b
b
b
r
r
r
r
r
r
e
e
e
@@ -449,146 +449,146 @@ e
e
e
e
b
b
b
b
b
b
r
r
r
r
r
r
"}
(18,1,1) = {"
b
b
r
r
c
b
r
a
a
b
r
c
b
b
b
r
r
r
c
b
b
b
r
r
r
c
b
r
a
a
b
r
c
b
b
r
r
"}
(19,1,1) = {"
b
b
r
r
c
b
r
a
a
b
r
c
b
b
b
r
r
r
c
b
b
b
r
r
r
c
b
r
a
a
b
r
c
b
b
r
r
"}
(20,1,1) = {"
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
"}
(21,1,1) = {"
a
b
b
b
r
r
r
c
c
b
b
b
r
r
r
a
b
b
b
r
r
r
a
b
b
b
r
r
r
c
c
b
b
b
r
r
r
a
"}
(22,1,1) = {"
a
b
b
b
b
b
b
b
b
b
b
r
r
r
r
r
r
r
r
r
r
c
b
b
b
b
b
b
b
b
b
b
r
r
r
r
r
r
r
r
r
r
a
"}
(23,1,1) = {"
a
a
a
b
b
b
b
r
r
r
r
a
a
a
@@ -598,10 +598,10 @@ a
a
a
a
b
b
b
b
r
r
r
r
a
a
a
@@ -2,9 +2,6 @@
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"c" = (
/obj/structure/lattice,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
@@ -217,74 +214,77 @@
"Q" = (
/turf/simulated/floor/plating/lavaland_air,
/area/ruin/powered/pizza_party)
"Y" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
(1,1,1) = {"
a
a
b
b
Y
Y
a
a
b
b
b
b
b
b
b
b
Y
Y
Y
Y
Y
Y
Y
Y
a
a
a
a
"}
(2,1,1) = {"
b
b
b
b
b
b
b
b
b
b
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
c
c
b
b
b
b
Y
Y
Y
Y
a
a
"}
(3,1,1) = {"
b
b
b
b
b
b
b
b
Y
Y
Y
Y
Y
Y
Y
Y
c
c
e
e
c
c
b
b
b
Y
Y
Y
a
"}
(4,1,1) = {"
b
b
b
b
Y
Y
Y
Y
d
b
Y
c
c
e
@@ -294,17 +294,17 @@ e
Q
e
d
b
b
Y
Y
a
"}
(5,1,1) = {"
a
b
b
b
Y
Y
Y
d
b
Y
m
e
w
@@ -314,15 +314,15 @@ h
h
e
d
b
b
b
Y
Y
Y
"}
(6,1,1) = {"
a
b
b
b
Y
Y
Y
d
f
n
@@ -333,16 +333,16 @@ e
M
e
c
b
b
b
b
Y
Y
Y
Y
"}
(7,1,1) = {"
b
b
b
b
Y
Y
Y
Y
d
g
o
@@ -352,17 +352,17 @@ C
J
h
d
b
b
b
b
b
Y
Y
Y
Y
Y
"}
(8,1,1) = {"
b
b
b
b
Y
Y
Y
Y
e
h
p
@@ -372,16 +372,16 @@ D
K
M
d
b
b
b
b
b
Y
Y
Y
Y
Y
"}
(9,1,1) = {"
b
b
b
Y
Y
Y
c
e
i
@@ -392,16 +392,16 @@ E
h
h
c
b
b
b
b
b
Y
Y
Y
Y
Y
"}
(10,1,1) = {"
b
b
b
Y
Y
Y
c
e
j
@@ -412,17 +412,17 @@ F
q
N
c
b
b
b
b
b
Y
Y
Y
Y
Y
"}
(11,1,1) = {"
b
b
b
b
Y
Y
Y
Y
e
e
h
@@ -432,17 +432,17 @@ G
q
h
c
b
b
b
b
b
Y
Y
Y
Y
Y
"}
(12,1,1) = {"
b
b
b
b
Y
Y
Y
Y
d
k
h
@@ -452,17 +452,17 @@ H
h
O
d
b
b
b
b
b
Y
Y
Y
Y
Y
"}
(13,1,1) = {"
b
b
b
b
Y
Y
Y
Y
d
k
h
@@ -472,17 +472,17 @@ s
o
n
d
b
b
b
b
Y
Y
Y
Y
a
"}
(14,1,1) = {"
b
b
b
b
Y
Y
Y
Y
d
l
i
@@ -492,17 +492,17 @@ I
L
P
d
b
b
b
b
Y
Y
Y
Y
a
"}
(15,1,1) = {"
b
b
b
b
Y
Y
Y
Y
d
d
e
@@ -512,48 +512,48 @@ e
e
d
d
b
b
b
b
Y
Y
Y
Y
a
"}
(16,1,1) = {"
a
b
b
b
b
b
Y
Y
Y
Y
Y
c
v
b
Y
c
b
b
b
b
b
b
b
Y
Y
Y
Y
Y
Y
Y
a
"}
(17,1,1) = {"
a
b
b
b
b
b
b
b
b
b
b
b
b
b
b
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
a
a
a
@@ -563,14 +563,14 @@ a
a
a
a
b
b
b
b
b
b
b
b
Y
Y
Y
Y
Y
Y
Y
Y
a
a
a
@@ -1,7 +1,4 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"b" = (
/turf/simulated/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors)
@@ -75,6 +72,9 @@
/obj/structure/mirror/magic/pride,
/turf/simulated/wall/mineral/diamond,
/area/ruin/powered/pride)
"P" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Y" = (
/obj/machinery/door/airlock/diamond,
/obj/structure/fans/tiny/invisible,
@@ -82,30 +82,30 @@
/area/ruin/powered/pride)
(1,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
"}
(2,1,1) = {"
a
a
P
P
c
c
c
@@ -123,7 +123,7 @@ c
c
c
c
a
P
"}
(3,1,1) = {"
b
@@ -145,7 +145,7 @@ G
G
G
c
a
P
"}
(4,1,1) = {"
c
@@ -167,7 +167,7 @@ e
e
G
c
a
P
"}
(5,1,1) = {"
c
@@ -188,8 +188,8 @@ g
g
r
G
a
a
P
P
"}
(6,1,1) = {"
c
@@ -210,8 +210,8 @@ g
g
g
Y
a
a
P
P
"}
(7,1,1) = {"
c
@@ -233,7 +233,7 @@ g
r
G
c
a
P
"}
(8,1,1) = {"
c
@@ -255,7 +255,7 @@ f
f
G
c
a
P
"}
(9,1,1) = {"
b
@@ -277,7 +277,7 @@ G
G
G
c
a
P
"}
(10,1,1) = {"
b
@@ -299,5 +299,5 @@ c
c
c
c
a
P
"}
@@ -1,7 +1,4 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/lavaland/surface/outdoors)
"b" = (
/obj/effect/sliding_puzzle/lavaland,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
@@ -9,39 +6,42 @@
"c" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"n" = (
/turf/template_noop,
/area/lavaland/surface/outdoors)
(1,1,1) = {"
a
a
a
a
a
n
n
n
n
n
"}
(2,1,1) = {"
a
n
c
c
c
a
n
"}
(3,1,1) = {"
a
n
c
b
c
a
n
"}
(4,1,1) = {"
a
n
c
c
c
a
n
"}
(5,1,1) = {"
a
a
a
a
a
n
n
n
n
n
"}
@@ -1,4 +1,7 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/turf/simulated/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors/unexplored)
"ag" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -486,84 +489,84 @@ QX
QX
QX
yZ
BC
BC
BC
BC
BC
BC
BC
BC
aa
aa
aa
aa
aa
aa
aa
aa
QX
BC
aa
QX
BC
BC
BC
BC
BC
BC
aa
aa
aa
aa
aa
aa
QX
QX
QX
"}
(2,1,1) = {"
QX
BC
aa
yZ
yZ
yZ
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
BC
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
QX
BC
BC
BC
BC
BC
aa
aa
aa
aa
aa
"}
(3,1,1) = {"
QX
BC
BC
aa
aa
yZ
yZ
BC
aa
yZ
yZ
yZ
BC
aa
yZ
yZ
yZ
yZ
BC
BC
BC
BC
BC
BC
BC
BC
BC
aa
aa
aa
aa
aa
aa
aa
aa
aa
QX
"}
(4,1,1) = {"
BC
BC
BC
BC
aa
aa
aa
aa
yZ
BC
yZ
@@ -579,16 +582,16 @@ yZ
yZ
yZ
yZ
BC
aa
yZ
BC
BC
BC
aa
aa
aa
"}
(5,1,1) = {"
BC
aa
QX
BC
aa
yZ
yZ
yZ
@@ -608,13 +611,13 @@ yZ
yZ
yZ
yZ
BC
BC
aa
aa
"}
(6,1,1) = {"
BC
BC
BC
aa
aa
aa
yZ
yZ
no
@@ -633,14 +636,14 @@ no
no
yZ
yZ
BC
BC
BC
aa
aa
aa
"}
(7,1,1) = {"
BC
BC
BC
aa
aa
aa
yZ
no
no
@@ -659,13 +662,13 @@ no
no
no
yZ
BC
BC
BC
aa
aa
aa
"}
(8,1,1) = {"
BC
BC
aa
aa
yZ
yZ
no
@@ -685,13 +688,13 @@ vt
AG
no
yZ
BC
BC
BC
aa
aa
aa
"}
(9,1,1) = {"
BC
BC
aa
aa
yZ
yZ
no
@@ -712,13 +715,13 @@ AG
no
yZ
yZ
BC
aa
QX
"}
(10,1,1) = {"
QX
BC
BC
aa
aa
yZ
no
Pg
@@ -743,8 +746,8 @@ yZ
"}
(11,1,1) = {"
QX
BC
BC
aa
aa
yZ
no
Pg
@@ -765,12 +768,12 @@ no
yZ
yZ
yZ
BC
aa
"}
(12,1,1) = {"
QX
BC
BC
aa
aa
yZ
no
no
@@ -790,12 +793,12 @@ no
no
yZ
yZ
BC
BC
aa
aa
"}
(13,1,1) = {"
BC
BC
aa
aa
yZ
yZ
Nj
@@ -815,14 +818,14 @@ no
no
Nj
yZ
BC
BC
BC
aa
aa
aa
"}
(14,1,1) = {"
BC
BC
BC
aa
aa
aa
yZ
yZ
no
@@ -841,15 +844,15 @@ Nj
no
yZ
yZ
BC
BC
BC
aa
aa
aa
"}
(15,1,1) = {"
BC
BC
BC
BC
aa
aa
aa
aa
yZ
al
yc
@@ -868,12 +871,12 @@ ja
yZ
yZ
yZ
BC
BC
aa
aa
"}
(16,1,1) = {"
BC
BC
aa
aa
yZ
yZ
yZ
@@ -893,14 +896,14 @@ no
no
yZ
yZ
BC
BC
aa
aa
QX
"}
(17,1,1) = {"
QX
BC
BC
aa
aa
yZ
no
no
@@ -920,12 +923,12 @@ no
no
yZ
yZ
BC
BC
aa
aa
"}
(18,1,1) = {"
BC
BC
aa
aa
yZ
yZ
no
@@ -947,11 +950,11 @@ no
yZ
yZ
yZ
BC
aa
"}
(19,1,1) = {"
BC
BC
aa
aa
yZ
yZ
no
@@ -972,11 +975,11 @@ iV
no
yZ
yZ
BC
BC
aa
aa
"}
(20,1,1) = {"
BC
aa
yZ
yZ
yZ
@@ -998,8 +1001,8 @@ ga
no
yZ
yZ
BC
BC
aa
aa
"}
(21,1,1) = {"
yZ
@@ -1025,12 +1028,12 @@ no
yZ
yZ
yZ
BC
aa
"}
(22,1,1) = {"
QX
yZ
BC
aa
yZ
no
MB
@@ -1050,12 +1053,12 @@ uO
no
yZ
yZ
BC
BC
aa
aa
"}
(23,1,1) = {"
BC
BC
aa
aa
yZ
yZ
no
@@ -1077,11 +1080,11 @@ no
yZ
yZ
yZ
BC
aa
"}
(24,1,1) = {"
QX
BC
aa
yZ
yZ
no
@@ -1102,12 +1105,12 @@ no
no
yZ
yZ
BC
aa
QX
"}
(25,1,1) = {"
BC
BC
aa
aa
yZ
yZ
Nj
@@ -1128,13 +1131,13 @@ no
Nj
yZ
yZ
BC
BC
aa
aa
"}
(26,1,1) = {"
BC
BC
BC
aa
aa
aa
yZ
yZ
no
@@ -1155,13 +1158,13 @@ yZ
yZ
yZ
yZ
BC
aa
"}
(27,1,1) = {"
BC
BC
BC
BC
aa
aa
aa
aa
yZ
al
yc
@@ -1179,14 +1182,14 @@ yc
ja
yZ
yZ
BC
BC
BC
aa
aa
aa
"}
(28,1,1) = {"
BC
aa
QX
BC
aa
yZ
yZ
yZ
@@ -1205,14 +1208,14 @@ yZ
yZ
yZ
yZ
BC
BC
aa
aa
QX
"}
(29,1,1) = {"
BC
BC
BC
aa
aa
aa
BC
BC
yZ
@@ -1231,14 +1234,14 @@ yZ
yZ
BC
yZ
BC
BC
BC
aa
aa
aa
"}
(30,1,1) = {"
QX
QX
BC
aa
BC
BC
yZ
@@ -1257,14 +1260,14 @@ yZ
yZ
yZ
BC
BC
BC
BC
aa
aa
aa
"}
(31,1,1) = {"
QX
BC
BC
aa
aa
BC
BC
yZ
@@ -1283,12 +1286,12 @@ BC
BC
yZ
BC
BC
aa
QX
BC
aa
"}
(32,1,1) = {"
BC
aa
QX
QX
BC
@@ -1309,13 +1312,13 @@ yZ
BC
BC
QX
BC
BC
aa
aa
QX
"}
(33,1,1) = {"
QX
BC
aa
BC
BC
BC
@@ -1335,9 +1338,9 @@ BC
BC
BC
BC
BC
BC
BC
aa
aa
aa
"}
(34,1,1) = {"
QX
@@ -41,10 +41,6 @@
},
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"j" = (
/obj/effect/decal/cleanable/blood/drip,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"k" = (
/obj/machinery/sleeper/survival_pod,
/turf/simulated/floor/pod/dark,
@@ -129,6 +125,10 @@
},
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"L" = (
/obj/effect/decal/cleanable/blood/drip,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
(1,1,1) = {"
a
@@ -218,8 +218,8 @@ d
d
d
y
j
j
L
L
"}
(8,1,1) = {"
a
@@ -229,8 +229,8 @@ b
i
b
i
j
j
L
L
b
b
"}
@@ -239,7 +239,7 @@ a
a
b
b
j
L
n
s
b
@@ -254,7 +254,7 @@ a
a
a
o
j
L
b
a
a
File diff suppressed because it is too large Load Diff
+2 -6
View File
@@ -592,12 +592,6 @@
/// Mutes the democracy mode messages send to orbiters at the end of each cycle. Useful for when the cooldown is so low it'd get spammy.
#define MUTE_DEADCHAT_DEMOCRACY_MESSAGES (1<<2)
// Lavaland cave design defines
#define BLOCKED_BURROWS "Blocked Burrows"
#define CLASSIC_CAVES "Classic Caves"
#define DEADLY_DEEPROCK "Deadly Deeprock"
///Sleep check QDEL. Like sleep check death, but checks deleting. Good for non mobs.
#define SLEEP_CHECK_QDEL(X) sleep(X); if(QDELETED(src)) return;
// Request console message priority defines
@@ -735,4 +729,6 @@ do { \
#define INGREDIENT_CHECK_FAILURE 0
#define INGREDIENT_CHECK_SURPLUS -1
#define LAVALAND_TENDRIL_COLLAPSE_RANGE 2 //! The radius of the chasm created by killed tendrils.
#define ALPHA_VISIBLE 255 // the max alpha
@@ -15,7 +15,7 @@ SUBSYSTEM_DEF(mapping)
///What do we have as the lavaland theme today?
var/datum/lavaland_theme/lavaland_theme
///What primary cave theme we have picked for cave generation today.
var/cave_theme
var/datum/caves_theme/caves_theme
// Tells if all maintenance airlocks have emergency access enabled
var/maint_all_access = FALSE
// Tells if all station airlocks have emergency access enabled
@@ -55,10 +55,15 @@ SUBSYSTEM_DEF(mapping)
var/datum/lavaland_theme/lavaland_theme_type = pick(subtypesof(/datum/lavaland_theme))
ASSERT(lavaland_theme_type)
lavaland_theme = new lavaland_theme_type
log_startup_progress("We're in the mood for [initial(lavaland_theme.name)] today...") //We load this first. In the event some nerd ever makes a surface map, and we don't have it in lavaland in the event lavaland is disabled.
log_startup_progress("We're in the mood for [lavaland_theme.name] today...") //We load this first. In the event some nerd ever makes a surface map, and we don't have it in lavaland in the event lavaland is disabled.
SSblackbox.record_feedback("text", "procgen_settings", 1, "[lavaland_theme_type]")
var/caves_theme_type = pick(subtypesof(/datum/caves_theme))
ASSERT(caves_theme_type)
caves_theme = new caves_theme_type
log_startup_progress("We feel like [caves_theme.name] today...")
SSblackbox.record_feedback("text", "procgen_settings", 1, "[caves_theme_type]")
cave_theme = pick(BLOCKED_BURROWS, CLASSIC_CAVES, DEADLY_DEEPROCK)
log_startup_progress("We feel like [cave_theme] today...")
// Load all Z level templates
preloadTemplates()
preloadTemplates(path = "code/modules/unit_tests/atmos/")
@@ -89,7 +94,8 @@ SUBSYSTEM_DEF(mapping)
seedRuins(list(level_name_to_num(MINING)), GLOB.configuration.ruins.lavaland_ruin_budget, /area/lavaland/surface/outdoors/unexplored, GLOB.lava_ruins_templates)
if(lavaland_theme)
lavaland_theme.setup()
lavaland_theme.setup_caves()
if(caves_theme)
caves_theme.setup()
var/time_spent = stop_watch(lavaland_setup_timer)
log_startup_progress("Successfully populated lavaland in [time_spent]s.")
else
+3
View File
@@ -160,6 +160,9 @@
name = "Lavaland Wastes"
outdoors = TRUE
/area/lavaland/surface/outdoors/legion_arena
name = "Legion Arena"
/// monsters and ruins spawn here
/area/lavaland/surface/outdoors/unexplored
icon_state = "unexplored"
@@ -88,7 +88,7 @@ GLOBAL_LIST_EMPTY(tendrils)
shake_camera(M, 15, 1)
playsound(get_turf(src),'sound/effects/explosionfar.ogg', 200, TRUE)
visible_message("<span class='boldannounceic'>The tendril falls inward, the ground around it widening into a yawning chasm!</span>")
for(var/turf/T in range(2,src))
for(var/turf/T in range(LAVALAND_TENDRIL_COLLAPSE_RANGE, src))
if(!T.density)
T.TerraformTurf(/turf/simulated/floor/chasm/straight_down/lava_land_surface)
qdel(src)
@@ -1,7 +1,6 @@
/**********************Asteroid**************************/
#define RECURSION_MAX 100
/turf/simulated/floor/plating/asteroid
gender = PLURAL
name = "asteroid sand"
@@ -186,168 +185,6 @@
nitrogen = 0
turf_type = /turf/simulated/floor/plating/asteroid/airless
#define SPAWN_MEGAFAUNA "bluh bluh huge boss"
#define SPAWN_BUBBLEGUM 6
GLOBAL_LIST_INIT(megafauna_spawn_list, list(/mob/living/simple_animal/hostile/megafauna/dragon = 4, /mob/living/simple_animal/hostile/megafauna/colossus = 2, /mob/living/simple_animal/hostile/megafauna/bubblegum = SPAWN_BUBBLEGUM, /mob/living/simple_animal/hostile/megafauna/ancient_robot = 4))
/turf/simulated/floor/plating/asteroid/airless/cave
var/length = 100
var/list/mob_spawn_list
var/list/megafauna_spawn_list
var/list/flora_spawn_list
var/sanity = 1
var/forward_cave_dir = 1
var/backward_cave_dir = 2
var/going_backwards = TRUE
var/has_data = FALSE
/// Very important for making sure prod won't die due to poor RNG from cave spawns
var/recursions = 0
var/data_having_type = /turf/simulated/floor/plating/asteroid/airless/cave/has_data
turf_type = /turf/simulated/floor/plating/asteroid/airless
/// subtype for producing a tunnel with given data
/turf/simulated/floor/plating/asteroid/airless/cave/has_data
has_data = TRUE
/turf/simulated/floor/plating/asteroid/airless/cave/volcanic
mob_spawn_list = list(/obj/effect/landmark/mob_spawner/goliath = 50, /obj/structure/spawner/lavaland/goliath = 3,
/obj/effect/landmark/mob_spawner/watcher = 40, /obj/structure/spawner/lavaland = 2,
/obj/effect/landmark/mob_spawner/legion = 30, /obj/structure/spawner/lavaland/legion = 3,
SPAWN_MEGAFAUNA = 6, /obj/effect/landmark/mob_spawner/goldgrub = 10, /obj/effect/landmark/mob_spawner/gutlunch = 4,
/obj/effect/landmark/mob_spawner/abandoned_minebot = 6)
data_having_type = /turf/simulated/floor/plating/asteroid/airless/cave/volcanic/has_data
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
oxygen = LAVALAND_OXYGEN
nitrogen = LAVALAND_NITROGEN
temperature = LAVALAND_TEMPERATURE
/// subtype for producing a tunnel with given data
/turf/simulated/floor/plating/asteroid/airless/cave/volcanic/has_data
has_data = TRUE
/turf/simulated/floor/plating/asteroid/airless/cave/Initialize(mapload)
if(!mob_spawn_list)
mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goldgrub = 1, /mob/living/simple_animal/hostile/asteroid/goliath = 5, /mob/living/simple_animal/hostile/asteroid/basilisk = 4, /mob/living/simple_animal/hostile/asteroid/hivelord = 3)
if(!megafauna_spawn_list)
megafauna_spawn_list = GLOB.megafauna_spawn_list
if(!flora_spawn_list)
flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2, /obj/structure/flora/ash/cap_shroom = 2, /obj/structure/flora/ash/stem_shroom = 2, /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2, /obj/structure/flora/ash/rock/style_random = 1)
if(SSmapping.cave_theme == BLOCKED_BURROWS)
flora_spawn_list += list(/obj/structure/flora/ash/rock/style_random = 3) //Let us see how this goes
. = ..()
if(!has_data)
produce_tunnel_from_data()
/turf/simulated/floor/plating/asteroid/airless/cave/proc/get_cave_data(set_length, exclude_dir = -1)
// If set_length (arg1) isn't defined, get a random length; otherwise assign our length to the length arg.
if(!set_length)
length = rand(25, 50)
else
length = set_length
// Get our directiosn
forward_cave_dir = pick(GLOB.alldirs - exclude_dir)
// Get the opposite direction of our facing direction
backward_cave_dir = angle2dir(dir2angle(forward_cave_dir) + 180)
/turf/simulated/floor/plating/asteroid/airless/cave/proc/produce_tunnel_from_data(tunnel_length, excluded_dir = -1)
if(!tunnel_length)//This is a sub cave do not overide repeat do not overide
get_cave_data(tunnel_length, excluded_dir)
switch(SSmapping.cave_theme)
if(BLOCKED_BURROWS) //Longer on average
get_cave_data(rand(40, 60), excluded_dir)
if(CLASSIC_CAVES) //Classic
get_cave_data(tunnel_length, excluded_dir)
if(DEADLY_DEEPROCK) //Smaller into large rooms with more mobs.
get_cave_data(rand(20, 40), excluded_dir)
if(prob(25)) //Less caves due to big openings. This may lead to fauna inside 1x1 rooms. We'll call that a suprise mechanic
SpawnFloor(src, 75) //now with extra suprise
return
// Make our tunnels
make_tunnel(forward_cave_dir)
if(going_backwards)
make_tunnel(backward_cave_dir)
// Kill ourselves by replacing ourselves with a normal floor.
SpawnFloor(src)
/turf/simulated/floor/plating/asteroid/airless/cave/proc/make_tunnel(dir)
var/turf/simulated/mineral/tunnel = src
var/next_angle = pick(45, -45)
for(var/i in 1 to length)
++recursions
if(recursions > RECURSION_MAX)
break
if(!sanity)
break
var/list/L = list(45)
if(ISODD(dir2angle(dir)) && (!(SSmapping.cave_theme == BLOCKED_BURROWS) || prob(15)))
L += -45
// Expand the edges of our tunnel
for(var/edge_angle in L)
var/turf/simulated/mineral/edge = get_step(tunnel, angle2dir(dir2angle(dir) + edge_angle))
if(istype(edge))
SpawnFloor(edge)
if(!sanity)
break
// Move our tunnel forward
tunnel = get_step(tunnel, dir)
// Separate ruin area check here because of the raw ChangeTurf call that
// doesn't go through SpawnFloor/Flora/Monster.
if(istype(tunnel) && !istype(tunnel.loc, /area/ruin))
// Small chance to have forks in our tunnel; otherwise dig our tunnel.
var/caveprob = 20
switch(SSmapping.cave_theme)
if(BLOCKED_BURROWS) //Longer on average
caveprob = 30 //More splitting
if(DEADLY_DEEPROCK) //Smaller into large rooms with more mobs.
caveprob = 10 //Less splitting
if(i > 3 && prob(caveprob))
var/turf/simulated/floor/plating/asteroid/airless/cave/C = tunnel.ChangeTurf(data_having_type, FALSE, TRUE)
C.recursions = recursions
C.going_backwards = FALSE
C.produce_tunnel_from_data(rand(10, 15), dir)
else
SpawnFloor(tunnel)
else //if(!istype(tunnel, src.parent)) // We hit space/normal/wall, stop our tunnel.
break
// Chance to change our direction left or right.
if(i > 2 && prob(33))
// We can't go a full loop though
if(!SSmapping.cave_theme == BLOCKED_BURROWS || prob(60))
next_angle = -next_angle
setDir(angle2dir(dir2angle(dir) )+ next_angle)
if(length -2 == i && !has_data) //Branches will not make this
SpawnRoom(tunnel)
/turf/simulated/floor/plating/asteroid/airless/cave/proc/SpawnRoom(turf/T)
switch(SSmapping.cave_theme)
if(DEADLY_DEEPROCK)
var/tempradius = rand(10, 15)
var/probmodifer = 43 * tempradius //Yes this is a magic number, it is a magic number that works well.
for(var/turf/NT in circlerangeturfs(T, tempradius))
var/distance = (max(get_dist(T, NT), 1)) //Get dist throws -1 if same turf
if(prob(min(probmodifer / distance, 100)))
if((ismineralturf(NT) || istype(NT, /turf/simulated/floor/plating/asteroid)) && !istype(NT.loc, /area/ruin)) //No spawning on lava / other ruins
SpawnFloor(NT, 50) //Room has higher probabilty.
if(prob(25))
tempradius = round(tempradius / 3)
var/turf/oasis_lake = pickweight(list(/turf/simulated/floor/lava/lava_land_surface = 4, /turf/simulated/floor/lava/lava_land_surface/plasma = 4, /turf/simulated/floor/chasm/straight_down/lava_land_surface = 4, /turf/simulated/floor/lava/mapping_lava = 6, /turf/simulated/floor/beach/away/water/lavaland_air = 1, /turf/simulated/floor/plating/asteroid = 1))
if(oasis_lake == /turf/simulated/floor/plating/asteroid)
new /obj/effect/spawner/oasisrock(T, tempradius)
for(var/turf/oasis in circlerangeturfs(T, tempradius))
if(istype(oasis.loc, /area/ruin))
continue
oasis.ChangeTurf(oasis_lake, ignore_air = TRUE)
/obj/effect/spawner/oasisrock
name = "Oasis rock spawner"
var/passed_radius
@@ -375,86 +212,6 @@ GLOBAL_LIST_INIT(megafauna_spawn_list, list(/mob/living/simple_animal/hostile/me
O.forceMove(pick_n_take(valid_turfs))
qdel(src)
/turf/simulated/floor/plating/asteroid/airless/cave/proc/SpawnFloor(turf/T, monsterprob = 30)
if(istype(T.loc, /area/ruin))
return
for(var/S in RANGE_TURFS(1, src))
var/turf/NT = S
if(!NT || isspaceturf(NT) || istype(NT.loc, /area/lavaland/surface/outdoors/explored))
sanity = 0
break
if(!sanity)
return
SpawnFlora(T)
SpawnMonster(T, monsterprob)
T.ChangeTurf(turf_type, FALSE, FALSE, TRUE)
/turf/simulated/floor/plating/asteroid/airless/cave/proc/SpawnMonster(turf/T, monsterprob = 30)
if(istype(T.loc, /area/ruin))
return
if(prob(monsterprob))
if(!istype(loc, /area/lavaland/surface/outdoors/unexplored))
return
var/randumb = pickweight(mob_spawn_list)
while(randumb == SPAWN_MEGAFAUNA)
if(istype(loc, /area/lavaland/surface/outdoors/unexplored/danger)) //this is danger. it's boss time.
var/maybe_boss = pickweight(megafauna_spawn_list)
if(megafauna_spawn_list[maybe_boss])
randumb = maybe_boss
else //this is not danger, don't spawn a boss, spawn something else
randumb = pickweight(mob_spawn_list)
var/scanrange = 12
var/megafaunarange = 7
switch(SSmapping.cave_theme)
if(DEADLY_DEEPROCK)
if(prob(50) && monsterprob > 30)
scanrange = rand(4, 7)
megafaunarange = scanrange
for(var/thing in urange(scanrange, T)) //prevents mob clumps
if(!ishostile(thing) && !istype(thing, /obj/structure/spawner))
continue
if((ismegafauna(randumb) || ismegafauna(thing)) && get_dist(T, thing) <= megafaunarange)
return //if there's a megafauna within standard view don't spawn anything at all
if(ispath(randumb, /obj/effect/landmark/mob_spawner) || istype(thing, /mob/living/simple_animal/hostile/asteroid))
return //if the random is a standard mob, avoid spawning if there's another one within 12 tiles
if((ispath(randumb, /obj/structure/spawner/lavaland) || istype(thing, /obj/structure/spawner/lavaland)) && get_dist(T, thing) <= 2)
return //prevents tendrils spawning in each other's collapse range
if(ispath(randumb, /mob/living/simple_animal/hostile/megafauna/bubblegum)) //there can be only one bubblegum, so don't waste spawns on it
megafauna_spawn_list.Remove(randumb)
if(ispath(randumb, /mob/living/simple_animal/hostile/megafauna/ancient_robot)) //same as above, we do not want multiple of these robots
megafauna_spawn_list.Remove(randumb)
new randumb(T)
SSblackbox.record_feedback("tally", "lavaland_mob_spawns", 1, "[randumb]")
#undef SPAWN_MEGAFAUNA
#undef SPAWN_BUBBLEGUM
#undef RECURSION_MAX
/turf/simulated/floor/plating/asteroid/airless/cave/proc/SpawnFlora(turf/T)
if(istype(T.loc, /area/ruin))
return
var/floraprob = 12
switch(SSmapping.cave_theme)
if(BLOCKED_BURROWS)
floraprob = 30 //Lots of folliage, lots of blockage
if(prob(floraprob))
if(istype(loc, /area/lavaland/surface/outdoors/explored))
return
var/randumb = pickweight(flora_spawn_list)
for(var/obj/structure/flora/ash/F in range(4, T)) //Allows for growing patches, but not ridiculous stacks of flora
if(!istype(F, randumb))
return
new randumb(T)
/turf/simulated/floor/plating/asteroid/snow
gender = PLURAL
name = "snow"
+1 -1
View File
@@ -137,7 +137,7 @@
/turf/simulated/mineral/random
var/mineralSpawnChanceList = list(/turf/simulated/mineral/uranium = 5, /turf/simulated/mineral/diamond = 1, /turf/simulated/mineral/gold = 10,
/turf/simulated/mineral/silver = 12, /turf/simulated/mineral/plasma = 20, /turf/simulated/mineral/iron = 40, /turf/simulated/mineral/titanium = 11,
/turf/simulated/mineral/gibtonite = 4, /turf/simulated/floor/plating/asteroid/airless/cave = 2, /turf/simulated/mineral/bscrystal = 1)
/turf/simulated/mineral/gibtonite = 4, /turf/simulated/mineral/bscrystal = 1)
//Currently, Adamantine won't spawn as it has no uses. -Durandan
var/mineralChance = 13
+214
View File
@@ -0,0 +1,214 @@
/// Approximate lower bound of the walkable land area on Lavaland, north of the southern lava border.
#define LAVALAND_MIN_CAVE_Y 10
/// Approximate upper bound of the walkable land area on Lavaland, south of the Legion entrance.
#define LAVALAND_MAX_CAVE_Y 222
#define SPAWN_MEGAFAUNA "bluh bluh huge boss"
/// Effective probability modifier for spawning flora and fauna in oases.
#define OASIS_SPAWNER_PROB_MODIFIER 43
GLOBAL_LIST_INIT(megafauna_spawn_list, list(
/mob/living/simple_animal/hostile/megafauna/dragon = 4,
/mob/living/simple_animal/hostile/megafauna/colossus = 2,
/mob/living/simple_animal/hostile/megafauna/bubblegum = 6,
/mob/living/simple_animal/hostile/megafauna/ancient_robot = 4,
))
GLOBAL_LIST_INIT(caves_default_mob_spawns, list(
/obj/effect/landmark/mob_spawner/abandoned_minebot = 6,
/obj/effect/landmark/mob_spawner/goldgrub = 10,
/obj/effect/landmark/mob_spawner/goliath = 50,
/obj/effect/landmark/mob_spawner/gutlunch = 4,
/obj/effect/landmark/mob_spawner/legion = 30,
/obj/effect/landmark/mob_spawner/watcher = 40,
/obj/structure/spawner/lavaland = 2,
/obj/structure/spawner/lavaland/goliath = 3,
/obj/structure/spawner/lavaland/legion = 3,
SPAWN_MEGAFAUNA = 6,
))
GLOBAL_LIST_INIT(caves_default_flora_spawns, list(
/obj/structure/flora/ash/cacti = 1,
/obj/structure/flora/ash/cap_shroom = 2,
/obj/structure/flora/ash/leaf_shroom = 2,
/obj/structure/flora/ash/rock/style_random = 1,
/obj/structure/flora/ash/stem_shroom = 2,
/obj/structure/flora/ash/tall_shroom = 2,
))
/proc/lavaland_caves_spawn_mob(turf/T, mob_scan_range = 12, megafauna_scan_range = 7)
var/mob_spawn = pickweight(GLOB.caves_default_mob_spawns)
while(mob_spawn == SPAWN_MEGAFAUNA)
if(istype(get_area(T), /area/lavaland/surface/outdoors/unexplored/danger)) //this is danger. it's boss time.
mob_spawn = pickweight(GLOB.megafauna_spawn_list)
else //this is not danger, don't spawn a boss, spawn something else
mob_spawn = pickweight(GLOB.caves_default_mob_spawns)
for(var/thing in urange(mob_scan_range, T))
if(!(ishostile(thing) || istype(thing, /obj/structure/spawner) || istype(thing, /obj/effect/landmark/mob_spawner)))
continue
// don't spawn a megafauna if there's already one within view
if((ispath(mob_spawn, /mob/living/simple_animal/hostile/megafauna) || ismegafauna(thing)) && (get_dist(T, thing) <= megafauna_scan_range))
return
// if the random is a standard mob, avoid spawning if there's another one within the scan range
if(ispath(mob_spawn, /obj/effect/landmark/mob_spawner) && istype(thing, /obj/effect/landmark/mob_spawner))
return
// prevents tendrils spawning in each other's collapse range
if((ispath(mob_spawn, /obj/structure/spawner/lavaland) && istype(thing, /obj/structure/spawner/lavaland)) && get_dist(T, thing) <= LAVALAND_TENDRIL_COLLAPSE_RANGE)
return
// there can be only one bubblegum, so don't waste spawns on it
if(ispath(mob_spawn, /mob/living/simple_animal/hostile/megafauna/bubblegum))
GLOB.megafauna_spawn_list.Remove(mob_spawn)
// same as above, we do not want multiple of these robots
if(ispath(mob_spawn, /mob/living/simple_animal/hostile/megafauna/ancient_robot))
GLOB.megafauna_spawn_list.Remove(mob_spawn)
new mob_spawn(T)
SSblackbox.record_feedback("tally", "lavaland_mob_spawns", 1, "[mob_spawn]")
/proc/lavaland_caves_spawn_flora(turf/T)
var/flora_spawn = pickweight(GLOB.caves_default_flora_spawns)
for(var/obj/structure/flora/ash/F in range(4, T)) //Allows for growing patches, but not ridiculous stacks of flora
if(!istype(F, flora_spawn))
return
new flora_spawn(T)
/datum/caves_theme
var/name = "Not Specified"
var/seed
var/perlin_accuracy = 5
var/perlin_stamp_size = 10
var/perlin_lower_range = 0
var/perlin_upper_range = 0.3
/datum/caves_theme/New()
seed = rand(1, 999999)
/datum/caves_theme/proc/setup()
var/result = rustg_dbp_generate("[seed]", "[perlin_accuracy]", "[perlin_stamp_size]", "[world.maxx]", "[perlin_lower_range]", "[perlin_upper_range]")
var/z = level_name_to_num(MINING)
for(var/turf/T in block(1, 1, z, world.maxx, world.maxy, z))
if(!istype(get_area(T), /area/lavaland/surface/outdoors/unexplored))
continue
if(!istype(T, /turf/simulated/mineral))
continue
var/c = result[world.maxx * (T.y - 1) + T.x]
if(c == "1")
T.ChangeTurf(/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface)
on_change(T)
CHECK_TICK
/datum/caves_theme/proc/on_change(turf/T)
if(prob(2))
lavaland_caves_spawn_flora(T)
else if(prob(1))
lavaland_caves_spawn_mob(T)
/datum/caves_theme/proc/safe_replace(turf/T)
if(T.flags & NO_LAVA_GEN)
return FALSE
if(!istype(get_area(T), /area/lavaland/surface/outdoors/unexplored))
return FALSE
if(istype(T, /turf/simulated/floor/chasm))
return FALSE
if(istype(T, /turf/simulated/floor/lava/lava_land_surface))
return FALSE
if(istype(T, /turf/simulated/floor/lava/mapping_lava))
return FALSE
return TRUE
/datum/caves_theme/classic
name = "Classic Caves"
/datum/caves_theme/burrows
name = "Blocked Burrows"
perlin_accuracy = 90
perlin_stamp_size = 7
perlin_lower_range = 0
perlin_upper_range = 0.3
/datum/caves_theme/burrows/on_change(turf/T)
if(prob(9))
new /obj/structure/flora/ash/rock/style_random(T)
else if(prob(5))
lavaland_caves_spawn_flora(T)
else if(prob(1))
lavaland_caves_spawn_mob(T)
/datum/caves_theme/deeprock/proc/maybe_make_room(turf/T)
if(rand(1, 150) != 1)
return
for(var/turf/oasis_centroid in oasis_centroids)
if(get_dist(T, oasis_centroid) < oasis_padding)
return
oasis_centroids |= T
var/new_scan_range = rand(4, 7)
var/tempradius = rand(10, 15)
var/probmodifer = OASIS_SPAWNER_PROB_MODIFIER * tempradius
var/list/oasis_turfs = list()
for(var/turf/NT in circlerangeturfs(T, tempradius))
var/distance = (max(get_dist(T, NT), 1)) //Get dist throws -1 if same turf
if(safe_replace(NT) && prob(min(probmodifer / distance, 100)))
var/turf/changed = NT.ChangeTurf(/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface)
if(prob(5))
lavaland_caves_spawn_mob(changed, new_scan_range, new_scan_range)
else if(prob(10))
lavaland_caves_spawn_flora(changed)
oasis_turfs |= NT
if(prob(50))
tempradius = round(tempradius / 3)
var/oasis_laketype = pickweight(lake_weights)
if(oasis_laketype == /turf/simulated/floor/plating/asteroid)
new /obj/effect/spawner/oasisrock(T, tempradius)
for(var/turf/oasis in circlerangeturfs(T, tempradius))
if(safe_replace(oasis))
oasis.ChangeTurf(oasis_laketype)
oasis_turfs -= oasis
// Move tendrils out of the oasis
for(var/obj/structure/spawner/lavaland/O in circlerange(T, tempradius))
O.forceMove(pick_n_take(oasis_turfs))
return T
/datum/caves_theme/deeprock
name = "Deadly Deeprock"
perlin_stamp_size = 12
perlin_lower_range = 0
perlin_upper_range = 0.2
var/oasis_padding = 50
var/list/oasis_centroids = list()
var/lake_weights = list(
/turf/simulated/floor/lava/lava_land_surface = 4,
/turf/simulated/floor/lava/lava_land_surface/plasma = 4,
/turf/simulated/floor/chasm/straight_down/lava_land_surface = 4,
/turf/simulated/floor/lava/mapping_lava = 6,
/turf/simulated/floor/beach/away/water/lavaland_air = 1,
/turf/simulated/floor/plating/asteroid = 1
)
/datum/caves_theme/deeprock/on_change(turf/T)
maybe_make_room(T)
if(prob(3))
lavaland_caves_spawn_flora(T)
else if(prob(2))
lavaland_caves_spawn_mob(T)
#undef OASIS_SPAWNER_PROB_MODIFIER
#undef SPAWN_MEGAFAUNA
#undef LAVALAND_MIN_CAVE_Y
#undef LAVALAND_MAX_CAVE_Y
-21
View File
@@ -1,8 +1,3 @@
/// Approximate lower bound of the walkable land area on Lavaland, north of the southern lava border.
#define LAVALAND_MIN_CAVE_Y 10
/// Approximate upper bound of the walkable land area on Lavaland, south of the Legion entrance.
#define LAVALAND_MAX_CAVE_Y 222
/datum/lavaland_theme
/// Name of lavaland theme
var/name = "Not Specified"
@@ -17,20 +12,6 @@
else if(!ispath(primary_turf_type))
stack_trace("Wrong turf type `[primary_turf_type.type]` in `[type]` lavaland theme")
/datum/lavaland_theme/proc/setup_caves()
var/max_attempts = 100
var/max_cave_spawns = 40
var/z = level_name_to_num(MINING)
while(max_attempts > 0 && max_cave_spawns > 0)
var/x = rand(1, world.maxx)
var/y = rand(LAVALAND_MIN_CAVE_Y, LAVALAND_MAX_CAVE_Y)
var/turf/next_turf = locate(x, y, z)
var/area/next_area = get_area(next_turf)
if(istype(next_turf, /turf/simulated/mineral/random/volcanic) && istype(next_area, /area/lavaland/surface/outdoors/unexplored/danger))
next_turf.ChangeTurf(/turf/simulated/floor/plating/asteroid/airless/cave/volcanic, FALSE, TRUE, TRUE)
max_cave_spawns--
max_attempts--
/**
* This proc should do all theme specific thing.
* Now it only generates rivers, but it can do all stuff you desire.
@@ -66,5 +47,3 @@
var/datum/river_spawner/spawner = new(level_name_to_num(MINING), spread_prob_ = 10, spread_prob_loss_ = 5)
spawner.generate(nodes = 6, min_x = 50, min_y = 7, max_x = 250, max_y = 225)
#undef LAVALAND_MIN_CAVE_Y
#undef LAVALAND_MAX_CAVE_Y
+1
View File
@@ -2021,6 +2021,7 @@
#include "code\modules\instruments\songs\_song_ui.dm"
#include "code\modules\instruments\songs\play_legacy.dm"
#include "code\modules\instruments\songs\play_synthesized.dm"
#include "code\modules\lavaland\caves_theme.dm"
#include "code\modules\lavaland\lavaland_theme.dm"
#include "code\modules\library\book.dm"
#include "code\modules\library\library_admin.dm"