[READY FOR REVIEW] Lava land generation overhaul / variety (#21838)

* she lavas on my land till I chasm?

* need this

* whoops

* qwerty you are a dumbass

* now with 12 more maps per map

* repaths mesons, advanced mesons / meson implants show chasms

* more stuff

* range not radius dipshit

* sprites yipee

* define it

* undo mesons

* removes things I missed

* Apply suggestions from code review

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* I'm lavaing it

---------

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
This commit is contained in:
Qwertytoforty
2023-09-01 22:40:39 +01:00
committed by GitHub
co-authored by Henri215
parent 100a9d18b6
commit 8803f536b7
40 changed files with 1079 additions and 80 deletions
@@ -0,0 +1,46 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/simulated/wall/clockwork,
/area/lavaland/surface/outdoors/unexplored/danger)
"b" = (
/turf/simulated/floor/clockwork,
/area/lavaland/surface/outdoors/unexplored/danger)
"c" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
(1,1,1) = {"
c
a
b
a
c
"}
(2,1,1) = {"
c
c
b
c
c
"}
(3,1,1) = {"
c
c
b
c
c
"}
(4,1,1) = {"
c
c
b
c
c
"}
(5,1,1) = {"
c
a
b
a
c
"}
@@ -0,0 +1,46 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/simulated/wall/cult,
/area/lavaland/surface/outdoors/unexplored/danger)
"b" = (
/turf/simulated/floor/engine/cult,
/area/lavaland/surface/outdoors/unexplored/danger)
"c" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
(1,1,1) = {"
c
a
b
a
c
"}
(2,1,1) = {"
c
c
b
c
c
"}
(3,1,1) = {"
c
c
b
c
c
"}
(4,1,1) = {"
c
c
b
c
c
"}
(5,1,1) = {"
c
a
b
a
c
"}
@@ -0,0 +1,73 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/simulated/wall/cult,
/area/lavaland/surface/outdoors/unexplored/danger)
"b" = (
/obj/structure/stone_tile/surrounding,
/obj/structure/stone_tile/center,
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"c" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"g" = (
/obj/structure/stone_tile/slab/cracked,
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"h" = (
/obj/structure/stone_tile/slab,
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"m" = (
/obj/structure/stone_tile/block,
/obj/structure/stone_tile/block/cracked{
dir = 1
},
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"o" = (
/obj/structure/stone_tile/block{
dir = 1
},
/obj/structure/stone_tile/burnt,
/obj/structure/stone_tile/surrounding_tile{
dir = 8
},
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
(1,1,1) = {"
c
a
h
a
c
"}
(2,1,1) = {"
c
c
m
c
c
"}
(3,1,1) = {"
c
c
b
c
c
"}
(4,1,1) = {"
c
c
o
c
c
"}
(5,1,1) = {"
c
a
g
a
c
"}
@@ -0,0 +1,49 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/simulated/wall/indestructible/hierophant,
/area/lavaland/surface/outdoors/unexplored/danger)
"b" = (
/turf/simulated/floor/indestructible/hierophant,
/area/lavaland/surface/outdoors/unexplored/danger)
"c" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"o" = (
/turf/simulated/floor/indestructible/hierophant/two,
/area/lavaland/surface/outdoors/unexplored/danger)
(1,1,1) = {"
c
a
b
a
c
"}
(2,1,1) = {"
c
c
b
c
c
"}
(3,1,1) = {"
c
c
o
c
c
"}
(4,1,1) = {"
c
c
b
c
c
"}
(5,1,1) = {"
c
a
b
a
c
"}
@@ -0,0 +1,56 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/simulated/wall/mineral/wood/nonmetal,
/area/lavaland/surface/outdoors/unexplored/danger)
"b" = (
/turf/simulated/floor/wood,
/area/lavaland/surface/outdoors/unexplored/danger)
"c" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"v" = (
/turf/simulated/floor/wood{
icon_state = "wood-broken3"
},
/area/lavaland/surface/outdoors/unexplored/danger)
"C" = (
/turf/simulated/floor/wood{
icon_state = "wood-broken7"
},
/area/lavaland/surface/outdoors/unexplored/danger)
(1,1,1) = {"
c
a
C
a
c
"}
(2,1,1) = {"
c
c
b
c
c
"}
(3,1,1) = {"
c
c
b
c
c
"}
(4,1,1) = {"
c
c
v
c
c
"}
(5,1,1) = {"
c
a
b
a
c
"}
@@ -0,0 +1,49 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/structure/lattice/catwalk/mining,
/obj/structure/marker_beacon/dock_marker/collision,
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"b" = (
/obj/structure/lattice/catwalk/mining,
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"c" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
(1,1,1) = {"
c
a
b
a
c
"}
(2,1,1) = {"
c
c
b
c
c
"}
(3,1,1) = {"
c
c
b
c
c
"}
(4,1,1) = {"
c
c
b
c
c
"}
(5,1,1) = {"
c
a
b
a
c
"}
@@ -0,0 +1,46 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/simulated/wall/clockwork,
/area/lavaland/surface/outdoors/unexplored/danger)
"b" = (
/turf/simulated/floor/clockwork,
/area/lavaland/surface/outdoors/unexplored/danger)
"c" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
(1,1,1) = {"
c
c
c
c
c
"}
(2,1,1) = {"
a
c
c
c
a
"}
(3,1,1) = {"
b
b
b
b
b
"}
(4,1,1) = {"
a
c
c
c
a
"}
(5,1,1) = {"
c
c
c
c
c
"}
@@ -0,0 +1,46 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/simulated/wall/cult,
/area/lavaland/surface/outdoors/unexplored/danger)
"b" = (
/turf/simulated/floor/engine/cult,
/area/lavaland/surface/outdoors/unexplored/danger)
"c" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
(1,1,1) = {"
c
c
c
c
c
"}
(2,1,1) = {"
a
c
c
c
a
"}
(3,1,1) = {"
b
b
b
b
b
"}
(4,1,1) = {"
a
c
c
c
a
"}
(5,1,1) = {"
c
c
c
c
c
"}
@@ -0,0 +1,83 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/simulated/wall/cult,
/area/lavaland/surface/outdoors/unexplored/danger)
"b" = (
/obj/structure/stone_tile/slab,
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"c" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"w" = (
/obj/structure/stone_tile/center/cracked,
/obj/structure/stone_tile/surrounding/cracked,
/obj/structure/stone_tile/slab/cracked{
dir = 10
},
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"I" = (
/obj/structure/stone_tile,
/obj/structure/stone_tile{
dir = 4
},
/obj/structure/stone_tile{
dir = 8
},
/obj/structure/stone_tile/cracked{
dir = 1
},
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"M" = (
/obj/structure/stone_tile/slab/cracked{
dir = 5
},
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"R" = (
/obj/structure/stone_tile/block/cracked{
dir = 8
},
/obj/structure/stone_tile/block{
dir = 4
},
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
(1,1,1) = {"
c
c
c
c
c
"}
(2,1,1) = {"
a
c
c
c
a
"}
(3,1,1) = {"
b
I
w
R
M
"}
(4,1,1) = {"
a
c
c
c
a
"}
(5,1,1) = {"
c
c
c
c
c
"}
@@ -0,0 +1,49 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/simulated/floor/indestructible/hierophant/two,
/area/lavaland/surface/outdoors/unexplored/danger)
"b" = (
/turf/simulated/floor/indestructible/hierophant,
/area/lavaland/surface/outdoors/unexplored/danger)
"c" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"y" = (
/turf/simulated/wall/indestructible/hierophant,
/area/lavaland/surface/outdoors/unexplored/danger)
(1,1,1) = {"
c
c
c
c
c
"}
(2,1,1) = {"
y
c
c
c
y
"}
(3,1,1) = {"
a
a
b
a
a
"}
(4,1,1) = {"
y
c
c
c
y
"}
(5,1,1) = {"
c
c
c
c
c
"}
@@ -0,0 +1,62 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/simulated/floor/wood,
/area/lavaland/surface/outdoors/unexplored/danger)
"b" = (
/turf/simulated/floor/wood{
broken = 1;
icon_state = "wood-broken"
},
/area/lavaland/surface/outdoors/unexplored/danger)
"c" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"q" = (
/turf/simulated/floor/wood{
icon_state = "wood-broken3"
},
/area/lavaland/surface/outdoors/unexplored/danger)
"y" = (
/turf/simulated/wall/mineral/wood,
/area/lavaland/surface/outdoors/unexplored/danger)
"S" = (
/turf/simulated/floor/wood{
icon_state = "wood-broken7"
},
/area/lavaland/surface/outdoors/unexplored/danger)
(1,1,1) = {"
c
c
c
c
c
"}
(2,1,1) = {"
y
c
c
c
y
"}
(3,1,1) = {"
q
a
b
a
S
"}
(4,1,1) = {"
y
c
c
c
y
"}
(5,1,1) = {"
c
c
c
c
c
"}
@@ -0,0 +1,49 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/structure/lattice/catwalk/mining,
/obj/structure/marker_beacon/dock_marker,
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"b" = (
/obj/structure/lattice/catwalk/mining,
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
"c" = (
/turf/template_noop,
/area/lavaland/surface/outdoors/unexplored/danger)
(1,1,1) = {"
c
c
c
c
c
"}
(2,1,1) = {"
b
c
c
c
b
"}
(3,1,1) = {"
b
a
b
a
b
"}
(4,1,1) = {"
b
c
c
c
b
"}
(5,1,1) = {"
c
c
c
c
c
"}
@@ -93,7 +93,7 @@
/obj/structure/stone_tile{
dir = 1
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"r" = (
/obj/structure/stone_tile/block{
@@ -106,7 +106,7 @@
/obj/structure/stone_tile/cracked{
dir = 4
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"t" = (
/obj/structure/stone_tile/surrounding/cracked{
@@ -115,14 +115,14 @@
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner{
dir = 1
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"u" = (
/obj/structure/stone_tile{
dir = 1
},
/obj/structure/stone_tile/block/cracked,
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"v" = (
/obj/structure/stone_tile{
@@ -136,7 +136,7 @@
/obj/structure/stone_tile/block/cracked{
dir = 8
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"x" = (
/obj/structure/stone_tile{
@@ -10,7 +10,7 @@
},
/area/ruin/unpowered/misc_lavaruin)
"c" = (
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/ruin/unpowered/misc_lavaruin)
"d" = (
/turf/simulated/wall/cult,
@@ -51,7 +51,7 @@
},
/area/lavaland/surface/outdoors/unexplored)
"l" = (
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors/unexplored)
"m" = (
/obj/item/clockwork/alloy_shards/medium,
@@ -75,7 +75,7 @@
/area/lavaland/surface/outdoors/unexplored)
"q" = (
/obj/structure/lattice/catwalk/clockwork,
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors/unexplored)
"r" = (
/obj/structure/lattice/clockwork,
@@ -6,7 +6,7 @@
/turf/simulated/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors)
"c" = (
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"d" = (
/obj/effect/spawner/random_spawners/wall_rusted_always,
@@ -6,7 +6,7 @@
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"c" = (
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"d" = (
/obj/effect/baseturf_helper/lava_land/surface,
@@ -6,7 +6,7 @@
/turf/simulated/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors)
"c" = (
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"d" = (
/obj/effect/baseturf_helper/lava_land/surface,
@@ -8,7 +8,7 @@
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"m" = (
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"r" = (
/obj/effect/mapping_helpers/no_lava,
@@ -6,7 +6,7 @@
/turf/simulated/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors)
"c" = (
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"d" = (
/obj/effect/baseturf_helper/lava_land/surface,
@@ -3,7 +3,7 @@
/turf/simulated/wall/indestructible/riveted,
/area/ruin/unpowered/misc_lavaruin)
"b" = (
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/ruin/unpowered/misc_lavaruin)
"c" = (
/obj/item/paper/fluff/stations/lavaland/sloth/note,
@@ -124,7 +124,7 @@
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
"G" = (
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"H" = (
/obj/structure/alien/weeds,
+34 -34
View File
@@ -60,7 +60,7 @@
/turf/simulated/mineral/random/volcanic,
/area/lavaland/surface/outdoors)
"aj" = (
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"ak" = (
/turf/simulated/mineral/random/volcanic,
@@ -1779,7 +1779,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"dP" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -1850,7 +1850,7 @@
dir = 1
},
/obj/structure/lattice/catwalk/mining,
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"dU" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -3175,7 +3175,7 @@
/area/mine/sleeper)
"go" = (
/obj/structure/stone_tile/block,
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"gp" = (
/obj/structure/closet/secure_closet/miner,
@@ -3417,13 +3417,13 @@
/obj/structure/stone_tile/block{
dir = 4
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"gO" = (
/obj/structure/stone_tile/block{
dir = 8
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"gP" = (
/obj/structure/stone_tile/slab,
@@ -3464,7 +3464,7 @@
/obj/structure/stone_tile/block{
dir = 1
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"hv" = (
/obj/effect/decal/cleanable/dirt,
@@ -3750,7 +3750,7 @@
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 8
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"jH" = (
/obj/structure/stone_tile/surrounding_tile{
@@ -3761,7 +3761,7 @@
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 4
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"jK" = (
/turf/simulated/floor/plasteel{
@@ -3778,7 +3778,7 @@
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 8
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"jN" = (
/obj/structure/stone_tile/surrounding_tile{
@@ -3789,7 +3789,7 @@
},
/obj/structure/stone_tile/surrounding_tile,
/obj/structure/stone_tile/center/cracked,
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"jP" = (
/obj/effect/spawner/random_spawners/wall_rusted_maybe,
@@ -3870,7 +3870,7 @@
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 1
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"kD" = (
/obj/structure/stone_tile/surrounding_tile{
@@ -3883,7 +3883,7 @@
dir = 8
},
/obj/structure/stone_tile/center,
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"kH" = (
/obj/structure/stone_tile/surrounding_tile{
@@ -3894,7 +3894,7 @@
dir = 4
},
/obj/structure/stone_tile/center/cracked,
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"kI" = (
/turf/simulated/wall/mineral/titanium,
@@ -3910,7 +3910,7 @@
dir = 1
},
/obj/structure/stone_tile/center,
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"kM" = (
/obj/structure/stone_tile/block/cracked{
@@ -3996,7 +3996,7 @@
/obj/structure/stone_tile/cracked{
dir = 8
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"lu" = (
/obj/structure/stone_tile/block/cracked{
@@ -4015,17 +4015,17 @@
/obj/structure/stone_tile/cracked{
dir = 1
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"lw" = (
/obj/structure/stone_tile/cracked,
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"ly" = (
/obj/structure/stone_tile/cracked{
dir = 1
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"lz" = (
/obj/structure/stone_tile/cracked{
@@ -4034,7 +4034,7 @@
/obj/structure/stone_tile/block{
dir = 4
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"lD" = (
/obj/structure/stone_tile/block/cracked{
@@ -4043,7 +4043,7 @@
/obj/structure/stone_tile/block/cracked{
dir = 8
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"lE" = (
/obj/structure/stone_tile/block/cracked{
@@ -4052,7 +4052,7 @@
/obj/structure/stone_tile/cracked{
dir = 1
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"lF" = (
/obj/structure/stone_tile/block/cracked{
@@ -4064,7 +4064,7 @@
/obj/structure/stone_tile{
dir = 8
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"lG" = (
/obj/structure/stone_tile/block/cracked{
@@ -4077,7 +4077,7 @@
/obj/structure/stone_tile/cracked{
dir = 4
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"lO" = (
/obj/effect/decal/cleanable/dirt,
@@ -4100,7 +4100,7 @@
/obj/structure/stone_tile/surrounding/cracked{
dir = 6
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"lR" = (
/obj/structure/stone_tile/block/cracked{
@@ -4122,14 +4122,14 @@
/obj/structure/stone_tile/cracked{
dir = 8
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"lW" = (
/obj/structure/stone_tile/block/cracked,
/obj/structure/stone_tile/block/cracked{
dir = 1
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"lZ" = (
/obj/structure/stone_tile/block/cracked{
@@ -4138,7 +4138,7 @@
/obj/structure/stone_tile/cracked{
dir = 4
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"ma" = (
/obj/structure/stone_tile/block/cracked{
@@ -4157,7 +4157,7 @@
/obj/structure/stone_tile/block{
dir = 8
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"mi" = (
/obj/machinery/computer/security{
@@ -4188,7 +4188,7 @@
dir = 8
},
/obj/structure/stone_tile/cracked,
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"mn" = (
/obj/structure/stone_tile/block/cracked,
@@ -4254,7 +4254,7 @@
/obj/structure/stone_tile{
dir = 4
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"mw" = (
/obj/structure/stone_tile{
@@ -4263,11 +4263,11 @@
/obj/structure/stone_tile{
dir = 4
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"mx" = (
/obj/structure/stone_tile,
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"my" = (
/obj/structure/stone_tile/cracked{
@@ -4300,7 +4300,7 @@
/obj/structure/stone_tile{
dir = 1
},
/turf/simulated/floor/plating/lava/smooth/lava_land_surface,
/turf/simulated/floor/plating/lava/smooth/mapping_lava,
/area/lavaland/surface/outdoors)
"mD" = (
/obj/structure/stone_tile,
+6
View File
@@ -546,3 +546,9 @@
#define DEADCHAT_ANARCHY_MODE (1<<1)
/// Mutes the democracy mode messages send to orbiters at the end of each cycle. Useful for when the cooldown is so low it'd get spammy.
#define MUTE_DEADCHAT_DEMOCRACY_MESSAGES (1<<2)
// Lavaland cave design defines
#define BLOCKED_BURROWS "Blocked Burrows"
#define CLASSIC_CAVES "Classic Caves"
#define DEADLY_DEEPROCK "Deadly Deeprock"
+2
View File
@@ -50,4 +50,6 @@ GLOBAL_LIST_EMPTY(space_ruins_templates)
GLOBAL_LIST_EMPTY(lava_ruins_templates)
GLOBAL_LIST_EMPTY(shelter_templates)
GLOBAL_LIST_EMPTY(shuttle_templates)
GLOBAL_LIST_EMPTY(bridge_horizontal_templates)
GLOBAL_LIST_EMPTY(bridge_vertical_templates)
GLOBAL_LIST_EMPTY(event_templates)
@@ -12,6 +12,10 @@ SUBSYSTEM_DEF(mapping)
var/list/ghostteleportlocs
///List of areas that exist on the station this shift
var/list/existing_station_areas
///What do we have as the lavaland theme today?
var/turf/simulated/floor/lavaland_theme
///What primary cave theme we have picked for cave generation today.
var/cave_theme
// This has to be here because world/New() uses [station_name()], which looks this datum up
/datum/controller/subsystem/mapping/PreInit()
@@ -36,6 +40,10 @@ SUBSYSTEM_DEF(mapping)
F << next_map.type
/datum/controller/subsystem/mapping/Initialize()
lavaland_theme = pick(/turf/simulated/floor/plating/lava/smooth/lava_land_surface, /turf/simulated/floor/plating/lava/smooth/lava_land_surface/plasma, /turf/simulated/floor/chasm/straight_down/lava_land_surface)
log_startup_progress("We feel like [lavaland_theme] today...") //We load this first. In the event some nerd ever makes a surface map, and we don't have it in lavaland in the event lavaland is disabled.
cave_theme = pick(BLOCKED_BURROWS, CLASSIC_CAVES, DEADLY_DEEPROCK)
log_startup_progress("We feel like [cave_theme] today...")
// Load all Z level templates
preloadTemplates()
@@ -63,8 +71,22 @@ SUBSYSTEM_DEF(mapping)
log_startup_progress("Populating lavaland...")
var/lavaland_setup_timer = start_watch()
seedRuins(list(level_name_to_num(MINING)), GLOB.configuration.ruins.lavaland_ruin_budget, /area/lavaland/surface/outdoors/unexplored, GLOB.lava_ruins_templates)
spawn_rivers(level_name_to_num(MINING))
log_startup_progress("Successfully populated lavaland in [stop_watch(lavaland_setup_timer)]s.")
switch(lavaland_theme)
if(/turf/simulated/floor/plating/lava/smooth/lava_land_surface)
spawn_rivers(level_name_to_num(MINING)) //Default spawn, no tweaks needed
if(/turf/simulated/floor/plating/lava/smooth/lava_land_surface/plasma) //More rivers, smaller
spawn_rivers(level_name_to_num(MINING), nodes = 2)
spawn_rivers(level_name_to_num(MINING), nodes = 2)
if(/turf/simulated/floor/chasm/straight_down/lava_land_surface) //Thiner chasms, bridges, reaches to edge of map.
spawn_rivers(level_name_to_num(MINING), nodes = 6, turf_type = /turf/simulated/floor/plating/lava/smooth/mapping_lava, whitelist_area = /area/lavaland/surface/outdoors, min_x = 50, min_y = 7, max_x = 250, max_y = 225, prob = 10, prob_loss = 5)
var/time_spent = stop_watch(lavaland_setup_timer)
log_startup_progress("Successfully populated lavaland in [time_spent]s.")
if(time_spent >= 10)
log_startup_progress("!!!ERROR!!! Lavaland took FAR too long to generate at [time_spent] seconds. Notify maintainers immediately! !!!ERROR!!!") //In 3 testing cases so far, I have had it take far too long to generate. I am 99% sure I have fixed this issue, but never hurts to be sure
WARNING("!!!ERROR!!! Lavaland took FAR too long to generate at [time_spent] seconds. Notify maintainers immediately! !!!ERROR!!!")
var/loud_annoying_alarm = sound('sound/machines/engine_alert1.ogg')
for(var/get_player_attention in GLOB.player_list)
SEND_SOUND(get_player_attention, loud_annoying_alarm)
else
log_startup_progress("Skipping lavaland ruins...")
+17
View File
@@ -122,6 +122,7 @@
preloadRuinTemplates()
preloadShelterTemplates()
preloadShuttleTemplates()
preloadBridgeTemplates()
preloadEventTemplates()
/proc/preloadRuinTemplates()
@@ -170,6 +171,22 @@
GLOB.shuttle_templates[S.shuttle_id] = S
GLOB.map_templates[S.shuttle_id] = S
/proc/preloadBridgeTemplates()
for(var/item in subtypesof(/datum/map_template/ruin/bridge/horizontal))
var/datum/map_template/ruin/bridge/horizontal/horizontal_type = item
if(!(initial(horizontal_type.suffix)))
continue
var/datum/map_template/ruin/bridge/horizontal/S = new horizontal_type()
GLOB.bridge_horizontal_templates[S.suffix] = S
GLOB.map_templates[S.suffix] = S
for(var/item in subtypesof(/datum/map_template/ruin/bridge/vertical))
var/datum/map_template/ruin/bridge/horizontal/vertical_type = item
if(!(initial(vertical_type.suffix)))
continue
var/datum/map_template/ruin/bridge/vertical/V = new vertical_type()
GLOB.bridge_vertical_templates[V.suffix] = V
GLOB.map_templates[V.suffix] = V
/proc/preloadEventTemplates()
for(var/item in subtypesof(/datum/map_template/event))
var/datum/map_template/event/event_type = item
+82
View File
@@ -0,0 +1,82 @@
/datum/map_template/ruin/bridge
prefix = "_maps/map_files/RandomRuins/LavaRuins/chasm_bridges/"
ci_exclude = /datum/map_template/ruin/bridge
/datum/map_template/ruin/bridge/horizontal
ci_exclude = /datum/map_template/ruin/bridge/horizontal
/datum/map_template/ruin/bridge/horizontal/one
name = "Horizontal Bridge One"
suffix = "lavaland_bridge_horizontal_1.dmm"
/datum/map_template/ruin/bridge/horizontal/two
name = "Horizontal Bridge Two"
suffix = "lavaland_bridge_horizontal_2.dmm"
/datum/map_template/ruin/bridge/horizontal/three
name = "Horizontal Bridge Three"
suffix = "lavaland_bridge_horizontal_3.dmm"
/datum/map_template/ruin/bridge/horizontal/four
name = "Horizontal Bridge Four"
suffix = "lavaland_bridge_horizontal_4.dmm"
/datum/map_template/ruin/bridge/horizontal/five
name = "Horizontal Bridge Five"
suffix = "lavaland_bridge_horizontal_5.dmm"
/datum/map_template/ruin/bridge/horizontal/six
name = "Horizontal Bridge Six"
suffix = "lavaland_bridge_horizontal_6.dmm"
/datum/map_template/ruin/bridge/vertical
ci_exclude = /datum/map_template/ruin/bridge/vertical
/datum/map_template/ruin/bridge/vertical/one
name = "Vertical Bridge One"
suffix = "lavaland_bridge_vertical_1.dmm"
/datum/map_template/ruin/bridge/vertical/two
name = "Vertical Bridge Two"
suffix = "lavaland_bridge_vertical_2.dmm"
/datum/map_template/ruin/bridge/vertical/three
name = "Vertical Bridge Three"
suffix = "lavaland_bridge_vertical_3.dmm"
/datum/map_template/ruin/bridge/vertical/four
name = "Vertical Bridge Four"
suffix = "lavaland_bridge_vertical_4.dmm"
/datum/map_template/ruin/bridge/vertical/five
name = "Vertical Bridge Five"
suffix = "lavaland_bridge_vertical_5.dmm"
/datum/map_template/ruin/bridge/vertical/six
name = "Vertical Bridge Six"
suffix = "lavaland_bridge_vertical_6.dmm"
/obj/effect/spawner/bridge
name = "Bridge spawner"
var/datum/map_template/ruin/bridge/template
/obj/effect/spawner/bridge/Initialize(mapload)
. = ..()
var/turf/east = locate(x + 3, y, z)
var/turf/west = locate(x - 3, y, z)
var/turf/north = locate(x, y + 3, z)
var/turf/south = locate(x, y - 3, z)
var/turf/e1 = locate(x + 1, y, z)
var/turf/w1 = locate(x - 1, y, z)
var/turf/n1 = locate(x, y + 1, z)
var/turf/s1 = locate(x, y - 1, z)
if((ismineralturf(east) || istype(east, /turf/simulated/floor/plating/asteroid)) && (ismineralturf(west) || istype(west, /turf/simulated/floor/plating/asteroid)) && !(ismineralturf(n1) || istype(n1, /turf/simulated/floor/plating/asteroid)) && !(ismineralturf(s1) || istype(s1, /turf/simulated/floor/plating/asteroid)))
template = GLOB.bridge_horizontal_templates[pick("lavaland_bridge_horizontal_1.dmm", "lavaland_bridge_horizontal_2.dmm", "lavaland_bridge_horizontal_3.dmm", "lavaland_bridge_horizontal_4.dmm", "lavaland_bridge_horizontal_5.dmm", "lavaland_bridge_horizontal_6.dmm")]
template.load(loc, centered = TRUE)
else if((ismineralturf(north) || istype(north, /turf/simulated/floor/plating/asteroid)) && (ismineralturf(south) || istype(south, /turf/simulated/floor/plating/asteroid)) && !(ismineralturf(e1) || istype(e1, /turf/simulated/floor/plating/asteroid)) && !(ismineralturf(w1) || istype(w1, /turf/simulated/floor/plating/asteroid)))
template = GLOB.bridge_vertical_templates[pick("lavaland_bridge_vertical_1.dmm", "lavaland_bridge_vertical_2.dmm", "lavaland_bridge_vertical_3.dmm", "lavaland_bridge_vertical_4.dmm", "lavaland_bridge_vertical_5.dmm", "lavaland_bridge_vertical_6.dmm")]
template.load(loc, centered = TRUE)
return INITIALIZE_HINT_QDEL
@@ -148,7 +148,7 @@
nitrogen = 23
temperature = 300
planetary_atmos = TRUE
baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface
baseturf = /turf/simulated/floor/plating/lava/smooth/mapping_lava
/turf/simulated/floor/plating/asteroid/airless
temperature = TCMB
@@ -198,7 +198,9 @@ GLOBAL_LIST_INIT(megafauna_spawn_list, list(/mob/living/simple_animal/hostile/me
if (!megafauna_spawn_list)
megafauna_spawn_list = GLOB.megafauna_spawn_list
if (!flora_spawn_list)
flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2)
flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2, /obj/structure/flora/ash/cap_shroom = 2, /obj/structure/flora/ash/stem_shroom = 2, /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2, /obj/structure/flora/ash/rock/style_random = 1)
if(SSmapping.cave_theme == BLOCKED_BURROWS)
flora_spawn_list += list(/obj/structure/flora/ash/rock/style_random = 3) //Let us see how this goes
. = ..()
if(!has_data)
produce_tunnel_from_data()
@@ -216,7 +218,18 @@ GLOBAL_LIST_INIT(megafauna_spawn_list, list(/mob/living/simple_animal/hostile/me
backward_cave_dir = angle2dir(dir2angle(forward_cave_dir) + 180)
/turf/simulated/floor/plating/asteroid/airless/cave/proc/produce_tunnel_from_data(tunnel_length, excluded_dir = -1)
get_cave_data(tunnel_length, excluded_dir)
if(!tunnel_length)//This is a sub cave do not overide repeat do not overide
get_cave_data(tunnel_length, excluded_dir)
switch(SSmapping.cave_theme)
if(BLOCKED_BURROWS) //Longer on average
get_cave_data(rand(40, 60), excluded_dir)
if(CLASSIC_CAVES) //Classic
get_cave_data(tunnel_length, excluded_dir)
if(DEADLY_DEEPROCK) //Smaller into large rooms with more mobs.
get_cave_data(rand(20, 40), excluded_dir)
if(prob(25)) //Less caves due to big openings. This may lead to fauna inside 1x1 rooms. We'll call that a suprise mechanic
SpawnFloor(src, 75) //now with extra suprise
return
// Make our tunnels
make_tunnel(forward_cave_dir)
if(going_backwards)
@@ -233,7 +246,7 @@ GLOBAL_LIST_INIT(megafauna_spawn_list, list(/mob/living/simple_animal/hostile/me
break
var/list/L = list(45)
if(ISODD(dir2angle(dir))) // We're going at an angle and we want thick angled tunnels.
if(ISODD(dir2angle(dir)) && (!SSmapping.cave_theme == BLOCKED_BURROWS || prob(33))) // We're going at an angle and we want thick angled tunnels.
L += -45
// Expand the edges of our tunnel
@@ -250,7 +263,13 @@ GLOBAL_LIST_INIT(megafauna_spawn_list, list(/mob/living/simple_animal/hostile/me
if(istype(tunnel))
// Small chance to have forks in our tunnel; otherwise dig our tunnel.
if(i > 3 && prob(20))
var/caveprob = 20
switch(SSmapping.cave_theme)
if(BLOCKED_BURROWS) //Longer on average
caveprob = 30 //More splitting
if(DEADLY_DEEPROCK) //Smaller into large rooms with more mobs.
caveprob = 10 //Less splitting
if(i > 3 && prob(caveprob))
var/turf/simulated/floor/plating/asteroid/airless/cave/C = tunnel.ChangeTurf(data_having_type, FALSE, TRUE)
C.going_backwards = FALSE
C.produce_tunnel_from_data(rand(10, 15), dir)
@@ -262,11 +281,47 @@ GLOBAL_LIST_INIT(megafauna_spawn_list, list(/mob/living/simple_animal/hostile/me
// Chance to change our direction left or right.
if(i > 2 && prob(33))
// We can't go a full loop though
next_angle = -next_angle
if(!SSmapping.cave_theme == BLOCKED_BURROWS || prob(60))
next_angle = -next_angle
setDir(angle2dir(dir2angle(dir) )+ next_angle)
if(length -2 == i && !has_data) //Branches will not make this
SpawnRoom(tunnel)
/turf/simulated/floor/plating/asteroid/airless/cave/proc/SpawnRoom(turf/T)
switch(SSmapping.cave_theme)
if(DEADLY_DEEPROCK)
var/tempradius = rand(10, 15)
var/probmodifer = 43 * tempradius //Yes this is a magic number, it is a magic number that works well.
for(var/turf/NT in circlerangeturfs(T, tempradius))
var/distance = (max(get_dist(T, NT), 1)) //Get dist throws -1 if same turf
if(prob(min(probmodifer / distance, 100)))
if(ismineralturf(NT) || istype(NT, /turf/simulated/floor/plating/asteroid)) //No spawning on lava / other ruins
SpawnFloor(NT, 50) //Room has higher probabilty.
if(prob(25))
tempradius = round(tempradius / 3)
var/turf/oasis_lake = pickweight(list(/turf/simulated/floor/plating/lava/smooth/lava_land_surface = 4, /turf/simulated/floor/plating/lava/smooth/lava_land_surface/plasma = 4, /turf/simulated/floor/chasm/straight_down/lava_land_surface = 4, /turf/simulated/floor/plating/lava/smooth/mapping_lava = 6, /turf/simulated/floor/beach/away/water = 1, /turf/simulated/floor/plating/asteroid = 1))
if(oasis_lake == /turf/simulated/floor/plating/asteroid)
new /obj/effect/spawner/oasisrock(T, tempradius)
for(var/turf/oasis in circlerangeturfs(T, tempradius))
oasis.ChangeTurf(oasis_lake, ignore_air = TRUE)
/turf/simulated/floor/plating/asteroid/airless/cave/proc/SpawnFloor(turf/T)
/obj/effect/spawner/oasisrock
name = "Oasis rock spawner"
/obj/effect/spawner/oasisrock/Initialize(mapload, radius)
. = ..()
addtimer(CALLBACK(src, PROC_REF(make_rock), radius), 5 SECONDS)
/obj/effect/spawner/oasisrock/proc/make_rock(radius)
for(var/turf/oasis in circlerangeturfs(get_turf(src), radius))
oasis.ChangeTurf(/turf/simulated/mineral/random/high_chance/volcanic, ignore_air = TRUE)
var/list/valid_turfs = RANGE_EDGE_TURFS(radius + 2, src)
for(var/mob/M in range(src, radius)) //We don't want mobs inside the ore rock
M.forceMove(pick(valid_turfs))
qdel(src)
/turf/simulated/floor/plating/asteroid/airless/cave/proc/SpawnFloor(turf/T, monsterprob = 30)
for(var/S in RANGE_TURFS(1, src))
var/turf/NT = S
if(!NT || isspaceturf(NT) || istype(NT.loc, /area/mine/explored) || istype(NT.loc, /area/lavaland/surface/outdoors/explored))
@@ -276,11 +331,11 @@ GLOBAL_LIST_INIT(megafauna_spawn_list, list(/mob/living/simple_animal/hostile/me
return
SpawnFlora(T)
SpawnMonster(T)
SpawnMonster(T, monsterprob)
T.ChangeTurf(turf_type, FALSE, FALSE, TRUE)
/turf/simulated/floor/plating/asteroid/airless/cave/proc/SpawnMonster(turf/T)
if(prob(30))
/turf/simulated/floor/plating/asteroid/airless/cave/proc/SpawnMonster(turf/T, monsterprob = 30)
if(prob(monsterprob))
if(istype(loc, /area/mine/explored) || !istype(loc, /area/lavaland/surface/outdoors/unexplored))
return
var/randumb = pickweight(mob_spawn_list)
@@ -291,11 +346,17 @@ GLOBAL_LIST_INIT(megafauna_spawn_list, list(/mob/living/simple_animal/hostile/me
randumb = maybe_boss
else //this is not danger, don't spawn a boss, spawn something else
randumb = pickweight(mob_spawn_list)
for(var/thing in urange(12, T)) //prevents mob clumps
var/scanrange = 12
var/megafaunarange = 7
switch(SSmapping.cave_theme)
if(DEADLY_DEEPROCK)
if(prob(50) && monsterprob > 30)
scanrange = rand(4, 7)
megafaunarange = scanrange
for(var/thing in urange(scanrange, T)) //prevents mob clumps
if(!ishostile(thing) && !istype(thing, /obj/structure/spawner))
continue
if((ismegafauna(randumb) || ismegafauna(thing)) && get_dist(T, thing) <= 7)
if((ismegafauna(randumb) || ismegafauna(thing)) && get_dist(T, thing) <= megafaunarange)
return //if there's a megafauna within standard view don't spawn anything at all
if(ispath(randumb, /mob/living/simple_animal/hostile/asteroid) || istype(thing, /mob/living/simple_animal/hostile/asteroid))
return //if the random is a standard mob, avoid spawning if there's another one within 12 tiles
@@ -314,7 +375,11 @@ GLOBAL_LIST_INIT(megafauna_spawn_list, list(/mob/living/simple_animal/hostile/me
#undef SPAWN_BUBBLEGUM
/turf/simulated/floor/plating/asteroid/airless/cave/proc/SpawnFlora(turf/T)
if(prob(12))
var/floraprob = 12
switch(SSmapping.cave_theme)
if(BLOCKED_BURROWS)
floraprob = 30 //Lots of folliage, lots of blockage
if(prob(floraprob))
if(istype(loc, /area/mine/explored) || istype(loc, /area/lavaland/surface/outdoors/explored))
return
var/randumb = pickweight(flora_spawn_list)
+10 -5
View File
@@ -9,6 +9,8 @@
smoothing_groups = list(SMOOTH_GROUP_TURF, SMOOTH_GROUP_TURF_CHASM)
canSmoothWith = list(SMOOTH_GROUP_TURF_CHASM)
density = TRUE //This will prevent hostile mobs from pathing into chasms, while the canpass override will still let it function like an open turf
layer = 1.7
intact = 0
var/static/list/falling_atoms = list() //Atoms currently falling into the chasm
var/static/list/forbidden_types = typecacheof(list(
/obj/singularity,
@@ -24,7 +26,10 @@
/obj/effect/collapse,
/obj/effect/particle_effect/ion_trails,
/obj/effect/abstract,
/obj/effect/ebeam
/obj/effect/ebeam,
/obj/effect/spawner,
/obj/structure/railing,
/obj/machinery/atmospherics/pipe/simple
))
var/drop_x = 1
var/drop_y = 1
@@ -65,7 +70,7 @@
qdel(L)
playsound(src, 'sound/weapons/genhit.ogg', 50, 1)
to_chat(user, "<span class='notice'>You build a floor.</span>")
ChangeTurf(/turf/simulated/floor/plating)
ChangeTurf(/turf/simulated/floor/plating, keep_icon = FALSE)
else
to_chat(user, "<span class='warning'>You need one floor tile to build a floor!</span>")
else
@@ -140,9 +145,9 @@
nitrogen = 23
temperature = 300
planetary_atmos = TRUE
baseturf = /turf/simulated/floor/chasm/straight_down/lava_land_surface
light_range = 1.9 //slightly less range than lava
light_power = 0.65 //less bright, too
baseturf = /turf/simulated/floor/chasm/straight_down/lava_land_surface //Chasms should not turn into lava
light_range = 2
light_power = 0.75
light_color = LIGHT_COLOR_LAVA //let's just say you're falling into lava, that makes sense right
/turf/simulated/floor/chasm/straight_down/lava_land_surface/drop(atom/movable/AM)
+101 -3
View File
@@ -56,7 +56,7 @@
return FALSE
/turf/simulated/floor/plating/lava/proc/burn_stuff(AM)
. = 0
. = FALSE
if(find_safeties())
return FALSE
@@ -71,7 +71,7 @@
continue
if((O.resistance_flags & (LAVA_PROOF|INDESTRUCTIBLE)) || O.throwing)
continue
. = 1
. = TRUE
if((O.resistance_flags & (ON_FIRE)))
continue
if(!(O.resistance_flags & FLAMMABLE))
@@ -83,7 +83,7 @@
O.fire_act(10000, 1000)
else if(isliving(thing))
. = 1
. = TRUE
var/mob/living/L = thing
if(L.flying)
continue //YOU'RE FLYING OVER IT
@@ -142,3 +142,101 @@
/turf/simulated/floor/plating/lava/smooth/airless
temperature = TCMB
/turf/simulated/floor/plating/lava/smooth/lava_land_surface/plasma
name = "liquid plasma"
desc = "A flowing stream of chilled liquid plasma. You probably shouldn't get in."
icon = 'icons/turf/floors/liquidplasma.dmi'
icon_state = "liquidplasma-255"
base_icon_state = "liquidplasma"
baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface/plasma
light_range = 3
light_power = 0.75
light_color = LIGHT_COLOR_PINK
/turf/simulated/floor/plating/lava/smooth/lava_land_surface/plasma/examine(mob/user)
. = ..()
. += "<span class='info'>Some <b>liquid plasma<b> could probably be scooped up with a <b>container</b>.</span>"
/turf/simulated/floor/plating/lava/smooth/lava_land_surface/plasma/attackby(obj/item/I, mob/user, params)
if(!I.is_open_container())
return ..()
if(!I.reagents.add_reagent("plasma", 10))
to_chat(user, "<span class='warning'>[I] is full.</span>")
return
to_chat(user, "<span class='notice'>You scoop out some plasma from the [src] using [I].</span>")
/turf/simulated/floor/plating/lava/smooth/lava_land_surface/plasma/burn_stuff(AM)
. = FALSE
if(find_safeties())
return FALSE
var/thing_to_check = src
if(AM)
thing_to_check = list(AM)
for(var/thing in thing_to_check)
if(isobj(thing))
var/obj/O = thing
if(!O.simulated)
continue
if((O.resistance_flags & (LAVA_PROOF|INDESTRUCTIBLE)) || O.throwing)
continue
. = TRUE
if((O.resistance_flags & ON_FIRE))
continue
if(!(O.resistance_flags & FLAMMABLE))
O.resistance_flags |= FLAMMABLE //Even fireproof things burn up in lava
if(O.resistance_flags & FIRE_PROOF)
O.resistance_flags &= ~FIRE_PROOF
if(O.armor.getRating(FIRE) > 50) //obj with 100% fire armor still get slowly burned away.
O.armor = O.armor.setRating(fire_value = 50)
O.fire_act(10000, 1000)
if(!isliving(thing))
continue
. = TRUE
var/mob/living/burn_living = thing
if(burn_living.flying)
continue //YOU'RE FLYING OVER IT
var/buckle_check = burn_living.buckling
if(!buckle_check)
buckle_check = burn_living.buckled
if(isobj(buckle_check))
var/obj/O = buckle_check
if(O.resistance_flags & LAVA_PROOF)
continue
else if(isliving(buckle_check))
var/mob/living/live = buckle_check
if("lava" in live.weather_immunities)
continue
if("lava" in burn_living.weather_immunities)
continue
burn_living.adjustFireLoss(2)
if(QDELETED(burn_living))
return
burn_living.adjust_fire_stacks(20) //dipping into a stream of plasma would probably make you more flammable than usual
burn_living.IgniteMob()
burn_living.adjust_bodytemperature(-rand(50, 65)) //its cold, man
if(!ishuman(burn_living) || prob(65))
return
var/mob/living/carbon/human/burn_human = burn_living
var/datum/species/burn_species = burn_human.dna.species
if(istype(burn_species, /datum/species/plasmaman) || istype(burn_species, /datum/species/machine)) //ignore plasmamen/robotic species.
return
burn_human.adjustToxLoss(15) //Cold mutagen is bad for you, more at 11.
burn_human.adjustFireLoss(15)
/turf/simulated/floor/plating/lava/smooth/mapping_lava
name = "Adaptive lava / chasm / plasma"
icon_state = "mappinglava"
base_icon_state = "mappinglava"
baseturf = /turf/simulated/floor/plating/lava/smooth/mapping_lava
/turf/simulated/floor/plating/lava/smooth/mapping_lava/Initialize(mapload)
. = ..()
ChangeTurf(SSmapping.lavaland_theme)
+4 -4
View File
@@ -251,7 +251,7 @@
/turf/simulated/mineral/random/high_chance/volcanic
environment_type = "basalt"
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface
baseturf = /turf/simulated/floor/plating/lava/smooth/mapping_lava
oxygen = 14
nitrogen = 23
temperature = 300
@@ -271,7 +271,7 @@
/turf/simulated/mineral/random/volcanic
environment_type = "basalt"
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface
baseturf = /turf/simulated/floor/plating/lava/smooth/mapping_lava
oxygen = 14
nitrogen = 23
temperature = 300
@@ -293,7 +293,7 @@
/turf/simulated/mineral/random/labormineral/volcanic
environment_type = "basalt"
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface
baseturf = /turf/simulated/floor/plating/lava/smooth/mapping_lava
oxygen = 14
nitrogen = 23
temperature = 300
@@ -467,7 +467,7 @@
/turf/simulated/mineral/volcanic/lava_land_surface
environment_type = "basalt"
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface
baseturf = /turf/simulated/floor/plating/lava/smooth/mapping_lava
defer_change = 1
//gibtonite state defines
+11 -2
View File
@@ -4,7 +4,7 @@
#define RANDOM_LOWER_X 50
#define RANDOM_LOWER_Y 50
/proc/spawn_rivers(target_z, nodes = 4, turf_type = /turf/simulated/floor/plating/lava/smooth/lava_land_surface, whitelist_area = /area/lavaland/surface/outdoors, min_x = RANDOM_LOWER_X, min_y = RANDOM_LOWER_Y, max_x = RANDOM_UPPER_X, max_y = RANDOM_UPPER_Y)
/proc/spawn_rivers(target_z, nodes = 4, turf_type = /turf/simulated/floor/plating/lava/smooth/mapping_lava, whitelist_area = /area/lavaland/surface/outdoors, min_x = RANDOM_LOWER_X, min_y = RANDOM_LOWER_Y, max_x = RANDOM_UPPER_X, max_y = RANDOM_UPPER_Y, prob = 25, prob_loss = 11)
var/list/river_nodes = list()
var/num_spawned = 0
var/list/possible_locs = block(locate(min_x, min_y, target_z), locate(max_x, max_y, target_z))
@@ -46,6 +46,9 @@
cur_dir = get_dir(cur_turf, target_turf)
cur_turf = get_step(cur_turf, cur_dir)
if(cur_turf == null) //This might be the fuck up. Kill the loop if this happens
message_admins("Encountered a null turf in river loop.")
break
var/area/new_area = get_area(cur_turf)
if(!istype(new_area, whitelist_area) || (cur_turf.flags & NO_LAVA_GEN)) //Rivers will skip ruins
detouring = 0
@@ -54,7 +57,9 @@
continue
else
var/turf/river_turf = cur_turf.ChangeTurf(turf_type, ignore_air = TRUE)
river_turf.Spread(25, 11, whitelist_area)
if(prob(1))
new /obj/effect/spawner/bridge(river_turf)
river_turf.Spread(prob, prob_loss, whitelist_area)
for(var/WP in river_nodes)
qdel(WP)
@@ -91,6 +96,8 @@
var/turf/T = F
if(!istype(T, logged_turf_type) && T.ChangeTurf(type, ignore_air = TRUE) && prob(probability))
T.Spread(probability - prob_loss, prob_loss, whitelisted_area)
if(prob(1))
new /obj/effect/spawner/bridge(T)
for(var/F in diagonal_turfs) //diagonal turfs only sometimes change, but will always spread if changed
var/turf/T = F
@@ -99,6 +106,8 @@
else if(ismineralturf(T))
var/turf/simulated/mineral/M = T
M.ChangeTurf(M.turf_type, ignore_air = TRUE)
if(prob(1))
new /obj/effect/spawner/bridge(M)
#undef RANDOM_UPPER_X
+1 -1
View File
@@ -52,7 +52,7 @@
/obj/effect/baseturf_helper/lava_land/surface
name = "lavaland baseturf editor"
baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface
baseturf = /turf/simulated/floor/plating/lava/smooth/mapping_lava
/obj/effect/mapping_helpers
icon = 'icons/effects/mapping_helpers.dmi'
+38
View File
@@ -17,6 +17,7 @@
var/harvest_message_med = "You pick a mushroom, carefully collecting the shavings from its cap."
var/harvest_message_high = "You harvest and collect shavings from several mushroom caps."
var/harvested = FALSE
var/delete_on_harvest = FALSE
var/base_icon
var/regrowth_time_low = 8 MINUTES
var/regrowth_time_high = 16 MINUTES
@@ -46,6 +47,9 @@
name = harvested_name
desc = harvested_desc
harvested = TRUE
if(delete_on_harvest)
qdel(src)
return 1
addtimer(CALLBACK(src, PROC_REF(regrow)), rand(regrowth_time_low, regrowth_time_high))
return 1
@@ -143,6 +147,40 @@
// min dmg 3, max dmg 6, prob(70)
AddComponent(/datum/component/caltrop, 3, 6, 70)
/*********
* Rocks *
*********/
// (I know these aren't plants)
/obj/structure/flora/ash/rock
name = "large rock"
desc = "A volcanic rock. Pioneers used to ride these babies for miles."
icon_state = "basalt1"
density = TRUE
resistance_flags = FIRE_PROOF
harvest = /obj/item/stack/ore/glass/basalt
harvest_time = 6 SECONDS
harvest_amount_low = 10
harvest_amount_high = 20
harvest_message_low = "You finish mining the rock."
harvest_message_med = "You finish mining the rock."
harvest_message_high = "You finish mining the rock."
delete_on_harvest = TRUE
/obj/structure/flora/ash/rock/style_2
icon_state = "basalt2"
/obj/structure/flora/ash/rock/style_3
icon_state = "basalt3"
/obj/structure/flora/ash/rock/style_4
icon_state = "basalt4"
/obj/structure/flora/ash/rock/style_random/Initialize(mapload)
. = ..()
icon_state = "basalt[rand(1, 4)]"
/obj/item/reagent_containers/food/snacks/grown/ash_flora
name = "mushroom shavings"
desc = "Some shavings from a tall mushroom. With enough, might serve as a bowl."
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

+1
View File
@@ -476,6 +476,7 @@
#include "code\datums\outfits\vv_outfit.dm"
#include "code\datums\ruins\lavaland.dm"
#include "code\datums\ruins\space_ruins.dm"
#include "code\datums\ruins\bridges\bridges.dm"
#include "code\datums\spell_cooldown\spell_charges.dm"
#include "code\datums\spell_cooldown\spell_cooldown.dm"
#include "code\datums\spell_handler\alien_spell_handler.dm"