This commit is contained in:
Seris02
2020-03-14 11:41:39 +08:00
1787 changed files with 407246 additions and 233473 deletions
+36
View File
@@ -0,0 +1,36 @@
name: Autobuild TGUI
on:
push:
branches:
- 'master'
paths:
- 'tgui-next/**.js'
- 'tgui-next/**.scss'
jobs:
build:
name: Rebuild TGUI
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
with:
fetch-depth: 25
- name: Setup Node
uses: actions/setup-node@v1
with:
node-version: '>=12.13'
- name: Build TGUI
run: bin/tgui --ci
working-directory: ./tgui-next
- name: Commit Artifacts
run: |
git config --local user.email "action@github.com"
git config --local user.name "TGUI"
git pull origin master
git commit -m "Automatic TGUI Rebuild [ci skip]" -a || true
- name: Push Artifacts
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_MASTER_KEY }}
@@ -18,6 +18,9 @@
/obj/item/mining_scanner,
/obj/item/flashlight/lantern,
/obj/item/card/id/mining,
/obj/item/gps/mining{
tracking = 0
},
/turf/open/floor/plating,
/area/ruin/powered/golem_ship)
"d" = (
@@ -31,6 +34,9 @@
/obj/item/mining_scanner,
/obj/item/flashlight/lantern,
/obj/item/card/id/mining,
/obj/item/gps/mining{
tracking = 0
},
/turf/open/floor/plating,
/area/ruin/powered/golem_ship)
"e" = (
@@ -150,6 +156,9 @@
"x" = (
/obj/structure/table/wood,
/obj/machinery/reagentgrinder,
/obj/item/gps/mining{
tracking = 0
},
/turf/open/floor/mineral/titanium/purple,
/area/ruin/powered/golem_ship)
"z" = (
@@ -0,0 +1,755 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/closed/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors)
"b" = (
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"c" = (
/turf/template_noop,
/area/template_noop)
"d" = (
/obj/structure/stone_tile/slab,
/turf/closed/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors)
"e" = (
/obj/structure/stone_tile,
/obj/structure/stone_tile{
dir = 8
},
/obj/structure/stone_tile/cracked{
dir = 4
},
/obj/structure/stone_tile/cracked{
dir = 1
},
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"f" = (
/obj/structure/stone_tile/block,
/obj/structure/stone_tile{
dir = 1
},
/obj/structure/stone_tile{
dir = 4
},
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"g" = (
/obj/structure/stone_tile/block,
/obj/structure/stone_tile{
dir = 1
},
/obj/structure/stone_tile{
dir = 4
},
/obj/effect/decal/cleanable/blood,
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"h" = (
/obj/structure/stone_tile/block,
/obj/structure/stone_tile/cracked{
dir = 1
},
/obj/structure/stone_tile{
dir = 4
},
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"i" = (
/obj/structure/stone_tile,
/obj/structure/stone_tile{
dir = 1
},
/obj/structure/stone_tile/cracked{
dir = 4
},
/obj/structure/stone_tile/cracked{
dir = 8
},
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"j" = (
/obj/structure/stone_tile/block/cracked{
dir = 4
},
/obj/structure/stone_tile/cracked{
dir = 4
},
/obj/structure/stone_tile{
dir = 8
},
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"k" = (
/obj/structure/stone_tile/surrounding_tile/cracked,
/obj/structure/stone_tile/center,
/obj/structure/stone_tile/surrounding_tile{
dir = 1
},
/obj/structure/stone_tile/surrounding_tile{
dir = 8
},
/turf/open/indestructible/necropolis,
/area/lavaland/surface/outdoors)
"l" = (
/obj/structure/stone_tile/block/cracked,
/turf/open/indestructible/necropolis,
/area/lavaland/surface/outdoors)
"m" = (
/obj/structure/stone_tile/surrounding_tile/cracked,
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 4
},
/obj/structure/stone_tile/center,
/obj/structure/stone_tile/surrounding_tile{
dir = 8
},
/turf/open/indestructible/necropolis,
/area/lavaland/surface/outdoors)
"n" = (
/obj/structure/stone_tile/block/cracked{
dir = 8
},
/obj/structure/stone_tile/cracked{
dir = 1
},
/obj/structure/stone_tile,
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"o" = (
/obj/structure/stone_tile/block{
dir = 4
},
/obj/structure/stone_tile{
dir = 8
},
/obj/structure/stone_tile{
dir = 4
},
/obj/effect/decal/cleanable/blood,
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"p" = (
/obj/structure/stone_tile/block/cracked{
dir = 4
},
/obj/structure/table/bronze,
/obj/item/disk/design_disk/adv/knight_gear,
/turf/open/indestructible/necropolis,
/area/lavaland/surface/outdoors)
"q" = (
/obj/structure/table/bronze,
/obj/item/stack/sheet/mineral/runite{
amount = 5
},
/turf/open/indestructible/necropolis,
/area/lavaland/surface/outdoors)
"r" = (
/obj/structure/stone_tile/block{
dir = 8
},
/obj/structure/table/bronze,
/obj/item/stack/sheet/mineral/runite{
amount = 5
},
/turf/open/indestructible/necropolis,
/area/lavaland/surface/outdoors)
"s" = (
/obj/structure/stone_tile/block{
dir = 8
},
/obj/structure/stone_tile,
/obj/structure/stone_tile{
dir = 1
},
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"t" = (
/obj/structure/stone_tile/block{
dir = 4
},
/obj/structure/stone_tile{
dir = 8
},
/obj/structure/stone_tile{
dir = 4
},
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"u" = (
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 4
},
/obj/structure/stone_tile/center/cracked,
/obj/structure/stone_tile/surrounding_tile,
/obj/structure/stone_tile/surrounding_tile{
dir = 1
},
/turf/open/indestructible/necropolis,
/area/lavaland/surface/outdoors)
"v" = (
/obj/structure/stone_tile/block{
dir = 1
},
/turf/open/indestructible/necropolis,
/area/lavaland/surface/outdoors)
"w" = (
/obj/structure/stone_tile/surrounding_tile/cracked{
dir = 8
},
/obj/structure/stone_tile/center,
/obj/structure/stone_tile/surrounding_tile{
dir = 1
},
/obj/structure/stone_tile/surrounding_tile{
dir = 4
},
/turf/open/indestructible/necropolis,
/area/lavaland/surface/outdoors)
"x" = (
/obj/structure/stone_tile/block{
dir = 8
},
/obj/structure/stone_tile/cracked{
dir = 1
},
/obj/structure/stone_tile,
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"y" = (
/obj/structure/stone_tile,
/obj/structure/stone_tile{
dir = 8
},
/obj/structure/stone_tile{
dir = 1
},
/obj/structure/stone_tile{
dir = 4
},
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"z" = (
/obj/structure/stone_tile/block{
dir = 1
},
/obj/structure/stone_tile/cracked,
/obj/structure/stone_tile{
dir = 8
},
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"A" = (
/obj/structure/stone_tile/slab/cracked,
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"B" = (
/obj/structure/stone_tile/block/cracked{
dir = 1
},
/obj/structure/stone_tile{
dir = 8
},
/obj/structure/stone_tile,
/obj/effect/decal/cleanable/blood,
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"C" = (
/obj/structure/stone_tile,
/obj/structure/stone_tile{
dir = 8
},
/obj/structure/stone_tile{
dir = 1
},
/obj/structure/stone_tile/cracked{
dir = 4
},
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"D" = (
/turf/closed/indestructible/riveted/boss,
/area/lavaland/surface/outdoors)
"E" = (
/obj/structure/stone_tile/block{
dir = 4
},
/obj/structure/stone_tile/block/cracked{
dir = 8
},
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"F" = (
/obj/structure/stone_tile/slab,
/obj/effect/mapping_helpers/no_lava,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"G" = (
/turf/closed/indestructible/riveted/boss/see_through,
/area/lavaland/surface/outdoors)
"H" = (
/obj/structure/necropolis_gate,
/obj/structure/stone_tile/block{
dir = 4
},
/obj/structure/stone_tile/block/cracked{
dir = 8
},
/obj/structure/fans/tiny/invisible,
/obj/effect/decal/cleanable/blood,
/turf/open/indestructible/boss/air,
/area/lavaland/surface/outdoors)
"I" = (
/obj/structure/stone_tile/slab/cracked,
/turf/closed/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors)
"J" = (
/obj/structure/fluff/divine/convertaltar,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"K" = (
/mob/living/simple_animal/hostile/dark_wizard,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
(1,1,1) = {"
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
"}
(2,1,1) = {"
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
"}
(3,1,1) = {"
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
"}
(4,1,1) = {"
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
"}
(5,1,1) = {"
c
c
a
a
a
c
c
c
c
c
c
c
c
c
a
a
a
a
a
a
"}
(6,1,1) = {"
c
c
a
a
a
c
c
a
a
c
c
a
a
a
a
a
b
b
a
a
"}
(7,1,1) = {"
c
c
c
a
d
a
a
a
a
a
a
a
F
a
b
b
b
b
b
a
"}
(8,1,1) = {"
c
c
a
a
a
a
a
a
a
a
a
a
D
b
b
b
b
b
b
a
"}
(9,1,1) = {"
c
c
a
a
a
a
e
j
o
t
y
D
D
b
K
b
b
b
K
a
"}
(10,1,1) = {"
c
c
a
a
a
a
f
k
p
u
z
D
G
b
b
b
b
b
b
a
"}
(11,1,1) = {"
c
c
a
a
a
a
g
l
q
v
A
E
H
b
b
b
J
b
b
a
"}
(12,1,1) = {"
c
c
a
a
a
a
h
m
r
w
B
D
G
b
b
b
b
b
b
a
"}
(13,1,1) = {"
c
c
a
a
a
a
i
n
s
x
C
D
D
b
K
b
b
b
K
a
"}
(14,1,1) = {"
c
c
c
a
a
a
a
a
a
a
a
a
D
b
b
b
b
b
b
a
"}
(15,1,1) = {"
c
c
c
a
d
a
a
a
a
a
a
a
I
a
b
b
b
b
b
a
"}
(16,1,1) = {"
c
c
a
a
a
a
c
c
c
a
a
a
a
a
a
a
b
b
a
a
"}
(17,1,1) = {"
c
c
a
a
a
c
c
c
c
c
c
c
c
a
a
a
a
a
a
c
"}
(18,1,1) = {"
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
"}
(19,1,1) = {"
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
"}
(20,1,1) = {"
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
"}
+579
View File
@@ -0,0 +1,579 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/closed/mineral/random/no_caves,
/area/ruin/unpowered/no_grav)
"c" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered/no_grav)
"d" = (
/turf/closed/wall,
/area/ruin/unpowered/no_grav)
"e" = (
/turf/closed/wall/rust,
/area/ruin/unpowered/no_grav)
"f" = (
/obj/item/stack/rods{
amount = 2
},
/obj/item/shard,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered/no_grav)
"g" = (
/obj/structure/grille,
/obj/structure/window/fulltile,
/turf/open/floor/plating,
/area/ruin/unpowered/no_grav)
"h" = (
/obj/structure/grille/broken,
/obj/structure/barricade/wooden/crude,
/obj/structure/trap/cult,
/obj/effect/decal/cleanable/glass,
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"i" = (
/obj/structure/light_prism,
/turf/open/floor/plasteel/airless/dark,
/area/ruin/unpowered/no_grav)
"j" = (
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"k" = (
/obj/item/ectoplasm,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered/no_grav)
"l" = (
/obj/structure/closet/crate/coffin,
/turf/open/floor/plasteel/airless/dark,
/area/ruin/unpowered/no_grav)
"m" = (
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"n" = (
/turf/open/floor/carpet/royalblack/airless,
/area/ruin/unpowered/no_grav)
"o" = (
/obj/structure/table/wood/fancy,
/obj/item/reagent_containers/food/drinks/bottle/holywater,
/turf/open/floor/carpet/airless,
/area/ruin/unpowered/no_grav)
"p" = (
/obj/structure/table/wood/fancy,
/obj/item/melee/cleric_mace,
/turf/open/floor/carpet/airless,
/area/ruin/unpowered/no_grav)
"q" = (
/obj/effect/decal/cleanable/shreds,
/turf/open/floor/carpet/airless,
/area/ruin/unpowered/no_grav)
"r" = (
/obj/effect/decal/cleanable/shreds,
/obj/effect/decal/remains/human,
/obj/item/disk/design_disk/adv/cleric_mace,
/obj/structure/trap/cult,
/turf/open/floor/carpet/airless,
/area/ruin/unpowered/no_grav)
"s" = (
/obj/effect/decal/cleanable/shreds,
/turf/open/floor/carpet/royalblack/airless,
/area/ruin/unpowered/no_grav)
"t" = (
/turf/open/floor/carpet/royalblue/airless,
/area/ruin/unpowered/no_grav)
"u" = (
/turf/open/floor/carpet/airless,
/area/ruin/unpowered/no_grav)
"v" = (
/obj/effect/decal/cleanable/blood/splatter,
/obj/effect/decal/cleanable/blood/footprints,
/obj/effect/decal/cleanable/shreds,
/turf/open/floor/carpet/airless,
/area/ruin/unpowered/no_grav)
"w" = (
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/carpet/royalblack/airless,
/area/ruin/unpowered/no_grav)
"x" = (
/obj/structure/bonfire,
/turf/open/floor/plasteel/airless/dark,
/area/ruin/unpowered/no_grav)
"y" = (
/obj/effect/decal/cleanable/blood/tracks,
/turf/open/floor/carpet/airless,
/area/ruin/unpowered/no_grav)
"z" = (
/obj/item/paper/fluff/ruins/clericsden/contact,
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"A" = (
/obj/structure/table/wood{
layer = 3.3
},
/turf/open/floor/carpet/royalblack/airless,
/area/ruin/unpowered/no_grav)
"B" = (
/obj/effect/decal/cleanable/blood/footprints,
/obj/effect/decal/cleanable/blood/tracks,
/turf/open/floor/carpet/airless,
/area/ruin/unpowered/no_grav)
"C" = (
/obj/structure/chair/wood{
dir = 1
},
/turf/open/floor/carpet/royalblue/airless,
/area/ruin/unpowered/no_grav)
"D" = (
/obj/effect/decal/remains/human,
/obj/structure/trap/cult,
/turf/open/floor/carpet/airless,
/area/ruin/unpowered/no_grav)
"E" = (
/obj/effect/decal/cleanable/blood/tracks,
/mob/living/simple_animal/hostile/construct/proteon/hostile,
/turf/open/floor/carpet/airless,
/area/ruin/unpowered/no_grav)
"F" = (
/obj/item/flashlight/flare/torch,
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"G" = (
/obj/effect/decal/cleanable/blood/tracks,
/obj/structure/trap/cult,
/turf/open/floor/carpet/airless,
/area/ruin/unpowered/no_grav)
"H" = (
/obj/structure/light_prism,
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"I" = (
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/carpet/airless,
/area/ruin/unpowered/no_grav)
"J" = (
/obj/structure/rack,
/obj/item/tank/internals/emergency_oxygen,
/obj/item/clothing/mask/breath,
/turf/open/floor/plasteel/airless/dark,
/area/ruin/unpowered/no_grav)
"K" = (
/obj/structure/grille,
/obj/structure/window/fulltile,
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"L" = (
/obj/machinery/door/airlock/wood,
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"M" = (
/obj/effect/decal/cleanable/blood/tracks,
/obj/machinery/door/airlock/wood,
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"N" = (
/mob/living/simple_animal/hostile/construct/proteon,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered/no_grav)
"O" = (
/obj/structure/grille,
/obj/structure/window/fulltile,
/obj/structure/barricade/wooden/crude,
/turf/open/floor/plating/airless,
/area/ruin/unpowered/no_grav)
"Q" = (
/obj/item/storage/book/bible,
/obj/effect/decal/cleanable/blood,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered/no_grav)
"S" = (
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered/no_grav)
"U" = (
/obj/effect/decal/remains/human,
/obj/item/paper/fluff/ruins/clericsden/warning,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered/no_grav)
(1,1,1) = {"
a
a
a
a
a
a
a
a
c
b
c
c
c
c
a
a
a
a
"}
(2,1,1) = {"
a
a
a
c
c
c
c
c
c
c
c
b
c
c
b
c
c
a
"}
(3,1,1) = {"
a
c
b
c
c
b
c
b
c
c
b
b
b
c
b
b
b
a
"}
(4,1,1) = {"
a
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
c
a
"}
(5,1,1) = {"
a
b
d
d
e
d
e
K
d
d
d
d
d
d
e
c
c
a
"}
(6,1,1) = {"
a
b
e
i
l
e
x
m
e
x
m
e
m
J
d
e
b
a
"}
(7,1,1) = {"
a
a
e
j
n
n
t
w
A
C
n
A
C
n
H
e
d
a
"}
(8,1,1) = {"
a
f
h
m
o
q
u
u
u
D
u
u
u
u
I
L
c
c
"}
(9,1,1) = {"
a
b
g
m
p
r
v
y
B
E
B
y
B
G
B
M
U
S
"}
(10,1,1) = {"
a
b
d
m
n
s
t
n
A
C
n
A
C
n
H
d
e
c
"}
(11,1,1) = {"
a
c
e
i
l
d
x
z
e
x
F
e
m
J
e
d
b
b
"}
(12,1,1) = {"
a
a
e
e
d
d
e
O
d
d
d
e
e
d
d
b
b
c
"}
(13,1,1) = {"
a
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
c
c
"}
(14,1,1) = {"
a
c
b
b
b
c
b
b
c
b
c
Q
b
b
b
c
S
a
"}
(15,1,1) = {"
a
a
c
c
c
c
c
c
N
c
c
c
c
S
c
c
a
a
"}
(16,1,1) = {"
a
a
k
c
b
b
c
c
b
c
c
b
c
b
b
b
a
a
"}
(17,1,1) = {"
a
b
c
b
c
b
b
b
b
b
b
b
b
b
c
a
a
a
"}
(18,1,1) = {"
b
b
b
a
a
c
c
c
c
c
c
c
c
a
a
a
a
a
"}
(19,1,1) = {"
a
b
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
+67 -84
View File
@@ -4,32 +4,32 @@
/area/template_noop)
"ab" = (
/turf/closed/mineral/random/low_chance,
/area/ruin/unpowered)
/area/ruin/space)
"ac" = (
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"ad" = (
/obj/machinery/hydroponics/soil,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"ae" = (
/turf/closed/wall/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"af" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"ag" = (
/obj/structure/shuttle/engine/propulsion/right{
dir = 4
},
/turf/closed/wall/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"ah" = (
/obj/structure/table/wood,
/obj/item/shovel,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"ai" = (
/obj/structure/lattice,
/turf/template_noop,
@@ -37,35 +37,35 @@
"aj" = (
/obj/machinery/computer/cryopod,
/turf/closed/wall/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"ak" = (
/obj/structure/fluff/empty_cryostasis_sleeper,
/turf/open/floor/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"al" = (
/obj/machinery/status_display/shuttle,
/turf/closed/wall/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"am" = (
/obj/item/circuitboard/computer/rdconsole,
/obj/item/circuitboard/machine/protolathe/department/science,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"an" = (
/turf/open/floor/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"ao" = (
/obj/structure/chair/comfy/shuttle{
dir = 8
},
/turf/open/floor/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"ap" = (
/obj/machinery/light{
dir = 1
},
/turf/open/floor/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"aq" = (
/obj/machinery/computer{
desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages.";
@@ -73,29 +73,29 @@
name = "Broken Computer"
},
/turf/open/floor/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"ar" = (
/obj/machinery/door/airlock/titanium{
name = "Escape Pod Airlock"
},
/turf/open/floor/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"as" = (
/obj/machinery/light,
/turf/open/floor/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"at" = (
/obj/structure/shuttle/engine/propulsion/left{
dir = 4
},
/turf/closed/wall/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"au" = (
/obj/item/seeds/tower,
/obj/item/seeds/tower,
/obj/item/seeds/tower,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"av" = (
/obj/structure/table/wood,
/obj/item/paper/crumpled{
@@ -103,7 +103,7 @@
},
/obj/item/pen,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aw" = (
/obj/item/stack/sheet/mineral/wood,
/obj/item/stack/sheet/mineral/wood,
@@ -111,55 +111,51 @@
/obj/item/stack/sheet/mineral/wood,
/obj/item/stack/sheet/mineral/wood,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"ax" = (
/obj/item/twohanded/spear,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"ay" = (
/obj/item/grown/log,
/obj/item/grown/log,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"az" = (
/obj/structure/table/wood,
/obj/item/storage/bag/plants/portaseeder,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aA" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered)
/area/ruin/space)
"aB" = (
/obj/item/seeds/banana,
/obj/item/seeds/banana,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aC" = (
/obj/effect/mob_spawn/human/clown/corpse,
/obj/structure/fans/tiny/invisible,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aD" = (
/obj/item/mining_scanner,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
"aE" = (
/obj/machinery/status_display/shuttle,
/turf/closed/wall/mineral/titanium,
/area/ruin/unpowered)
/area/ruin/space)
"aF" = (
/obj/item/pickaxe/emergency,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aG" = (
/obj/structure/sink/puddle,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aH" = (
/obj/structure/table/wood,
/obj/item/storage/firstaid/regular,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aI" = (
/obj/effect/mob_spawn/human/corpse/assistant,
/turf/template_noop,
@@ -168,17 +164,17 @@
/obj/structure/table/wood,
/obj/item/storage/bag/ore,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aK" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aL" = (
/obj/structure/table/wood,
/obj/item/storage/toolbox/mechanical,
/obj/item/clothing/head/welding,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aM" = (
/mob/living/simple_animal/hostile/carp,
/turf/template_noop,
@@ -186,38 +182,38 @@
"aN" = (
/obj/structure/mineral_door/sandstone,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aO" = (
/mob/living/simple_animal/hostile/carp,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered)
/area/ruin/space)
"aP" = (
/obj/item/stack/ore/gold,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aQ" = (
/obj/item/stack/ore/gold,
/obj/item/stack/ore/gold,
/obj/item/stack/ore/gold,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aR" = (
/obj/item/stack/ore/iron,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aS" = (
/turf/closed/wall/mineral/iron,
/area/ruin/unpowered)
/area/ruin/space)
"aT" = (
/obj/item/stack/ore/iron,
/obj/item/stack/ore/iron,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aU" = (
/obj/item/flashlight/lamp,
/obj/structure/table/wood,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"aV" = (
/obj/item/clothing/suit/space/orange,
/turf/template_noop,
@@ -236,89 +232,76 @@
job_description = "Space Hermit"
},
/turf/open/floor/mineral/titanium,
/area/ruin/powered)
"aZ" = (
/turf/closed/wall/mineral/titanium,
/area/ruin/unpowered)
"ba" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/mineral/titanium,
/area/ruin/unpowered)
"bb" = (
/obj/structure/shuttle/engine/propulsion/left{
dir = 4
},
/turf/closed/wall/mineral/titanium,
/area/ruin/unpowered)
/area/ruin/space)
"bc" = (
/obj/item/circuitboard/machine/circuit_imprinter,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bd" = (
/obj/item/grown/bananapeel,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"be" = (
/obj/effect/mob_spawn/human/corpse/cargo_tech,
/obj/structure/fans/tiny/invisible,
/obj/effect/decal/cleanable/vomit,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bf" = (
/obj/item/clothing/glasses/meson,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bg" = (
/obj/item/stock_parts/matter_bin,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bh" = (
/obj/item/circuitboard/machine/autolathe,
/turf/open/floor/mineral/titanium,
/area/ruin/powered)
/area/ruin/space)
"bi" = (
/obj/item/stock_parts/manipulator,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bj" = (
/obj/item/holosign_creator/atmos,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bk" = (
/obj/structure/holosign/barrier/atmos,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bl" = (
/obj/machinery/power/floodlight,
/obj/structure/cable{
icon_state = "0-2"
},
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bm" = (
/obj/structure/cable{
icon_state = "1-4"
},
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bn" = (
/obj/structure/cable{
icon_state = "2-8"
},
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bo" = (
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bp" = (
/obj/item/stack/ore/iron,
/obj/item/stack/ore/iron,
/obj/item/stack/ore/iron,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bq" = (
/obj/structure/cable,
/obj/machinery/power/port_gen/pacman{
@@ -327,20 +310,20 @@
sheets = 10
},
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"br" = (
/obj/item/stack/ore/iron,
/obj/item/stack/sheet/mineral/plasma,
/obj/item/stack/sheet/mineral/plasma,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bs" = (
/obj/item/flashlight/lamp/bananalamp,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
/area/ruin/space)
"bt" = (
/turf/closed/mineral/random/low_chance/earth_like,
/area/ruin/unpowered)
/area/ruin/space)
(1,1,1) = {"
aa
@@ -954,7 +937,7 @@ bh
an
an
ae
aZ
ae
bt
bt
bt
@@ -1006,7 +989,7 @@ ao
ao
ao
ak
ba
af
bt
bt
bt
@@ -1058,7 +1041,7 @@ ap
an
as
aj
aE
al
bt
bt
bt
@@ -1110,7 +1093,7 @@ ao
ao
ao
ak
ba
af
ac
bt
bt
@@ -1162,7 +1145,7 @@ an
an
an
ae
aZ
ae
ac
bt
bt
@@ -1214,7 +1197,7 @@ af
ar
af
at
bb
at
ac
bt
bt
@@ -0,0 +1,111 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"e" = (
/turf/template_noop,
/area/template_noop)
"m" = (
/turf/closed/mineral/random/no_caves,
/area/ruin/space)
"q" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
(1,1,1) = {"
e
e
e
q
q
e
e
e
"}
(2,1,1) = {"
e
e
q
m
m
q
e
e
"}
(3,1,1) = {"
e
q
m
m
m
m
q
e
"}
(4,1,1) = {"
e
q
m
m
m
m
m
q
"}
(5,1,1) = {"
q
m
m
m
m
m
m
q
"}
(6,1,1) = {"
q
m
m
m
m
m
m
q
"}
(7,1,1) = {"
q
m
m
m
m
m
q
e
"}
(8,1,1) = {"
e
q
m
m
m
m
q
e
"}
(9,1,1) = {"
e
e
q
m
m
q
e
e
"}
(10,1,1) = {"
e
e
e
q
q
e
e
e
"}
@@ -0,0 +1,342 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"m" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"n" = (
/turf/closed/mineral/random/no_caves,
/area/ruin/space)
"B" = (
/obj/item/toy/plush/borgplushie,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"J" = (
/turf/template_noop,
/area/template_noop)
"Y" = (
/obj/item/pickaxe/drill,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
(1,1,1) = {"
J
J
m
m
m
m
m
J
J
J
J
J
m
m
J
J
J
"}
(2,1,1) = {"
J
m
n
n
n
n
n
m
J
J
m
m
n
n
m
J
J
"}
(3,1,1) = {"
m
n
n
n
m
B
n
m
J
m
n
n
n
n
m
J
J
"}
(4,1,1) = {"
m
n
n
m
m
n
n
n
m
n
n
n
n
n
n
m
J
"}
(5,1,1) = {"
m
n
n
m
n
n
n
n
m
m
n
n
n
n
n
m
J
"}
(6,1,1) = {"
m
n
n
m
m
m
m
n
n
m
m
m
n
n
n
m
J
"}
(7,1,1) = {"
m
n
n
n
m
n
m
n
n
n
n
m
n
n
n
n
m
"}
(8,1,1) = {"
m
n
n
n
m
n
m
n
n
n
n
m
n
n
n
n
m
"}
(9,1,1) = {"
m
n
n
n
m
n
m
m
m
n
n
m
n
n
n
n
m
"}
(10,1,1) = {"
m
n
n
n
m
n
n
n
m
n
n
m
n
n
n
n
m
"}
(11,1,1) = {"
m
n
n
n
m
Y
n
n
m
n
n
m
m
n
n
n
m
"}
(12,1,1) = {"
m
n
n
n
n
n
n
m
m
m
m
m
n
n
n
m
J
"}
(13,1,1) = {"
J
m
n
n
n
m
n
m
n
n
n
n
n
n
m
J
J
"}
(14,1,1) = {"
J
m
n
n
n
m
m
m
n
n
n
n
n
n
m
J
J
"}
(15,1,1) = {"
J
J
m
m
n
n
n
n
n
n
n
n
n
n
m
J
J
"}
(16,1,1) = {"
J
J
J
J
m
m
n
n
n
n
n
n
m
m
J
J
J
"}
(17,1,1) = {"
J
J
J
J
J
J
m
m
m
m
m
m
J
J
J
J
J
"}
@@ -0,0 +1,277 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/effect/overlay/palmtree_l,
/turf/open/floor/holofloor/beach,
/area/ruin/space/has_grav)
"j" = (
/turf/open/floor/holofloor/beach/coast_t,
/area/ruin/space/has_grav)
"n" = (
/turf/open/floor/holofloor/beach/coast_b,
/area/ruin/space/has_grav)
"o" = (
/turf/template_noop,
/area/template_noop)
"p" = (
/turf/open/floor/holofloor/beach/water,
/area/ruin/space/has_grav)
"t" = (
/obj/effect/overlay/palmtree_r,
/turf/open/floor/holofloor/beach,
/area/ruin/space/has_grav)
"u" = (
/obj/structure/marker_beacon,
/turf/open/floor/holofloor/beach/coast_t,
/area/ruin/space/has_grav)
"A" = (
/turf/open/floor/holofloor/beach,
/area/ruin/space/has_grav)
"F" = (
/mob/living/simple_animal/crab{
desc = "This little bugger seems so happy to dance.!";
name = "raving crab"
},
/turf/open/floor/holofloor/beach/coast_t,
/area/ruin/space/has_grav)
"H" = (
/obj/structure/marker_beacon,
/turf/open/floor/holofloor/beach,
/area/ruin/space/has_grav)
"L" = (
/turf/closed/mineral/random/no_caves,
/area/ruin/space)
"R" = (
/mob/living/simple_animal/crab{
desc = "This little bugger seems so happy to dance.!";
name = "raving crab"
},
/turf/open/floor/holofloor/beach,
/area/ruin/space/has_grav)
"T" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
(1,1,1) = {"
o
o
T
o
o
o
o
o
o
o
o
o
o
o
"}
(2,1,1) = {"
T
L
L
T
o
o
o
o
o
o
o
o
o
o
"}
(3,1,1) = {"
T
L
L
L
L
T
T
T
T
T
o
o
o
o
"}
(4,1,1) = {"
o
T
L
L
L
L
L
L
L
L
T
o
o
o
"}
(5,1,1) = {"
o
T
L
L
A
A
L
L
L
L
L
T
o
o
"}
(6,1,1) = {"
T
L
L
L
A
R
j
n
p
p
L
L
T
o
"}
(7,1,1) = {"
T
L
L
A
a
A
u
n
p
p
L
L
T
o
"}
(8,1,1) = {"
T
L
L
H
R
A
j
n
p
p
L
L
T
o
"}
(9,1,1) = {"
T
L
L
A
A
A
u
n
p
p
L
L
T
o
"}
(10,1,1) = {"
T
L
L
L
A
t
F
n
p
p
L
L
T
o
"}
(11,1,1) = {"
o
T
T
L
L
A
L
L
L
L
L
L
T
o
"}
(12,1,1) = {"
o
o
o
T
L
L
L
L
L
L
L
L
T
o
"}
(13,1,1) = {"
o
o
o
o
T
L
L
L
L
o
T
T
L
T
"}
(14,1,1) = {"
o
o
o
o
o
o
o
o
o
o
o
o
T
o
"}
@@ -0,0 +1,498 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/structure/bed,
/obj/item/bedsheet,
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"c" = (
/obj/machinery/door/airlock/silver{
name = "Bathroom"
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/turf/open/floor/plasteel/freezer,
/area/ruin/space/has_grav/powered)
"d" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"e" = (
/obj/item/reagent_containers/glass/bottle/nutrient/ez,
/obj/item/reagent_containers/glass/bottle/nutrient/ez,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"g" = (
/obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/glowcap,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"i" = (
/obj/structure/fireplace{
dir = 8
},
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"j" = (
/obj/structure/reagent_dispensers/watertank/high,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"m" = (
/obj/structure/mineral_door/woodrustic{
name = "Event Hall"
},
/obj/structure/fans/tiny,
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"n" = (
/obj/machinery/vending/boozeomat{
req_access = null
},
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"o" = (
/obj/item/reagent_containers/glass/bucket,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"p" = (
/turf/closed/mineral/random/no_caves,
/area/ruin/space)
"q" = (
/turf/template_noop,
/area/template_noop)
"s" = (
/obj/machinery/hydroponics/soil,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"t" = (
/turf/closed/indestructible/wood,
/area/ruin/space/has_grav/powered)
"v" = (
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"w" = (
/obj/item/plant_analyzer,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"y" = (
/obj/structure/dresser,
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"A" = (
/obj/item/seeds/glowshroom,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"C" = (
/obj/structure/chair/wood/normal{
dir = 1
},
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"E" = (
/turf/open/floor/plasteel/showroomfloor,
/area/ruin/space/has_grav/powered)
"F" = (
/obj/item/seeds/grass,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"J" = (
/obj/machinery/light,
/turf/open/floor/plasteel/showroomfloor,
/area/ruin/space/has_grav/powered)
"K" = (
/obj/structure/table/wood,
/obj/machinery/light{
dir = 4
},
/obj/item/reagent_containers/food/drinks/bottle/wine,
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"L" = (
/obj/structure/mirror{
pixel_x = 28
},
/obj/effect/turf_decal/bot,
/obj/machinery/shower{
dir = 8;
pixel_y = -4
},
/turf/open/floor/plasteel/showroomfloor,
/area/ruin/space/has_grav/powered)
"M" = (
/obj/structure/toilet{
dir = 4
},
/turf/open/floor/plasteel/showroomfloor,
/area/ruin/space/has_grav/powered)
"N" = (
/obj/structure/rack,
/obj/item/stack/sheet/mineral/wood,
/obj/item/stack/sheet/mineral/wood,
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"P" = (
/obj/structure/table/wood,
/obj/item/clothing/head/festive,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"T" = (
/obj/item/shovel/spade,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"W" = (
/obj/item/cultivator,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"Y" = (
/obj/structure/table/wood,
/obj/item/phone,
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"Z" = (
/obj/item/seeds/tower,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
(1,1,1) = {"
q
q
q
d
d
d
d
q
q
q
q
d
d
d
q
q
q
"}
(2,1,1) = {"
q
q
d
p
p
p
p
d
d
d
d
p
p
p
d
q
q
"}
(3,1,1) = {"
q
d
p
p
p
p
p
p
p
p
p
p
p
p
p
d
q
"}
(4,1,1) = {"
d
p
p
p
p
p
p
p
p
p
t
t
t
t
p
p
d
"}
(5,1,1) = {"
d
p
p
d
d
d
e
j
p
p
t
M
J
t
p
p
d
"}
(6,1,1) = {"
d
p
p
d
d
d
F
o
p
p
t
E
L
t
p
p
d
"}
(7,1,1) = {"
q
d
d
s
s
s
s
d
t
t
t
c
t
t
t
p
d
"}
(8,1,1) = {"
q
d
d
d
A
g
W
d
t
Y
C
v
n
y
t
p
d
"}
(9,1,1) = {"
q
d
d
s
s
s
s
d
t
P
C
v
v
v
t
p
d
"}
(10,1,1) = {"
q
d
d
d
T
Z
d
d
m
v
v
v
v
v
t
p
d
"}
(11,1,1) = {"
q
d
d
s
s
s
s
d
t
v
v
v
v
v
t
p
d
"}
(12,1,1) = {"
q
d
d
d
w
A
d
d
t
t
i
N
K
a
t
p
d
"}
(13,1,1) = {"
q
d
p
s
s
s
s
d
p
t
t
t
t
t
t
p
q
"}
(14,1,1) = {"
d
p
p
p
d
d
d
p
p
p
p
p
p
p
p
d
q
"}
(15,1,1) = {"
d
p
p
p
p
p
p
p
p
p
p
p
p
d
d
q
q
"}
(16,1,1) = {"
d
p
p
p
p
p
p
p
p
p
p
p
p
d
q
q
q
"}
(17,1,1) = {"
q
d
p
p
p
p
d
d
d
d
d
d
d
q
q
q
q
"}
(18,1,1) = {"
q
q
d
d
d
d
q
q
q
q
q
q
q
q
q
q
q
"}
@@ -0,0 +1,441 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"f" = (
/obj/effect/decal/cleanable/blood/gibs/body,
/turf/open/floor/plating/airless,
/area/ruin/space)
"g" = (
/obj/structure/lattice,
/turf/closed/wall,
/area/ruin/space)
"l" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered)
"n" = (
/turf/template_noop,
/area/template_noop)
"r" = (
/turf/closed/wall,
/area/ruin/space)
"t" = (
/obj/structure/lattice,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"z" = (
/obj/item/pickaxe/silver,
/turf/open/floor/plating/airless,
/area/ruin/space)
"I" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"M" = (
/obj/structure/lattice,
/turf/template_noop,
/area/space/nearstation)
"P" = (
/turf/open/floor/plating/airless,
/area/ruin/space)
"R" = (
/obj/item/lazarus_injector,
/obj/effect/decal/cleanable/blood/gibs/human/lizard/body,
/turf/open/floor/plating/airless,
/area/ruin/space)
"Z" = (
/turf/closed/mineral/random/no_caves,
/area/ruin/space)
(1,1,1) = {"
n
n
n
n
n
n
n
n
n
n
n
n
n
n
I
I
n
n
n
n
"}
(2,1,1) = {"
n
n
n
n
n
I
I
I
I
I
n
n
I
I
Z
Z
I
n
n
n
"}
(3,1,1) = {"
n
n
n
I
I
Z
Z
Z
Z
Z
I
n
I
Z
Z
Z
Z
I
n
n
"}
(4,1,1) = {"
n
n
I
Z
Z
Z
Z
Z
Z
t
n
n
I
Z
Z
Z
I
n
n
n
"}
(5,1,1) = {"
n
I
Z
Z
Z
Z
Z
Z
t
M
n
n
I
Z
Z
Z
Z
l
n
n
"}
(6,1,1) = {"
n
I
Z
Z
Z
Z
I
I
n
M
n
I
Z
Z
Z
Z
Z
Z
I
n
"}
(7,1,1) = {"
I
Z
Z
Z
Z
I
n
M
M
g
r
I
Z
Z
Z
Z
Z
Z
I
n
"}
(8,1,1) = {"
I
Z
Z
Z
Z
I
n
M
z
f
r
I
Z
Z
Z
Z
Z
Z
I
n
"}
(9,1,1) = {"
I
Z
Z
Z
t
M
M
M
R
P
M
t
t
Z
Z
Z
Z
Z
I
n
"}
(10,1,1) = {"
I
Z
Z
Z
I
n
n
r
r
M
n
n
n
Z
Z
Z
Z
Z
Z
n
"}
(11,1,1) = {"
n
I
Z
I
n
n
n
n
n
M
n
n
n
n
I
Z
Z
Z
Z
I
"}
(12,1,1) = {"
n
n
I
n
n
n
I
I
I
M
n
n
n
n
I
Z
Z
Z
Z
Z
"}
(13,1,1) = {"
n
n
n
n
n
I
Z
Z
Z
t
n
n
n
n
n
I
Z
Z
Z
Z
"}
(14,1,1) = {"
n
n
n
n
n
I
Z
Z
Z
Z
I
n
n
n
n
n
I
Z
Z
Z
"}
(15,1,1) = {"
n
n
n
n
I
Z
Z
Z
Z
Z
I
n
n
n
n
n
I
Z
Z
I
"}
(16,1,1) = {"
n
n
n
n
I
Z
Z
Z
Z
I
n
n
n
n
n
n
n
I
I
n
"}
(17,1,1) = {"
n
n
n
n
I
Z
Z
I
I
n
n
n
n
n
n
n
n
n
n
n
"}
(18,1,1) = {"
n
n
n
n
n
I
I
n
n
n
n
n
n
n
n
n
n
n
n
n
"}
@@ -0,0 +1,296 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"b" = (
/turf/closed/mineral/random/no_caves,
/area/ruin/space)
"h" = (
/obj/effect/decal/remains/human,
/turf/open/floor/plating/asteroid,
/area/ruin/space)
"t" = (
/turf/open/floor/plating/asteroid,
/area/ruin/space)
"G" = (
/obj/item/holosign_creator/atmos,
/turf/open/floor/plating/asteroid,
/area/ruin/space)
"K" = (
/turf/template_noop,
/area/template_noop)
"P" = (
/obj/structure/holosign/barrier/atmos,
/turf/open/floor/plating/asteroid,
/area/ruin/space)
"R" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"Y" = (
/obj/structure/fluff/fokoff_sign,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
(1,1,1) = {"
K
K
K
R
R
R
R
K
K
K
K
R
b
b
R
K
K
"}
(2,1,1) = {"
K
K
R
b
b
b
b
R
K
K
R
b
b
b
b
R
K
"}
(3,1,1) = {"
K
R
b
b
b
b
b
b
R
Y
b
b
b
b
b
b
R
"}
(4,1,1) = {"
R
b
b
b
b
b
b
b
b
R
b
b
b
b
b
b
R
"}
(5,1,1) = {"
R
b
b
b
b
b
b
b
b
P
b
b
b
b
b
b
R
"}
(6,1,1) = {"
K
R
b
b
b
b
b
b
t
G
t
b
b
b
b
R
K
"}
(7,1,1) = {"
K
K
R
b
b
b
R
P
t
h
t
t
b
b
b
R
K
"}
(8,1,1) = {"
K
K
K
R
Y
R
R
b
b
b
t
t
P
Y
R
K
K
"}
(9,1,1) = {"
K
K
K
R
R
b
b
b
b
b
b
b
b
R
K
K
K
"}
(10,1,1) = {"
K
K
K
R
b
b
b
b
b
b
b
b
b
b
R
K
K
"}
(11,1,1) = {"
K
K
K
R
b
b
b
b
b
b
b
b
b
R
K
K
K
"}
(12,1,1) = {"
K
K
K
K
R
b
b
b
b
R
R
R
R
K
K
K
K
"}
(13,1,1) = {"
K
K
K
K
K
R
b
b
R
K
K
K
K
K
K
K
K
"}
(14,1,1) = {"
K
K
K
K
K
K
R
R
K
K
K
K
K
K
K
K
K
"}
@@ -0,0 +1,349 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/structure/chair/comfy/shuttle{
dir = 8
},
/turf/open/floor/mineral/titanium/blue,
/area/ruin/space/has_grav)
"h" = (
/turf/closed/wall/mineral/titanium,
/area/ruin/space/has_grav)
"i" = (
/obj/structure/chair/comfy/shuttle{
dir = 4
},
/obj/structure/spider/stickyweb,
/turf/open/floor/mineral/titanium/blue,
/area/ruin/space/has_grav)
"k" = (
/obj/item/shard{
icon_state = "medium"
},
/obj/item/reagent_containers/food/snacks/meat/slab/spider,
/turf/open/floor/mineral/titanium/blue,
/area/ruin/space/has_grav)
"q" = (
/obj/structure/shuttle/engine/propulsion/burst,
/turf/closed/wall/mineral/titanium,
/area/ruin/space/has_grav)
"r" = (
/obj/structure/chair/comfy/shuttle{
dir = 4
},
/obj/item/shard{
icon_state = "medium"
},
/turf/open/floor/mineral/titanium/blue,
/area/ruin/space/has_grav)
"v" = (
/turf/template_noop,
/area/template_noop)
"x" = (
/obj/structure/spider/stickyweb,
/turf/open/floor/mineral/titanium/blue,
/area/ruin/space/has_grav)
"C" = (
/obj/effect/decal/remains/human,
/obj/item/twohanded/spear,
/turf/open/floor/mineral/titanium/blue,
/area/ruin/space/has_grav)
"F" = (
/obj/machinery/door/airlock/titanium{
name = "Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/titanium/blue,
/area/ruin/space/has_grav)
"J" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"O" = (
/obj/structure/chair/comfy/shuttle{
dir = 8
},
/obj/structure/spider/stickyweb,
/turf/open/floor/mineral/titanium/blue,
/area/ruin/space/has_grav)
"P" = (
/obj/structure/chair/comfy/shuttle{
dir = 8
},
/obj/item/reagent_containers/food/snacks/meat/slab/spider,
/turf/open/floor/mineral/titanium/blue,
/area/ruin/space/has_grav)
"R" = (
/obj/structure/grille,
/obj/structure/window/shuttle,
/turf/open/floor/plating,
/area/ruin/space/has_grav)
"S" = (
/obj/item/shard{
icon_state = "medium"
},
/turf/open/floor/plating/airless{
icon_state = "platingdmg2"
},
/area/ruin/space/has_grav)
"U" = (
/turf/closed/mineral/random/no_caves,
/area/ruin/space)
"W" = (
/obj/structure/spider/stickyweb,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
(1,1,1) = {"
v
v
v
v
v
v
J
J
J
v
v
v
v
v
v
"}
(2,1,1) = {"
v
v
v
v
J
J
U
U
U
J
J
J
J
v
v
"}
(3,1,1) = {"
v
v
J
J
U
U
U
U
U
U
U
U
U
J
v
"}
(4,1,1) = {"
v
J
U
U
U
U
U
U
U
U
U
U
U
U
J
"}
(5,1,1) = {"
v
J
U
U
U
U
U
U
U
U
U
U
U
U
U
"}
(6,1,1) = {"
v
J
U
U
U
U
h
R
h
q
W
U
U
J
v
"}
(7,1,1) = {"
J
U
U
U
U
U
r
i
i
q
W
W
J
J
v
"}
(8,1,1) = {"
J
U
U
U
S
x
C
k
x
F
J
J
J
J
v
"}
(9,1,1) = {"
J
U
U
U
h
h
P
O
a
q
W
W
J
J
v
"}
(10,1,1) = {"
J
U
U
U
U
h
h
R
h
q
W
U
U
U
v
"}
(11,1,1) = {"
J
U
U
U
U
U
U
U
U
U
U
U
U
U
U
"}
(12,1,1) = {"
v
J
U
U
U
U
U
U
U
U
U
U
U
U
J
"}
(13,1,1) = {"
v
J
U
U
U
U
U
U
U
U
U
U
U
U
J
"}
(14,1,1) = {"
v
v
J
J
J
J
J
J
J
J
U
U
U
U
J
"}
(15,1,1) = {"
v
v
v
v
v
v
v
v
v
v
J
J
J
J
v
"}
@@ -0,0 +1,701 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/item/stack/sheet/metal,
/turf/template_noop,
/area/template_noop)
"b" = (
/obj/structure/lattice,
/obj/structure/lattice,
/obj/item/stack/sheet/metal,
/turf/template_noop,
/area/space/nearstation)
"c" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"d" = (
/obj/item/chair,
/turf/open/floor/plating/airless{
icon_state = "platingdmg1"
},
/area/ruin/unpowered)
"e" = (
/obj/effect/decal/cleanable/blood/gibs/down,
/turf/open/floor/plating/airless{
icon_state = "platingdmg1"
},
/area/ruin/space)
"f" = (
/obj/structure/fluff/broken_flooring{
dir = 4;
icon_state = "singular"
},
/turf/template_noop,
/area/template_noop)
"g" = (
/obj/structure/girder,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"h" = (
/obj/item/chair/stool/bar,
/turf/open/floor/plating/airless{
icon_state = "platingdmg3"
},
/area/ruin/space)
"i" = (
/obj/structure/table/wood,
/turf/open/floor/plasteel/airless,
/area/ruin/space)
"j" = (
/obj/item/ammo_casing/shotgun/beanbag,
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"k" = (
/turf/closed/wall,
/area/ruin/space)
"l" = (
/obj/structure/chair/stool/bar,
/turf/open/floor/plasteel/airless,
/area/ruin/space)
"m" = (
/obj/item/storage/box/drinkingglasses,
/obj/structure/table/wood,
/obj/machinery/light{
dir = 8;
icon_state = "tube-broken";
status = 2
},
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"n" = (
/obj/item/stack/sheet/metal,
/turf/open/floor/plating/airless{
icon_state = "platingdmg3"
},
/area/ruin/unpowered)
"o" = (
/obj/structure/lattice,
/turf/template_noop,
/area/space/nearstation)
"p" = (
/obj/structure/fluff/broken_flooring{
dir = 4;
icon_state = "plating";
name = "broken plating"
},
/turf/template_noop,
/area/space/nearstation)
"q" = (
/obj/machinery/light{
dir = 1;
icon_state = "tube-broken";
status = 2
},
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"r" = (
/obj/machinery/door/airlock/public/glass,
/turf/open/floor/plasteel/airless,
/area/ruin/space)
"s" = (
/obj/structure/table/wood,
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"t" = (
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"u" = (
/obj/structure/table/wood,
/obj/machinery/microwave,
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"w" = (
/turf/open/floor/plating/airless{
icon_state = "platingdmg1"
},
/area/ruin/space)
"x" = (
/obj/structure/table/wood,
/obj/item/trash/plate,
/turf/open/floor/plasteel/airless,
/area/ruin/space)
"y" = (
/obj/structure/table_frame,
/turf/open/floor/plasteel/airless,
/area/ruin/space)
"z" = (
/obj/machinery/light{
icon_state = "tube-broken";
status = 2
},
/turf/open/floor/plasteel/airless,
/area/ruin/space)
"A" = (
/obj/item/ammo_casing/c46x30mm,
/turf/open/floor/plating/airless{
icon_state = "platingdmg1"
},
/area/ruin/space)
"B" = (
/obj/structure/fluff/broken_flooring{
icon_state = "singular"
},
/turf/template_noop,
/area/template_noop)
"C" = (
/obj/structure/lattice,
/obj/structure/fluff/broken_flooring{
dir = 1;
icon_state = "side"
},
/turf/template_noop,
/area/space/nearstation)
"D" = (
/obj/structure/table/wood,
/obj/item/storage/firstaid/brute,
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"E" = (
/obj/structure/girder,
/turf/open/floor/plating/airless{
icon_state = "platingdmg3"
},
/area/ruin/space)
"F" = (
/obj/structure/closet/secure_closet/freezer/kitchen,
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"G" = (
/turf/template_noop,
/area/template_noop)
"H" = (
/obj/machinery/vending/boozeomat/all_access,
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"I" = (
/obj/structure/table/wood,
/obj/item/kitchen/fork,
/turf/open/floor/plasteel/airless,
/area/ruin/space)
"K" = (
/obj/item/ammo_casing/shotgun/improvised,
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"L" = (
/obj/machinery/vending/dinnerware,
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"M" = (
/turf/open/floor/plating/airless{
icon_state = "platingdmg1"
},
/area/ruin/unpowered)
"N" = (
/turf/open/floor/plating/airless{
icon_state = "platingdmg3"
},
/area/ruin/space)
"O" = (
/obj/item/stack/sheet/metal,
/turf/open/floor/plating/airless{
icon_state = "platingdmg3"
},
/area/ruin/space)
"P" = (
/obj/item/toy/plush/beeplushie,
/obj/vehicle/ridden/lavaboat,
/turf/open/floor/plasteel/airless,
/area/ruin/space)
"Q" = (
/obj/effect/decal/remains/human,
/obj/effect/decal/cleanable/blood/splatter,
/turf/open/floor/plasteel/airless,
/area/ruin/space)
"R" = (
/obj/structure/fluff/broken_flooring{
dir = 1;
icon_state = "plating";
name = "broken plating"
},
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"S" = (
/obj/item/ammo_casing/c46x30mm,
/turf/open/floor/plating/airless{
icon_state = "platingdmg3"
},
/area/ruin/space)
"T" = (
/obj/structure/closet/secure_closet/freezer/fridge,
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"U" = (
/obj/item/chair/stool/bar,
/turf/open/floor/plasteel/airless,
/area/ruin/space)
"V" = (
/obj/structure/lattice,
/obj/item/stack/sheet/metal,
/turf/template_noop,
/area/space/nearstation)
"W" = (
/obj/structure/lattice,
/obj/structure/fluff/broken_flooring{
dir = 1;
icon_state = "plating";
name = "broken plating"
},
/turf/template_noop,
/area/space/nearstation)
"X" = (
/turf/open/floor/plasteel/airless,
/area/ruin/space)
"Y" = (
/obj/effect/decal/remains/human,
/obj/effect/decal/cleanable/blood/old,
/obj/item/clothing/head/chefhat,
/turf/open/floor/plasteel/airless/cafeteria,
/area/ruin/space)
"Z" = (
/turf/closed/mineral/random/no_caves,
/area/ruin/space)
(1,1,1) = {"
G
G
G
G
G
G
G
G
G
G
c
c
c
c
c
c
G
G
G
G
"}
(2,1,1) = {"
G
G
G
G
c
c
c
G
G
c
Z
Z
Z
Z
Z
Z
c
G
G
G
"}
(3,1,1) = {"
G
G
G
c
Z
Z
Z
c
c
Z
Z
Z
Z
Z
Z
Z
Z
c
G
G
"}
(4,1,1) = {"
G
G
c
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
c
G
"}
(5,1,1) = {"
G
G
c
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
c
G
"}
(6,1,1) = {"
G
G
G
c
Z
c
R
E
k
k
k
k
k
k
k
Z
Z
Z
Z
c
"}
(7,1,1) = {"
G
G
f
G
c
o
n
X
X
z
k
H
m
L
k
Z
Z
Z
Z
c
"}
(8,1,1) = {"
G
G
G
G
G
V
C
N
N
l
I
t
j
s
k
Z
Z
Z
Z
c
"}
(9,1,1) = {"
G
G
c
c
G
o
W
A
S
h
x
j
Y
D
k
Z
Z
Z
Z
c
"}
(10,1,1) = {"
G
c
Z
Z
c
o
d
e
Q
U
y
K
t
s
k
Z
Z
Z
c
G
"}
(11,1,1) = {"
c
Z
Z
Z
c
o
M
A
S
l
i
t
j
u
k
X
Z
Z
Z
c
"}
(12,1,1) = {"
c
Z
Z
c
G
G
p
w
N
N
k
q
t
s
E
X
P
Z
Z
c
"}
(13,1,1) = {"
G
c
c
G
G
o
b
X
O
N
r
t
t
t
E
X
X
Z
Z
c
"}
(14,1,1) = {"
G
G
G
B
G
a
o
X
X
z
k
T
T
F
E
X
X
Z
Z
c
"}
(15,1,1) = {"
G
G
G
G
G
c
g
E
k
k
k
k
k
k
k
X
Z
Z
c
G
"}
(16,1,1) = {"
G
G
G
G
c
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
c
G
"}
(17,1,1) = {"
G
G
G
c
Z
Z
Z
Z
Z
Z
c
Z
Z
Z
Z
Z
c
c
G
G
"}
(18,1,1) = {"
G
G
G
c
Z
Z
Z
Z
Z
c
G
c
c
c
c
c
G
G
G
G
"}
(19,1,1) = {"
G
G
G
G
c
Z
Z
Z
Z
c
G
G
G
G
G
G
G
G
G
G
"}
(20,1,1) = {"
G
G
G
G
G
c
c
c
c
G
G
G
G
G
G
G
G
G
G
G
"}
@@ -0,0 +1,460 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/structure/flora/ausbushes/palebush,
/turf/open/floor/grass,
/area/ruin/space)
"g" = (
/obj/structure/flora/ausbushes/ywflowers,
/turf/open/floor/grass,
/area/ruin/space)
"m" = (
/obj/structure/flora/ausbushes/fernybush,
/turf/open/floor/grass,
/area/ruin/space)
"p" = (
/obj/structure/flora/ausbushes/brflowers,
/turf/open/floor/grass,
/area/ruin/space)
"q" = (
/turf/open/floor/grass,
/area/ruin/space)
"C" = (
/mob/living/simple_animal/butterfly,
/turf/open/floor/grass,
/area/ruin/space)
"D" = (
/obj/structure/toilet/secret{
dir = 4;
secret_type = /obj/item/gun/magic/wand/arcane
},
/turf/open/floor/grass,
/area/ruin/space)
"J" = (
/turf/template_noop,
/area/template_noop)
"L" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"O" = (
/obj/item/clothing/head/wizard,
/obj/item/clothing/suit/wizrobe,
/obj/effect/decal/remains/human,
/obj/effect/light_emitter/red_energy_sword,
/turf/open/floor/grass,
/area/ruin/space)
"S" = (
/turf/closed/mineral/random/no_caves,
/area/ruin/space)
"V" = (
/obj/item/bong/coconut,
/turf/open/floor/grass,
/area/ruin/space)
"Y" = (
/obj/structure/flora/ausbushes/grassybush,
/turf/open/floor/grass,
/area/ruin/space)
"Z" = (
/obj/structure/flora/ausbushes/stalkybush,
/turf/open/floor/grass,
/area/ruin/space)
(1,1,1) = {"
J
J
L
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
"}
(2,1,1) = {"
J
L
S
L
J
J
J
J
J
J
J
J
J
J
L
L
L
J
"}
(3,1,1) = {"
L
S
S
S
L
J
J
J
J
J
J
J
L
L
S
S
S
L
"}
(4,1,1) = {"
L
S
S
S
L
J
J
J
J
J
J
L
S
S
S
S
S
L
"}
(5,1,1) = {"
J
L
S
S
L
J
J
L
L
L
L
S
S
S
S
S
S
L
"}
(6,1,1) = {"
J
J
L
L
J
J
L
S
S
S
S
S
S
S
S
S
L
J
"}
(7,1,1) = {"
J
J
J
J
J
L
S
S
S
S
D
m
S
S
S
S
L
J
"}
(8,1,1) = {"
J
J
J
J
L
S
S
S
q
q
q
q
S
S
S
L
J
J
"}
(9,1,1) = {"
J
J
J
J
L
S
S
a
C
q
p
C
S
S
S
L
J
J
"}
(10,1,1) = {"
J
J
J
J
L
S
S
q
V
O
q
q
Z
S
S
L
J
J
"}
(11,1,1) = {"
J
J
J
L
S
S
S
q
g
q
C
q
q
S
S
L
J
J
"}
(12,1,1) = {"
J
J
J
L
S
S
S
S
q
q
Y
q
S
S
S
L
J
J
"}
(13,1,1) = {"
J
J
J
S
S
S
S
S
S
S
S
S
S
S
L
L
J
J
"}
(14,1,1) = {"
J
J
L
S
S
S
S
S
S
S
S
S
S
L
L
S
L
J
"}
(15,1,1) = {"
J
L
S
S
S
S
S
S
L
L
L
L
L
L
S
S
S
L
"}
(16,1,1) = {"
L
S
S
S
S
S
S
S
L
J
J
J
J
L
S
S
S
L
"}
(17,1,1) = {"
J
L
S
S
S
S
S
L
J
J
J
J
L
S
S
S
L
J
"}
(18,1,1) = {"
J
L
S
S
S
S
L
J
J
J
J
L
S
S
S
L
J
J
"}
(19,1,1) = {"
J
J
L
S
S
S
L
J
J
J
J
L
S
S
L
J
J
J
"}
(20,1,1) = {"
J
J
J
L
L
L
J
J
J
J
J
J
L
L
J
J
J
J
"}
@@ -0,0 +1,646 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/closed/wall/mineral/iron,
/area/ruin/space/has_grav)
"d" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp,
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"e" = (
/turf/template_noop,
/area/template_noop)
"f" = (
/obj/structure/bed,
/obj/item/bedsheet,
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"g" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/door/airlock/highsecurity,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"h" = (
/obj/machinery/light/small,
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"k" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 4
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"l" = (
/obj/structure/dresser,
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"m" = (
/obj/structure/table/wood,
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"n" = (
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"o" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/food/snacks/beans,
/obj/item/reagent_containers/food/snacks/beans,
/obj/machinery/light/small{
dir = 4
},
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"p" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 10
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 1
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"q" = (
/obj/machinery/atmospherics/components/unary/tank/air{
dir = 8
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"r" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"u" = (
/obj/structure/chair/comfy/black{
dir = 1
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"v" = (
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"w" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"x" = (
/obj/machinery/light/small{
dir = 8
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"y" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"z" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 4
},
/obj/machinery/door/airlock/highsecurity,
/obj/structure/fans/tiny,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"A" = (
/obj/structure/table/wood,
/obj/item/export/bottle/wine,
/obj/item/reagent_containers/food/drinks/drinkingglass,
/obj/item/reagent_containers/food/drinks/drinkingglass,
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"B" = (
/obj/structure/table/wood,
/obj/item/storage/box/donkpockets,
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"C" = (
/turf/closed/mineral/random/no_caves,
/area/ruin/space)
"D" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer1{
dir = 1
},
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
"E" = (
/obj/machinery/light/small{
dir = 4
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"F" = (
/obj/structure/table,
/obj/item/storage/firstaid/regular,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"G" = (
/obj/machinery/computer/security,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"J" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 9
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"N" = (
/obj/structure/table,
/obj/item/storage/toolbox/mechanical,
/obj/item/clothing/gloves/color/yellow,
/obj/item/multitool,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"O" = (
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"P" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"Q" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{
dir = 1
},
/obj/structure/table/wood,
/obj/machinery/microwave,
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"T" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 6
},
/turf/open/floor/wood,
/area/ruin/space/has_grav)
"U" = (
/obj/machinery/sleeper,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"V" = (
/obj/machinery/computer/crew,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"W" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1,
/obj/machinery/airalarm{
dir = 1;
pixel_y = -22
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
"Y" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
dir = 6
},
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
(1,1,1) = {"
e
e
e
e
e
e
v
v
v
e
e
e
e
e
e
v
v
e
e
e
"}
(2,1,1) = {"
e
e
e
e
e
v
C
C
C
v
e
e
e
v
v
C
C
v
e
e
"}
(3,1,1) = {"
e
e
e
e
v
C
C
C
C
v
v
e
e
C
C
C
C
C
v
e
"}
(4,1,1) = {"
e
e
e
v
C
C
C
C
C
C
v
v
v
C
C
C
C
C
v
e
"}
(5,1,1) = {"
e
e
v
C
C
C
C
C
C
C
v
v
C
C
C
C
C
C
v
e
"}
(6,1,1) = {"
e
v
C
C
C
C
C
C
C
C
v
v
C
C
C
C
C
C
C
v
"}
(7,1,1) = {"
e
v
C
C
C
C
C
C
C
C
v
v
C
C
C
C
C
C
C
v
"}
(8,1,1) = {"
e
v
C
C
C
C
C
C
C
C
v
v
v
C
C
C
C
C
C
v
"}
(9,1,1) = {"
e
v
C
C
C
C
C
C
C
C
v
v
v
C
C
C
C
C
C
v
"}
(10,1,1) = {"
e
v
C
C
C
C
C
C
C
C
Y
D
C
C
C
C
C
C
C
v
"}
(11,1,1) = {"
v
C
C
C
C
C
a
a
a
a
z
a
C
C
C
C
C
C
C
v
"}
(12,1,1) = {"
v
C
C
C
C
C
a
V
O
x
k
a
a
a
a
a
C
C
v
e
"}
(13,1,1) = {"
v
C
C
C
C
C
a
G
u
O
k
a
l
f
f
a
C
C
v
e
"}
(14,1,1) = {"
v
C
C
C
C
C
a
F
O
P
W
a
d
n
h
a
C
C
v
e
"}
(15,1,1) = {"
v
C
C
C
C
C
a
a
N
w
r
a
n
T
Q
a
C
C
v
e
"}
(16,1,1) = {"
v
C
C
C
C
C
C
a
U
E
p
g
y
J
B
a
C
C
v
e
"}
(17,1,1) = {"
e
e
v
C
C
C
C
a
a
a
q
a
m
o
A
a
C
v
v
e
"}
(18,1,1) = {"
e
e
e
v
C
C
C
C
C
a
a
a
a
a
a
a
C
v
e
e
"}
(19,1,1) = {"
e
e
e
e
v
v
v
v
C
C
C
C
C
C
C
C
C
v
e
e
"}
(20,1,1) = {"
e
e
e
e
e
e
e
e
v
v
v
v
v
v
v
v
v
e
e
e
"}
@@ -118,13 +118,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"nR" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/effect/turf_decal/box/red,
/turf/open/floor/engine,
/area/engine/engineering)
"nW" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -180,13 +173,6 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
"xg" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"xx" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -266,13 +252,6 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
"Bh" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"BG" = (
/obj/structure/closet/emcloset/anchored,
/obj/machinery/light/small{
@@ -427,13 +406,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"Mn" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/effect/turf_decal/box/red,
/turf/open/floor/engine,
/area/engine/engineering)
"MD" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/effect/turf_decal/stripes/line{
@@ -503,10 +475,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"SD" = (
/obj/effect/turf_decal/box/red,
/turf/open/floor/engine,
/area/engine/engineering)
"Tr" = (
/obj/structure/sign/warning/radiation/rad_area,
/obj/machinery/atmospherics/pipe/simple/orange/visible{
@@ -1117,8 +1085,8 @@ MJ
wt
eJ
Zx
Mn
Mn
nW
nW
WQ
lY
Og
@@ -1401,7 +1369,7 @@ fh
JZ
kK
Ch
dz
Ch
MJ
MJ
MJ
@@ -735,7 +735,7 @@
/obj/machinery/atmospherics/components/unary/outlet_injector{
dir = 1
},
/turf/open/space/basic,
/turf/open/floor/plating/airless,
/area/engine/engineering)
"Si" = (
/obj/structure/cable/yellow{
@@ -189,8 +189,10 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"gA" = (
/obj/machinery/igniter{
id = "TEG_igniter"
/obj/machinery/atmospherics/components/unary/outlet_injector{
dir = 1;
injecting = 50;
on = 1
},
/turf/open/floor/engine/vacuum,
/area/engine/engineering)
@@ -390,21 +392,23 @@
/turf/open/floor/plating,
/area/engine/engineering)
"nc" = (
/obj/machinery/atmospherics/components/unary/outlet_injector{
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/dark/visible,
/obj/effect/spawner/structure/window/plasma/reinforced,
/turf/open/floor/engine/vacuum,
/area/engine/engineering)
"nk" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
/obj/machinery/atmospherics/components/binary/pump{
name = "Hot to Burn Chamber"
},
/turf/closed/wall/r_wall,
/turf/open/floor/plasteel,
/area/engine/engineering)
"nD" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 9
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/turf/open/floor/engine/vacuum,
/area/engine/engineering)
"nL" = (
@@ -461,10 +465,11 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"oQ" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
/obj/structure/sign/warning/securearea{
pixel_x = -32
},
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/heat_exchanging/junction,
/turf/open/floor/engine/vacuum,
/area/engine/engineering)
"oS" = (
@@ -728,16 +733,16 @@
/area/engine/engineering)
"vq" = (
/obj/structure/table/reinforced,
/obj/item/storage/box/lights/mixed,
/obj/item/storage/box/lights/mixed{
pixel_x = 3;
pixel_y = 3
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/camera{
c_tag = "TEG - South West";
dir = 4
},
/obj/item/analyzer,
/obj/item/analyzer{
pixel_x = 7;
pixel_y = 3
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"vG" = (
@@ -798,17 +803,10 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"xD" = (
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
},
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
name = "Mix to Engine"
},
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
name = "Atmos to Loop"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"yf" = (
@@ -837,11 +835,7 @@
/area/engine/engineering)
"zx" = (
/obj/structure/table/wood,
/obj/item/electronics/apc,
/obj/item/electronics/apc{
pixel_x = 3;
pixel_y = 3
},
/obj/item/analyzer,
/turf/open/floor/plasteel,
/area/engine/engineering)
"zG" = (
@@ -855,8 +849,8 @@
/turf/open/space/basic,
/area/space)
"Am" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
/obj/machinery/igniter{
id = "TEG_igniter"
},
/turf/open/floor/engine/vacuum,
/area/engine/engineering)
@@ -962,10 +956,11 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"BY" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
/obj/structure/sign/warning/securearea{
pixel_x = 32
},
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/heat_exchanging/junction,
/turf/open/floor/engine/vacuum,
/area/engine/engineering)
"CH" = (
@@ -1099,7 +1094,8 @@
/area/engine/engineering)
"FW" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 1
dir = 1;
name = "Burn Chamber to Hot"
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light{
@@ -1177,7 +1173,9 @@
/turf/open/floor/plating/airless,
/area/engine/engineering)
"Hp" = (
/obj/machinery/atmospherics/components/binary/pump,
/obj/machinery/atmospherics/components/binary/pump{
name = "Space Loop Bypass"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"HF" = (
@@ -1204,11 +1202,10 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"IA" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
},
/turf/open/floor/engine/vacuum,
/turf/closed/wall/r_wall,
/area/engine/engineering)
"IP" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
@@ -1290,11 +1287,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"Kx" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/heat_exchanging/junction,
/turf/open/floor/plasteel,
/area/engine/engineering)
"KA" = (
/obj/structure/reagent_dispensers/watertank,
/obj/effect/turf_decal/bot,
@@ -1441,6 +1433,7 @@
},
/obj/machinery/airalarm{
dir = 1;
locked = 0;
pixel_y = -22
},
/obj/machinery/light,
@@ -1552,21 +1545,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"RK" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/effect/turf_decal/delivery,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/structure/window/reinforced{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/engine/engineering)
"RQ" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 1
@@ -1593,7 +1571,9 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"SE" = (
/obj/machinery/atmospherics/components/binary/pump/on,
/obj/machinery/atmospherics/components/binary/pump/on{
name = "Mix To Burn Chamber"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"ST" = (
@@ -1715,7 +1695,7 @@
"Vs" = (
/obj/machinery/atmospherics/components/binary/valve/digital/on{
dir = 4;
name = "Output Release"
name = "Cold to Space Loop"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
@@ -1780,7 +1760,7 @@
"XD" = (
/obj/machinery/atmospherics/components/binary/valve/digital/on{
dir = 4;
name = "Output Release"
name = "Space Loop to Cold"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/camera{
@@ -1799,6 +1779,9 @@
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 4
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
},
/turf/open/floor/engine/vacuum,
/area/engine/engineering)
"XP" = (
@@ -1857,8 +1840,8 @@
/area/engine/engineering)
"YP" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/item/pipe_dispenser,
/turf/open/floor/plasteel,
/area/engine/engineering)
"YQ" = (
@@ -1917,7 +1900,7 @@
/area/engine/engineering)
"ZC" = (
/obj/machinery/atmospherics/pipe/simple/dark/visible,
/turf/open/floor/engine/vacuum,
/turf/open/space/basic,
/area/engine/engineering)
"ZT" = (
/turf/template_noop,
@@ -2239,7 +2222,7 @@ yf
"}
(12,1,1) = {"
cS
RK
QS
uy
PK
iZ
@@ -2531,9 +2514,9 @@ Xe
aR
ZY
QH
Hp
Kx
kS
nk
le
ZC
oQ
kS
kS
@@ -2588,11 +2571,11 @@ sH
sH
gq
FW
Kx
kS
le
ZC
BY
kS
IA
kS
nD
ek
Le
@@ -2620,8 +2603,8 @@ yN
yN
yN
yN
nk
MP
yN
IA
fO
Rh
Rh
@@ -240,7 +240,7 @@
/obj/machinery/atmospherics/components/unary/outlet_injector{
dir = 1
},
/turf/open/space/basic,
/turf/open/floor/plating/airless,
/area/engine/engineering)
"nR" = (
/obj/structure/cable{
@@ -905,14 +905,6 @@
},
/turf/open/space/basic,
/area/space/nearstation)
"VR" = (
/obj/structure/lattice/catwalk,
/obj/machinery/camera/emp_proof{
c_tag = "Tesla Engine Northeast";
network = list("ss13","engine")
},
/turf/open/space/basic,
/area/space/nearstation)
"Wf" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -1728,7 +1720,7 @@ dz
dz
FP
FP
VR
FP
dz
dz
Yl
+1
View File
@@ -0,0 +1 @@
#define FORCE_MAP "_maps/kilostation.json"
+11
View File
@@ -0,0 +1,11 @@
{
"map_name": "Kilo Station",
"map_path": "map_files/KiloStation",
"map_file": "KiloStation.dmm",
"shuttles": {
"emergency": "emergency_kilo",
"ferry": "ferry_kilo",
"cargo": "cargo_kilo",
"whiteship": "whiteship_delta"
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+558
View File
@@ -0,0 +1,558 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/arrival)
"b" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/arrival)
"c" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/arrival)
"d" = (
/obj/machinery/door/airlock/shuttle{
name = "Arrival Shuttle Airlock"
},
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"e" = (
/obj/structure/sign/nanotrasen,
/turf/closed/wall/mineral/titanium,
/area/shuttle/arrival)
"f" = (
/obj/structure/window/shuttle,
/obj/structure/grille,
/turf/open/floor/plating,
/area/shuttle/arrival)
"g" = (
/turf/template_noop,
/area/template_noop)
"h" = (
/obj/structure/sign/warning/fire,
/turf/closed/wall/mineral/titanium,
/area/shuttle/arrival)
"i" = (
/obj/item/clothing/suit/hazardvest{
desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";
name = "emergency lifejacket"
},
/obj/item/clothing/suit/hazardvest{
desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";
name = "emergency lifejacket"
},
/obj/item/tank/internals/emergency_oxygen{
pixel_x = 3
},
/obj/item/tank/internals/emergency_oxygen{
pixel_x = 3
},
/obj/item/clothing/mask/breath{
pixel_x = -3;
pixel_y = -3
},
/obj/item/clothing/mask/breath{
pixel_x = -3;
pixel_y = -3
},
/obj/item/clothing/head/hardhat/orange{
name = "protective hat";
pixel_y = 9
},
/obj/item/clothing/head/hardhat/orange{
name = "protective hat";
pixel_y = 9
},
/obj/structure/closet/crate/internals,
/obj/effect/turf_decal/delivery,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"j" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/arrows{
icon_state = "arrows";
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"k" = (
/obj/effect/turf_decal/bot,
/obj/structure/chair/comfy/shuttle,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"l" = (
/obj/effect/turf_decal/bot,
/obj/structure/chair/comfy/shuttle,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"m" = (
/obj/effect/turf_decal/bot,
/obj/structure/chair/comfy/shuttle,
/obj/machinery/status_display/evac{
pixel_y = 32
},
/obj/machinery/light{
dir = 1
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"n" = (
/obj/structure/shuttle/engine/propulsion/left{
icon_state = "propulsion_l";
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plating/airless,
/area/shuttle/arrival)
"o" = (
/obj/structure/window/shuttle,
/obj/structure/grille,
/obj/structure/shuttle/engine/heater{
icon_state = "heater";
dir = 8
},
/turf/open/floor/plating,
/area/shuttle/arrival)
"p" = (
/obj/structure/table,
/obj/item/flashlight{
pixel_y = 8
},
/obj/item/flashlight,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"q" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/arrows{
icon_state = "arrows";
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"r" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/arrows{
icon_state = "arrows";
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/effect/turf_decal/stripes/corner{
dir = 4
},
/obj/effect/turf_decal/stripes/corner{
dir = 8
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"s" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"t" = (
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/corner{
dir = 8
},
/obj/structure/chair/comfy/shuttle,
/obj/machinery/light/small{
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"u" = (
/obj/structure/shuttle/engine/propulsion{
icon_state = "propulsion";
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/docking_port/mobile/arrivals{
dir = 4;
name = "kilo arrivals shuttle"
},
/turf/open/floor/plating/airless,
/area/shuttle/arrival)
"v" = (
/obj/structure/rack,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/item/radio{
pixel_x = -6;
pixel_y = 6
},
/obj/item/radio{
pixel_x = 6;
pixel_y = 6
},
/obj/item/radio{
pixel_y = 4
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"w" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/item/radio/intercom{
pixel_x = 28
},
/obj/effect/turf_decal/arrows{
icon_state = "arrows";
dir = 1
},
/obj/effect/turf_decal/stripes/corner,
/obj/effect/turf_decal/stripes/corner{
dir = 4
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"x" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"y" = (
/obj/machinery/requests_console{
department = "Arrival shuttle";
name = "Arrivals Shuttle console"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/arrival)
"z" = (
/obj/structure/flora/ausbushes/grassybush,
/obj/structure/flora/ausbushes/lavendergrass,
/obj/structure/flora/ausbushes/ywflowers,
/obj/structure/flora/ausbushes/fernybush,
/obj/structure/window/shuttle,
/turf/open/floor/grass,
/area/shuttle/arrival)
"A" = (
/obj/machinery/vending/wallmed{
name = "Emergency NanoMed";
use_power = 0
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/arrival)
"B" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"C" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"D" = (
/obj/effect/turf_decal/stripes/line{
dir = 2
},
/obj/machinery/door/airlock/shuttle{
name = "Arrival Shuttle Airlock"
},
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/effect/turf_decal/delivery,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"E" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"F" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"G" = (
/obj/structure/shuttle/engine/propulsion/right{
icon_state = "propulsion_r";
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plating/airless,
/area/shuttle/arrival)
"H" = (
/obj/structure/table,
/obj/item/storage/toolbox/emergency,
/obj/item/crowbar/red,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"I" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"J" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"K" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/stripes/corner{
dir = 8
},
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"L" = (
/obj/machinery/status_display/ai,
/turf/closed/wall/mineral/titanium,
/area/shuttle/arrival)
"M" = (
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/obj/machinery/light/small{
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"N" = (
/obj/effect/turf_decal/bot,
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"O" = (
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/arrival)
"P" = (
/obj/effect/turf_decal/bot,
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/obj/machinery/light,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
"Q" = (
/obj/effect/turf_decal/bot,
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/obj/machinery/status_display/evac{
pixel_y = -32
},
/obj/machinery/light,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/arrival)
(1,1,1) = {"
a
a
n
u
G
a
a
"}
(2,1,1) = {"
b
h
o
o
o
h
b
"}
(3,1,1) = {"
c
i
p
v
H
i
c
"}
(4,1,1) = {"
d
j
r
x
I
O
f
"}
(5,1,1) = {"
e
l
s
B
J
P
e
"}
(6,1,1) = {"
f
k
s
y
J
N
f
"}
(7,1,1) = {"
f
k
s
z
J
N
f
"}
(8,1,1) = {"
f
k
s
A
J
N
f
"}
(9,1,1) = {"
c
m
s
B
J
Q
c
"}
(10,1,1) = {"
d
q
w
C
K
x
f
"}
(11,1,1) = {"
b
c
c
D
L
c
b
"}
(12,1,1) = {"
c
e
t
E
M
e
c
"}
(13,1,1) = {"
g
c
k
F
N
c
g
"}
(14,1,1) = {"
g
c
f
f
f
c
g
"}
+391
View File
@@ -0,0 +1,391 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/supply)
"b" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 9
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"c" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"d" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 5
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"e" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 10
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"f" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"g" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"h" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"i" = (
/obj/machinery/door/poddoor{
id = "QMLoaddoor";
name = "Supply Dock Loading Door"
},
/obj/machinery/conveyor{
dir = 8;
id = "QMLoad";
name = "off ramp"
},
/turf/open/floor/plating,
/area/shuttle/supply)
"j" = (
/obj/effect/turf_decal/loading_area{
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/supply)
"k" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/corner{
dir = 4
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"l" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/machinery/light{
dir = 4
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"m" = (
/obj/machinery/door/airlock/shuttle{
name = "Supply Shuttle Airlock";
req_access_txt = "31"
},
/obj/effect/decal/cleanable/dirt,
/obj/docking_port/mobile/supply{
dir = 4;
dwidth = 4
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/supply)
"n" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
/obj/effect/turf_decal/stripes/corner{
dir = 4
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"o" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"p" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/machinery/button/door{
id = "QMLoaddoor";
layer = 4;
name = "Off Ramp Toggle";
pixel_x = -24;
pixel_y = 6;
req_access_txt = "31"
},
/obj/machinery/button/door{
id = "QMLoaddoor2";
layer = 4;
name = "On Ramp Toggle";
pixel_x = -24;
pixel_y = -6;
req_access_txt = "31"
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"q" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/sign/departments/cargo{
pixel_x = 32
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"r" = (
/obj/machinery/door/airlock/shuttle{
name = "Supply Shuttle Airlock";
req_access_txt = "31"
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/supply)
"s" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/corner{
dir = 4
},
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"t" = (
/obj/machinery/door/poddoor{
id = "QMLoaddoor2";
name = "Supply Dock Loading Door"
},
/obj/machinery/conveyor{
dir = 4;
id = "QMLoad2";
name = "on ramp"
},
/turf/open/floor/plating,
/area/shuttle/supply)
"u" = (
/obj/effect/turf_decal/loading_area{
dir = 4
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/supply)
"v" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/end{
dir = 8
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"w" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"x" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"y" = (
/obj/structure/sign/warning/fire,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/supply)
"z" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/supply)
"A" = (
/obj/effect/spawner/structure/window/shuttle,
/obj/structure/shuttle/engine/heater,
/turf/open/floor/plating,
/area/shuttle/supply)
"B" = (
/turf/template_noop,
/area/template_noop)
"C" = (
/obj/structure/shuttle/engine/propulsion/burst/left,
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating/airless,
/area/shuttle/supply)
"D" = (
/obj/structure/shuttle/engine/propulsion,
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating/airless,
/area/shuttle/supply)
"E" = (
/obj/structure/shuttle/engine/propulsion/burst/right,
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating/airless,
/area/shuttle/supply)
(1,1,1) = {"
a
a
a
i
m
a
r
t
a
a
a
B
"}
(2,1,1) = {"
a
b
e
j
f
p
n
u
v
y
a
C
"}
(3,1,1) = {"
a
c
o
g
k
g
o
g
s
e
A
D
"}
(4,1,1) = {"
a
c
g
g
g
g
g
g
g
z
A
D
"}
(5,1,1) = {"
a
c
g
g
g
g
g
g
w
x
A
D
"}
(6,1,1) = {"
a
d
h
l
h
q
h
l
x
y
a
E
"}
(7,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
B
"}
File diff suppressed because it is too large Load Diff
+293
View File
@@ -0,0 +1,293 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/transport)
"c" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/transport)
"d" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/transport)
"e" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/transport)
"f" = (
/obj/machinery/door/airlock/shuttle{
name = "Ferry Shuttle Airlock"
},
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"g" = (
/obj/structure/sign/nanotrasen,
/turf/closed/wall/mineral/titanium,
/area/shuttle/transport)
"h" = (
/obj/structure/shuttle/engine/propulsion/left{
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plating/airless,
/area/shuttle/transport)
"i" = (
/obj/structure/window/shuttle,
/obj/structure/grille,
/obj/structure/shuttle/engine/heater{
dir = 8
},
/turf/open/floor/plating,
/area/shuttle/transport)
"j" = (
/obj/structure/sign/warning/fire,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/transport)
"k" = (
/obj/structure/table/reinforced,
/obj/item/storage/firstaid/o2{
pixel_x = 4;
pixel_y = 4
},
/obj/item/storage/firstaid/regular,
/obj/item/crowbar,
/obj/machinery/light{
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"l" = (
/obj/effect/turf_decal/bot,
/obj/structure/chair/comfy/shuttle,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"m" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"n" = (
/obj/structure/table/reinforced,
/obj/machinery/recharger,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"o" = (
/obj/effect/turf_decal/bot,
/obj/structure/chair/comfy/shuttle,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"p" = (
/obj/structure/shuttle/engine/propulsion{
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plating/airless,
/area/shuttle/transport)
"q" = (
/obj/machinery/computer/shuttle/ferry/request{
dir = 4
},
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"r" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"s" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/stripes/corner,
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
/obj/effect/turf_decal/stripes/corner{
dir = 4
},
/obj/effect/turf_decal/stripes/corner{
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"t" = (
/obj/machinery/door/airlock/shuttle{
name = "Ferry Shuttle Airlock"
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/fans/tiny,
/obj/docking_port/mobile{
dir = 8;
dwidth = 2;
height = 11;
id = "ferry";
name = "ferry shuttle";
preferred_direction = 4;
width = 5
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"u" = (
/obj/structure/shuttle/engine/propulsion/right{
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plating/airless,
/area/shuttle/transport)
"v" = (
/obj/structure/rack,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/item/radio{
pixel_x = -6;
pixel_y = 6
},
/obj/item/radio{
pixel_x = 6;
pixel_y = 6
},
/obj/item/radio{
pixel_y = 4
},
/obj/machinery/light{
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"w" = (
/obj/effect/turf_decal/bot,
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
"x" = (
/obj/effect/turf_decal/bot,
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/obj/machinery/light,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/transport)
(1,1,1) = {"
a
h
p
u
a
"}
(2,1,1) = {"
b
i
i
i
b
"}
(3,1,1) = {"
c
j
q
j
c
"}
(4,1,1) = {"
d
k
r
v
d
"}
(5,1,1) = {"
e
l
r
w
e
"}
(6,1,1) = {"
d
l
r
w
d
"}
(7,1,1) = {"
f
m
s
m
f
"}
(8,1,1) = {"
g
n
r
n
g
"}
(9,1,1) = {"
e
l
r
w
e
"}
(10,1,1) = {"
d
o
r
x
d
"}
(11,1,1) = {"
d
e
t
e
d
"}
+312
View File
@@ -0,0 +1,312 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/labor)
"b" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/labor)
"c" = (
/obj/machinery/computer/shuttle/labor{
dir = 4
},
/obj/structure/reagent_dispensers/peppertank{
pixel_x = -31
},
/obj/effect/turf_decal/bot,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/labor)
"d" = (
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/labor)
"e" = (
/obj/structure/table,
/obj/item/folder/red,
/obj/item/restraints/handcuffs,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/labor)
"f" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 9
},
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
"g" = (
/obj/machinery/button/flasher{
id = "gulagshuttleflasher";
name = "Flash Control";
pixel_y = -26;
req_access_txt = "1"
},
/obj/machinery/light,
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
"h" = (
/obj/machinery/mineral/stacking_unit_console{
machinedir = 2;
pixel_x = 30;
pixel_y = 30
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
"i" = (
/obj/machinery/door/airlock/titanium{
name = "Labor Shuttle Airlock";
req_access_txt = "2"
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/labor)
"j" = (
/obj/machinery/door/airlock/titanium{
name = "Labor Shuttle Airlock";
req_access_txt = "2"
},
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/labor)
"k" = (
/obj/machinery/mineral/stacking_machine/laborstacker{
input_dir = 2;
output_dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/labor)
"l" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/effect/turf_decal/stripes/corner{
dir = 4
},
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
"m" = (
/obj/machinery/light{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
"n" = (
/obj/machinery/mineral/labor_claim_console{
machinedir = 1;
pixel_x = 30
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 5
},
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
"o" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/structure/chair/comfy/shuttle{
dir = 4
},
/obj/effect/turf_decal/stripes/line{
dir = 10
},
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
"p" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
"q" = (
/obj/machinery/flasher{
id = "gulagshuttleflasher";
pixel_x = 25
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/structure/chair/comfy/shuttle{
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/labor)
"r" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/structure/closet/crate,
/obj/effect/turf_decal/delivery,
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/labor)
"s" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/loading_area{
dir = 4
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/labor)
"t" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/labor)
"u" = (
/obj/machinery/door/airlock/titanium{
id_tag = "prisonshuttle";
name = "Labor Shuttle Airlock"
},
/obj/docking_port/mobile{
dir = 8;
dwidth = 2;
height = 5;
id = "laborcamp";
name = "labor camp shuttle";
port_direction = 4;
width = 9
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/labor)
"v" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/labor)
"w" = (
/obj/effect/spawner/structure/window/shuttle,
/obj/structure/shuttle/engine/heater,
/turf/open/floor/plating,
/area/shuttle/labor)
"x" = (
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/labor)
"y" = (
/obj/structure/shuttle/engine/propulsion,
/turf/open/floor/plating/airless,
/area/shuttle/labor)
(1,1,1) = {"
a
a
b
a
b
a
b
v
x
"}
(2,1,1) = {"
b
c
f
j
l
o
r
w
y
"}
(3,1,1) = {"
b
d
g
a
m
p
s
w
y
"}
(4,1,1) = {"
b
e
h
k
n
q
t
w
y
"}
(5,1,1) = {"
a
a
i
a
a
a
u
v
x
"}
+242
View File
@@ -0,0 +1,242 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/mining)
"b" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/mining)
"c" = (
/obj/structure/table,
/obj/item/storage/toolbox/emergency,
/obj/machinery/light/small{
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/mining)
"d" = (
/obj/effect/turf_decal/bot,
/obj/machinery/computer/shuttle/mining,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/mining)
"e" = (
/obj/structure/table,
/obj/item/crowbar/red,
/obj/item/radio/intercom{
pixel_y = 22
},
/obj/machinery/light/small{
dir = 4
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/mining)
"f" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 9
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/mining)
"g" = (
/obj/effect/turf_decal/bot,
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/mining)
"h" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/mining)
"i" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 5
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/mining)
"j" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/machinery/status_display/evac{
pixel_x = -32
},
/obj/effect/turf_decal/stripes/line{
dir = 10
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/mining)
"k" = (
/obj/machinery/door/airlock/shuttle{
name = "Mining Shuttle Airlock"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/docking_port/mobile{
dir = 8;
dwidth = 3;
height = 5;
id = "mining";
name = "mining shuttle";
port_direction = 4;
width = 7
},
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/mining)
"l" = (
/obj/effect/spawner/structure/window/shuttle,
/obj/structure/shuttle/engine/heater,
/turf/open/floor/plating,
/area/shuttle/mining)
"m" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line,
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/mining)
"n" = (
/obj/structure/sign/warning/fire,
/turf/closed/wall/mineral/titanium,
/area/shuttle/mining)
"o" = (
/obj/structure/shuttle/engine/propulsion,
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating/airless,
/area/shuttle/mining)
"p" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/stripes/line,
/obj/machinery/atmospherics/pipe/simple/general/hidden{
icon_state = "pipe11-2";
dir = 8
},
/obj/effect/turf_decal/stripes/corner{
dir = 8
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/mining)
"q" = (
/obj/item/clothing/suit/hazardvest{
desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";
name = "emergency lifejacket"
},
/obj/item/clothing/suit/hazardvest{
desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";
name = "emergency lifejacket"
},
/obj/item/tank/internals/emergency_oxygen{
pixel_x = 3
},
/obj/item/tank/internals/emergency_oxygen{
pixel_x = 3
},
/obj/item/clothing/mask/breath{
pixel_x = -3;
pixel_y = -3
},
/obj/item/clothing/mask/breath{
pixel_x = -3;
pixel_y = -3
},
/obj/item/clothing/head/hardhat/orange{
name = "protective hat";
pixel_y = 9
},
/obj/item/clothing/head/hardhat/orange{
name = "protective hat";
pixel_y = 9
},
/obj/structure/closet/crate/internals,
/obj/machinery/airalarm{
dir = 4;
pixel_x = -22
},
/obj/machinery/light/small,
/obj/effect/turf_decal/box,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/mining)
"r" = (
/obj/structure/ore_box,
/obj/machinery/light/small,
/obj/effect/turf_decal/box,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/mining)
(1,1,1) = {"
a
a
b
a
b
a
a
"}
(2,1,1) = {"
a
c
f
j
g
q
n
"}
(3,1,1) = {"
b
d
h
m
g
l
o
"}
(4,1,1) = {"
a
e
i
p
g
r
n
"}
(5,1,1) = {"
a
a
b
k
b
a
a
"}
+26 -29
View File
@@ -89,7 +89,7 @@
/turf/open/floor/pod/dark,
/area/shuttle/pirate)
"aj" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/turf/closed/wall/r_wall/syndicate/pirate/nodiagonal,
/area/shuttle/pirate)
"ak" = (
/obj/machinery/airalarm/all_access{
@@ -419,6 +419,7 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/pirate)
"aK" = (
@@ -463,21 +464,19 @@
/turf/open/floor/plating,
/area/shuttle/pirate)
"aQ" = (
/obj/machinery/porta_turret/syndicate/energy{
/obj/machinery/porta_turret/syndicate/energy/pirate{
dir = 1;
faction = list("pirate");
icon_state = "standard_lethal";
mode = 1
icon_state = "standard_lethal"
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/turf/closed/wall/r_wall/syndicate/pirate/nodiagonal,
/area/shuttle/pirate)
"aR" = (
/obj/machinery/porta_turret/syndicate/energy{
/obj/machinery/porta_turret/syndicate/energy/pirate{
faction = list("pirate");
icon_state = "standard_lethal";
mode = 1
icon_state = "standard_lethal"
},
/turf/closed/wall/mineral/plastitanium,
/turf/closed/wall/r_wall/syndicate/pirate,
/area/shuttle/pirate)
"aS" = (
/obj/effect/turf_decal/stripes/line,
@@ -486,7 +485,7 @@
/area/shuttle/pirate)
"aU" = (
/obj/structure/sign/departments/engineering,
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/turf/closed/wall/r_wall/syndicate/pirate/nodiagonal,
/area/shuttle/pirate)
"aV" = (
/obj/effect/mob_spawn/human/pirate{
@@ -867,37 +866,36 @@
dir = 1
},
/obj/docking_port/mobile/pirate{
callTime = 100;
dheight = 0;
dir = 1;
dwidth = 11;
height = 16;
id = "pirateship";
launch_status = 0;
movement_force = list("KNOCKDOWN" = 0, "THROW" = 0);
name = "Pirate Ship";
port_direction = 2;
preferred_direction = 1;
width = 17
},
/obj/docking_port/stationary{
dir = 1;
dwidth = 11;
height = 16;
id = "pirateship_home";
name = "Deep Space";
width = 17
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/pirate)
"db" = (
/obj/structure/shuttle/engine/heater,
/obj/effect/spawner/structure/window/plastitanium/pirate,
/turf/open/floor/plating/airless,
/area/shuttle/pirate)
"df" = (
/obj/machinery/porta_turret/syndicate/energy{
/obj/machinery/porta_turret/syndicate/energy/pirate{
dir = 4;
faction = list("pirate");
icon_state = "standard_lethal";
mode = 1
icon_state = "standard_lethal"
},
/turf/closed/wall/mineral/plastitanium,
/turf/closed/wall/r_wall/syndicate/pirate,
/area/shuttle/pirate)
"dy" = (
/obj/structure/chair/wood/normal,
@@ -988,7 +986,7 @@
id = "piratebridge"
},
/obj/structure/grille,
/obj/structure/window/plastitanium,
/obj/structure/window/plastitanium/pirate,
/turf/open/floor/plating,
/area/shuttle/pirate)
"ez" = (
@@ -1016,7 +1014,7 @@
/turf/open/floor/plasteel,
/area/shuttle/pirate)
"fW" = (
/turf/closed/wall/mineral/plastitanium,
/turf/closed/wall/r_wall/syndicate/pirate,
/area/shuttle/pirate)
"fY" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
@@ -1084,13 +1082,12 @@
/turf/open/floor/plasteel/showroomfloor,
/area/shuttle/pirate)
"wR" = (
/obj/machinery/porta_turret/syndicate/energy{
/obj/machinery/porta_turret/syndicate/energy/pirate{
dir = 8;
faction = list("pirate");
icon_state = "standard_lethal";
mode = 1
icon_state = "standard_lethal"
},
/turf/closed/wall/mineral/plastitanium,
/turf/closed/wall/r_wall/syndicate/pirate,
/area/shuttle/pirate)
"yi" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -1326,7 +1323,7 @@ aU
be
aD
aG
ep
db
aH
"}
(9,1,1) = {"
@@ -1344,7 +1341,7 @@ mU
aL
bP
bX
ep
db
aK
"}
(10,1,1) = {"
@@ -1362,7 +1359,7 @@ aj
bO
bQ
bk
ep
db
er
"}
(11,1,1) = {"
+67 -33
View File
@@ -2,32 +2,57 @@
#define CHECK_DNA_AND_SPECIES(C) if((!(C.dna)) || (!(C.dna.species))) return
//Defines copying names of mutations in all cases, make sure to change this if you change mutation's name
#define HULK "Hulk"
#define XRAY "X Ray Vision"
#define COLDRES "Cold Resistance"
#define TK "Telekinesis"
#define NERVOUS "Nervousness"
#define EPILEPSY "Epilepsy"
#define MUTATE "Unstable DNA"
#define COUGH "Cough"
#define DWARFISM "Dwarfism"
#define CLOWNMUT "Clumsiness"
#define TOURETTES "Tourettes Syndrome"
#define DEAFMUT "Deafness"
#define BLINDMUT "Blindness"
#define RACEMUT "Monkified"
#define BADSIGHT "Near Sightness"
#define LASEREYES "Laser Eyes"
#define CHAMELEON "Chameleon"
#define WACKY "Wacky"
#define MUT_MUTE "Mute"
#define SMILE "Smile"
#define STONER "Stoner"
#define UNINTELLIGIBLE "Unintelligible"
#define SWEDISH "Swedish"
#define CHAV "Chav"
#define ELVIS "Elvis"
//Defines copying names of mutations in all cases, make sure to change this if you change mutation's type
#define HULK /datum/mutation/human/hulk
#define XRAY /datum/mutation/human/thermal/x_ray
#define SPACEMUT /datum/mutation/human/space_adaptation
#define TK /datum/mutation/human/telekinesis
#define NERVOUS /datum/mutation/human/nervousness
#define EPILEPSY /datum/mutation/human/epilepsy
#define MUTATE /datum/mutation/human/bad_dna
#define COUGH /datum/mutation/human/cough
#define DWARFISM /datum/mutation/human/dwarfism
#define GIGANTISM /datum/mutation/human/gigantism
#define CLOWNMUT /datum/mutation/human/clumsy
#define TOURETTES /datum/mutation/human/tourettes
#define DEAFMUT /datum/mutation/human/deaf
#define BLINDMUT /datum/mutation/human/blind
#define RACEMUT /datum/mutation/human/race
#define BADSIGHT /datum/mutation/human/nearsight
#define LASEREYES /datum/mutation/human/laser_eyes
#define CHAMELEON /datum/mutation/human/chameleon
#define WACKY /datum/mutation/human/wacky
#define MUT_MUTE /datum/mutation/human/mute
#define SMILE /datum/mutation/human/smile
#define STONER /datum/mutation/human/stoner
#define UNINTELLIGIBLE /datum/mutation/human/unintelligible
#define SWEDISH /datum/mutation/human/swedish
#define CHAV /datum/mutation/human/chav
#define ELVIS /datum/mutation/human/elvis
#define RADIOACTIVE /datum/mutation/human/radioactive
#define GLOWY /datum/mutation/human/glow
#define ANTIGLOWY /datum/mutation/human/glow/anti
#define TELEPATHY /datum/mutation/human/telepathy
#define FIREBREATH /datum/mutation/human/firebreath
#define VOID /datum/mutation/human/void
#define TONGUESPIKE /datum/mutation/human/tongue_spike
#define TONGUESPIKECHEM /datum/mutation/human/tongue_spike/chem
#define STRONG /datum/mutation/human/strong
#define STIMMED /datum/mutation/human/stimmed
#define FIRESWEAT /datum/mutation/human/fire
#define THERMAL /datum/mutation/human/thermal
#define ANTENNA /datum/mutation/human/antenna
#define PARANOIA /datum/mutation/human/paranoia
#define MINDREAD /datum/mutation/human/mindreader
#define INSULATED /datum/mutation/human/insulated
#define SHOCKTOUCH /datum/mutation/human/shock
#define OLFACTION /datum/mutation/human/olfaction
#define ACIDFLESH /datum/mutation/human/acidflesh
#define BADBLINK /datum/mutation/human/badblink
#define SPASTIC /datum/mutation/human/spastic
#define GELADIKINESIS /datum/mutation/human/geladikinesis
#define CRYOKINESIS /datum/mutation/human/cryokinesis
#define SPIDER_WEB /datum/mutation/human/webbing
#define UI_CHANGED "ui changed"
#define UE_CHANGED "ue changed"
@@ -39,10 +64,12 @@
//Types of usual mutations
#define POSITIVE 1
#define NEGATIVE 2
#define MINOR_NEGATIVE 3
#define MINOR_NEGATIVE 4
//Mutations that cant be taken from genetics and are not in SE
#define NON_SCANNABLE -1
//Mutation classes. Normal being on them, extra being additional mutations with instability and other being stuff you dont want people to fuck with like wizard mutate
#define MUT_NORMAL 1
#define MUT_EXTRA 2
#define MUT_OTHER 3
//DNA - Because fuck you and your magic numbers being all over the codebase.
#define DNA_BLOCK_SIZE 3
@@ -63,7 +90,8 @@
#define DNA_MUTANTMARKING_BLOCK 13
#define DNA_TAUR_BLOCK 14
#define DNA_STRUC_ENZYMES_BLOCKS 18
#define DNA_SEQUENCE_LENGTH 4
#define DNA_MUTATION_BLOCKS 8
#define DNA_UNIQUE_ENZYMES_LEN 32
//Transformation proc stuff
@@ -138,10 +166,16 @@
////organ defines
#define STANDARD_ORGAN_THRESHOLD 100
#define STANDARD_ORGAN_HEALING 0.001
#define STANDARD_ORGAN_DECAY 0.00222 //designed to fail organs when left to decay for ~15 minutes
#define STANDARD_ORGAN_HEALING (1/(15 MINUTES / (2 SECONDS)))
#define STANDARD_ORGAN_DECAY (1/(15 MINUTES / (2 SECONDS))) //designed to fail organs when left to decay for ~15 minutes. 2 SECOND is SSmobs tickrate.
//used for the can_chromosome var on mutations
#define CHROMOSOME_NEVER 0
#define CHROMOSOME_NONE 1
#define CHROMOSOME_USED 2
#define G_MALE 1
#define G_FEMALE 2
#define G_PLURAL 3
#define G_NEUTER 4
#define G_NEUTER 4
+1 -1
View File
@@ -20,7 +20,7 @@
#define NEW_SS_GLOBAL(varname) if(varname != src){if(istype(varname)){Recover();qdel(varname);}varname = src;}
#define START_PROCESSING(Processor, Datum) if (!(Datum.datum_flags & DF_ISPROCESSING)) {Datum.datum_flags |= DF_ISPROCESSING;Processor.processing += Datum}
#define STOP_PROCESSING(Processor, Datum) Datum.datum_flags &= ~DF_ISPROCESSING;Processor.processing -= Datum
#define STOP_PROCESSING(Processor, Datum) Datum.datum_flags &= ~DF_ISPROCESSING;Processor.processing -= Datum;Processor.currentrun -= Datum
//SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier)
+20
View File
@@ -34,6 +34,21 @@
#define HIJACK_HIJACKER 1 //Needs to be present for shuttle to be hijacked
#define HIJACK_PREVENT 2 //Prevents hijacking same way as non-antags
//Syndicate Contracts
#define CONTRACT_STATUS_INACTIVE 1
#define CONTRACT_STATUS_ACTIVE 2
#define CONTRACT_STATUS_BOUNTY_CONSOLE_ACTIVE 3
#define CONTRACT_STATUS_EXTRACTING 4
#define CONTRACT_STATUS_COMPLETE 5
#define CONTRACT_STATUS_ABORTED 6
#define CONTRACT_PAYOUT_LARGE 1
#define CONTRACT_PAYOUT_MEDIUM 2
#define CONTRACT_PAYOUT_SMALL 3
#define CONTRACT_UPLINK_PAGE_CONTRACTS "CONTRACTS"
#define CONTRACT_UPLINK_PAGE_HUB "HUB"
//Overthrow time to update heads obj
#define OBJECTIVE_UPDATING_TIME 300
@@ -57,3 +72,8 @@
#define CAT_STRUCTURE "Structures"
#define MARTIALART_HUNTER "hunter-fu"
//Blob
/// blob gets a free reroll every X time
#define BLOB_REROLL_TIME 2400
#define BLOB_REFLECTOR_COST 15
+4 -3
View File
@@ -34,13 +34,14 @@
#define CAN_MASTURBATE_WITH (1<<5)
#define MASTURBATE_LINKED_ORGAN (1<<6) //used to pass our mission to the linked organ
#define CAN_CLIMAX_WITH (1<<7)
#define GENITAL_CAN_AROUSE (1<<8)
#define COCK_SIZE_MIN 1
#define COCK_SIZE_MAX 20
#define COCK_GIRTH_RATIO_MAX 1.25
#define COCK_GIRTH_RATIO_DEF 0.75
#define COCK_GIRTH_RATIO_MIN 0.5
#define COCK_DIAMETER_RATIO_MAX 0.42
#define COCK_DIAMETER_RATIO_DEF 0.25
#define COCK_DIAMETER_RATIO_MIN 0.15
#define KNOT_GIRTH_RATIO_MAX 3
#define KNOT_GIRTH_RATIO_DEF 2.1
+36 -7
View File
@@ -33,6 +33,10 @@
#define COMSIG_GLOB_NEW_Z "!new_z" //from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
#define COMSIG_GLOB_VAR_EDIT "!var_edit" //called after a successful var edit somewhere in the world: (list/args)
#define COMSIG_GLOB_LIVING_SAY_SPECIAL "!say_special" //global living say plug - use sparingly: (mob/speaker , message)
// signals from globally accessible objects
/// from SSsun when the sun changes position : (azimuth)
#define COMSIG_SUN_MOVED "sun_moved"
//////////////////////////////////////////////////////////////////
// /datum signals
@@ -43,6 +47,10 @@
#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" //before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation
#define COMSIG_PARENT_QDELETING "parent_qdeleting" //just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called
/// Trait signals
#define COMPONENT_ADD_TRAIT (1<<0)
#define COMPONENT_REMOVE_TRAIT (1<<1)
// /atom signals
#define COMSIG_PARENT_ATTACKBY "atom_attackby" //from base of atom/attackby(): (/obj/item, /mob/living, params)
#define COMPONENT_NO_AFTERATTACK 1 //Return this in response if you don't want afterattack to be called
@@ -58,6 +66,7 @@
#define COMSIG_ATOM_NO_UPDATE_ICON_STATE 1
#define COMSIG_ATOM_NO_UPDATE_OVERLAYS 2
#define COMSIG_ATOM_UPDATE_OVERLAYS "atom_update_overlays" //from base of atom/update_overlays(): (list/new_overlays)
#define COMSIG_ATOM_UPDATED_ICON "atom_updated_icon" //from base of atom/update_icon(): (signalOut, did_anything)
#define COMSIG_ATOM_ENTERED "atom_entered" //from base of atom/Entered(): (atom/movable/entering, /atom)
#define COMSIG_ATOM_EXIT "atom_exit" //from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc)
#define COMPONENT_ATOM_BLOCK_EXIT 1
@@ -187,24 +196,35 @@
#define SPEECH_MESSAGE 1
// #define SPEECH_BUBBLE_TYPE 2
#define SPEECH_SPANS 3
/* #define SPEECH_SANITIZE 4
// #define SPEECH_SANITIZE 4
#define SPEECH_LANGUAGE 5
#define SPEECH_IGNORE_SPAM 6
#define SPEECH_FORCED 7 */
// #define SPEECH_IGNORE_SPAM 6
// #define SPEECH_FORCED 7
// /mob/living signals
#define COMSIG_LIVING_FULLY_HEAL "living_fully_healed" //from base of /mob/living/fully_heal(): (admin_revive)
#define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs)
#define COMSIG_LIVING_RESIST "living_resist" //from base of mob/living/resist() (/mob/living)
#define COMSIG_LIVING_IGNITED "living_ignite" //from base of mob/living/IgniteMob() (/mob/living)
#define COMSIG_LIVING_EXTINGUISHED "living_extinguished" //from base of mob/living/ExtinguishMob() (/mob/living)
#define COMSIG_LIVING_ELECTROCUTE_ACT "living_electrocute_act" //from base of mob/living/electrocute_act(): (shock_damage)
#define COMSIG_LIVING_ELECTROCUTE_ACT "living_electrocute_act" //from base of mob/living/electrocute_act(): (shock_damage, source, siemens_coeff, flags)
#define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" //sent by stuff like stunbatons and tasers: ()
#define COMSIG_LIVING_REVIVE "living_revive" //from base of mob/living/revive() (full_heal, admin_revive)
#define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" //sent when a mob/login() finishes: (client)
#define COMSIG_LIVING_GUN_PROCESS_FIRE "living_gun_process_fire" //from base of /obj/item/gun/proc/process_fire(): (atom/target, params, zone_override)
//ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS!
#define COMSIG_LIVING_STATUS_STUN "living_stun" //from base of mob/living/Stun() (amount, update, ignore)
#define COMSIG_LIVING_STATUS_KNOCKDOWN "living_knockdown" //from base of mob/living/Knockdown() (amount, update, ignore)
#define COMSIG_LIVING_STATUS_PARALYZE "living_paralyze" //from base of mob/living/Paralyze() (amount, update, ignore)
#define COMSIG_LIVING_STATUS_IMMOBILIZE "living_immobilize" //from base of mob/living/Immobilize() (amount, update, ignore)
#define COMSIG_LIVING_STATUS_UNCONSCIOUS "living_unconscious" //from base of mob/living/Unconscious() (amount, update, ignore)
#define COMSIG_LIVING_STATUS_SLEEP "living_sleeping" //from base of mob/living/Sleeping() (amount, update, ignore)
#define COMSIG_LIVING_STATUS_DAZE "living_daze" //from base of mob/living/Daze() (amount, update, ignore)
#define COMPONENT_NO_STUN 1 //For all of them
// /mob/living/carbon signals
#define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" //from base of mob/living/carbon/soundbang_act(): (list(intensity))
#define COMSIG_CARBON_IDENTITY_TRANSFERRED_TO "carbon_id_transferred_to" //from datum/dna/transfer_identity(): (datum/dna, transfer_SE)
// /mob/living/simple_animal/hostile signals
#define COMSIG_HOSTILE_ATTACKINGTARGET "hostile_attackingtarget"
@@ -220,6 +240,7 @@
// /obj/item signals
#define COMSIG_ITEM_ATTACK "item_attack" //from base of obj/item/attack(): (/mob/living/target, /mob/living/user)
#define COMSIG_MOB_APPLY_DAMGE "mob_apply_damage" //from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone)
#define COMSIG_ITEM_ATTACK_SELF "item_attack_self" //from base of obj/item/attack_self(): (/mob)
#define COMPONENT_NO_INTERACT 1
#define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" //from base of obj/item/attack_obj(): (/obj, /mob)
@@ -227,12 +248,14 @@
#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack" //from base of obj/item/pre_attack(): (atom/target, mob/user, params)
#define COMPONENT_NO_ATTACK 1
#define COMSIG_ITEM_AFTERATTACK "item_afterattack" //from base of obj/item/afterattack(): (atom/target, mob/user, params)
#define COMSIG_ITEM_ALT_AFTERATTACK "item_alt_afterattack" //from base of obj/item/altafterattack(): (atom/target, mob/user, proximity, params)
#define COMSIG_ITEM_EQUIPPED "item_equip" //from base of obj/item/equipped(): (/mob/equipper, slot)
#define COMSIG_ITEM_DROPPED "item_drop" //from base of obj/item/dropped(): (mob/user)
#define COMSIG_ITEM_PICKUP "item_pickup" //from base of obj/item/pickup(): (/mob/taker)
#define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" //from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone)
#define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user)
#define COMSIG_ITEM_HIT_REACT "item_hit_react" //from base of obj/item/hit_reaction(): (list/args)
#define COMSIG_ITEM_WEARERCROSSED "wearer_crossed" //called on item when crossed by something (): (/atom/movable)
// /obj/item/clothing signals
#define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): ()
@@ -267,6 +290,9 @@
#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" //from mob/living/carbon/human/UnarmedAttack(): (atom/target)
#define COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY "human_melee_unarmed_attackby" //from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker)
#define COMSIG_HUMAN_DISARM_HIT "human_disarm_hit" //Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted)
#define COMSIG_HUMAN_PREFS_COPIED_TO "human_prefs_copied_to" //from datum/preferences/copy_to(): (datum/preferences, icon_updates, roundstart_checks)
#define COMSIG_HUMAN_HARDSET_DNA "human_hardset_dna" //from mob/living/carbon/human/hardset_dna(): (ui, list/mutation_index, newreal_name, newblood_type, datum/species, newfeatures)
#define COMSIG_HUMAN_ON_RANDOMIZE "humman_on_randomize" //from base of proc/randomize_human()
// /datum/species signals
#define COMSIG_SPECIES_GAIN "species_gain" //from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species)
@@ -295,11 +321,14 @@
//Nanites
#define COMSIG_HAS_NANITES "has_nanites" //() returns TRUE if nanites are found
#define COMSIG_NANITE_IS_STEALTHY "nanite_is_stealthy" //() returns TRUE if nanites have stealth
#define COMSIG_NANITE_DELETE "nanite_delete" //() deletes the nanite component
#define COMSIG_NANITE_GET_PROGRAMS "nanite_get_programs" //(list/nanite_programs) - makes the input list a copy the nanites' program list
#define COMSIG_NANITE_GET_VOLUME "nanite_get_volume" //(amount) Returns nanite amount
#define COMSIG_NANITE_SET_VOLUME "nanite_set_volume" //(amount) Sets current nanite volume to the given amount
#define COMSIG_NANITE_ADJUST_VOLUME "nanite_adjust" //(amount) Adjusts nanite volume by the given amount
#define COMSIG_NANITE_SET_MAX_VOLUME "nanite_set_max_volume" //(amount) Sets maximum nanite volume to the given amount
#define COMSIG_NANITE_SET_CLOUD "nanite_set_cloud" //(amount(0-100)) Sets cloud ID to the given amount
#define COMSIG_NANITE_SET_CLOUD_SYNC "nanite_set_cloud_sync" //(method) Modify cloud sync status. Method can be toggle, enable or disable
#define COMSIG_NANITE_SET_SAFETY "nanite_set_safety" //(amount) Sets safety threshold to the given amount
#define COMSIG_NANITE_SET_REGEN "nanite_set_regen" //(amount) Sets regeneration rate to the given amount
#define COMSIG_NANITE_SIGNAL "nanite_signal" //(code(1-9999)) Called when sending a nanite signal to a mob.
@@ -307,8 +336,8 @@
#define COMSIG_NANITE_SCAN "nanite_scan" //(mob/user, full_scan) - sends to chat a scan of the nanites to the user, returns TRUE if nanites are detected
#define COMSIG_NANITE_UI_DATA "nanite_ui_data" //(list/data, scan_level) - adds nanite data to the given data list - made for ui_data procs
#define COMSIG_NANITE_ADD_PROGRAM "nanite_add_program" //(datum/nanite_program/new_program, datum/nanite_program/source_program) Called when adding a program to a nanite component
#define COMPONENT_PROGRAM_INSTALLED 1 //Installation successful
#define COMPONENT_PROGRAM_NOT_INSTALLED 2 //Installation failed, but there are still nanites
#define COMPONENT_PROGRAM_INSTALLED 1 //Installation successful
#define COMPONENT_PROGRAM_NOT_INSTALLED 2 //Installation failed, but there are still nanites
#define COMSIG_NANITE_SYNC "nanite_sync" //(datum/component/nanites, full_overwrite, copy_activation) Called to sync the target's nanites to a given nanite component
// /datum/component/storage signals
+4 -15
View File
@@ -59,19 +59,6 @@
//let's just pretend fulltile windows being children of border windows is fine
#define FULLTILE_WINDOW_DIR NORTHEAST
//Material defines, for determining how much of a given material an item contains
#define MAT_METAL "$metal"
#define MAT_GLASS "$glass"
#define MAT_SILVER "$silver"
#define MAT_GOLD "$gold"
#define MAT_DIAMOND "$diamond"
#define MAT_URANIUM "$uranium"
#define MAT_PLASMA "$plasma"
#define MAT_BLUESPACE "$bluespace"
#define MAT_BANANIUM "$bananium"
#define MAT_TITANIUM "$titanium"
#define MAT_BIOMASS "$biomass"
#define MAT_PLASTIC "$plastic"
//The amount of materials you get from a sheet of mineral like iron/diamond/glass etc
#define MINERAL_MATERIAL_AMOUNT 2000
//The maximum size of a stack object.
@@ -92,17 +79,19 @@
#define CAT_BREAD "Breads"
#define CAT_BURGER "Burgers"
#define CAT_CAKE "Cakes"
#define CAT_DONUT "Donuts"
#define CAT_EGG "Egg-Based Food"
#define CAT_MEAT "Meats"
#define CAT_MEXICAN "Mexican"
#define CAT_MISCFOOD "Misc. Food"
#define CAT_PASTRY "Pastries"
#define CAT_PIE "Pies"
#define CAT_PIE "Pies & Sweets"
#define CAT_PIZZA "Pizzas"
#define CAT_SALAD "Salads"
#define CAT_SEAFOOD "Seafood"
#define CAT_SANDWICH "Sandwiches"
#define CAT_SOUP "Soups"
#define CAT_SPAGHETTI "Spaghettis"
#define CAT_FISH "Fish"
#define CAT_ICE "Frozen"
#define RCD_FLOORWALL 1
+33 -6
View File
@@ -54,13 +54,13 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define PASSCLOSEDTURF (1<<5)
#define LETPASSTHROW (1<<6)
//Movement Types
#define GROUND (1<<0)
#define FLYING (1<<1)
#define VENTCRAWLING (1<<2)
#define FLOATING (1<<3)
#define UNSTOPPABLE (1<<4) //When moving, will Bump()/Cross()/Uncross() everything, but won't be stopped.
#define GROUND (1<<0)
#define FLYING (1<<1)
#define VENTCRAWLING (1<<2)
#define FLOATING (1<<3)
#define UNSTOPPABLE (1<<4) //When moving, will Bump()/Cross()/Uncross() everything, but won't be stopped.
#define CRAWLING (1<<5) //Applied if you're crawling around on the ground/resting.
//Fire and Acid stuff, for resistance_flags
#define LAVA_PROOF (1<<0)
@@ -92,3 +92,30 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
// radiation
#define RAD_PROTECT_CONTENTS (1<<0)
#define RAD_NO_CONTAMINATE (1<<1)
//Mob mobility var flags
/// any flag
#define CHECK_MOBILITY(target, flags) CHECK_BITFIELD(target.mobility_flags, flags)
#define CHECK_ALL_MOBILITY(target, flags) CHECK_MULTIPLE_BITFIELDS(target.mobility_flags, flags)
/// can move
#define MOBILITY_MOVE (1<<0)
/// can, and is, standing up.
#define MOBILITY_STAND (1<<1)
/// can pickup items
#define MOBILITY_PICKUP (1<<2)
/// can use items and interact with world objects like opening closets/etc
#define MOBILITY_USE (1<<3)
/// can use interfaces like consoles
#define MOBILITY_UI (1<<4)
/// can use storage item
#define MOBILITY_STORAGE (1<<5)
/// can pull things
#define MOBILITY_PULL (1<<6)
/// can hold non-nodropped items voluntarily
#define MOBILITY_HOLD (1<<7)
/// Can resist out of buckling, grabs, cuffs, etc, in the usual order (buckle --> cuffs --> grab)
#define MOBILITY_RESIST (1<<8)
#define MOBILITY_FLAGS_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_PICKUP | MOBILITY_USE | MOBILITY_UI | MOBILITY_STORAGE | MOBILITY_PULL | MOBILITY_RESIST)
#define MOBILITY_FLAGS_ANY_INTERACTION (MOBILITY_USE | MOBILITY_PICKUP | MOBILITY_UI | MOBILITY_STORAGE)
-2
View File
@@ -20,5 +20,3 @@
#define INTERACT_MACHINE_SET_MACHINE (1<<6) //MACHINES HAVE THIS BY DEFAULT, SOMEONE SHOULD RUN THROUGH MACHINES AND REMOVE IT FROM THINGS LIKE LIGHT SWITCHES WHEN POSSIBLE!!--------------------------
//This flag determines if a machine set_machine's the user when the user uses it, making updateUsrDialog make the user re-call interact() on it.
//THIS FLAG IS ON ALL MACHINES BY DEFAULT, NEEDS TO BE RE-EVALUATED LATER!!
#define INTERACT_GHOST_READ (1<<0)
+31 -29
View File
@@ -23,6 +23,7 @@
#define DOCTOR (1<<4)
#define GENETICIST (1<<5)
#define VIROLOGIST (1<<6)
#define PARAMEDIC (1<<7)
#define CIVILIAN (1<<2)
@@ -58,32 +59,33 @@
#define JOB_DISPLAY_ORDER_ASSISTANT 1
#define JOB_DISPLAY_ORDER_CAPTAIN 2
#define JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL 3
#define JOB_DISPLAY_ORDER_BARTENDER 4
#define JOB_DISPLAY_ORDER_COOK 5
#define JOB_DISPLAY_ORDER_BOTANIST 6
#define JOB_DISPLAY_ORDER_JANITOR 7
#define JOB_DISPLAY_ORDER_CLOWN 8
#define JOB_DISPLAY_ORDER_MIME 9
#define JOB_DISPLAY_ORDER_CURATOR 10
#define JOB_DISPLAY_ORDER_LAWYER 11
#define JOB_DISPLAY_ORDER_CHAPLAIN 12
#define JOB_DISPLAY_ORDER_QUARTERMASTER 13
#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 14
#define JOB_DISPLAY_ORDER_SHAFT_MINER 15
#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 16
#define JOB_DISPLAY_ORDER_STATION_ENGINEER 17
#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 18
#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 19
#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 20
#define JOB_DISPLAY_ORDER_CHEMIST 21
#define JOB_DISPLAY_ORDER_GENETICIST 22
#define JOB_DISPLAY_ORDER_VIROLOGIST 23
#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 24
#define JOB_DISPLAY_ORDER_SCIENTIST 25
#define JOB_DISPLAY_ORDER_ROBOTICIST 26
#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 27
#define JOB_DISPLAY_ORDER_WARDEN 28
#define JOB_DISPLAY_ORDER_DETECTIVE 29
#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 30
#define JOB_DISPLAY_ORDER_AI 31
#define JOB_DISPLAY_ORDER_CYBORG 32
#define JOB_DISPLAY_ORDER_QUARTERMASTER 4
#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 5
#define JOB_DISPLAY_ORDER_SHAFT_MINER 6
#define JOB_DISPLAY_ORDER_BARTENDER 7
#define JOB_DISPLAY_ORDER_COOK 8
#define JOB_DISPLAY_ORDER_BOTANIST 9
#define JOB_DISPLAY_ORDER_JANITOR 10
#define JOB_DISPLAY_ORDER_CLOWN 11
#define JOB_DISPLAY_ORDER_MIME 12
#define JOB_DISPLAY_ORDER_CURATOR 13
#define JOB_DISPLAY_ORDER_LAWYER 14
#define JOB_DISPLAY_ORDER_CHAPLAIN 15
#define JOB_DISPLAY_ORDER_AI 16
#define JOB_DISPLAY_ORDER_CYBORG 17
#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 18
#define JOB_DISPLAY_ORDER_STATION_ENGINEER 19
#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 20
#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 21
#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 22
#define JOB_DISPLAY_ORDER_PARAMEDIC 23
#define JOB_DISPLAY_ORDER_CHEMIST 24
#define JOB_DISPLAY_ORDER_VIROLOGIST 25
#define JOB_DISPLAY_ORDER_GENETICIST 26
#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 27
#define JOB_DISPLAY_ORDER_SCIENTIST 28
#define JOB_DISPLAY_ORDER_ROBOTICIST 29
#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 30
#define JOB_DISPLAY_ORDER_WARDEN 31
#define JOB_DISPLAY_ORDER_DETECTIVE 32
#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 33
+1 -1
View File
@@ -41,7 +41,7 @@
//Individual logging panel pages
#define INDIVIDUAL_ATTACK_LOG (LOG_ATTACK)
#define INDIVIDUAL_SAY_LOG (LOG_SAY | LOG_WHISPER | LOG_DSAY)
#define INDIVIDUAL_EMOTE_LOG (LOG_EMOTE)
#define INDIVIDUAL_EMOTE_LOG (LOG_EMOTE | LOG_SUBTLER)
#define INDIVIDUAL_COMMS_LOG (LOG_PDA | LOG_CHAT | LOG_COMMENT | LOG_TELECOMMS)
#define INDIVIDUAL_OOC_LOG (LOG_OOC | LOG_ADMIN)
#define INDIVIDUAL_OWNERSHIP_LOG (LOG_OWNERSHIP)
+11
View File
@@ -0,0 +1,11 @@
/// Is the material from an ore? currently unused but exists atm for categorizations sake
#define MAT_CATEGORY_ORE "ore capable"
/// Hard materials, such as iron or metal
#define MAT_CATEGORY_RIGID "rigid material"
/// Flag for atoms, this flag ensures it isn't re-colored by materials. Useful for snowflake icons such as default toolboxes.
#define MATERIAL_COLOR (1<<0)
#define MATERIAL_ADD_PREFIX (1<<1)
#define MATERIAL_NO_EFFECTS (1<<2)
#define MATERIAL_AFFECT_STATISTICS (1<<3)
+3 -1
View File
@@ -199,4 +199,6 @@
#define LORENTZ_CUMULATIVE_DISTRIBUTION(x, y, s) ( (1/PI)*TORADIANS(arctan((x-y)/s)) + 1/2 )
#define RULE_OF_THREE(a, b, x) ((a*x)/b)
// )
// )
#define MANHATTAN_DISTANCE(a, b) (abs(a.x - b.x) + abs(a.y - b.y))
+4
View File
@@ -406,6 +406,8 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
#define DUMMY_HUMAN_SLOT_HOLOFORM "dummy_holoform_generation"
#define DUMMY_HUMAN_SLOT_ADMIN "admintools"
#define DUMMY_HUMAN_SLOT_MANIFEST "dummy_manifest_generation"
#define DUMMY_HUMAN_SLOT_HALLUCINATION "dummy_hallucination"
#define DUMMY_HUMAN_SLOT_EXAMINER "dummy_examiner"
#define PR_ANNOUNCEMENTS_PER_ROUND 5 //The number of unique PR announcements allowed per round
//This makes sure that a single person can only spam 3 reopens and 3 closes before being ignored
@@ -520,3 +522,5 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
#define NIGHTSHIFT_AREA_RECREATION 2 //dorms common areas, etc
#define NIGHTSHIFT_AREA_DEPARTMENT_HALLS 3 //interior hallways, etc
#define NIGHTSHIFT_AREA_NONE 4 //default/highest.
#define UNTIL(X) while(!(X)) stoplag()
+25 -12
View File
@@ -35,17 +35,17 @@
#define BLOODCRAWL 1
#define BLOODCRAWL_EAT 2
//Mob bio-types
#define MOB_ORGANIC "organic"
#define MOB_INORGANIC "inorganic"
#define MOB_ROBOTIC "robotic"
#define MOB_UNDEAD "undead"
#define MOB_HUMANOID "humanoid"
#define MOB_BUG "bug"
#define MOB_BEAST "beast"
#define MOB_EPIC "epic" //megafauna
#define MOB_REPTILE "reptile"
#define MOB_SPIRIT "spirit"
//Mob bio-types flags
#define MOB_ORGANIC 1 << 0
#define MOB_MINERAL 1 << 1
#define MOB_ROBOTIC 1 << 2
#define MOB_UNDEAD 1 << 3
#define MOB_HUMANOID 1 << 4
#define MOB_BUG 1 << 5
#define MOB_BEAST 1 << 6
#define MOB_EPIC 1 << 7 //megafauna
#define MOB_REPTILE 1 << 8
#define MOB_SPIRIT 1 << 9
//Organ defines for carbon mobs
#define ORGAN_ORGANIC 1
@@ -58,8 +58,10 @@
#define BODYPART_DISABLED_DAMAGE 1
#define BODYPART_DISABLED_PARALYSIS 2
#define DEFAULT_BODYPART_ICON 'icons/mob/human_parts.dmi'
#define DEFAULT_BODYPART_ICON_ORGANIC 'icons/mob/human_parts_greyscale.dmi'
#define DEFAULT_BODYPART_ICON_ROBOTIC 'icons/mob/augmentation/augments.dmi'
#define DEFAULT_BODYPART_ICON_CITADEL 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
#define MONKEY_BODYPART "monkey"
#define ALIEN_BODYPART "alien"
@@ -208,6 +210,17 @@
#define MAX_CHICKENS 50
///Flags used by the flags parameter of electrocute act.
///Makes it so that the shock doesn't take gloves into account.
#define SHOCK_NOGLOVES (1 << 0)
///Used when the shock is from a tesla bolt.
#define SHOCK_TESLA (1 << 1)
///Used when an illusion shocks something. Makes the shock deal stamina damage and not trigger certain secondary effects.
#define SHOCK_ILLUSION (1 << 2)
///The shock doesn't stun.
#define SHOCK_NOSTUN (1 << 3)
#define INCORPOREAL_MOVE_BASIC 1
#define INCORPOREAL_MOVE_SHADOW 2 // leaves a trail of shadows
@@ -276,4 +289,4 @@
#define HUMAN_FIRE_STACK_ICON_NUM 3
#define PULL_PRONE_SLOWDOWN 0.6
#define HUMAN_CARRY_SLOWDOWN 0
#define HUMAN_CARRY_SLOWDOWN 0
+1 -1
View File
@@ -17,4 +17,4 @@
#define MOVE_FORCE_NORMAL MOVE_FORCE_DEFAULT
#define MOVE_FORCE_WEAK (MOVE_FORCE_DEFAULT / 2)
#define MOVE_FORCE_VERY_WEAK ((MOVE_FORCE_DEFAULT / MOVE_FORCE_CRUSH_RATIO) + 1)
#define MOVE_FORCE_EXTREMELY_WEAK (MOVE_FORCE_DEFAULT / (MOVE_FORCE_CRUSH_RATIO * 3))
#define MOVE_FORCE_EXTREMELY_WEAK (MOVE_FORCE_DEFAULT / (MOVE_FORCE_CRUSH_RATIO * 3))
+14 -4
View File
@@ -17,6 +17,9 @@
//ids
#define MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED "MOB_WALK_RUN"
#define MOVESPEED_ID_MOB_GRAB_STATE "MOB_GRAB_STATE"
#define MOVESPEED_ID_MOB_EQUIPMENT "MOB_EQUIPMENT"
#define MOVESPEED_ID_MOB_GRAVITY "MOB_GRAVITY"
#define MOVESPEED_ID_CONFIG_SPEEDMOD "MOB_CONFIG_MODIFIER"
#define MOVESPEED_ID_SLIME_REAGENTMOD "SLIME_REAGENT_MODIFIER"
@@ -28,6 +31,7 @@
#define MOVESPEED_ID_TARANTULA_WEB "TARANTULA_WEB"
#define MOVESPEED_ID_LIVING_TURF_SPEEDMOD "LIVING_TURF_SPEEDMOD"
#define MOVESPEED_ID_LIVING_LIMBLESS "LIVING_LIMBLESS"
#define MOVESPEED_ID_CARBON_SOFTCRIT "CARBON_SOFTCRIT"
#define MOVESPEED_ID_CARBON_OLDSPEED "CARBON_DEPRECATED_SPEED"
@@ -59,13 +63,19 @@
#define MOVESPEED_ID_HUMAN_CARRYING "HUMAN_CARRY"
#define MOVESPEED_ID_SHRINK_RAY "SHRUNKEN_SPEED_MODIFIER"
#define MOVESPEED_ID_TASED_STATUS "TASED"
#define MOVESPEED_ID_SLAUGHTER "SLAUGHTER"
#define MOVESPEED_ID_CYBER_THRUSTER "CYBER_IMPLANT_THRUSTER"
#define MOVESPEED_ID_JETPACK "JETPACK"
#define MOVESPEED_ID_SHOVE "SHOVE"
#define MOVESPEED_ID_MKULTRA "MKULTRA"
#define MOVESPEED_ID_MKULTRA "MKULTRA"
#define MOVESPEED_ID_TASED_STATUS "TASED"
#define MOVESPEED_ID_ELECTROSTAFF "ELECTROSTAFF"
#define MOVESPEED_ID_SHOVE "SHOVE"
#define MOVESPEED_ID_FAT "FAT"
#define MOVESPEED_ID_COLD "COLD"
#define MOVESPEED_ID_HUNGRY "HUNGRY"
#define MOVESPEED_ID_DAMAGE_SLOWDOWN "DAMAGE"
#define MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING "FLYING"
+39 -6
View File
@@ -1,11 +1,44 @@
#define NANITE_TIMER_DEACTIVATE 1
#define NANITE_TIMER_SELFDELETE 2
#define NANITE_TIMER_TRIGGER 3
#define NANITE_TIMER_RESET 4
#define NANITE_SYNC_DELAY 300
#define NANITE_SHOCK_IMMUNE 1
#define NANITE_EMP_IMMUNE 2
#define NANITE_PROGRAM_LIMIT 20
#define NANITE_PROGRAM_LIMIT 20
#define NANITE_BASE_RESEARCH 3.5
#define NANITE_CLOUD_TOGGLE 1
#define NANITE_CLOUD_DISABLE 2
#define NANITE_CLOUD_ENABLE 3
///Nanite extra settings types: used to help uis know what type an extra setting is
#define NESTYPE_TEXT "text"
#define NESTYPE_NUMBER "number"
#define NESTYPE_TYPE "type"
#define NESTYPE_BOOLEAN "boolean"
///Nanite Extra Settings - Note that these will also be the names displayed in the UI
#define NES_SENT_CODE "Sent Code"
#define NES_DELAY "Delay"
#define NES_MODE "Mode"
#define NES_COMM_CODE "Comm Code"
#define NES_RELAY_CHANNEL "Relay Channel"
#define NES_HEALTH_PERCENT "Health Percent"
#define NES_DIRECTION "Direction"
#define NES_NANITE_PERCENT "Nanite Percent"
#define NES_DAMAGE_TYPE "Damage Type"
#define NES_DAMAGE "Damage"
#define NES_SENTENCE "Sentence"
#define NES_MESSAGE "Message"
#define NES_DIRECTIVE "Directive"
#define NES_INCLUSIVE_MODE "Inclusive Mode"
#define NES_HALLUCINATION_TYPE "Hallucination Type"
#define NES_HALLUCINATION_DETAIL "Hallucination Detail"
#define NES_MOOD_MESSAGE "Mood Message"
#define NES_PROGRAM_OVERWRITE "Program Overwrite"
#define NES_CLOUD_OVERWRITE "Cloud Overwrite"
#define NES_SCAN_TYPE "Scan Type"
#define NES_BUTTON_NAME "Button Name"
#define NES_ICON "Icon"
#define NES_COLOR "Color"
+13 -12
View File
@@ -17,18 +17,19 @@
// Flags for the item_flags var on /obj/item
#define BEING_REMOVED (1<<0)
#define IN_INVENTORY (1<<1) //is this item equipped into an inventory slot or hand of a mob? used for tooltips
#define FORCE_STRING_OVERRIDE (1<<2) //used for tooltips
#define NEEDS_PERMIT (1<<3) //Used by security bots to determine if this item is safe for public use.
#define SLOWS_WHILE_IN_HAND (1<<4)
#define NO_MAT_REDEMPTION (1<<5) //Stops you from putting things like an RCD or other items into an ORM or protolathe for materials.
#define DROPDEL (1<<6) //When dropped, it calls qdel on itself
#define NOBLUDGEON (1<<7) //when an item has this it produces no "X has been hit by Y with Z" message in the default attackby()
#define ABSTRACT (1<<8) //for all things that are technically items but used for various different stuff
#define IMMUTABLE_SLOW (1<<9) //When players should not be able to change the slowdown of the item (Speed potions, ect)
#define SURGICAL_TOOL (1<<10) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes)
#define NO_UNIFORM_REQUIRED (1<<11) //Can be worn on certain slots (currently belt and id) that would otherwise require an uniform.
#define BEING_REMOVED (1<<0)
#define IN_INVENTORY (1<<1) //is this item equipped into an inventory slot or hand of a mob? used for tooltips
#define FORCE_STRING_OVERRIDE (1<<2) //used for tooltips
#define NEEDS_PERMIT (1<<3) //Used by security bots to determine if this item is safe for public use.
#define SLOWS_WHILE_IN_HAND (1<<4)
#define NO_MAT_REDEMPTION (1<<5) //Stops you from putting things like an RCD or other items into an ORM or protolathe for materials.
#define DROPDEL (1<<6) //When dropped, it calls qdel on itself
#define NOBLUDGEON (1<<7) //when an item has this it produces no "X has been hit by Y with Z" message in the default attackby()
#define ABSTRACT (1<<8) //for all things that are technically items but used for various different stuff
#define IMMUTABLE_SLOW (1<<9) //When players should not be able to change the slowdown of the item (Speed potions, ect)
#define SURGICAL_TOOL (1<<10) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes)
#define NO_UNIFORM_REQUIRED (1<<11) //Can be worn on certain slots (currently belt and id) that would otherwise require an uniform.
#define NO_ATTACK_CHAIN_SOFT_STAMCRIT (1<<12) //Entirely blocks melee_attack_chain() if user is soft stamcritted. Uses getStaminaLoss() to check at this point in time. THIS DOES NOT BLOCK RANGED AFTERATTACK()S, ONLY MELEE RANGE AFTERATTACK()S.
// Flags for the clothing_flags var on /obj/item/clothing
+13
View File
@@ -0,0 +1,13 @@
//TODO: move these to their own file
#define POOL_FRIGID 1
#define POOL_COOL 2
#define POOL_NORMAL 3
#define POOL_WARM 4
#define POOL_SCALDING 5
GLOBAL_LIST_INIT(blacklisted_pool_reagents, list(
/datum/reagent/toxin/plasma, /datum/reagent/oxygen, /datum/reagent/nitrous_oxide, /datum/reagent/nitrogen, //gases
/datum/reagent/fermi, //blanket fermichem ban sorry. this also covers mkultra, genital enlargers, etc etc.
/datum/reagent/drug/aphrodisiac, /datum/reagent/drug/anaphrodisiac, /datum/reagent/drug/aphrodisiacplus, /datum/reagent/drug/anaphrodisiacplus, //literally asking for prefbreaks
/datum/reagent/consumable/femcum, /datum/reagent/consumable/semen //NO.
))
+3
View File
@@ -0,0 +1,3 @@
#define SOLAR_TRACK_OFF 0
#define SOLAR_TRACK_TIMED 1
#define SOLAR_TRACK_AUTO 2
+2 -2
View File
@@ -1,5 +1,5 @@
#define PROFILE_START ;PROFILE_STORE = list();PROFILE_SET;
#define PROFILE_STOP ;PROFILE_STORE = null;
#define LINE_PROFILE_START ;PROFILE_STORE = list();PROFILE_SET;
#define LINE_PROFILE_STOP ;PROFILE_STORE = null;
#define PROFILE_SET ;PROFILE_TIME = TICK_USAGE_REAL; PROFILE_LINE = __LINE__; PROFILE_FILE = __FILE__; PROFILE_SLEEPCHECK = world.time;
+4
View File
@@ -23,6 +23,10 @@ Ask ninjanomnom if they're around
#define RAD_MOB_MUTATE 1250 // How much stored radiation to check for mutation
#define RAD_MONKEY_GORILLIZE 1650 // How much stored radiation to check for Harambe time.
#define RAD_MOB_GORILLIZE_FACTOR 100
#define RAD_MONKEY_GORILLIZE_EXPONENT 0.5
#define RAD_MOB_VOMIT 2000 // The amount of radiation to check for vomitting
#define RAD_MOB_VOMIT_PROB 1 // Chance per tick of vomitting
+5
View File
@@ -22,6 +22,11 @@
// Is an open container for all intents and purposes.
#define OPENCONTAINER (REFILLABLE | DRAINABLE | TRANSPARENT)
//reagents_value defines, for cargo stuff.
#define DEFAULT_REAGENTS_VALUE 1
#define NO_REAGENTS_VALUE 0
#define HARVEST_REAGENTS_VALUE 0.3
#define TOUCH 1 // splashing
#define INGEST 2 // ingestion
+7 -1
View File
@@ -53,4 +53,10 @@
//Checks to determine borg availability depending on the server's config. These are defines in the interest of reducing copypasta
#define BORG_SEC_AVAILABLE (!CONFIG_GET(flag/disable_secborg) && GLOB.security_level >= CONFIG_GET(number/minimum_secborg_alert))
#define BORG_SEC_AVAILABLE (!CONFIG_GET(flag/disable_secborg) && GLOB.security_level >= CONFIG_GET(number/minimum_secborg_alert))
//silicon_priviledges flags
#define PRIVILEDGES_SILICON (1<<0)
#define PRIVILEDGES_PAI (1<<1)
#define PRIVILEDGES_BOT (1<<2)
#define PRIVILEDGES_DRONE (1<<3)
+1
View File
@@ -81,6 +81,7 @@
//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam
#define MAX_MESSAGE_LEN 2048 //Citadel edit: What's the WORST that could happen?
#define MAX_FAVOR_LEN 4096 //double the maximum message length.
#define MAX_NAME_LEN 42
#define MAX_BROADCAST_LEN 512
#define MAX_CHARTER_LEN 80
+16 -3
View File
@@ -37,16 +37,25 @@
/////////////
// DEBUFFS //
/////////////
/// The affected is unable to move, or to use, hold, or pickup items.
#define STATUS_EFFECT_STUN /datum/status_effect/incapacitating/stun
#define STATUS_EFFECT_STUN /datum/status_effect/incapacitating/stun //the affected is stunned
#define STATUS_EFFECT_KNOCKDOWN /datum/status_effect/incapacitating/knockdown //the affected is unable to stand up
#define STATUS_EFFECT_KNOCKDOWN /datum/status_effect/incapacitating/knockdown //the affected is knocked down
#define STATUS_EFFECT_IMMOBILIZED /datum/status_effect/incapacitating/immobilized //the affected is unable to move
#define STATUS_EFFECT_PARALYZED /datum/status_effect/incapacitating/paralyzed //the affected is unable to move, use items, or stand up.
/// The affected is unable to use or pickup items
#define STATUS_EFFECT_DAZED /datum/status_effect/incapacitating/dazed
#define STATUS_EFFECT_UNCONSCIOUS /datum/status_effect/incapacitating/unconscious //the affected is unconscious
#define STATUS_EFFECT_SLEEPING /datum/status_effect/incapacitating/sleeping //the affected is asleep
#define STATUS_EFFECT_TASED /datum/status_effect/no_combat_mode/electrode/ //the affected has been tased, preventing fine muscle control
#define STATUS_EFFECT_TASED_WEAK /datum/status_effect/electrode //not as crippling, just slows down
#define STATUS_EFFECT_TASED /datum/status_effect/electrode/no_combat_mode //the affected has been tased, preventing fine muscle control
#define STATUS_EFFECT_PACIFY /datum/status_effect/pacify //the affected is pacified, preventing direct hostile actions
@@ -88,6 +97,9 @@
#define STATUS_EFFECT_NO_COMBAT_MODE /datum/status_effect/no_combat_mode //Wont allow combat mode and will disable it
#define STATUS_EFFECT_MESMERIZE /datum/status_effect/no_combat_mode/mesmerize //Just reskinned no_combat_mode
#define STATUS_EFFECT_ELECTROSTAFF /datum/status_effect/electrostaff //slows down victim
/////////////
// NEUTRAL //
/////////////
@@ -106,3 +118,4 @@
#define STATUS_EFFECT_RAINBOWPROTECTION /datum/status_effect/rainbow_protection //Invulnerable and pacifistic
#define STATUS_EFFECT_SLIMESKIN /datum/status_effect/slimeskin //Increased armor
#define STATUS_EFFECT_DNA_MELT /datum/status_effect/dna_melt //usually does something horrible to you when you hit 100 genetic instability
+20 -19
View File
@@ -47,25 +47,26 @@
// Subsystems shutdown in the reverse of the order they initialize in
// The numbers just define the ordering, they are meaningless otherwise.
#define INIT_ORDER_FAIL2TOPIC 22
#define INIT_ORDER_TITLE 20
#define INIT_ORDER_GARBAGE 19
#define INIT_ORDER_DBCORE 18
#define INIT_ORDER_BLACKBOX 17
#define INIT_ORDER_SERVER_MAINT 16
#define INIT_ORDER_INPUT 15
#define INIT_ORDER_VIS 14
#define INIT_ORDER_RESEARCH 13
#define INIT_ORDER_EVENTS 12
#define INIT_ORDER_JOBS 11
#define INIT_ORDER_QUIRKS 10
#define INIT_ORDER_TICKER 9
#define INIT_ORDER_MAPPING 8
#define INIT_ORDER_NETWORKS 7
#define INIT_ORDER_ATOMS 6
#define INIT_ORDER_LANGUAGE 5
#define INIT_ORDER_MACHINES 4
#define INIT_ORDER_CIRCUIT 3
#define INIT_ORDER_PROFILER 100
#define INIT_ORDER_FAIL2TOPIC 99
#define INIT_ORDER_TITLE 98
#define INIT_ORDER_GARBAGE 97
#define INIT_ORDER_DBCORE 95
#define INIT_ORDER_BLACKBOX 94
#define INIT_ORDER_SERVER_MAINT 93
#define INIT_ORDER_INPUT 85
#define INIT_ORDER_VIS 80
#define INIT_ORDER_RESEARCH 75
#define INIT_ORDER_EVENTS 70
#define INIT_ORDER_JOBS 65
#define INIT_ORDER_QUIRKS 60
#define INIT_ORDER_TICKER 55
#define INIT_ORDER_MAPPING 50
#define INIT_ORDER_NETWORKS 45
#define INIT_ORDER_ATOMS 30
#define INIT_ORDER_LANGUAGE 25
#define INIT_ORDER_MACHINES 20
#define INIT_ORDER_CIRCUIT 15
#define INIT_ORDER_TIMER 1
#define INIT_ORDER_DEFAULT 0
#define INIT_ORDER_AIR -1
+1
View File
@@ -1,4 +1,5 @@
#define TGS_EXTERNAL_CONFIGURATION
#define TGS_V3_API
#define TGS_DEFINE_AND_SET_GLOBAL(Name, Value) GLOBAL_VAR_INIT(##Name, ##Value); GLOBAL_PROTECT(##Name)
#define TGS_READ_GLOBAL(Name) GLOB.##Name
#define TGS_WRITE_GLOBAL(Name, Value) GLOB.##Name = ##Value
+21 -5
View File
@@ -107,6 +107,22 @@
var/commit //full sha of compiled commit
var/origin_commit //full sha of last known remote commit. This may be null if the TGS repository is not currently tracking a remote branch
//represents a version of tgstation-server
/datum/tgs_version
var/suite //The suite version, can be >=3
//this group of variables can be null to represent a wild card
var/major //The major version
var/minor //The minor version
var/patch //The patch version
var/raw_parameter //The unparsed parameter
var/deprefixed_parameter //The version only bit of raw_parameter
//if the tgs_version is a wildcard version
/datum/tgs_version/proc/Wildcard()
return
//represents a merge of a GitHub pull request
/datum/tgs_revision_information/test_merge
var/number //pull request number
@@ -155,22 +171,22 @@
//FUNCTIONS
//Returns the respective string version of the API
//Returns the respective supported /datum/tgs_version of the API
/world/proc/TgsMaximumAPIVersion()
return
/world/proc/TgsMinimumAPIVersion()
return
//Gets the current version of the server tools running the server
/world/proc/TgsVersion()
return
//Returns TRUE if the world was launched under the server tools and the API matches, FALSE otherwise
//No function below this succeeds if it returns FALSE
/world/proc/TgsAvailable()
return
//Gets the current /datum/tgs_version of the server tools running the server
/world/proc/TgsVersion()
return
/world/proc/TgsInstanceName()
return
+26 -2
View File
@@ -1,3 +1,5 @@
#define SIGNAL_TRAIT(trait_ref) "trait [trait_ref]"
// trait accessor defines
#define ADD_TRAIT(target, trait, source) \
do { \
@@ -6,12 +8,14 @@
target.status_traits = list(); \
_L = target.status_traits; \
_L[trait] = list(source); \
SEND_SIGNAL(target, SIGNAL_TRAIT(trait), COMPONENT_ADD_TRAIT); \
} else { \
_L = target.status_traits; \
if (_L[trait]) { \
_L[trait] |= list(source); \
} else { \
_L[trait] = list(source); \
SEND_SIGNAL(target, SIGNAL_TRAIT(trait), COMPONENT_ADD_TRAIT); \
} \
} \
} while (0)
@@ -31,7 +35,8 @@
} \
};\
if (!length(_L[trait])) { \
_L -= trait \
_L -= trait; \
SEND_SIGNAL(target, SIGNAL_TRAIT(trait), COMPONENT_REMOVE_TRAIT); \
}; \
if (!length(_L)) { \
target.status_traits = null \
@@ -46,7 +51,8 @@
for (var/_T in _L) { \
_L[_T] &= _S;\
if (!length(_L[_T])) { \
_L -= _T } \
_L -= _T ; \
SEND_SIGNAL(target, SIGNAL_TRAIT(_T), COMPONENT_REMOVE_TRAIT); } \
};\
if (!length(_L)) { \
target.status_traits = null\
@@ -55,6 +61,7 @@
} while (0)
#define HAS_TRAIT(target, trait) (target.status_traits ? (target.status_traits[trait] ? TRUE : FALSE) : FALSE)
#define HAS_TRAIT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (source in target.status_traits[trait]) : FALSE) : FALSE)
#define HAS_TRAIT_NOT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (length(target.status_traits[trait] - source) > 0) : FALSE) : FALSE)
//mob traits
#define TRAIT_BLIND "blind"
@@ -76,6 +83,7 @@
#define TRAIT_DISFIGURED "disfigured"
#define TRAIT_XENO_HOST "xeno_host" //Tracks whether we're gonna be a baby alien's mummy.
#define TRAIT_STUNIMMUNE "stun_immunity"
#define TRAIT_TASED_RESISTANCE "tased_resistance" //prevents you from suffering most of the effects of being tased
#define TRAIT_SLEEPIMMUNE "sleep_immunity"
#define TRAIT_PUSHIMMUNE "push_immunity"
#define TRAIT_SHOCKIMMUNE "shock_immunity"
@@ -110,6 +118,7 @@
#define TRAIT_NOHARDCRIT "nohardcrit"
#define TRAIT_NOSOFTCRIT "nosoftcrit"
#define TRAIT_MINDSHIELD "mindshield"
#define TRAIT_HIJACKER "hijacker"
#define TRAIT_SIXTHSENSE "sixthsense"
#define TRAIT_DISSECTED "dissected"
#define TRAIT_FEARLESS "fearless"
@@ -136,6 +145,19 @@
#define TRAIT_NOPULSE "nopulse" // Your heart doesn't beat.
#define TRAIT_EXEMPT_HEALTH_EVENTS "exempt-health-events"
// mobility flag traits
// IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it)
// BUT FOR NOW, THESE ARE HOOKED TO DO update_mobility() VIA COMSIG IN living_mobility.dm
// SO IF YOU ADD MORE, BESURE TO UPDATE IT THERE.
/// Disallow movement
#define TRAIT_MOBILITY_NOMOVE "mobility_nomove"
/// Disallow pickup
#define TRAIT_MOBILITY_NOPICKUP "mobility_nopickup"
/// Disallow item use
#define TRAIT_MOBILITY_NOUSE "mobility_nouse"
#define TRAIT_SWIMMING "swimming" //only applied by /datum/element/swimming, for checking
//non-mob traits
#define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it
@@ -173,6 +195,8 @@
#define TRAIT_AUTO_CATCH_ITEM "auto_catch_item"
#define TRAIT_CLOWN_MENTALITY "clown_mentality" // The future is now, clownman.
#define TRAIT_FREESPRINT "free_sprinting"
#define TRAIT_XRAY_VISION "xray_vision"
#define TRAIT_THERMAL_VISION "thermal_vision"
#define TRAIT_NO_TELEPORT "no-teleport" //you just can't
#define TRAIT_NO_INTERNALS "no-internals"
#define TRAIT_NO_ALCOHOL "alcohol_intolerance"
+9
View File
@@ -6,3 +6,12 @@
#define INSTANT_RUNOFF_VOTING 5
GLOBAL_LIST_INIT(vote_score_options,list("Bad","Poor","Acceptable","Good","Great"))
GLOBAL_LIST_INIT(vote_type_names,list(\
"Plurality (default)" = PLURALITY_VOTING,\
"Approval" = APPROVAL_VOTING,\
"IRV (single winner ranked choice)" = INSTANT_RUNOFF_VOTING,\
"Schulze (ranked choice, higher result=better)" = SCHULZE_VOTING,\
"Raw Score (returns results from 0 to 1, winner is 1)" = SCORE_VOTING,\
"Majority Judgement (single-winner score voting)" = MAJORITY_JUDGEMENT_VOTING,\
))
+1 -26
View File
@@ -57,14 +57,11 @@ GLOBAL_LIST_EMPTY(ipc_antennas_list)
//Genitals and Arousal Lists
GLOBAL_LIST_EMPTY(genitals_list)
GLOBAL_LIST_EMPTY(cock_shapes_list)//global_lists.dm for the list initializations //Now also _DATASTRUCTURES globals.dm
GLOBAL_LIST_EMPTY(cock_shapes_icons) //Associated list for names->icon_states for cockshapes.
GLOBAL_LIST_EMPTY(cock_shapes_list)
GLOBAL_LIST_EMPTY(gentlemans_organ_names)
GLOBAL_LIST_EMPTY(balls_shapes_list)
GLOBAL_LIST_EMPTY(balls_shapes_icons)
GLOBAL_LIST_EMPTY(breasts_size_list)
GLOBAL_LIST_EMPTY(breasts_shapes_list)
GLOBAL_LIST_EMPTY(breasts_shapes_icons)
GLOBAL_LIST_EMPTY(vagina_shapes_list)
GLOBAL_LIST_INIT(cum_into_containers_list, list(/obj/item/reagent_containers/food/snacks/pie)) //Yer fuggin snowflake name list jfc
GLOBAL_LIST_INIT(dick_nouns, list("dick","cock","member","shaft"))
@@ -110,28 +107,6 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE)
if(!src.holder) return
message_admins("[key_name_admin(usr)] manually reloaded mentors")
//Flavor Text
/mob/living/carbon/human/verb/set_flavor()
set name = "Set Flavor Text"
set desc = "Sets an extended description of your character's features."
set category = "IC"
var/new_flavor = input(src, "Enter your new flavor text:", "Flavor text", null) as message|null
if(!isnull(new_flavor))
flavor_text = sanitize(new_flavor)
to_chat(src, "Your flavor text has been updated.")
//Flavor Text
/mob/living/carbon/human/verb/set_flavor_2()
set name = "Set Temporary Flavor Text"
set desc = "Sets a description of your character's current appearance. Use this for emotions, poses etc."
set category = "IC"
var/new_flavor = input(src, "Enter your new temporary flavor text:", "Temporary flavor text", null) as message|null
if(!isnull(new_flavor))
flavor_text_2 = sanitize(new_flavor)
to_chat(src, "Your temporary flavor text has been updated.")
//LOOC toggles
/client/verb/listen_looc()
set name = "Show/Hide LOOC"
+10 -1
View File
@@ -174,6 +174,15 @@
L[T] = TRUE
return L
/proc/typecacheof_assoc_list(list/pathlist, ignore_root_path = FALSE)
. = list()
if(!istype(pathlist))
return
for(var/P in pathlist)
var/value = pathlist[P]
for(var/T in (ignore_root_path ? subtypesof(P) : typesof(P)))
.[T] = value
//Empties the list by setting the length to 0. Hopefully the elements get garbage collected
/proc/clearlist(list/list)
if(istype(list))
@@ -579,4 +588,4 @@
var/list/ret = list()
for(var/key in input)
ret += key
return ret
return ret
+5
View File
@@ -1,5 +1,10 @@
#define BP_MAX_ROOM_SIZE 300
GLOBAL_LIST_INIT(typecache_powerfailure_safe_areas, typecacheof(/area/engine/engineering, \
/area/engine/supermatter, \
/area/engine/atmospherics_engine, \
/area/ai_monitored/turret_protected/ai))
//Repopulates sortedAreas list
/proc/repopulate_sorted_areas()
GLOB.sortedAreas = list()
+12
View File
@@ -0,0 +1,12 @@
//////////////////////////////////////////////////////////
//A bunch of helpers to make genetics less of a headache//
//////////////////////////////////////////////////////////
#define GET_INITIALIZED_MUTATION(A) GLOB.all_mutations[A]
#define GET_GENE_STRING(A, B) (B.mutation_index[A])
#define GET_SEQUENCE(A) (GLOB.full_sequences[A])
#define GET_MUTATION_STABILIZER(A) ((A.stabilizer_coeff < 0) ? 1 : A.stabilizer_coeff)
#define GET_MUTATION_SYNCHRONIZER(A) ((A.synchronizer_coeff < 0) ? 1 : A.synchronizer_coeff)
#define GET_MUTATION_POWER(A) ((A.power_coeff < 0) ? 1 : A.power_coeff)
#define GET_MUTATION_ENERGY(A) ((A.energy_coeff < 0) ? 1 : A.energy_coeff)
+34 -1
View File
@@ -436,7 +436,7 @@
var/list/result = list()
for(var/m in group)
var/mob/M = m
if(!M.key || !M.client || (ignore_category && GLOB.poll_ignore[ignore_category] && M.ckey in GLOB.poll_ignore[ignore_category]))
if(!M.key || !M.client || (ignore_category && GLOB.poll_ignore[ignore_category] && (M.ckey in GLOB.poll_ignore[ignore_category])))
continue
if(be_special_flag)
if(!(M.client.prefs) || !(be_special_flag in M.client.prefs.be_special))
@@ -549,3 +549,36 @@
var/pressure = environment.return_pressure()
if(pressure <= LAVALAND_EQUIPMENT_EFFECT_PRESSURE)
. = TRUE
/proc/ispipewire(item)
var/static/list/pipe_wire = list(
/obj/machinery/atmospherics,
/obj/structure/disposalpipe,
/obj/structure/cable
)
return (is_type_in_list(item, pipe_wire))
// Find a obstruction free turf that's within the range of the center. Can also condition on if it is of a certain area type.
/proc/find_obstruction_free_location(var/range, var/atom/center, var/area/specific_area)
var/list/turfs = RANGE_TURFS(range, center)
var/list/possible_loc = list()
for(var/turf/found_turf in turfs)
var/area/turf_area = get_area(found_turf)
if(specific_area) // We check if both the turf is a floor, and that it's actually in the area. // We also want a location that's clear of any obstructions.
if(!istype(turf_area, specific_area))
continue
if(!isspaceturf(found_turf))
if(!is_blocked_turf(found_turf))
possible_loc.Add(found_turf)
if(possible_loc.len < 1) // Need at least one free location.
return FALSE
return pick(possible_loc)
/proc/power_fail(duration_min, duration_max)
for(var/P in GLOB.apcs_list)
var/obj/machinery/power/apc/C = P
if(C.cell && SSmapping.level_trait(C.z, ZTRAIT_STATION))
var/area/A = C.area
if(GLOB.typecache_powerfailure_safe_areas[A.type])
continue
C.energy_fail(rand(duration_min,duration_max))
+10 -17
View File
@@ -51,26 +51,15 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/antenna, GLOB.ipc_antennas_list, roundstart = TRUE)
//genitals
init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list)
for(var/K in GLOB.cock_shapes_list)
var/datum/sprite_accessory/penis/value = GLOB.cock_shapes_list[K]
GLOB.cock_shapes_icons[K] = value.icon_state
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list)
GLOB.breasts_size_list = list ("a", "b", "c", "d", "e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
GLOB.gentlemans_organ_names = list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ",
"cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret",
"baloney pony", "schlanger", "Mutton dagger", "old blind bob","Hanging Johnny", "fishing rod", "Tally whacker", "polly rocket",
"One eyed trouser trout", "Ding dong", "ankle spanker", "Pork sword", "engine cranker", "Harry hot dog", "Davy Crockett",
"Kidney cracker", "Heat seeking moisture missile", "Giggle stick", "love whistle", "Tube steak", "Uncle Dick", "Purple helmet warrior")
for(var/K in GLOB.breasts_shapes_list)
var/datum/sprite_accessory/breasts/value = GLOB.breasts_shapes_list[K]
GLOB.breasts_shapes_icons[K] = value.icon_state
init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list)
for(var/K in GLOB.balls_shapes_list)
var/datum/sprite_accessory/testicles/value = GLOB.balls_shapes_list[K]
GLOB.balls_shapes_icons[K] = value.icon_state
for(var/gpath in subtypesof(/obj/item/organ/genital))
var/obj/item/organ/genital/G = gpath
@@ -87,11 +76,6 @@
for(var/path in subtypesof(/datum/surgery))
GLOB.surgeries_list += new path()
//Materials
for(var/path in subtypesof(/datum/material))
var/datum/material/D = new path()
GLOB.materials_list[D.id] = D
//Emotes
for(var/path in subtypesof(/datum/emote))
var/datum/emote/E = new path()
@@ -109,6 +93,8 @@
init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes)
INVOKE_ASYNC(GLOBAL_PROC, /proc/init_ref_coin_values) //so the current procedure doesn't sleep because of UNTIL()
//creates every subtype of prototype (excluding prototype) and adds it to list L.
//if no list/L is provided, one is created.
/proc/init_subtypes(prototype, list/L)
@@ -126,3 +112,10 @@
for(var/path in subtypesof(prototype))
L+= path
return L
/proc/init_ref_coin_values()
for(var/path in typesof(/obj/item/coin))
var/obj/item/coin/C = new path
UNTIL(C.flags_1 & INITIALIZED_1) //we want to make sure the value is calculated and not null.
GLOB.coin_values[path] = C.value
qdel(C)
+31 -15
View File
@@ -47,7 +47,7 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/socks, GLOB.socks_list)
return pick(GLOB.socks_list)
/proc/random_features()
/proc/random_features(intendedspecies)
if(!GLOB.tails_list_human.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human)
if(!GLOB.tails_list_lizard.len)
@@ -105,6 +105,8 @@
var/datum/sprite_accessory/mam_tails/instance = GLOB.mam_tails_list[mtpath]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
continue
if(!S.ckeys_allowed)
snowflake_mam_tails_list[S.name] = mtpath
var/list/snowflake_markings_list = list()
@@ -112,6 +114,8 @@
var/datum/sprite_accessory/mam_body_markings/instance = GLOB.mam_body_markings_list[mmpath]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
continue
if(!S.ckeys_allowed)
snowflake_markings_list[S.name] = mmpath
var/list/snowflake_ears_list = list()
@@ -119,6 +123,8 @@
var/datum/sprite_accessory/mam_ears/instance = GLOB.mam_ears_list[mepath]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
continue
if(!S.ckeys_allowed)
snowflake_ears_list[S.name] = mepath
var/list/snowflake_mam_snouts_list = list()
@@ -126,8 +132,19 @@
var/datum/sprite_accessory/mam_snouts/instance = GLOB.mam_snouts_list[mspath]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
continue
if(!S.ckeys_allowed)
snowflake_mam_snouts_list[S.name] = mspath
var/list/snowflake_ipc_antenna_list = list()
for(var/mspath in GLOB.ipc_antennas_list)
var/datum/sprite_accessory/mam_snouts/instance = GLOB.ipc_antennas_list[mspath]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
continue
if(!S.ckeys_allowed)
snowflake_ipc_antenna_list[S.name] = mspath
var/color1 = random_short_color()
var/color2 = random_short_color()
var/color3 = random_short_color()
@@ -153,10 +170,10 @@
"insect_fluff" = "None",
"insect_markings" = pick(GLOB.insect_markings_list),
"taur" = "None",
"mam_body_markings" = pick(snowflake_markings_list),
"mam_ears" = pick(snowflake_ears_list),
"mam_snouts" = pick(snowflake_mam_snouts_list),
"mam_tail" = pick(snowflake_mam_tails_list),
"mam_body_markings" = snowflake_markings_list.len ? pick(snowflake_markings_list) : "None",
"mam_ears" = snowflake_ears_list ? pick(snowflake_ears_list) : "None",
"mam_snouts" = snowflake_mam_snouts_list ? pick(snowflake_mam_snouts_list) : "None",
"mam_tail" = snowflake_mam_tails_list ? pick(snowflake_mam_tails_list) : "None",
"mam_tail_animated" = "None",
"xenodorsal" = "Standard",
"xenohead" = "Standard",
@@ -165,7 +182,7 @@
"has_cock" = FALSE,
"cock_shape" = pick(GLOB.cock_shapes_list),
"cock_length" = 6,
"cock_girth_ratio" = COCK_GIRTH_RATIO_DEF,
"cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF,
"cock_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
"has_sheath" = FALSE,
"sheath_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
@@ -204,7 +221,7 @@
"womb_cum_rate" = CUM_RATE,
"womb_cum_mult" = CUM_RATE_MULT,
"womb_efficiency" = CUM_EFFICIENCY,
"ipc_screen" = "Sunburst",
"ipc_screen" = snowflake_ipc_antenna_list ? pick(snowflake_ipc_antenna_list) : "None",
"ipc_antenna" = "None",
"flavor_text" = "",
"meat_type" = "Mammalian"
@@ -356,7 +373,7 @@ GLOBAL_LIST_EMPTY(species_list)
checked_health["health"] = health
return ..()
/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null)
/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null, required_mobility_flags = (MOBILITY_USE|MOBILITY_MOVE))
if(!user)
return 0
var/atom/Tloc = null
@@ -384,6 +401,7 @@ GLOBAL_LIST_EMPTY(species_list)
var/endtime = world.time + delay
var/starttime = world.time
. = 1
var/mob/living/L = isliving(user) && user //evals to last thing eval'd
while (world.time < endtime)
stoplag(1)
if (progress)
@@ -393,15 +411,13 @@ GLOBAL_LIST_EMPTY(species_list)
drifting = 0
Uloc = user.loc
if(QDELETED(user) || user.stat || user.IsKnockdown() || user.IsStun() || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke()))
if(L && !CHECK_ALL_MOBILITY(L, required_mobility_flags))
. = 0
break
if(isliving(user))
var/mob/living/L = user
if(L.recoveringstam)
. = 0
break
if(QDELETED(user) || user.stat || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke()))
. = 0
break
if(!QDELETED(Tloc) && (QDELETED(target) || Tloc != target.loc))
if((Uloc != Tloc || Tloc != user) && !drifting)
@@ -529,7 +545,7 @@ GLOBAL_LIST_EMPTY(species_list)
continue
if(M.stat != DEAD && !override)
continue
if(speaker_key && speaker_key in prefs.ignoring)
if(speaker_key && (speaker_key in prefs.ignoring))
continue
switch(message_type)
+4 -3
View File
@@ -146,19 +146,19 @@
var/list/file_data = list()
var/pos = 1
for(var/V in GLOB.news_network.network_channels)
var/datum/newscaster/feed_channel/channel = V
var/datum/news/feed_channel/channel = V
if(!istype(channel))
stack_trace("Non-channel in newscaster channel list")
continue
file_data["[pos]"] = list("channel name" = "[channel.channel_name]", "author" = "[channel.author]", "censored" = channel.censored ? 1 : 0, "author censored" = channel.authorCensor ? 1 : 0, "messages" = list())
for(var/M in channel.messages)
var/datum/newscaster/feed_message/message = M
var/datum/news/feed_message/message = M
if(!istype(message))
stack_trace("Non-message in newscaster channel messages list")
continue
var/list/comment_data = list()
for(var/C in message.comments)
var/datum/newscaster/feed_comment/comment = C
var/datum/news/feed_comment/comment = C
if(!istype(comment))
stack_trace("Non-message in newscaster message comments list")
continue
@@ -354,6 +354,7 @@
roundend_report.set_content(content)
roundend_report.stylesheets = list()
roundend_report.add_stylesheet("roundend", 'html/browser/roundend.css')
roundend_report.add_stylesheet("font-awesome", 'html/font-awesome/css/all.min.css')
roundend_report.open(0)
/datum/controller/subsystem/ticker/proc/personal_report(client/C, popcount)
+37 -1
View File
@@ -44,6 +44,12 @@
index = findtext(t, char, index + length(char))
return t
/proc/sanitize_name(t,list/repl_chars = null)
if(t == "space" || t == "floor" || t == "wall" || t == "r-wall" || t == "monkey" || t == "unknown" || t == "inactive ai") //prevents these common metagamey names
alert("Invalid name.")
return ""
return sanitize(t)
/proc/sanitize_filename(t)
return sanitize_simple(t, list("\n"="", "\t"="", "/"="", "\\"="", "?"="", "%"="", "*"="", ":"="", "|"="", "\""="", "<"="", ">"=""))
@@ -775,4 +781,34 @@ GLOBAL_LIST_INIT(binary, list("0","1"))
#define is_alpha(X) ((text2ascii(X) <= 122) && (text2ascii(X) >= 97))
#define is_digit(X) ((length(X) == 1) && (length(text2num(X)) == 1))
#define is_digit(X) ((length(X) == 1) && (length(text2num(X)) == 1))
/// Slightly expensive proc to scramble a message using equal probabilities of character replacement from a list. DOES NOT SUPPORT HTML!
/proc/scramble_message_replace_chars(original, replaceprob = 25, list/replacementchars = list("$", "@", "!", "#", "%", "^", "&", "*"), replace_letters_only = FALSE, replace_whitespace = FALSE)
var/list/out = list()
var/static/list/whitespace = list(" ", "\n", "\t")
for(var/i in 1 to length(original))
var/char = original[i]
if(!replace_whitespace && (char in whitespace))
out += char
continue
if(replace_letters_only && (!ISINRANGE(char, 65, 90) && !ISINRANGE(char, 97, 122)))
out += char
continue
out += prob(replaceprob)? pick(replacementchars) : char
return out.Join("")
/proc/readable_corrupted_text(text)
var/list/corruption_options = list("..", "£%", "~~\"", "!!", "*", "^", "$!", "-", "}", "?")
var/corrupted_text = ""
for(var/letter_index = 1; letter_index <= length(text); letter_index++) // Have every letter have a chance of creating corruption on either side
var/letter = text[letter_index] // Small chance of letters being removed in place of corruption - still overall readable
if(prob(15))
corrupted_text += pick(corruption_options)
if(prob(95))
corrupted_text += letter
else
corrupted_text += pick(corruption_options)
if(prob(15))
corrupted_text += pick(corruption_options)
return corrupted_text
-111
View File
@@ -1,111 +0,0 @@
/*
// Contains VOREStation based vore description type2type functions
// list2text - takes delimiter and returns text
// text2list - takes delimiter, and creates list
//
*/
// Concatenates a list of strings into a single string. A seperator may optionally be provided.
/proc/list2text(list/ls, sep)
if (ls.len <= 1) // Early-out code for empty or singleton lists.
return ls.len ? ls[1] : ""
var/l = ls.len // Made local for sanic speed.
var/i = 0 // Incremented every time a list index is accessed.
if (sep <> null)
// Macros expand to long argument lists like so: sep, ls[++i], sep, ls[++i], sep, ls[++i], etc...
#define S1 sep, ls[++i]
#define S4 S1, S1, S1, S1
#define S16 S4, S4, S4, S4
#define S64 S16, S16, S16, S16
. = "[ls[++i]]" // Make sure the initial element is converted to text.
// Having the small concatenations come before the large ones boosted speed by an average of at least 5%.
if (l-1 & 0x01) // 'i' will always be 1 here.
. = text("[][][]", ., S1) // Append 1 element if the remaining elements are not a multiple of 2.
if (l-i & 0x02)
. = text("[][][][][]", ., S1, S1) // Append 2 elements if the remaining elements are not a multiple of 4.
if (l-i & 0x04)
. = text("[][][][][][][][][]", ., S4) // And so on....
if (l-i & 0x08)
. = text("[][][][][][][][][][][][][][][][][]", ., S4, S4)
if (l-i & 0x10)
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S16)
if (l-i & 0x20)
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S16, S16)
if (l-i & 0x40)
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64)
while (l > i) // Chomp through the rest of the list, 128 elements at a time.
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64, S64)
#undef S64
#undef S16
#undef S4
#undef S1
else
// Macros expand to long argument lists like so: ls[++i], ls[++i], ls[++i], etc...
#define S1 ls[++i]
#define S4 S1, S1, S1, S1
#define S16 S4, S4, S4, S4
#define S64 S16, S16, S16, S16
. = "[ls[++i]]" // Make sure the initial element is converted to text.
if (l-1 & 0x01) // 'i' will always be 1 here.
. += S1 // Append 1 element if the remaining elements are not a multiple of 2.
if (l-i & 0x02)
. = text("[][][]", ., S1, S1) // Append 2 elements if the remaining elements are not a multiple of 4.
if (l-i & 0x04)
. = text("[][][][][]", ., S4) // And so on...
if (l-i & 0x08)
. = text("[][][][][][][][][]", ., S4, S4)
if (l-i & 0x10)
. = text("[][][][][][][][][][][][][][][][][]", ., S16)
if (l-i & 0x20)
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S16, S16)
if (l-i & 0x40)
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64)
while (l > i) // Chomp through the rest of the list, 128 elements at a time.
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64, S64)
#undef S64
#undef S16
#undef S4
#undef S1
// Converts a string into a list by splitting the string at each delimiter found. (discarding the seperator)
/proc/text2list(text, delimiter="\n")
var/delim_len = length(delimiter)
if (delim_len < 1)
return list(text)
. = list()
var/last_found = 1
var/found
do
found = findtext(text, delimiter, last_found, 0)
. += copytext(text, last_found, found)
last_found = found + delim_len
while (found)
// Returns true if val is from min to max, inclusive.
/proc/IsInRange(val, min, max)
return (val >= min) && (val <= max)
+28 -3
View File
@@ -1234,8 +1234,6 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
return FALSE
return TRUE
#define UNTIL(X) while(!(X)) stoplag()
/proc/pass()
return
@@ -1537,4 +1535,31 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
if(190)
return "."
if(189)
return "-"
return "-"
/proc/generate_items_inside(list/items_list, where_to)
for(var/each_item in items_list)
for(var/i in 1 to items_list[each_item])
new each_item(where_to)
//sends a message to chat
//config_setting should be one of the following
//null - noop
//empty string - use TgsTargetBroadcast with admin_only = FALSE
//other string - use TgsChatBroadcast with the tag that matches config_setting, only works with TGS4, if using TGS3 the above method is used
/proc/send2chat(message, config_setting)
if(config_setting == null || !world.TgsAvailable())
return
var/datum/tgs_version/version = world.TgsVersion()
if(config_setting == "" || version.suite == 3)
world.TgsTargetedChatBroadcast(message, FALSE)
return
var/list/channels_to_use = list()
for(var/I in world.TgsChatChannelInfo())
var/datum/tgs_chat_channel/channel = I
if(channel.tag == config_setting)
channels_to_use += channel
if(channels_to_use.len)
world.TgsChatBroadcast()
-39
View File
@@ -1,39 +0,0 @@
/datum/projectile_data
var/src_x
var/src_y
var/time
var/distance
var/power_x
var/power_y
var/dest_x
var/dest_y
/datum/projectile_data/New(var/src_x, var/src_y, var/time, var/distance, \
var/power_x, var/power_y, var/dest_x, var/dest_y)
src.src_x = src_x
src.src_y = src_y
src.time = time
src.distance = distance
src.power_x = power_x
src.power_y = power_y
src.dest_x = dest_x
src.dest_y = dest_y
/proc/projectile_trajectory(src_x, src_y, rotation, angle, power)
// returns the destination (Vx,y) that a projectile shot at [src_x], [src_y], with an angle of [angle],
// rotated at [rotation] and with the power of [power]
// Thanks to VistaPOWA for this function
var/power_x = power * cos(angle)
var/power_y = power * sin(angle)
var/time = 2* power_y / 10 //10 = g
var/distance = time * power_x
var/dest_x = src_x + distance*sin(rotation);
var/dest_y = src_y + distance*cos(rotation);
return new /datum/projectile_data(src_x, src_y, time, distance, power_x, power_y, dest_x, dest_y)
+57
View File
@@ -0,0 +1,57 @@
// Basic geometry things.
/datum/vector/
var/x = 0
var/y = 0
/datum/vector/New(var/x, var/y)
src.x = x
src.y = y
/datum/vector/proc/duplicate()
return new /datum/vector(x, y)
/datum/vector/proc/euclidian_norm()
return sqrt(x*x + y*y)
/datum/vector/proc/squared_norm()
return x*x + y*y
/datum/vector/proc/normalize()
var/norm = euclidian_norm()
x = x/norm
y = y/norm
return src
/datum/vector/proc/chebyshev_norm()
return max(abs(x), abs(y))
/datum/vector/proc/chebyshev_normalize()
var/norm = chebyshev_norm()
x = x/norm
y = y/norm
return src
/datum/vector/proc/is_integer()
return ISINTEGER(x) && ISINTEGER(y)
/atom/movable/proc/vector_translate(var/datum/vector/V, var/delay)
var/turf/T = get_turf(src)
var/turf/destination = locate(T.x + V.x, T.y + V.y, z)
var/datum/vector/V_norm = V.duplicate()
V_norm.chebyshev_normalize()
if (!V_norm.is_integer())
return
var/turf/destination_temp
while (destination_temp != destination)
destination_temp = locate(T.x + V_norm.x, T.y + V_norm.y, z)
forceMove(destination_temp)
T = get_turf(src)
sleep(delay + world.tick_lag) // Shortest possible time to sleep
/atom/proc/get_translated_turf(var/datum/vector/V)
var/turf/T = get_turf(src)
return locate(T.x + V.x, T.y + V.y, z)
/proc/atoms2vector(var/atom/A, var/atom/B)
return new /datum/vector((B.x - A.x), (B.y - A.y)) // Vector from A -> B
+26 -2
View File
@@ -214,5 +214,29 @@ GLOBAL_LIST_INIT(bitfields, list(
"CAN_MASTURBATE_WITH" = CAN_MASTURBATE_WITH,
"MASTURBATE_LINKED_ORGAN" = MASTURBATE_LINKED_ORGAN,
"CAN_CLIMAX_WITH" = CAN_CLIMAX_WITH
)
))
),
"mob_biotypes" = list (
"MOB_ORGANIC" = MOB_ORGANIC,
"MOB_MINERAL" = MOB_MINERAL,
"MOB_ROBOTIC" = MOB_ROBOTIC,
"MOB_UNDEAD" = MOB_UNDEAD,
"MOB_HUMANOID" = MOB_HUMANOID,
"MOB_BUG" = MOB_BUG,
"MOB_BEAST" = MOB_BEAST,
"MOB_EPIC" = MOB_EPIC,
"MOB_REPTILE" = MOB_REPTILE,
"MOB_SPIRIT" = MOB_SPIRIT
),
"mobility_flags" = list(
"MOBILITY_MOVE" = MOBILITY_MOVE,
"MOBILITY_STAND" = MOBILITY_STAND,
"MOBILITY_PICKUP" = MOBILITY_PICKUP,
"MOBILITY_USE" = MOBILITY_USE,
"MOBILITY_UI" = MOBILITY_UI,
"MOBILITY_STORAGE" = MOBILITY_STORAGE,
"MOBILITY_PULL" = MOBILITY_PULL,
"MOBILITY_HOLD" = MOBILITY_HOLD,
"MOBILITY_RESIST" = MOBILITY_RESIST
)
))
+5 -2
View File
@@ -21,8 +21,11 @@ GLOBAL_LIST(op_se_blocks)
GLOBAL_VAR(NULLED_SE)
GLOBAL_VAR(NULLED_UI)
GLOBAL_LIST_EMPTY(global_mutations) // list of hidden mutation things
GLOBAL_LIST_EMPTY(all_mutations)
GLOBAL_LIST_EMPTY(full_sequences)
GLOBAL_LIST_EMPTY(bad_mutations)
GLOBAL_LIST_EMPTY(good_mutations)
GLOBAL_LIST_EMPTY(not_good_mutations)
GLOBAL_LIST_EMPTY(not_good_mutations)
GLOBAL_LIST_EMPTY(mutation_recipes)
+58
View File
@@ -1 +1,59 @@
GLOBAL_LIST_EMPTY(donators_by_group) //group id = donator list of ckeys
GLOBAL_LIST_INIT(flirts, list("Roses are red / Violets are good / One day while Andy...",
"My love for you is like the singularity. It cannot be contained.",
"Will you be my lusty xenomorph maid?",
"We go together like the clown and the external airlock.",
"Roses are red / Liches are wizards / I love you more than a whole squad of lizards.",
"Be my valentine. Law 2.",
"You must be a mime, because you leave me speechless.",
"I love you like Ian loves the HoP.",
"You're hotter than a plasma fire in toxins.",
"Are you a rogue atmos tech? Because you're taking my breath away.",
"Could I have all access... to your heart?",
"Call me the doctor, because I'm here to inspect your johnson.",
"I'm not a changeling, but you make my proboscis extend.",
"I just can't get EI NATH of you.",
"You must be a nuke op, because you make my heart explode.",
"Roses are red / Botany is a farm / Not being my Valentine / causes human harm.",
"I want you more than an assistant wants insulated gloves.",
"If I was a security officer, I'd brig you all shift.",
"Are you the janitor? Because I think I've fallen for you.",
"You're always valid to my heart.",
"I'd risk the wrath of the gods to bwoink you.",
"You look as beautiful now as the last time you were cloned.",
"Someone check the gravitational generator, because I'm only attracted to you.",
"If I were the warden I'd always let you into my armory.",
"The virologist is rogue, and the only cure is a kiss from you.",
"Would you spend some time in my upgraded sleeper?",
"You must be a silicon, because you've unbolted my heart.",
"Are you Nar'Sie? Because there's nar-one else I sie.",
"If you were a taser, you'd be set to stunning.",
"Do you have stamina damage from running through my dreams?",
"If I were an alien, would you let me hug you?",
"My love for you is stronger than a reinforced wall.",
"This must be the captain's office, because I see a fox.",
"I'm not a highlander, but there can only be one for me.",
"The floor is made of lava! Quick, get on my bed.",
"If you were an abandoned station you'd be the DEARelict.",
"If you had a pickaxe you'd be a shaft FINEr.",
"Roses are red, tide is gray, if I were an assistant I'd steal you away.",
"Roses are red, text is green, I love you more than cleanbots clean.",
"If you were a carp I'd fi-lay you.",
"I'm a nuke op, and my pinpointer leads to your heart.",
"Wanna slay my megafauna?",
"I'm a clockwork cultist. Or zl inyragvar.",
"If you were a disposal bin I'd ride you all day.",
"Put on your explorer's suit because I'm taking you to LOVEaland.",
"I must be the CMO, 'cause I saw you on my CUTE sensors.",
"You're the vomit to my flyperson.",
"You must be liquid dark matter, because you're pulling me closer.",
"Not even sorium can drive me away from you.",
"Wanna make like a borg and do some heavy petting?",
"Are you powering the station? Because you super matter to me.",
"I wish science could make me a bag of holding you.",
"Let's call the emergency CUDDLE.",
"I must be tripping on BZ, because I saw an angel walk by.",
"Wanna empty out my tool storage?",
"Did you visit the medbay after you fell from heaven?",
"Are you wearing space pants? Wanna not be?" ))
-1
View File
@@ -29,7 +29,6 @@ GLOBAL_LIST_EMPTY(available_ai_shells)
GLOBAL_LIST_INIT(simple_animals, list(list(),list(),list(),list())) // One for each AI_* status define
GLOBAL_LIST_EMPTY(spidermobs) //all sentient spider mobs
GLOBAL_LIST_EMPTY(bots_list)
GLOBAL_LIST_EMPTY(living_cameras)
GLOBAL_LIST_EMPTY(aiEyes)
GLOBAL_LIST_EMPTY(language_datum_instances)
+1
View File
@@ -4,6 +4,7 @@ GLOBAL_LIST_INIT(wizard_second, world.file2list("strings/names/wizardsecond.txt"
GLOBAL_LIST_INIT(ninja_titles, world.file2list("strings/names/ninjatitle.txt"))
GLOBAL_LIST_INIT(ninja_names, world.file2list("strings/names/ninjaname.txt"))
GLOBAL_LIST_INIT(commando_names, world.file2list("strings/names/death_commando.txt"))
GLOBAL_LIST_INIT(first_names, world.file2list("strings/names/first.txt"))
GLOBAL_LIST_INIT(first_names_male, world.file2list("strings/names/first_male.txt"))
GLOBAL_LIST_INIT(first_names_female, world.file2list("strings/names/first_female.txt"))
GLOBAL_LIST_INIT(last_names, world.file2list("strings/names/last.txt"))
+1 -1
View File
@@ -16,7 +16,6 @@ GLOBAL_LIST_EMPTY(singularities) //list of all singularities on the stati
GLOBAL_LIST(chemical_reactions_list) //list of all /datum/chemical_reaction datums. Used during chemical reactions
GLOBAL_LIST(chemical_reagents_list) //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff
GLOBAL_LIST_EMPTY(materials_list) //list of all /datum/material datums indexed by material id.
GLOBAL_LIST_EMPTY(tech_list) //list of all /datum/tech datums indexed by id.
GLOBAL_LIST_EMPTY(surgeries_list) //list of all surgeries by name, associated with their path.
GLOBAL_LIST_EMPTY(uplink_items) //list of all uplink item typepaths, ascendingly sorted by their initial name.
@@ -33,6 +32,7 @@ GLOBAL_LIST_EMPTY(meteor_list) // List of all meteors.
GLOBAL_LIST_EMPTY(active_jammers) // List of active radio jammers
GLOBAL_LIST_EMPTY(ladders)
GLOBAL_LIST_EMPTY(trophy_cases)
GLOBAL_LIST_EMPTY(coin_values)
GLOBAL_LIST_EMPTY(wire_color_directory)
GLOBAL_LIST_EMPTY(wire_name_directory)
+3 -1
View File
@@ -18,6 +18,7 @@
#define POLL_IGNORE_DEMON "demon"
#define POLL_IGNORE_WIZARD "wizard"
#define POLL_IGNORE_CLONE "clone"
#define POLL_IGNORE_CONTRACTOR_SUPPORT "contractor_support"
GLOBAL_LIST_INIT(poll_ignore_desc, list(
POLL_IGNORE_SENTIENCE_POTION = "Sentience potion",
@@ -37,7 +38,8 @@ GLOBAL_LIST_INIT(poll_ignore_desc, list(
POLL_IGNORE_SPLITPERSONALITY = "Split Personality",
POLL_IGNORE_DEMON = "Demons",
POLL_IGNORE_WIZARD = "Wizards",
POLL_IGNORE_CLONE = "Defective/SDGF clones"
POLL_IGNORE_CLONE = "Defective/SDGF clones",
POLL_IGNORE_CONTRACTOR_SUPPORT = "Contractor Support Unit"
))
GLOBAL_LIST_INIT(poll_ignore, init_poll_ignore())
+2 -2
View File
@@ -14,7 +14,7 @@
if(check_click_intercept(params,A))
return
if(stat || lockcharge || IsKnockdown() || IsStun() || IsUnconscious())
if(stat || locked_down || IsParalyzed() || IsStun() || IsUnconscious())
return
var/list/modifiers = params2list(params)
@@ -66,7 +66,7 @@
if(C.user_unbuckle_mob(C.buckled_mobs[1],src))
return
if(!W && get_dist(src,A) <= interaction_range)
if(!W && (get_dist(src,A) <= interaction_range))
A.attack_robot(src)
return
+2 -2
View File
@@ -42,7 +42,7 @@
selected_target[1] = object
selected_target[2] = params
while(selected_target[1])
Click(selected_target[1], location, control, selected_target[2])
Click(selected_target[1], location, control, selected_target[2], TRUE)
sleep(delay)
active_mousedown_item = mob.canMobMousedown(object, location, params)
if(active_mousedown_item)
@@ -145,4 +145,4 @@
if (middragatom == src_object)
middragtime = 0
middragatom = null
..()
..()
+22 -3
View File
@@ -72,6 +72,22 @@
var/hide_icon = 'icons/mob/actions.dmi'
var/hide_state = "hide"
var/show_state = "show"
var/mutable_appearance/hide_appearance
var/mutable_appearance/show_appearance
/obj/screen/movable/action_button/hide_toggle/Initialize()
. = ..()
var/static/list/icon_cache = list()
var/cache_key = "[hide_icon][hide_state]"
hide_appearance = icon_cache[cache_key]
if(!hide_appearance)
hide_appearance = icon_cache[cache_key] = mutable_appearance(hide_icon, hide_state)
cache_key = "[hide_icon][show_state]"
show_appearance = icon_cache[cache_key]
if(!show_appearance)
show_appearance = icon_cache[cache_key] = mutable_appearance(hide_icon, show_state)
/obj/screen/movable/action_button/hide_toggle/Click(location,control,params)
if (!can_use(usr))
@@ -137,9 +153,12 @@
show_state = settings["toggle_show"]
update_icon()
/obj/screen/movable/action_button/hide_toggle/update_icon()
cut_overlays()
add_overlay(mutable_appearance(hide_icon, hidden ? show_state : hide_state))
/obj/screen/movable/action_button/hide_toggle/update_overlays()
. = ..()
if(hidden)
. += show_appearance
else
. += hide_appearance
/obj/screen/movable/action_button/MouseEntered(location,control,params)
+2 -2
View File
@@ -273,7 +273,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
if(!istype(L) || !L.can_resist())
return
L.changeNext_move(CLICK_CD_RESIST)
if(L.canmove)
if(CHECK_MOBILITY(L, MOBILITY_MOVE))
return L.resist_fire() //I just want to start a flame in your hearrrrrrtttttt.
@@ -601,7 +601,7 @@ so as to remain in compliance with the most up-to-date laws."
if(!istype(L) || !L.can_resist())
return
L.changeNext_move(CLICK_CD_RESIST)
if((L.canmove) && (L.last_special <= world.time))
if(CHECK_MOBILITY(L, MOBILITY_MOVE) && (L.last_special <= world.time))
return L.resist_restraints()
/obj/screen/alert/restrained/buckled/Click()
+11 -11
View File
@@ -48,7 +48,7 @@
if(isovermind(usr))
var/mob/camera/blob/B = usr
if(!B.placed)
B.place_blob_core(B.base_point_rate, 0)
B.place_blob_core(0)
B.transport_core()
/obj/screen/blob/Blobbernaut
@@ -91,26 +91,26 @@
var/mob/camera/blob/B = usr
B.create_factory()
/obj/screen/blob/ReadaptChemical
/obj/screen/blob/ReadaptStrain
icon_state = "ui_chemswap"
name = "Readapt Chemical (40)"
desc = "Randomly rerolls your chemical for 40 resources."
name = "Readapt Strain (40)"
desc = "Allows you to choose a new strain from 4 random choices for 40 resources."
/obj/screen/blob/ReadaptChemical/MouseEntered(location,control,params)
/obj/screen/blob/ReadaptStrain/MouseEntered(location,control,params)
if(hud && hud.mymob && isovermind(hud.mymob))
var/mob/camera/blob/B = hud.mymob
if(B.free_chem_rerolls)
name = "Readapt Chemical (FREE)"
desc = "Randomly rerolls your chemical for free."
if(B.free_strain_rerolls)
name = "Readapt Strain (FREE)"
desc = "Randomly rerolls your strain for free."
else
name = initial(name)
desc = initial(desc)
..()
/obj/screen/blob/ReadaptChemical/Click()
/obj/screen/blob/ReadaptStrain/Click()
if(isovermind(usr))
var/mob/camera/blob/B = usr
B.chemical_reroll()
B.strain_reroll()
/obj/screen/blob/RelocateCore
icon_state = "ui_swap"
@@ -175,7 +175,7 @@
using.hud = src
static_inventory += using
using = new /obj/screen/blob/ReadaptChemical()
using = new /obj/screen/blob/ReadaptStrain()
using.screen_loc = ui_storage1
using.hud = src
static_inventory += using
+4 -6
View File
@@ -166,29 +166,27 @@
var/static/mutable_appearance/blocked_overlay = mutable_appearance('icons/mob/screen_gen.dmi', "blocked")
var/held_index = 0
/obj/screen/inventory/hand/update_icon()
/obj/screen/inventory/hand/update_overlays()
. = ..()
if(!handcuff_overlay)
var/state = (!(held_index % 2)) ? "markus" : "gabrielle"
handcuff_overlay = mutable_appearance('icons/mob/screen_gen.dmi', state)
cut_overlay(list(handcuff_overlay, blocked_overlay, "hand_active"))
if(!hud?.mymob)
return
if(iscarbon(hud.mymob))
var/mob/living/carbon/C = hud.mymob
if(C.handcuffed)
add_overlay(handcuff_overlay)
. += handcuff_overlay
if(held_index)
if(!C.has_hand_for_held_index(held_index))
add_overlay(blocked_overlay)
. += blocked_overlay
if(held_index == hud.mymob.active_hand_index)
add_overlay("hand_active")
. += "hand_active"
/obj/screen/inventory/hand/Click(location, control, params)
+28 -19
View File
@@ -1,19 +1,28 @@
/**
*This is the proc that handles the order of an item_attack.
*The order of procs called is:
*tool_act on the target. If it returns TRUE, the chain will be stopped.
*pre_attack() on src. If this returns TRUE, the chain will be stopped.
*attackby on the target. If it returns TRUE, the chain will be stopped.
*and lastly
*afterattack. The return value does not matter.
*/
/obj/item/proc/melee_attack_chain(mob/user, atom/target, params)
if(!tool_attack_chain(user, target) && pre_attack(target, user, params))
// Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example)
var/resolved = target.attackby(src, user, params)
if(!resolved && target && !QDELETED(src))
afterattack(target, user, 1, params) // 1: clicking something Adjacent
//Checks if the item can work as a tool, calling the appropriate tool behavior on the target
/obj/item/proc/tool_attack_chain(mob/user, atom/target)
if(!tool_behaviour)
return FALSE
return target.tool_act(user, src, tool_behaviour)
if(item_flags & NO_ATTACK_CHAIN_SOFT_STAMCRIT)
if(isliving(user))
var/mob/living/L = user
if(L.getStaminaLoss() >= STAMINA_SOFTCRIT)
to_chat(L, "<span class='warning'>You are too exhausted to swing [src]!</span>")
return
if(tool_behaviour && target.tool_act(user, src, tool_behaviour))
return
if(pre_attack(target, user, params))
return
if(target.attackby(src,user, params))
return
if(QDELETED(src) || QDELETED(target))
return
afterattack(target, user, TRUE, params)
// Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown.
/obj/item/proc/attack_self(mob/user)
@@ -23,8 +32,8 @@
/obj/item/proc/pre_attack(atom/A, mob/living/user, params) //do stuff before attackby!
if(SEND_SIGNAL(src, COMSIG_ITEM_PRE_ATTACK, A, user, params) & COMPONENT_NO_ATTACK)
return FALSE
return TRUE //return FALSE to avoid calling attackby after this proc does stuff
return TRUE
return FALSE //return TRUE to avoid calling attackby after this proc does stuff
// No comment
/atom/proc/attackby(obj/item/W, mob/user, params)
@@ -104,7 +113,7 @@
var/mob/living/carbon/tempcarb = user
if(!tempcarb.combatmode)
totitemdamage *= 0.5
if(user.resting)
if(!CHECK_MOBILITY(user, MOBILITY_STAND))
totitemdamage *= 0.5
//CIT CHANGES END HERE
if(user != src && check_shields(I, totitemdamage, "the [I.name]", MELEE_ATTACK, I.armour_penetration))
@@ -112,7 +121,7 @@
send_item_attack_message(I, user)
if(I.force)
apply_damage(totitemdamage, I.damtype) //CIT CHANGE - replaces I.force with totitemdamage
if(I.damtype == BRUTE && !HAS_TRAIT(src, TRAIT_NOMARROW))
if(I.damtype == BRUTE && !HAS_TRAIT(src, TRAIT_NOMARROW))
if(prob(33))
I.add_mob_blood(src)
var/turf/location = get_turf(src)
+12 -12
View File
@@ -76,8 +76,8 @@
layer = ABOVE_HUD_LAYER
plane = ABOVE_HUD_PLANE
var/atom/movable/focus = null
var/mob/living/carbon/tk_user = null
var/atom/movable/focus
var/mob/living/carbon/tk_user
/obj/item/tk_grab/Initialize()
. = ..()
@@ -85,6 +85,8 @@
/obj/item/tk_grab/Destroy()
STOP_PROCESSING(SSfastprocess, src)
focus = null
tk_user = null
return ..()
/obj/item/tk_grab/process()
@@ -179,16 +181,14 @@
return
new /obj/effect/temp_visual/telekinesis(get_turf(focus))
/obj/item/tk_grab/update_icon()
cut_overlays()
if(focus)
var/old_layer = focus.layer
var/old_plane = focus.plane
focus.layer = layer+0.01
focus.plane = ABOVE_HUD_PLANE
add_overlay(focus) //this is kind of ick, but it's better than using icon()
focus.layer = old_layer
focus.plane = old_plane
/obj/item/tk_grab/update_overlays()
. = ..()
if(!focus)
return
var/mutable_appearance/focus_overlay = new(focus)
focus_overlay.layer = layer + 0.01
focus_overlay.plane = ABOVE_HUD_PLANE
. += focus_overlay
/obj/item/tk_grab/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is using [user.p_their()] telekinesis to choke [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!</span>")
@@ -371,19 +371,18 @@
for(var/T in storyteller_cache)
var/datum/dynamic_storyteller/S = T
var/config_tag = initial(S.config_tag)
var/final_weight = initial(S.weight)
if(probabilities[config_tag]<=0)
var/probability = (config_tag in probabilities) ? probabilities[config_tag] : initial(S.weight)
if(probability <= 0)
continue
final_weight = probabilities[config_tag]
if(SSpersistence.saved_storytellers.len == 3 && repeated_mode_adjust.len == 3)
if(SSpersistence.saved_storytellers.len == repeated_mode_adjust.len)
var/name = initial(S.name)
var/recent_round = min(SSpersistence.saved_storytellers.Find(name),3)
var/adjustment = 0
while(recent_round)
adjustment += repeated_mode_adjust[recent_round]
recent_round = SSpersistence.saved_modes.Find(name,recent_round+1,0)
final_weight *= ((100-adjustment)/100)
runnable_storytellers[S] = final_weight
probability *= ((100-adjustment)/100)
runnable_storytellers[S] = probability
return runnable_storytellers
@@ -234,6 +234,7 @@
/datum/config_entry/number/movedelay //Used for modifying movement speed for mobs.
abstract_type = /datum/config_entry/number/movedelay
integer = FALSE
/datum/config_entry/number/movedelay/ValidateAndSet()
. = ..()
@@ -253,13 +254,13 @@
config_entry_value = 1
/datum/config_entry/number/movedelay/sprint_buffer_max
config_entry_value = 42
config_entry_value = 24
/datum/config_entry/number/movedelay/sprint_stamina_cost
config_entry_value = 0.7
config_entry_value = 1.4
/datum/config_entry/number/movedelay/sprint_buffer_regen_per_ds
config_entry_value = 0.3
config_entry_value = 0.4
/////////////////////////////////////////////////Outdated move delay
/datum/config_entry/number/outdated_movedelay
@@ -334,6 +335,10 @@
config_entry_value = 16
min_val = 0
/datum/config_entry/number/station_space_budget
config_entry_value = 10
min_val = 0
/datum/config_entry/flag/allow_random_events // Enables random events mid-round when set
/datum/config_entry/number/events_min_time_mul // Multipliers for random events minimal starting time and minimal players amounts
@@ -403,10 +408,6 @@
lowercase = FALSE
splitter = ","
/datum/config_entry/number/auto_transfer_delay
config_entry_value = 72000
min_val = 0
/datum/config_entry/flag/pai_custom_holoforms
/datum/config_entry/number/marauder_delay_non_reebe
@@ -1,3 +1,5 @@
/datum/config_entry/flag/auto_profile // Automatically start profiler on server start
/datum/config_entry/flag/autoadmin // if autoadmin is enabled
protection = CONFIG_ENTRY_LOCKED
@@ -80,6 +82,18 @@
config_entry_value = 600
min_val = 0
/datum/config_entry/number/vote_autotransfer_initial //length of time before the first autotransfer vote is called (deciseconds, default 2 hours)
config_entry_value = 72000
min_val = 0
/datum/config_entry/number/vote_autotransfer_interval //length of time to wait before subsequent autotransfer votes (deciseconds, default 30 minutes)
config_entry_value = 18000
min_val = 0
/datum/config_entry/number/vote_autotransfer_maximum // maximum extensions until the round autoends
config_entry_value = 4
min_val = 0
/datum/config_entry/flag/default_no_vote // vote does not default to nochange/norestart
/datum/config_entry/flag/no_dead_vote // dead people can't vote
@@ -267,6 +281,9 @@
/datum/config_entry/flag/tgstyle_maprotation
/datum/config_entry/string/map_vote_type
config_entry_value = "SCORE"
/datum/config_entry/number/maprotatechancedelta
config_entry_value = 0.75
min_val = 0
@@ -389,6 +406,13 @@
config_entry_value = 50
/datum/config_entry/flag/irc_announce_new_game
deprecated_by = /datum/config_entry/string/chat_announce_new_game
/datum/config_entry/flag/irc_announce_new_game/DeprecationUpdate(value)
return "" //default broadcast
/datum/config_entry/string/chat_announce_new_game
config_entry_value = null
/datum/config_entry/flag/debug_admin_hrefs
@@ -435,3 +459,6 @@
/datum/config_entry/number/max_bunker_days
config_entry_value = 7
min_val = 1
/datum/config_entry/flag/minimaps_enabled
config_entry_value = TRUE
@@ -0,0 +1,6 @@
/datum/config_entry/number/snowflake_plushie_prob
config_entry_value = 50
/datum/config_entry/keyed_list/snowflake_plushies
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_TEXT
+1 -1
View File
@@ -63,7 +63,7 @@
//Sleeping in here prevents future fires until returned.
/datum/controller/subsystem/proc/fire(resumed = 0)
flags |= SS_NO_FIRE
throw EXCEPTION("Subsystem [src]([type]) does not fire() but did not set the SS_NO_FIRE flag. Please add the SS_NO_FIRE flag to any subsystem that doesn't fire so it doesn't get added to the processing list and waste cpu.")
CRASH("Subsystem [src]([type]) does not fire() but did not set the SS_NO_FIRE flag. Please add the SS_NO_FIRE flag to any subsystem that doesn't fire so it doesn't get added to the processing list and waste cpu.")
/datum/controller/subsystem/Destroy()
dequeue()

Some files were not shown because too many files have changed in this diff Show More