[MDB IGNORE] Lavaland Mineral Rework: Yapmining 2026 (#95682)
@@ -769,9 +769,6 @@
|
||||
"Bn" = (
|
||||
/turf/open/floor/carpet/blue,
|
||||
/area/ruin/powered/beach)
|
||||
"Bp" = (
|
||||
/turf/closed/mineral/random/volcanic,
|
||||
/area/lavaland/surface/outdoors/explored)
|
||||
"Bv" = (
|
||||
/obj/effect/turf_decal/sand,
|
||||
/obj/machinery/light/directional/east,
|
||||
@@ -793,6 +790,10 @@
|
||||
},
|
||||
/turf/closed/wall/mineral/sandstone,
|
||||
/area/ruin/powered/beach)
|
||||
"Cl" = (
|
||||
/obj/effect/spawner/random/entertainment/slot_machine,
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/powered/beach)
|
||||
"Cq" = (
|
||||
/obj/structure/sign/departments/restroom/directional/east,
|
||||
/turf/open/floor/wood,
|
||||
@@ -832,6 +833,9 @@
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4,
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/powered/beach)
|
||||
"Dh" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors/explored)
|
||||
"Ds" = (
|
||||
/obj/structure/closet/secure_closet/freezer/kitchen/all_access,
|
||||
/turf/open/floor/wood,
|
||||
@@ -981,6 +985,9 @@
|
||||
dir = 8
|
||||
},
|
||||
/area/ruin/powered/beach)
|
||||
"Jj" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/template_noop)
|
||||
"Jr" = (
|
||||
/turf/open/floor/carpet/purple,
|
||||
/area/ruin/powered/beach)
|
||||
@@ -1074,10 +1081,6 @@
|
||||
},
|
||||
/turf/closed/wall/mineral/sandstone,
|
||||
/area/ruin/powered/beach)
|
||||
"NJ" = (
|
||||
/obj/effect/spawner/random/entertainment/slot_machine,
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/powered/beach)
|
||||
"NK" = (
|
||||
/obj/machinery/grill,
|
||||
/turf/open/floor/wood,
|
||||
@@ -1409,23 +1412,20 @@
|
||||
/obj/structure/curtain,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/powered/beach)
|
||||
"ZS" = (
|
||||
/turf/closed/mineral/random/volcanic,
|
||||
/area/template_noop)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Bp
|
||||
Bp
|
||||
Bp
|
||||
Bp
|
||||
Dh
|
||||
Dh
|
||||
Dh
|
||||
Dh
|
||||
wL
|
||||
wL
|
||||
wL
|
||||
Bp
|
||||
Dh
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
@@ -1442,8 +1442,8 @@ BE
|
||||
BE
|
||||
BE
|
||||
yc
|
||||
Bp
|
||||
Bp
|
||||
Dh
|
||||
aa
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
aa
|
||||
@@ -1451,8 +1451,8 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Dh
|
||||
Dh
|
||||
aj
|
||||
gs
|
||||
gs
|
||||
@@ -1475,16 +1475,16 @@ Df
|
||||
aF
|
||||
Fr
|
||||
yc
|
||||
Bp
|
||||
aa
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Dh
|
||||
Dh
|
||||
Dh
|
||||
Dh
|
||||
aj
|
||||
cg
|
||||
Cs
|
||||
@@ -1507,7 +1507,7 @@ kh
|
||||
aC
|
||||
hS
|
||||
cd
|
||||
Bp
|
||||
aa
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
aa
|
||||
@@ -1539,12 +1539,12 @@ CK
|
||||
IJ
|
||||
mE
|
||||
CU
|
||||
Bp
|
||||
aa
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
aa
|
||||
aj
|
||||
NJ
|
||||
Cl
|
||||
Fa
|
||||
xg
|
||||
aC
|
||||
@@ -1571,12 +1571,12 @@ aP
|
||||
Wd
|
||||
aj
|
||||
MZ
|
||||
Bp
|
||||
Dh
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
aa
|
||||
aj
|
||||
NJ
|
||||
Cl
|
||||
Bg
|
||||
Ti
|
||||
Fa
|
||||
@@ -1603,7 +1603,7 @@ cE
|
||||
cE
|
||||
gF
|
||||
MZ
|
||||
Bp
|
||||
Dh
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
aa
|
||||
@@ -1635,7 +1635,7 @@ uz
|
||||
uz
|
||||
lq
|
||||
MZ
|
||||
Bp
|
||||
Dh
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
aa
|
||||
@@ -1667,7 +1667,7 @@ uz
|
||||
uz
|
||||
PN
|
||||
MZ
|
||||
Bp
|
||||
Dh
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
aa
|
||||
@@ -1699,7 +1699,7 @@ uz
|
||||
uz
|
||||
lq
|
||||
MZ
|
||||
Bp
|
||||
Dh
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
aa
|
||||
@@ -1766,7 +1766,7 @@ IP
|
||||
MZ
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
aa
|
||||
Dh
|
||||
MZ
|
||||
VI
|
||||
VI
|
||||
@@ -1798,7 +1798,7 @@ Ro
|
||||
MZ
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
Bp
|
||||
Dh
|
||||
Fr
|
||||
yc
|
||||
VI
|
||||
@@ -1830,7 +1830,7 @@ Ro
|
||||
MZ
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
Bp
|
||||
Dh
|
||||
wL
|
||||
MZ
|
||||
SC
|
||||
@@ -1862,7 +1862,7 @@ Ro
|
||||
MZ
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
Bp
|
||||
Dh
|
||||
gX
|
||||
cd
|
||||
VI
|
||||
@@ -1894,7 +1894,7 @@ EL
|
||||
MZ
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
Bp
|
||||
Dh
|
||||
wL
|
||||
MZ
|
||||
dj
|
||||
@@ -1926,7 +1926,7 @@ Ro
|
||||
MZ
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
Bp
|
||||
Dh
|
||||
wL
|
||||
MZ
|
||||
VY
|
||||
@@ -1958,7 +1958,7 @@ Ro
|
||||
MZ
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
Bp
|
||||
Dh
|
||||
Zi
|
||||
Mf
|
||||
UT
|
||||
@@ -2114,8 +2114,8 @@ AE
|
||||
eA
|
||||
qf
|
||||
MZ
|
||||
Bp
|
||||
Bp
|
||||
Dh
|
||||
aa
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
aa
|
||||
@@ -2147,7 +2147,7 @@ gC
|
||||
rO
|
||||
Fr
|
||||
yc
|
||||
Bp
|
||||
Dh
|
||||
"}
|
||||
(24,1,1) = {"
|
||||
aa
|
||||
@@ -2339,7 +2339,7 @@ BE
|
||||
CU
|
||||
BE
|
||||
Mf
|
||||
Bp
|
||||
aa
|
||||
"}
|
||||
(30,1,1) = {"
|
||||
aa
|
||||
@@ -2349,7 +2349,7 @@ BE
|
||||
BE
|
||||
BE
|
||||
Mf
|
||||
ZS
|
||||
Jj
|
||||
Fr
|
||||
BE
|
||||
BE
|
||||
@@ -2364,12 +2364,12 @@ Mf
|
||||
aj
|
||||
aj
|
||||
aj
|
||||
Bp
|
||||
Bp
|
||||
Bp
|
||||
Bp
|
||||
Bp
|
||||
Bp
|
||||
Bp
|
||||
Bp
|
||||
Dh
|
||||
Dh
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/obj/effect/mapping_helpers/no_lava,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/template_noop)
|
||||
"b" = (
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
/obj/structure/stone_tile/surrounding_tile{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ac" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ad" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
@@ -21,13 +21,13 @@
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ae" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"af" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
@@ -36,37 +36,30 @@
|
||||
/obj/structure/stone_tile{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ag" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ah" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ai" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"aj" = (
|
||||
/obj/structure/stone_tile/slab,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ak" = (
|
||||
/turf/closed/indestructible/riveted/boss,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"al" = (
|
||||
/obj/effect/mapping_helpers/no_lava,
|
||||
/obj/structure/railing/wooden_fence{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"aq" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 8
|
||||
@@ -74,27 +67,11 @@
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ar" = (
|
||||
/obj/effect/mapping_helpers/no_lava,
|
||||
/obj/structure/railing/wooden_fence{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"as" = (
|
||||
/turf/closed/wall/mineral/wood,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"at" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"au" = (
|
||||
/obj/structure/stone_tile,
|
||||
/obj/structure/stone_tile{
|
||||
@@ -154,12 +131,6 @@
|
||||
/obj/item/flashlight/flare/torch,
|
||||
/turf/open/indestructible/boss,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"aF" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"aG" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 4
|
||||
@@ -210,13 +181,7 @@
|
||||
/turf/open/indestructible/boss,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"aR" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/indestructible/riveted/boss,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"aS" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
@@ -323,18 +288,11 @@
|
||||
/obj/structure/stone_tile,
|
||||
/turf/open/indestructible/boss,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"bh" = (
|
||||
/obj/effect/mapping_helpers/no_lava,
|
||||
/obj/structure/railing/wooden_fence{
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"bi" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"bj" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
@@ -489,7 +447,7 @@
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"bG" = (
|
||||
/turf/closed/indestructible/riveted/boss/see_through,
|
||||
@@ -583,39 +541,39 @@
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cP" = (
|
||||
/obj/structure/stone_tile/block,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cQ" = (
|
||||
/obj/structure/stone_tile/block/cracked,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cR" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"cT" = (
|
||||
/obj/structure/stone_tile,
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"du" = (
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dz" = (
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/stone_tile/cracked,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dB" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
@@ -628,24 +586,24 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/center/cracked,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dC" = (
|
||||
/obj/structure/stone_tile,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dD" = (
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dE" = (
|
||||
/obj/structure/stone_tile,
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"dP" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
@@ -952,13 +910,6 @@
|
||||
/obj/item/flashlight/flare/torch,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/ash_walkers)
|
||||
"vV" = (
|
||||
/obj/effect/mapping_helpers/no_lava,
|
||||
/obj/structure/railing/wooden_fence{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"wB" = (
|
||||
/obj/structure/stone_tile/block,
|
||||
/obj/structure/stone_tile{
|
||||
@@ -1232,13 +1183,6 @@
|
||||
/obj/structure/ore_container/food_trough/gutlunch_trough,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"Kg" = (
|
||||
/obj/effect/mapping_helpers/no_lava,
|
||||
/obj/structure/railing/wooden_fence{
|
||||
dir = 10
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"Kt" = (
|
||||
/obj/structure/water_source/puddle{
|
||||
pixel_x = -3;
|
||||
@@ -1343,13 +1287,6 @@
|
||||
/obj/structure/stone_tile,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"Rq" = (
|
||||
/obj/effect/mapping_helpers/no_lava,
|
||||
/obj/structure/railing/wooden_fence{
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"RE" = (
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 1
|
||||
@@ -1687,8 +1624,8 @@ ah
|
||||
aa
|
||||
ai
|
||||
aq
|
||||
at
|
||||
aF
|
||||
aR
|
||||
aR
|
||||
aR
|
||||
aR
|
||||
eC
|
||||
@@ -1905,15 +1842,15 @@ cQ
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
ah
|
||||
aj
|
||||
ak
|
||||
ak
|
||||
fM
|
||||
Gv
|
||||
TC
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
qH
|
||||
KQ
|
||||
Gv
|
||||
Dz
|
||||
qm
|
||||
@@ -1926,17 +1863,17 @@ ah
|
||||
cR
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
ah
|
||||
aa
|
||||
aj
|
||||
ak
|
||||
ak
|
||||
Gv
|
||||
ar
|
||||
cp
|
||||
cp
|
||||
cp
|
||||
cp
|
||||
cp
|
||||
Kg
|
||||
Gv
|
||||
Gv
|
||||
PA
|
||||
qH
|
||||
KQ
|
||||
Gv
|
||||
Gv
|
||||
qm
|
||||
Gv
|
||||
@@ -1948,16 +1885,16 @@ ah
|
||||
ah
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
ah
|
||||
aa
|
||||
aj
|
||||
ak
|
||||
ak
|
||||
Gv
|
||||
al
|
||||
fM
|
||||
Gv
|
||||
Gv
|
||||
TC
|
||||
bJ
|
||||
bJ
|
||||
Gv
|
||||
qH
|
||||
KQ
|
||||
Tl
|
||||
Gv
|
||||
Gv
|
||||
qm
|
||||
@@ -1970,18 +1907,18 @@ ah
|
||||
ah
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
ah
|
||||
Gv
|
||||
al
|
||||
aa
|
||||
aj
|
||||
ak
|
||||
ak
|
||||
bJ
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
PA
|
||||
qH
|
||||
KQ
|
||||
Gv
|
||||
Gv
|
||||
sz
|
||||
sz
|
||||
qm
|
||||
Gv
|
||||
PK
|
||||
@@ -1992,62 +1929,62 @@ ah
|
||||
ah
|
||||
"}
|
||||
(24,1,1) = {"
|
||||
ah
|
||||
Gv
|
||||
al
|
||||
aa
|
||||
aa
|
||||
ak
|
||||
ak
|
||||
Gv
|
||||
bJ
|
||||
bJ
|
||||
Gv
|
||||
Gv
|
||||
qH
|
||||
Tl
|
||||
Gv
|
||||
Gv
|
||||
qm
|
||||
sz
|
||||
Gv
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
"}
|
||||
(25,1,1) = {"
|
||||
ah
|
||||
Gv
|
||||
al
|
||||
bJ
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
qH
|
||||
Gv
|
||||
sz
|
||||
sz
|
||||
qm
|
||||
Gv
|
||||
Gv
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
"}
|
||||
(26,1,1) = {"
|
||||
ah
|
||||
Gv
|
||||
al
|
||||
Gv
|
||||
bJ
|
||||
bJ
|
||||
Gv
|
||||
Gv
|
||||
Pk
|
||||
sz
|
||||
Gv
|
||||
Oe
|
||||
qm
|
||||
sz
|
||||
Gv
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
aa
|
||||
"}
|
||||
(25,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
ak
|
||||
ak
|
||||
Gv
|
||||
Gv
|
||||
TC
|
||||
Gv
|
||||
qH
|
||||
Gv
|
||||
Dz
|
||||
Oe
|
||||
qm
|
||||
Gv
|
||||
Gv
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
aa
|
||||
"}
|
||||
(26,1,1) = {"
|
||||
aa
|
||||
ah
|
||||
ak
|
||||
ak
|
||||
Gv
|
||||
JD
|
||||
Gv
|
||||
Gv
|
||||
qH
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
@@ -2058,18 +1995,18 @@ aa
|
||||
aa
|
||||
"}
|
||||
(27,1,1) = {"
|
||||
aa
|
||||
ah
|
||||
Gv
|
||||
al
|
||||
ak
|
||||
ak
|
||||
Gv
|
||||
Gv
|
||||
TC
|
||||
Gv
|
||||
Gv
|
||||
PA
|
||||
qH
|
||||
Gv
|
||||
Dz
|
||||
Oe
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
@@ -2081,17 +2018,17 @@ aa
|
||||
"}
|
||||
(28,1,1) = {"
|
||||
ah
|
||||
ah
|
||||
ak
|
||||
ak
|
||||
TC
|
||||
Gv
|
||||
al
|
||||
Gv
|
||||
JD
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
PA
|
||||
TC
|
||||
qH
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
mo
|
||||
ah
|
||||
Gv
|
||||
Dz
|
||||
Gv
|
||||
@@ -2103,17 +2040,17 @@ aa
|
||||
"}
|
||||
(29,1,1) = {"
|
||||
ah
|
||||
Gv
|
||||
al
|
||||
ah
|
||||
ak
|
||||
ak
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
PA
|
||||
qH
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Uh
|
||||
ty
|
||||
ah
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
@@ -2124,17 +2061,17 @@ aa
|
||||
aa
|
||||
"}
|
||||
(30,1,1) = {"
|
||||
aa
|
||||
ah
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
cp
|
||||
cp
|
||||
Gv
|
||||
al
|
||||
TC
|
||||
Gv
|
||||
PA
|
||||
Gv
|
||||
TC
|
||||
qH
|
||||
Gv
|
||||
mo
|
||||
ty
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -2146,17 +2083,17 @@ aa
|
||||
aa
|
||||
"}
|
||||
(31,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
Gv
|
||||
bh
|
||||
vV
|
||||
vV
|
||||
vV
|
||||
vV
|
||||
vV
|
||||
Rq
|
||||
Uh
|
||||
ty
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -2168,32 +2105,10 @@ aa
|
||||
aa
|
||||
"}
|
||||
(32,1,1) = {"
|
||||
ah
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
ty
|
||||
ah
|
||||
ah
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(33,1,1) = {"
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
@@ -2211,3 +2126,25 @@ aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(33,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/template_noop)
|
||||
"b" = (
|
||||
/obj/effect/mapping_helpers/no_lava,
|
||||
/turf/open/misc/asteroid/lavaland_atmos,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"c" = (
|
||||
@@ -10,14 +11,17 @@
|
||||
/area/template_noop)
|
||||
"d" = (
|
||||
/mob/living/basic/mining/bileworm,
|
||||
/obj/effect/mapping_helpers/no_lava,
|
||||
/turf/open/misc/asteroid/lavaland_atmos,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"e" = (
|
||||
/obj/item/crusher_trophy/bileworm_spewlet,
|
||||
/obj/effect/mapping_helpers/no_lava,
|
||||
/turf/open/misc/asteroid/lavaland_atmos,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"f" = (
|
||||
/obj/structure/water_source/puddle,
|
||||
/obj/effect/mapping_helpers/no_lava,
|
||||
/turf/open/misc/asteroid/lavaland_atmos,
|
||||
/area/lavaland/surface/outdoors)
|
||||
|
||||
@@ -62,9 +66,9 @@ c
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
c
|
||||
@@ -118,7 +122,7 @@ b
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
@@ -168,8 +172,8 @@ b
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
@@ -185,8 +189,8 @@ b
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
@@ -194,6 +198,7 @@ c
|
||||
(11,1,1) = {"
|
||||
c
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -202,8 +207,7 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
@@ -211,8 +215,8 @@ c
|
||||
(12,1,1) = {"
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -229,15 +233,15 @@ c
|
||||
c
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
"a" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"b" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"c" = (
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
@@ -108,15 +105,6 @@
|
||||
},
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"t" = (
|
||||
/obj/structure/stone_tile/surrounding/cracked{
|
||||
dir = 6
|
||||
},
|
||||
/mob/living/basic/boss/blood_drunk_miner{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"u" = (
|
||||
/obj/structure/stone_tile{
|
||||
dir = 1
|
||||
@@ -151,17 +139,29 @@
|
||||
/obj/structure/stone_tile/cracked,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"I" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/template_noop)
|
||||
"U" = (
|
||||
/obj/structure/stone_tile/surrounding/cracked{
|
||||
dir = 6
|
||||
},
|
||||
/mob/living/basic/boss/blood_drunk_miner{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
I
|
||||
I
|
||||
I
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -171,38 +171,38 @@ a
|
||||
(2,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
I
|
||||
I
|
||||
I
|
||||
I
|
||||
a
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
b
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
I
|
||||
c
|
||||
d
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
I
|
||||
I
|
||||
I
|
||||
I
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
b
|
||||
b
|
||||
a
|
||||
I
|
||||
c
|
||||
c
|
||||
k
|
||||
@@ -211,13 +211,13 @@ c
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
I
|
||||
I
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
b
|
||||
a
|
||||
c
|
||||
d
|
||||
g
|
||||
@@ -229,11 +229,11 @@ c
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
b
|
||||
a
|
||||
c
|
||||
c
|
||||
h
|
||||
@@ -246,26 +246,26 @@ d
|
||||
e
|
||||
c
|
||||
c
|
||||
b
|
||||
I
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
b
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
q
|
||||
t
|
||||
U
|
||||
w
|
||||
x
|
||||
y
|
||||
p
|
||||
e
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
b
|
||||
a
|
||||
c
|
||||
e
|
||||
i
|
||||
@@ -278,10 +278,10 @@ f
|
||||
d
|
||||
y
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
b
|
||||
I
|
||||
c
|
||||
f
|
||||
j
|
||||
@@ -293,53 +293,53 @@ c
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
c
|
||||
c
|
||||
c
|
||||
o
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
b
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
I
|
||||
c
|
||||
n
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
I
|
||||
I
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
I
|
||||
I
|
||||
I
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -347,11 +347,11 @@ a
|
||||
(13,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
I
|
||||
I
|
||||
I
|
||||
I
|
||||
I
|
||||
a
|
||||
a
|
||||
a
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
"a" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"b" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"c" = (
|
||||
/obj/structure/stone_tile/surrounding_tile{
|
||||
dir = 4
|
||||
@@ -70,23 +67,6 @@
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"o" = (
|
||||
/obj/structure/stone_tile,
|
||||
/obj/structure/stone_tile{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"p" = (
|
||||
/obj/structure/stone_tile,
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"q" = (
|
||||
/obj/structure/stone_tile{
|
||||
dir = 8
|
||||
@@ -96,23 +76,12 @@
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"s" = (
|
||||
"r" = (
|
||||
/obj/structure/stone_tile/surrounding/burnt,
|
||||
/mob/living/basic/boss/blood_drunk_miner/guidance{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"t" = (
|
||||
/obj/structure/stone_tile{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/stone_tile{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"u" = (
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked{
|
||||
@@ -150,24 +119,65 @@
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"M" = (
|
||||
"C" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/cracked,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"F" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/template_noop)
|
||||
"H" = (
|
||||
/obj/structure/stone_tile{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"L" = (
|
||||
/obj/structure/stone_tile,
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"V" = (
|
||||
/obj/structure/stone_tile,
|
||||
/obj/structure/stone_tile{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"Z" = (
|
||||
/obj/structure/stone_tile{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/stone_tile{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
a
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -177,24 +187,24 @@ a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
F
|
||||
F
|
||||
F
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
a
|
||||
F
|
||||
F
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
b
|
||||
b
|
||||
F
|
||||
F
|
||||
c
|
||||
h
|
||||
k
|
||||
@@ -203,15 +213,15 @@ f
|
||||
f
|
||||
k
|
||||
f
|
||||
b
|
||||
b
|
||||
F
|
||||
F
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
b
|
||||
b
|
||||
F
|
||||
F
|
||||
d
|
||||
c
|
||||
l
|
||||
@@ -220,15 +230,15 @@ f
|
||||
f
|
||||
v
|
||||
f
|
||||
b
|
||||
b
|
||||
b
|
||||
F
|
||||
F
|
||||
F
|
||||
a
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
b
|
||||
b
|
||||
F
|
||||
F
|
||||
e
|
||||
i
|
||||
m
|
||||
@@ -238,65 +248,65 @@ u
|
||||
w
|
||||
f
|
||||
f
|
||||
b
|
||||
b
|
||||
b
|
||||
F
|
||||
F
|
||||
F
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
b
|
||||
F
|
||||
F
|
||||
f
|
||||
f
|
||||
f
|
||||
o
|
||||
M
|
||||
q
|
||||
V
|
||||
C
|
||||
H
|
||||
w
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
b
|
||||
b
|
||||
F
|
||||
F
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
F
|
||||
F
|
||||
f
|
||||
f
|
||||
p
|
||||
s
|
||||
t
|
||||
L
|
||||
r
|
||||
Z
|
||||
f
|
||||
f
|
||||
q
|
||||
n
|
||||
A
|
||||
f
|
||||
b
|
||||
F
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
b
|
||||
b
|
||||
a
|
||||
F
|
||||
g
|
||||
f
|
||||
c
|
||||
q
|
||||
t
|
||||
q
|
||||
H
|
||||
Z
|
||||
H
|
||||
k
|
||||
x
|
||||
f
|
||||
z
|
||||
d
|
||||
f
|
||||
b
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
b
|
||||
a
|
||||
f
|
||||
j
|
||||
n
|
||||
@@ -308,57 +318,57 @@ y
|
||||
f
|
||||
n
|
||||
y
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
b
|
||||
b
|
||||
F
|
||||
F
|
||||
f
|
||||
f
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
"a" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"b" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"c" = (
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
@@ -97,16 +94,6 @@
|
||||
/obj/structure/stone_tile/cracked,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"n" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 4
|
||||
},
|
||||
/mob/living/basic/boss/blood_drunk_miner/hunter,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"o" = (
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 4
|
||||
@@ -157,12 +144,56 @@
|
||||
},
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"v" = (
|
||||
"z" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/template_noop)
|
||||
"A" = (
|
||||
/obj/structure/stone_tile/burnt{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/stone_tile,
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"I" = (
|
||||
/obj/structure/stone_tile/surrounding/cracked{
|
||||
dir = 6
|
||||
},
|
||||
/obj/structure/stone_tile/center,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 4
|
||||
},
|
||||
/mob/living/basic/boss/blood_drunk_miner/hunter,
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"N" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"R" = (
|
||||
/obj/structure/stone_tile{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"W" = (
|
||||
/obj/structure/stone_tile/block{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/stone_tile/block/cracked{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
|
||||
(1,1,1) = {"
|
||||
@@ -174,58 +205,58 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
z
|
||||
z
|
||||
z
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
z
|
||||
z
|
||||
z
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
z
|
||||
z
|
||||
a
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
c
|
||||
g
|
||||
m
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
z
|
||||
z
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
b
|
||||
z
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
z
|
||||
z
|
||||
z
|
||||
c
|
||||
c
|
||||
g
|
||||
@@ -234,11 +265,11 @@ h
|
||||
q
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
z
|
||||
z
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
b
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
@@ -248,15 +279,15 @@ c
|
||||
g
|
||||
i
|
||||
c
|
||||
c
|
||||
R
|
||||
h
|
||||
s
|
||||
c
|
||||
c
|
||||
b
|
||||
z
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
b
|
||||
a
|
||||
d
|
||||
e
|
||||
e
|
||||
@@ -265,16 +296,16 @@ f
|
||||
d
|
||||
f
|
||||
e
|
||||
N
|
||||
I
|
||||
W
|
||||
d
|
||||
n
|
||||
f
|
||||
t
|
||||
v
|
||||
c
|
||||
b
|
||||
z
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
b
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
@@ -284,17 +315,17 @@ c
|
||||
h
|
||||
j
|
||||
c
|
||||
c
|
||||
A
|
||||
o
|
||||
u
|
||||
c
|
||||
b
|
||||
b
|
||||
z
|
||||
z
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
z
|
||||
z
|
||||
c
|
||||
c
|
||||
c
|
||||
@@ -305,16 +336,16 @@ l
|
||||
o
|
||||
r
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
z
|
||||
z
|
||||
z
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
c
|
||||
c
|
||||
c
|
||||
@@ -323,25 +354,25 @@ h
|
||||
p
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
z
|
||||
z
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -351,15 +382,15 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
},
|
||||
/area/ruin/unpowered)
|
||||
"o" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"p" = (
|
||||
/obj/structure/rack,
|
||||
@@ -220,6 +220,9 @@
|
||||
/obj/item/food/meat/steak/goliath,
|
||||
/turf/open/floor/pod/dark,
|
||||
/area/ruin/powered)
|
||||
"W" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/ruin/powered)
|
||||
"Y" = (
|
||||
/obj/machinery/power/shuttle_engine/propulsion/burst{
|
||||
dir = 8
|
||||
@@ -731,7 +734,7 @@ N
|
||||
N
|
||||
N
|
||||
N
|
||||
N
|
||||
W
|
||||
o
|
||||
q
|
||||
H
|
||||
|
||||
@@ -34,6 +34,9 @@
|
||||
initial_gas_mix = "LAVALAND_ATMOS"
|
||||
},
|
||||
/area/ruin/unpowered/cultaltar)
|
||||
"j" = (
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/template_noop)
|
||||
"k" = (
|
||||
/obj/effect/decal/remains/human,
|
||||
/obj/item/melee/cultblade,
|
||||
@@ -84,6 +87,14 @@
|
||||
"s" = (
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/cultaltar)
|
||||
"z" = (
|
||||
/turf/open/floor/engine/cult{
|
||||
initial_gas_mix = "LAVALAND_ATMOS"
|
||||
},
|
||||
/area/template_noop)
|
||||
"T" = (
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
/area/template_noop)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
@@ -106,16 +117,16 @@ a
|
||||
a
|
||||
d
|
||||
e
|
||||
c
|
||||
s
|
||||
T
|
||||
j
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
c
|
||||
s
|
||||
c
|
||||
s
|
||||
j
|
||||
T
|
||||
j
|
||||
d
|
||||
a
|
||||
"}
|
||||
@@ -133,13 +144,13 @@ c
|
||||
d
|
||||
e
|
||||
f
|
||||
s
|
||||
j
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
c
|
||||
s
|
||||
T
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
@@ -150,12 +161,12 @@ c
|
||||
c
|
||||
c
|
||||
e
|
||||
c
|
||||
T
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
s
|
||||
j
|
||||
d
|
||||
c
|
||||
c
|
||||
@@ -167,12 +178,12 @@ b
|
||||
c
|
||||
c
|
||||
d
|
||||
s
|
||||
j
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
c
|
||||
T
|
||||
c
|
||||
c
|
||||
b
|
||||
@@ -183,12 +194,12 @@ k
|
||||
b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
T
|
||||
T
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
b
|
||||
z
|
||||
b
|
||||
c
|
||||
c
|
||||
@@ -200,12 +211,12 @@ b
|
||||
l
|
||||
b
|
||||
c
|
||||
c
|
||||
T
|
||||
b
|
||||
b
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
c
|
||||
T
|
||||
b
|
||||
g
|
||||
b
|
||||
@@ -219,7 +230,7 @@ b
|
||||
b
|
||||
g
|
||||
b
|
||||
c
|
||||
T
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
b
|
||||
@@ -240,7 +251,7 @@ b
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
c
|
||||
T
|
||||
c
|
||||
c
|
||||
g
|
||||
@@ -252,12 +263,12 @@ b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
T
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
s
|
||||
j
|
||||
d
|
||||
c
|
||||
c
|
||||
@@ -274,7 +285,7 @@ a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
c
|
||||
T
|
||||
s
|
||||
c
|
||||
c
|
||||
@@ -310,15 +321,15 @@ a
|
||||
a
|
||||
d
|
||||
e
|
||||
c
|
||||
T
|
||||
s
|
||||
c
|
||||
T
|
||||
b
|
||||
b
|
||||
b
|
||||
c
|
||||
s
|
||||
c
|
||||
T
|
||||
j
|
||||
T
|
||||
s
|
||||
d
|
||||
a
|
||||
@@ -331,7 +342,7 @@ a
|
||||
a
|
||||
a
|
||||
b
|
||||
c
|
||||
T
|
||||
b
|
||||
a
|
||||
a
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
/turf/open/floor/bronze/filled/lavaland,
|
||||
/area/ruin/unpowered/ratvar)
|
||||
"f" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/area/ruin/unpowered/ratvar)
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/template_noop)
|
||||
"g" = (
|
||||
/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
@@ -123,6 +123,20 @@
|
||||
/obj/item/stack/sheet/bronze/thirty,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/ratvar)
|
||||
"I" = (
|
||||
/obj/structure/fluff/clockwork/alloy_shards/large,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/template_noop)
|
||||
"J" = (
|
||||
/obj/structure/fluff/clockwork/alloy_shards/small,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/template_noop)
|
||||
"K" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/ruin/unpowered/ratvar)
|
||||
"L" = (
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/template_noop)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
@@ -138,10 +152,10 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
b
|
||||
L
|
||||
s
|
||||
h
|
||||
b
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -158,8 +172,8 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
o
|
||||
b
|
||||
I
|
||||
L
|
||||
a
|
||||
h
|
||||
b
|
||||
@@ -184,7 +198,7 @@ a
|
||||
a
|
||||
a
|
||||
f
|
||||
b
|
||||
L
|
||||
l
|
||||
b
|
||||
v
|
||||
@@ -195,8 +209,8 @@ j
|
||||
j
|
||||
c
|
||||
l
|
||||
b
|
||||
b
|
||||
L
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -221,7 +235,7 @@ j
|
||||
j
|
||||
p
|
||||
l
|
||||
b
|
||||
L
|
||||
h
|
||||
c
|
||||
r
|
||||
@@ -303,7 +317,7 @@ l
|
||||
c
|
||||
f
|
||||
f
|
||||
b
|
||||
L
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
@@ -328,7 +342,7 @@ l
|
||||
l
|
||||
l
|
||||
f
|
||||
b
|
||||
L
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -352,10 +366,10 @@ b
|
||||
g
|
||||
l
|
||||
l
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
@@ -407,7 +421,7 @@ l
|
||||
l
|
||||
l
|
||||
l
|
||||
b
|
||||
L
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
@@ -463,9 +477,9 @@ b
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
b
|
||||
b
|
||||
b
|
||||
L
|
||||
L
|
||||
L
|
||||
m
|
||||
l
|
||||
l
|
||||
@@ -486,12 +500,12 @@ l
|
||||
b
|
||||
b
|
||||
h
|
||||
b
|
||||
L
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
b
|
||||
b
|
||||
b
|
||||
L
|
||||
L
|
||||
L
|
||||
l
|
||||
l
|
||||
l
|
||||
@@ -510,8 +524,8 @@ l
|
||||
l
|
||||
l
|
||||
l
|
||||
b
|
||||
b
|
||||
L
|
||||
L
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
@@ -541,9 +555,9 @@ f
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
b
|
||||
b
|
||||
b
|
||||
L
|
||||
L
|
||||
L
|
||||
l
|
||||
l
|
||||
l
|
||||
@@ -563,7 +577,7 @@ l
|
||||
r
|
||||
l
|
||||
l
|
||||
b
|
||||
L
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
@@ -590,7 +604,7 @@ h
|
||||
b
|
||||
b
|
||||
m
|
||||
b
|
||||
L
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
b
|
||||
@@ -616,7 +630,7 @@ h
|
||||
r
|
||||
h
|
||||
b
|
||||
b
|
||||
L
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
b
|
||||
@@ -716,8 +730,8 @@ b
|
||||
l
|
||||
l
|
||||
l
|
||||
b
|
||||
b
|
||||
L
|
||||
L
|
||||
w
|
||||
r
|
||||
b
|
||||
@@ -725,8 +739,8 @@ b
|
||||
(24,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
L
|
||||
L
|
||||
l
|
||||
l
|
||||
l
|
||||
@@ -742,7 +756,7 @@ j
|
||||
j
|
||||
l
|
||||
l
|
||||
c
|
||||
J
|
||||
l
|
||||
l
|
||||
b
|
||||
@@ -751,7 +765,7 @@ a
|
||||
(25,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
L
|
||||
l
|
||||
l
|
||||
l
|
||||
@@ -777,7 +791,7 @@ a
|
||||
(26,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
L
|
||||
c
|
||||
b
|
||||
l
|
||||
@@ -795,7 +809,7 @@ l
|
||||
l
|
||||
c
|
||||
m
|
||||
b
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -859,7 +873,7 @@ a
|
||||
a
|
||||
b
|
||||
b
|
||||
f
|
||||
K
|
||||
c
|
||||
b
|
||||
l
|
||||
@@ -871,7 +885,7 @@ l
|
||||
c
|
||||
o
|
||||
l
|
||||
b
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -895,7 +909,7 @@ l
|
||||
b
|
||||
l
|
||||
f
|
||||
b
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"ab" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface)
|
||||
"ac" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
@@ -319,6 +319,9 @@
|
||||
/obj/effect/decal/cleanable/blood/old,
|
||||
/turf/open/misc/asteroid/basalt/wasteland,
|
||||
/area/ruin/unpowered/elephant_graveyard)
|
||||
"wT" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/ruin/unpowered/elephant_graveyard)
|
||||
"xr" = (
|
||||
/obj/effect/decal/cleanable/vomit,
|
||||
/obj/item/shovel,
|
||||
@@ -686,12 +689,12 @@ at
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
bf
|
||||
ac
|
||||
wT
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
@@ -722,15 +725,15 @@ bf
|
||||
bf
|
||||
bf
|
||||
bf
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
bf
|
||||
bf
|
||||
bf
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
@@ -760,7 +763,7 @@ Oa
|
||||
bf
|
||||
bf
|
||||
bf
|
||||
ac
|
||||
wT
|
||||
bf
|
||||
bf
|
||||
bf
|
||||
@@ -768,8 +771,8 @@ bf
|
||||
bf
|
||||
bf
|
||||
bf
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
ab
|
||||
ab
|
||||
aa
|
||||
@@ -805,9 +808,9 @@ bJ
|
||||
bf
|
||||
bf
|
||||
bf
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
@@ -843,10 +846,10 @@ WF
|
||||
LR
|
||||
gB
|
||||
gB
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
@@ -880,12 +883,12 @@ bf
|
||||
bf
|
||||
bf
|
||||
gB
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
ab
|
||||
ab
|
||||
aa
|
||||
@@ -917,13 +920,13 @@ gB
|
||||
gB
|
||||
bf
|
||||
gB
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
ab
|
||||
ab
|
||||
aa
|
||||
@@ -955,14 +958,14 @@ tf
|
||||
bf
|
||||
gB
|
||||
gB
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
aa
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
@@ -993,14 +996,14 @@ bf
|
||||
bf
|
||||
gB
|
||||
gB
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
MF
|
||||
yy
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
at
|
||||
@@ -1030,14 +1033,14 @@ vk
|
||||
bf
|
||||
bf
|
||||
dr
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
ei
|
||||
gB
|
||||
gB
|
||||
ac
|
||||
wT
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
at
|
||||
@@ -1067,14 +1070,14 @@ gB
|
||||
bf
|
||||
bf
|
||||
Ks
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
Bu
|
||||
ac
|
||||
wT
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
bf
|
||||
@@ -1104,14 +1107,14 @@ gB
|
||||
bf
|
||||
bf
|
||||
gB
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
gB
|
||||
ac
|
||||
wT
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
bf
|
||||
@@ -1142,13 +1145,13 @@ bf
|
||||
Xe
|
||||
dr
|
||||
gB
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
gB
|
||||
ac
|
||||
wT
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
bf
|
||||
@@ -1176,16 +1179,16 @@ gB
|
||||
gB
|
||||
Br
|
||||
bf
|
||||
ac
|
||||
wT
|
||||
gB
|
||||
gB
|
||||
dr
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
Bu
|
||||
ac
|
||||
wT
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
bf
|
||||
@@ -1213,14 +1216,14 @@ gB
|
||||
gB
|
||||
Br
|
||||
bf
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
gB
|
||||
gB
|
||||
dr
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
dr
|
||||
iE
|
||||
"}
|
||||
@@ -1251,13 +1254,13 @@ Xe
|
||||
Br
|
||||
bf
|
||||
bf
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
gB
|
||||
Bu
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
NO
|
||||
Ql
|
||||
"}
|
||||
@@ -1288,9 +1291,9 @@ gB
|
||||
Br
|
||||
Yq
|
||||
bf
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
gB
|
||||
dr
|
||||
dr
|
||||
@@ -1325,15 +1328,15 @@ Br
|
||||
AT
|
||||
bf
|
||||
bf
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
NO
|
||||
dr
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
aa
|
||||
@@ -1361,23 +1364,23 @@ bf
|
||||
bf
|
||||
bf
|
||||
bf
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
ab
|
||||
ac
|
||||
ac
|
||||
bf
|
||||
bf
|
||||
bf
|
||||
UK
|
||||
dr
|
||||
@@ -1396,16 +1399,16 @@ bf
|
||||
bf
|
||||
bf
|
||||
bf
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
ab
|
||||
ab
|
||||
"}
|
||||
@@ -1414,7 +1417,7 @@ aa
|
||||
aa
|
||||
ab
|
||||
ab
|
||||
ac
|
||||
bf
|
||||
bf
|
||||
UK
|
||||
gB
|
||||
@@ -1429,14 +1432,14 @@ bf
|
||||
bf
|
||||
bf
|
||||
bf
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
wT
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"b" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"c" = (
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
/turf/open/misc/grass/lavaland,
|
||||
/area/ruin/unpowered/gaia)
|
||||
"w" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/ruin/unpowered/gaia)
|
||||
"x" = (
|
||||
/obj/structure/flora/bush/sunny/style_random,
|
||||
|
||||
@@ -495,7 +495,7 @@
|
||||
/turf/open/indestructible/necropolis,
|
||||
/area/ruin/powered/gluttony)
|
||||
"WR" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"XY" = (
|
||||
/obj/effect/decal/cleanable/blood/footprints,
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"b" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"c" = (
|
||||
/turf/open/lava/smooth/lava_land_surface,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"b" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
@@ -185,6 +185,9 @@
|
||||
name = "dirt"
|
||||
},
|
||||
/area/ruin/powered)
|
||||
"T" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/ruin/powered)
|
||||
|
||||
(1,1,1) = {"
|
||||
P
|
||||
@@ -264,7 +267,7 @@ P
|
||||
a
|
||||
a
|
||||
a
|
||||
b
|
||||
T
|
||||
c
|
||||
b
|
||||
t
|
||||
@@ -281,8 +284,8 @@ P
|
||||
a
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
T
|
||||
T
|
||||
L
|
||||
n
|
||||
t
|
||||
@@ -299,7 +302,7 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
b
|
||||
T
|
||||
m
|
||||
o
|
||||
o
|
||||
@@ -314,9 +317,9 @@ s
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
T
|
||||
T
|
||||
T
|
||||
c
|
||||
f
|
||||
o
|
||||
@@ -332,7 +335,7 @@ s
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
b
|
||||
T
|
||||
f
|
||||
i
|
||||
g
|
||||
@@ -350,7 +353,7 @@ s
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
b
|
||||
T
|
||||
S
|
||||
j
|
||||
g
|
||||
@@ -360,7 +363,7 @@ f
|
||||
u
|
||||
o
|
||||
A
|
||||
b
|
||||
T
|
||||
P
|
||||
s
|
||||
s
|
||||
@@ -378,7 +381,7 @@ r
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
T
|
||||
P
|
||||
P
|
||||
s
|
||||
@@ -386,14 +389,14 @@ s
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
T
|
||||
T
|
||||
k
|
||||
M
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
T
|
||||
T
|
||||
T
|
||||
T
|
||||
a
|
||||
a
|
||||
P
|
||||
@@ -405,10 +408,10 @@ E
|
||||
(13,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
T
|
||||
T
|
||||
T
|
||||
T
|
||||
a
|
||||
a
|
||||
a
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"b" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"c" = (
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ab" = (
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
@@ -525,9 +525,6 @@
|
||||
/obj/machinery/hydroponics/constructable/fullupgrade,
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/ruin/powered/seedvault)
|
||||
"bD" = (
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"ca" = (
|
||||
/obj/machinery/atmospherics/components/tank/air{
|
||||
dir = 4
|
||||
@@ -542,7 +539,7 @@
|
||||
/area/ruin/powered/seedvault)
|
||||
"eq" = (
|
||||
/obj/effect/baseturf_helper/lava_land/surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"hf" = (
|
||||
/obj/structure/sink/directional/east,
|
||||
@@ -817,7 +814,7 @@ bc
|
||||
rF
|
||||
ac
|
||||
ac
|
||||
bD
|
||||
ac
|
||||
aa
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
|
||||
@@ -49,9 +49,6 @@
|
||||
initial_gas_mix = "LAVALAND_ATMOS"
|
||||
},
|
||||
/area/ruin/unpowered)
|
||||
"gP" = (
|
||||
/turf/closed/mineral/titanium/volcanic,
|
||||
/area/ruin/unpowered)
|
||||
"hT" = (
|
||||
/turf/closed/wall/mineral/titanium{
|
||||
initial_gas_mix = "LAVALAND_ATMOS"
|
||||
@@ -131,9 +128,6 @@
|
||||
/obj/item/shard/titanium,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered)
|
||||
"sZ" = (
|
||||
/turf/closed/mineral/random/volcanic,
|
||||
/area/ruin/unpowered)
|
||||
"tp" = (
|
||||
/obj/item/stack/sheet/iron,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
@@ -152,9 +146,6 @@
|
||||
initial_gas_mix = "LAVALAND_ATMOS"
|
||||
},
|
||||
/area/ruin/unpowered)
|
||||
"uh" = (
|
||||
/turf/closed/mineral/random/volcanic,
|
||||
/area/lavaland/surface)
|
||||
"uH" = (
|
||||
/obj/effect/spawner/random/structure/crate,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
@@ -170,7 +161,7 @@
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered)
|
||||
"yZ" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/ruin/unpowered)
|
||||
"zk" = (
|
||||
/obj/effect/spawner/random/structure/crate,
|
||||
@@ -240,7 +231,7 @@
|
||||
/turf/open/floor/plating/lavaland_atmos,
|
||||
/area/ruin/unpowered)
|
||||
"FL" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface)
|
||||
"FR" = (
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
@@ -271,9 +262,6 @@
|
||||
/obj/effect/decal/cleanable/dirt/dust,
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered)
|
||||
"GZ" = (
|
||||
/turf/closed/mineral/titanium/volcanic,
|
||||
/area/lavaland/surface)
|
||||
"Hy" = (
|
||||
/obj/machinery/computer/communications{
|
||||
dir = 8
|
||||
@@ -414,9 +402,7 @@
|
||||
/obj/item/stack/sheet/mineral/titanium/fifty{
|
||||
amount = 4
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/yellow{
|
||||
initial_gas_mix = "LAVALAND_ATMOS"
|
||||
},
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/ruin/unpowered)
|
||||
"XZ" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
@@ -446,8 +432,8 @@ SV
|
||||
SV
|
||||
SV
|
||||
SV
|
||||
GZ
|
||||
GZ
|
||||
FL
|
||||
FL
|
||||
Fq
|
||||
Fq
|
||||
Fq
|
||||
@@ -467,8 +453,8 @@ SV
|
||||
SV
|
||||
SV
|
||||
FL
|
||||
GZ
|
||||
gP
|
||||
FL
|
||||
yZ
|
||||
yZ
|
||||
fy
|
||||
iU
|
||||
@@ -485,8 +471,8 @@ SV
|
||||
(3,1,1) = {"
|
||||
SV
|
||||
SV
|
||||
uh
|
||||
uh
|
||||
FL
|
||||
FL
|
||||
yZ
|
||||
hT
|
||||
hT
|
||||
@@ -506,8 +492,8 @@ SV
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
SV
|
||||
uh
|
||||
sZ
|
||||
FL
|
||||
yZ
|
||||
hT
|
||||
ky
|
||||
HM
|
||||
@@ -655,13 +641,13 @@ yZ
|
||||
CX
|
||||
yZ
|
||||
yZ
|
||||
uh
|
||||
FL
|
||||
FL
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
Fq
|
||||
GZ
|
||||
gP
|
||||
FL
|
||||
yZ
|
||||
bw
|
||||
Tt
|
||||
JD
|
||||
@@ -676,15 +662,15 @@ DZ
|
||||
XU
|
||||
FI
|
||||
Ga
|
||||
uh
|
||||
uh
|
||||
FL
|
||||
FL
|
||||
FL
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
SV
|
||||
GZ
|
||||
gP
|
||||
gP
|
||||
FL
|
||||
yZ
|
||||
yZ
|
||||
VN
|
||||
Ee
|
||||
Hy
|
||||
@@ -698,14 +684,14 @@ oE
|
||||
yZ
|
||||
yZ
|
||||
FL
|
||||
uh
|
||||
uh
|
||||
FL
|
||||
FL
|
||||
SV
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
SV
|
||||
GZ
|
||||
gP
|
||||
FL
|
||||
yZ
|
||||
Lz
|
||||
py
|
||||
hT
|
||||
@@ -726,7 +712,7 @@ SV
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
SV
|
||||
GZ
|
||||
FL
|
||||
Fq
|
||||
Lz
|
||||
lu
|
||||
@@ -737,7 +723,7 @@ JN
|
||||
Dy
|
||||
On
|
||||
Om
|
||||
GZ
|
||||
FL
|
||||
FL
|
||||
FL
|
||||
SV
|
||||
@@ -758,8 +744,8 @@ XT
|
||||
yZ
|
||||
St
|
||||
St
|
||||
gP
|
||||
GZ
|
||||
yZ
|
||||
FL
|
||||
SV
|
||||
SV
|
||||
SV
|
||||
@@ -779,8 +765,8 @@ py
|
||||
St
|
||||
yZ
|
||||
FL
|
||||
GZ
|
||||
GZ
|
||||
FL
|
||||
FL
|
||||
SV
|
||||
SV
|
||||
SV
|
||||
@@ -840,9 +826,9 @@ SV
|
||||
SV
|
||||
FL
|
||||
FL
|
||||
uh
|
||||
uh
|
||||
uh
|
||||
FL
|
||||
FL
|
||||
FL
|
||||
FL
|
||||
FL
|
||||
SV
|
||||
@@ -863,8 +849,8 @@ SV
|
||||
SV
|
||||
SV
|
||||
FL
|
||||
uh
|
||||
uh
|
||||
FL
|
||||
FL
|
||||
FL
|
||||
SV
|
||||
SV
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"b" = (
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
/area/lavaland/surface/outdoors)
|
||||
@@ -11,6 +11,9 @@
|
||||
"d" = (
|
||||
/turf/closed/wall/mineral/abductor,
|
||||
/area/ruin/unpowered)
|
||||
"g" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"j" = (
|
||||
/obj/machinery/abductor/experiment{
|
||||
team_number = 100
|
||||
@@ -105,9 +108,9 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
g
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -115,53 +118,53 @@ a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
g
|
||||
g
|
||||
g
|
||||
g
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
g
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
g
|
||||
g
|
||||
g
|
||||
g
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
a
|
||||
g
|
||||
c
|
||||
d
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
g
|
||||
g
|
||||
g
|
||||
g
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
a
|
||||
g
|
||||
d
|
||||
j
|
||||
k
|
||||
k
|
||||
a
|
||||
g
|
||||
y
|
||||
d
|
||||
a
|
||||
g
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
a
|
||||
g
|
||||
d
|
||||
k
|
||||
o
|
||||
@@ -169,11 +172,11 @@ s
|
||||
v
|
||||
z
|
||||
d
|
||||
a
|
||||
g
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
d
|
||||
l
|
||||
p
|
||||
@@ -181,11 +184,11 @@ k
|
||||
w
|
||||
A
|
||||
d
|
||||
a
|
||||
g
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
c
|
||||
d
|
||||
q
|
||||
@@ -193,11 +196,11 @@ t
|
||||
q
|
||||
d
|
||||
c
|
||||
a
|
||||
g
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
b
|
||||
c
|
||||
d
|
||||
@@ -205,67 +208,67 @@ d
|
||||
d
|
||||
c
|
||||
b
|
||||
a
|
||||
g
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
a
|
||||
g
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
a
|
||||
g
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
g
|
||||
g
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
a
|
||||
g
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
b
|
||||
g
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
@@ -276,7 +279,7 @@ b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
g
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
@@ -288,7 +291,7 @@ b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
g
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
@@ -300,13 +303,13 @@ b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
g
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
@@ -336,7 +339,7 @@ b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
b
|
||||
a
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"b" = (
|
||||
/obj/structure/stone_tile/surrounding_tile,
|
||||
@@ -35,9 +35,6 @@
|
||||
/obj/effect/mapping_helpers/bombable_wall,
|
||||
/turf/closed/indestructible/riveted/boss/wasteland,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"l" = (
|
||||
/turf/closed/mineral/gibtonite/volcanic,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"m" = (
|
||||
/turf/open/chasm/lavaland,
|
||||
/area/lavaland/surface/outdoors)
|
||||
@@ -152,7 +149,7 @@ I
|
||||
I
|
||||
I
|
||||
I
|
||||
l
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -225,7 +222,7 @@ I
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
I
|
||||
l
|
||||
a
|
||||
a
|
||||
R
|
||||
y
|
||||
@@ -265,7 +262,7 @@ h
|
||||
c
|
||||
R
|
||||
a
|
||||
l
|
||||
a
|
||||
I
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"b" = (
|
||||
/turf/open/misc/asteroid/basalt/lava_land_surface,
|
||||
@@ -10,7 +10,7 @@
|
||||
/area/template_noop)
|
||||
"d" = (
|
||||
/obj/structure/stone_tile/slab,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"e" = (
|
||||
/obj/structure/stone_tile,
|
||||
@@ -302,7 +302,7 @@
|
||||
/area/lavaland/surface/outdoors)
|
||||
"I" = (
|
||||
/obj/structure/stone_tile/slab/cracked,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface,
|
||||
/turf/closed/mineral/volcanic/lava_land_surface/biome_replace,
|
||||
/area/lavaland/surface/outdoors)
|
||||
"J" = (
|
||||
/obj/structure/fluff/divine/convertaltar,
|
||||
|
||||
@@ -128,19 +128,22 @@ DEFINE_BITFIELD(smoothing_junction, list(
|
||||
#define SMOOTH_GROUP_CARPET_SIMPLE_NEON_VIOLET_NODOTS S_TURF(50) //![turf/open/floor/carpet/neon/simple/violet/nodots]
|
||||
#define SMOOTH_GROUP_CARPET_SIMPLE_NEON_PINK_NODOTS S_TURF(51) //![turf/open/floor/carpet/neon/simple/pink/nodots]
|
||||
#define SMOOTH_GROUP_BAMBOO_FLOOR S_TURF(52) //![/turf/open/floor/bamboo]
|
||||
#define SMOOTH_GROUP_FLOOR_WATER_LAVALAND S_TURF(53) //![/turf/open/water/lavaland_atmos/basalt]
|
||||
|
||||
#define SMOOTH_GROUP_CLOSED_TURFS S_TURF(53) ///turf/closed
|
||||
#define SMOOTH_GROUP_MATERIAL_WALLS S_TURF(54) ///turf/closed/wall/material
|
||||
#define SMOOTH_GROUP_SYNDICATE_WALLS S_TURF(55) ///turf/closed/wall/r_wall/plastitanium/syndicate, /turf/closed/indestructible/syndicate
|
||||
#define SMOOTH_GROUP_HOTEL_WALLS S_TURF(56) ///turf/closed/indestructible/hotelwall
|
||||
#define SMOOTH_GROUP_MINERAL_WALLS S_TURF(57) ///turf/closed/mineral, /turf/closed/indestructible
|
||||
#define SMOOTH_GROUP_BOSS_WALLS S_TURF(58) ///turf/closed/indestructible/riveted/boss
|
||||
#define SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS S_TURF(59) ///turf/closed/wall/mineral/titanium/survival
|
||||
#define SMOOTH_GROUP_TURF_OPEN_CLIFF S_TURF(60) ///turf/open/cliff
|
||||
#define SMOOTH_GROUP_HIEROPHANT S_TURF(61) ///turf/closed/indestructible/riveted/hierophant
|
||||
#define SMOOTH_GROUP_PLASTINUM_WALLS S_TURF(62) ///turf/closed/indestructible/riveted/plastinum
|
||||
#define SMOOTH_GROUP_CLOSED_TURFS S_TURF(54) ///turf/closed
|
||||
#define SMOOTH_GROUP_MATERIAL_WALLS S_TURF(55) ///turf/closed/wall/material
|
||||
#define SMOOTH_GROUP_SYNDICATE_WALLS S_TURF(56) ///turf/closed/wall/r_wall/plastitanium/syndicate, /turf/closed/indestructible/syndicate
|
||||
#define SMOOTH_GROUP_HOTEL_WALLS S_TURF(57) ///turf/closed/indestructible/hotelwall
|
||||
#define SMOOTH_GROUP_MINERAL_WALLS S_TURF(58) ///turf/closed/mineral, /turf/closed/indestructible
|
||||
#define SMOOTH_GROUP_RED_ROCK_WALLS S_TURF(59) ///turf/closed/mineral/asteroid, /turf/closed/mineral/random/stationside/asteroid
|
||||
#define SMOOTH_GROUP_SHALE_WALLS S_TURF(60) ///turf/closed/mineral/random/volcanic/shale
|
||||
#define SMOOTH_GROUP_BOSS_WALLS S_TURF(61) ///turf/closed/indestructible/riveted/boss
|
||||
#define SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS S_TURF(62) ///turf/closed/wall/mineral/titanium/survival
|
||||
#define SMOOTH_GROUP_TURF_OPEN_CLIFF S_TURF(63) ///turf/open/cliff
|
||||
#define SMOOTH_GROUP_HIEROPHANT S_TURF(64) ///turf/closed/indestructible/riveted/hierophant
|
||||
#define SMOOTH_GROUP_PLASTINUM_WALLS S_TURF(65) ///turf/closed/indestructible/riveted/plastinum
|
||||
|
||||
#define MAX_S_TURF 62 //Always match this value with the one above it.
|
||||
#define MAX_S_TURF 65 //Always match this value with the one above it.
|
||||
|
||||
#define S_OBJ(num) ("-" + #num + ",")
|
||||
/* /obj included */
|
||||
|
||||
@@ -255,6 +255,7 @@
|
||||
#define ABOVE_MOB_LAYER 4.1
|
||||
#define WALL_OBJ_LAYER 4.25
|
||||
#define TRAM_SIGNAL_LAYER 4.26
|
||||
#define EDGED_TURF_LOWER_LAYER 4.28
|
||||
#define EDGED_TURF_LAYER 4.3
|
||||
#define ON_EDGED_TURF_LAYER 4.35
|
||||
#define SPACEVINE_LAYER 4.4
|
||||
|
||||
@@ -34,39 +34,6 @@
|
||||
/// Duration for wave defense for a large vent.
|
||||
#define WAVE_DURATION_LARGE 150 SECONDS
|
||||
|
||||
/// Proximity to a vent that a wall ore needs to be for 5 ore to be mined.
|
||||
#define VENT_PROX_VERY_HIGH 3
|
||||
/// Proximity to a vent that a wall ore needs to be for 4 ore to be mined.
|
||||
#define VENT_PROX_HIGH 6
|
||||
/// Proximity to a vent that a wall ore needs to be for 3 ore to be mined.
|
||||
#define VENT_PROX_MEDIUM 15
|
||||
/// Proximity to a vent that a wall ore needs to be for 2 ore to be mined.
|
||||
#define VENT_PROX_LOW 32
|
||||
/// Proximity to a vent that a wall ore needs to be for 1 ore to be mined.
|
||||
#define VENT_PROX_FAR 64
|
||||
|
||||
/// The chance of ore spawning in a wall that is VENT_PROX_VERY_HIGH tiles to a vent.
|
||||
#define VENT_CHANCE_VERY_HIGH 75
|
||||
/// The chance of ore spawning in a wall that is VENT_PROX_HIGH tiles to a vent.
|
||||
#define VENT_CHANCE_HIGH 18
|
||||
/// The chance of ore spawning in a wall that is VENT_PROX_MEDIUM tiles to a vent.
|
||||
#define VENT_CHANCE_MEDIUM 9
|
||||
/// The chance of ore spawning in a wall that is VENT_PROX_LOW tiles to a vent.
|
||||
#define VENT_CHANCE_LOW 5
|
||||
/// The chance of ore spawning in a wall that is VENT_PROX_FAR tiles to a vent.
|
||||
#define VENT_CHANCE_FAR 1
|
||||
|
||||
/// The amount of ore that is mined from a wall that is VENT_PROX_VERY_HIGH tiles to a vent.
|
||||
#define ORE_WALL_VERY_HIGH 5
|
||||
/// The amount of ore that is mined from a wall that is VENT_PROX_HIGH tiles to a vent.
|
||||
#define ORE_WALL_HIGH 4
|
||||
/// The amount of ore that is mined from a wall that is VENT_PROX_MEDIUM tiles to a vent.
|
||||
#define ORE_WALL_MEDIUM 3
|
||||
/// The amount of ore that is mined from a wall that is VENT_PROX_LOW tiles to a vent.
|
||||
#define ORE_WALL_LOW 2
|
||||
/// The amount of ore that is mined from a wall that is VENT_PROX_FAR tiles to a vent.
|
||||
#define ORE_WALL_FAR 1
|
||||
|
||||
/// Lifetime of a boulder platform in seconds when spawned in lava/plasma.
|
||||
#define PLATFORM_LIFE_DEFAULT 10 SECONDS
|
||||
|
||||
@@ -78,8 +45,21 @@
|
||||
/// The number of points a miner gets for discovering a vent, multiplied by BOULDER_SIZE when completing a wave defense minus the discovery bonus.
|
||||
#define MINER_POINT_MULTIPLIER 100
|
||||
/// The multiplier that gets applied for automatically generated mining points.
|
||||
#define MINING_POINT_MACHINE_MULTIPLIER 0.8
|
||||
#define MINING_POINT_MACHINE_MULTIPLIER 0.5
|
||||
|
||||
//String defines to use with CaveGenerator presets for what ore breakdown to use.
|
||||
// String defines to use with CaveGenerator presets for what ore breakdown to use.
|
||||
#define OREGEN_PRESET_LAVALAND "lavaland"
|
||||
#define OREGEN_PRESET_TRIPLE_Z "triple_z"
|
||||
|
||||
// Ore vein types
|
||||
/// Round ore cluster
|
||||
#define ORE_VEIN_CLUSTER "cluster"
|
||||
/// Randomly scattered ore
|
||||
#define ORE_VEIN_SCATTER "scatter"
|
||||
/// A straight or slightly bent uneven line
|
||||
#define ORE_VEIN_PLAIN "plain"
|
||||
/// A branching tree-like vein
|
||||
#define ORE_VEIN_BRANCH "branch"
|
||||
|
||||
/// Maximum precision for ore spawn probabilities
|
||||
#define ORE_CHANCE_PRECISION 5
|
||||
|
||||
@@ -145,7 +145,9 @@ GLOBAL_LIST_EMPTY(deathsquadspawn)
|
||||
GLOBAL_LIST_EMPTY(emergencyresponseteamspawn)
|
||||
GLOBAL_LIST_EMPTY(ruin_landmarks)
|
||||
GLOBAL_LIST_EMPTY(bar_areas)
|
||||
GLOBAL_LIST_EMPTY(river_waypoint_list) // Assoc list of river waypoint markers by z-level
|
||||
GLOBAL_LIST_EMPTY(mining_center) // For determining vent size ranked lists, epicenters for comparison goes here.
|
||||
GLOBAL_LIST_EMPTY(map_generators_by_z) // Assoc list of shared generators by z by type
|
||||
|
||||
/// List of all the maps that have been cached for /proc/load_map
|
||||
GLOBAL_LIST_EMPTY(cached_maps)
|
||||
@@ -170,22 +172,6 @@ GLOBAL_LIST_INIT(megafauna_spawn_list, list(
|
||||
/mob/living/simple_animal/hostile/megafauna/dragon = 4,
|
||||
))
|
||||
|
||||
/// List of how many minerals spawned based on proximity to an ore vent.
|
||||
GLOBAL_LIST_INIT(post_ore_random, list(
|
||||
"[ORE_WALL_FAR]" = 0,
|
||||
"[ORE_WALL_LOW]" = 0,
|
||||
"[ORE_WALL_MEDIUM]" = 0,
|
||||
"[ORE_WALL_HIGH]" = 0,
|
||||
"[ORE_WALL_VERY_HIGH]" = 0,
|
||||
))
|
||||
/// List of how many minerals spawned randomly off of mining Z-levels, and at what quantity.
|
||||
GLOBAL_LIST_INIT(post_ore_manual, list(
|
||||
"[ORE_WALL_FAR]" = 0,
|
||||
"[ORE_WALL_LOW]" = 0,
|
||||
"[ORE_WALL_MEDIUM]" = 0,
|
||||
"[ORE_WALL_HIGH]" = 0,
|
||||
"[ORE_WALL_VERY_HIGH]" = 0,
|
||||
))
|
||||
/// List of how many ore vents spawned, and of what size.
|
||||
GLOBAL_LIST_INIT(ore_vent_sizes, list(
|
||||
LARGE_VENT_TYPE = 0,
|
||||
|
||||
@@ -156,8 +156,8 @@ SUBSYSTEM_DEF(mapping)
|
||||
loading_ruins = TRUE
|
||||
setup_ruins()
|
||||
loading_ruins = FALSE
|
||||
|
||||
#endif
|
||||
|
||||
// Run map generation after ruin generation to prevent issues
|
||||
run_map_terrain_generation()
|
||||
// Generate our rivers, we do this here so the map doesn't load on top of them
|
||||
@@ -279,7 +279,7 @@ SUBSYSTEM_DEF(mapping)
|
||||
// Generate mining ruins
|
||||
var/list/lava_ruins = levels_by_trait(ZTRAIT_LAVA_RUINS)
|
||||
for (var/lava_z in lava_ruins)
|
||||
spawn_rivers(lava_z, 4, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors/unexplored)
|
||||
spawn_rivers(lava_z, 3, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors/unexplored) // +1 from the mapped in waypoint
|
||||
|
||||
var/list/ice_ruins = levels_by_trait(ZTRAIT_ICE_RUINS)
|
||||
for (var/ice_z in ice_ruins)
|
||||
|
||||
@@ -20,6 +20,12 @@ SUBSYSTEM_DEF(ore_generation)
|
||||
* If we call cave_generation more than once, we copy a list from the lists in lists/ores_spawned.dm
|
||||
*/
|
||||
var/list/ore_vent_minerals = list()
|
||||
/// List of ore turfs that want to be randomized
|
||||
var/list/turf/closed/mineral/random/ore_turfs = list()
|
||||
/// Amount of ores by type generated
|
||||
var/list/ores_generated = list()
|
||||
/// Probabilities by type and depth to generate ores
|
||||
var/list/list/list/ore_spread_probabilities = list()
|
||||
|
||||
/datum/controller/subsystem/ore_generation/Initialize()
|
||||
/// First, lets sort each ore_vent here based on their distance to the landmark, then we'll assign sizes.
|
||||
@@ -64,30 +70,6 @@ SUBSYSTEM_DEF(ore_generation)
|
||||
continue //Ya'll already got your minerals.
|
||||
vent.generate_mineral_breakdown(map_loading = TRUE)
|
||||
|
||||
|
||||
/// Handles roundstart logging
|
||||
logger.Log(
|
||||
LOG_CATEGORY_CAVE_GENERATION,
|
||||
"Ore Generation spawned the following ores based on vent proximity",
|
||||
list(
|
||||
"[ORE_WALL_FAR]" = GLOB.post_ore_random["[ORE_WALL_FAR]"],
|
||||
"[ORE_WALL_LOW]" = GLOB.post_ore_random["[ORE_WALL_LOW]"],
|
||||
"[ORE_WALL_MEDIUM]" = GLOB.post_ore_random["[ORE_WALL_MEDIUM]"],
|
||||
"[ORE_WALL_HIGH]" = GLOB.post_ore_random["[ORE_WALL_HIGH]"],
|
||||
"[ORE_WALL_VERY_HIGH]" = GLOB.post_ore_random["[ORE_WALL_VERY_HIGH]"],
|
||||
),
|
||||
)
|
||||
logger.Log(
|
||||
LOG_CATEGORY_CAVE_GENERATION,
|
||||
"Ore Generation spawned the following ores randomly",
|
||||
list(
|
||||
"[ORE_WALL_FAR]" = GLOB.post_ore_manual["[ORE_WALL_FAR]"],
|
||||
"[ORE_WALL_LOW]" = GLOB.post_ore_manual["[ORE_WALL_LOW]"],
|
||||
"[ORE_WALL_MEDIUM]" = GLOB.post_ore_manual["[ORE_WALL_MEDIUM]"],
|
||||
"[ORE_WALL_HIGH]" = GLOB.post_ore_manual["[ORE_WALL_HIGH]"],
|
||||
"[ORE_WALL_VERY_HIGH]" = GLOB.post_ore_manual["[ORE_WALL_VERY_HIGH]"],
|
||||
),
|
||||
)
|
||||
logger.Log(
|
||||
LOG_CATEGORY_CAVE_GENERATION,
|
||||
"Ore Generation spawned the following vent sizes",
|
||||
@@ -97,8 +79,68 @@ SUBSYSTEM_DEF(ore_generation)
|
||||
"small" = LAZYACCESS(GLOB.ore_vent_sizes, SMALL_VENT_TYPE),
|
||||
),
|
||||
)
|
||||
|
||||
calculate_rock_edges()
|
||||
for (var/turf/closed/mineral/random/rock in ore_turfs) // Typecheck in case they got destroyed
|
||||
rock.randomize_ore()
|
||||
|
||||
calculate_ore_spread()
|
||||
|
||||
return SS_INIT_SUCCESS
|
||||
|
||||
/// Generates debug data about ore spread among rock turfs
|
||||
/datum/controller/subsystem/ore_generation/proc/calculate_ore_spread()
|
||||
var/list/result = list()
|
||||
var/list/totals = list("chance" = 0, "raw_sum" = 0)
|
||||
var/summary_count = 0
|
||||
for (var/turf/closed/mineral/random/rock_type as anything in ore_spread_probabilities)
|
||||
var/list/rock_data = ore_spread_probabilities[rock_type]
|
||||
var/list/result_rock = list()
|
||||
var/total_count = 0
|
||||
var/total_chance = 0
|
||||
for (var/spread_range in rock_data)
|
||||
var/list/dist_info = rock_data[spread_range]
|
||||
for (var/ore_type in dist_info - list("chance", "count"))
|
||||
if (!result_rock[ore_type])
|
||||
result_rock[ore_type] = 0
|
||||
result_rock[ore_type] += dist_info[ore_type] * dist_info["chance"] / initial(rock_type.mineral_chance) * dist_info["count"]
|
||||
total_count += dist_info["count"]
|
||||
total_chance += dist_info["chance"] * dist_info["count"]
|
||||
|
||||
result_rock["chance"] = total_chance / total_count
|
||||
result_rock["count"] = total_count
|
||||
totals["chance"] += total_chance
|
||||
summary_count += total_count
|
||||
result[rock_type] = result_rock
|
||||
|
||||
for (var/turf/closed/mineral/random/rock_type as anything in result)
|
||||
var/list/rock_data = result[rock_type]
|
||||
var/raw_sum = 0
|
||||
for (var/ore_type in rock_data)
|
||||
if (!ispath(ore_type))
|
||||
continue
|
||||
rock_data[ore_type] /= summary_count
|
||||
raw_sum += rock_data[ore_type]
|
||||
if (!totals[ore_type])
|
||||
totals[ore_type] = 0
|
||||
if (ispath(ore_type, /turf/closed/mineral/gibtonite/volcanic))
|
||||
totals[/turf/closed/mineral/gibtonite/volcanic] += rock_data[ore_type]
|
||||
else
|
||||
totals[ore_type] += rock_data[ore_type]
|
||||
rock_data["raw_sum"] = raw_sum
|
||||
totals["raw_sum"] += raw_sum
|
||||
|
||||
for (var/spawn_type in totals)
|
||||
if (!ispath(spawn_type))
|
||||
continue
|
||||
totals[spawn_type] /= totals["raw_sum"] / 104
|
||||
|
||||
totals["count"] = summary_count
|
||||
if (summary_count > 0)
|
||||
totals["chance"] /= summary_count
|
||||
result["total"] = totals
|
||||
ore_spread_probabilities = result
|
||||
|
||||
/datum/controller/subsystem/ore_generation/fire(resumed)
|
||||
available_boulders.Cut() // reset upon new fire.
|
||||
for(var/obj/structure/ore_vent/current_vent as anything in processed_vents)
|
||||
|
||||
@@ -372,10 +372,10 @@
|
||||
add_action(ACTION_GIBTONITE_BOOM, 50)
|
||||
return
|
||||
|
||||
if(rock.mineralType)
|
||||
if(rock.mineral_type)
|
||||
if(exp_multiplier)
|
||||
add_action(ACTION_ORE_MINED, 40)
|
||||
rock.mineralAmt = ROUND_UP(rock.mineralAmt * (1 + ((rank * 0.1) - 0.3))) // You start out getting 20% less ore, but it goes up to 20% more at S-tier
|
||||
rock.mineral_amt = ROUND_UP(rock.mineral_amt * (1 + ((rank * 0.1) - 0.3))) // You start out getting 20% less ore, but it goes up to 20% more at S-tier
|
||||
|
||||
/datum/component/style/proc/on_resonator_burst(datum/source, mob/creator, mob/living/hit_living)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
/// The random offset applied to square coordinates, causes intermingling at biome borders
|
||||
#define BIOME_RANDOM_SQUARE_DRIFT 2
|
||||
// Categories for spawned things
|
||||
#define CAVE_SPAWN_MOB "mob"
|
||||
#define CAVE_SPAWN_FEATURE "feature"
|
||||
#define CAVE_SPAWN_TENDRIL "tendril"
|
||||
#define CAVE_SPAWN_MEGAFAUNA "megafauna"
|
||||
|
||||
/datum/map_generator/cave_generator
|
||||
var/name = "Cave Generator"
|
||||
@@ -31,9 +36,6 @@
|
||||
var/list/weighted_feature_spawn_list
|
||||
///Expanded list of extra features that can spawn in the area. Reads from the weighted list
|
||||
var/list/feature_spawn_list
|
||||
/// The turf types to replace with a biome-related turf, as typecache.
|
||||
/// Leave empty for all open turfs (but not closed turfs) to be hijacked.
|
||||
var/list/biome_accepted_turfs = list()
|
||||
/// An associative list of biome type to the list of turfs that were
|
||||
/// generated of that biome specifically. Helps to improve the efficiency
|
||||
/// of biome-related operations. Is populated through
|
||||
@@ -49,6 +51,21 @@
|
||||
/// result in slower transitions
|
||||
var/perlin_zoom = 65
|
||||
|
||||
/// Should we populate turfs through biome datums if we have such
|
||||
var/biome_population = TRUE
|
||||
/// Noise threshold above which a biome is considered high heat
|
||||
var/high_heat_threshold = -0.1
|
||||
/// Noise threshold above which a biome is considered medium heat
|
||||
var/medium_heat_threshold = -0.3
|
||||
/// Noise threshold above which a biome is considered high humidity
|
||||
var/high_humidity_threshold = -0.1
|
||||
/// Noise threshold above which a biome is considered medium humidity
|
||||
var/medium_humidity_threshold = -0.3
|
||||
/// Should all generators on the same z level use the same seeds?
|
||||
var/shared_seed = TRUE
|
||||
/// Stamp size for DBP noise, aka frequency
|
||||
var/biome_stamp_size = 75
|
||||
|
||||
///Base chance of spawning a mob
|
||||
var/mob_spawn_chance = 6
|
||||
///Base chance of spawning flora
|
||||
@@ -58,6 +75,13 @@
|
||||
///Unique ID for this spawner
|
||||
var/string_gen
|
||||
|
||||
/// Radius around features within which we avoid spawning other features
|
||||
var/feature_exclusion_radius = 7
|
||||
/// Radius around mobs which we avoid spawning other mobs
|
||||
var/mob_exclusion_radius = 12
|
||||
/// Radius around megafauna within which we avoid spawning tendrils
|
||||
var/megafauna_exclusion_radius = 7
|
||||
|
||||
///Chance of cells starting closed
|
||||
var/initial_closed_chance = 45
|
||||
///Amount of smoothing iterations
|
||||
@@ -101,7 +125,6 @@
|
||||
open_turf_types = expand_weights(weighted_open_turf_types)
|
||||
closed_turf_types = expand_weights(weighted_closed_turf_types)
|
||||
|
||||
|
||||
/datum/map_generator/cave_generator/generate_terrain(list/turfs, area/generate_in)
|
||||
. = ..()
|
||||
if(!(generate_in.area_flags_mapping & CAVES_ALLOWED))
|
||||
@@ -114,7 +137,6 @@
|
||||
string_gen = rustg_cnoise_generate("[initial_closed_chance]", "[smoothing_iterations]", "[birth_limit]", "[death_limit]", "[world.maxx]", "[world.maxy]") //Generate the raw CA data
|
||||
|
||||
for(var/turf/gen_turf as anything in turfs) //Go through all the turfs and generate them
|
||||
|
||||
var/closed = string_gen[world.maxx * (gen_turf.y - 1) + gen_turf.x] != "0"
|
||||
var/turf/new_turf = pick(closed ? closed_turf_types : open_turf_types)
|
||||
|
||||
@@ -137,31 +159,46 @@
|
||||
* This should only be called by `generate_terrain()`, if you have to call this,
|
||||
* you're probably doing something wrong.
|
||||
*/
|
||||
/datum/map_generator/cave_generator/proc/generate_terrain_with_biomes(list/turfs, area/generate_in)
|
||||
/datum/map_generator/cave_generator/proc/generate_terrain_with_biomes(list/turf/turfs, area/generate_in)
|
||||
if(!(generate_in.area_flags_mapping & CAVES_ALLOWED))
|
||||
return
|
||||
|
||||
var/humidity_seed = rand(0, 50000)
|
||||
var/heat_seed = rand(0, 50000)
|
||||
var/humidity_seed = null
|
||||
var/heat_seed = null
|
||||
|
||||
// Make sure that all caves on the same z level generate smoothly regardless of the area
|
||||
if (shared_seed)
|
||||
var/static/list/static_heat = null
|
||||
var/static/list/static_humi = null
|
||||
if (!static_heat)
|
||||
static_heat = list()
|
||||
static_humi = list()
|
||||
|
||||
var/z_key = "[turfs[1].z]"
|
||||
if (!static_heat[z_key])
|
||||
static_heat[z_key] = rand(0, 50000)
|
||||
static_humi[z_key] = rand(0, 50000)
|
||||
|
||||
heat_seed = static_heat[z_key]
|
||||
humidity_seed = static_humi[z_key]
|
||||
else
|
||||
humidity_seed = rand(0, 50000)
|
||||
heat_seed = rand(0, 50000)
|
||||
|
||||
var/start_time = REALTIMEOFDAY
|
||||
string_gen = rustg_cnoise_generate("[initial_closed_chance]", "[smoothing_iterations]", "[birth_limit]", "[death_limit]", "[world.maxx]", "[world.maxy]") //Generate the raw CA data
|
||||
|
||||
var/humidity_gen = list()
|
||||
humidity_gen[BIOME_HIGH_HUMIDITY] = rustg_dbp_generate("[humidity_seed]", "60", "75", "[world.maxx]", "-0.1", "1.1")
|
||||
humidity_gen[BIOME_MEDIUM_HUMIDITY] = rustg_dbp_generate("[humidity_seed]", "60", "75", "[world.maxx]", "-0.3", "-0.1")
|
||||
humidity_gen[BIOME_HIGH_HUMIDITY] = rustg_dbp_generate("[humidity_seed]", "60", "[biome_stamp_size]", "[world.maxx]", "[high_heat_threshold]", "1.1")
|
||||
humidity_gen[BIOME_MEDIUM_HUMIDITY] = rustg_dbp_generate("[humidity_seed]", "60", "[biome_stamp_size]", "[world.maxx]", "[medium_heat_threshold]", "[high_heat_threshold]")
|
||||
|
||||
var/heat_gen = list()
|
||||
heat_gen[BIOME_HIGH_HEAT] = rustg_dbp_generate("[heat_seed]", "60", "75", "[world.maxx]", "-0.1", "1.1")
|
||||
heat_gen[BIOME_MEDIUM_HEAT] = rustg_dbp_generate("[heat_seed]", "60", "75", "[world.maxx]", "-0.3", "-0.1")
|
||||
|
||||
var/list/expanded_closed_turfs = src.closed_turf_types
|
||||
var/list/expanded_open_turfs = src.open_turf_types
|
||||
heat_gen[BIOME_HIGH_HEAT] = rustg_dbp_generate("[heat_seed]", "60", "[biome_stamp_size]", "[world.maxx]", "[high_heat_threshold]", "1.1")
|
||||
heat_gen[BIOME_MEDIUM_HEAT] = rustg_dbp_generate("[heat_seed]", "60", "[biome_stamp_size]", "[world.maxx]", "[medium_heat_threshold]", "[high_heat_threshold]")
|
||||
|
||||
var/list/to_generate = list()
|
||||
for(var/turf/gen_turf as anything in turfs) //Go through all the turfs and generate them
|
||||
var/closed = string_gen[world.maxx * (gen_turf.y - 1) + gen_turf.x] != "0"
|
||||
var/new_turf_type = pick(closed ? expanded_closed_turfs : expanded_open_turfs)
|
||||
|
||||
var/datum/biome/selected_biome
|
||||
|
||||
// Here comes the meat of the biome code.
|
||||
@@ -179,36 +216,20 @@
|
||||
BIOME_HIGH_HEAT : text2num(heat_gen[BIOME_MEDIUM_HEAT][coordinate]) ? BIOME_MEDIUM_HEAT : BIOME_LOW_HEAT
|
||||
|
||||
selected_biome = possible_biomes[heat_level][humidity_level]
|
||||
|
||||
// Currently, we only affect open turfs, because biomes don't currently
|
||||
// have a definition for biome-specific closed turfs.
|
||||
if((!length(biome_accepted_turfs) && !closed) || biome_accepted_turfs[new_turf_type])
|
||||
LAZYADD(generated_turfs_per_biome[selected_biome], gen_turf)
|
||||
|
||||
else
|
||||
// The assumption is this will be faster then changeturf, and changeturf isn't required since by this point
|
||||
// The old tile hasn't got the chance to init yet
|
||||
var/turf/new_turf = new new_turf_type(gen_turf)
|
||||
|
||||
if(gen_turf.turf_flags & NO_RUINS)
|
||||
new_turf.turf_flags |= NO_RUINS
|
||||
|
||||
LAZYSET(to_generate[selected_biome], gen_turf, closed)
|
||||
CHECK_TICK
|
||||
|
||||
for(var/biome in generated_turfs_per_biome)
|
||||
for(var/biome in to_generate)
|
||||
var/datum/biome/generating_biome = SSmapping.biomes[biome]
|
||||
|
||||
var/list/turf/generated_turfs = generating_biome.generate_turfs_for_terrain(generated_turfs_per_biome[biome])
|
||||
|
||||
var/list/turf/generated_turfs = generating_biome.generate_turfs_for_terrain(to_generate[biome])
|
||||
generated_turfs_per_biome[biome] = generated_turfs
|
||||
|
||||
var/message = "[name] terrain generation finished in [(REALTIMEOFDAY - start_time)/10]s!"
|
||||
to_chat(world, span_boldannounce("[message]"), MESSAGE_TYPE_DEBUG)
|
||||
log_world(message)
|
||||
|
||||
|
||||
/datum/map_generator/cave_generator/populate_terrain(list/turfs, area/generate_in)
|
||||
if(length(possible_biomes))
|
||||
if (biome_population && length(possible_biomes))
|
||||
return populate_terrain_with_biomes(turfs, generate_in)
|
||||
|
||||
// Area var pullouts to make accessing in the loop faster
|
||||
@@ -219,87 +240,97 @@
|
||||
|
||||
var/start_time = REALTIMEOFDAY
|
||||
|
||||
for(var/turf/target_turf as anything in turfs)
|
||||
if(!(target_turf.type in open_turf_types)) //only put stuff on open turfs we generated, so closed walls and rivers and stuff are skipped
|
||||
// Assoc list of spawned categories to
|
||||
var/list/spawn_data = list(
|
||||
CAVE_SPAWN_FEATURE = list(),
|
||||
CAVE_SPAWN_TENDRIL = list(),
|
||||
CAVE_SPAWN_MOB = list(),
|
||||
CAVE_SPAWN_MEGAFAUNA = list(),
|
||||
)
|
||||
|
||||
var/list/open_turf_cache = typecacheof(open_turf_types)
|
||||
for (var/turf/target_turf as anything in turfs)
|
||||
// Only put stuff on open turfs we generated, so closed walls and rivers and stuff are skipped
|
||||
if (!is_type_in_typecache(target_turf, open_turf_cache))
|
||||
continue
|
||||
|
||||
// If we've spawned something yet
|
||||
var/spawned_something = FALSE
|
||||
CHECK_TICK
|
||||
|
||||
if(!(target_turf.turf_flags & TURF_BLOCKS_POPULATE_TERRAIN_FLORAFEATURES))
|
||||
///Spawning isn't done in procs to save on overhead on the 60k turfs we're going through.
|
||||
//FLORA SPAWNING HERE
|
||||
if(flora_allowed && prob(flora_spawn_chance))
|
||||
if (!(target_turf.turf_flags & TURF_BLOCKS_POPULATE_TERRAIN_FLORAFEATURES))
|
||||
if (flora_allowed && prob(flora_spawn_chance))
|
||||
var/flora_type = pick(flora_spawn_list)
|
||||
new flora_type(target_turf)
|
||||
spawned_something = TRUE
|
||||
continue
|
||||
|
||||
//FEATURE SPAWNING HERE
|
||||
//we may have generated something from the flora list on the target turf, so let's not place
|
||||
//a feature here if that's the case (because it would look stupid)
|
||||
if(feature_allowed && !spawned_something && prob(feature_spawn_chance))
|
||||
if (feature_allowed && prob(feature_spawn_chance))
|
||||
var/can_spawn = TRUE
|
||||
|
||||
var/atom/picked_feature = pick(feature_spawn_list)
|
||||
|
||||
for(var/obj/structure/existing_feature in range(7, target_turf))
|
||||
if(istype(existing_feature, picked_feature))
|
||||
for(var/turf/spawn_turf as anything in spawn_data[CAVE_SPAWN_FEATURE])
|
||||
if (get_dist(spawn_turf, target_turf) <= feature_exclusion_radius)
|
||||
can_spawn = FALSE
|
||||
break
|
||||
|
||||
if(can_spawn)
|
||||
if (can_spawn)
|
||||
var/picked_feature = pick(feature_spawn_list)
|
||||
new picked_feature(target_turf)
|
||||
spawned_something = TRUE
|
||||
spawn_data[CAVE_SPAWN_FEATURE] += target_turf
|
||||
continue
|
||||
|
||||
//MOB SPAWNING HERE
|
||||
if(mobs_allowed && !spawned_something && prob(mob_spawn_chance))
|
||||
var/atom/picked_mob = pick(mob_spawn_list)
|
||||
var/is_megafauna = FALSE
|
||||
if (!mobs_allowed || !prob(mob_spawn_chance))
|
||||
continue
|
||||
|
||||
if(picked_mob == SPAWN_MEGAFAUNA)
|
||||
if(megas_allowed) //this is danger. it's boss time.
|
||||
picked_mob = pick(megafauna_spawn_list)
|
||||
is_megafauna = TRUE
|
||||
else //this is not danger, don't spawn a boss, spawn something else
|
||||
picked_mob = pick(mob_spawn_no_mega_list) //What if we used 100% of the brain...and did something (slightly) less shit than a while loop?
|
||||
var/picked_mob = pick(megas_allowed ? mob_spawn_list : mob_spawn_no_mega_list)
|
||||
var/is_megafauna = FALSE
|
||||
if (picked_mob == SPAWN_MEGAFAUNA)
|
||||
picked_mob = pick(megafauna_spawn_list)
|
||||
is_megafauna = TRUE
|
||||
|
||||
var/can_spawn = TRUE
|
||||
|
||||
// prevents tendrils spawning in each other's collapse range
|
||||
if(ispath(picked_mob, /obj/structure/spawner/lavaland))
|
||||
for(var/obj/structure/spawner/lavaland/spawn_blocker in range(2, target_turf))
|
||||
can_spawn = FALSE
|
||||
break
|
||||
// if the random is not a tendril (hopefully meaning it is a mob), avoid spawning if there's another one within 12 tiles
|
||||
else
|
||||
var/list/things_in_range = range(12, target_turf)
|
||||
for(var/mob/living/mob_blocker in things_in_range)
|
||||
if(ismining(mob_blocker))
|
||||
can_spawn = FALSE
|
||||
break
|
||||
// Also block spawns if there's a random lavaland mob spawner nearby and it's not a mega
|
||||
if(!is_megafauna)
|
||||
can_spawn = can_spawn && !(locate(/obj/effect/spawner/random/lavaland_mob) in things_in_range)
|
||||
//if there's a megafauna within standard view don't spawn anything at all (This isn't really consistent, I don't know why we do this. you do you tho)
|
||||
if(can_spawn)
|
||||
for(var/mob/living/simple_animal/hostile/megafauna/found_fauna in range(7, target_turf))
|
||||
var/can_spawn = TRUE
|
||||
if(ispath(picked_mob, /obj/structure/spawner/lavaland))
|
||||
// Prevents tendrils spawning in each other's collapse range
|
||||
for(var/turf/spawn_turf as anything in spawn_data[CAVE_SPAWN_TENDRIL])
|
||||
if (get_dist(spawn_turf, target_turf) <= 2)
|
||||
can_spawn = FALSE
|
||||
break
|
||||
|
||||
if(can_spawn)
|
||||
if(ispath(picked_mob, /mob/living/simple_animal/hostile/megafauna/bubblegum)) //there can be only one bubblegum, so don't waste spawns on it
|
||||
weighted_megafauna_spawn_list.Remove(picked_mob)
|
||||
megafauna_spawn_list = expand_weights(weighted_megafauna_spawn_list)
|
||||
megas_allowed = megas_allowed && length(megafauna_spawn_list)
|
||||
new picked_mob(target_turf)
|
||||
spawned_something = TRUE
|
||||
CHECK_TICK
|
||||
// Also avoid spawning them next to megafauna
|
||||
for(var/turf/spawn_turf as anything in spawn_data[CAVE_SPAWN_MEGAFAUNA])
|
||||
if (get_dist(spawn_turf, target_turf) <= megafauna_exclusion_radius)
|
||||
can_spawn = FALSE
|
||||
break
|
||||
else if (is_megafauna)
|
||||
// Megafauna can spawn wherever it wants as long as its not next to another mega
|
||||
for(var/turf/spawn_turf as anything in spawn_data[CAVE_SPAWN_MEGAFAUNA])
|
||||
if (get_dist(spawn_turf, target_turf) <= megafauna_exclusion_radius)
|
||||
can_spawn = FALSE
|
||||
break
|
||||
else
|
||||
for(var/turf/spawn_turf as anything in spawn_data[CAVE_SPAWN_MOB])
|
||||
if (get_dist(spawn_turf, target_turf) <= mob_exclusion_radius)
|
||||
can_spawn = FALSE
|
||||
break
|
||||
|
||||
if (!can_spawn)
|
||||
continue
|
||||
|
||||
if (ispath(picked_mob, /obj/structure/spawner/lavaland))
|
||||
spawn_data[CAVE_SPAWN_TENDRIL] += target_turf
|
||||
else
|
||||
if (is_megafauna)
|
||||
spawn_data[CAVE_SPAWN_MEGAFAUNA] += target_turf
|
||||
spawn_data[CAVE_SPAWN_MOB] += target_turf
|
||||
|
||||
new picked_mob(target_turf)
|
||||
|
||||
// There can be only one Bubblegum, so don't waste spawns on it
|
||||
if(ispath(picked_mob, /mob/living/simple_animal/hostile/megafauna/bubblegum))
|
||||
weighted_megafauna_spawn_list.Remove(picked_mob)
|
||||
megafauna_spawn_list = expand_weights(weighted_megafauna_spawn_list)
|
||||
megas_allowed = megas_allowed && length(megafauna_spawn_list)
|
||||
|
||||
var/message = "[name] terrain population finished in [(REALTIMEOFDAY - start_time)/10]s!"
|
||||
to_chat(world, span_boldannounce("[message]"), MESSAGE_TYPE_DEBUG)
|
||||
log_world(message)
|
||||
|
||||
|
||||
/**
|
||||
* This handles the population of terrain with biomes. Should only be called by
|
||||
* `populate_terrain()`, if you find yourself calling this, you're probably not
|
||||
@@ -333,7 +364,6 @@
|
||||
to_chat(world, span_boldannounce("[message]"), MESSAGE_TYPE_DEBUG)
|
||||
log_world(message)
|
||||
|
||||
|
||||
/datum/map_generator/cave_generator/jungle
|
||||
possible_biomes = list(
|
||||
BIOME_LOW_HEAT = list(
|
||||
@@ -355,3 +385,7 @@
|
||||
|
||||
|
||||
#undef BIOME_RANDOM_SQUARE_DRIFT
|
||||
#undef CAVE_SPAWN_MOB
|
||||
#undef CAVE_SPAWN_FEATURE
|
||||
#undef CAVE_SPAWN_TENDRIL
|
||||
#undef CAVE_SPAWN_MEGAFAUNA
|
||||
|
||||
@@ -2,6 +2,30 @@
|
||||
weighted_open_turf_types = list(/turf/open/misc/asteroid/basalt/lava_land_surface = 1)
|
||||
weighted_closed_turf_types = list(/turf/closed/mineral/random/volcanic = 1)
|
||||
|
||||
possible_biomes = list(
|
||||
BIOME_LOW_HEAT = list(
|
||||
BIOME_LOW_HUMIDITY = /datum/biome/lavaland/basalt,
|
||||
BIOME_MEDIUM_HUMIDITY = /datum/biome/lavaland/basalt,
|
||||
BIOME_HIGH_HUMIDITY = /datum/biome/lavaland/shale,
|
||||
),
|
||||
BIOME_MEDIUM_HEAT = list(
|
||||
BIOME_LOW_HUMIDITY = /datum/biome/lavaland/basalt,
|
||||
BIOME_MEDIUM_HUMIDITY = /datum/biome/lavaland/basalt,
|
||||
BIOME_HIGH_HUMIDITY = /datum/biome/lavaland/shale,
|
||||
),
|
||||
BIOME_HIGH_HEAT = list(
|
||||
BIOME_LOW_HUMIDITY = /datum/biome/lavaland/basalt,
|
||||
BIOME_MEDIUM_HUMIDITY = /datum/biome/lavaland/red_rock,
|
||||
BIOME_HIGH_HUMIDITY = /datum/biome/lavaland/red_rock,
|
||||
),
|
||||
)
|
||||
|
||||
biome_population = FALSE
|
||||
|
||||
high_heat_threshold = 0.15
|
||||
high_humidity_threshold = 0.15
|
||||
biome_stamp_size = 60
|
||||
|
||||
weighted_mob_spawn_list = list(
|
||||
SPAWN_MEGAFAUNA = 2,
|
||||
/obj/effect/spawner/random/lavaland_mob/goliath = 50,
|
||||
@@ -11,7 +35,7 @@
|
||||
/mob/living/basic/mining/brimdemon = 20,
|
||||
/mob/living/basic/mining/lobstrosity/lava = 20,
|
||||
/obj/effect/spawner/random/lavaland_mob/raptor = 15,
|
||||
/mob/living/basic/mining/goldgrub = 10,
|
||||
/mob/living/basic/mining/goldgrub = 15,
|
||||
/obj/structure/spawner/lavaland = 2,
|
||||
/obj/structure/spawner/lavaland/goliath = 3,
|
||||
/obj/structure/spawner/lavaland/legion = 3,
|
||||
@@ -38,10 +62,7 @@
|
||||
/obj/structure/ore_vent/boss = 1,
|
||||
)
|
||||
|
||||
initial_closed_chance = 45
|
||||
smoothing_iterations = 50
|
||||
birth_limit = 4
|
||||
death_limit = 3
|
||||
|
||||
/datum/map_generator/cave_generator/lavaland/ruin_version
|
||||
weighted_open_turf_types = list(/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins = 1)
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
///This datum handles the transitioning from a turf to a specific biome, and handles spawning decorative structures and mobs.
|
||||
/datum/biome
|
||||
///Type of turf this biome creates
|
||||
var/turf_type
|
||||
/// Type of turf this biome creates for open turfs
|
||||
var/open_turf_type
|
||||
/// Type of turf this biome creates for closed turfs
|
||||
var/closed_turf_type
|
||||
/// Chance of having a structure from the flora types list spawn
|
||||
var/flora_density = 0
|
||||
/// Chance of spawning special features, such as geysers.
|
||||
@@ -32,8 +34,13 @@
|
||||
|
||||
|
||||
///This proc handles the creation of a turf of a specific biome type
|
||||
/datum/biome/proc/generate_turf(turf/gen_turf)
|
||||
gen_turf.ChangeTurf(turf_type, null, CHANGETURF_DEFER_CHANGE)
|
||||
/datum/biome/proc/generate_turf(turf/gen_turf, closed)
|
||||
if (closed)
|
||||
gen_turf.ChangeTurf(closed_turf_type, null, CHANGETURF_DEFER_CHANGE)
|
||||
return
|
||||
|
||||
gen_turf.ChangeTurf(open_turf_type, null, CHANGETURF_DEFER_CHANGE)
|
||||
|
||||
if(length(flora_types) && prob(flora_density))
|
||||
var/obj/structure/flora = pick(flora_types)
|
||||
new flora(gen_turf)
|
||||
@@ -52,7 +59,8 @@
|
||||
/// This proc handles the creation of a turf of a specific biome type, assuming
|
||||
/// that the turf has not been initialized yet. Don't call this unless you know
|
||||
/// what you're doing.
|
||||
/datum/biome/proc/generate_turf_for_terrain(turf/gen_turf)
|
||||
/datum/biome/proc/generate_turf_for_terrain(turf/gen_turf, closed)
|
||||
var/turf_type = closed ? closed_turf_type : open_turf_type
|
||||
var/turf/new_turf = new turf_type(gen_turf)
|
||||
return new_turf
|
||||
|
||||
@@ -70,8 +78,10 @@
|
||||
var/list/turf/new_turfs = list()
|
||||
|
||||
for(var/turf/gen_turf as anything in gen_turfs)
|
||||
var/closed = gen_turfs[gen_turf]
|
||||
var/turf_type = closed ? closed_turf_type : open_turf_type
|
||||
var/turf/new_turf = new turf_type(gen_turf)
|
||||
new_turfs += new_turf
|
||||
new_turfs[new_turf] = turf_type
|
||||
|
||||
if(gen_turf.turf_flags & NO_RUINS)
|
||||
new_turf.turf_flags |= NO_RUINS
|
||||
@@ -176,56 +186,3 @@
|
||||
continue
|
||||
|
||||
new picked_mob(target_turf)
|
||||
|
||||
|
||||
/datum/biome/mudlands
|
||||
turf_type = /turf/open/misc/dirt/jungle/dark
|
||||
flora_types = list(
|
||||
/obj/structure/flora/grass/jungle/a/style_random = 1,
|
||||
/obj/structure/flora/grass/jungle/b/style_random = 1,
|
||||
/obj/structure/flora/rock/pile/jungle/style_random = 1,
|
||||
/obj/structure/flora/rock/pile/jungle/large/style_random = 1,
|
||||
)
|
||||
flora_density = 3
|
||||
|
||||
/datum/biome/plains
|
||||
turf_type = /turf/open/misc/grass/jungle
|
||||
flora_types = list(
|
||||
/obj/structure/flora/grass/jungle/a/style_random = 1,
|
||||
/obj/structure/flora/grass/jungle/b/style_random = 1,
|
||||
/obj/structure/flora/tree/jungle/style_random = 1,
|
||||
/obj/structure/flora/rock/pile/jungle/style_random = 1,
|
||||
/obj/structure/flora/bush/jungle/a/style_random = 1,
|
||||
/obj/structure/flora/bush/jungle/b/style_random = 1,
|
||||
/obj/structure/flora/bush/jungle/c/style_random = 1,
|
||||
/obj/structure/flora/bush/large/style_random = 1,
|
||||
/obj/structure/flora/rock/pile/jungle/large/style_random = 1,
|
||||
)
|
||||
flora_density = 15
|
||||
|
||||
/datum/biome/jungle
|
||||
turf_type = /turf/open/misc/grass/jungle
|
||||
flora_types = list(
|
||||
/obj/structure/flora/grass/jungle/a/style_random = 1,
|
||||
/obj/structure/flora/grass/jungle/b/style_random = 1,
|
||||
/obj/structure/flora/tree/jungle/style_random = 1,
|
||||
/obj/structure/flora/rock/pile/jungle/style_random = 1,
|
||||
/obj/structure/flora/bush/jungle/a/style_random = 1,
|
||||
/obj/structure/flora/bush/jungle/b/style_random = 1,
|
||||
/obj/structure/flora/bush/jungle/c/style_random = 1,
|
||||
/obj/structure/flora/bush/large/style_random = 1,
|
||||
/obj/structure/flora/rock/pile/jungle/large/style_random = 1,
|
||||
)
|
||||
flora_density = 40
|
||||
|
||||
/datum/biome/jungle/deep
|
||||
flora_density = 65
|
||||
|
||||
/datum/biome/wasteland
|
||||
turf_type = /turf/open/misc/dirt/jungle/wasteland
|
||||
|
||||
/datum/biome/water
|
||||
turf_type = /turf/open/water/jungle
|
||||
|
||||
/datum/biome/mountain
|
||||
turf_type = /turf/closed/mineral/random/jungle
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
/datum/biome/mudlands
|
||||
open_turf_type = /turf/open/misc/dirt/jungle/dark
|
||||
closed_turf_type = /turf/closed/mineral/random/jungle
|
||||
flora_types = list(
|
||||
/obj/structure/flora/grass/jungle/a/style_random = 1,
|
||||
/obj/structure/flora/grass/jungle/b/style_random = 1,
|
||||
/obj/structure/flora/rock/pile/jungle/style_random = 1,
|
||||
/obj/structure/flora/rock/pile/jungle/large/style_random = 1,
|
||||
)
|
||||
flora_density = 3
|
||||
|
||||
/datum/biome/plains
|
||||
open_turf_type = /turf/open/misc/grass/jungle
|
||||
closed_turf_type = /turf/closed/mineral/random/jungle
|
||||
flora_types = list(
|
||||
/obj/structure/flora/grass/jungle/a/style_random = 1,
|
||||
/obj/structure/flora/grass/jungle/b/style_random = 1,
|
||||
/obj/structure/flora/tree/jungle/style_random = 1,
|
||||
/obj/structure/flora/rock/pile/jungle/style_random = 1,
|
||||
/obj/structure/flora/bush/jungle/a/style_random = 1,
|
||||
/obj/structure/flora/bush/jungle/b/style_random = 1,
|
||||
/obj/structure/flora/bush/jungle/c/style_random = 1,
|
||||
/obj/structure/flora/bush/large/style_random = 1,
|
||||
/obj/structure/flora/rock/pile/jungle/large/style_random = 1,
|
||||
)
|
||||
flora_density = 15
|
||||
|
||||
/datum/biome/jungle
|
||||
open_turf_type = /turf/open/misc/grass/jungle
|
||||
closed_turf_type = /turf/closed/mineral/random/jungle
|
||||
flora_types = list(
|
||||
/obj/structure/flora/grass/jungle/a/style_random = 1,
|
||||
/obj/structure/flora/grass/jungle/b/style_random = 1,
|
||||
/obj/structure/flora/tree/jungle/style_random = 1,
|
||||
/obj/structure/flora/rock/pile/jungle/style_random = 1,
|
||||
/obj/structure/flora/bush/jungle/a/style_random = 1,
|
||||
/obj/structure/flora/bush/jungle/b/style_random = 1,
|
||||
/obj/structure/flora/bush/jungle/c/style_random = 1,
|
||||
/obj/structure/flora/bush/large/style_random = 1,
|
||||
/obj/structure/flora/rock/pile/jungle/large/style_random = 1,
|
||||
)
|
||||
flora_density = 40
|
||||
|
||||
/datum/biome/jungle/deep
|
||||
flora_density = 65
|
||||
|
||||
/datum/biome/wasteland
|
||||
open_turf_type = /turf/open/misc/dirt/jungle/wasteland
|
||||
closed_turf_type = /turf/closed/mineral/random/jungle
|
||||
|
||||
/datum/biome/water
|
||||
open_turf_type = /turf/open/water/jungle
|
||||
closed_turf_type = /turf/closed/mineral/random/jungle
|
||||
|
||||
/datum/biome/mountain
|
||||
open_turf_type = /turf/closed/mineral/random/jungle
|
||||
closed_turf_type = /turf/closed/mineral/random/jungle
|
||||
@@ -0,0 +1,12 @@
|
||||
/datum/biome/lavaland
|
||||
open_turf_type = /turf/open/misc/asteroid/basalt/lava_land_surface
|
||||
closed_turf_type = /turf/closed/mineral/volcanic
|
||||
|
||||
/datum/biome/lavaland/basalt
|
||||
closed_turf_type = /turf/closed/mineral/random/volcanic
|
||||
|
||||
/datum/biome/lavaland/shale
|
||||
closed_turf_type = /turf/closed/mineral/random/volcanic/shale
|
||||
|
||||
/datum/biome/lavaland/red_rock
|
||||
closed_turf_type = /turf/closed/mineral/random/volcanic/red_rock
|
||||
@@ -117,8 +117,13 @@
|
||||
/// Wire assignment for airlocks in this area
|
||||
var/airlock_wires = /datum/wires/airlock
|
||||
|
||||
///This datum, if set, allows terrain generation behavior to be ran on Initialize()
|
||||
/// Should we actually be running our mapgen if one is set?
|
||||
/// FALSE here with a set map_generator allows the area to probe from shared generators without actually generating its' turfs
|
||||
var/use_mapgen = TRUE
|
||||
/// Datum that would be used in terrain generation behavior
|
||||
var/datum/map_generator/map_generator
|
||||
/// Should the map_generator be shared with all other willing areas on our z_level?
|
||||
var/share_map_generator = TRUE
|
||||
|
||||
///Used to decide what kind of reverb the area makes sound have
|
||||
var/sound_environment = SOUND_ENVIRONMENT_NONE
|
||||
@@ -220,27 +225,56 @@ GLOBAL_LIST_EMPTY(teleportlocs)
|
||||
|
||||
/// Generate turfs, including cool cave wall gen
|
||||
/area/proc/RunTerrainGeneration()
|
||||
if(map_generator)
|
||||
map_generator = new map_generator()
|
||||
var/list/turfs = list()
|
||||
for(var/turf/T in contents)
|
||||
turfs += T
|
||||
map_generator.generate_terrain(turfs, src)
|
||||
if (!use_mapgen || !map_generator)
|
||||
return
|
||||
map_generator = get_generator()
|
||||
var/list/turfs = list()
|
||||
for(var/turf/T in contents)
|
||||
turfs += T
|
||||
map_generator.generate_terrain(turfs, src)
|
||||
|
||||
/// Populate the previously generated terrain with mobs and objects
|
||||
/area/proc/RunTerrainPopulation()
|
||||
if(map_generator)
|
||||
var/list/turfs = list()
|
||||
for(var/turf/T in contents)
|
||||
turfs += T
|
||||
map_generator.populate_terrain(turfs, src)
|
||||
if (!use_mapgen || !map_generator)
|
||||
return
|
||||
map_generator = get_generator()
|
||||
var/list/turfs = list()
|
||||
for(var/turf/T in contents)
|
||||
turfs += T
|
||||
map_generator.populate_terrain(turfs, src)
|
||||
|
||||
/area/proc/test_gen()
|
||||
if(map_generator)
|
||||
var/list/turfs = list()
|
||||
for(var/turf/T in contents)
|
||||
turfs += T
|
||||
map_generator.generate_terrain(turfs, src)
|
||||
if (!use_mapgen || !map_generator)
|
||||
return
|
||||
map_generator = get_generator()
|
||||
var/list/turfs = list()
|
||||
for(var/turf/T in contents)
|
||||
turfs += T
|
||||
map_generator.generate_terrain(turfs, src)
|
||||
|
||||
/// Gets own, or shared, map generator
|
||||
/area/proc/get_generator()
|
||||
RETURN_TYPE(/datum/map_generator)
|
||||
if (!map_generator)
|
||||
return
|
||||
|
||||
if (istype(map_generator))
|
||||
return map_generator
|
||||
|
||||
if (!share_map_generator)
|
||||
map_generator = new map_generator()
|
||||
return map_generator
|
||||
|
||||
var/list/z_generators = GLOB.map_generators_by_z["[z]"]
|
||||
if (z_generators && z_generators[map_generator])
|
||||
map_generator = z_generators[map_generator]
|
||||
|
||||
if (!istype(map_generator))
|
||||
var/new_generator = new map_generator()
|
||||
LAZYSET(GLOB.map_generators_by_z["[z]"], map_generator, new_generator)
|
||||
map_generator = new_generator
|
||||
|
||||
return map_generator
|
||||
|
||||
/// Returns the highest zlevel that this area contains turfs for
|
||||
/area/proc/get_highest_zlevel()
|
||||
|
||||
@@ -137,6 +137,8 @@
|
||||
sound_environment = SOUND_AREA_LAVALAND
|
||||
ambient_buzz = 'sound/ambience/lavaland/magma.ogg'
|
||||
allow_shuttle_docking = TRUE
|
||||
map_generator = /datum/map_generator/cave_generator/lavaland
|
||||
use_mapgen = FALSE
|
||||
|
||||
/area/lavaland/surface
|
||||
name = "Lavaland"
|
||||
@@ -167,7 +169,7 @@
|
||||
icon_state = "unexplored"
|
||||
area_flags = VALID_TERRITORY
|
||||
area_flags_mapping = UNIQUE_AREA | CAVES_ALLOWED | FLORA_ALLOWED | MOB_SPAWN_ALLOWED
|
||||
map_generator = /datum/map_generator/cave_generator/lavaland
|
||||
use_mapgen = TRUE
|
||||
|
||||
/area/lavaland/surface/outdoors/unexplored/danger //megafauna will also spawn here
|
||||
icon_state = "danger"
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
cost_per_order = 150
|
||||
|
||||
/datum/orderable_item/accelerator/aoe_mobs
|
||||
purchase_path = /obj/item/borg/upgrade/modkit/aoe/mobs
|
||||
purchase_path = /obj/item/borg/upgrade/modkit/cooldown/aoe/mobs
|
||||
cost_per_order = 1500
|
||||
|
||||
/datum/orderable_item/accelerator/minebot_passthrough
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
icon_state = "modkit"
|
||||
loot = list(
|
||||
/obj/item/borg/upgrade/modkit/aoe/mobs/andturfs = 1,
|
||||
/obj/item/borg/upgrade/modkit/cooldown/aoe/mobs/andturfs = 1,
|
||||
/obj/item/borg/upgrade/modkit/cooldown/repeater = 1,
|
||||
/obj/item/borg/upgrade/modkit/resonator_blasts = 1,
|
||||
/obj/item/borg/upgrade/modkit/bounty = 1,
|
||||
|
||||
@@ -13,6 +13,10 @@
|
||||
refined_type = /obj/item/stack/sheet/bluespace_crystal
|
||||
scan_state = "rock_bscrystal"
|
||||
merge_type = /obj/item/stack/ore/bluespace_crystal
|
||||
vein_type = ORE_VEIN_SCATTER
|
||||
vein_distance = 5
|
||||
min_vein_size = 1
|
||||
max_vein_size = 2
|
||||
/// The teleport range when crushed/thrown at someone.
|
||||
var/blink_range = 8
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
|
||||
/obj/effect/spawner/abandoned_crate/space_suit
|
||||
loot = list(
|
||||
/obj/item/borg/upgrade/modkit/aoe/mobs = 1,
|
||||
/obj/item/borg/upgrade/modkit/cooldown/aoe/mobs = 1,
|
||||
/obj/item/clothing/suit/space = 1,
|
||||
/obj/item/clothing/head/helmet/space = 1
|
||||
)
|
||||
|
||||
@@ -221,8 +221,8 @@
|
||||
* This also means a large boulder can highroll a boulder with a full stack of 50 sheets of material.
|
||||
* @params ore_floor The number of minerals already rolled. Used to scale the logarithmic function.
|
||||
*/
|
||||
/obj/structure/ore_vent/proc/ore_quantity_function(ore_floor)
|
||||
return SHEET_MATERIAL_AMOUNT * max(round(boulder_size * (log(rand(1 + ore_floor, 4 + ore_floor)) ** -1)), 1)
|
||||
/obj/structure/ore_vent/proc/ore_quantity_function(ore_floor, ore_per_size = HALF_SHEET_MATERIAL_AMOUNT)
|
||||
return ore_per_size * max(round(boulder_size * (log(rand(1 + ore_floor, 4 + ore_floor)) ** -1)), 1)
|
||||
|
||||
/**
|
||||
* This confirms that the user wants to start the wave defense event, and that they can start it.
|
||||
|
||||
@@ -191,7 +191,7 @@
|
||||
if(!ismineralturf(T) || !drill_below)
|
||||
return
|
||||
var/turf/closed/mineral/M = T
|
||||
M.mineralAmt = 0
|
||||
M.mineral_amt = 0
|
||||
M.gets_drilled()
|
||||
baseturfs = /turf/open/openspace/icemoon //This is to ensure that IF random turf generation produces a openturf, there won't be other turfs assigned other than openspace.
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
#define RANDOM_LOWER_Y 50
|
||||
|
||||
/proc/spawn_rivers(target_z, nodes, turf_type, whitelist_area, min_x = RANDOM_LOWER_X, min_y = RANDOM_LOWER_Y, max_x = RANDOM_UPPER_X, max_y = RANDOM_UPPER_Y)
|
||||
var/list/river_nodes = list()
|
||||
var/num_spawned = 0
|
||||
var/width = max_x - min_x
|
||||
var/height = max_y - min_y
|
||||
@@ -16,19 +15,19 @@
|
||||
var/area/A = get_area(T)
|
||||
if(!istype(A, whitelist_area) || (T.turf_flags & NO_LAVA_GEN))
|
||||
possible_locs -= T
|
||||
else
|
||||
river_nodes += new /obj/effect/landmark/river_waypoint(T)
|
||||
num_spawned++
|
||||
continue
|
||||
new /obj/effect/landmark/river_waypoint(T)
|
||||
num_spawned++
|
||||
|
||||
//make some randomly pathing rivers
|
||||
for(var/obj/effect/landmark/river_waypoint/waypoints as anything in river_nodes)
|
||||
for(var/obj/effect/landmark/river_waypoint/waypoints as anything in GLOB.river_waypoint_list["[target_z]"])
|
||||
if (waypoints.z != target_z || waypoints.connected)
|
||||
continue
|
||||
waypoints.connected = TRUE
|
||||
// Workaround around ChangeTurf that's safe because of when this proc is called
|
||||
var/turf/cur_turf = get_turf(waypoints)
|
||||
cur_turf = new turf_type(cur_turf)
|
||||
var/turf/target_turf = get_turf(pick(river_nodes - waypoints))
|
||||
var/turf/target_turf = get_turf(pick(GLOB.river_waypoint_list["[target_z]"] - waypoints))
|
||||
if(!target_turf)
|
||||
break
|
||||
var/detouring = FALSE
|
||||
@@ -55,20 +54,28 @@
|
||||
cur_dir = get_dir(cur_turf, target_turf)
|
||||
cur_turf = get_step(cur_turf, cur_dir)
|
||||
continue
|
||||
else
|
||||
// Workaround around ChangeTurf that's safe because of when this proc is called
|
||||
var/turf/river_turf = new turf_type(cur_turf)
|
||||
river_turf.Spread(25, 11, whitelist_area)
|
||||
|
||||
for(var/waypoints_spawned in river_nodes)
|
||||
qdel(waypoints_spawned)
|
||||
// Workaround around ChangeTurf that's safe because of when this proc is called
|
||||
var/turf/river_turf = new turf_type(cur_turf)
|
||||
river_turf.Spread(25, 11, whitelist_area)
|
||||
|
||||
for(var/obj/effect/landmark/river_waypoint/waypoint as anything in GLOB.river_waypoint_list["[target_z]"])
|
||||
qdel(waypoint)
|
||||
|
||||
GLOB.river_waypoint_list -= "[target_z]"
|
||||
|
||||
/obj/effect/landmark/river_waypoint
|
||||
name = "river waypoint"
|
||||
var/connected = FALSE
|
||||
invisibility = INVISIBILITY_ABSTRACT
|
||||
|
||||
/obj/effect/landmark/river_waypoint/Initialize(mapload)
|
||||
. = ..()
|
||||
LAZYADD(GLOB.river_waypoint_list["[z]"], src)
|
||||
|
||||
/obj/effect/landmark/river_waypoint/Destroy()
|
||||
LAZYREMOVE(GLOB.river_waypoint_list["[z]"], src)
|
||||
return ..()
|
||||
|
||||
/turf/proc/Spread(probability = 30, prob_loss = 25, whitelisted_area)
|
||||
if(probability <= 0)
|
||||
|
||||
@@ -138,6 +138,20 @@
|
||||
/turf/open/water/lavaland_atmos
|
||||
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
|
||||
|
||||
/turf/open/water/lavaland_atmos/basalt
|
||||
icon = 'icons/turf/floors/water_lavaland.dmi'
|
||||
icon_state = "water_lavaland-255"
|
||||
base_icon_state = "water_lavaland"
|
||||
smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER
|
||||
smoothing_groups = SMOOTH_GROUP_TURF_OPEN + SMOOTH_GROUP_FLOOR_WATER_LAVALAND
|
||||
canSmoothWith = SMOOTH_GROUP_FLOOR_WATER_LAVALAND
|
||||
fishing_datum = /datum/fish_source/ocean
|
||||
|
||||
/turf/open/water/lavaland_atmos/basalt/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
|
||||
underlay_appearance.icon = /turf/open/misc/asteroid/basalt::icon
|
||||
underlay_appearance.icon_state = /turf/open/misc/asteroid/basalt::icon_state
|
||||
return TRUE
|
||||
|
||||
/turf/open/water/beach/tizira
|
||||
desc = "Shallow water. It somehow reminds you of lizardfolk."
|
||||
icon_state = "tizira_water"
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
/obj/item/borg/upgrade/modkit/range,
|
||||
/obj/item/borg/upgrade/modkit/damage,
|
||||
/obj/item/borg/upgrade/modkit/cooldown,
|
||||
/obj/item/borg/upgrade/modkit/aoe/mobs,
|
||||
/obj/item/borg/upgrade/modkit/cooldown/aoe/mobs,
|
||||
/obj/item/borg/upgrade/modkit/human_passthrough,
|
||||
)
|
||||
|
||||
|
||||
@@ -264,7 +264,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate)
|
||||
|
||||
var/static/list/give_turf_traits
|
||||
if(!give_turf_traits)
|
||||
give_turf_traits = string_list(list(TRAIT_LAVA_STOPPED, TRAIT_CHASM_STOPPED, TRAIT_IMMERSE_STOPPED))
|
||||
give_turf_traits = string_list(list(TRAIT_TURF_IGNORE_SLOWDOWN, TRAIT_LAVA_STOPPED, TRAIT_CHASM_STOPPED, TRAIT_IMMERSE_STOPPED))
|
||||
AddElement(/datum/element/give_turf_traits, give_turf_traits)
|
||||
|
||||
/obj/structure/stone_tile/singularity_pull(atom/singularity, current_size)
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
|
||||
/obj/item/crusher_trophy/bileworm_spewlet/on_projectile_hit_mineral(turf/closed/mineral, mob/living/user)
|
||||
for(var/turf/closed/mineral/mineral_turf in RANGE_TURFS(1, mineral) - mineral)
|
||||
mineral_turf.gets_drilled(user, 1)
|
||||
mineral_turf.drill_aoe(user, 0.2)
|
||||
|
||||
//yes this is a /mob_cooldown subtype being added to an item. I can't recommend you do what I'm doing
|
||||
/datum/action/cooldown/mob_cooldown/projectile_attack/dir_shots/spewlet
|
||||
|
||||
@@ -27,10 +27,10 @@
|
||||
/obj/item/mining_scanner/admin
|
||||
|
||||
/obj/item/mining_scanner/admin/attack_self(mob/user)
|
||||
for(var/turf/closed/mineral/mineral_turf in world)
|
||||
if(mineral_turf.scan_state)
|
||||
mineral_turf.icon = mineral_turf.scan_icon
|
||||
mineral_turf.icon_state = mineral_turf.scan_state
|
||||
for(var/turf/closed/mineral/rock in world)
|
||||
if(rock.scan_state)
|
||||
var/mutable_appearance/rock_overlay = mutable_appearance(rock.scan_icon, rock.scan_state, FLASH_LAYER, rock, ABOVE_LIGHTING_PLANE, appearance_flags = RESET_TRANSFORM)
|
||||
rock.add_overlay(rock_overlay)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/t_scanner/adv_mining_scanner
|
||||
@@ -86,19 +86,8 @@
|
||||
vent.add_mineral_overlays()
|
||||
|
||||
for(var/turf/closed/mineral/mineral in RANGE_TURFS(range, start_turf))
|
||||
if(!mineral.scan_state)
|
||||
continue
|
||||
|
||||
var/obj/effect/temp_visual/mining_overlay/scan_overlay = locate(/obj/effect/temp_visual/mining_overlay) in mineral
|
||||
if(!scan_overlay)
|
||||
scan_overlay = new(mineral)
|
||||
scan_overlay.icon = mineral.scan_icon
|
||||
scan_overlay.icon_state = mineral.scan_state
|
||||
continue
|
||||
|
||||
deltimer(scan_overlay.timerid)
|
||||
scan_overlay.timerid = QDEL_IN_STOPPABLE(scan_overlay, scan_overlay.duration)
|
||||
animate(scan_overlay, alpha = 0, time = scan_overlay.duration, easing = scan_overlay.easing_style)
|
||||
if(mineral.scan_state)
|
||||
mineral.flash_scan()
|
||||
|
||||
if(vents_nearby && scanner)
|
||||
if(undiscovered)
|
||||
@@ -111,7 +100,8 @@
|
||||
/obj/effect/temp_visual/mining_overlay
|
||||
plane = HIGH_GAME_PLANE
|
||||
layer = FLASH_LAYER
|
||||
icon = 'icons/effects/ore_visuals.dmi'
|
||||
icon = 'icons/blanks/480x480.dmi'
|
||||
icon_state = "nothing"
|
||||
appearance_flags = NONE // to avoid having TILE_BOUND in the flags, so that the 480x480 icon states let you see it no matter where you are
|
||||
duration = 3.5 SECONDS
|
||||
pixel_x = -224
|
||||
|
||||
@@ -10,16 +10,29 @@
|
||||
full_w_class = WEIGHT_CLASS_BULKY
|
||||
singular_name = "ore chunk"
|
||||
material_flags = MATERIAL_EFFECTS
|
||||
var/points = 0 //How many points this ore gets you from the ore redemption machine
|
||||
var/refined_type = null //What this ore defaults to being refined into
|
||||
var/mine_experience = 5 //How much experience do you get for mining this ore?
|
||||
novariants = TRUE // Ore stacks handle their icon updates themselves to keep the illusion that there's more going
|
||||
var/list/stack_overlays
|
||||
var/scan_state = "" //Used by mineral turfs for their scan overlay.
|
||||
var/spreadChance = 0 //Also used by mineral turfs for spreading veins
|
||||
drop_sound = SFX_STONE_DROP
|
||||
pickup_sound = SFX_STONE_PICKUP
|
||||
sound_vary = TRUE
|
||||
/// How many points this ore gets you from the ore redemption machine
|
||||
var/points = 0
|
||||
/// What this ore defaults to being refined into
|
||||
var/refined_type = null
|
||||
/// How much experience do you get for mining this ore?
|
||||
var/mine_experience = 5
|
||||
var/list/stack_overlays
|
||||
/// Used by mineral turfs for their scan overlay.
|
||||
var/scan_state = ""
|
||||
/// Chance that we'll spawn as a vein rather than a sole tile
|
||||
var/spread_chance = 0
|
||||
/// Type of ore vein we spawn, cluster/scatter/plain/branching
|
||||
var/vein_type = ORE_VEIN_CLUSTER
|
||||
/// Optimal distance from open turfs for us to spawn, 1 is next to an open tile
|
||||
var/vein_distance = 1
|
||||
/// Minimum distance that a vein can span, radius for cluster/scatter, maximum length for plain/branching
|
||||
var/min_vein_size = 1
|
||||
/// Minimum distance that a vein can span, radius for cluster/scatter, maximum length for plain/branching
|
||||
var/max_vein_size = 2
|
||||
|
||||
/obj/item/stack/ore/update_overlays()
|
||||
. = ..()
|
||||
@@ -52,29 +65,29 @@
|
||||
return isnull(refined_type) ? null : src
|
||||
|
||||
/obj/item/stack/ore/welder_act(mob/living/user, obj/item/I)
|
||||
..()
|
||||
. = ..()
|
||||
if(!refined_type)
|
||||
return TRUE
|
||||
|
||||
if(I.use_tool(src, user, 0, volume=50))
|
||||
new refined_type(drop_location())
|
||||
use(1)
|
||||
if(!I.use_tool(src, user, 0, volume = 50))
|
||||
return TRUE
|
||||
|
||||
var/sheets_made = values_sum(mats_per_unit) / SHEET_MATERIAL_AMOUNT
|
||||
new refined_type(drop_location(), max(1, floor(sheets_made)))
|
||||
use(max(1, ceil(1 / sheets_made)))
|
||||
return TRUE
|
||||
|
||||
/obj/item/stack/ore/fire_act(exposed_temperature, exposed_volume)
|
||||
. = ..()
|
||||
if(isnull(refined_type))
|
||||
return
|
||||
else
|
||||
var/probability = (rand(0,100))/100
|
||||
var/burn_value = probability*amount
|
||||
var/amountrefined = round(burn_value, 1)
|
||||
if(amountrefined < 1)
|
||||
qdel(src)
|
||||
else
|
||||
new refined_type(drop_location(),amountrefined)
|
||||
qdel(src)
|
||||
|
||||
var/probability = rand(0, 100) / 100
|
||||
var/burn_value = probability * amount
|
||||
var/amount_refined = floor(burn_value * values_sum(mats_per_unit) / SHEET_MATERIAL_AMOUNT)
|
||||
if(amount_refined > 1)
|
||||
new refined_type(drop_location(), amount_refined)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/stack/ore/uranium
|
||||
name = "uranium ore"
|
||||
@@ -82,24 +95,30 @@
|
||||
singular_name = "uranium ore chunk"
|
||||
points = 30
|
||||
material_flags = NONE
|
||||
mats_per_unit = list(/datum/material/uranium=SHEET_MATERIAL_AMOUNT)
|
||||
mats_per_unit = list(/datum/material/uranium = SHEET_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/uranium
|
||||
mine_experience = 6
|
||||
scan_state = "rock_uranium"
|
||||
spreadChance = 5
|
||||
spread_chance = 35
|
||||
merge_type = /obj/item/stack/ore/uranium
|
||||
vein_type = ORE_VEIN_PLAIN
|
||||
vein_distance = 3
|
||||
min_vein_size = 1
|
||||
max_vein_size = 3
|
||||
|
||||
/obj/item/stack/ore/iron
|
||||
name = "iron ore"
|
||||
icon_state = "iron"
|
||||
singular_name = "iron ore chunk"
|
||||
points = 1
|
||||
mats_per_unit = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT)
|
||||
mats_per_unit = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/iron
|
||||
mine_experience = 1
|
||||
scan_state = "rock_iron"
|
||||
spreadChance = 20
|
||||
spread_chance = 65
|
||||
merge_type = /obj/item/stack/ore/iron
|
||||
min_vein_size = 1
|
||||
max_vein_size = 3
|
||||
|
||||
/obj/item/stack/ore/glass
|
||||
name = "sand pile"
|
||||
@@ -142,7 +161,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
C.visible_message(span_danger("[C]'s eye protection blocks the sand!"), span_warning("Your eye protection blocks the sand!"))
|
||||
return
|
||||
C.adjust_eye_blur(12 SECONDS)
|
||||
C.adjust_stamina_loss(15)//the pain from your eyes burning does stamina damage
|
||||
C.adjust_stamina_loss(15) //the pain from your eyes burning does stamina damage
|
||||
C.adjust_confusion(5 SECONDS)
|
||||
to_chat(C, span_userdanger("\The [src] gets into your eyes! The pain, it burns!"))
|
||||
qdel(src)
|
||||
@@ -151,7 +170,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
if(severity)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
/obj/item/stack/ore/glass/thirty
|
||||
@@ -169,12 +187,15 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
icon_state = "plasma"
|
||||
singular_name = "plasma ore chunk"
|
||||
points = 15
|
||||
mats_per_unit = list(/datum/material/plasma=SHEET_MATERIAL_AMOUNT)
|
||||
mats_per_unit = list(/datum/material/plasma = SHEET_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/plasma
|
||||
mine_experience = 5
|
||||
scan_state = "rock_plasma"
|
||||
spreadChance = 8
|
||||
spread_chance = 45
|
||||
merge_type = /obj/item/stack/ore/plasma
|
||||
vein_type = ORE_VEIN_PLAIN
|
||||
min_vein_size = 2
|
||||
max_vein_size = 4
|
||||
|
||||
/obj/item/stack/ore/plasma/welder_act(mob/living/user, obj/item/I)
|
||||
to_chat(user, span_warning("You can't hit a high enough temperature to smelt [src] properly!"))
|
||||
@@ -186,11 +207,14 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
singular_name = "silver ore chunk"
|
||||
points = 16
|
||||
mine_experience = 3
|
||||
mats_per_unit = list(/datum/material/silver=SHEET_MATERIAL_AMOUNT)
|
||||
mats_per_unit = list(/datum/material/silver = SHEET_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/silver
|
||||
scan_state = "rock_silver"
|
||||
spreadChance = 5
|
||||
spread_chance = 35
|
||||
merge_type = /obj/item/stack/ore/silver
|
||||
vein_type = ORE_VEIN_BRANCH
|
||||
min_vein_size = 0
|
||||
max_vein_size = 2
|
||||
|
||||
/obj/item/stack/ore/gold
|
||||
name = "gold ore"
|
||||
@@ -198,22 +222,31 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
singular_name = "gold ore chunk"
|
||||
points = 18
|
||||
mine_experience = 5
|
||||
mats_per_unit = list(/datum/material/gold=SHEET_MATERIAL_AMOUNT)
|
||||
mats_per_unit = list(/datum/material/gold = SHEET_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/gold
|
||||
scan_state = "rock_gold"
|
||||
spreadChance = 5
|
||||
spread_chance = 35
|
||||
merge_type = /obj/item/stack/ore/gold
|
||||
vein_type = ORE_VEIN_BRANCH
|
||||
vein_distance = 2
|
||||
min_vein_size = 0
|
||||
max_vein_size = 2
|
||||
|
||||
/obj/item/stack/ore/diamond
|
||||
name = "diamond ore"
|
||||
icon_state = "diamond"
|
||||
singular_name = "diamond ore chunk"
|
||||
points = 50
|
||||
mats_per_unit = list(/datum/material/diamond=SHEET_MATERIAL_AMOUNT)
|
||||
mats_per_unit = list(/datum/material/diamond = SHEET_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/diamond
|
||||
mine_experience = 10
|
||||
scan_state = "rock_diamond"
|
||||
merge_type = /obj/item/stack/ore/diamond
|
||||
vein_type = ORE_VEIN_SCATTER
|
||||
spread_chance = 20
|
||||
vein_distance = 4
|
||||
min_vein_size = 1
|
||||
max_vein_size = 2
|
||||
|
||||
/obj/item/stack/ore/diamond/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -227,23 +260,30 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
icon_state = "bananium"
|
||||
singular_name = "bananium ore chunk"
|
||||
points = 60
|
||||
mats_per_unit = list(/datum/material/bananium=SHEET_MATERIAL_AMOUNT)
|
||||
mats_per_unit = list(/datum/material/bananium = SHEET_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/bananium
|
||||
mine_experience = 15
|
||||
scan_state = "rock_bananium"
|
||||
merge_type = /obj/item/stack/ore/bananium
|
||||
vein_type = ORE_VEIN_PLAIN
|
||||
spread_chance = 20
|
||||
vein_distance = 4
|
||||
min_vein_size = 1
|
||||
max_vein_size = 2
|
||||
|
||||
/obj/item/stack/ore/titanium
|
||||
name = "titanium ore"
|
||||
icon_state = "titanium"
|
||||
singular_name = "titanium ore chunk"
|
||||
points = 50
|
||||
mats_per_unit = list(/datum/material/titanium=SHEET_MATERIAL_AMOUNT)
|
||||
mats_per_unit = list(/datum/material/titanium = SHEET_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/titanium
|
||||
mine_experience = 3
|
||||
scan_state = "rock_titanium"
|
||||
spreadChance = 5
|
||||
spread_chance = 35
|
||||
merge_type = /obj/item/stack/ore/titanium
|
||||
min_vein_size = 1
|
||||
max_vein_size = 2
|
||||
|
||||
/obj/item/stack/ore/slag
|
||||
name = "slag"
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
mob_biotypes = MOB_ORGANIC|MOB_BUG|MOB_MINING
|
||||
friendly_verb_continuous = "harmlessly rolls into"
|
||||
friendly_verb_simple = "harmlessly roll into"
|
||||
maxHealth = 45
|
||||
health = 45
|
||||
maxHealth = 175
|
||||
health = 175
|
||||
melee_damage_lower = 0
|
||||
melee_damage_upper = 0
|
||||
attack_verb_continuous = "barrels into"
|
||||
@@ -49,16 +49,26 @@
|
||||
else
|
||||
can_lay_eggs = FALSE
|
||||
|
||||
var/list/food_types = string_list(list(/obj/item/stack/ore))
|
||||
// Rarer ores heal us a bit depending on the rarity
|
||||
var/static/list/food_types = list(
|
||||
/obj/item/stack/ore = 0,
|
||||
/obj/item/stack/ore/gold = 5,
|
||||
/obj/item/stack/ore/uranium = 5,
|
||||
/obj/item/stack/ore/diamond = 15,
|
||||
/obj/item/stack/ore/bluespace_crystal = 20,
|
||||
/obj/item/stack/ore/bananium = 30,
|
||||
)
|
||||
|
||||
var/static/list/innate_actions = list(
|
||||
/datum/action/cooldown/mob_cooldown/spit_ore = BB_SPIT_ABILITY,
|
||||
/datum/action/cooldown/mob_cooldown/burrow = BB_BURROW_ABILITY,
|
||||
)
|
||||
|
||||
grant_actions_by_list(innate_actions)
|
||||
|
||||
AddElement(/datum/element/ore_collecting)
|
||||
AddElement(/datum/element/basic_eating, food_types = food_types, add_to_contents = TRUE)
|
||||
AddElement(/datum/element/wall_tearer, allow_reinforced = FALSE)
|
||||
AddComponent(/datum/component/proficient_miner, 0.05, TRUE) // Speedy boi
|
||||
AddComponent(/datum/component/ai_listen_to_weather)
|
||||
AddComponent(\
|
||||
/datum/component/appearance_on_aggro,\
|
||||
@@ -81,10 +91,10 @@
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(stat != CONSCIOUS)
|
||||
return COMPONENT_BULLET_PIERCED
|
||||
return NONE
|
||||
|
||||
/// High penetration bullets should still go through. No goldgrub can save you from the colossus' death bolts.
|
||||
if(prob(hitting_projectile.armour_penetration))
|
||||
/// Reflects PKA/PKC shots and plasma cutter beams, unless they have high armor penetration
|
||||
if(prob(hitting_projectile.armour_penetration) || (hitting_projectile.armor_flag != BOMB && hitting_projectile.armor_flag != ENERGY))
|
||||
return NONE
|
||||
|
||||
visible_message(span_danger("[hitting_projectile] is repelled by [source]'s girth!"))
|
||||
|
||||
@@ -44,9 +44,9 @@
|
||||
/datum/action/cooldown/mob_cooldown/burrow/Activate()
|
||||
var/obj/effect/dummy/phased_mob/grub_burrow/holder = null
|
||||
var/turf/current_loc = get_turf(owner)
|
||||
var/mob/living/grub = owner
|
||||
|
||||
if(!do_after(owner, 3 SECONDS, target = current_loc))
|
||||
owner.balloon_alert(owner, "need to stay still!")
|
||||
if(!do_after(owner, 2.5 SECONDS, target = current_loc, extra_checks = CALLBACK(src, PROC_REF(health_check), grub.health)))
|
||||
return
|
||||
|
||||
if(get_turf(owner) != current_loc)
|
||||
@@ -72,6 +72,10 @@
|
||||
StartCooldown()
|
||||
return TRUE
|
||||
|
||||
/datum/action/cooldown/mob_cooldown/burrow/proc/health_check(health)
|
||||
var/mob/living/grub = owner
|
||||
return grub.health >= health
|
||||
|
||||
/obj/effect/dummy/phased_mob/grub_burrow
|
||||
|
||||
/obj/effect/dummy/phased_mob/grub_burrow/phased_check(mob/living/user, direction)
|
||||
|
||||
@@ -71,7 +71,7 @@ GLOBAL_LIST_EMPTY(raptor_population)
|
||||
/obj/item/food/meat/slab/xeno = -15,
|
||||
/obj/item/food/meat/steak = 50,
|
||||
/obj/item/food/grown/ash_flora = 10,
|
||||
/obj/item/fish = 15,
|
||||
/obj/item/fish = 25,
|
||||
/obj/item/organ = 25,
|
||||
)
|
||||
/// Inheritance datum we store our genetic data in
|
||||
|
||||
@@ -194,7 +194,7 @@
|
||||
if (!istype(giberal_turf) || giberal_turf.stage != GIBTONITE_UNSTRUCK)
|
||||
last_bumpmine_tick = world.time
|
||||
var/turf/closed/mineral/rock = bumped_into
|
||||
INVOKE_ASYNC(rock, TYPE_PROC_REF(/atom, attackby), src, bumper, null, null, exp_multiplier)
|
||||
INVOKE_ASYNC(src, PROC_REF(mine_rock), rock, bumper)
|
||||
return
|
||||
|
||||
if (!COOLDOWN_FINISHED(src, gibtonite_warning_cd))
|
||||
@@ -204,12 +204,21 @@
|
||||
playsound(bumper, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
|
||||
to_chat(bumper, span_warning("[icon2html(src, bumper)] Unstable gibtonite ore deposit detected!"))
|
||||
|
||||
/obj/item/mod/module/drill/proc/mine_rock(turf/closed/mineral/rock, mob/living/carbon/human/bumper)
|
||||
// Even faster if it has ore!
|
||||
var/has_ore = !isnull(rock.mineral_type)
|
||||
if (has_ore)
|
||||
toolspeed /= 1.5
|
||||
rock.attackby(src, bumper, null, null, exp_multiplier)
|
||||
if (has_ore)
|
||||
toolspeed *= 1.5
|
||||
|
||||
/obj/item/mod/module/drill/proc/on_module_activated(datum/source, obj/item/mod/module/module)
|
||||
SIGNAL_HANDLER
|
||||
if (!istype(module, /obj/item/mod/module/sphere_transform))
|
||||
return
|
||||
// In sphere mode we get instamine and halved power drain
|
||||
toolspeed = 0
|
||||
// In sphere mode we get faster mining and halved power drain
|
||||
toolspeed = 0.075
|
||||
use_energy_cost *= 0.5
|
||||
exp_multiplier *= 0.2
|
||||
if (!active)
|
||||
@@ -750,8 +759,12 @@
|
||||
/obj/structure/mining_bomb/proc/boom(atom/movable/firer)
|
||||
visible_message(span_danger("[src] explodes!"))
|
||||
playsound(src, 'sound/effects/magic/magic_missile.ogg', 200, vary = TRUE)
|
||||
for(var/turf/closed/mineral/rock in circle_range_turfs(src, 1))
|
||||
rock.gets_drilled()
|
||||
var/turf/our_turf = get_turf(src)
|
||||
for(var/turf/closed/mineral/rock in RANGE_TURFS(1, src))
|
||||
if (rock == our_turf)
|
||||
rock.gets_drilled(firer, 0)
|
||||
else
|
||||
rock.drill_aoe(firer, 0)
|
||||
for(var/mob/living/victim in range(1, src))
|
||||
if(HAS_TRAIT(victim, TRAIT_MINING_AOE_IMMUNE))
|
||||
continue
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
/datum/map_generator_module/river
|
||||
var/river_type = /turf/open/lava/smooth
|
||||
var/river_nodes = 4
|
||||
var/river_nodes = 3 // +1 from mapped-in one near the base
|
||||
|
||||
/datum/map_generator_module/river/generate()
|
||||
var/datum/map_generator/lavaland/L = mother
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
projectile_type = /obj/projectile/plasma
|
||||
select_name = "plasma burst"
|
||||
fire_sound = 'sound/items/weapons/plasma_cutter.ogg'
|
||||
delay = 15
|
||||
e_cost = LASER_SHOTS(40, STANDARD_CELL_CHARGE)
|
||||
delay = 12
|
||||
e_cost = LASER_SHOTS(30, STANDARD_CELL_CHARGE)
|
||||
|
||||
/obj/item/ammo_casing/energy/plasma/adv
|
||||
projectile_type = /obj/projectile/plasma/adv
|
||||
delay = 10
|
||||
e_cost = LASER_SHOTS(100, STANDARD_CELL_CHARGE)
|
||||
delay = 8
|
||||
e_cost = LASER_SHOTS(75, STANDARD_CELL_CHARGE)
|
||||
|
||||
|
||||
@@ -270,7 +270,7 @@
|
||||
new /obj/effect/temp_visual/explosion/fast(get_turf(target))
|
||||
|
||||
for(var/turf/closed/mineral/mineral_turf in RANGE_TURFS(2, target) - target)
|
||||
mineral_turf.gets_drilled(firer, 0.1)
|
||||
mineral_turf.drill_aoe(firer, 0.1)
|
||||
|
||||
for(var/mob/living/living_mob in range(2, target) - firer - target)
|
||||
if(!ismining(living_mob))
|
||||
@@ -401,7 +401,6 @@
|
||||
|
||||
// Recalculate recharge time after adding or removing cooldown mods.
|
||||
/obj/item/borg/upgrade/modkit/cooldown/proc/get_recharge_time(obj/item/gun/energy/recharge/kinetic_accelerator/KA)
|
||||
|
||||
var/new_recharge_time = initial(KA.recharge_time)
|
||||
for(var/obj/item/borg/upgrade/modkit/modkit_upgrade as anything in KA.modkits)
|
||||
if(istype(modkit_upgrade, src))
|
||||
@@ -409,18 +408,15 @@
|
||||
|
||||
return new_recharge_time
|
||||
|
||||
|
||||
/obj/item/borg/upgrade/modkit/cooldown/install(obj/item/gun/energy/recharge/kinetic_accelerator/KA, mob/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
KA.recharge_time = get_recharge_time(KA)
|
||||
|
||||
|
||||
/obj/item/borg/upgrade/modkit/cooldown/uninstall(obj/item/gun/energy/recharge/kinetic_accelerator/KA)
|
||||
..()
|
||||
KA.recharge_time = get_recharge_time(KA)
|
||||
|
||||
|
||||
/obj/item/borg/upgrade/modkit/cooldown/minebot
|
||||
name = "minebot cooldown decrease"
|
||||
desc = "Decreases the cooldown of a kinetic accelerator. Only rated for minebot use."
|
||||
@@ -432,73 +428,84 @@
|
||||
minebot_upgrade = TRUE
|
||||
minebot_exclusive = TRUE
|
||||
|
||||
|
||||
//AoE blasts
|
||||
/obj/item/borg/upgrade/modkit/aoe
|
||||
// AoE blasts
|
||||
// These are a subtype of cooldown so they can affect firing speed
|
||||
/obj/item/borg/upgrade/modkit/cooldown/aoe
|
||||
modifier = 0
|
||||
cost = 10
|
||||
denied_type = /obj/item/borg/upgrade/modkit/aoe
|
||||
denied_type = /obj/item/borg/upgrade/modkit/cooldown/aoe
|
||||
maximum_of_type = 1
|
||||
/// Does the AOE mine turfs?
|
||||
var/turf_aoe = FALSE
|
||||
/// Have we taken another kit's AOE?
|
||||
var/stats_stolen = FALSE
|
||||
/// Multiplier for mob damage
|
||||
var/damage_modifier = 0
|
||||
|
||||
/obj/item/borg/upgrade/modkit/aoe/install(obj/item/gun/energy/recharge/kinetic_accelerator/KA, mob/user)
|
||||
/obj/item/borg/upgrade/modkit/cooldown/aoe/install(obj/item/gun/energy/recharge/kinetic_accelerator/KA, mob/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
for(var/obj/item/borg/upgrade/modkit/aoe/AOE in KA.modkits) //make sure only one of the aoe modules has values if somebody has multiple
|
||||
if(AOE.stats_stolen || AOE == src)
|
||||
continue
|
||||
modifier += AOE.modifier //take its modifiers
|
||||
AOE.modifier = 0
|
||||
turf_aoe += AOE.turf_aoe
|
||||
AOE.turf_aoe = FALSE
|
||||
AOE.stats_stolen = TRUE
|
||||
if(!.)
|
||||
return
|
||||
for(var/obj/item/borg/upgrade/modkit/cooldown/aoe/AOE in KA.modkits) //make sure only one of the aoe modules has values if somebody has multiple
|
||||
if(AOE.stats_stolen || AOE == src)
|
||||
continue
|
||||
modifier += AOE.modifier //take its modifiers
|
||||
damage_modifier += AOE.damage_modifier
|
||||
AOE.modifier = 0
|
||||
AOE.damage_modifier = 0
|
||||
turf_aoe += AOE.turf_aoe
|
||||
AOE.turf_aoe = FALSE
|
||||
AOE.stats_stolen = TRUE
|
||||
|
||||
/obj/item/borg/upgrade/modkit/aoe/uninstall(obj/item/gun/energy/recharge/kinetic_accelerator/KA)
|
||||
/obj/item/borg/upgrade/modkit/cooldown/aoe/uninstall(obj/item/gun/energy/recharge/kinetic_accelerator/KA)
|
||||
..()
|
||||
modifier = initial(modifier) //get our modifiers back
|
||||
damage_modifier = initial(damage_modifier)
|
||||
turf_aoe = initial(turf_aoe)
|
||||
stats_stolen = FALSE
|
||||
|
||||
/obj/item/borg/upgrade/modkit/aoe/modify_projectile(obj/projectile/kinetic/K)
|
||||
/obj/item/borg/upgrade/modkit/cooldown/aoe/modify_projectile(obj/projectile/kinetic/K)
|
||||
K.name = "kinetic explosion"
|
||||
|
||||
/obj/item/borg/upgrade/modkit/aoe/projectile_strike(obj/projectile/kinetic/kinetic_blast, turf/target_turf, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA)
|
||||
/obj/item/borg/upgrade/modkit/cooldown/aoe/projectile_strike(obj/projectile/kinetic/kinetic_blast, turf/target_turf, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA)
|
||||
if(stats_stolen)
|
||||
return
|
||||
new /obj/effect/temp_visual/explosion/fast(target_turf)
|
||||
if(turf_aoe)
|
||||
for(var/T in RANGE_TURFS(2, target_turf) - target_turf)
|
||||
for(var/T in RANGE_TURFS(1, target_turf) - target_turf)
|
||||
if(ismineralturf(T))
|
||||
var/turf/closed/mineral/M = T
|
||||
M.gets_drilled(kinetic_blast.firer, 0.1)
|
||||
|
||||
if(modifier)
|
||||
for(var/mob/living/living_mob in range(2, target) - kinetic_blast.firer - target)
|
||||
if(!damage_modifier)
|
||||
return
|
||||
|
||||
if(!ismining(living_mob))
|
||||
continue
|
||||
for(var/mob/living/living_mob in range(1, target) - kinetic_blast.firer - target)
|
||||
if(!ismining(living_mob))
|
||||
continue
|
||||
var/armor = living_mob.run_armor_check(kinetic_blast.def_zone, kinetic_blast.armor_flag, armour_penetration = kinetic_blast.armour_penetration)
|
||||
living_mob.apply_damage(kinetic_blast.damage * damage_modifier, kinetic_blast.damage_type, kinetic_blast.def_zone, armor)
|
||||
to_chat(living_mob, span_userdanger("You're struck by a [kinetic_blast.name]!"))
|
||||
|
||||
var/armor = living_mob.run_armor_check(kinetic_blast.def_zone, kinetic_blast.armor_flag, armour_penetration = kinetic_blast.armour_penetration)
|
||||
living_mob.apply_damage(kinetic_blast.damage*modifier, kinetic_blast.damage_type, kinetic_blast.def_zone, armor)
|
||||
to_chat(living_mob, span_userdanger("You're struck by a [kinetic_blast.name]!"))
|
||||
|
||||
/obj/item/borg/upgrade/modkit/aoe/turfs
|
||||
/obj/item/borg/upgrade/modkit/cooldown/aoe/turfs
|
||||
name = "mining explosion"
|
||||
desc = "Causes the kinetic accelerator to destroy rock in an AoE."
|
||||
turf_aoe = TRUE
|
||||
// Negates one CD modifier
|
||||
modifier = -/obj/item/borg/upgrade/modkit/cooldown::modifier
|
||||
|
||||
/obj/item/borg/upgrade/modkit/aoe/mobs
|
||||
/obj/item/borg/upgrade/modkit/cooldown/aoe/mobs
|
||||
name = "offensive explosion"
|
||||
desc = "Causes the kinetic accelerator to damage mobs in an AoE."
|
||||
modifier = 1
|
||||
damage_modifier = 1
|
||||
|
||||
/obj/item/borg/upgrade/modkit/aoe/mobs/andturfs
|
||||
/obj/item/borg/upgrade/modkit/cooldown/aoe/mobs/andturfs
|
||||
name = "offensive mining explosion"
|
||||
desc = "Causes the kinetic accelerator to destroy rock and damage mobs in an AoE."
|
||||
turf_aoe = TRUE
|
||||
modifier = -1 // Slightly better than normal turf AOE as its a rare find
|
||||
|
||||
//Minebot passthrough
|
||||
// Minebot passthrough
|
||||
/obj/item/borg/upgrade/modkit/minebot_passthrough
|
||||
name = "minebot passthrough"
|
||||
desc = "Causes kinetic accelerator shots to pass through minebots."
|
||||
|
||||
@@ -117,29 +117,40 @@
|
||||
if(cell)
|
||||
. += span_notice("[src] is [round(cell.percent())]% charged.")
|
||||
|
||||
/obj/item/gun/energy/plasmacutter/attackby(obj/item/I, mob/user)
|
||||
var/charge_multiplier = 0 //2 = Refined stack, 1 = Ore
|
||||
if(istype(I, /obj/item/stack/sheet/mineral/plasma))
|
||||
/obj/item/gun/energy/plasmacutter/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
|
||||
var/charge_multiplier = 0
|
||||
if(istype(tool, /obj/item/stack/sheet/mineral/plasma))
|
||||
charge_multiplier = 2
|
||||
if(istype(I, /obj/item/stack/ore/plasma))
|
||||
else if(istype(tool, /obj/item/stack/ore/plasma))
|
||||
charge_multiplier = 1
|
||||
if(charge_multiplier)
|
||||
if(cell.charge == cell.maxcharge)
|
||||
balloon_alert(user, "already fully charged!")
|
||||
return
|
||||
I.use(1)
|
||||
cell.give(0.5 * STANDARD_CELL_CHARGE * charge_multiplier)
|
||||
balloon_alert(user, "cell recharged")
|
||||
else
|
||||
..()
|
||||
|
||||
if(!charge_multiplier)
|
||||
return NONE
|
||||
|
||||
if(cell.charge == cell.maxcharge)
|
||||
balloon_alert(user, "already fully charged!")
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
|
||||
var/obj/item/stack/sheet = tool
|
||||
if (sheet.use(1))
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
|
||||
cell.give(0.2 * STANDARD_CELL_CHARGE * charge_multiplier)
|
||||
balloon_alert(user, "cell recharged")
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
|
||||
/obj/item/gun/energy/plasmacutter/emp_act(severity)
|
||||
. = ..()
|
||||
if(isliving(loc))
|
||||
var/mob/living/user = loc
|
||||
user.visible_message(span_danger("Concentrated plasma discharges from [src] onto [user], burning them!"), span_userdanger("[src] malfunctions, spewing concentrated plasma onto you! It burns!"))
|
||||
user.adjust_fire_stacks(4)
|
||||
user.ignite_mob()
|
||||
if(. & EMP_PROTECT_CONTENTS)
|
||||
return
|
||||
|
||||
if(!isliving(loc))
|
||||
return
|
||||
|
||||
var/mob/living/user = loc
|
||||
user.visible_message(span_danger("Concentrated plasma discharges from [src] onto [user], burning them!"), span_userdanger("[src] malfunctions, spewing concentrated plasma onto you! It burns!"))
|
||||
user.adjust_fire_stacks(4)
|
||||
user.ignite_mob()
|
||||
|
||||
// Can we weld? Plasma cutter does not use charge continuously.
|
||||
// Amount cannot be defaulted to 1: most of the code specifies 0 in the call.
|
||||
@@ -163,16 +174,15 @@
|
||||
return (!QDELETED(cell) && cell.use(used ? used * PLASMA_CUTTER_CHARGE_WELD : PLASMA_CUTTER_CHARGE_WELD))
|
||||
|
||||
/obj/item/gun/energy/plasmacutter/use_tool(atom/target, mob/living/user, delay, amount=1, volume=0, datum/callback/extra_checks)
|
||||
if(!amount)
|
||||
return ..(amount = 1)
|
||||
|
||||
if(amount)
|
||||
var/mutable_appearance/sparks = mutable_appearance('icons/effects/welding_effect.dmi', "welding_sparks", GASFIRE_LAYER, src, ABOVE_LIGHTING_PLANE)
|
||||
target.add_overlay(sparks)
|
||||
LAZYADD(update_overlays_on_z, sparks)
|
||||
. = ..()
|
||||
LAZYREMOVE(update_overlays_on_z, sparks)
|
||||
target.cut_overlay(sparks)
|
||||
else
|
||||
. = ..(amount=1)
|
||||
var/mutable_appearance/sparks = mutable_appearance('icons/effects/welding_effect.dmi', "welding_sparks", GASFIRE_LAYER, src, ABOVE_LIGHTING_PLANE)
|
||||
target.add_overlay(sparks)
|
||||
LAZYADD(update_overlays_on_z, sparks)
|
||||
. = ..()
|
||||
LAZYREMOVE(update_overlays_on_z, sparks)
|
||||
target.cut_overlay(sparks)
|
||||
|
||||
/obj/item/gun/energy/plasmacutter/try_fire_gun(atom/target, mob/living/user, params)
|
||||
return fire_gun(target, user, user.Adjacent(target) && !isturf(target), params)
|
||||
|
||||
@@ -2,35 +2,39 @@
|
||||
name = "plasma blast"
|
||||
icon_state = "plasmacutter"
|
||||
damage_type = BURN
|
||||
armor_flag = ENERGY
|
||||
damage = 5
|
||||
range = 4
|
||||
range = 3
|
||||
dismemberment = 20
|
||||
impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser
|
||||
var/mine_range = 3 //mines this many additional tiles of rock
|
||||
tracer_type = /obj/effect/projectile/tracer/plasma_cutter
|
||||
muzzle_type = /obj/effect/projectile/muzzle/plasma_cutter
|
||||
impact_type = /obj/effect/projectile/impact/plasma_cutter
|
||||
// Mines this many additional tiles of rock, halved if not mining ore
|
||||
var/mine_range = 4
|
||||
|
||||
/obj/projectile/plasma/on_hit(atom/target, blocked = 0, pierce_hit)
|
||||
. = ..()
|
||||
if(ismineralturf(target))
|
||||
var/turf/closed/mineral/M = target
|
||||
M.gets_drilled(firer)
|
||||
if(mine_range)
|
||||
mine_range--
|
||||
range++
|
||||
if(range > 0)
|
||||
return BULLET_ACT_FORCE_PIERCE
|
||||
if (!ismineralturf(target))
|
||||
return
|
||||
var/turf/closed/mineral/rock = target
|
||||
if (mine_range)
|
||||
mine_range -= 1
|
||||
// Harder rocks give less extra range
|
||||
range += /turf/closed/mineral::tool_mine_speed / rock.tool_mine_speed * (isnull(rock.mineral_type) ? 0.5 : 1)
|
||||
rock.gets_drilled(firer)
|
||||
if (range > 0)
|
||||
return BULLET_ACT_FORCE_PIERCE
|
||||
|
||||
/obj/projectile/plasma/adv
|
||||
damage = 7
|
||||
range = 5
|
||||
mine_range = 5
|
||||
range = 4
|
||||
mine_range = 6
|
||||
|
||||
/obj/projectile/plasma/adv/mech
|
||||
damage = 10
|
||||
range = 9
|
||||
mine_range = 3
|
||||
range = 7
|
||||
mine_range = 4
|
||||
|
||||
/obj/projectile/plasma/turret
|
||||
//Between normal and advanced for damage, made a beam so not the turret does not destroy glass
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
/datum/material/gold =SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/diamond =SHEET_MATERIAL_AMOUNT,
|
||||
)
|
||||
build_path = /obj/item/borg/upgrade/modkit/aoe/turfs
|
||||
build_path = /obj/item/borg/upgrade/modkit/cooldown/aoe/turfs
|
||||
category = list(
|
||||
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PKA_MODS
|
||||
)
|
||||
@@ -267,7 +267,7 @@
|
||||
desc = "A device which causes kinetic accelerators to fire AoE blasts that destroy rock and damage creatures."
|
||||
id = "hyperaoemod"
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*3.5, /datum/material/glass = SHEET_MATERIAL_AMOUNT*1.5, /datum/material/silver =SHEET_MATERIAL_AMOUNT*1.5, /datum/material/gold =SHEET_MATERIAL_AMOUNT*1.5, /datum/material/diamond = SHEET_MATERIAL_AMOUNT*2)
|
||||
build_path = /obj/item/borg/upgrade/modkit/aoe/mobs/andturfs
|
||||
build_path = /obj/item/borg/upgrade/modkit/cooldown/aoe/mobs/andturfs
|
||||
|
||||
/datum/design/unique_modkit/rapid_repeater
|
||||
name = "Kinetic Accelerator Rapid Repeater Mod"
|
||||
|
||||
|
After Width: | Height: | Size: 253 B |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
@@ -0,0 +1,2 @@
|
||||
output_name = "water_lavaland"
|
||||
template = "bitmask/diagonal_32x32.toml"
|
||||
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,14 @@
|
||||
output_name = "red_rock"
|
||||
template = "bitmask/diagonal_32x32.toml"
|
||||
|
||||
[icon_size]
|
||||
x = 48
|
||||
y = 48
|
||||
|
||||
[output_icon_size]
|
||||
x = 48
|
||||
y = 48
|
||||
|
||||
[cut_pos]
|
||||
x = 24
|
||||
y = 24
|
||||
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
@@ -1,14 +1,14 @@
|
||||
output_name = "red_wall"
|
||||
output_name = "shale"
|
||||
template = "bitmask/diagonal_32x32.toml"
|
||||
|
||||
[icon_size]
|
||||
x = 40
|
||||
y = 40
|
||||
x = 48
|
||||
y = 48
|
||||
|
||||
[output_icon_size]
|
||||
x = 40
|
||||
y = 40
|
||||
x = 48
|
||||
y = 48
|
||||
|
||||
[cut_pos]
|
||||
x = 20
|
||||
y = 20
|
||||
x = 24
|
||||
y = 24
|
||||
@@ -1805,6 +1805,8 @@
|
||||
#include "code\datums\mapgen\CaveGenerator.dm"
|
||||
#include "code\datums\mapgen\JungleGenerator.dm"
|
||||
#include "code\datums\mapgen\biomes\_biome.dm"
|
||||
#include "code\datums\mapgen\biomes\jungle.dm"
|
||||
#include "code\datums\mapgen\biomes\lavaland.dm"
|
||||
#include "code\datums\mapgen\Cavegens\IcemoonCaves.dm"
|
||||
#include "code\datums\mapgen\Cavegens\LavalandGenerator.dm"
|
||||
#include "code\datums\martial\_martial.dm"
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
/obj/item/borg/upgrade/modkit/aoe/@SUBTYPES : /obj/item/borg/upgrade/modkit/cooldown/aoe/@SUBTYPES{@OLD}
|
||||