Merge remote-tracking branch 'citadel/master' into combat_rework

This commit is contained in:
kevinz000
2020-04-08 04:04:45 -07:00
919 changed files with 148968 additions and 10144 deletions
+36
View File
@@ -0,0 +1,36 @@
name: Compile changelogs
on:
schedule:
- cron: "0 0 * * *"
jobs:
compile:
name: "Compile changelogs"
runs-on: ubuntu-latest
steps:
- name: "Setup python"
uses: actions/setup-python@v1
with:
python-version: '3.x'
- name: "Install deps"
run: |
python -m pip install --upgrade pip
python -m pip install pyyaml
- name: "Checkout"
uses: actions/checkout@v1
with:
fetch-depth: 25
- name: "Compile"
run: |
python tools/ss13_genchangelog.py html/changelog.html html/changelogs
- name: Commit
run: |
git config --local user.email "action@github.com"
git config --local user.name "Changelogs"
git pull origin master
git commit -m "Automatic changelog compile [ci skip]" -a || true
- name: "Push"
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
+1 -1
View File
@@ -1,4 +1,4 @@
FROM tgstation/byond:513.1503 as base
FROM tgstation/byond:513.1508 as base
FROM base as build_base
+1 -1
View File
@@ -2688,7 +2688,7 @@
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/piano{
/obj/structure/musician/piano{
icon_state = "piano"
},
/turf/open/floor/plasteel/grimy,
+1 -1
View File
@@ -28,7 +28,7 @@
/turf/open/floor/holofloor/beach,
/area/ruin/space/has_grav/powered/aesthetic)
"i" = (
/obj/structure/piano,
/obj/structure/musician/piano,
/obj/structure/window{
dir = 8
},
@@ -1,4 +1,35 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"ab" = (
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"ac" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"ad" = (
/obj/machinery/door/poddoor/shutters/radiation/preopen,
/turf/open/floor/plating,
/area/engine/engineering)
"aT" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/button/door{
@@ -166,13 +197,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"wt" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"xx" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -320,16 +344,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"HW" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"In" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/obj/machinery/door/airlock/external{
@@ -366,13 +380,6 @@
/obj/machinery/power/am_control_unit,
/turf/open/floor/plating,
/area/engine/engineering)
"JC" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"JZ" = (
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
@@ -525,16 +532,6 @@
/obj/effect/turf_decal/box/red,
/turf/open/floor/engine,
/area/engine/engineering)
"YY" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"Zb" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -862,7 +859,7 @@ xJ
gf
fh
dN
YY
aa
MD
Ch
dz
@@ -890,7 +887,7 @@ LO
Eu
Pg
cP
JC
ab
WI
rj
dz
@@ -918,7 +915,7 @@ NS
xx
fh
zW
JC
ab
WI
rj
dz
@@ -946,7 +943,7 @@ yo
me
aT
Aw
JC
ab
WI
rj
dz
@@ -973,7 +970,7 @@ MJ
jH
FK
Ch
wt
ad
Ch
rj
rj
@@ -1026,7 +1023,7 @@ MJ
MJ
"}
(17,1,1) = {"
wt
ad
Zz
Wf
Ox
@@ -1082,7 +1079,7 @@ MJ
MJ
"}
(19,1,1) = {"
wt
ad
eJ
Zx
nW
@@ -1141,7 +1138,7 @@ MJ
jH
Nz
Ch
wt
ad
Ch
rj
rj
@@ -1170,7 +1167,7 @@ fh
WX
HQ
Aw
JC
ab
WI
rj
dz
@@ -1198,7 +1195,7 @@ fh
kh
fh
fh
JC
ab
WI
rj
dz
@@ -1226,7 +1223,7 @@ fh
kh
uG
cP
JC
ab
WI
rj
dz
@@ -1254,7 +1251,7 @@ eA
FY
mB
Rp
HW
ac
Mi
Ch
dz
@@ -1,4 +1,52 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen,
/turf/open/floor/plasteel,
/area/engine/engineering)
"ab" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/structure/cable{
icon_state = "2-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen,
/turf/open/floor/plasteel,
/area/engine/engineering)
"ac" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen,
/turf/open/floor/plasteel,
/area/engine/engineering)
"ad" = (
/obj/structure/cable{
icon_state = "2-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen,
/turf/open/floor/plasteel,
/area/engine/engineering)
"ae" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/machinery/door/poddoor/shutters/radiation/preopen,
/turf/open/floor/plasteel,
/area/engine/engineering)
"af" = (
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aT" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/button/door{
@@ -35,16 +83,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"dW" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"ea" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine,
@@ -299,23 +337,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"wt" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"xg" = (
/obj/structure/cable{
icon_state = "2-8"
},
/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
@@ -542,16 +563,6 @@
/obj/structure/closet/radiation,
/turf/open/floor/plasteel,
/area/engine/engineering)
"HW" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"In" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/obj/machinery/door/airlock/external{
@@ -582,19 +593,6 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
"JC" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/structure/cable{
icon_state = "2-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"Kg" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -825,19 +823,6 @@
},
/turf/closed/wall,
/area/engine/engineering)
"YY" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"Zb" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -1169,7 +1154,7 @@ xJ
gf
fh
dN
YY
aa
MD
Ch
Pt
@@ -1197,7 +1182,7 @@ LO
Eu
Pg
cP
JC
ab
tv
rj
Pt
@@ -1225,7 +1210,7 @@ NS
xx
fh
zW
dW
ac
ea
rj
Pt
@@ -1253,7 +1238,7 @@ yo
me
aT
Aw
JC
ab
tv
rj
Og
@@ -1280,7 +1265,7 @@ MJ
jH
FK
Ch
wt
af
tE
rj
rj
@@ -1333,7 +1318,7 @@ dz
MJ
"}
(17,1,1) = {"
wt
af
Zz
Wf
Ox
@@ -1389,7 +1374,7 @@ MJ
MJ
"}
(19,1,1) = {"
wt
af
eJ
Zx
nW
@@ -1448,7 +1433,7 @@ MJ
jH
Nz
Ch
wt
af
tE
rj
rj
@@ -1477,7 +1462,7 @@ AF
WX
HQ
Aw
JC
ab
tv
rj
Og
@@ -1505,7 +1490,7 @@ fh
kh
fh
fh
dW
ac
ea
rj
Pt
@@ -1533,7 +1518,7 @@ fh
kh
uG
cP
xg
ad
tv
rj
Pt
@@ -1561,7 +1546,7 @@ eA
FY
mB
Rp
HW
ae
Mi
Ch
Pt
@@ -1,4 +1,18 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ab" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -13,6 +27,76 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"ad" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ae" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/item/tank/internals/plasma,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"af" = (
/obj/effect/decal/cleanable/oil,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ag" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ah" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"at" = (
/obj/structure/closet/crate/bin,
/obj/effect/turf_decal/stripes/line{
@@ -178,21 +262,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"df" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/oil,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"dl" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -600,21 +669,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"nW" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/item/tank/internals/plasma,
/turf/open/floor/plating,
/area/engine/supermatter)
"ou" = (
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
@@ -636,20 +690,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"px" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"pA" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 4
@@ -737,19 +777,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine,
/area/engine/supermatter)
"re" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"rt" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
dir = 4
@@ -1091,19 +1118,6 @@
/obj/machinery/meter,
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"Cn" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"CH" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/engineering/glass{
@@ -1571,20 +1585,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"Nw" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"Nx" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -2385,9 +2385,9 @@ VP
EX
Vg
KX
px
nW
Cn
aa
ae
ag
fj
xB
WI
@@ -2609,9 +2609,9 @@ Ws
Pa
wz
fj
Nw
df
re
ad
af
ah
KX
ni
lw
@@ -1,4 +1,11 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/engine,
/area/engine/supermatter)
"ab" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -1805,13 +1812,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"Vz" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/engine,
/area/engine/supermatter)
"VP" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/simple/green/visible{
@@ -2320,7 +2320,7 @@ Vg
KX
px
nW
Vz
aa
cN
xB
WI
@@ -2348,7 +2348,7 @@ lQ
KX
RA
tE
Vz
aa
cN
Xy
Ml
@@ -2376,7 +2376,7 @@ uz
RA
ti
YY
Vz
aa
cN
JK
WT
@@ -2488,7 +2488,7 @@ RA
Wf
mW
bq
Vz
aa
cN
JK
WT
@@ -2516,7 +2516,7 @@ wz
fj
RA
cY
Vz
aa
cN
vO
Np
@@ -2544,7 +2544,7 @@ Ey
fj
Cn
df
Vz
aa
cN
JK
lw
@@ -1,4 +1,18 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ab" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -13,6 +27,76 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"ad" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ae" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/item/tank/internals/plasma,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"af" = (
/obj/effect/decal/cleanable/oil,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ag" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ah" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"at" = (
/obj/structure/closet/crate/bin,
/obj/effect/turf_decal/stripes/line{
@@ -178,21 +262,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"df" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/oil,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"dl" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -591,21 +660,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"nW" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/item/tank/internals/plasma,
/turf/open/floor/plating,
/area/engine/supermatter)
"ou" = (
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
@@ -627,20 +681,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"px" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"pA" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 4
@@ -728,19 +768,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine,
/area/engine/supermatter)
"re" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"rt" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
dir = 4
@@ -1065,19 +1092,6 @@
/obj/machinery/meter,
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"Cn" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"CH" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/engineering/glass{
@@ -1546,20 +1560,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"Nw" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"Nx" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -2335,9 +2335,9 @@ VP
EX
Vg
KX
px
nW
Cn
aa
ae
ag
fj
xB
WI
@@ -2559,9 +2559,9 @@ Ws
Pa
wz
fj
Nw
df
re
ad
af
ah
KX
ni
lw
@@ -1,4 +1,18 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ab" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -13,6 +27,76 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"ad" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ae" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/item/tank/internals/plasma,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"af" = (
/obj/effect/decal/cleanable/oil,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ag" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ah" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"at" = (
/obj/structure/closet/crate/bin,
/obj/effect/turf_decal/stripes/line{
@@ -190,21 +274,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"df" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/oil,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"dl" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -619,21 +688,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"nW" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/item/tank/internals/plasma,
/turf/open/floor/plating,
/area/engine/supermatter)
"ou" = (
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
@@ -655,20 +709,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"px" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"pA" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 4
@@ -770,19 +810,6 @@
},
/turf/open/floor/engine,
/area/engine/supermatter)
"re" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"rt" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
@@ -1127,19 +1154,6 @@
/obj/machinery/meter,
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"Cn" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"CH" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/engineering/glass{
@@ -1605,20 +1619,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"Nw" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"Nx" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -2384,11 +2384,11 @@ bW
VP
rt
Vg
px
px
nW
Cn
Cn
aa
aa
ae
ag
ag
xB
WI
IE
@@ -2608,12 +2608,12 @@ hy
js
Pa
xB
Nw
Nw
df
re
re
Vg
ad
ad
af
ah
ah
vO
lw
bH
JV
@@ -1,4 +1,67 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"ab" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"ac" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/structure/cable{
icon_state = "2-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"ad" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"ae" = (
/obj/structure/cable{
icon_state = "2-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"af" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"aT" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/button/door{
@@ -348,23 +411,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"wt" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"xg" = (
/obj/structure/cable{
icon_state = "2-8"
},
/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
@@ -478,19 +524,6 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
"Bh" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/structure/cable{
icon_state = "2-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"Bj" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -605,16 +638,6 @@
/obj/item/clothing/gloves/color/yellow,
/turf/open/floor/plasteel,
/area/engine/engineering)
"HW" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"In" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/obj/machinery/door/airlock/external{
@@ -645,16 +668,6 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
"JC" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"JZ" = (
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
@@ -968,19 +981,6 @@
/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
"YY" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"Zb" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -1318,7 +1318,7 @@ xJ
gf
fh
dN
YY
ab
MD
Ch
Pt
@@ -1346,7 +1346,7 @@ LO
Eu
Pg
cP
Bh
ac
tv
rj
Pt
@@ -1374,7 +1374,7 @@ NS
xx
fh
zW
Bh
ac
tv
rj
Pt
@@ -1402,7 +1402,7 @@ yo
me
aT
Aw
JC
ad
WI
rj
Og
@@ -1429,7 +1429,7 @@ MJ
jH
FK
Ch
wt
aa
tE
rj
rj
@@ -1482,7 +1482,7 @@ dz
MJ
"}
(17,1,1) = {"
wt
aa
Zz
Wf
Ox
@@ -1538,7 +1538,7 @@ MJ
MJ
"}
(19,1,1) = {"
wt
aa
eJ
Zx
nW
@@ -1597,7 +1597,7 @@ MJ
jH
Nz
Ch
wt
aa
tE
rj
rj
@@ -1626,7 +1626,7 @@ AF
WX
HQ
Aw
JC
ad
WI
rj
Og
@@ -1654,7 +1654,7 @@ fh
kh
fh
fh
Bh
ac
tv
rj
Pt
@@ -1682,7 +1682,7 @@ fh
kh
uG
cP
xg
ae
tv
rj
Pt
@@ -1710,7 +1710,7 @@ eA
FY
mB
Rp
HW
af
Mi
Ch
Pt
@@ -154,13 +154,7 @@
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"cX" = (
/obj/structure/statue{
desc = "A lifelike statue of a horrifying monster.";
dir = 8;
icon = 'icons/mob/lavaland/lavaland_monsters.dmi';
icon_state = "goliath";
name = "goliath"
},
/obj/structure/closet/secure_closet/miner,
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"dk" = (
@@ -267,9 +261,13 @@
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"eS" = (
/obj/structure/table,
/obj/item/gps/mining,
/obj/item/gps/mining,
/obj/structure/statue{
desc = "A lifelike statue of a horrifying monster.";
dir = 8;
icon = 'icons/mob/lavaland/lavaland_monsters.dmi';
icon_state = "goliath";
name = "goliath"
},
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"fm" = (
@@ -427,7 +425,6 @@
/obj/effect/turf_decal/tile/brown{
dir = 4
},
/obj/structure/displaycase,
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"hP" = (
@@ -773,7 +770,8 @@
/turf/open/floor/plasteel,
/area/mine/laborcamp/security)
"nH" = (
/obj/structure/displaycase,
/obj/machinery/light,
/obj/structure/closet/wardrobe/miner,
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"nI" = (
@@ -1086,6 +1084,7 @@
/obj/effect/turf_decal/tile/brown{
dir = 1
},
/obj/effect/turf_decal/tile/brown,
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"re" = (
@@ -1181,9 +1180,6 @@
name = "Station Intercom (General)";
pixel_x = 28
},
/obj/effect/turf_decal/tile/purple{
dir = 4
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
dir = 8
},
@@ -1279,12 +1275,8 @@
/turf/open/floor/plasteel,
/area/mine/production)
"uG" = (
/obj/structure/table,
/obj/item/clothing/glasses/meson,
/obj/item/storage/bag/ore,
/obj/item/pickaxe,
/obj/item/mining_scanner,
/obj/item/flashlight,
/obj/structure/ore_box,
/obj/effect/turf_decal/box,
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"uI" = (
@@ -1758,15 +1750,6 @@
"Cd" = (
/turf/closed/wall,
/area/mine/production)
"Cg" = (
/obj/structure/table,
/obj/item/tank/internals/emergency_oxygen{
pixel_x = 5;
pixel_y = 3
},
/obj/item/tank/internals/emergency_oxygen,
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"Cj" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
@@ -1870,7 +1853,6 @@
/obj/machinery/light{
dir = 1
},
/obj/structure/chair,
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"Dv" = (
@@ -1880,12 +1862,6 @@
},
/turf/open/floor/plating,
/area/mine/laborcamp/security)
"DN" = (
/obj/machinery/computer/shuttle/mining/common{
dir = 4
},
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"Ed" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -2028,27 +2004,6 @@
},
/turf/open/floor/plating,
/area/mine/laborcamp)
"Hk" = (
/obj/docking_port/stationary{
area_type = /area/lavaland/surface/outdoors;
dir = 8;
dwidth = 3;
height = 7;
id = "lavaland_common_away";
name = "Mining base public dock";
width = 7
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Hm" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 8
},
/obj/machinery/door/airlock/external{
name = "Lavaland Shuttle Airlock"
},
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"Ho" = (
/obj/machinery/door/airlock{
name = "Restroom"
@@ -2121,12 +2076,6 @@
},
/turf/open/floor/plasteel/white,
/area/mine/living_quarters)
"If" = (
/obj/structure/chair{
dir = 4
},
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"Ii" = (
/obj/structure/table,
/obj/item/storage/box/donkpockets,
@@ -2757,9 +2706,6 @@
/obj/effect/turf_decal/tile/brown{
dir = 4
},
/obj/structure/table,
/obj/item/gps/mining,
/obj/item/gps/mining,
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"Pq" = (
@@ -2882,7 +2828,6 @@
/obj/machinery/newscaster{
pixel_y = 32
},
/obj/structure/chair,
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"Rv" = (
@@ -3399,15 +3344,6 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3,
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"Zw" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
},
/obj/machinery/door/airlock/external{
name = "Lavaland Shuttle Airlock"
},
/turf/open/floor/plasteel,
/area/mine/living_quarters)
"ZF" = (
/obj/machinery/telecomms/relay/preset/mining,
/obj/machinery/light/small{
@@ -4330,10 +4266,10 @@ VT
VT
VT
VT
Lm
Lm
Lm
Lm
VT
VT
VT
VT
VT
VT
VT
@@ -4386,14 +4322,14 @@ VT
VT
VT
VT
Lm
Lm
Lm
Lm
Lm
Lm
Lm
Lm
VT
VT
VT
VT
VT
VT
VT
VT
VT
VT
VT
@@ -4442,15 +4378,15 @@ wz
VT
VT
VT
VT
VT
VT
VT
VT
Lm
Lm
Lm
Lm
Lm
Lm
Lm
Lm
Lm
VT
VT
Lm
VT
VT
@@ -4499,17 +4435,17 @@ wz
wz
VT
VT
VT
VT
Lm
VT
VT
VT
Lm
Lm
Lm
Lm
Lm
Lm
Lm
Lm
Lm
Lm
VT
VT
VT
VT
Lm
VT
VT
@@ -4555,18 +4491,18 @@ Lm
wz
wz
Lm
VT
VT
VT
Lm
Lm
Lm
Lm
Lm
Lm
Lm
Lm
Lm
Lm
Lm
Lm
VT
VT
VT
VT
VT
VT
VT
@@ -4612,6 +4548,8 @@ VT
VT
wz
Lm
VT
VT
Lm
Lm
Lm
@@ -4620,10 +4558,8 @@ Lm
Lm
Lm
Lm
Lm
Lm
Lm
Lm
VT
VT
VT
VT
VT
@@ -4669,6 +4605,7 @@ VT
VT
Lm
Lm
VT
Lm
Lm
Lm
@@ -4678,8 +4615,7 @@ Lm
Lm
Lm
Lm
Lm
Lm
VT
VT
VT
VT
@@ -4725,12 +4661,12 @@ my
VT
VT
VT
VT
VT
Lm
Lm
Lm
Lm
Lm
Lm
VT
VT
Lm
Lm
Lm
@@ -4786,10 +4722,10 @@ wz
Lm
Lm
Lm
VT
Lm
Lm
Lm
Hk
Lm
Lm
Lm
@@ -4843,11 +4779,11 @@ wz
Lm
Lm
Lm
VT
Lm
Lm
Lm
Lm
KV
Zw
KV
Lm
Lm
Lm
@@ -4902,9 +4838,9 @@ Lm
Lm
Lm
Lm
KV
Ag
KV
Lm
Lm
Lm
Lm
Lm
VT
@@ -4959,9 +4895,9 @@ VN
VN
XX
VN
KV
Hm
KV
VN
VN
VN
VT
VT
VT
@@ -5013,12 +4949,12 @@ pu
bn
VN
zy
If
DN
If
FE
Ag
Ag
Ag
Ag
qZ
KV
VN
VT
VT
VT
@@ -5074,8 +5010,8 @@ Ag
Ag
Ag
Ag
Ag
KV
cX
VN
VT
VT
VT
@@ -5132,7 +5068,7 @@ uG
uG
Ag
cX
KV
VN
VT
VT
VT
@@ -5188,8 +5124,8 @@ KO
uG
uG
Ag
Ag
KV
cX
VN
VT
VT
VT
@@ -5245,7 +5181,7 @@ RP
Ag
Ag
Ag
oy
nH
VN
VT
VT
@@ -5300,8 +5236,8 @@ VN
Pp
sx
eS
Cg
nH
Ag
Ag
hH
VN
wz
+1 -1
View File
@@ -713,7 +713,7 @@
/turf/open/floor/wood,
/area/awaymission/cabin)
"cz" = (
/obj/structure/piano,
/obj/structure/musician/piano,
/turf/open/floor/wood,
/area/awaymission/cabin)
"cA" = (
+1
View File
@@ -0,0 +1 @@
#define FORCE_MAP "_maps/cogstation.json"
+11
View File
@@ -0,0 +1,11 @@
{
"map_name": "CogStation",
"map_path": "map_files/CogStation",
"map_file": "CogStation.dmm",
"shuttles": {
"cargo": "cargo_box",
"ferry": "ferry_fancy",
"whiteship": "whiteship_cog",
"emergency": "emergency_cog"
}
}
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
+17 -17
View File
@@ -53,6 +53,17 @@
"aaf" = (
/turf/closed/wall/r_wall,
/area/security/brig)
"aag" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/effect/turf_decal/caution/stand_clear,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plasteel/dark,
/area/engine/supermatter)
"aah" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -72321,17 +72332,6 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/ai_monitored/security/armory)
"cin" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/turf_decal/caution/stand_clear,
/turf/open/floor/plasteel/dark,
/area/engine/supermatter)
"cio" = (
/obj/effect/turf_decal/tile/red{
dir = 4
@@ -122951,9 +122951,9 @@ coc
azE
brn
aLF
cin
cin
cin
aag
aag
aag
aLF
cut
cuO
@@ -125007,9 +125007,9 @@ cos
aAd
bFh
aLF
cin
cin
cin
aag
aag
aag
aLF
cuA
cuW
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+118 -98
View File
@@ -950,6 +950,23 @@
},
/turf/open/floor/plasteel/dark,
/area/bridge)
"abn" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
icon_state = "1-2"
},
/obj/structure/cable/white{
icon_state = "0-8"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"abo" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
@@ -1257,6 +1274,20 @@
},
/turf/open/floor/plasteel,
/area/science/mixing)
"abQ" = (
/obj/structure/cable/white{
icon_state = "0-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
},
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/gravity_generator)
"abR" = (
/obj/structure/lattice,
/turf/open/space,
@@ -1638,6 +1669,54 @@
},
/turf/open/floor/plasteel,
/area/maintenance/starboard)
"acz" = (
/obj/structure/cable/white{
icon_state = "0-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"acA" = (
/obj/structure/cable/white,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
},
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/gravity_generator)
"acB" = (
/obj/structure/cable/white,
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"acC" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"acD" = (
/obj/item/pickaxe/emergency,
/turf/open/floor/plating/asteroid,
@@ -2076,6 +2155,33 @@
/obj/structure/sign/warning/vacuum,
/turf/open/floor/plating,
/area/quartermaster/storage)
"adr" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"ads" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/effect/decal/cleanable/oil,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"adv" = (
/obj/structure/closet/crate{
icon_state = "crateopen"
@@ -11662,7 +11768,7 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/theatre)
"atY" = (
/obj/structure/piano{
/obj/structure/musician/piano{
icon_state = "piano"
},
/obj/machinery/light{
@@ -18300,19 +18406,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"aGl" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
icon_state = "1-2"
},
/obj/structure/cable/white{
icon_state = "0-8"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/turf/open/floor/plating,
/area/engine/engineering)
"aGm" = (
/obj/structure/sign/warning/radiation,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -20085,16 +20178,6 @@
},
/turf/open/floor/plasteel,
/area/engine/gravity_generator)
"aJo" = (
/obj/structure/cable/white{
icon_state = "0-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
},
/obj/effect/spawner/structure/window/plasma/reinforced,
/turf/open/floor/plating,
/area/engine/gravity_generator)
"aJp" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -20171,16 +20254,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"aJA" = (
/obj/structure/cable/white{
icon_state = "0-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/spawner/structure/window/plasma/reinforced,
/turf/open/floor/plating,
/area/engine/engineering)
"aJB" = (
/obj/structure/table/reinforced,
/obj/item/stack/sheet/metal/fifty,
@@ -21472,14 +21545,6 @@
/obj/item/clothing/glasses/meson/engine,
/turf/open/floor/plasteel,
/area/engine/gravity_generator)
"aLL" = (
/obj/structure/cable/white,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
},
/obj/effect/spawner/structure/window/plasma/reinforced,
/turf/open/floor/plating,
/area/engine/gravity_generator)
"aLM" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -21574,11 +21639,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"aLX" = (
/obj/structure/cable/white,
/obj/effect/spawner/structure/window/plasma/reinforced,
/turf/open/floor/plating,
/area/engine/engineering)
"aLY" = (
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -22553,20 +22613,6 @@
/obj/machinery/power/supermatter_crystal/shard/engine,
/turf/open/floor/engine,
/area/engine/supermatter)
"aOb" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/oil,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plating,
/area/engine/supermatter)
"aOd" = (
/obj/machinery/power/apc{
areastring = "/area/engine/engineering";
@@ -22788,19 +22834,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"aOB" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/turf/open/floor/plating,
/area/engine/supermatter)
"aOC" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 5
@@ -22827,19 +22860,6 @@
},
/turf/open/floor/circuit/green,
/area/engine/supermatter)
"aOE" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plating,
/area/engine/supermatter)
"aOF" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -72989,9 +73009,9 @@ aFq
aGf
sIA
aIe
aJo
abQ
aKx
aLL
acA
aMN
aMN
sJD
@@ -73763,9 +73783,9 @@ aIh
aJr
aKz
aLO
aOB
aOB
aOB
acC
acC
acC
aLU
aQK
aRH
@@ -75042,7 +75062,7 @@ kaA
aDr
aEv
aFx
aGl
abn
aHp
aIm
bxa
@@ -75819,9 +75839,9 @@ aIp
aJw
aKE
aLU
aOE
aOb
aOE
adr
ads
adr
aLO
blK
aRP
@@ -76587,9 +76607,9 @@ aDv
aDv
aHv
sHV
aJA
acz
aKH
aLX
acB
aEt
aEt
aOH
+302 -209
View File
@@ -2,12 +2,267 @@
"aaa" = (
/turf/open/space/basic,
/area/space)
"aab" = (
/obj/machinery/holopad,
/obj/effect/landmark/start/cyborg,
/mob/living/simple_animal/bot/secbot/pingsky,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"aac" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aad" = (
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating{
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
"aae" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aaf" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aag" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aah" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aai" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aaj" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aak" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4
},
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aal" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 9
},
/turf/open/floor/plating,
/area/engine/engineering)
"aam" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aan" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"aao" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"aap" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 9
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aaq" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
},
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aar" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/item/tank/internals/plasma,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"aas" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/effect/decal/cleanable/oil,
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"aat" = (
/obj/structure/closet/wardrobe/green,
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/structure/sign/poster/official/fashion{
pixel_y = -32
},
/obj/structure/sign/poster/official/fashion{
pixel_y = -32
},
/turf/open/floor/plasteel/white/corner,
/area/crew_quarters/fitness/recreation)
"aau" = (
/obj/structure/closet/secure_closet/hydroponics,
/obj/structure/sign/poster/official/hydro_ad{
pixel_y = 32
},
/turf/open/floor/plasteel,
/area/hydroponics)
"aav" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/maintenance,
/obj/structure/sign/poster/contraband/scum{
pixel_y = 32
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
"aaw" = (
/obj/structure/sign/poster/official/hydro_ad,
/turf/closed/wall,
/area/hydroponics)
"aax" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/structure/sign/poster/official/medical_green_cross{
pixel_x = 32
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/zone3)
"aay" = (
/obj/structure/sign/poster/official/medical_green_cross,
/turf/closed/wall,
/area/medical/medbay/central)
"aaz" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/sign/poster/official/medical_green_cross{
pixel_x = 32;
pixel_y = -32
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"aaA" = (
/obj/structure/sign/poster/contraband/scum{
pixel_y = 32
},
/turf/open/floor/plating,
/area/maintenance/department/science)
"aaB" = (
/obj/structure/closet/masks,
/obj/item/reagent_containers/food/snacks/deadmouse,
/obj/structure/sign/poster/contraband/scum{
pixel_y = 32
},
/obj/structure/sign/poster/contraband/scum{
pixel_y = 32
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
"aaC" = (
/obj/structure/sign/poster/contraband/scum{
pixel_y = 32
},
/turf/open/floor/plasteel,
/area/maintenance/department/engine)
"abf" = (
/obj/structure/bed,
/turf/open/floor/plating,
@@ -1589,12 +1844,6 @@
},
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"afP" = (
/obj/machinery/holopad,
/mob/living/simple_animal/bot/secbot/pingsky,
/obj/effect/landmark/start/cyborg,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"afQ" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
@@ -11506,13 +11755,6 @@
},
/turf/open/floor/plasteel/white/corner,
/area/crew_quarters/fitness/recreation)
"aBV" = (
/obj/structure/closet/wardrobe/green,
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/turf/open/floor/plasteel/white/corner,
/area/crew_quarters/fitness/recreation)
"aBW" = (
/obj/structure/closet/wardrobe/grey,
/obj/machinery/light,
@@ -15182,13 +15424,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
"aKm" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
},
/turf/open/floor/plating,
/area/engine/engineering)
"aKn" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -18463,10 +18698,6 @@
},
/turf/open/floor/plasteel,
/area/hydroponics)
"aSD" = (
/obj/structure/closet/secure_closet/hydroponics,
/turf/open/floor/plasteel,
/area/hydroponics)
"aSE" = (
/obj/machinery/airalarm{
pixel_y = 24
@@ -19833,11 +20064,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
"aVF" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
"aVG" = (
/obj/structure/easel,
/turf/open/floor/plating,
@@ -27844,14 +28070,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/zone3)
"boB" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/zone3)
"boC" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel/dark,
@@ -31673,13 +31891,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"bwM" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"bwN" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -36749,11 +36960,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/engine)
"bGL" = (
/obj/structure/closet/masks,
/obj/item/reagent_containers/food/snacks/deadmouse,
/turf/open/floor/plating,
/area/maintenance/department/engine)
"bGM" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/plating,
@@ -42809,7 +43015,7 @@
/area/maintenance/department/engine)
"bUb" = (
/obj/structure/grille/broken,
/obj/structure/piano,
/obj/structure/musician/piano,
/turf/open/floor/plating,
/area/maintenance/department/engine)
"bUc" = (
@@ -46083,13 +46289,6 @@
/obj/structure/sign/warning/nosmoking,
/turf/closed/wall/r_wall,
/area/engine/engineering)
"ccd" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plating,
/area/engine/engineering)
"cci" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/light{
@@ -47013,17 +47212,6 @@
/obj/structure/closet/firecloset,
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"cfV" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4
},
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/engine/engineering)
"cfX" = (
/obj/machinery/atmospherics/pipe/manifold/orange/visible{
dir = 1
@@ -47378,23 +47566,6 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
"chw" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
},
/turf/open/floor/plating,
/area/engine/engineering)
"chA" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/turf/open/floor/plating,
/area/engine/supermatter)
"chB" = (
/obj/item/seeds/banana,
/obj/item/seeds/grass,
@@ -54807,17 +54978,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
"hQy" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/item/tank/internals/plasma,
/turf/open/floor/plating,
/area/engine/supermatter)
"hQz" = (
/obj/structure/closet/emcloset/anchored,
/obj/structure/cable/yellow{
@@ -55157,11 +55317,6 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
"izm" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/engine/engineering)
"izB" = (
/obj/machinery/door/airlock/external{
name = "Escape Pod"
@@ -56542,13 +56697,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
"lRX" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 9
},
/turf/open/floor/plating,
/area/engine/engineering)
"lTC" = (
/obj/item/shard,
/obj/effect/turf_decal/stripes/line{
@@ -57810,13 +57958,6 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
"oJr" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
},
/turf/open/floor/plating,
/area/engine/engineering)
"oKa" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
@@ -58130,7 +58271,7 @@
/turf/open/floor/plating,
/area/chapel/office)
"plA" = (
/obj/structure/piano,
/obj/structure/musician/piano,
/turf/open/floor/plasteel/dark,
/area/maintenance/department/crew_quarters/dorms)
"pmB" = (
@@ -58798,11 +58939,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
"qOS" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/engine/engineering)
"qPB" = (
/obj/structure/chair/stool,
/obj/machinery/light/small{
@@ -59976,13 +60112,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
"tQT" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/turf/open/floor/plating,
/area/engine/engineering)
"tRc" = (
/obj/structure/ore_box,
/turf/open/floor/plating{
@@ -60180,17 +60309,6 @@
luminosity = 2
},
/area/maintenance/department/science)
"uoq" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/engine/supermatter)
"uos" = (
/obj/machinery/computer/camera_advanced/base_construction,
/obj/effect/turf_decal/stripes/line{
@@ -60626,13 +60744,6 @@
/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
"vor" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/structure/cable/yellow{
icon_state = "1-2"
},
/turf/open/floor/plating,
/area/engine/engineering)
"vpz" = (
/obj/structure/girder,
/turf/open/floor/plating{
@@ -61074,17 +61185,6 @@
/obj/structure/sign/warning,
/turf/closed/wall,
/area/science/mixing)
"woh" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
name = "Radiation Chamber Shutters"
},
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plating,
/area/engine/supermatter)
"woq" = (
/obj/structure/chair,
/turf/open/floor/plating,
@@ -61228,13 +61328,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
"wHI" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 9
},
/turf/open/floor/plating,
/area/engine/engineering)
"wIo" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
/obj/structure/lattice,
@@ -83932,7 +84025,7 @@ bBX
bva
bEm
bva
bGL
aaB
bHQ
bJe
bKj
@@ -85497,7 +85590,7 @@ bSw
bva
bOB
bva
kRq
aaC
kRq
kRq
bva
@@ -87507,7 +87600,7 @@ aVS
aVS
aVS
aVS
aRL
aaw
aJI
aDZ
aHN
@@ -88030,7 +88123,7 @@ bjR
blc
biX
bny
boB
aax
bpF
brd
bsz
@@ -88522,7 +88615,7 @@ aKP
aPz
aQJ
aRL
aSD
aau
aTT
aXS
aRL
@@ -90606,7 +90699,7 @@ brg
bsG
brf
bvn
bwM
aaz
byt
bzX
bpP
@@ -90905,9 +90998,9 @@ svA
mjK
mjK
mjK
wHI
eyj
eyj
aap
aac
aac
bXk
shH
shH
@@ -91157,7 +91250,7 @@ cah
cdO
ioF
ceX
qOS
aah
cfS
fFv
fmL
@@ -91631,7 +91724,7 @@ bnD
boJ
bpS
bjd
bjc
aay
cqm
bvl
bwP
@@ -91671,7 +91764,7 @@ cbh
cbh
cbh
hjD
vor
aai
cfU
tIS
iCs
@@ -91929,12 +92022,12 @@ irM
qFu
cet
ulY
cfV
aak
cgu
cgU
izm
chw
eyj
aam
aaq
aac
jzE
bXk
bXk
@@ -92181,9 +92274,9 @@ bZA
can
cbi
ccc
eyj
aac
cdR
tQT
aaf
bXk
bXk
sWW
@@ -92437,12 +92530,12 @@ bYR
bZA
can
cbj
eyj
aac
cbX
wcs
iyJ
cfa
eyj
aac
twv
hoS
sWj
@@ -92694,7 +92787,7 @@ bYS
bZA
can
qpS
ccd
aae
ccX
ccX
ceu
@@ -92703,9 +92796,9 @@ cfu
tlN
ncm
cCI
uoq
hQy
chA
aan
aar
aao
meF
oKv
wbB
@@ -92951,12 +93044,12 @@ bYT
bZB
caq
cbk
eyj
aac
ccY
cdT
ccY
cbX
eyj
aac
vlC
iej
qeY
@@ -93208,7 +93301,7 @@ bYU
bZE
car
mgz
eyj
aac
cbX
wcs
wcs
@@ -94236,7 +94329,7 @@ bYQ
bZA
cam
mgz
eyj
aac
cbX
wcs
wcs
@@ -94493,12 +94586,12 @@ wjm
bZF
cbm
mgz
eyj
aac
oHa
oHa
eWi
cbX
eyj
aac
vlC
cgx
qeY
@@ -94750,7 +94843,7 @@ bYO
bZA
cam
lrM
ccd
aae
cAQ
cAQ
cLw
@@ -94759,9 +94852,9 @@ cfu
jBn
oxw
meF
chA
chA
woh
aao
aao
aas
cCI
cBS
iLh
@@ -94900,7 +94993,7 @@ aey
aeO
aff
afy
afP
aab
bIK
agt
agD
@@ -95007,12 +95100,12 @@ bYY
bZA
cam
cbn
eyj
aac
cbX
wcs
cfP
cff
eyj
aac
cfX
vVO
iop
@@ -95265,9 +95358,9 @@ bZG
cax
cbo
ccc
eyj
aac
cdR
oJr
aag
bXq
bXq
cfY
@@ -95527,7 +95620,7 @@ kTj
qhE
loz
frj
lRX
aal
eyj
uIB
eyj
@@ -95783,7 +95876,7 @@ cam
cam
cam
haA
aKm
aaj
upc
wIo
hyh
@@ -96040,7 +96133,7 @@ cCV
ceb
epV
qLI
aKm
aaj
eiV
upc
dsz
@@ -103154,7 +103247,7 @@ axx
ayv
azD
aAS
aBV
aat
atn
aEh
aFe
@@ -107799,7 +107892,7 @@ sZh
aLm
aTx
aEj
aVF
aav
aFi
aFi
aFi
@@ -109372,7 +109465,7 @@ blX
blX
blX
bkF
lWy
aaA
lWy
fKj
lWy
+183 -123
View File
@@ -10005,6 +10005,12 @@
/obj/structure/chair/stool,
/turf/open/floor/plasteel,
/area/syndicate_mothership)
"wZ" = (
/obj/structure/bed,
/obj/item/bedsheet/syndie,
/obj/effect/landmark/holding_facility,
/turf/open/indestructible/hotelwood,
/area/centcom/holding)
"xa" = (
/obj/machinery/door/window/northright{
dir = 4;
@@ -12452,6 +12458,13 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/evac)
"CQ" = (
/obj/effect/landmark/holding_facility,
/mob/living/simple_animal/bot/medbot{
name = "Syndicate Hospitality Drone"
},
/turf/open/indestructible/hotelwood,
/area/centcom/holding)
"CR" = (
/obj/machinery/computer/security{
dir = 8
@@ -14407,7 +14420,7 @@
/obj/machinery/light{
dir = 8
},
/obj/structure/piano,
/obj/structure/musician/piano,
/turf/open/indestructible/hotelwood,
/area/centcom/holding)
"Hk" = (
@@ -17251,10 +17264,21 @@
/obj/structure/window/reinforced/fulltile,
/turf/open/indestructible/hotelwood,
/area/centcom/holding)
"Ql" = (
/obj/machinery/light,
/obj/effect/landmark/holding_facility,
/turf/open/indestructible/hotelwood,
/area/centcom/holding)
"Qm" = (
/obj/singularity/wizard/mapped,
/turf/open/indestructible/binary,
/area/fabric_of_reality)
"Qn" = (
/obj/machinery/vr_sleeper/hugbox{
dir = 8
},
/turf/open/indestructible/hotelwood,
/area/centcom/holding)
"Qo" = (
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/evac)
@@ -17794,7 +17818,7 @@
/area/syndicate_mothership)
"Tn" = (
/obj/structure/table/wood/fancy,
/obj/item/candle/infinite{
/obj/item/candle/infinite/hugbox{
pixel_y = 6
},
/turf/open/indestructible/hotelwood,
@@ -17820,7 +17844,6 @@
dir = 4
},
/obj/structure/window/reinforced/tinted{
icon_state = "twindow";
dir = 1
},
/turf/open/floor/plasteel/white,
@@ -17897,7 +17920,6 @@
dir = 8
},
/obj/structure/window/reinforced/tinted{
icon_state = "twindow";
dir = 1
},
/obj/machinery/washing_machine,
@@ -17939,10 +17961,13 @@
/obj/vehicle/ridden/janicart,
/turf/open/indestructible/hotelwood,
/area/centcom/holding)
"Ud" = (
/obj/effect/landmark/holding_facility,
"Uc" = (
/obj/machinery/vending/sustenance,
/turf/open/indestructible/hotelwood,
/area/centcom/holding)
"Ud" = (
/turf/closed/indestructible/wood,
/area/centcom/holding)
"Ug" = (
/obj/machinery/door/poddoor/shuttledock{
checkdir = 1;
@@ -17962,6 +17987,11 @@
},
/turf/open/indestructible/hotelwood,
/area/centcom/holding)
"Ui" = (
/obj/structure/table,
/obj/item/clothing/mask/luchador/tecnicos,
/turf/open/floor/holofloor/wood,
/area/holodeck/rec_center/wrestlingarena)
"Uj" = (
/obj/machinery/door/airlock/centcom{
name = "Restroom";
@@ -18204,6 +18234,11 @@
/obj/structure/window/reinforced/tinted,
/turf/open/floor/plasteel/freezer,
/area/syndicate_mothership)
"Vk" = (
/obj/structure/table,
/obj/item/storage/belt/champion/wrestling/holodeck,
/turf/open/floor/holofloor/wood,
/area/holodeck/rec_center/wrestlingarena)
"Vt" = (
/obj/item/paper/fluff/stations/centcom/disk_memo,
/obj/structure/noticeboard{
@@ -18368,6 +18403,11 @@
},
/turf/open/indestructible/hotelwood,
/area/centcom/holding)
"Wx" = (
/obj/structure/table,
/obj/item/clothing/mask/luchador,
/turf/open/floor/holofloor/wood,
/area/holodeck/rec_center/wrestlingarena)
"Wz" = (
/obj/structure/table,
/obj/item/storage/backpack/duffelbag/med/surgery,
@@ -18741,6 +18781,11 @@
},
/turf/open/floor/plasteel/cafeteria,
/area/centcom/holding)
"Yv" = (
/obj/structure/table,
/obj/item/clothing/mask/luchador/rudos,
/turf/open/floor/holofloor/wood,
/area/holodeck/rec_center/wrestlingarena)
"Yw" = (
/turf/closed/indestructible/fakedoor{
name = "External Access"
@@ -18750,6 +18795,9 @@
/obj/machinery/door/airlock/titanium,
/turf/open/floor/mineral/titanium,
/area/centcom/evac)
"YC" = (
/turf/open/floor/holofloor/wood,
/area/holodeck/rec_center/wrestlingarena)
"YJ" = (
/obj/item/reagent_containers/food/condiment/enzyme,
/obj/item/reagent_containers/food/drinks/shaker,
@@ -18822,6 +18870,14 @@
},
/turf/open/floor/plasteel,
/area/centcom/supplypod)
"Zl" = (
/obj/structure/table,
/obj/item/clothing/gloves/boxing,
/obj/item/clothing/gloves/boxing/blue,
/obj/item/clothing/gloves/boxing/green,
/obj/item/clothing/gloves/boxing/yellow,
/turf/open/floor/holofloor/wood,
/area/holodeck/rec_center/wrestlingarena)
"Zr" = (
/obj/machinery/light,
/turf/open/floor/plasteel/dark,
@@ -18844,6 +18900,10 @@
/obj/effect/landmark/start/nukeop_leader,
/turf/open/floor/wood,
/area/syndicate_mothership)
"ZB" = (
/obj/effect/landmark/holding_facility,
/turf/open/indestructible/hotelwood,
/area/centcom/holding)
"ZE" = (
/obj/structure/sink{
dir = 4;
@@ -43829,11 +43889,11 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
Ud
Ud
Ud
Ud
Ud
aa
aa
aa
@@ -44086,11 +44146,11 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
Ud
Uc
ZB
ZB
Ud
aa
aa
aa
@@ -44343,11 +44403,11 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
Ud
ZB
CQ
Ql
Ud
aa
aa
aa
@@ -44600,11 +44660,11 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
Ud
wZ
ZB
Qn
Ud
aa
aa
aa
@@ -44857,11 +44917,11 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
Ud
Ud
Ud
Ud
Ud
aa
aa
aa
@@ -46174,8 +46234,8 @@ Sd
HH
Nd
WM
Ud
Ud
Sd
Sd
NT
Nj
Po
@@ -46431,8 +46491,8 @@ Sd
XM
NT
Sd
Ud
Ud
Sd
Sd
NT
YU
zT
@@ -46688,8 +46748,8 @@ Sd
Tn
NT
Sd
Ud
Ud
Sd
Sd
NT
YU
zT
@@ -46945,8 +47005,8 @@ Sd
GY
NT
Sd
Ud
Ud
Sd
Sd
NT
YU
zT
@@ -47202,8 +47262,8 @@ Qk
Vu
Nd
Gs
Ud
Ud
Sd
Sd
NT
Mt
PA
@@ -71951,18 +72011,18 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
ab
ag
ag
ag
ag
ag
ag
ag
ag
ag
ag
ab
aa
aa
aa
@@ -72208,18 +72268,18 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
bj
YC
YC
YC
YC
YC
YC
YC
YC
YC
YC
fx
aa
aa
aa
@@ -72465,18 +72525,18 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
bj
Vk
YC
YC
YC
YC
YC
YC
YC
YC
Vk
fx
aa
aa
aa
@@ -72722,18 +72782,18 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
bj
Vk
YC
YC
YC
YC
YC
YC
YC
YC
Vk
fx
aa
aa
aa
@@ -72979,18 +73039,18 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
bj
Vk
YC
YC
YC
YC
YC
YC
YC
YC
Vk
fx
aa
aa
aa
@@ -73236,18 +73296,18 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
bj
YC
YC
Wx
YC
Yv
Ui
YC
Zl
YC
YC
fx
aa
aa
aa
@@ -73494,16 +73554,16 @@ ae
ae
ae
ab
ae
ae
ae
ae
ae
ae
ae
ae
ae
ae
ag
ag
ag
ag
ag
ag
ag
ag
ag
ag
ab
aa
aa
+1 -1
View File
@@ -197,7 +197,7 @@
/turf/open/floor/plasteel,
/area/shuttle/escape)
"aF" = (
/obj/structure/piano{
/obj/structure/musician/piano{
icon_state = "piano"
},
/turf/open/floor/plasteel/grimy,
-124
View File
@@ -1,124 +0,0 @@
//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,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/mining)
"d" = (
/obj/machinery/computer/shuttle/mining/common,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/mining)
"e" = (
/turf/open/floor/mineral/titanium,
/area/shuttle/mining)
"f" = (
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/mining)
"g" = (
/obj/machinery/light{
dir = 8
},
/turf/open/floor/mineral/titanium,
/area/shuttle/mining)
"h" = (
/obj/machinery/door/airlock/titanium{
name = "Lavaland Shuttle Airlock"
},
/obj/docking_port/mobile{
dir = 8;
dwidth = 3;
height = 5;
id = "mining_common";
name = "lavaland shuttle";
port_direction = 4;
width = 7
},
/turf/open/floor/plating,
/area/shuttle/mining)
"i" = (
/obj/structure/closet/crate,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/mining)
"j" = (
/obj/structure/shuttle/engine/heater,
/obj/structure/window/reinforced{
dir = 1;
layer = 2.9
},
/obj/structure/window/reinforced{
dir = 8
},
/obj/structure/window/reinforced{
dir = 4
},
/turf/open/floor/plating,
/area/shuttle/mining)
"k" = (
/obj/structure/ore_box,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/mining)
"l" = (
/obj/structure/shuttle/engine/propulsion/burst,
/turf/open/floor/plating/airless,
/area/shuttle/mining)
"Q" = (
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/turf/open/floor/mineral/titanium,
/area/shuttle/mining)
(1,1,1) = {"
a
a
b
a
b
a
a
"}
(2,1,1) = {"
a
c
e
g
f
i
a
"}
(3,1,1) = {"
b
d
Q
e
f
j
l
"}
(4,1,1) = {"
a
c
e
e
f
k
a
"}
(5,1,1) = {"
a
a
b
h
b
a
a
"}
+9 -12
View File
@@ -2,18 +2,6 @@
//Be sure to update the min/max of these if you do change them.
//Measurements are in imperial units. Inches, feet, yards, miles. Tsp, tbsp, cups, quarts, gallons, etc
//HUD stuff
#define ui_arousal "EAST-1:28,CENTER-4:8"//Below the health doll
#define ui_stamina "EAST-1:28,CENTER:17" // replacing internals button
#define ui_overridden_resist "EAST-3:24,SOUTH+1:7"
#define ui_combat_toggle "EAST-4:22,SOUTH:5"
//1:1 HUD layout stuff
#define ui_boxcraft "EAST-4:22,SOUTH+1:6"
#define ui_boxarea "EAST-4:6,SOUTH+1:6"
#define ui_boxlang "EAST-5:22,SOUTH+1:6"
#define ui_boxvore "EAST-5:22,SOUTH+1:6"
//Filters
#define CIT_FILTER_STAMINACRIT filter(type="drop_shadow", x=0, y=0, size=-3, color="#04080F")
@@ -35,6 +23,9 @@
#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 GENITAL_UNDIES_HIDDEN (1<<9)
#define UPDATE_OWNER_APPEARANCE (1<<10)
#define GENITAL_CAN_TAUR (1<<11)
#define DEF_VAGINA_SHAPE "Human"
@@ -71,6 +62,12 @@
#define MILK_RATE_MULT 1
#define MILK_EFFICIENCY 1
//visibility toggles defines to avoid errors typos code errors.
#define GEN_VISIBLE_ALWAYS "Always visible"
#define GEN_VISIBLE_NO_CLOTHES "Hidden by clothes"
#define GEN_VISIBLE_NO_UNDIES "Hidden by underwear"
#define GEN_VISIBLE_NEVER "Always hidden"
//Individual logging define
#define INDIVIDUAL_LOOC_LOG "LOOC log"
+1
View File
@@ -82,6 +82,7 @@
#define CANUNCONSCIOUS (1<<2)
#define CANPUSH (1<<3)
#define GODMODE (1<<4)
#define CANSTAGGER (1<<5)
//Health Defines
#define HEALTH_THRESHOLD_CRIT 0
+14
View File
@@ -39,3 +39,17 @@
//Ouch my toes!
#define CALTROP_BYPASS_SHOES 1
#define CALTROP_IGNORE_WALKERS 2
#define SPELL_SKIP_ALL_REQS (1<<0)
#define SPELL_SKIP_CENTCOM (1<<1)
#define SPELL_SKIP_STAT (1<<2)
#define SPELL_SKIP_CLOTHES (1<<3)
#define SPELL_SKIP_ANTIMAGIC (1<<4)
#define SPELL_SKIP_VOCAL (1<<5)
#define SPELL_SKIP_MOBTYPE (1<<6)
#define SPELL_WIZARD_HAT (1<<7)
#define SPELL_WIZARD_ROBE (1<<8)
#define SPELL_CULT_HELMET (1<<9)
#define SPELL_CULT_ARMOR (1<<10)
#define SPELL_WIZARD_GARB (SPELL_WIZARD_HAT|SPELL_WIZARD_ROBE)
#define SPELL_CULT_GARB (SPELL_CULT_HELMET|SPELL_CULT_ARMOR)
+7 -1
View File
@@ -149,7 +149,9 @@
#define COMSIG_MOB_DEATH "mob_death" //from base of mob/death(): (gibbed)
#define COMPONENT_BLOCK_DEATH_BROADCAST 1 //stops the death from being broadcasted in deadchat.
#define COMSIG_MOB_GHOSTIZE "mob_ghostize" //from base of mob/Ghostize(): (can_reenter_corpse, special, penalize)
#define COMPONENT_BLOCK_GHOSTING 1
#define COMPONENT_BLOCK_GHOSTING (1<<0)
#define COMPONENT_DO_NOT_PENALIZE_GHOSTING (1<<1)
#define COMPONENT_FREE_GHOSTING (1<<2)
#define COMSIG_MOB_ALLOWED "mob_allowed" //from base of obj/allowed(mob/M): (/obj) returns bool, if TRUE the mob has id access to the obj
#define COMSIG_MOB_RECEIVE_MAGIC "mob_receive_magic" //from base of mob/anti_magic_check(): (mob/user, magic, holy, tinfoil, chargecost, self, protection_sources)
#define COMPONENT_BLOCK_MAGIC 1
@@ -175,6 +177,9 @@
#define SPEECH_LANGUAGE 5
// #define SPEECH_IGNORE_SPAM 6
// #define SPEECH_FORCED 7
#define COMSIG_MOB_ANTAG_ON_GAIN "mob_antag_on_gain" //from base of /datum/antagonist/on_gain(): (antag_datum)
#define COMSIG_MOB_SPELL_CAST_CHECK "mob_spell_cast_check" //called from base of /obj/effect/proc_holder/spell/cast_check(): (spell)
// /mob/living signals
#define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs)
@@ -185,6 +190,7 @@
#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_MOB_CLIENT_MOVE "comsig_mob_client_move" //sent when client/Move() finishes with no early returns: (client, direction, n, oldloc)
#define COMSIG_LIVING_GUN_PROCESS_FIRE "living_gun_process_fire" //from base of /obj/item/gun/proc/process_fire(): (atom/target, params, zone_override)
// This returns flags as defined for block in __DEFINES/combat.dm!
#define COMSIG_LIVING_RUN_BLOCK "living_do_run_block" //from base of mob/living/do_run_block(): (real_attack, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone)
+1
View File
@@ -6,6 +6,7 @@
#define NO_ASSASSIN (1<<0)
#define WAROPS_ALWAYS_ALLOWED (1<<1)
#define USE_PREF_WEIGHTS (1<<2)
#define FORCE_IF_WON (1<<3)
#define ONLY_RULESET (1<<0)
#define HIGHLANDER_RULESET (1<<1)
+29
View File
@@ -0,0 +1,29 @@
#define INSTRUMENT_MIN_OCTAVE 1
#define INSTRUMENT_MAX_OCTAVE 9
#define INSTRUMENT_MIN_KEY 0
#define INSTRUMENT_MAX_KEY 127
/// Max number of playing notes per instrument.
#define CHANNELS_PER_INSTRUMENT 128
/// Distance multiplier that makes us not be impacted by 3d sound as much. This is a multiplier so lower it is the closer we will pretend to be to people.
#define INSTRUMENT_DISTANCE_FALLOFF_BUFF 0.2
/// How many tiles instruments have no falloff for
#define INSTRUMENT_DISTANCE_NO_FALLOFF 3
/// Maximum length a note should ever go for
#define INSTRUMENT_MAX_TOTAL_SUSTAIN (5 SECONDS)
/// These are per decisecond.
#define INSTRUMENT_EXP_FALLOFF_MIN 1.025 //100/(1.025^50) calculated for [INSTRUMENT_MIN_SUSTAIN_DROPOFF] to be 30.
#define INSTRUMENT_EXP_FALLOFF_MAX 10
/// Minimum volume for when the sound is considered dead.
#define INSTRUMENT_MIN_SUSTAIN_DROPOFF 30
#define SUSTAIN_LINEAR 1
#define SUSTAIN_EXPONENTIAL 2
// /datum/instrument instrument_flags
#define INSTRUMENT_LEGACY (1<<0) //Legacy instrument. Implies INSTRUMENT_DO_NOT_AUTOSAMPLE
#define INSTRUMENT_DO_NOT_AUTOSAMPLE (1<<1) //Do not automatically sample
+28
View File
@@ -4,11 +4,16 @@
#define CLICKCATCHER_PLANE -99
#define PLANE_SPACE -95
#define PLANE_SPACE_RENDER_TARGET "PLANE_SPACE"
#define PLANE_SPACE_PARALLAX -90
#define PLANE_SPACE_PARALLAX_RENDER_TARGET "PLANE_SPACE_PARALLAX"
#define FLOOR_PLANE -2
#define FLOOR_PLANE_RENDER_TARGET "FLOOR_PLANE"
#define GAME_PLANE -1
#define GAME_PLANE_RENDER_TARGET "GAME_PLANE"
#define BLACKNESS_PLANE 0 //To keep from conflicts with SEE_BLACKNESS internals
#define BLACKNESS_PLANE_RENDER_TARGET "BLACKNESS_PLANE"
#define SPACE_LAYER 1.8
//#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define
@@ -78,20 +83,38 @@
#define MASSIVE_OBJ_LAYER 11
#define POINT_LAYER 12
#define EMISSIVE_BLOCKER_PLANE 12
#define EMISSIVE_BLOCKER_LAYER 12
#define EMISSIVE_BLOCKER_RENDER_TARGET "*EMISSIVE_BLOCKER_PLANE"
#define EMISSIVE_PLANE 13
#define EMISSIVE_LAYER 13
#define EMISSIVE_RENDER_TARGET "*EMISSIVE_PLANE"
#define EMISSIVE_UNBLOCKABLE_PLANE 14
#define EMISSIVE_UNBLOCKABLE_LAYER 14
#define EMISSIVE_UNBLOCKABLE_RENDER_TARGET "*EMISSIVE_UNBLOCKABLE_PLANE"
#define LIGHTING_PLANE 15
#define LIGHTING_LAYER 15
#define LIGHTING_RENDER_TARGET "LIGHT_PLANE"
#define ABOVE_LIGHTING_PLANE 16
#define ABOVE_LIGHTING_LAYER 16
#define ABOVE_LIGHTING_RENDER_TARGET "ABOVE_LIGHTING_PLANE"
#define FLOOR_OPENSPACE_PLANE 17
#define OPENSPACE_LAYER 17
#define OPENSPACE_RENDER_TARGET "OPENSPACE_PLANE"
#define BYOND_LIGHTING_PLANE 18
#define BYOND_LIGHTING_LAYER 18
#define BYOND_LIGHTING_RENDER_TARGET "BYOND_LIGHTING_PLANE"
#define CAMERA_STATIC_PLANE 19
#define CAMERA_STATIC_LAYER 19
#define CAMERA_STATIC_RENDER_TARGET "CAMERA_STATIC_PLANE"
//HUD layer defines
#define FULLSCREEN_PLANE 20
@@ -101,11 +124,16 @@
#define BLIND_LAYER 20.3
#define CRIT_LAYER 20.4
#define CURSE_LAYER 20.5
#define FULLSCREEN_RENDER_TARGET "FULLSCREEN_PLANE"
#define HUD_PLANE 21
#define HUD_LAYER 21
#define HUD_RENDER_TARGET "HUD_PLANE"
#define ABOVE_HUD_PLANE 22
#define ABOVE_HUD_LAYER 22
#define ABOVE_HUD_RENDER_TARGET "ABOVE_HUD_PLANE"
#define SPLASHSCREEN_LAYER 23
#define SPLASHSCREEN_PLANE 23
#define SPLASHSCREEN_RENDER_TARGET "SPLASHSCREEN_PLANE"
+5
View File
@@ -83,3 +83,8 @@
#define FLASH_LIGHT_DURATION 2
#define FLASH_LIGHT_POWER 3
#define FLASH_LIGHT_RANGE 3.8
/// Uses vis_overlays to leverage caching so that very few new items need to be made for the overlay. For anything that doesn't change outline or opaque area much or at all.
#define EMISSIVE_BLOCK_GENERIC 1
/// Uses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans.
#define EMISSIVE_BLOCK_UNIQUE 2
+3 -1
View File
@@ -30,7 +30,7 @@
#define FLOOR(x, y) ( round((x) / (y)) * (y) )
// Similar to clamp but the bottom rolls around to the top and vice versa. min is inclusive, max is exclusive
#define WRAP(val, min, max) ( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) )
#define WRAP(val, min, max) CLAMP(( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),min,max-1)
// Real modulus that handles decimals
#define MODULUS(x, y) ( (x) - (y) * round((x) / (y)) )
@@ -203,5 +203,7 @@
#define MANHATTAN_DISTANCE(a, b) (abs(a.x - b.x) + abs(a.y - b.y))
#define LOGISTIC_FUNCTION(L,k,x,x_0) (L/(1+(NUM_E**(-k*(x-x_0)))))
/// Make sure something is a boolean TRUE/FALSE 1/0 value, since things like bitfield & bitflag doesn't always give 1s and 0s.
#define FORCE_BOOLEAN(x) ((x)? TRUE : FALSE)
+4 -5
View File
@@ -345,11 +345,10 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
#define COLOUR_PRIORITY_AMOUNT 4 //how many priority levels there are.
//Endgame Results
#define NUKE_NEAR_MISS 1
#define NUKE_MISS_STATION 2
#define NUKE_SYNDICATE_BASE 3
#define STATION_DESTROYED_NUKE 4
#define STATION_EVACUATED 5
#define NUKE_MISS_STATION 1
#define NUKE_SYNDICATE_BASE 2
#define STATION_DESTROYED_NUKE 3
#define STATION_EVACUATED 4
#define BLOB_WIN 8
#define BLOB_NUKE 9
#define BLOB_DESTROYED 10
+2 -1
View File
@@ -289,4 +289,5 @@
#define HUMAN_FIRE_STACK_ICON_NUM 3
#define PULL_PRONE_SLOWDOWN 0.6
#define HUMAN_CARRY_SLOWDOWN 0
#define FIREMAN_CARRY_SLOWDOWN 0
#define PIGGYBACK_CARRY_SLOWDOWN 1
+1
View File
@@ -20,6 +20,7 @@
#define CHANNEL_HIGHEST_AVAILABLE 1008 //CIT CHANGE - COMPENSATES FOR VORESOUND CHANNELS
#define MAX_INSTRUMENT_CHANNELS (128 * 6)
#define SOUND_MINIMUM_PRESSURE 10
#define FALLOFF_SOUNDS 1
+8 -5
View File
@@ -50,17 +50,19 @@
#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_GARBAGE 95
#define INIT_ORDER_DBCORE 93
#define INIT_ORDER_BLACKBOX 92
#define INIT_ORDER_SERVER_MAINT 91
#define INIT_ORDER_INPUT 90
#define INIT_ORDER_SOUNDS 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_INSTRUMENTS 53
#define INIT_ORDER_MAPPING 50
#define INIT_ORDER_NETWORKS 45
#define INIT_ORDER_ATOMS 30
@@ -100,6 +102,7 @@
#define FIRE_PRIORITY_PROCESS 25
#define FIRE_PRIORITY_THROWING 25
#define FIRE_PRIORITY_SPACEDRIFT 30
#define FIRE_PRIORITY_INSTRUMENTS 30
#define FIRE_PRIORITY_FIELDS 30
#define FIRE_PRIOTITY_SMOOTHING 35
#define FIRE_PRIORITY_NETWORKS 40
+6
View File
@@ -147,6 +147,7 @@
#define TRAIT_NOPULSE "nopulse" // Your heart doesn't beat.
#define TRAIT_EXEMPT_HEALTH_EVENTS "exempt-health-events"
#define TRAIT_NO_MIDROUND_ANTAG "no-midround-antag" //can't be turned into an antag by random events
#define TRAIT_PASSTABLE "passtable"
// 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)
@@ -173,6 +174,9 @@
//non-mob traits
#define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it
#define VEHICLE_TRAIT "vehicle" // inherited from riding vehicles
#define INNATE_TRAIT "innate"
// item traits
#define TRAIT_NODROP "nodrop"
@@ -212,6 +216,7 @@
#define TRAIT_NO_TELEPORT "no-teleport" //you just can't
#define TRAIT_NO_INTERNALS "no-internals"
#define TRAIT_NO_ALCOHOL "alcohol_intolerance"
#define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing.
// common trait sources
#define TRAIT_GENERIC "generic"
@@ -236,6 +241,7 @@
#define APHRO_TRAIT "aphro"
#define BLOODSUCKER_TRAIT "bloodsucker"
#define CLOTHING_TRAIT "clothing" //used for quirky carrygloves
#define SHOES_TRAIT "shoes" //inherited from your sweet kicks
// unique trait sources, still defines
#define STATUE_MUTE "statue"
+12
View File
@@ -5,6 +5,11 @@
#define MAJORITY_JUDGEMENT_VOTING 4
#define INSTANT_RUNOFF_VOTING 5
#define SHOW_RESULTS (1<<0)
#define SHOW_VOTES (1<<1)
#define SHOW_WINNER (1<<2)
#define SHOW_ABSTENTION (1<<3)
GLOBAL_LIST_INIT(vote_score_options,list("Bad","Poor","Acceptable","Good","Great"))
GLOBAL_LIST_INIT(vote_type_names,list(\
@@ -15,3 +20,10 @@ GLOBAL_LIST_INIT(vote_type_names,list(\
"Raw Score (returns results from 0 to 1, winner is 1)" = SCORE_VOTING,\
"Majority Judgement (single-winner score voting)" = MAJORITY_JUDGEMENT_VOTING,\
))
GLOBAL_LIST_INIT(display_vote_settings, list(\
"Results" = SHOW_RESULTS,
"Ongoing Votes" = SHOW_VOTES,
"Winner" = SHOW_WINNER,
"Abstainers" = SHOW_ABSTENTION
))
+102
View File
@@ -19,3 +19,105 @@
#define VV_RESTORE_DEFAULT "Restore to Default"
#define VV_MARKED_DATUM "Marked Datum"
#define VV_BITFIELD "Bitfield"
#define VV_TEXT_LOCATE "Custom Reference Locate"
#define VV_PROCCALL_RETVAL "Return Value of Proccall"
#define VV_MSG_MARKED "<br><font size='1' color='red'><b>Marked Object</b></font>"
#define VV_MSG_EDITED "<br><font size='1' color='red'><b>Var Edited</b></font>"
#define VV_MSG_DELETED "<br><font size='1' color='red'><b>Deleted</b></font>"
#define VV_NORMAL_LIST_NO_EXPAND_THRESHOLD 50
#define VV_SPECIAL_LIST_NO_EXPAND_THRESHOLD 150
//#define IS_VALID_ASSOC_KEY(V) (istext(V) || ispath(V) || isdatum(V) || islist(V))
#define IS_VALID_ASSOC_KEY(V) (!isnum(V)) //hhmmm..
//General helpers
#define VV_HREF_TARGET_INTERNAL(target, href_key) "?_src_=vars;[HrefToken()];[href_key]=TRUE;[VV_HK_TARGET]=[REF(target)]"
#define VV_HREF_TARGETREF_INTERNAL(targetref, href_key) "?_src_=vars;[HrefToken()];[href_key]=TRUE;[VV_HK_TARGET]=[targetref]"
#define VV_HREF_TARGET(target, href_key, text) "<a href='[VV_HREF_TARGET_INTERNAL(target, href_key)]'>[text]</a>"
#define VV_HREF_TARGETREF(targetref, href_key, text) "<a href='[VV_HREF_TARGETREF_INTERNAL(targetref, href_key)]'>[text]</a>"
#define VV_HREF_TARGET_1V(target, href_key, text, varname) "<a href='[VV_HREF_TARGET_INTERNAL(target, href_key)];[VV_HK_VARNAME]=[varname]'>[text]</a>" //for stuff like basic varedits, one variable
#define VV_HREF_TARGETREF_1V(targetref, href_key, text, varname) "<a href='[VV_HREF_TARGETREF_INTERNAL(targetref, href_key)];[VV_HK_VARNAME]=[varname]'>[text]</a>"
#define GET_VV_TARGET locate(href_list[VV_HK_TARGET])
#define GET_VV_VAR_TARGET href_list[VV_HK_VARNAME]
//Helper for getting something to vv_do_topic in general
#define VV_TOPIC_LINK(datum, href_key, text) "<a href='?_src_=vars;[HrefToken()];[href_key]=TRUE;target=[REF(datum)]'>text</a>"
//Helpers for vv_get_dropdown()
#define VV_DROPDOWN_OPTION(href_key, name) . += "<option value='?_src_=vars;[HrefToken()];[href_key]=TRUE;target=[REF(src)]'>[name]</option>"
// VV HREF KEYS
#define VV_HK_TARGET "target"
#define VV_HK_VARNAME "targetvar" //name or index of var for 1 variable targetting hrefs.
// vv_do_list() keys
#define VV_HK_LIST_ADD "listadd"
#define VV_HK_LIST_EDIT "listedit"
#define VV_HK_LIST_CHANGE "listchange"
#define VV_HK_LIST_REMOVE "listremove"
#define VV_HK_LIST_ERASE_NULLS "listnulls"
#define VV_HK_LIST_ERASE_DUPES "listdupes"
#define VV_HK_LIST_SHUFFLE "listshuffle"
#define VV_HK_LIST_SET_LENGTH "listlen"
// vv_do_basic() keys
#define VV_HK_BASIC_EDIT "datumedit"
#define VV_HK_BASIC_CHANGE "datumchange"
#define VV_HK_BASIC_MASSEDIT "massedit"
// /datum
#define VV_HK_DELETE "delete"
#define VV_HK_EXPOSE "expose"
#define VV_HK_CALLPROC "proc_call"
#define VV_HK_MARK "mark"
#define VV_HK_MODIFY_TRAITS "modtraits"
// /atom
#define VV_HK_MODIFY_TRANSFORM "atom_transform"
#define VV_HK_ADD_REAGENT "addreagent"
#define VV_HK_TRIGGER_EMP "empulse"
#define VV_HK_TRIGGER_EXPLOSION "explode"
#define VV_HK_AUTO_RENAME "auto_rename"
// /obj
#define VV_HK_OSAY "osay"
#define VV_HK_MASS_DEL_TYPE "mass_delete_type"
#define VV_HK_ARMOR_MOD "mod_obj_armor"
// /mob
#define VV_HK_GIB "gib"
#define VV_HK_GIVE_SPELL "give_spell"
#define VV_HK_REMOVE_SPELL "remove_spell"
#define VV_HK_GIVE_DISEASE "give_disease"
#define VV_HK_GODMODE "godmode"
#define VV_HK_DROP_ALL "dropall"
#define VV_HK_REGEN_ICONS "regen_icons"
#define VV_HK_PLAYER_PANEL "player_panel"
#define VV_HK_BUILDMODE "buildmode"
#define VV_HK_DIRECT_CONTROL "direct_control"
#define VV_HK_OFFER_GHOSTS "offer_ghosts"
// /mob/living/carbon
#define VV_HK_MAKE_AI "aiify"
#define VV_HK_MODIFY_BODYPART "mod_bodypart"
#define VV_HK_MODIFY_ORGANS "organs_modify"
#define VV_HK_HALLUCINATION "force_hallucinate"
#define VV_HK_MARTIAL_ART "give_martial_art"
#define VV_HK_GIVE_TRAUMA "give_trauma"
#define VV_HK_CURE_TRAUMA "cure_trauma"
// /mob/living/carbon/human
#define VV_HK_COPY_OUTFIT "copy_outfit"
#define VV_HK_MOD_QUIRKS "quirkmod"
#define VV_HK_MAKE_MONKEY "human_monkify"
#define VV_HK_MAKE_CYBORG "human_cyborgify"
#define VV_HK_MAKE_SLIME "human_slimeify"
#define VV_HK_MAKE_ALIEN "human_alienify"
#define VV_HK_SET_SPECIES "setspecies"
#define VV_HK_PURRBATION "purrbation"
// misc
#define VV_HK_SPACEVINE_PURGE "spacevine_purge"
+4 -5
View File
@@ -58,14 +58,13 @@ GLOBAL_LIST_EMPTY(ipc_antennas_list)
//Genitals and Arousal Lists
GLOBAL_LIST_EMPTY(genitals_list)
GLOBAL_LIST_EMPTY(cock_shapes_list)
GLOBAL_LIST_EMPTY(gentlemans_organ_names)
GLOBAL_LIST_EMPTY(balls_shapes_list)
GLOBAL_LIST_EMPTY(breasts_shapes_list)
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"))
GLOBAL_LIST_INIT(cum_id_list,"semen")
GLOBAL_LIST_INIT(milk_id_list,"milk")
//longcat memes.
GLOBAL_LIST_INIT(dick_nouns, list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "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"))
GLOBAL_LIST_INIT(genitals_visibility_toggles, list(GEN_VISIBLE_ALWAYS, GEN_VISIBLE_NO_CLOTHES, GEN_VISIBLE_NO_UNDIES, GEN_VISIBLE_NEVER))
GLOBAL_LIST_INIT(dildo_shapes, list(
"Human" = "human",
-5
View File
@@ -54,11 +54,6 @@
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.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/gpath in subtypesof(/obj/item/organ/genital))
var/obj/item/organ/genital/G = gpath
+18 -7
View File
@@ -184,8 +184,8 @@
"cock_length" = COCK_SIZE_DEF,
"cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF,
"cock_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
"cock_taur" = FALSE,
"has_balls" = FALSE,
"balls_internal" = FALSE,
"balls_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
"balls_size" = BALLS_SIZE_DEF,
"balls_shape" = DEF_BALLS_SHAPE,
@@ -200,13 +200,11 @@
"has_vag" = FALSE,
"vag_shape" = pick(GLOB.vagina_shapes_list),
"vag_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
"vag_clits" = 1,
"vag_clit_diam" = 0.25,
"vag_clit_len" = 0.25,
"has_womb" = FALSE,
"womb_cum_rate" = CUM_RATE,
"womb_cum_mult" = CUM_RATE_MULT,
"womb_efficiency" = CUM_EFFICIENCY,
"balls_visibility" = GEN_VISIBLE_NO_UNDIES,
"breasts_visibility"= GEN_VISIBLE_NO_UNDIES,
"cock_visibility" = GEN_VISIBLE_NO_UNDIES,
"vag_visibility" = GEN_VISIBLE_NO_UNDIES,
"ipc_screen" = snowflake_ipc_antenna_list ? pick(snowflake_ipc_antenna_list) : "None",
"ipc_antenna" = "None",
"flavor_text" = "",
@@ -582,3 +580,16 @@ GLOBAL_LIST_EMPTY(species_list)
chosen = pick(mob_spawn_meancritters)
var/mob/living/simple_animal/C = new chosen(spawn_location)
return C
/proc/passtable_on(target, source)
var/mob/living/L = target
if(!HAS_TRAIT(L, TRAIT_PASSTABLE) && L.pass_flags & PASSTABLE)
ADD_TRAIT(L, TRAIT_PASSTABLE, INNATE_TRAIT)
ADD_TRAIT(L, TRAIT_PASSTABLE, source)
L.pass_flags |= PASSTABLE
/proc/passtable_off(target, source)
var/mob/living/L = target
REMOVE_TRAIT(L, TRAIT_PASSTABLE, source)
if(!HAS_TRAIT(L, TRAIT_PASSTABLE))
L.pass_flags &= ~PASSTABLE
+3 -3
View File
@@ -320,8 +320,8 @@
parts += "[FOURSPACES]<i>Nobody died this shift!</i>"
if(istype(SSticker.mode, /datum/game_mode/dynamic))
var/datum/game_mode/dynamic/mode = SSticker.mode
parts += "[FOURSPACES]Threat level: [mode.threat_level]"
parts += "[FOURSPACES]Threat left: [mode.threat]"
parts += "[FOURSPACES]Final threat level: [mode.threat_level]"
parts += "[FOURSPACES]Final threat: [mode.threat]"
parts += "[FOURSPACES]Executed rules:"
for(var/datum/dynamic_ruleset/rule in mode.executed_rules)
parts += "[FOURSPACES][FOURSPACES][rule.ruletype] - <b>[rule.name]</b>: -[rule.cost + rule.scaled_times * rule.scaling_cost] threat"
@@ -331,7 +331,7 @@
for(var/entry in mode.threat_tallies)
parts += "[FOURSPACES][FOURSPACES][entry] added [mode.threat_tallies[entry]]"
SSblackbox.record_feedback("tally","dynamic_threat",mode.threat_level,"Final threat level")
SSblackbox.record_feedback("tally","dynamic_threat",mode.threat,"Threat left")
SSblackbox.record_feedback("tally","dynamic_threat",mode.threat,"Final Threat")
return parts.Join("<br>")
/client/proc/roundend_report_file()
+2 -1
View File
@@ -25,7 +25,8 @@ GLOBAL_VAR_INIT(midnight_rollovers, 0)
GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0)
/proc/update_midnight_rollover()
if (world.timeofday < GLOB.rollovercheck_last_timeofday) //TIME IS GOING BACKWARDS!
return GLOB.midnight_rollovers++
GLOB.midnight_rollovers++
GLOB.rollovercheck_last_timeofday = world.timeofday
return GLOB.midnight_rollovers
/proc/weekdayofthemonth()
+60
View File
@@ -0,0 +1,60 @@
/proc/make_types_fancy(var/list/types)
if (ispath(types))
types = list(types)
. = list()
for(var/type in types)
var/typename = "[type]"
var/static/list/TYPES_SHORTCUTS = list(
/obj/effect/decal/cleanable = "CLEANABLE",
/obj/item/radio/headset = "HEADSET",
/obj/item/clothing/head/helmet/space = "SPESSHELMET",
/obj/item/book/manual = "MANUAL",
/obj/item/reagent_containers/food/drinks = "DRINK", //longest paths comes first
/obj/item/reagent_containers/food = "FOOD",
/obj/item/reagent_containers = "REAGENT_CONTAINERS",
/obj/machinery/atmospherics = "ATMOS_MECH",
/obj/machinery/portable_atmospherics = "PORT_ATMOS",
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack = "MECHA_MISSILE_RACK",
/obj/item/mecha_parts/mecha_equipment = "MECHA_EQUIP",
/obj/item/organ = "ORGAN",
/obj/item = "ITEM",
/obj/machinery = "MACHINERY",
/obj/effect = "EFFECT",
/obj = "O",
/datum = "D",
/turf/open = "OPEN",
/turf/closed = "CLOSED",
/turf = "T",
/mob/living/carbon = "CARBON",
/mob/living/simple_animal = "SIMPLE",
/mob/living = "LIVING",
/mob = "M"
)
for (var/tn in TYPES_SHORTCUTS)
if (copytext(typename,1, length("[tn]/")+1)=="[tn]/" /*findtextEx(typename,"[tn]/",1,2)*/ )
typename = TYPES_SHORTCUTS[tn]+copytext(typename,length("[tn]/"))
break
.[typename] = type
/proc/get_fancy_list_of_atom_types()
var/static/list/pre_generated_list
if (!pre_generated_list) //init
pre_generated_list = make_types_fancy(typesof(/atom))
return pre_generated_list
/proc/get_fancy_list_of_datum_types()
var/static/list/pre_generated_list
if (!pre_generated_list) //init
pre_generated_list = make_types_fancy(sortList(typesof(/datum) - typesof(/atom)))
return pre_generated_list
/proc/filter_fancy_list(list/L, filter as text)
var/list/matches = new
for(var/key in L)
var/value = L[key]
if(findtext("[key]", filter) || findtext("[value]", filter))
matches[key] = value
return matches
+1 -1
View File
@@ -14,7 +14,7 @@ GLOBAL_VAR_INIT(fileaccess_timer, 0)
GLOBAL_DATUM_INIT(data_core, /datum/datacore, new)
GLOBAL_VAR_INIT(CELLRATE, 0.002) // conversion ratio between a watt-tick and kilojoule
GLOBAL_VAR_INIT(CELLRATE, 0.002) // conversion ratio between a watt-tick and kilojoule, dimensionless, kilojoules/watt-tick
GLOBAL_VAR_INIT(CHARGELEVEL, 0.001) // Cap for how fast cells charge, as a percentage-per-tick (.001 means cellcharge is capped to 1% per second)
GLOBAL_LIST_EMPTY(powernets)
+1
View File
@@ -49,6 +49,7 @@
message_admins("[ADMIN_LOOKUPFLW(src)] might be running a modified client! (failed can_see on AI click of [A] (Turf Loc: [ADMIN_VERBOSEJMP(pixel_turf)]))")
var/message = "[key_name(src)] might be running a modified client! (failed can_see on AI click of [A] (Turf Loc: [AREACOORD(pixel_turf)]))"
log_admin(message)
to_chat(src, "<span class='warning'>You're experiencing a bug. Reconnect immediately to fix it. Admins have been notified.</span>")
if(REALTIMEOFDAY >= chnotify + 9000)
chnotify = REALTIMEOFDAY
send2irc_adminless_only("NOCHEAT", message)
+2 -2
View File
@@ -155,10 +155,10 @@
else
if(ismob(A))
changeNext_move(CLICK_CD_MELEE)
UnarmedAttack(A,1)
UnarmedAttack(A, 1)
else
if(W)
W.afterattack(A,src,0,params)
W.ranged_attack_chain(src, A, params)
else
RangedAttack(A,params)
+11
View File
@@ -163,3 +163,14 @@
#define ui_ghost_reenter_corpse "SOUTH:6,CENTER:24"
#define ui_ghost_teleport "SOUTH:6,CENTER+1:24"
#define ui_ghost_pai "SOUTH: 6, CENTER+2:24"
//UI position overrides for 1:1 screen layout. (default is 7:5)
#define ui_stamina "EAST-1:28,CENTER:17" // replacing internals button
#define ui_overridden_resist "EAST-3:24,SOUTH+1:7"
#define ui_combat_toggle "EAST-4:22,SOUTH:5"
#define ui_boxcraft "EAST-4:22,SOUTH+1:6"
#define ui_boxarea "EAST-4:6,SOUTH+1:6"
#define ui_boxlang "EAST-5:22,SOUTH+1:6"
#define ui_boxvore "EAST-5:22,SOUTH+1:6"
+51
View File
@@ -16,6 +16,7 @@
//Trust me, you need one. Period. If you don't think you do, you're doing something extremely wrong.
/obj/screen/plane_master/proc/backdrop(mob/mymob)
///Things rendered on "openspace"; holes in multi-z
/obj/screen/plane_master/openspace
name = "open space plane master"
plane = FLOOR_OPENSPACE_PLANE
@@ -38,12 +39,14 @@
/obj/screen/plane_master/proc/clear_filters()
filters = list()
///Contains just the floor
/obj/screen/plane_master/floor
name = "floor plane master"
plane = FLOOR_PLANE
appearance_flags = PLANE_MASTER
blend_mode = BLEND_OVERLAY
///Contains most things in the game world
/obj/screen/plane_master/game_world
name = "game world plane master"
plane = GAME_PLANE
@@ -57,12 +60,60 @@
remove_filter("ambient_occlusion")
update_filters()
///Contains all lighting objects
/obj/screen/plane_master/lighting
name = "lighting plane master"
plane = LIGHTING_PLANE
blend_mode = BLEND_MULTIPLY
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
/obj/screen/plane_master/lighting/Initialize()
. = ..()
filters += filter(type="alpha", render_source=EMISSIVE_RENDER_TARGET, flags=MASK_INVERSE)
filters += filter(type="alpha", render_source=EMISSIVE_UNBLOCKABLE_RENDER_TARGET, flags=MASK_INVERSE)
/**
* Things placed on this mask the lighting plane. Doesn't render directly.
*
* Gets masked by blocking plane. Use for things that you want blocked by
* mobs, items, etc.
*/
/obj/screen/plane_master/emissive
name = "emissive plane master"
plane = EMISSIVE_PLANE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
render_target = EMISSIVE_RENDER_TARGET
/obj/screen/plane_master/emissive/Initialize()
. = ..()
filters += filter(type="alpha", render_source=EMISSIVE_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE)
/**
* Things placed on this always mask the lighting plane. Doesn't render directly.
*
* Always masks the light plane, isn't blocked by anything. Use for on mob glows,
* magic stuff, etc.
*/
/obj/screen/plane_master/emissive_unblockable
name = "unblockable emissive plane master"
plane = EMISSIVE_UNBLOCKABLE_PLANE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
render_target = EMISSIVE_UNBLOCKABLE_RENDER_TARGET
/**
* Things placed on this layer mask the emissive layer. Doesn't render directly
*
* You really shouldn't be directly using this, use atom helpers instead
*/
/obj/screen/plane_master/emissive_unblockable
name = "emissive mob plane master"
plane = EMISSIVE_BLOCKER_PLANE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
render_target = EMISSIVE_BLOCKER_RENDER_TARGET
///Contains space parallax
/obj/screen/plane_master/parallax
name = "parallax plane master"
plane = PLANE_SPACE_PARALLAX
+44 -4
View File
@@ -8,12 +8,15 @@
*afterattack. The return value does not matter.
*/
/obj/item/proc/melee_attack_chain(mob/user, atom/target, params)
if(item_flags & NO_ATTACK_CHAIN_SOFT_STAMCRIT)
if(isliving(user))
var/mob/living/L = user
if(isliving(user))
var/mob/living/L = user
if(item_flags & NO_ATTACK_CHAIN_SOFT_STAMCRIT)
if(IS_STAMCRIT(L))
to_chat(L, "<span class='warning'>You are too exhausted to swing [src]!</span>")
return
if(!CHECK_MOBILITY(L, MOBILITY_USE))
to_chat(L, "<span class='warning'>You are unable to swing [src] right now!</span>")
return
if(tool_behaviour && target.tool_act(user, src, tool_behaviour))
return
if(pre_attack(target, user, params))
@@ -24,6 +27,15 @@
return
afterattack(target, user, TRUE, params)
/// Like melee_attack_chain but for ranged.
/obj/item/proc/ranged_attack_chain(mob/user, atom/target, params)
if(isliving(user))
var/mob/living/L = user
if(!CHECK_MOBILITY(L, MOBILITY_USE))
to_chat(L, "<span class='warning'>You are unable to raise [src] right now!</span>")
return
afterattack(target, user, FALSE, 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)
if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_SELF, user) & COMPONENT_NO_INTERACT)
@@ -50,7 +62,6 @@
user.changeNext_move(CLICK_CD_MELEE)
return I.attack(src, user)
/obj/item/proc/attack(mob/living/M, mob/living/user)
if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user) & COMPONENT_ITEM_NO_ATTACK)
return
@@ -117,6 +128,7 @@
if((user != src) && run_block(I, totitemdamage, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user) & BLOCK_SUCCESS)
return FALSE
send_item_attack_message(I, user)
I.do_stagger_action(src, 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))
@@ -166,5 +178,33 @@
playsound(src, 'sound/weapons/dink.ogg', 30, 1)
return 1
/// How much stamina this takes to swing this is not for realism purposes hecc off.
/obj/item/proc/getweight()
return total_mass || w_class * 1.25
/// How long this staggers for. 0 and negatives supported.
/obj/item/proc/melee_stagger_duration()
if(!isnull(stagger_force))
return stagger_force
/// totally not an untested, arbitrary equation.
return clamp((1.5 + (w_class/7.5)) * (force / 2), 0, 10 SECONDS)
/obj/item/proc/do_stagger_action(mob/living/target, mob/living/user)
if(!CHECK_BITFIELD(target.status_flags, CANSTAGGER))
return FALSE
if(target.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)
target.do_staggered_animation()
var/duration = melee_stagger_duration()
if(!duration) //0
return FALSE
else if(duration > 0)
target.Stagger(duration)
else //negative
target.AdjustStaggered(duration)
return TRUE
/mob/proc/do_staggered_animation()
set waitfor = FALSE
animate(src, pixel_x = -2, pixel_y = -2, time = 1, flags = ANIMATION_RELATIVE | ANIMATION_PARALLEL)
animate(pixel_x = 4, pixel_y = 4, time = 1, flags = ANIMATION_RELATIVE)
animate(pixel_x = -2, pixel_y = -2, time = 0.5, flags = ANIMATION_RELATIVE)
@@ -368,12 +368,16 @@
var/list/datum/dynamic_storyteller/runnable_storytellers = new
var/list/probabilities = Get(/datum/config_entry/keyed_list/storyteller_weight)
var/list/repeated_mode_adjust = Get(/datum/config_entry/number_list/repeated_mode_adjust)
var/list/min_player_counts = Get(/datum/config_entry/keyed_list/storyteller_min_players)
for(var/T in storyteller_cache)
var/datum/dynamic_storyteller/S = T
var/config_tag = initial(S.config_tag)
var/probability = (config_tag in probabilities) ? probabilities[config_tag] : initial(S.weight)
var/min_players = (config_tag in min_player_counts) ? min_player_counts[config_tag] : initial(S.min_players)
if(probability <= 0)
continue
if(length(GLOB.player_list) < min_players)
continue
if(SSpersistence.saved_storytellers.len == repeated_mode_adjust.len)
var/name = initial(S.name)
var/recent_round = min(SSpersistence.saved_storytellers.Find(name),3)
@@ -92,3 +92,7 @@
/datum/config_entry/keyed_list/storyteller_weight
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_NUM
/datum/config_entry/keyed_list/storyteller_min_players
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_NUM
@@ -396,6 +396,14 @@
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_NUM
/datum/config_entry/keyed_list/job_threat
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_NUM
/datum/config_entry/keyed_list/antag_threat
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_NUM
/datum/config_entry/number/monkeycap
config_entry_value = 64
min_val = 0
@@ -436,3 +444,8 @@
/datum/config_entry/number/penis_max_inches_prefs
config_entry_value = 20
min_val = 0
/datum/config_entry/keyed_list/safe_visibility_toggles
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_FLAG
config_entry_value = list(GEN_VISIBLE_NO_CLOTHES, GEN_VISIBLE_NO_UNDIES, GEN_VISIBLE_NEVER) //refer to cit_helpers for all toggles.
+2 -1
View File
@@ -66,6 +66,7 @@ SUBSYSTEM_DEF(job)
/datum/controller/subsystem/job/proc/GetJob(rank)
RETURN_TYPE(/datum/job)
if(!occupations.len)
SetupOccupations()
return name_occupations[rank]
@@ -738,4 +739,4 @@ SUBSYSTEM_DEF(job)
. |= player.mind
/datum/controller/subsystem/job/proc/JobDebug(message)
log_job_debug(message)
log_job_debug(message)
@@ -1,5 +1,4 @@
PROCESSING_SUBSYSTEM_DEF(chemistry)
wait = 5
flags = SS_KEEP_TIMING
name = "Chemistry"
@@ -0,0 +1,43 @@
PROCESSING_SUBSYSTEM_DEF(instruments)
name = "Instruments"
wait = 0.5
init_order = INIT_ORDER_INSTRUMENTS
flags = SS_KEEP_TIMING
priority = FIRE_PRIORITY_INSTRUMENTS
var/static/list/datum/instrument/instrument_data = list() //id = datum
var/static/list/datum/song/songs = list()
var/static/musician_maxlines = 600
var/static/musician_maxlinechars = 300
var/static/musician_hearcheck_mindelay = 5
var/static/max_instrument_channels = MAX_INSTRUMENT_CHANNELS
var/static/current_instrument_channels = 0
/datum/controller/subsystem/processing/instruments/Initialize()
initialize_instrument_data()
return ..()
/datum/controller/subsystem/processing/instruments/proc/on_song_new(datum/song/S)
songs += S
/datum/controller/subsystem/processing/instruments/proc/on_song_del(datum/song/S)
songs -= S
/datum/controller/subsystem/processing/instruments/proc/initialize_instrument_data()
for(var/path in subtypesof(/datum/instrument))
var/datum/instrument/I = path
if(initial(I.abstract_type) == path)
continue
I = new path
I.Initialize()
instrument_data[I.id || "[I.type]"] = I
CHECK_TICK
/datum/controller/subsystem/processing/instruments/proc/get_instrument(id_or_path)
return instrument_data["[id_or_path]"]
/datum/controller/subsystem/processing/instruments/proc/reserve_instrument_channel(datum/instrument/I)
if(current_instrument_channels > max_instrument_channels)
return
. = SSsounds.reserve_sound_channel(I)
if(!isnull(.))
current_instrument_channels++
@@ -37,11 +37,11 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
if(job?.blacklisted_quirks)
cut = filter_quirks(my_quirks, job.blacklisted_quirks)
for(var/V in my_quirks)
var/datum/quirk/Q = quirks[V]
if(Q)
if(V in quirks)
var/datum/quirk/Q = quirks[V]
user.add_quirk(Q, spawn_effects)
else
stack_trace("Invalid quirk \"[V]\" in client [cli.ckey] preferences")
log_admin("Invalid quirk \"[V]\" in client [cli.ckey] preferences")
cli.prefs.all_quirks -= V
badquirk = TRUE
if(badquirk)
@@ -1,3 +1,4 @@
PROCESSING_SUBSYSTEM_DEF(status_effects)
wait = 1
flags = SS_TICKER
name = "Status Effects"
+91
View File
@@ -0,0 +1,91 @@
#define DATUMLESS "NO_DATUM"
SUBSYSTEM_DEF(sounds)
name = "Sounds"
flags = SS_NO_FIRE
init_order = INIT_ORDER_SOUNDS
var/static/using_channels_max = CHANNEL_HIGHEST_AVAILABLE //BYOND max channels
// Hey uh these two needs to be initialized fast because the whole "things get deleted before init" thing.
/// Assoc list, "[channel]" = either the datum using it or TRUE for an unsafe-reserved (datumless reservation) channel
var/list/using_channels = list()
/// Assoc list datum = list(channel1, channel2, ...) for what channels something reserved.
var/list/using_channels_by_datum = list()
/// List of all available channels with associations set to TRUE for fast lookups/allocation.
var/list/available_channels
/datum/controller/subsystem/sounds/Initialize()
setup_available_channels()
return ..()
/datum/controller/subsystem/sounds/proc/setup_available_channels()
available_channels = list()
for(var/i in 1 to using_channels_max)
available_channels[num2text(i)] = TRUE
/// Removes a channel from using list.
/datum/controller/subsystem/sounds/proc/free_sound_channel(channel)
channel = num2text(channel)
var/using = using_channels[channel]
using_channels -= channel
if(using)
using_channels_by_datum[using] -= channel
if(!length(using_channels_by_datum[using]))
using_channels_by_datum -= using
available_channels[channel] = TRUE
/// Frees all the channels a datum is using.
/datum/controller/subsystem/sounds/proc/free_datum_channels(datum/D)
var/list/L = using_channels_by_datum[D]
if(!L)
return
for(var/channel in L)
using_channels -= channel
available_channels[channel] = TRUE
using_channels_by_datum -= D
/// Frees all datumless channels
/datum/controller/subsystem/sounds/proc/free_datumless_channels()
free_datum_channels(DATUMLESS)
/// NO AUTOMATIC CLEANUP - If you use this, you better manually free it later! Returns an integer for channel.
/datum/controller/subsystem/sounds/proc/reserve_sound_channel_datumless()
var/channel = random_available_channel_text()
if(!channel) //oh no..
return FALSE
available_channels -= channel
using_channels[channel] = DATUMLESS
LAZYINITLIST(using_channels_by_datum[DATUMLESS])
using_channels_by_datum[DATUMLESS] += channel
return text2num(channel)
/// Reserves a channel for a datum. Automatic cleanup only when the datum is deleted. Returns an integer for channel.
/datum/controller/subsystem/sounds/proc/reserve_sound_channel(datum/D)
if(!D) //i don't like typechecks but someone will fuck it up
CRASH("Attempted to reserve sound channel without datum using the managed proc.")
var/channel = random_available_channel_text()
if(!channel)
return FALSE
available_channels -= channel
using_channels[channel] = D
LAZYINITLIST(using_channels_by_datum[D])
using_channels_by_datum[D] += channel
return text2num(channel)
/// Random available channel, returns text.
/datum/controller/subsystem/sounds/proc/random_available_channel_text()
return pick(available_channels)
/// Random available channel, returns number
/datum/controller/subsystem/sounds/proc/random_available_channel()
return text2num(pick(available_channels))
/// If a channel is available
/datum/controller/subsystem/sounds/proc/is_channel_available(channel)
return available_channels[num2text(channel)]
/// How many channels we have left.
/datum/controller/subsystem/sounds/proc/available_channels_left()
return length(available_channels)
#undef DATUMLESS
+7 -7
View File
@@ -479,15 +479,15 @@ SUBSYSTEM_DEF(ticker)
var/vote_type = CONFIG_GET(string/map_vote_type)
switch(vote_type)
if("PLURALITY")
SSvote.initiate_vote("map","server",hideresults=TRUE)
SSvote.initiate_vote("map","server", display = SHOW_RESULTS)
if("APPROVAL")
SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = APPROVAL_VOTING)
SSvote.initiate_vote("map","server", display = SHOW_RESULTS, votesystem = APPROVAL_VOTING)
if("IRV")
SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = INSTANT_RUNOFF_VOTING)
SSvote.initiate_vote("map","server", display = SHOW_RESULTS, votesystem = INSTANT_RUNOFF_VOTING)
if("SCORE")
SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = MAJORITY_JUDGEMENT_VOTING)
SSvote.initiate_vote("map","server", display = SHOW_RESULTS, votesystem = MAJORITY_JUDGEMENT_VOTING)
else
SSvote.initiate_vote("map","server",hideresults=TRUE)
SSvote.initiate_vote("map","server", display = SHOW_RESULTS)
// fallback
/datum/controller/subsystem/ticker/proc/HasRoundStarted()
@@ -503,9 +503,9 @@ SUBSYSTEM_DEF(ticker)
SSticker.modevoted = TRUE
var/dynamic = CONFIG_GET(flag/dynamic_voting)
if(dynamic)
SSvote.initiate_vote("dynamic","server",hideresults=TRUE,votesystem=SCORE_VOTING,forced=TRUE,vote_time = 20 MINUTES)
SSvote.initiate_vote("dynamic", "server", display = NONE, votesystem = SCORE_VOTING, forced = TRUE,vote_time = 20 MINUTES)
else
SSvote.initiate_vote("roundtype","server",hideresults=TRUE,votesystem=PLURALITY_VOTING,forced=TRUE, \
SSvote.initiate_vote("roundtype", "server", display = NONE, votesystem = PLURALITY_VOTING, forced=TRUE, \
vote_time = (CONFIG_GET(flag/modetier_voting) ? 1 MINUTES : 20 MINUTES))
/datum/controller/subsystem/ticker/Recover()
+34 -15
View File
@@ -23,7 +23,7 @@ SUBSYSTEM_DEF(vote)
var/list/generated_actions = list()
var/next_pop = 0
var/obfuscated = FALSE//CIT CHANGE - adds obfuscated/admin-only votes
var/display_votes = SHOW_RESULTS|SHOW_VOTES|SHOW_WINNER|SHOW_ABSTENTION //CIT CHANGE - adds obfuscated/admin-only votes
var/list/stored_gamemode_votes = list() //Basically the last voted gamemode is stored here for end-of-round use.
@@ -59,7 +59,7 @@ SUBSYSTEM_DEF(vote)
voted.Cut()
voting.Cut()
scores.Cut()
obfuscated = FALSE //CIT CHANGE - obfuscated votes
display_votes = initial(display_votes) //CIT CHANGE - obfuscated votes
remove_action_buttons()
/datum/controller/subsystem/vote/proc/get_result()
@@ -250,7 +250,7 @@ SUBSYSTEM_DEF(vote)
if(winners.len > 0)
if(was_roundtype_vote)
stored_gamemode_votes = list()
if(!obfuscated)
if(display_votes & SHOW_RESULTS)
if(vote_system == SCHULZE_VOTING)
text += "\nIt should be noted that this is not a raw tally of votes (impossible in ranked choice) but the score determined by the schulze method of voting, so the numbers will look weird!"
if(vote_system == MAJORITY_JUDGEMENT_VOTING)
@@ -261,15 +261,15 @@ SUBSYSTEM_DEF(vote)
votes = 0
if(was_roundtype_vote)
stored_gamemode_votes[choices[i]] = votes
text += "\n<b>[choices[i]]:</b> [obfuscated ? "???" : votes]" //CIT CHANGE - adds obfuscated votes
text += "\n<b>[choices[i]]:</b> [display_votes & SHOW_RESULTS ? votes : "???"]" //CIT CHANGE - adds obfuscated votes
if(mode != "custom")
if(winners.len > 1 && !obfuscated) //CIT CHANGE - adds obfuscated votes
if(winners.len > 1 && display_votes & SHOW_WINNER) //CIT CHANGE - adds obfuscated votes
text = "\n<b>Vote Tied Between:</b>"
for(var/option in winners)
text += "\n\t[option]"
. = pick(winners)
text += "\n<b>Vote Result: [obfuscated ? "???" : .]</b>" //CIT CHANGE - adds obfuscated votes
else
text += "\n<b>Vote Result: [display_votes & SHOW_WINNER ? . : "???"]</b>" //CIT CHANGE - adds obfuscated votes
if(display_votes & SHOW_ABSTENTION)
text += "\n<b>Did not vote:</b> [GLOB.clients.len-voted.len]"
else if(vote_system == SCORE_VOTING)
for(var/score_name in scores)
@@ -278,7 +278,7 @@ SUBSYSTEM_DEF(vote)
score = 0
if(was_roundtype_vote)
stored_gamemode_votes[score_name] = score
text = "\n<b>[score_name]:</b> [obfuscated ? "???" : score]"
text = "\n<b>[score_name]:</b> [display_votes & SHOW_RESULTS ? score : "???"]"
. = 1
else
text += "<b>Vote Result: Inconclusive - No Votes!</b>"
@@ -295,7 +295,7 @@ SUBSYSTEM_DEF(vote)
if(islist(myvote))
for(var/j=1,j<=myvote.len,j++)
SSblackbox.record_feedback("nested tally","voting",1,list(vote_title_text,"[j]\th",choices[myvote[j]]))
if(obfuscated) //CIT CHANGE - adds obfuscated votes. this messages admins with the vote's true results
if(!(display_votes & SHOW_RESULTS)) //CIT CHANGE - adds obfuscated votes. this messages admins with the vote's true results
var/admintext = "Obfuscated results"
if(vote_system != SCORE_VOTING)
if(vote_system == SCHULZE_VOTING)
@@ -327,7 +327,7 @@ SUBSYSTEM_DEF(vote)
if(CONFIG_GET(flag/modetier_voting))
reset()
started_time = 0
initiate_vote("mode tiers","server",hideresults=FALSE,votesystem=SCORE_VOTING,forced=TRUE, vote_time = 30 MINUTES)
initiate_vote("mode tiers","server", votesystem=SCORE_VOTING, forced=TRUE, vote_time = 30 MINUTES)
to_chat(world,"<b>The vote will end right as the round starts.</b>")
return .
if("restart")
@@ -354,11 +354,15 @@ SUBSYSTEM_DEF(vote)
return message_admins("A vote has tried to change the gamemode, but the game has already started. Aborting.")
GLOB.master_mode = "dynamic"
var/list/runnable_storytellers = config.get_runnable_storytellers()
var/datum/dynamic_storyteller/picked
for(var/T in runnable_storytellers)
var/datum/dynamic_storyteller/S = T
if(stored_gamemode_votes[initial(S.name)] == 1 && CHECK_BITFIELD(initial(S.flags), FORCE_IF_WON))
picked = S
runnable_storytellers[S] *= round(stored_gamemode_votes[initial(S.name)]*100000,1)
var/datum/dynamic_storyteller/S = pickweightAllowZero(runnable_storytellers)
GLOB.dynamic_storyteller_type = S
if(!picked)
picked = pickweightAllowZero(runnable_storytellers)
GLOB.dynamic_storyteller_type = picked
if("map")
var/datum/map_config/VM = config.maplist[.]
message_admins("The map has been voted for and will change to: [VM.map_name]")
@@ -432,7 +436,7 @@ SUBSYSTEM_DEF(vote)
saved -= usr.ckey
return 0
/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key, hideresults, votesystem = PLURALITY_VOTING, forced = FALSE,vote_time = -1)//CIT CHANGE - adds hideresults argument to votes to allow for obfuscated votes
/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key, display = display_votes, votesystem = PLURALITY_VOTING, forced = FALSE,vote_time = -1)//CIT CHANGE - adds display argument to votes to allow for obfuscated votes
vote_system = votesystem
if(!mode)
if(started_time)
@@ -452,7 +456,7 @@ SUBSYSTEM_DEF(vote)
SEND_SOUND(world, sound('sound/misc/notice2.ogg'))
reset()
obfuscated = hideresults //CIT CHANGE - adds obfuscated votes
display_votes = display //CIT CHANGE - adds obfuscated votes
switch(vote_type)
if("restart")
choices.Add("Restart Round","Continue Playing")
@@ -503,6 +507,21 @@ SUBSYSTEM_DEF(vote)
if(!option || mode || !usr.client)
break
choices.Add(option)
var/keep_going = TRUE
var/toggles = SHOW_RESULTS|SHOW_VOTES|SHOW_WINNER
while(keep_going)
var/list/choices = list()
for(var/A in GLOB.display_vote_settings)
var/toggletext
var/bitflag = GLOB.display_vote_settings[A]
toggletext = "[toggles & bitflag ? "Show" : "Hide"] [A]"
choices[toggletext] = bitflag
var/chosen = input(usr, "Toggle vote display settings. Cancel to finalize.", toggles) as null|anything in choices
if(!chosen)
keep_going = FALSE
else
toggles ^= choices[chosen]
display_votes = toggles
else
return 0
mode = vote_type
@@ -573,7 +592,7 @@ SUBSYSTEM_DEF(vote)
ivotedforthis = ((C.ckey in voted) && (i in voted[C.ckey]))
if(!votes)
votes = 0
. += "<li>[ivotedforthis ? "<b>" : ""]<a href='?src=[REF(src)];vote=[i]'>[choices[i]]</a> ([obfuscated ? (admin ? "??? ([votes])" : "???") : votes] votes)[ivotedforthis ? "</b>" : ""]</li>" // CIT CHANGE - adds obfuscated votes
. += "<li>[ivotedforthis ? "<b>" : ""]<a href='?src=[REF(src)];vote=[i]'>[choices[i]]</a> ([display_votes & SHOW_VOTES ? votes : (admin ? "??? ([votes])" : "???")] votes)[ivotedforthis ? "</b>" : ""]</li>" // CIT CHANGE - adds obfuscated votes
if(choice_descs.len >= i)
. += "<li>[choice_descs[i]]</li>"
. += "</ul><hr>"
+1 -11
View File
@@ -302,16 +302,6 @@
name = "Toggle Friendly Fire \[ON\]"
..()
/datum/action/item_action/synthswitch
name = "Change Synthesizer Instrument"
desc = "Change the type of instrument your synthesizer is playing as."
/datum/action/item_action/synthswitch/Trigger()
if(istype(target, /obj/item/instrument/piano_synth))
var/obj/item/instrument/piano_synth/synth = target
return synth.selectInstrument()
return ..()
/datum/action/item_action/vortex_recall
name = "Vortex Recall"
desc = "Recall yourself, and anyone nearby, to an attuned hierophant beacon at any time.<br>If the beacon is still attached, will detach it."
@@ -659,7 +649,7 @@
return FALSE
var/obj/effect/proc_holder/spell/S = target
if(owner)
return S.can_cast(owner)
return S.can_cast(owner, FALSE, TRUE)
return FALSE
/datum/action/spell_action/alien
+17 -11
View File
@@ -9,8 +9,8 @@
var/max_distance = 0
var/sleep_time = 3
var/finished = 0
var/target_oldloc = null
var/origin_oldloc = null
var/turf/target_oldloc
var/turf/origin_oldloc
var/static_beam = 0
var/beam_type = /obj/effect/ebeam //must be subtype
var/timing_id = null
@@ -23,13 +23,13 @@
target_oldloc = get_turf(target)
sleep_time = beam_sleep_time
if(origin_oldloc == origin && target_oldloc == target)
static_beam = 1
static_beam = TRUE
max_distance = maxdistance
base_icon = new(beam_icon,beam_icon_state)
icon = beam_icon
icon_state = beam_icon_state
beam_type = btype
if(time < INFINITY)
if(time < INFINITY)
addtimer(CALLBACK(src,.proc/End), time)
/datum/beam/proc/Start()
@@ -42,10 +42,14 @@
return
recalculating = TRUE
timing_id = null
if(origin && target && get_dist(origin,target)<max_distance && origin.z == target.z)
var/origin_turf = get_turf(origin)
var/target_turf = get_turf(target)
if(!static_beam && (origin_turf != origin_oldloc || target_turf != target_oldloc))
var/turf/origin_turf
if(origin)
origin_turf = get_turf(origin)
var/turf/target_turf
if(target)
target_turf = get_turf(target)
if(origin_turf && target_turf && (get_dist(origin_turf, target_turf) < max_distance) && (origin_turf.z == target_turf.z))
if(!static_beam && ((origin_turf != origin_oldloc) || (target_turf != target_oldloc)))
origin_oldloc = origin_turf //so we don't keep checking against their initial positions, leading to endless Reset()+Draw() calls
target_oldloc = target_turf
Reset()
@@ -90,13 +94,15 @@
return ..()
/datum/beam/proc/Draw()
var/Angle = round(Get_Angle(origin,target))
if(!origin_oldloc || !target_oldloc)
return
var/Angle = round(Get_Angle(origin_oldloc,target_oldloc))
var/matrix/rot_matrix = matrix()
rot_matrix.Turn(Angle)
//Translation vector for origin and target
var/DX = (32*target.x+target.pixel_x)-(32*origin.x+origin.pixel_x)
var/DY = (32*target.y+target.pixel_y)-(32*origin.y+origin.pixel_y)
var/DX = (32*target_oldloc.x+target_oldloc.pixel_x)-(32*origin_oldloc.x+origin_oldloc.pixel_x)
var/DY = (32*target_oldloc.y+target_oldloc.pixel_y)-(32*origin_oldloc.y+origin_oldloc.pixel_y)
var/N = 0
var/length = round(sqrt((DX)**2+(DY)**2)) //hypotenuse of the triangle formed by target and origin's displacement
+9 -12
View File
@@ -20,6 +20,7 @@
..()
make_backseats()
get_ghost()
RegisterSignal(M, COMSIG_MOB_DEATH, .proc/revert_to_normal)
/datum/brain_trauma/severe/split_personality/proc/make_backseats()
stranger_backseat = new(owner, src)
@@ -37,23 +38,23 @@
qdel(src)
/datum/brain_trauma/severe/split_personality/on_life()
if(owner.stat == DEAD)
if(current_controller != OWNER)
switch_personalities()
qdel(src)
else if(prob(3))
if(prob(3))
switch_personalities()
..()
/datum/brain_trauma/severe/split_personality/on_lose()
if(current_controller != OWNER) //it would be funny to cure a guy only to be left with the other personality, but it seems too cruel
switch_personalities()
switch_personalities(TRUE)
QDEL_NULL(stranger_backseat)
QDEL_NULL(owner_backseat)
UnregisterSignal(owner, COMSIG_MOB_DEATH)
..()
/datum/brain_trauma/severe/split_personality/proc/switch_personalities()
if(QDELETED(owner) || owner.stat == DEAD || QDELETED(stranger_backseat) || QDELETED(owner_backseat))
/datum/brain_trauma/severe/split_personality/proc/revert_to_normal()
qdel(src)
/datum/brain_trauma/severe/split_personality/proc/switch_personalities(forced = FALSE)
if(QDELETED(owner) || (owner.stat == DEAD && !forced) || QDELETED(stranger_backseat) || QDELETED(owner_backseat))
return
var/mob/living/split_personality/current_backseat
@@ -126,10 +127,6 @@
if(QDELETED(body))
qdel(src) //in case trauma deletion doesn't already do it
if((body.stat == DEAD && trauma.owner_backseat == src))
trauma.switch_personalities()
qdel(trauma)
//if one of the two ghosts, the other one stays permanently
if(!body.client && trauma.initialized)
trauma.switch_personalities()
+2 -2
View File
@@ -72,9 +72,9 @@
return {"<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
[head_content]
</head>
<body scroll=auto>
+2
View File
@@ -8,6 +8,8 @@
var/obj/screen/craft/C = new()
C.icon = H.ui_style
H.static_inventory += C
if(!CL.prefs.widescreenpref)
C.screen_loc = ui_boxcraft
CL.screen += C
RegisterSignal(C, COMSIG_CLICK, .proc/component_ui_interact)
@@ -33,6 +33,13 @@
/obj/item/organ/ears/cat = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/papermask
name = "Paper Mask"
result = /obj/item/clothing/mask/paper
time = 10
reqs = list(/obj/item/paper = 20)
category = CAT_CLOTHING
////////
//Huds//
////////
+12 -4
View File
@@ -191,20 +191,28 @@
///////Yes, I said humans. No, this won't end well...//////////
/datum/component/riding/human
var/fireman_carrying = FALSE
/datum/component/riding/human/Initialize()
. = ..()
RegisterSignal(parent, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/on_host_unarmed_melee)
/datum/component/riding/human/vehicle_mob_unbuckle(datum/source, mob/living/M, force = FALSE)
var/mob/living/carbon/human/H = parent
H.remove_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING)
. = ..()
var/mob/living/carbon/human/H = parent
if(!length(H.buckled_mobs))
H.remove_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING)
if(!fireman_carrying)
M.Daze(25)
REMOVE_TRAIT(M, TRAIT_MOBILITY_NOUSE, src)
/datum/component/riding/human/vehicle_mob_buckle(datum/source, mob/living/M, force = FALSE)
. = ..()
var/mob/living/carbon/human/H = parent
H.add_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING, multiplicative_slowdown = HUMAN_CARRY_SLOWDOWN)
if(length(H.buckled_mobs))
H.add_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING, multiplicative_slowdown = fireman_carrying? FIREMAN_CARRY_SLOWDOWN : PIGGYBACK_CARRY_SLOWDOWN)
if(fireman_carrying)
ADD_TRAIT(M, TRAIT_MOBILITY_NOUSE, src)
/datum/component/riding/human/proc/on_host_unarmed_melee(atom/target)
var/mob/living/carbon/human/H = parent
@@ -236,11 +244,11 @@
else
return list(TEXT_NORTH = list(0, 6), TEXT_SOUTH = list(0, 6), TEXT_EAST = list(-6, 4), TEXT_WEST = list( 6, 4))
/datum/component/riding/human/force_dismount(mob/living/user)
var/atom/movable/AM = parent
AM.unbuckle_mob(user)
user.DefaultCombatKnockdown(60)
user.Daze(50)
user.visible_message("<span class='warning'>[AM] pushes [user] off of [AM.p_them()]!</span>")
/datum/component/riding/cyborg
+17 -2
View File
@@ -27,6 +27,8 @@ GLOBAL_LIST_EMPTY(uplinks)
var/datum/ui_state/checkstate
var/compact_mode = FALSE
var/debug = FALSE
var/saved_player_population = 0
var/list/filters = list()
/datum/component/uplink/Initialize(_owner, _lockable = TRUE, _enabled = FALSE, datum/game_mode/_gamemode, starting_tc = 20, datum/ui_state/_checkstate, datum/traitor_class/traitor_class)
if(!isitem(parent))
@@ -47,7 +49,6 @@ GLOBAL_LIST_EMPTY(uplinks)
RegisterSignal(parent, COMSIG_PEN_ROTATED, .proc/pen_rotation)
GLOB.uplinks += src
var/list/filters = list()
if(istype(traitor_class))
filters = traitor_class.uplink_filters
starting_tc = traitor_class.TC
@@ -68,6 +69,7 @@ GLOBAL_LIST_EMPTY(uplinks)
if(!lockable)
active = TRUE
locked = FALSE
saved_player_population = GLOB.joined_player_list.len
/datum/component/uplink/InheritComponent(datum/component/uplink/U)
lockable |= U.lockable
@@ -117,7 +119,18 @@ GLOBAL_LIST_EMPTY(uplinks)
return
active = TRUE
if(user)
//update the saved population
var/previous_player_population = saved_player_population
saved_player_population = GLOB.joined_player_list.len
//if population has changed, update uplink items
if(saved_player_population != previous_player_population)
//make sure discounts are not rerolled
var/old_discounts = uplink_items["Discounted Gear"]
uplink_items = get_uplink_items(gamemode, FALSE, allow_restricted, filters)
if(old_discounts)
uplink_items["Discounted Gear"] = old_discounts
ui_interact(user)
// an unlocked uplink blocks also opening the PDA or headset menu
return COMPONENT_NO_INTERACT
@@ -190,7 +203,9 @@ GLOBAL_LIST_EMPTY(uplinks)
if(item in buyable_items)
var/datum/uplink_item/I = buyable_items[item]
MakePurchase(usr, I)
//check to make sure people cannot buy items when the player pop is below the requirement
if(GLOB.joined_player_list.len >= I.player_minimum)
MakePurchase(usr, I)
. = TRUE
if("lock")
active = FALSE
+2
View File
@@ -109,6 +109,8 @@
UnregisterSignal(target, signal_procs[target])
//END: ECS SHIT
SSsounds.free_datum_channels(src)
return QDEL_HINT_QUEUE
#ifdef DATUMVAR_DEBUGGING_MODE
+23 -1378
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -412,13 +412,13 @@
switch(deconstruct_block(getblock(dna.uni_identity, DNA_GENDER_BLOCK), 4))
if(G_MALE)
set_gender(MALE, TRUE)
set_gender(MALE, TRUE, forced = TRUE)
if(G_FEMALE)
set_gender(FEMALE, TRUE)
set_gender(FEMALE, TRUE, forced = TRUE)
if(G_PLURAL)
set_gender(PLURAL, TRUE)
set_gender(PLURAL, TRUE, forced = TRUE)
else
set_gender(NEUTER, TRUE)
set_gender(NEUTER, TRUE, forced = TRUE)
/mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutations_overlay_update=0)
..()
+12 -2
View File
@@ -72,7 +72,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
var/atom/target = locate(href_list["show_flavor"])
var/text = texts_by_atom[target]
if(text)
usr << browse("<HTML><HEAD><TITLE>[target.name]</TITLE></HEAD><BODY><TT>[replacetext(texts_by_atom[target], "\n", "<BR>")]</TT></BODY></HTML>", "window=[target.name];size=500x200")
usr << browse("<HTML><HEAD><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><TITLE>[target.name]</TITLE></HEAD><BODY><TT>[replacetext(texts_by_atom[target], "\n", "<BR>")]</TT></BODY></HTML>", "window=[target.name];size=500x200")
onclose(usr, "[target.name]")
return TRUE
@@ -114,6 +114,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
//subtypes with additional hooks for DNA and preferences.
/datum/element/flavor_text/carbon
//list of antagonists etcetera that should have nothing to do with people's snowflakes.
var/static/list/i_dont_even_know_who_you_are = typecacheof(list(/datum/antagonist/abductor, /datum/antagonist/ert,
/datum/antagonist/nukeop, /datum/antagonist/wizard))
/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE)
if(!iscarbon(target))
@@ -122,6 +125,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
if(. == ELEMENT_INCOMPATIBLE)
return
RegisterSignal(target, COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, .proc/update_dna_flavor_text)
RegisterSignal(target, COMSIG_MOB_ANTAG_ON_GAIN, .proc/on_antag_gain)
if(ishuman(target))
RegisterSignal(target, COMSIG_HUMAN_PREFS_COPIED_TO, .proc/update_prefs_flavor_text)
RegisterSignal(target, COMSIG_HUMAN_HARDSET_DNA, .proc/update_dna_flavor_text)
@@ -129,7 +133,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
/datum/element/flavor_text/carbon/Detach(mob/living/carbon/C)
. = ..()
UnregisterSignal(C, list(COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, COMSIG_HUMAN_PREFS_COPIED_TO, COMSIG_HUMAN_HARDSET_DNA, COMSIG_HUMAN_ON_RANDOMIZE))
UnregisterSignal(C, list(COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, COMSIG_MOB_ANTAG_ON_GAIN, COMSIG_HUMAN_PREFS_COPIED_TO, COMSIG_HUMAN_HARDSET_DNA, COMSIG_HUMAN_ON_RANDOMIZE))
/datum/element/flavor_text/carbon/proc/update_dna_flavor_text(mob/living/carbon/C)
texts_by_atom[C] = C.dna.features["flavor_text"]
@@ -144,3 +148,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
/datum/element/flavor_text/carbon/proc/unset_flavor(mob/living/carbon/user)
texts_by_atom[user] = ""
/datum/element/flavor_text/carbon/proc/on_antag_gain(mob/living/carbon/user, datum/antagonist/antag)
if(is_type_in_typecache(antag, i_dont_even_know_who_you_are))
texts_by_atom[user] = ""
if(user.dna)
user.dna.features["flavor_text"] = ""
+17 -2
View File
@@ -1,15 +1,21 @@
/datum/element/ghost_role_eligibility
element_flags = ELEMENT_DETACH
element_flags = ELEMENT_DETACH | ELEMENT_BESPOKE
id_arg_index = 3
var/list/timeouts = list()
var/list/mob/eligible_mobs = list()
var/penalizing = FALSE
var/free_ghost = FALSE
/datum/element/ghost_role_eligibility/Attach(datum/target,penalize = FALSE)
/datum/element/ghost_role_eligibility/Attach(datum/target,penalize = FALSE,free_ghosting = FALSE, penalize_on_ghost = FALSE)
. = ..()
if(!ismob(target))
return ELEMENT_INCOMPATIBLE
penalizing = penalize_on_ghost
free_ghost = free_ghosting
var/mob/M = target
if(!(M in eligible_mobs))
eligible_mobs += M
RegisterSignal(M, COMSIG_MOB_GHOSTIZE, .proc/get_ghost_flags)
if(penalize) //penalizing them from making a ghost role / midround antag comeback right away.
var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) MINUTES
var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) MINUTES
@@ -32,6 +38,7 @@
. = ..()
if(M in eligible_mobs)
eligible_mobs -= M
UnregisterSignal(M, COMSIG_MOB_GHOSTIZE)
/datum/element/ghost_role_eligibility/proc/get_all_ghost_role_eligible(silent = FALSE)
var/list/candidates = list()
@@ -56,3 +63,11 @@
if(!silent && M.client)
to_chat(M, "<span class='warning'>You are unable to reenter the round[timeout != CANT_REENTER_ROUND ? " yet. Your ghost role blacklist will expire in [DisplayTimeText(timeout - world.realtime)]" : ""].</span>")
return FALSE
/datum/element/ghost_role_eligibility/proc/get_ghost_flags()
. = 0
if(!penalizing)
. |= COMPONENT_DO_NOT_PENALIZE_GHOSTING
if(free_ghost)
. |= COMPONENT_FREE_GHOSTING
return .
+6
View File
@@ -76,6 +76,7 @@
lefthand_file = 'icons/mob/animals_held_lh.dmi'
icon_state = ""
w_class = WEIGHT_CLASS_BULKY
dynamic_hair_suffix = ""
var/mob/living/held_mob
/obj/item/clothing/head/mob_holder/Initialize(mapload, mob/living/target, worn_state, alt_worn, right_hand, left_hand, slots = NONE)
@@ -162,6 +163,11 @@
L.visible_message("<span class='warning'>[held_mob] escapes from [L]!</span>", "<span class='warning'>[held_mob] escapes your grip!</span>")
release()
/obj/item/clothing/head/mob_holder/mob_can_equip(mob/living/M, mob/living/equipper, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE)
if(!ishuman(M)) //monkeys holding monkeys holding monkeys...
return FALSE
return ..()
/obj/item/clothing/head/mob_holder/assume_air(datum/gas_mixture/env)
var/atom/location = loc
if(!loc)
+54
View File
@@ -0,0 +1,54 @@
/datum/element/spellcasting //allows to cast certain spells or skip requirements.
element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH
id_arg_index = 2
var/cast_flags
var/cast_slots
var/list/users_by_item = list()
var/list/stacked_spellcasting_by_user = list()
/datum/element/spellcasting/Attach(datum/target, _flags, _slots)
. = ..()
if(isitem(target))
RegisterSignal(target, COMSIG_ITEM_EQUIPPED, .proc/on_equip)
RegisterSignal(target, COMSIG_ITEM_DROPPED, .proc/on_drop)
else if(ismob(target))
RegisterSignal(target, COMSIG_MOB_SPELL_CAST_CHECK, .proc/on_cast)
stacked_spellcasting_by_user[target]++
else
return ELEMENT_INCOMPATIBLE
cast_flags = _flags
cast_slots = _slots
/datum/element/spellcasting/Detach(datum/target)
. = ..()
UnregisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_MOB_SPELL_CAST_CHECK))
if(users_by_item[target])
var/mob/user = users_by_item[target]
stacked_spellcasting_by_user[user]--
if(!stacked_spellcasting_by_user[user])
stacked_spellcasting_by_user -= user
UnregisterSignal(user, COMSIG_MOB_SPELL_CAST_CHECK)
else if(ismob(target))
stacked_spellcasting_by_user[target]--
if(!stacked_spellcasting_by_user[target])
stacked_spellcasting_by_user -= target
/datum/element/spellcasting/proc/on_equip(datum/source, mob/equipper, slot)
if(!(slot in cast_slots))
return
users_by_item[source] = equipper
if(!stacked_spellcasting_by_user[equipper])
RegisterSignal(equipper, COMSIG_MOB_SPELL_CAST_CHECK, .proc/on_cast)
stacked_spellcasting_by_user[equipper]++
/datum/element/spellcasting/proc/on_drop(datum/source, mob/user)
if(!users_by_item[source])
return
users_by_item -= source
stacked_spellcasting_by_user[user]--
if(!stacked_spellcasting_by_user[user])
stacked_spellcasting_by_user -= user
UnregisterSignal(user, COMSIG_MOB_SPELL_CAST_CHECK)
/datum/element/spellcasting/proc/on_cast(mob/caster, obj/effect/proc_holder/spell)
return cast_flags
+1 -1
View File
@@ -15,4 +15,4 @@
/datum/element/sword_point/proc/point(datum/source, atom/target, mob/user, proximity_flag, params)
if(!proximity_flag && ismob(target))
user.visible_message("<span class='notice'>[user] points the tip of [source] at [target].</span>", "<span class='notice'>You point the tip of [src] at [target].</span>")
user.visible_message("<span class='notice'>[user] points the tip of [source] at [target].</span>", "<span class='notice'>You point the tip of [source] at [target].</span>")
+1 -1
View File
@@ -73,7 +73,7 @@
var/list/atoms_cache = output_atoms
var/sound/S = sound(soundfile)
if(direct)
S.channel = open_sound_channel()
S.channel = SSsounds.random_available_channel()
S.volume = volume
for(var/i in 1 to atoms_cache.len)
var/atom/thing = atoms_cache[i]
+1 -1
View File
@@ -37,7 +37,7 @@
D.apply_damage(damage, STAMINA, affecting, armor_block)
log_combat(A, D, "punched (boxing) ")
if(D.getStaminaLoss() > 100)
if(D.getStaminaLoss() > 100 && istype(D.mind?.martial_art, /datum/martial_art/boxing))
var/knockout_prob = (D.getStaminaLoss() + rand(-15,15))*0.75
if((D.stat != DEAD) && prob(knockout_prob))
D.visible_message("<span class='danger'>[A] has knocked [D] out with a haymaker!</span>", \
+2 -2
View File
@@ -63,11 +63,11 @@
playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, TRUE, -1)
if((D.mobility_flags & MOBILITY_STAND))
D.apply_damage(10, BRUTE, BODY_ZONE_HEAD)
D.DefaultCombatKnockdown(50)
D.DefaultCombatKnockdown(50, override_hardstun = 0.01, override_stamdmg = 0)
D.adjustStaminaLoss(40) //A cit specific change form the tg port to really punish anyone who tries to stand up
D.visible_message("<span class='warning'>[A] kicks [D] in the head, sending them face first into the floor!</span>", \
"<span class='userdanger'>You are kicked in the head by [A], sending you crashing to the floor!</span>", "<span class='hear'>You hear a sickening sound of flesh hitting flesh!</span>", COMBAT_MESSAGE_RANGE, A)
if(!(D.mobility_flags & MOBILITY_STAND))
else if(!(D.mobility_flags & MOBILITY_STAND))
D.apply_damage(5, BRUTE, BODY_ZONE_HEAD)
D.adjustStaminaLoss(40)
D.drop_all_held_items()
+20
View File
@@ -18,6 +18,8 @@
var/datum/action/drop/drop = new/datum/action/drop()
/datum/martial_art/wrestling/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
if(!can_use(A, D))
return 0
switch(streak)
if("drop")
streak = ""
@@ -448,6 +450,8 @@
/datum/martial_art/wrestling/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(check_streak(A,D))
return 1
if(!can_use(A,D))
return ..()
if(A.pulling == D || A == D) // don't stun grab yoursel
return FALSE
A.start_pulling(D)
@@ -476,3 +480,19 @@
if(H.get_item_by_slot(SLOT_BELT) == src)
style.remove(H)
return
//Subtype of wrestling, reserved for the wrestling belts found in the holodeck
/datum/martial_art/wrestling/holodeck
name = "Holodeck Wrestling"
/obj/item/storage/belt/champion/wrestling/holodeck
name = "Holodeck Wrestling Belt"
style = new /datum/martial_art/wrestling/holodeck
//Make sure that moves can only be used on people wearing the holodeck belt
/datum/martial_art/wrestling/holodeck/can_use(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
if(!(istype(D.mind?.martial_art, /datum/martial_art/wrestling/holodeck)))
return 0
else
return ..()
-1
View File
@@ -470,7 +470,6 @@
/datum/objective/steal,
/datum/objective/download,
/datum/objective/nuclear,
/datum/objective/capture,
/datum/objective/absorb,
/datum/objective/custom
)
+9
View File
@@ -31,6 +31,7 @@
//MUT_EXTRA - A mutation that is in the mutations tab, and can be given and taken away through though the DNA console. Has a 0 before it's name in the mutation section of the dna console
//MUT_OTHER Cannot be interacted with by players through normal means. I.E. wizards mutate
var/list/conflicts //any mutations that might conflict. put mutation typepath defines in here. make sure to enter it both ways (so that A conflicts with B, and B with A)
var/can_chromosome = CHROMOSOME_NONE //can we take chromosomes? 0: CHROMOSOME_NEVER never, 1:CHROMOSOME_NONE yeah, 2: CHROMOSOME_USED no, already have one
var/chromosome_name //purely cosmetic
var/modified = FALSE //ugly but we really don't want chromosomes and on_acquiring to overlap and apply double the powers
@@ -60,6 +61,14 @@
return TRUE
if(limb_req && !H.get_bodypart(limb_req))
return TRUE
for(var/M in H.dna.mutations)//check for conflicting powers
var/datum/mutation/human/mewtayshun = M
if(LAZYLEN(mewtayshun.conflicts))
for(var/cons in mewtayshun.conflicts)
var/datum/mutation/human/conflicter = cons
if(conflicter == type)
to_chat(H, "<span class='warning'>You feel your genes resisting something.</span>")
return TRUE
owner = H
dna = H.dna
dna.mutations += src
+7 -10
View File
@@ -41,7 +41,7 @@
desc = "You can breathe fire at a target."
school = "evocation"
charge_max = 600
clothes_req = FALSE
clothes_req = NONE
range = 20
base_icon_state = "fireball"
action_icon_state = "fireball0"
@@ -121,7 +121,7 @@
name = "Convoke Void" //magic the gathering joke here
desc = "A rare genome that attracts odd forces not usually observed. May sometimes pull you in randomly."
school = "evocation"
clothes_req = FALSE
clothes_req = NONE
charge_max = 600
invocation = "DOOOOOOOOOOOOOOOOOOOOM!!!"
invocation_type = "shout"
@@ -155,7 +155,7 @@
dropmessage = "You let the electricity from your hand dissipate."
hand_path = /obj/item/melee/touch_attack/shock
charge_max = 400
clothes_req = FALSE
clothes_req = NONE
action_icon_state = "zap"
/obj/item/melee/touch_attack/shock
@@ -211,7 +211,7 @@
name = "Remember the Scent"
desc = "Get a scent off of the item you're currently holding to track it. With an empty hand, you'll track the scent you've remembered."
charge_max = 100
clothes_req = FALSE
clothes_req = NONE
range = -1
include_user = TRUE
action_icon_state = "nose"
@@ -289,8 +289,7 @@
/obj/effect/proc_holder/spell/self/self_amputation
name = "Drop a limb"
desc = "Concentrate to make a random limb pop right off your body."
clothes_req = FALSE
human_req = FALSE
clothes_req = NONE
charge_max = 100
action_icon_state = "autotomy"
@@ -327,8 +326,7 @@
/obj/effect/proc_holder/spell/self/lay_genetic_web
name = "Lay Web"
desc = "Drops a web. Only you will be able to traverse your web easily, making it pretty good for keeping you safe."
clothes_req = FALSE
human_req = FALSE
clothes_req = NONE
charge_max = 4 SECONDS //the same time to lay a web
action_icon = 'icons/mob/actions/actions_genetic.dmi'
action_icon_state = "lay_web"
@@ -369,8 +367,7 @@
/obj/effect/proc_holder/spell/self/tongue_spike
name = "Launch spike"
desc = "Shoot your tongue out in the direction you're facing, embedding it and dealing damage until they remove it."
clothes_req = FALSE
human_req = TRUE
clothes_req = NONE
charge_max = 100
action_icon = 'icons/mob/actions/actions_genetic.dmi'
action_icon_state = "spike"
+4 -2
View File
@@ -75,20 +75,21 @@
quality = POSITIVE
difficulty = 16
instability = 5
conflicts = list(GIGANTISM)
locked = TRUE // Default intert species for now, so locked from regular pool.
/datum/mutation/human/dwarfism/on_acquiring(mob/living/carbon/human/owner)
if(..())
return
owner.transform = owner.transform.Scale(1, 0.8)
owner.pass_flags |= PASSTABLE
passtable_on(owner, GENETIC_MUTATION)
owner.visible_message("<span class='danger'>[owner] suddenly shrinks!</span>", "<span class='notice'>Everything around you seems to grow..</span>")
/datum/mutation/human/dwarfism/on_losing(mob/living/carbon/human/owner)
if(..())
return
owner.transform = owner.transform.Scale(1, 1.25)
owner.pass_flags &= ~PASSTABLE
passtable_off(owner, GENETIC_MUTATION)
owner.visible_message("<span class='danger'>[owner] suddenly grows!</span>", "<span class='notice'>Everything around you seems to shrink..</span>")
@@ -333,6 +334,7 @@
desc = "The cells within the subject spread out to cover more area, making the subject appear larger."
quality = MINOR_NEGATIVE
difficulty = 12
conflicts = list(DWARFISM)
/datum/mutation/human/gigantism/on_acquiring(mob/living/carbon/human/owner)
if(..())
+5 -3
View File
@@ -18,7 +18,6 @@
name = "Asteroid 1"
description = "I-spy with my little eye, something beginning with R."
/datum/map_template/ruin/space/asteroid2
id = "asteroid2"
suffix = "asteroid2.dmm"
@@ -187,6 +186,7 @@
name = "Abandoned Teleporter"
description = "In space construction the teleporter is often the first system brought online. \
This lonely half built teleporter is a sign of a proposed structure that for one reason or another just never got built."
always_place = TRUE
/datum/map_template/ruin/space/crashedclownship
id = "crashedclownship"
@@ -268,6 +268,7 @@
suffix = "whiteshipdock.dmm"
name = "Whiteship Dock"
description = "An abandoned but functional vessel parked in deep space, ripe for the taking."
always_place = TRUE
/datum/map_template/ruin/space/cat_experiments
id = "meow"
@@ -287,6 +288,7 @@
suffix = "hilbertshoteltestingsite.dmm"
name = "Hilbert Research Facility"
description = "A research facility of great bluespace discoveries. Long since abandoned, willingly or not..."
/datum/map_template/ruin/space/augmentation
id = "augmentationfacility"
suffix = "augmentationfacility.dmm"
@@ -376,13 +378,13 @@
id = "roid8"
suffix = "roid8.dmm"
name = "Dead wizard Roid"
description = "Mineral asteroid. Ft. Dead wizard and toilet paradox bag."
description = "Mineral asteroid. Ft. Dead wizard and toilet wand."
/datum/map_template/ruin/spacenearstation/roid9
id = "roid9"
suffix = "roid9.dmm"
name = "Monitoring Roid"
description = "Mineral asteroid. Ft. Station monitoring, syndie toolbox and erp."
description = "Mineral asteroid. Ft. Station monitoring, toolbox and erp."
/datum/map_template/ruin/spacenearstation/roid10
id = "roid10"
+1
View File
@@ -90,6 +90,7 @@
/datum/status_effect/staggered
id = "staggered"
blocks_sprint = TRUE
alert_type = null
/datum/status_effect/staggered/on_creation(mob/living/new_owner, set_duration)
if(isnum(set_duration))
-8
View File
@@ -88,14 +88,6 @@
if(quirk_holder)
quirk_holder.remove_client_colour(/datum/client_colour/monochrome)
/datum/quirk/libido
name = "Nymphomania"
desc = "You're always feeling a bit in heat. Also, you get aroused faster than usual."
value = 0
mob_trait = TRAIT_PERMABONER
gain_text = "<span class='notice'>You are feeling extra wild.</span>"
lose_text = "<span class='notice'>You don't feel that burning sensation anymore.</span>"
/datum/quirk/maso
name = "Masochism"
desc = "You are aroused by pain."
+201 -1
View File
@@ -324,6 +324,11 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "Service Hallway"
icon_state = "hall_service"
/area/hallway/secondary/civilian
name = "Civilian Wing"
icon_state = "hallFS"
//Command
/area/bridge
@@ -1046,7 +1051,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "Monastery Garden"
icon_state = "hydro"
//Science
/area/science
@@ -1393,3 +1397,199 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/crew_quarters/fitness/pool
name = "Pool Area"
icon_state = "pool"
/area/crew_quarters/dorms/blue
name = "Blue Dorms"
icon_state = "Sleep"
nightshift_public_area = NIGHTSHIFT_AREA_NONE
/area/crew_quarters/dorms/purple
name = "Purple Dorms"
icon_state = "Sleep"
nightshift_public_area = NIGHTSHIFT_AREA_NONE
/area/crew_quarters/lounge/jazz
name = "Jazz Lounge"
icon_state = "yellow"
ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg')
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
/area/crew_quarters/fitness/recreation
name = "Recreation Area"
icon_state = "fitness"
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
/area/crew_quarters/fitness/cogpool
name = "Pool"
icon_state = "fitness"
clockwork_warp_fail = "Pool's closed."
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
/area/crew_quarters/barbershop
name = "Barbershop"
icon_state = "blue"
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
/area/crew_quarters/observatory
name = "Observatory"
icon_state = "Sleep"
//Engineering
/area/engine/teg_hot
name = "Hot Loop"
icon_state = "red"
/area/engine/teg_cold
name = "Cold Loop"
icon_state = "blue"
/area/engine/workshop
name = "Engineering Workshop"
icon_state = "engine"
/area/security/courtroom/jury
name = "Jury Room"
icon_state = "courtroom"
/area/quartermaster/miningdock/airless
name = "Mining Dock"
icon_state = "mining"
has_gravity = STANDARD_GRAVITY
valid_territory = FALSE
outdoors = TRUE
ambientsounds = SPACE
blob_allowed = FALSE //While part of the station, what good will it do you?
/area/quartermaster/miningdock/airless/no_grav
name = "Mining Dock"
icon_state = "mining"
dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT
power_light = FALSE
power_equip = FALSE
power_environ = FALSE
valid_territory = FALSE
outdoors = TRUE
ambientsounds = SPACE
blob_allowed = FALSE //While part of the station, what good will it do you?
/area/janitor/aux
name = "Auxiliary Custodial Closet"
icon_state = "janitor"
flags_1 = NONE
/area/hydroponics/lobby
name = "Hydroponics Lobby"
icon_state = "hydro"
//Storage
/area/storage/emergency/generic
name = "Emergency Storage"
icon_state = "emergencystorage"
//Construction
/area/construction
name = "Construction Area"
icon_state = "yellow"
ambientsounds = ENGINEERING
/area/construction/secondary
name = "Secondary Construction Area"
icon_state = "yellow"
/area/construction/minisat_exterior
name = "Minisat Exterior"
icon_state = "yellow"
/area/construction/mining/aux_base
name = "Auxiliary Base Construction"
icon_state = "yellow"
/area/construction/mining/aux_base/closet
name = "Auxiliary Closet Construction"
icon_state = "yellow"
/area/construction/supplyshuttle
name = "Supply Shuttle"
icon_state = "yellow"
/area/construction/quarters
name = "Engineers' Quarters"
icon_state = "yellow"
/area/construction/qmaint
name = "Maintenance"
icon_state = "yellow"
/area/construction/hallway
name = "Hallway"
icon_state = "yellow"
/area/construction/solars
name = "Solar Panels"
icon_state = "yellow"
/area/construction/solarscontrol
name = "Solar Panel Control"
icon_state = "yellow"
/area/construction/storage
name = "Construction Site Storage"
icon_state = "yellow"
/area/construction/storage/wing
name = "Storage Wing"
icon_state = "storage_wing"
//Routers
/area/router
name = "Router"
icon_state = "yellow"
ambientsounds = ENGINEERING
/area/router/service
name = "Service Router"
icon_state = "green"
/area/router/public
name = "Public Router"
icon_state = "yellow"
/area/router/sec
name = "Security Router"
icon_state = "blue"
/area/router/medsci
name = "MedSci Router"
icon_state = "yellow"
/area/router/eva
name = "EVA Router"
icon_state = "yellow"
/area/router/air
name = "Airbridge Router"
icon_state = "red"
/area/router/eng
name = "Engineering Router"
icon_state = "yellow"
/area/router/aux
name = "Routing System"
icon_state = "yellow"
requires_power = FALSE
has_gravity = STANDARD_GRAVITY
always_unpowered = TRUE
dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT
power_light = FALSE
power_equip = FALSE
power_environ = FALSE
valid_territory = FALSE
outdoors = TRUE
ambientsounds = SPACE
blob_allowed = FALSE //While part of the station, what good will it do you?
+1
View File
@@ -63,6 +63,7 @@
var/xenobiology_compatible = FALSE //Can the Xenobio management console transverse this area by default?
var/list/canSmoothWithAreas //typecache to limit the areas that atoms in this area can smooth with
/// Color on minimaps, if it's null (which is default) it makes one at random.
var/minimap_color
+3
View File
@@ -99,6 +99,9 @@
/area/holodeck/rec_center/winterwonderland
name = "Holodeck - Winter Wonderland"
/area/holodeck/rec_center/wrestlingarena
name = "Holodeck - Wrestling Arena"
// Bad programs
/area/holodeck/rec_center/burn
+61 -8
View File
@@ -694,14 +694,64 @@
/atom/vv_get_dropdown()
. = ..()
. += "---"
var/turf/curturf = get_turf(src)
if (curturf)
.["Jump to"] = "?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[curturf.x];Y=[curturf.y];Z=[curturf.z]"
.["Modify Transform"] = "?_src_=vars;[HrefToken()];modtransform=[REF(src)]"
.["Add reagent"] = "?_src_=vars;[HrefToken()];addreagent=[REF(src)]"
.["Trigger EM pulse"] = "?_src_=vars;[HrefToken()];emp=[REF(src)]"
.["Trigger explosion"] = "?_src_=vars;[HrefToken()];explode=[REF(src)]"
VV_DROPDOWN_OPTION("", "---------")
if(!ismovableatom(src))
var/turf/curturf = get_turf(src)
if(curturf)
. += "<option value='?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[curturf.x];Y=[curturf.y];Z=[curturf.z]'>Jump To</option>"
VV_DROPDOWN_OPTION(VV_HK_MODIFY_TRANSFORM, "Modify Transform")
VV_DROPDOWN_OPTION(VV_HK_ADD_REAGENT, "Add Reagent")
VV_DROPDOWN_OPTION(VV_HK_TRIGGER_EMP, "EMP Pulse")
VV_DROPDOWN_OPTION(VV_HK_TRIGGER_EXPLOSION, "Explosion")
/atom/vv_do_topic(list/href_list)
. = ..()
if(href_list[VV_HK_ADD_REAGENT] && check_rights(R_VAREDIT))
if(!reagents)
var/amount = input(usr, "Specify the reagent size of [src]", "Set Reagent Size", 50) as num
if(amount)
create_reagents(amount)
if(reagents)
var/chosen_id = choose_reagent_id(usr)
if(chosen_id)
var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", reagents.maximum_volume) as num
if(amount)
reagents.add_reagent(chosen_id, amount)
log_admin("[key_name(usr)] has added [amount] units of [chosen_id] to [src]")
message_admins("<span class='notice'>[key_name(usr)] has added [amount] units of [chosen_id] to [src]</span>")
if(href_list[VV_HK_TRIGGER_EXPLOSION] && check_rights(R_FUN))
usr.client.cmd_admin_explosion(src)
if(href_list[VV_HK_TRIGGER_EMP] && check_rights(R_FUN))
usr.client.cmd_admin_emp(src)
if(href_list[VV_HK_MODIFY_TRANSFORM] && check_rights(R_VAREDIT))
var/result = input(usr, "Choose the transformation to apply","Transform Mod") as null|anything in list("Scale","Translate","Rotate")
var/matrix/M = transform
switch(result)
if("Scale")
var/x = input(usr, "Choose x mod","Transform Mod") as null|num
var/y = input(usr, "Choose y mod","Transform Mod") as null|num
if(!isnull(x) && !isnull(y))
transform = M.Scale(x,y)
if("Translate")
var/x = input(usr, "Choose x mod","Transform Mod") as null|num
var/y = input(usr, "Choose y mod","Transform Mod") as null|num
if(!isnull(x) && !isnull(y))
transform = M.Translate(x,y)
if("Rotate")
var/angle = input(usr, "Choose angle to rotate","Transform Mod") as null|num
if(!isnull(angle))
transform = M.Turn(angle)
if(href_list[VV_HK_AUTO_RENAME] && check_rights(R_VAREDIT))
var/newname = input(usr, "What do you want to rename this to?", "Automatic Rename") as null|text
if(newname)
vv_auto_rename(newname)
/atom/vv_get_header()
. = ..()
var/refid = REF(src)
. += "[VV_HREF_TARGETREF(refid, VV_HK_AUTO_RENAME, "<b id='name'>[src]</b>")]"
. += "<br><font size='1'><a href='?_src_=vars;[HrefToken()];rotatedatum=[refid];rotatedir=left'><<</a> <a href='?_src_=vars;[HrefToken()];datumedit=[refid];varnameedit=dir' id='dir'>[dir2text(dir) || dir]</a> <a href='?_src_=vars;[HrefToken()];rotatedatum=[refid];rotatedir=right'>>></a></font>"
/atom/proc/drop_location()
var/atom/L = loc
@@ -709,6 +759,9 @@
return null
return L.AllowDrop() ? L : L.drop_location()
/atom/proc/vv_auto_rename(newname)
name = newname
/atom/Entered(atom/movable/AM, atom/oldLoc)
SEND_SIGNAL(src, COMSIG_ATOM_ENTERED, AM, oldLoc)
+33 -3
View File
@@ -39,6 +39,37 @@
var/zfalling = FALSE
/// Either FALSE, [EMISSIVE_BLOCK_GENERIC], or [EMISSIVE_BLOCK_UNIQUE]
var/blocks_emissive = FALSE
///Internal holder for emissive blocker object, do not use directly use blocks_emissive
var/atom/movable/emissive_blocker/em_block
/atom/movable/Initialize(mapload)
. = ..()
switch(blocks_emissive)
if(EMISSIVE_BLOCK_GENERIC)
update_emissive_block()
if(EMISSIVE_BLOCK_UNIQUE)
render_target = ref(src)
em_block = new(src, render_target)
vis_contents += em_block
/atom/movable/Destroy()
QDEL_NULL(em_block)
return ..()
/atom/movable/proc/update_emissive_block()
if(blocks_emissive != EMISSIVE_BLOCK_GENERIC)
return
if(length(managed_vis_overlays))
for(var/a in managed_vis_overlays)
var/obj/effect/overlay/vis/vs
if(vs.plane == EMISSIVE_BLOCKER_PLANE)
SSvis_overlays.remove_vis_overlay(src, list(vs))
break
SSvis_overlays.add_vis_overlay(src, icon, icon_state, EMISSIVE_BLOCKER_LAYER, EMISSIVE_BLOCKER_PLANE)
/atom/movable/proc/can_zFall(turf/source, levels = 1, turf/target, direction)
if(!direction)
direction = DOWN
@@ -437,9 +468,8 @@
/atom/movable/vv_get_dropdown()
. = ..()
. -= "Jump to"
.["Follow"] = "?_src_=holder;[HrefToken()];adminplayerobservefollow=[REF(src)]"
.["Get"] = "?_src_=holder;[HrefToken()];admingetmovable=[REF(src)]"
. += "<option value='?_src_=holder;[HrefToken()];adminplayerobservefollow=[REF(src)]'>Follow</option>"
. += "<option value='?_src_=holder;[HrefToken()];admingetmovable=[REF(src)]'>Get</option>"
/atom/movable/proc/ex_check(ex_id)
if(!ex_id)
@@ -19,7 +19,7 @@
antag_flag = ROLE_BLOODSUCKER
false_report_weight = 1
restricted_jobs = list("AI","Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
protected_jobs = list("Chaplain", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
required_players = 20
required_enemies = 2
recommended_enemies = 4
+2 -2
View File
@@ -88,13 +88,13 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th
user.underwear = chosen_prof.underwear
user.undie_color = chosen_prof.undie_color
user.undershirt = chosen_prof.undershirt
user.shirt_color =chosen_prof.shirt_color
user.shirt_color = chosen_prof.shirt_color
user.socks = chosen_prof.socks
user.socks_color =chosen_prof.socks_color
chosen_dna.transfer_identity(user, 1)
user.updateappearance(mutcolor_update=1)
user.update_body()
user.update_body(TRUE)
user.domutcheck()
//vars hackery. not pretty, but better than the alternative.

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