Adds a modular bitrunning map, changes safehouse spawns (#79937)

## About The Pull Request
Primarily, this adds one new map to bitrunning that uses modular rooms.

<details>
<summary>pictures</summary>


![image](https://github.com/tgstation/tgstation/assets/42397676/48d78e05-1134-477c-a269-a4b71064058b)

![Screenshot 2023-11-25
133937](https://github.com/tgstation/tgstation/assets/42397676/851d6235-e939-465c-92e5-830886d50d9c)


![image](https://github.com/tgstation/tgstation/assets/42397676/6094dae6-fc3b-4cc4-9fd5-d7dd6d944cee)

</details>

I also added in some changes:
- Safehouses are now loaded using the modular map system rather than the
bespoke solution qservers had.
- Lowers the difficulty of psyker shuffle (which I felt was a little too
nightmarish) and boosts its rewards.
## Why It's Good For The Game
New maps
More integration with prior systems
## Changelog
🆑
add: Added a new modular bitrunning domain - Starfront Saloon.
balance: Psyker shuffle domain was made slightly easier and has been
given more rewards.
/🆑
This commit is contained in:
Jeremiah
2023-12-01 01:06:21 +01:00
committed by GitHub
parent 96f19b962a
commit 7cb5738fcb
58 changed files with 2054 additions and 441 deletions
+1
View File
@@ -6,6 +6,7 @@
2. Create a new dm file inside `modules\bitrunning\virtual_domain\safe_houses` folder..
4. Place exit and goal landmarks (obj/effect/landmark/bitrunning/..). Generally, 3 exits and 2 goals are ok.
5. Ideally, leave 3 spaces for gear. This has usually been xy [1x1] [1x2] [1x3]
6. Place the modular map connector at the bottom left tile.
## Notes
+5 -1
View File
@@ -13,6 +13,10 @@
/obj/effect/decal/cleanable/blood/splatter/over_window,
/turf/open/floor/iron/freezer,
/area/virtual_domain/safehouse)
"h" = (
/obj/modular_map_connector,
/turf/closed/wall/mineral/silver,
/area/virtual_domain/safehouse)
"q" = (
/obj/structure/urinal/directional/west,
/turf/open/floor/iron/freezer,
@@ -103,7 +107,7 @@ G
G
G
G
G
h
"}
(2,1,1) = {"
G
+5 -1
View File
@@ -7,6 +7,10 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/pod,
/area/virtual_domain/safehouse)
"b" = (
/obj/modular_map_connector,
/turf/closed/wall,
/area/virtual_domain/safehouse)
"c" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/small/directional/east,
@@ -172,7 +176,7 @@ C
C
G
G
C
b
"}
(2,1,1) = {"
W
+5 -1
View File
@@ -49,6 +49,10 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/misc/asteroid,
/area/virtual_domain/safehouse)
"s" = (
/obj/modular_map_connector,
/turf/closed/mineral/asteroid,
/area/virtual_domain/safehouse)
"u" = (
/obj/effect/turf_decal/siding/yellow{
dir = 8
@@ -113,7 +117,7 @@ H
A
A
H
H
s
"}
(2,1,1) = {"
A
+5 -1
View File
@@ -14,6 +14,10 @@
},
/turf/open/floor/iron,
/area/virtual_domain/safehouse)
"e" = (
/obj/modular_map_connector,
/turf/closed/wall/ice,
/area/virtual_domain/safehouse)
"f" = (
/obj/effect/turf_decal/weather/snow/corner{
dir = 4
@@ -202,7 +206,7 @@ i
g
a
i
i
e
"}
(2,1,1) = {"
i
+5 -1
View File
@@ -122,6 +122,10 @@
},
/turf/open/floor/iron/dark/smooth_edge,
/area/virtual_domain/safehouse)
"N" = (
/obj/modular_map_connector,
/turf/closed/wall,
/area/virtual_domain/safehouse)
"O" = (
/obj/item/gun/energy/recharge/kinetic_accelerator{
pixel_x = -6;
@@ -191,7 +195,7 @@ f
f
P
P
f
N
"}
(2,1,1) = {"
P
+5 -1
View File
@@ -16,6 +16,10 @@
/obj/structure/tank_dispenser/oxygen,
/turf/open/floor/iron/dark,
/area/virtual_domain/safehouse)
"t" = (
/obj/modular_map_connector,
/turf/closed/wall,
/area/virtual_domain/safehouse)
"w" = (
/obj/effect/turf_decal/loading_area{
dir = 4
@@ -112,7 +116,7 @@ f
f
P
P
f
t
"}
(2,1,1) = {"
P
+5 -1
View File
@@ -43,6 +43,10 @@
/obj/effect/turf_decal/loading_area,
/turf/open/floor/bitrunning_transport,
/area/virtual_domain/safehouse)
"m" = (
/obj/modular_map_connector,
/turf/closed/wall/mineral/titanium,
/area/virtual_domain/safehouse)
"q" = (
/obj/effect/turf_decal/stripes/end,
/obj/effect/decal/cleanable/dirt,
@@ -176,7 +180,7 @@ t
e
e
t
a
m
"}
(2,1,1) = {"
e
+5 -1
View File
@@ -20,6 +20,10 @@
"i" = (
/turf/closed/wall/mineral/titanium/overspace,
/area/virtual_domain/safehouse)
"k" = (
/obj/modular_map_connector,
/turf/closed/wall/mineral/titanium/overspace,
/area/virtual_domain/safehouse)
"l" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 1
@@ -179,7 +183,7 @@ N
a
a
N
i
k
"}
(2,1,1) = {"
a
+6 -1
View File
@@ -10,10 +10,15 @@
"u" = (
/turf/open/floor/plating,
/area/virtual_domain/safehouse)
"U" = (
/obj/effect/landmark/bitrunning/hololadder_spawn,
/obj/modular_map_connector,
/turf/open/floor/plating,
/area/virtual_domain/safehouse)
(1,1,1) = {"
u
d
U
"}
(2,1,1) = {"
u
+5 -1
View File
@@ -27,6 +27,10 @@
/obj/item/newspaper,
/turf/open/indestructible/hotelwood,
/area/virtual_domain/safehouse)
"w" = (
/obj/modular_map_connector,
/turf/closed/wall/mineral/wood,
/area/virtual_domain/safehouse)
"x" = (
/obj/structure/railing/corner/end{
dir = 4
@@ -68,7 +72,7 @@ G
i
G
G
G
w
"}
(2,1,1) = {"
i
+1 -1
View File
@@ -3,7 +3,7 @@
## REQUIRED:
1. One way that the encrypted cache can spawn. This can be from a mob drop, a landmark (place a few, it'll pick one), or a signable landmark if you have a points system.
2. Place a virtual domain baseturf helper in each area.
3. Ensure that the map has ONE tile marked with the safehouse bottom left landmark. If you're using modular safehouses, it will need an open 7x6 area.
3. If you're using modular safehouses, ensure that the map has ONE tile marked with the safehouse modular map loader (and set the KEY). it will need an open 7x6 area.
4. Placing a safehouse area is redundant, but it will ensure there is power in the starting safehouse.
5. Create the dm file that defines the map qualities. You can use the existing ones as a template.
+3 -1
View File
@@ -56,7 +56,9 @@
/turf/open/lava/smooth/lava_land_surface,
/area/lavaland/surface/outdoors/virtual_domain)
"L" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "lavaland_boss"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"P" = (
+3 -1
View File
@@ -754,7 +754,9 @@
/turf/closed/wall/mineral/sandstone,
/area/virtual_domain/fullbright)
"FM" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "mine"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"FQ" = (
+3 -1
View File
@@ -146,7 +146,9 @@
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
/area/lavaland/surface/outdoors/virtual_domain)
"L" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "lavaland_boss"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"O" = (
+3 -1
View File
@@ -58,7 +58,9 @@
/area/virtual_domain/fullbright)
"v" = (
/obj/effect/baseturf_helper/virtual_domain,
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "wood"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"y" = (
+3 -1
View File
@@ -69,7 +69,9 @@
/turf/template_noop,
/area/virtual_domain/safehouse)
"T" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "lavaland_boss"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"W" = (
+3 -1
View File
@@ -370,7 +370,9 @@
/turf/open/floor/noslip,
/area/virtual_domain)
"xt" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "mine"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"yd" = (
+3 -1
View File
@@ -73,7 +73,9 @@
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
/area/lavaland/surface/outdoors/virtual_domain)
"N" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "lavaland_boss"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"T" = (
+3 -1
View File
@@ -97,7 +97,9 @@
/turf/open/floor/grass,
/area/ruin/space/has_grav/powered/virtual_domain)
"O" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "shuttle_space"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"Q" = (
+3 -1
View File
@@ -41,7 +41,9 @@
/turf/open/indestructible/hierophant/two,
/area/lavaland/surface/outdoors/virtual_domain)
"H" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "lavaland_boss"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"K" = (
+6 -4
View File
@@ -149,7 +149,7 @@
"ev" = (
/obj/effect/baseturf_helper/virtual_domain,
/turf/template_noop,
/area/virtual_domain)
/area/virtual_domain/safehouse)
"eJ" = (
/obj/structure/disposalpipe/sorting{
dir = 2
@@ -1233,7 +1233,7 @@
/area/virtual_domain)
"JR" = (
/turf/template_noop,
/area/virtual_domain)
/area/virtual_domain/safehouse)
"JT" = (
/obj/structure/lattice/catwalk{
name = "industrial lift"
@@ -1455,9 +1455,11 @@
/turf/open/floor/plating,
/area/virtual_domain)
"Qo" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "shuttle_space"
},
/turf/template_noop,
/area/virtual_domain)
/area/virtual_domain/safehouse)
"Qr" = (
/turf/closed/indestructible/fakedoor/maintenance{
name = "maintenance access"
+3 -1
View File
@@ -910,7 +910,9 @@
/turf/template_noop,
/area/virtual_domain/fullbright)
"Xn" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "wood"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"XP" = (
+38 -152
View File
@@ -96,10 +96,6 @@
/obj/item/gun/ballistic/revolver/mateba,
/turf/open/indestructible/dark,
/area/ruin/space/has_grav/powered/virtual_domain)
"G" = (
/obj/structure/closet/crate,
/turf/open/indestructible/dark,
/area/ruin/space/has_grav/powered/virtual_domain)
"K" = (
/obj/structure/closet/crate/eva,
/turf/open/indestructible/dark,
@@ -133,7 +129,9 @@
/turf/open/indestructible/dark,
/area/ruin/space/has_grav/powered/virtual_domain)
"U" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "bathroom"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"X" = (
@@ -151,118 +149,6 @@
(1,1,1) = {"
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
"}
(2,1,1) = {"
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
"}
(3,1,1) = {"
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
"}
(4,1,1) = {"
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
"}
(5,1,1) = {"
o
o
Y
Y
Y
@@ -288,12 +174,12 @@ o
o
o
"}
(6,1,1) = {"
(2,1,1) = {"
o
o
Y
Y
r
Q
Q
Q
Q
@@ -316,7 +202,7 @@ o
o
o
"}
(7,1,1) = {"
(3,1,1) = {"
o
o
Y
@@ -344,7 +230,7 @@ o
o
o
"}
(8,1,1) = {"
(4,1,1) = {"
o
o
Y
@@ -372,7 +258,7 @@ o
o
o
"}
(9,1,1) = {"
(5,1,1) = {"
o
o
Y
@@ -400,7 +286,7 @@ o
o
o
"}
(10,1,1) = {"
(6,1,1) = {"
o
o
Y
@@ -428,7 +314,7 @@ o
o
o
"}
(11,1,1) = {"
(7,1,1) = {"
o
o
Y
@@ -456,7 +342,7 @@ o
o
o
"}
(12,1,1) = {"
(8,1,1) = {"
o
o
Y
@@ -484,7 +370,7 @@ o
o
o
"}
(13,1,1) = {"
(9,1,1) = {"
o
o
Y
@@ -512,12 +398,12 @@ Y
Y
o
"}
(14,1,1) = {"
(10,1,1) = {"
o
o
Y
a
a
Q
Y
Q
Q
@@ -540,7 +426,7 @@ U
Y
Y
"}
(15,1,1) = {"
(11,1,1) = {"
o
o
Y
@@ -548,7 +434,7 @@ Y
Y
Y
Q
G
Q
Q
Y
Y
@@ -568,7 +454,7 @@ t
B
Y
"}
(16,1,1) = {"
(12,1,1) = {"
o
o
Y
@@ -596,7 +482,7 @@ t
B
Y
"}
(17,1,1) = {"
(13,1,1) = {"
o
o
Y
@@ -624,7 +510,7 @@ t
B
Y
"}
(18,1,1) = {"
(14,1,1) = {"
o
o
Y
@@ -652,7 +538,7 @@ t
B
Y
"}
(19,1,1) = {"
(15,1,1) = {"
o
o
Y
@@ -680,7 +566,7 @@ t
B
Y
"}
(20,1,1) = {"
(16,1,1) = {"
o
o
Y
@@ -708,7 +594,7 @@ N
B
Y
"}
(21,1,1) = {"
(17,1,1) = {"
o
o
Y
@@ -736,7 +622,7 @@ Y
B
Y
"}
(22,1,1) = {"
(18,1,1) = {"
o
o
Y
@@ -764,7 +650,7 @@ Y
B
Y
"}
(23,1,1) = {"
(19,1,1) = {"
o
o
o
@@ -792,7 +678,7 @@ Y
Y
Y
"}
(24,1,1) = {"
(20,1,1) = {"
o
o
Y
@@ -820,7 +706,7 @@ o
o
o
"}
(25,1,1) = {"
(21,1,1) = {"
Y
Y
Y
@@ -848,7 +734,7 @@ o
o
o
"}
(26,1,1) = {"
(22,1,1) = {"
Y
a
Q
@@ -876,7 +762,7 @@ o
o
o
"}
(27,1,1) = {"
(23,1,1) = {"
Y
Q
Q
@@ -904,7 +790,7 @@ o
o
o
"}
(28,1,1) = {"
(24,1,1) = {"
Y
Y
Q
@@ -919,10 +805,10 @@ Q
F
Q
Y
s
Q
Q
a
Q
Q
Y
o
o
@@ -932,7 +818,7 @@ o
o
o
"}
(29,1,1) = {"
(25,1,1) = {"
Y
Y
Q
@@ -960,7 +846,7 @@ o
o
o
"}
(30,1,1) = {"
(26,1,1) = {"
Y
Q
Q
@@ -988,7 +874,7 @@ o
o
o
"}
(31,1,1) = {"
(27,1,1) = {"
Y
a
Q
@@ -1016,9 +902,9 @@ o
o
o
"}
(32,1,1) = {"
(28,1,1) = {"
Y
a
Q
Y
Y
Y
@@ -1026,7 +912,7 @@ o
Y
Y
Q
a
Q
Y
Y
Y
@@ -1044,7 +930,7 @@ o
o
o
"}
(33,1,1) = {"
(29,1,1) = {"
Y
Y
Y
+14 -145
View File
@@ -11,6 +11,11 @@
/obj/structure/sign/warning/directional/west,
/turf/open/chasm,
/area/ruin/space/has_grav/powered/virtual_domain)
"e" = (
/obj/effect/mob_spawn/corpse/human/cyber_police,
/obj/effect/landmark/bitrunning/cache_spawn,
/turf/open/indestructible/dark,
/area/ruin/space/has_grav/powered/virtual_domain)
"h" = (
/obj/structure/rack,
/turf/open/indestructible/dark,
@@ -69,7 +74,9 @@
/turf/open/indestructible/dark,
/area/ruin/space/has_grav/powered/virtual_domain)
"O" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "bathroom"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"Q" = (
@@ -112,8 +119,6 @@ o
o
o
o
o
o
a
a
a
@@ -131,7 +136,6 @@ o
o
o
o
o
"}
(2,1,1) = {"
o
@@ -140,8 +144,6 @@ o
o
o
o
o
o
a
a
a
@@ -150,7 +152,7 @@ Y
Y
Y
Y
Y
U
a
a
o
@@ -161,11 +163,8 @@ o
o
o
o
o
"}
(3,1,1) = {"
o
o
a
a
a
@@ -191,13 +190,10 @@ o
o
o
o
o
"}
(4,1,1) = {"
o
o
a
W
e
X
Y
B
@@ -221,11 +217,8 @@ o
o
o
o
o
"}
(5,1,1) = {"
o
o
a
b
b
@@ -251,11 +244,8 @@ o
o
o
o
o
"}
(6,1,1) = {"
o
o
a
a
a
@@ -281,11 +271,8 @@ o
o
o
o
o
"}
(7,1,1) = {"
o
o
a
a
a
@@ -311,11 +298,8 @@ o
o
o
o
o
"}
(8,1,1) = {"
o
o
a
a
X
@@ -341,11 +325,8 @@ o
o
o
o
o
"}
(9,1,1) = {"
o
o
a
a
W
@@ -371,11 +352,8 @@ o
o
o
o
o
"}
(10,1,1) = {"
o
o
a
a
Y
@@ -401,11 +379,8 @@ o
o
o
o
o
"}
(11,1,1) = {"
o
o
a
Y
Y
@@ -431,11 +406,8 @@ o
o
o
o
o
"}
(12,1,1) = {"
o
o
a
Y
Y
@@ -461,11 +433,8 @@ o
o
o
o
o
"}
(13,1,1) = {"
o
o
a
Y
Y
@@ -491,11 +460,8 @@ o
o
o
o
o
"}
(14,1,1) = {"
o
o
a
Y
Y
@@ -521,11 +487,8 @@ o
o
o
o
o
"}
(15,1,1) = {"
o
o
a
Y
R
@@ -551,11 +514,8 @@ o
o
o
o
o
"}
(16,1,1) = {"
o
o
a
Y
Y
@@ -581,11 +541,8 @@ a
a
a
a
o
"}
(17,1,1) = {"
o
o
a
Y
V
@@ -611,13 +568,10 @@ t
t
O
a
o
"}
(18,1,1) = {"
o
o
a
Y
U
a
Q
a
@@ -641,11 +595,8 @@ t
t
t
a
o
"}
(19,1,1) = {"
o
o
a
Q
Q
@@ -671,17 +622,14 @@ t
t
t
a
o
"}
(20,1,1) = {"
o
o
a
Q
Q
Q
a
Y
U
Y
Y
a
@@ -701,11 +649,8 @@ t
t
t
a
o
"}
(21,1,1) = {"
o
o
a
a
Q
@@ -731,11 +676,8 @@ t
t
t
a
o
"}
(22,1,1) = {"
o
o
a
a
Q
@@ -761,11 +703,8 @@ t
t
t
a
o
"}
(23,1,1) = {"
o
o
a
a
Q
@@ -791,11 +730,8 @@ t
t
r
a
o
"}
(24,1,1) = {"
o
o
a
a
Q
@@ -821,11 +757,8 @@ a
a
a
a
o
"}
(25,1,1) = {"
o
o
a
c
Q
@@ -851,11 +784,8 @@ o
o
o
o
o
"}
(26,1,1) = {"
o
o
a
Q
Q
@@ -881,11 +811,8 @@ o
o
o
o
o
"}
(27,1,1) = {"
o
o
a
Y
Y
@@ -911,11 +838,8 @@ o
o
o
o
o
"}
(28,1,1) = {"
o
o
a
Y
X
@@ -941,11 +865,8 @@ o
o
o
o
o
"}
(29,1,1) = {"
o
o
a
Y
a
@@ -971,11 +892,8 @@ o
o
o
o
o
"}
(30,1,1) = {"
o
o
a
Y
Y
@@ -1001,11 +919,8 @@ o
o
o
o
o
"}
(31,1,1) = {"
o
o
a
Y
Y
@@ -1031,11 +946,8 @@ o
o
o
o
o
"}
(32,1,1) = {"
o
o
a
Y
Y
@@ -1061,11 +973,8 @@ o
o
o
o
o
"}
(33,1,1) = {"
o
o
a
a
R
@@ -1091,12 +1000,9 @@ o
o
o
o
o
"}
(34,1,1) = {"
o
o
o
a
Y
Y
@@ -1110,7 +1016,7 @@ a
a
Y
M
Y
U
W
i
Q
@@ -1121,14 +1027,11 @@ o
o
o
o
o
"}
(35,1,1) = {"
o
o
o
a
Y
U
Y
Y
Y
@@ -1151,12 +1054,9 @@ o
o
o
o
o
"}
(36,1,1) = {"
o
o
o
a
a
a
@@ -1181,35 +1081,4 @@ o
o
o
o
o
"}
(37,1,1) = {"
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
"}
+3 -1
View File
@@ -112,7 +112,9 @@
/turf/template_noop,
/area/virtual_domain/safehouse)
"vz" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "ice"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"xB" = (
File diff suppressed because it is too large Load Diff
+4 -10
View File
@@ -310,7 +310,9 @@
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/space/has_grav/powered/virtual_domain)
"kJ" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "shuttle_space"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"li" = (
@@ -369,14 +371,6 @@
/obj/machinery/light/directional/south,
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/space/has_grav/powered/virtual_domain)
"nO" = (
/obj/machinery/mineral/ore_redemption{
name = "Syndicate ore redemption machine";
ore_multiplier = 4;
req_access = list("syndicate")
},
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/powered/virtual_domain)
"nU" = (
/obj/structure/sign/poster/contraband/syndicate_pistol,
/turf/closed/wall/r_wall/syndicate,
@@ -2738,7 +2732,7 @@ nB
ru
eB
uP
nO
uP
uP
ru
nB
+3 -1
View File
@@ -11,7 +11,9 @@
/turf/open/floor,
/area/virtual_domain)
"U" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "test_only"
},
/turf/open/floor,
/area/virtual_domain/safehouse)
+3 -1
View File
@@ -221,7 +221,9 @@
/turf/open/misc/asteroid/airless,
/area/ruin/space/has_grav/powered/virtual_domain)
"Uy" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "shuttle_space"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"UE" = (
+3 -1
View File
@@ -80,7 +80,9 @@
/turf/template_noop,
/area/virtual_domain/safehouse)
"Z" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "lavaland_boss"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
+3 -1
View File
@@ -97,7 +97,9 @@
/turf/open/misc/asteroid/basalt/lava_land_surface,
/area/ruin/space/has_grav/powered/virtual_domain)
"v" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/obj/modular_map_root/safehouse{
key = "shuttle"
},
/turf/template_noop,
/area/virtual_domain/safehouse)
"x" = (
+6 -5
View File
@@ -22,11 +22,6 @@
name = "Bitrunning crate spawn"
icon_state = "crate"
/// Where the safehouse will spawn
/obj/effect/landmark/bitrunning/safehouse_spawn
name = "Bitrunning safehouse spawn"
icon_state = "safehouse"
///Swaps the locations of an encrypted crate in the area with another randomly selected crate.
///Randomizes names, so you have to inspect crates manually.
/obj/effect/landmark/bitrunning/crate_replacer
@@ -70,3 +65,9 @@
/obj/effect/landmark/bitrunning/mob_segment
name = "Bitrunning modular mob segment"
icon_state = "mob_segment"
/// Bitrunning safehouses. Typically 7x6 rooms with a single entrance.
/obj/modular_map_root/safehouse
config_file = "strings/modular_maps/safehouse.toml"
icon = 'icons/effects/bitrunning.dmi'
icon_state = "safehouse"
+1 -16
View File
@@ -45,7 +45,7 @@
playsound(src, 'sound/machines/terminal_processing.ogg', 30, 2)
/// If any one of these fail, it reverts the entire process
if(!load_domain(map_key) || !load_safehouse() || !load_map_items() || !load_mob_segments())
if(!load_domain(map_key) || !load_map_items() || !load_mob_segments())
balloon_alert_to_viewers("initialization failed.")
scrub_vdom()
is_ready = TRUE
@@ -115,21 +115,6 @@
return TRUE
/// Loads the safehouse
/obj/machinery/quantum_server/proc/load_safehouse()
var/obj/effect/landmark/bitrunning/safehouse_spawn/landmark = locate() in GLOB.landmarks_list
if(isnull(landmark))
CRASH("vdom: failed to find safehouse spawn landmark")
var/turf/spawn_loc = get_turf(landmark)
qdel(landmark)
var/datum/map_template/safehouse/new_safehouse = new generated_domain.safehouse_path()
if(!new_safehouse.load(spawn_loc))
CRASH("vdom: failed to load safehouse")
return TRUE
/// Stops the current virtual domain and disconnects all users
/obj/machinery/quantum_server/proc/reset(fast = FALSE)
is_ready = FALSE
@@ -7,4 +7,3 @@
key = "ash_drake"
map_name = "ash_drake"
reward_points = BITRUNNER_REWARD_MEDIUM
safehouse_path = /datum/map_template/safehouse/lavaland_boss
@@ -6,7 +6,6 @@
Maybe a few drinks of liquid charm will get the spirits up. As the saying goes, if you can't beat 'em, join 'em."
key = "beach_bar"
map_name = "beach_bar"
safehouse_path = /datum/map_template/safehouse/mine
/datum/lazy_template/virtual_domain/beach_bar/setup_domain(list/created_atoms)
. = ..()
@@ -7,4 +7,3 @@
key = "blood_drunk_miner"
map_name = "blood_drunk_miner"
reward_points = BITRUNNER_REWARD_MEDIUM
safehouse_path = /datum/map_template/safehouse/lavaland_boss
@@ -5,7 +5,6 @@
key = "breeze_bay"
map_name = "breeze_bay"
reward_points = BITRUNNER_REWARD_LOW
safehouse_path = /datum/map_template/safehouse/wood
/datum/lazy_template/virtual_domain/breeze_bay/setup_domain(list/created_atoms)
. = ..()
@@ -8,4 +8,3 @@
key = "bubblegum"
map_name = "bubblegum"
reward_points = BITRUNNER_REWARD_HIGH
safehouse_path = /datum/map_template/safehouse/lavaland_boss
@@ -10,4 +10,3 @@
key = "clown_planet"
map_name = "clown_planet"
reward_points = BITRUNNER_REWARD_LOW
safehouse_path = /datum/map_template/safehouse/mine
@@ -7,5 +7,3 @@
key = "colossus"
map_name = "colossus"
reward_points = BITRUNNER_REWARD_HIGH
safehouse_path = /datum/map_template/safehouse/lavaland_boss
@@ -6,7 +6,6 @@
I bet there's a way to move it myself."
key = "gondola_asteroid"
map_name = "gondola_asteroid"
safehouse_path = /datum/map_template/safehouse/shuttle_space
/// Very pushy gondolas, great for moving loot crates.
/obj/structure/closet/crate/secure/bitrunning/encrypted/gondola
@@ -7,4 +7,3 @@
key = "hierophant"
map_name = "hierophant"
reward_points = BITRUNNER_REWARD_HIGH
safehouse_path = /datum/map_template/safehouse/lavaland_boss
@@ -15,7 +15,6 @@
/datum/modular_mob_segment/hivebots_strong
)
reward_points = BITRUNNER_REWARD_LOW
safehouse_path = /datum/map_template/safehouse/shuttle
// ID Trims
/datum/id_trim/factory
@@ -4,9 +4,8 @@
desc = "Sneak into an abandoned corner of the virtual world, where they store all of the crates. \
Warning -- Virtual domain does not support visual display. This mission must be completed using echolocation."
difficulty = BITRUNNER_DIFFICULTY_MEDIUM
forced_outfit = /datum/outfit/echolocator
help_text = "Getting used to echolocation may be difficult. Remember to walk slowly, and carefully inspect every crate you come across."
key = "psyker_shuffle"
map_name = "psyker_shuffle"
reward_points = BITRUNNER_REWARD_MEDIUM
safehouse_path = /datum/map_template/safehouse/bathroom
forced_outfit = /datum/outfit/echolocator
reward_points = BITRUNNER_REWARD_HIGH
@@ -4,11 +4,10 @@
desc = "Another neglected corner of the virtual world. This one had to be abandoned due to zombie virus. \
Warning -- Virtual domain does not support visual display. This mission must be completed using echolocation."
difficulty = BITRUNNER_DIFFICULTY_MEDIUM
extra_loot = list(/obj/item/radio/headset/psyker = 1) //Looks cool, might make your local burdened chaplain happy.
forced_outfit = /datum/outfit/echolocator
help_text = "This once-beloved virtual domain has been corrupted by a virus, rendering it unstable, full of holes, and full of ZOMBIES! \
There should be a Mystery Box nearby to help get you armed. Get armed, and finish what the cyber-police started!"
key = "psyker_zombies"
map_name = "psyker_zombies"
reward_points = BITRUNNER_REWARD_HIGH
safehouse_path = /datum/map_template/safehouse/bathroom
forced_outfit = /datum/outfit/echolocator
extra_loot = list(/obj/item/radio/headset/psyker = 1) //Looks cool, might make your local burdened chaplain happy.
@@ -5,13 +5,12 @@
help_text = "Ever heard of 'Snakes and Ladders'? It's like that, but with \
instead of ladders its stairs and instead of snakes its a steep drop down a \
cliff into rough rocks or liquid plasma."
extra_loot = list(/obj/item/clothing/suit/costume/snowman = 2)
difficulty = BITRUNNER_DIFFICULTY_LOW
extra_loot = list(/obj/item/clothing/suit/costume/snowman = 2)
forced_outfit = /datum/outfit/job/virtual_domain_iceclimber
key = "stairs_and_cliffs"
map_name = "stairs_and_cliffs"
reward_points = BITRUNNER_REWARD_MEDIUM
safehouse_path = /datum/map_template/safehouse/ice
/turf/open/cliff/snowrock/virtual_domain
name = "icy cliff"
@@ -0,0 +1,14 @@
/datum/lazy_template/virtual_domain/starfront_saloon
name = "Starfront Saloon"
cost = BITRUNNER_COST_MEDIUM
desc = "Looks like you stepped onto the wrong street, partner. Hope you brought your gunslinging skills."
difficulty = BITRUNNER_DIFFICULTY_HIGH
help_text = "One of these rooms has the cache we're looking for. Find it and get out."
is_modular = TRUE
key = "starfront_saloon"
map_name = "starfront_saloon"
mob_modules = list(
/datum/modular_mob_segment/syndicate_team,
/datum/modular_mob_segment/syndicate_elite,
)
reward_points = BITRUNNER_REWARD_HIGH
@@ -12,4 +12,3 @@
map_name = "syndicate_assault"
mob_modules = list(/datum/modular_mob_segment/syndicate_team)
reward_points = BITRUNNER_REWARD_MEDIUM
safehouse_path = /datum/map_template/safehouse/shuttle
@@ -4,7 +4,6 @@
key = "test_only"
map_name = "test_only"
test_only = TRUE
safehouse_path = /datum/map_template/safehouse/test_only
/datum/lazy_template/virtual_domain/test_only/expensive
key = "test_only_expensive"
@@ -3,8 +3,7 @@
cost = BITRUNNER_COST_EXTREME
desc = "Suspended in the silent void of space, the Neon Relic is a haunting echo of a retro-futuristic era. Hang out, enjoy the view."
difficulty = BITRUNNER_DIFFICULTY_NONE
extra_loot = list(/obj/item/stack/spacecash/c500 = 3)
extra_loot = list(/obj/item/stack/spacecash/c500 = 4)
key = "vaporwave"
map_name = "vaporwave"
reward_points = BITRUNNER_REWARD_EXTREME
safehouse_path = /datum/map_template/safehouse/shuttle_space
@@ -7,5 +7,3 @@
key = "wendigo"
map_name = "wendigo"
reward_points = BITRUNNER_REWARD_HIGH
safehouse_path = /datum/map_template/safehouse/lavaland_boss
@@ -11,4 +11,3 @@
map_name = "xeno_nest"
mob_modules = list(/datum/modular_mob_segment/xenos)
reward_points = BITRUNNER_REWARD_LOW
safehouse_path = /datum/map_template/safehouse/shuttle
@@ -1,54 +0,0 @@
/**
* # Safe Houses
* The starting point for virtual domains.
* Create your own: Read the readme file in the '_maps/safehouses' folder.
*/
/datum/map_template/safehouse
name = "virtual domain: safehouse"
/// The map file to load
var/filename = "den"
/datum/map_template/safehouse/New()
mappath = "_maps/safehouses/[filename].dmm"
..(path = mappath)
/datum/map_template/safehouse/test_only
filename = "test_only_safehouse.dmm"
/// The default safehouse map template.
/datum/map_template/safehouse/den
filename = "den"
/datum/map_template/safehouse/wood
filename = "wood"
/datum/map_template/safehouse/dig
filename = "dig"
/datum/map_template/safehouse/shuttle
filename = "shuttle"
// Has space tiles on the four corners.
/datum/map_template/safehouse/shuttle_space
filename = "shuttle_space"
/datum/map_template/safehouse/mine
filename = "mine"
// Comes preloaded with mining combat gear.
/datum/map_template/safehouse/lavaland_boss
filename = "lavaland_boss"
// Chill out
/datum/map_template/safehouse/ice
filename = "ice"
/datum/map_template/safehouse/bathroom
filename = "bathroom"
/**
* Your safehouse here
* /datum/map_template/safehouse/your_type
* filename = "your_map"
*/
@@ -9,8 +9,6 @@
/// Cost of this map to load
var/cost = BITRUNNER_COST_NONE
/// The safehouse to load into the map
var/datum/map_template/safehouse/safehouse_path = /datum/map_template/safehouse/den
/// Any outfit that you wish to force on avatars. Overrides preferences
var/datum/outfit/forced_outfit
/// The description of the map for the console UI
+1
View File
@@ -1,3 +1,4 @@
/// Generic maps with several available biomes.
/obj/modular_map_root/generic
config_file = "strings/modular_maps/generic.toml"
+31
View File
@@ -0,0 +1,31 @@
directory = "_maps/safehouses/"
[rooms.bathroom]
modules = ["bathroom.dmm"]
[rooms.den]
modules = ["den.dmm"]
[rooms.dig]
modules = ["dig.dmm"]
[rooms.ice]
modules = ["ice.dmm"]
[rooms.lavaland_boss]
modules = ["lavaland_boss.dmm"]
[rooms.mine]
modules = ["mine.dmm"]
[rooms.shuttle]
modules = ["shuttle.dmm"]
[rooms.shuttle_space]
modules = ["shuttle_space.dmm"]
[rooms.test_only]
modules = ["test_only_safehouse.dmm"]
[rooms.wood]
modules = ["wood.dmm"]
+1 -1
View File
@@ -3383,7 +3383,6 @@
#include "code\modules\bitrunning\util\virtual_megafauna.dm"
#include "code\modules\bitrunning\util\virtual_mob.dm"
#include "code\modules\bitrunning\virtual_domain\modular_mob_segment.dm"
#include "code\modules\bitrunning\virtual_domain\safehouses.dm"
#include "code\modules\bitrunning\virtual_domain\virtual_domain.dm"
#include "code\modules\bitrunning\virtual_domain\domains\ash_drake.dm"
#include "code\modules\bitrunning\virtual_domain\domains\beach_bar.dm"
@@ -3399,6 +3398,7 @@
#include "code\modules\bitrunning\virtual_domain\domains\psyker_shuffle.dm"
#include "code\modules\bitrunning\virtual_domain\domains\psyker_zombies.dm"
#include "code\modules\bitrunning\virtual_domain\domains\stairs_and_cliffs.dm"
#include "code\modules\bitrunning\virtual_domain\domains\starfront_saloon.dm"
#include "code\modules\bitrunning\virtual_domain\domains\syndicate_assault.dm"
#include "code\modules\bitrunning\virtual_domain\domains\test_only.dm"
#include "code\modules\bitrunning\virtual_domain\domains\vaporwave.dm"