[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>
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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...")
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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."
|
||||
|
||||
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 36 KiB |
@@ -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"
|
||||
|
||||